mlist: print a total line with -i when useful

This commit is contained in:
Leah Neukirchen 2017-02-14 15:31:22 +01:00
parent 2b74b23cea
commit 7a2204049e
2 changed files with 15 additions and 6 deletions

View File

@ -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.

19
mlist.c
View File

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