xref: /original-bsd/old/prmail/prmail.c (revision e59fb703)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  */
6 
7 #ifndef lint
8 char copyright[] =
9 "@(#) Copyright (c) 1980 Regents of the University of California.\n\
10  All rights reserved.\n";
11 #endif not lint
12 
13 #ifndef lint
14 static char sccsid[] = "@(#)prmail.c	5.1 (Berkeley) 05/31/85";
15 #endif not lint
16 
17 #include <pwd.h>
18 /*
19  * prmail
20  */
21 struct	passwd *getpwuid();
22 char	*getenv();
23 
24 main(argc, argv)
25 	int argc;
26 	char **argv;
27 {
28 	register struct passwd *pp;
29 
30 	--argc, ++argv;
31 	if (chdir("/usr/spool/mail") < 0) {
32 		perror("/usr/spool/mail");
33 		exit(1);
34 	}
35 	if (argc == 0) {
36 		char *user = getenv("USER");
37 		if (user == 0) {
38 			pp = getpwuid(getuid());
39 			if (pp == 0) {
40 				printf("Who are you?\n");
41 				exit(1);
42 			}
43 			user = pp->pw_name;
44 		}
45 		prmail(user, 0);
46 	} else
47 		while (--argc >= 0)
48 			prmail(*argv++, 1);
49 	exit(0);
50 }
51 
52 #include <sys/types.h>
53 #include <sys/stat.h>
54 
55 prmail(user, other)
56 	char *user;
57 {
58 	struct stat stb;
59 	char cmdbuf[256];
60 
61 	if (stat(user, &stb) < 0) {
62 		printf("No mail for %s.\n", user);
63 		return;
64 	}
65 	if (access(user, 4) < 0) {
66 		printf("Mailbox for %s unreadable\n", user);
67 		return;
68 	}
69 	if (other)
70 		printf(">>> %s <<<\n", user);
71 	sprintf(cmdbuf, "more %s", user);
72 	system(cmdbuf);
73 	if (other)
74 		printf("-----\n\n");
75 }
76