pidgin/gtkconv.c

changeset 32778
a0be82d9c0f1
parent 32777
30e3ac21adff
child 32779
c20a831762dc
equal deleted inserted replaced
32777:30e3ac21adff 32778:a0be82d9c0f1
6094 time_t mtime) 6094 time_t mtime)
6095 { 6095 {
6096 GString *str; 6096 GString *str;
6097 const char *cur = text; 6097 const char *cur = text;
6098 const char *prev = cur; 6098 const char *prev = cur;
6099 struct tm *tm = NULL;
6099 6100
6100 if (text == NULL || *text == '\0') 6101 if (text == NULL || *text == '\0')
6101 return NULL; 6102 return NULL;
6102 6103
6103 str = g_string_new(NULL); 6104 str = g_string_new(NULL);
6114 flags & PURPLE_MESSAGE_RECV ? "incoming" : "event"; 6115 flags & PURPLE_MESSAGE_RECV ? "incoming" : "event";
6115 6116
6116 } else if (g_str_has_prefix(cur, "%time")) { 6117 } else if (g_str_has_prefix(cur, "%time")) {
6117 const char *tmp = cur + strlen("%time"); 6118 const char *tmp = cur + strlen("%time");
6118 char *format = NULL; 6119 char *format = NULL;
6120
6119 if (*tmp == '{') { 6121 if (*tmp == '{') {
6120 char *end; 6122 char *end;
6121 tmp++; 6123 tmp++;
6122 end = strstr(tmp, "}%"); 6124 end = strstr(tmp, "}%");
6123 if (!end) /* Invalid string */ 6125 if (!end) /* Invalid string */
6124 continue; 6126 continue;
6125 format = g_strndup(tmp, end - tmp); 6127 format = g_strndup(tmp, end - tmp);
6126 fin = end + 1; 6128 fin = end + 1;
6127 } 6129 }
6128 replace = purple_utf8_strftime(format ? format : "%X", NULL); 6130
6131 if (!tm)
6132 tm = localtime(&mtime);
6133
6134 replace = purple_utf8_strftime(format ? format : "%X", tm);
6129 g_free(format); 6135 g_free(format);
6130 6136
6131 } else if (g_str_has_prefix(cur, "%shortTime%")) { 6137 } else if (g_str_has_prefix(cur, "%shortTime%")) {
6132 replace = purple_utf8_strftime("%H:%M", NULL); 6138 if (!tm)
6139 tm = localtime(&mtime);
6140
6141 replace = purple_utf8_strftime("%H:%M", tm);
6133 6142
6134 } else if (g_str_has_prefix(cur, "%userIconPath%")) { 6143 } else if (g_str_has_prefix(cur, "%userIconPath%")) {
6135 if (flags & PURPLE_MESSAGE_SEND) { 6144 if (flags & PURPLE_MESSAGE_SEND) {
6136 if (purple_account_get_bool(purple_conversation_get_account(conv), "use-global-buddyicon", TRUE)) { 6145 if (purple_account_get_bool(purple_conversation_get_account(conv), "use-global-buddyicon", TRUE)) {
6137 replace = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/accounts/buddyicon"); 6146 replace = purple_prefs_get_path(PIDGIN_PREFS_ROOT "/accounts/buddyicon");

mercurial