Commit | Line | Data |
---|---|---|
31cef89c | 1 | static char *sccsid = "@(#)prmail.c 4.1 (Berkeley) 10/9/80"; |
750a6622 BJ |
2 | |
3 | #include <pwd.h> | |
4 | /* | |
5 | * prmail | |
6 | */ | |
7 | struct passwd *getpwuid(); | |
8 | char *getenv(); | |
9 | ||
10 | main(argc, argv) | |
11 | int argc; | |
12 | char **argv; | |
13 | { | |
14 | register struct passwd *pp; | |
15 | ||
16 | --argc, ++argv; | |
17 | if (chdir("/usr/spool/mail") < 0) { | |
18 | perror("/usr/spool/mail"); | |
19 | exit(1); | |
20 | } | |
21 | if (argc == 0) { | |
22 | char *user = getenv("USER"); | |
23 | if (user == 0) { | |
24 | pp = getpwuid(getuid()); | |
25 | if (pp == 0) { | |
26 | printf("Who are you?\n"); | |
27 | exit(1); | |
28 | } | |
29 | user = pp->pw_name; | |
30 | } | |
31 | prmail(user, 0); | |
32 | } else | |
33 | while (--argc >= 0) | |
34 | prmail(*argv++, 1); | |
35 | exit(0); | |
36 | } | |
37 | ||
38 | #include <sys/types.h> | |
39 | #include <sys/stat.h> | |
40 | ||
41 | prmail(user, other) | |
42 | char *user; | |
43 | { | |
44 | struct stat stb; | |
45 | char cmdbuf[256]; | |
46 | ||
47 | if (stat(user, &stb) < 0) { | |
48 | printf("No mail for %s.\n", user); | |
49 | return; | |
50 | } | |
51 | if (access(user, "4") < 0) { | |
52 | printf("Mailbox for %s unreadable\n", user); | |
53 | return; | |
54 | } | |
55 | if (other) | |
56 | printf(">>> %s <<<\n", user); | |
57 | sprintf(cmdbuf, "more %s", user); | |
58 | system(cmdbuf); | |
59 | if (other) | |
60 | printf("-----\n\n"); | |
61 | } |