# HG changeset patch # User Mikael Berthe # Date 1131916519 -3600 # Node ID d40c434fff466a4910ab1641b291330459e5820b # Parent 1744664332cdbcc4b7ab9c6321cde008561bac32 Add HBB_PREFIX_NOFLAG A line with this attribute won't trigger a notification flag. This patch adds use of it for joins, leaves, nickname changes and topic changes. diff -r 1744664332cd -r d40c434fff46 mcabber/src/hbuf.h --- a/mcabber/src/hbuf.h Sun Nov 13 17:03:59 2005 +0100 +++ b/mcabber/src/hbuf.h Sun Nov 13 22:15:19 2005 +0100 @@ -20,6 +20,7 @@ #define HBB_PREFIX_AUTH 8 #define HBB_PREFIX_INFO 16 #define HBB_PREFIX_ERR 32 +#define HBB_PREFIX_NOFLAG 64 typedef struct { time_t timestamp; diff -r 1744664332cd -r d40c434fff46 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Sun Nov 13 17:03:59 2005 +0100 +++ b/mcabber/src/jabglue.c Sun Nov 13 22:15:19 2005 +0100 @@ -890,7 +890,8 @@ // Display inside the room window mbuf = g_strdup_printf("%s has set the topic to: %s", r, (subj_noutf8 ? subj_noutf8 : "(?)")); - scr_WriteIncomingMessage(s, mbuf, 0, HBB_PREFIX_INFO); + scr_WriteIncomingMessage(s, mbuf, 0, + HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); if (settings_opt_get_int("log_muc_conf")) hlog_write_message(s, 0, FALSE, mbuf); if (subj_noutf8) g_free(subj_noutf8); @@ -1167,7 +1168,8 @@ gchar *newname_noutf8 = from_utf8(mbnewnick); mbuf = g_strdup_printf("%s is now known as %s", rname, (newname_noutf8 ? newname_noutf8 : "(?)")); - scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO); + scr_WriteIncomingMessage(r, mbuf, 0, + HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf); g_free(mbuf); if (newname_noutf8) { @@ -1185,7 +1187,8 @@ gchar *mbuf; if (s) mbuf = g_strdup_printf("%s has left: %s", rname, s); else mbuf = g_strdup_printf("%s has left", rname); - scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO); + scr_WriteIncomingMessage(r, mbuf, 0, + HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf); g_free(mbuf); } else if (buddy_getstatus(room_elt->data, rname) == offline && @@ -1197,7 +1200,8 @@ } else { mbuf = g_strdup_printf("%s has joined", rname); } - scr_WriteIncomingMessage(r, mbuf, 0, HBB_PREFIX_INFO); + scr_WriteIncomingMessage(r, mbuf, 0, + HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); if (log_muc_conf) hlog_write_message(r, 0, FALSE, mbuf); g_free(mbuf); } diff -r 1744664332cd -r d40c434fff46 mcabber/src/screen.c --- a/mcabber/src/screen.c Sun Nov 13 17:03:59 2005 +0100 +++ b/mcabber/src/screen.c Sun Nov 13 22:15:19 2005 +0100 @@ -528,7 +528,7 @@ top_panel(inputPanel); update_panels(); doupdate(); - } else { + } else if (!(prefix_flags & HBB_PREFIX_NOFLAG)) { roster_msg_setflag(winId, TRUE); update_roster = TRUE; } @@ -789,7 +789,8 @@ void scr_WriteIncomingMessage(const char *jidfrom, const char *text, time_t timestamp, guint prefix) { - if (!prefix) prefix = HBB_PREFIX_IN; + if (!(prefix & ~HBB_PREFIX_NOFLAG)) + prefix |= HBB_PREFIX_IN; // FIXME expand tabs / filter out special chars... scr_WriteMessage(jidfrom, text, timestamp, prefix); update_panels();