BSD 4_3_Tahoe release
[unix-history] / usr / src / usr.bin / uucp / uulog.c
index 038a001..6eb7050 100644 (file)
@@ -1,35 +1,32 @@
 #ifndef lint
 #ifndef lint
-static char sccsid[] = "@(#)uulog.c    5.4 (Berkeley) 6/23/85";
+static char sccsid[] = "@(#)uulog.c    5.6     (Berkeley) 5/4/88";
 #endif
 
 #include "uucp.h"
 
 #endif
 
 #include "uucp.h"
 
-#ifndef        SYSBUF
-static char SYSBUF[BUFSIZ];
-#endif
+struct timeb Now;
 
 main(argc, argv)
 char *argv[];
 {
 
 main(argc, argv)
 char *argv[];
 {
+#ifndef LOGBYSITE
        FILE *plogf;
        FILE *plogf;
+       char u[64], s[64];
+#endif /* !LOGBYSITE */
        char *sys, *user;
        char *sys, *user;
+       int c;
+       extern char *optarg;
+       extern int optind;
 
 
-       char buf[BUFSIZ], u[64], s[64];
+       char buf[BUFSIZ];
 
 
-       setbuf(stdout, SYSBUF);
        strcpy(Progname, "uulog");
        sys = user = NULL;
 
        strcpy(Progname, "uulog");
        sys = user = NULL;
 
-
-       while (argc>1 && argv[1][0] == '-') {
-               switch (argv[1][1]) {
+       while ((c = getopt(argc, argv, "s:u:")) != EOF)
+               switch (c) {
                case 's':
                case 's':
-                       sys = &argv[1][2];
-                       if (*sys == NULL && argc > 2 && argv[2][0] != '-') {
-                               sys = &argv[2][0];
-                               argv++;
-                               argc--;
-                       }
+                       sys = optarg;
                        if (strlen(sys) > MAXBASENAME)
                                sys[MAXBASENAME] = '\0';
                        if (versys(&sys) != SUCCESS){
                        if (strlen(sys) > MAXBASENAME)
                                sys[MAXBASENAME] = '\0';
                        if (versys(&sys) != SUCCESS){
@@ -38,19 +35,13 @@ char *argv[];
                        }
                        break;
                case 'u':
                        }
                        break;
                case 'u':
-                       user = &argv[1][2];
-                       if (*user == NULL && argc > 2 && argv[2][0] != '-') {
-                               user = &argv[2][0];
-                               argv++;
-                               argc--;
-                       }
+                       user = optarg;
                        break;
                        break;
+               case '?':
                default:
                default:
-                       printf("unknown flag %s\n", argv[1]); break;
+                       fprintf(stderr, "unknown flag %s\n", argv[optind-1]);
+                       break;
                }
                }
-               --argc;  argv++;
-       }
-
 
        if (user == NULL && sys == NULL) {
                fprintf(stderr, "usage: uulog [-u user] [-s sys]\n");
 
        if (user == NULL && sys == NULL) {
                fprintf(stderr, "usage: uulog [-u user] [-s sys]\n");
@@ -73,12 +64,15 @@ char *argv[];
        }
 #else !LOGBYSITE
        plogf = fopen(LOGFILE, "r");
        }
 #else !LOGBYSITE
        plogf = fopen(LOGFILE, "r");
-       ASSERT(plogf != NULL, "CAN NOT OPEN", LOGFILE, 0);
+       if (plogf == NULL) {
+               syslog(LOG_WARNING, "fopen(%s) failed: %m", LOGFILE);
+               cleanup(1);
+       }
        while (fgets(buf, BUFSIZ, plogf) != NULL) {
                sscanf(buf, "%s%s", u, s);
        while (fgets(buf, BUFSIZ, plogf) != NULL) {
                sscanf(buf, "%s%s", u, s);
-               if (user != NULL && !prefix(user, u))
+               if (user != NULL && !(prefix(user, u) || prefix(u, user)))
                        continue;
                        continue;
-               if (sys != NULL && !prefix(sys, s))
+               if (sys != NULL && !(prefix(sys, s) || prefix(s, sys)))
                        continue;
                fputs(buf, stdout);
                fflush(stdout);
                        continue;
                fputs(buf, stdout);
                fflush(stdout);