fixes from rick adams
[unix-history] / usr / src / usr.bin / uucp / uulog / uulog.c
CommitLineData
6278ec69 1#ifndef lint
08570df5 2static char sccsid[] = "@(#)uulog.c 5.4 (Berkeley) %G%";
6278ec69
SL
3#endif
4
5#include "uucp.h"
6
7#ifndef SYSBUF
8static char SYSBUF[BUFSIZ];
9#endif
10
6278ec69
SL
11main(argc, argv)
12char *argv[];
13{
14 FILE *plogf;
1a85e9d2 15 char *sys, *user;
6278ec69 16
1a85e9d2 17 char buf[BUFSIZ], u[64], s[64];
6278ec69
SL
18
19 setbuf(stdout, SYSBUF);
20 strcpy(Progname, "uulog");
1a85e9d2 21 sys = user = NULL;
6278ec69
SL
22
23
24 while (argc>1 && argv[1][0] == '-') {
25 switch (argv[1][1]) {
26 case 's':
1a85e9d2
RC
27 sys = &argv[1][2];
28 if (*sys == NULL && argc > 2 && argv[2][0] != '-') {
29 sys = &argv[2][0];
6278ec69
SL
30 argv++;
31 argc--;
32 }
08570df5
JB
33 if (strlen(sys) > MAXBASENAME)
34 sys[MAXBASENAME] = '\0';
1a85e9d2
RC
35 if (versys(&sys) != SUCCESS){
36 fprintf(stderr,"uulog: unknown system %s\n", sys);
37 sys = NULL;
38 }
6278ec69
SL
39 break;
40 case 'u':
41 user = &argv[1][2];
42 if (*user == NULL && argc > 2 && argv[2][0] != '-') {
43 user = &argv[2][0];
44 argv++;
45 argc--;
46 }
47 break;
48 default:
49 printf("unknown flag %s\n", argv[1]); break;
50 }
51 --argc; argv++;
52 }
53
54
1a85e9d2
RC
55 if (user == NULL && sys == NULL) {
56 fprintf(stderr, "usage: uulog [-u user] [-s sys]\n");
6278ec69
SL
57 exit(1);
58 }
6278ec69 59
1a85e9d2
RC
60#ifdef LOGBYSITE
61 if (chdir(SPOOL) < 0) {
62 perror(SPOOL);
63 exit(1);
64 }
65 /* this program is really obsolete, this is a rude backward compat */
66 if (user) {
67 sprintf(buf, "exec cat LOG/uu*/* | egrep '^%s '", user);
68 system(buf);
69 }
70 if (sys) {
71 sprintf(buf,"exec cat LOG/uu*/%s", sys);
72 system(buf);
73 }
74#else !LOGBYSITE
6278ec69
SL
75 plogf = fopen(LOGFILE, "r");
76 ASSERT(plogf != NULL, "CAN NOT OPEN", LOGFILE, 0);
77 while (fgets(buf, BUFSIZ, plogf) != NULL) {
78 sscanf(buf, "%s%s", u, s);
79 if (user != NULL && !prefix(user, u))
80 continue;
1a85e9d2 81 if (sys != NULL && !prefix(sys, s))
6278ec69
SL
82 continue;
83 fputs(buf, stdout);
84 fflush(stdout);
85 }
1a85e9d2 86#endif !LOGBYSITE
6278ec69
SL
87 exit(0);
88}
89
90cleanup(code)
91int code;
92{
93 exit(code);
94}