| 56 |
56 |
| 57 static char *timestamp_cb_common(PurpleConversation *conv, |
57 static char *timestamp_cb_common(PurpleConversation *conv, |
| 58 time_t t, |
58 time_t t, |
| 59 gboolean show_date, |
59 gboolean show_date, |
| 60 gboolean force, |
60 gboolean force, |
| 61 const char *dates) |
61 const char *dates, |
| |
62 gboolean parens) |
| 62 { |
63 { |
| 63 g_return_val_if_fail(dates != NULL, NULL); |
64 g_return_val_if_fail(dates != NULL, NULL); |
| 64 |
65 |
| 65 if (show_date || |
66 if (show_date || |
| 66 !strcmp(dates, "always") || |
67 !strcmp(dates, "always") || |
| 67 (conv != NULL && purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && !strcmp(dates, "chats"))) |
68 (conv != NULL && purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && !strcmp(dates, "chats"))) |
| 68 { |
69 { |
| 69 struct tm *tm = localtime(&t); |
70 struct tm *tm = localtime(&t); |
| 70 if (force) |
71 if (force) |
| 71 return g_strdup(purple_utf8_strftime("%Y-%m-%d %H:%M:%S", tm)); |
72 return g_strdup_printf("%s%s%s", parens ? "(" : "", purple_utf8_strftime("%Y-%m-%d %H:%M:%S", tm), parens ? ")" : ""); |
| 72 else |
73 else |
| 73 return g_strdup(purple_date_format_long(tm)); |
74 return g_strdup_printf("%s%s%s", parens ? "(" : "", purple_date_format_long(tm), parens ? ")" : ""); |
| 74 } |
75 } |
| 75 |
76 |
| 76 if (force) |
77 if (force) |
| 77 { |
78 { |
| 78 struct tm *tm = localtime(&t); |
79 struct tm *tm = localtime(&t); |
| 79 return g_strdup(purple_utf8_strftime("%H:%M:%S", tm)); |
80 return g_strdup_printf("%s%s%s", parens ? "(" : "", purple_utf8_strftime("%H:%M:%S", tm), parens ? ")" : ""); |
| 80 } |
81 } |
| 81 |
82 |
| 82 return NULL; |
83 return NULL; |
| 83 } |
84 } |
| 84 |
85 |
| 90 const char *dates = purple_prefs_get_string( |
91 const char *dates = purple_prefs_get_string( |
| 91 "/plugins/gtk/timestamp_format/use_dates/conversation"); |
92 "/plugins/gtk/timestamp_format/use_dates/conversation"); |
| 92 |
93 |
| 93 g_return_val_if_fail(conv != NULL, NULL); |
94 g_return_val_if_fail(conv != NULL, NULL); |
| 94 |
95 |
| 95 return timestamp_cb_common(conv, t, show_date, force, dates); |
96 return timestamp_cb_common(conv, t, show_date, force, dates, TRUE); |
| 96 } |
97 } |
| 97 |
98 |
| 98 static char *log_timestamp_cb(PurpleLog *log, time_t t, gboolean show_date, gpointer data) |
99 static char *log_timestamp_cb(PurpleLog *log, time_t t, gboolean show_date, gpointer data) |
| 99 { |
100 { |
| 100 gboolean force = purple_prefs_get_bool( |
101 gboolean force = purple_prefs_get_bool( |
| 102 const char *dates = purple_prefs_get_string( |
103 const char *dates = purple_prefs_get_string( |
| 103 "/plugins/gtk/timestamp_format/use_dates/log"); |
104 "/plugins/gtk/timestamp_format/use_dates/log"); |
| 104 |
105 |
| 105 g_return_val_if_fail(log != NULL, NULL); |
106 g_return_val_if_fail(log != NULL, NULL); |
| 106 |
107 |
| 107 return timestamp_cb_common(log->conv, t, show_date, force, dates); |
108 return timestamp_cb_common(log->conv, t, show_date, force, dates, FALSE); |
| 108 } |
109 } |
| 109 |
110 |
| 110 static gboolean |
111 static gboolean |
| 111 plugin_load(PurplePlugin *plugin) |
112 plugin_load(PurplePlugin *plugin) |
| 112 { |
113 { |