summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-10-02 20:38:40 +0000
committerJune McEnroe <june@causal.agency>2021-10-02 20:38:40 +0000
commit1bb3e02b4fa9c846346576459eeb41b187a1f8bb (patch)
tree3cb5e70aaaef755377fb5fcc3c567dd71d177674
parentFix chkmail loop break condition (diff)
downloadsrc-1bb3e02b4fa9c846346576459eeb41b187a1f8bb.tar.gz
src-1bb3e02b4fa9c846346576459eeb41b187a1f8bb.zip
Just zero mailsize on changemail
So that on start (and any time MAIL/MAILPATH change), any non-empty
mailboxes will be reported.
-rw-r--r--bin/dash/src/mail.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/bin/dash/src/mail.c b/bin/dash/src/mail.c
index ec5bd10..a657153 100644
--- a/bin/dash/src/mail.c
+++ b/bin/dash/src/mail.c
@@ -38,6 +38,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include "shell.h"
 #include "nodes.h"
@@ -54,14 +55,11 @@
 
 /* sizes of mailboxes */
 static off_t mailsize[MAXMBOXES];
-/* Set if MAIL or MAILPATH is changed. */
-static int changed;
 
 
 
 /*
- * Print appropriate message(s) if mail has arrived.  If changed is set,
- * then the value of MAIL has changed, so we just update the values.
+ * Print appropriate message(s) if mail has arrived.
  */
 
 void
@@ -95,7 +93,7 @@ chkmail(void)
 			*msp = 0;
 			continue;
 		}
-		if (!changed && statb.st_size > *msp) {
+		if (statb.st_size > *msp) {
 			outfmt(
 				&errout, snlfmt,
 				pathopt ? pathopt : "you have mail"
@@ -103,7 +101,6 @@ chkmail(void)
 		}
 		*msp = statb.st_size;
 	}
-	changed = 0;
 	popstackmark(&smark);
 }
 
@@ -111,5 +108,5 @@ chkmail(void)
 void
 changemail(const char *val)
 {
-	changed++;
+	memset(mailsize, 0, sizeof(mailsize));
 }