diff options
author | jkh <jkh@FreeBSD.org> | 1996-10-06 01:54:22 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1996-10-06 01:54:22 +0000 |
commit | 588cbc505965a59cfcff6441c1175864be71ab1a (patch) | |
tree | 50da2e885a33bcfc5895cbeeeb08dc04e2496cb3 /usr.bin/from | |
parent | abca754cfd845a3accbf540c87686279cdf6c483 (diff) | |
download | FreeBSD-src-588cbc505965a59cfcff6441c1175864be71ab1a.zip FreeBSD-src-588cbc505965a59cfcff6441c1175864be71ab1a.tar.gz |
Honor the MAIL environment variable, if set.
Submitted-by: Dan Cross <cross@math.psu.edu>
Diffstat (limited to 'usr.bin/from')
-rw-r--r-- | usr.bin/from/from.1 | 5 | ||||
-rw-r--r-- | usr.bin/from/from.c | 22 |
2 files changed, 20 insertions, 7 deletions
diff --git a/usr.bin/from/from.1 b/usr.bin/from/from.1 index a09dbff..780eba8 100644 --- a/usr.bin/from/from.1 +++ b/usr.bin/from/from.1 @@ -72,6 +72,11 @@ is given, the .Ar user Ns 's mailbox, is examined instead of the invoker's own mailbox. (Privileges are required.) +.Sh ENVIRONMENT +.Bl -tag -width Fl +.It Ev MAIL +If set, the location of the invoker's mailbox. Otherwise, the default +in /var/mail is used. .Sh FILES .Bl -tag -width /var/mail/* -compact .It Pa /var/mail/* diff --git a/usr.bin/from/from.c b/usr.bin/from/from.c index f9f301d..de62057 100644 --- a/usr.bin/from/from.c +++ b/usr.bin/from/from.c @@ -42,9 +42,11 @@ static char sccsid[] = "@(#)from.c 8.1 (Berkeley) 6/6/93"; #endif /* not lint */ #include <sys/types.h> + #include <ctype.h> #include <pwd.h> #include <stdio.h> +#include <stdlib.h> #include <string.h> #include <paths.h> @@ -83,16 +85,22 @@ main(argc, argv) argv += optind; if (!file) { - if (!(file = *argv)) { - if (!(pwd = getpwuid(getuid()))) { - fprintf(stderr, + if (*argv) { + (void)sprintf(buf, "%s/%s", _PATH_MAILDIR, *argv); + file = buf; + } else { + if (!(file = getenv("MAIL"))) { + if (!(pwd = getpwuid(getuid()))) { + (void)fprintf(stderr, "from: no password file entry for you.\n"); - exit(1); + exit(1); + } + file = pwd->pw_name; + (void)sprintf(buf, + "%s/%s", _PATH_MAILDIR, file); + file = buf; } - file = pwd->pw_name; } - (void)sprintf(buf, "%s/%s", _PATH_MAILDIR, file); - file = buf; } /* read from stdin */ |