--- 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;