Some mail clients remove the user's spool file instead of truncating
it. There's no reason to warn in this case unless the user specified
a file with the -f flag.
- todd
Index: usr.bin/from/from.c
===================================================================
RCS file: /cvs/src/usr.bin/from/from.c,v
retrieving revision 1.19
diff -u -p -u -r1.19 from.c
--- usr.bin/from/from.c 3 Jun 2015 02:35:50 -0000 1.19
+++ usr.bin/from/from.c 3 Jun 2015 14:09:20 -0000
@@ -39,6 +39,7 @@
#include <paths.h>
#include <string.h>
#include <err.h>
+#include <errno.h>
int match(char *, char *);
FILE *open_mbox(const char *file, const char *user);
@@ -89,9 +90,10 @@ main(int argc, char *argv[])
}
FILE *
-open_mbox(const char *file, const char *user)
+open_mbox(const char *fflag, const char *user)
{
struct passwd *pwd;
+ const char *file = fflag;
char *buf = NULL;
FILE *fp;
@@ -120,8 +122,10 @@ open_mbox(const char *file, const char *
file = buf;
}
}
- if ((fp = fopen(file, "r")) == NULL)
- warn("%s", file);
+ if ((fp = fopen(file, "r")) == NULL) {
+ if (fflag != NULL || errno != ENOENT)
+ warn("%s", file);
+ }
free(buf);
return(fp);
}