about summary refs log tree commit diff
path: root/mlist.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2017-02-14 15:31:22 +0100
committerLeah Neukirchen <leah@vuxu.org>2017-02-14 15:31:52 +0100
commit7a2204049e964597fa7bcd4fcb088653e9bdffbb (patch)
treee3447a1dabd3702c5963933c8b25f7ef41f729ae /mlist.c
parent2b74b23cea31168c00cd93e7825e096c51d3b4f2 (diff)
downloadmblaze-7a2204049e964597fa7bcd4fcb088653e9bdffbb.tar.gz
mblaze-7a2204049e964597fa7bcd4fcb088653e9bdffbb.tar.xz
mblaze-7a2204049e964597fa7bcd4fcb088653e9bdffbb.zip
mlist: print a total line with -i when useful
Diffstat (limited to 'mlist.c')
-rw-r--r--mlist.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/mlist.c b/mlist.c
index 97fe9c4..79bf286 100644
--- 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;
 }