]> granicus.if.org Git - mutt/commitdiff
Add %R (number of read messages) for $status_format.
authorVincent Lefevre <vincent@vinc17.net>
Sat, 11 Nov 2017 17:59:31 +0000 (18:59 +0100)
committerVincent Lefevre <vincent@vinc17.net>
Sat, 11 Nov 2017 17:59:31 +0000 (18:59 +0100)
init.h
status.c

diff --git a/init.h b/init.h
index 8aa2d581f7d90c973f26a85f623697234509d4da..4d6d0e0d28629e3d89b97c7b6a254a47635f95fa 100644 (file)
--- a/init.h
+++ b/init.h
@@ -3560,6 +3560,7 @@ struct option_t MuttVars[] = {
   ** .dt %P  .dd percentage of the way through the index
   ** .dt %r  .dd modified/read-only/won't-write/attach-message indicator,
   **             according to $$status_chars
+  ** .dt %R  .dd number of read messages *
   ** .dt %s  .dd current sorting mode ($$sort)
   ** .dt %S  .dd current aux sorting method ($$sort_aux)
   ** .dt %t  .dd number of tagged messages *
index b19fb4126d08c679f24af2d4b27227efc154d693..a069072fecfa09cc5d637c79768e27a5b347c785 100644 (file)
--- a/status.c
+++ b/status.c
@@ -55,6 +55,7 @@ static void _menu_status_line (char *buf, size_t buflen, size_t col, int cols, M
  * %p = number of postponed messages [option]
  * %P = percent of way through index
  * %r = readonly/wontwrite/changed flag
+ * %R = number of read messages [option]
  * %s = current sorting method ($sort)
  * %S = current aux sorting method ($sort_aux)
  * %t = # of tagged messages [option]
@@ -236,7 +237,21 @@ status_format_str (char *buf, size_t buflen, size_t col, int cols, char op, cons
         snprintf (buf, buflen, "%s", StChars->chars[i]);
       break;
     }
-      
+
+    case 'R':
+    {
+      int read = Context ? Context->msgcount - Context->unread : 0;
+
+      if (!optional)
+      {
+       snprintf (fmt, sizeof (fmt), "%%%sd", prefix);
+       snprintf (buf, buflen, fmt, read);
+      }
+      else if (!read)
+       optional = 0;
+      break;
+    }
+
     case 's':
       snprintf (fmt, sizeof (fmt), "%%%ss", prefix);
       snprintf (buf, buflen, fmt,