]> granicus.if.org Git - neomutt/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)
committerRichard Russon <rich@flatcap.org>
Wed, 15 Nov 2017 23:16:49 +0000 (23:16 +0000)
init.h
status.c

diff --git a/init.h b/init.h
index f36e351bc68741bcadda5dc98b06a0e252c8e4bc..5a341bf6dac45f94ab33ddfdb86ce2a57751789a 100644 (file)
--- a/init.h
+++ b/init.h
@@ -3989,6 +3989,7 @@ struct Option 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 bdd2895b7e406d26b4975c1498f69f3a6093d381..480a817467544df78780db598d4995bdaa58e55b 100644 (file)
--- a/status.c
+++ b/status.c
@@ -65,6 +65,7 @@ static void status_line(char *buf, size_t buflen, size_t col, int cols,
  * | \%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]
@@ -261,6 +262,20 @@ static const char *status_format_str(char *buf, size_t buflen, size_t col, int c
       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, get_sort_str(tmp, sizeof(tmp), Sort));