# HG changeset patch # User Mikael Berthe # Date 1344081919 -7200 # Node ID 39d261f589d01f54af158050cbc10fe977ffdcf9 # Parent 5254ab4a5f243e6b44dc5c44c5c6ee127db5853a Improve listing of marked JIDs diff -r 5254ab4a5f24 -r 39d261f589d0 marking.c --- a/marking.c Sat Aug 04 13:35:52 2012 +0200 +++ b/marking.c Sat Aug 04 14:05:19 2012 +0200 @@ -167,11 +167,23 @@ if (!strcmp (cmd, "list")) { GSList *mel; + guint len = g_slist_length(marked_jids); - scr_log_print (LPRINT_NORMAL, "Marked jids:"); - for (mel = marked_jids; mel; mel = mel->next) { - char *jid = (char *) mel->data; - scr_log_print (LPRINT_NORMAL, " * %s", jid); + if (!marked_jids) { + scr_log_print (LPRINT_NORMAL, "No marked JIDs."); + } else { + scr_log_print (LPRINT_NORMAL, "%d marked JIDs:", len); + for (mel = marked_jids; mel; mel = mel->next) { + char *jid = (char *) mel->data; + scr_log_print (LPRINT_NORMAL, " * %s", jid); + } + // Smartly set the status flag if we have more marks than the log + // window height. + if (len + 1 > scr_getlogwinheight()) { + scr_setmsgflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE); + scr_setattentionflag_if_needed(SPECIAL_BUFFER_STATUS_ID, TRUE, + ROSTER_UI_PRIO_STATUS_WIN_MESSAGE, prio_max); + } } } else if (!strcmp (cmd, "clear")) { @@ -188,7 +200,7 @@ char *format = args[1]; if (!format) - scr_log_print (LPRINT_NORMAL, "You must specify action to do with marked jids"); + scr_log_print (LPRINT_NORMAL, "You must specify action to do with marked JIDs"); else { char *pos = format; gboolean found = FALSE;