date and time created 88/06/01 18:39:47 by bostic
[unix-history] / usr / src / games / sail / lo_main.c
index a13064f..f0b51dc 100644 (file)
@@ -1,63 +1,68 @@
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that this notice is preserved and that due credit is given
+ * to the University of California at Berkeley. The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission. This software
+ * is provided ``as is'' without express or implied warranty.
+ */
+
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)lo_main.c   1.2 83/05/20";
-#endif
+static char sccsid[] = "@(#)lo_main.c  5.2 (Berkeley) %G%";
+#endif /* not lint */
+
 /*
  * Print out the top ten SAILors
  *
 /*
  * Print out the top ten SAILors
  *
- * sail.log [-s/l]
- *
- *  -s force a short listing (without real usernames)
- *  -l force a long listing (print out real usernames)
+ * -l force a long listing (print out real usernames)
  */
 #include <pwd.h>
 #include "externs.h"
 
 char *title[] = {
  */
 #include <pwd.h>
 #include "externs.h"
 
 char *title[] = {
-    "Admiral", "Commodore", "Captain", "Captain",
-    "Captain", "Captain", "Captain", "Commander",
-    "Commander", "Lieutenant"
+       "Admiral", "Commodore", "Captain", "Captain",
+       "Captain", "Captain", "Captain", "Commander",
+       "Commander", "Lieutenant"
 };
 
 };
 
-main(argc, argv)
-int argc;
-char **argv;
+lo_main()
 {
 {
-    FILE *fp;
-    char sbuf[32];
-    int n = 0, people;
-    int usrnam = SAILLOGDEF;
-    struct passwd *getpwuid(), *pass;
-    struct logs flog;
+       FILE *fp;
+       char sbuf[32];
+       int n = 0, people;
+       struct passwd *getpwuid(), *pass;
+       struct logs log;
+       struct ship *ship;
 
 
-    if (argc > 1)
-       if (argc == 2)
-           if (!strcmp(argv[1], "-s"))
-               usrnam = 0;
-           else if (!strcmp(argv[1], "-l"))
-               usrnam = 1;
-       else {
-           fprintf(stderr, "usage: %s: [-s/l]\n", argv[0]);
-           exit(1);
+       if ((fp = fopen(LOGFILE, "r")) == 0) {
+               perror(LOGFILE);
+               exit(1);
+       }
+       switch (fread((char *)&people, sizeof people, 1, fp)) {
+       case 0:
+               printf("Nobody has sailed yet.\n");
+               exit(0);
+       case 1:
+               break;
+       default:
+               perror(LOGFILE);
+               exit(1);
+       }
+       while (fread((char *)&log, sizeof log, 1, fp) == 1 &&
+              log.l_name[0] != '\0') {
+               if (longfmt && (pass = getpwuid(log.l_uid)) != NULL)
+                       (void) sprintf(sbuf, "%10.10s (%s)",
+                               log.l_name, pass->pw_name);
+               else
+                       (void) sprintf(sbuf, "%20.20s", log.l_name);
+               ship = &scene[log.l_gamenum].ship[log.l_shipnum];
+               printf("%-10s %21s of the %15s %3d points, %5.2f equiv\n",
+                       title[n++], sbuf, ship->shipname, log.l_netpoints,
+                       (float) log.l_netpoints / ship->specs->pts);
        }
        }
-    if((fp = fopen(LOGFILE, "r")) == 0) {
-       printf("%s: Error opening logfile - %s\n", argv[0], LOGFILE);
-       exit(1);
-    }
-    if (fread(&people, sizeof(people), 1, fp) == 0) {
-       printf("%s: Error reading logfile.\n", argv[0]);
-       exit(1);
-    }
-    while ((fread(&flog, sizeof(flog), 1, fp) != 0) && (flog.fname[0] != '\0')) {
-       if (usrnam && ((pass = getpwuid(flog.uid)) != NULL))
-           sprintf(sbuf, "%10.10s (%s)", flog.fname, pass->pw_name);
-       else
-           sprintf(sbuf, "%10.10s", flog.fname);
-       printf("%-10s %21s of the %15s %3d points, %5.2f equiv\n",
-         title[n++], sbuf,
-         scene[flog.fgamenum].ship[flog.fshipnum].shipname,
-         flog.netpoints,
-         (float) flog.netpoints /
-         specs[scene[flog.fgamenum].ship[flog.fshipnum].shipnum].pts);
-    }
-    printf("\n%d people have played.\n", people);
+       printf("\n%d people have played.\n", people);
+       return 0;
 }
 }