equal
deleted
inserted
replaced
47 int active_window = FALSE; |
47 int active_window = FALSE; |
48 int message_flags = 0; |
48 int message_flags = 0; |
49 guint rtype = ROSTER_TYPE_USER; |
49 guint rtype = ROSTER_TYPE_USER; |
50 char *wmsg = NULL, *bmsg = NULL, *mmsg = NULL; |
50 char *wmsg = NULL, *bmsg = NULL, *mmsg = NULL; |
51 GSList *roster_usr; |
51 GSList *roster_usr; |
|
52 unsigned mucnicklen = 0; |
52 |
53 |
53 if (encrypted) |
54 if (encrypted) |
54 message_flags |= HBB_PREFIX_PGPCRYPT; |
55 message_flags |= HBB_PREFIX_PGPCRYPT; |
55 |
56 |
56 if (type && !strcmp(type, "groupchat")) { |
57 if (type && !strcmp(type, "groupchat")) { |
61 message_flags = HBB_PREFIX_INFO | HBB_PREFIX_NOFLAG; |
62 message_flags = HBB_PREFIX_INFO | HBB_PREFIX_NOFLAG; |
62 resname = ""; |
63 resname = ""; |
63 wmsg = bmsg = g_strdup_printf("~ %s", msg); |
64 wmsg = bmsg = g_strdup_printf("~ %s", msg); |
64 } else { |
65 } else { |
65 wmsg = bmsg = g_strdup_printf("<%s> %s", resname, msg); |
66 wmsg = bmsg = g_strdup_printf("<%s> %s", resname, msg); |
|
67 mucnicklen = strlen(resname) + 2; |
66 if (!strncmp(msg, COMMAND_ME, strlen(COMMAND_ME))) |
68 if (!strncmp(msg, COMMAND_ME, strlen(COMMAND_ME))) |
67 wmsg = mmsg = g_strdup_printf("*%s %s", resname, msg+4); |
69 wmsg = mmsg = g_strdup_printf("*%s %s", resname, msg+4); |
68 } |
70 } |
69 } else { |
71 } else { |
70 bmsg = g_strdup(msg); |
72 bmsg = g_strdup(msg); |
155 } |
157 } |
156 |
158 |
157 // Note: the hlog_write should not be called first, because in some |
159 // Note: the hlog_write should not be called first, because in some |
158 // cases scr_WriteIncomingMessage() will load the history and we'd |
160 // cases scr_WriteIncomingMessage() will load the history and we'd |
159 // have the message twice... |
161 // have the message twice... |
160 scr_WriteIncomingMessage(bjid, wmsg, timestamp, message_flags); |
162 scr_WriteIncomingMessage(bjid, wmsg, timestamp, message_flags, mucnicklen); |
161 |
163 |
162 // We don't log the modified message, but the original one |
164 // We don't log the modified message, but the original one |
163 if (wmsg == mmsg) |
165 if (wmsg == mmsg) |
164 wmsg = bmsg; |
166 wmsg = bmsg; |
165 |
167 |
304 if (scr_BuddyBufferExists(bjid)) { |
306 if (scr_BuddyBufferExists(bjid)) { |
305 bn = g_strdup_printf("Buddy status has changed: [%c>%c] %s", |
307 bn = g_strdup_printf("Buddy status has changed: [%c>%c] %s", |
306 imstatus2char[oldstat], imstatus2char[status], |
308 imstatus2char[oldstat], imstatus2char[status], |
307 ((status_msg) ? status_msg : "")); |
309 ((status_msg) ? status_msg : "")); |
308 scr_WriteIncomingMessage(bjid, bn, timestamp, |
310 scr_WriteIncomingMessage(bjid, bn, timestamp, |
309 HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); |
311 HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG, 0); |
310 g_free(bn); |
312 g_free(bn); |
311 } |
313 } |
312 } |
314 } |
313 |
315 |
314 roster_setstatus(bjid, rn, prio, status, status_msg, timestamp, |
316 roster_setstatus(bjid, rn, prio, status, status_msg, timestamp, |