On 2017-11-10 08:36:05 -0800, Kevin J. McCarthy wrote:
> On Fri, Nov 10, 2017 at 01:12:55PM +0100, Daan van Rossum wrote:
> > 2. add to status_format a sequence like:
> > %R number of read messages
>
> This one I'm not enthused about. The count used above is not stored in
> the context, and I don't really want to add the logic everywhere to keep
> that count correct.
But the total number of messages and the number of unread messages
are in the context. Thus you would only need to do a subtraction
dynamically. What about the attached patch?
--
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)
diff -r fbf01f1c87a3 init.h
--- a/init.h Fri Nov 10 13:06:43 2017 -0800
+++ b/init.h Sat Nov 11 02:38:42 2017 +0100
@@ -3560,6 +3560,7 @@
** .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 *
diff -r fbf01f1c87a3 status.c
--- a/status.c Fri Nov 10 13:06:43 2017 -0800
+++ b/status.c Sat Nov 11 02:38:42 2017 +0100
@@ -55,6 +55,7 @@
* %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 @@
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,