mblaze

Unix utilities to deal with Maildir - my mirror
git clone https://pi.duncano.de/git/mblaze.git
Log | Files | Refs | README | COPYING

commit 7a2204049e964597fa7bcd4fcb088653e9bdffbb
parent 2b74b23cea31168c00cd93e7825e096c51d3b4f2
Author: Leah Neukirchen <leah@vuxu.org>
Date:   Tue, 14 Feb 2017 15:31:22 +0100

mlist: print a total line with -i when useful

Diffstat:
man/mlist.1 | 2++
mlist.c | 19+++++++++++++------
2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/man/mlist.1 b/man/mlist.1 @@ -74,6 +74,8 @@ Don't list messages in Don't print filenames, instead print a single line summary for each folder with the number of unseen, flagged and total messages, as well as the folder name. +.Pp +When more two or more summaries are printed, also print a total. .El .Pp Multiple options are regarded as a conjunction. diff --git a/mlist.c b/mlist.c @@ -45,6 +45,11 @@ static long iunseen; static long iflagged; static long imatched; +static long tdirs; +static long tunseen; +static long tflagged; +static long tcount; + void list(char *prefix, char *file) { @@ -72,11 +77,11 @@ list(char *prefix, char *file) return; imatched++; if (!flagset) - icount++; + icount++, tcount++; if (!strchr(f, 'S')) - iunseen++; + iunseen++, tunseen++; if (strchr(f, 'F')) - iflagged++; + iflagged++, tflagged++; return; } @@ -197,9 +202,11 @@ listarg(char *arg) if (!maildir) listdir(arg); - if (iflag && imatched) + if (iflag && imatched) { + tdirs++; printf("%6ld unseen %3ld flagged %6ld msg %s\n", iunseen, iflagged, icount, arg); + } icount = gcount; iunseen = gunseen; @@ -264,9 +271,9 @@ main(int argc, char *argv[]) listarg(argv[i]); } - if (iflag && imatched) + if (iflag && tdirs > 1) printf("%6ld unseen %3ld flagged %6ld msg\n", - iunseen, iflagged, icount); + tunseen, tflagged, tcount); return 0; }