]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - robots/score.c
Fix merge conflicts
[bsdgames-darwin.git] / robots / score.c
index 4c87bd4ea0b2a40edc167e8ab7a7fefe53f9127a..91a2f38a0bea08b6457eef4ca45ccac787f4e069 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: score.c,v 1.17 2004/01/27 20:30:30 jsm Exp $   */
+/*     $NetBSD: score.c,v 1.24 2021/04/13 01:50:46 mrg Exp $   */
 
 /*
  * Copyright (c) 1980, 1993
 #if 0
 static char sccsid[] = "@(#)score.c    8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: score.c,v 1.17 2004/01/27 20:30:30 jsm Exp $");
+__RCSID("$NetBSD: score.c,v 1.24 2021/04/13 01:50:46 mrg Exp $");
 #endif
 #endif /* not lint */
 
-# include      "robots.h"
-# include      "pathnames.h"
+#include <curses.h>
+#include <err.h>
+#include <fcntl.h>
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "robots.h"
+#include "pathnames.h"
 
-const char     *Scorefile = _PATH_SCORE;
+const char *Scorefile = _PATH_SCORE;
 
-int    Max_per_uid = MAX_PER_UID;
+int Max_per_uid = MAX_PER_UID;
 
-static SCORE   Top[MAXSCORES];
+static SCORE Top[MAXSCORES];
 
-static u_int32_t       numscores, max_uid;
+static uint32_t numscores, max_uid;
 
-static void read_score(int);
-static void write_score(int);
+static int cmp_sc(const void *, const void *);
+static void set_name(SCORE *);
 
 /*
  * read_score:
  *     Read the score file in MI format
  */
 static void
-read_score(inf)
-       int inf;
+read_score(int inf)
 {
-       SCORE   *scp;
+       SCORE *scp;
 
-       if (read(inf, &max_uid, sizeof max_uid) == sizeof max_uid) {
+       if (read(inf, &max_uid, sizeof max_uid) == sizeof max_uid &&
+           read(inf, Top, sizeof Top) == sizeof Top) {
                max_uid = ntohl(max_uid);
-
-               read(inf, Top, sizeof Top);
                for (scp = Top; scp < &Top[MAXSCORES]; scp++) {
                         scp->s_uid = ntohl(scp->s_uid);
                         scp->s_score = ntohl(scp->s_score);
@@ -85,10 +91,9 @@ read_score(inf)
  *     Write the score file in MI format
  */
 static void
-write_score(inf)
-       int inf;
+write_score(int inf)
 {
-       SCORE   *scp;
+       SCORE *scp;
 
        lseek(inf, 0L, SEEK_SET);
 
@@ -112,15 +117,14 @@ write_score(inf)
  *     top list.
  */
 void
-score(score_wfd)
-       int score_wfd;
+score(int score_wfd)
 {
-       int                     inf = score_wfd;
-       SCORE                   *scp;
-       u_int32_t               uid;
-       bool                    done_show = FALSE;
+       int inf = score_wfd;
+       SCORE *scp;
+       uint32_t uid;
+       bool done_show = false;
 
-       Newscore = FALSE;
+       Newscore = false;
        if (inf < 0)
                return;
 
@@ -138,7 +142,7 @@ score(score_wfd)
                                scp->s_auto = Auto_bot;
                                scp->s_level = Level;
                                set_name(scp);
-                               Newscore = TRUE;
+                               Newscore = true;
                                break;
                        }
                if (scp == &Top[MAXSCORES]) {
@@ -147,19 +151,19 @@ score(score_wfd)
                        Top[MAXSCORES-1].s_auto = Auto_bot;
                        Top[MAXSCORES-1].s_level = Level;
                        set_name(&Top[MAXSCORES-1]);
-                       Newscore = TRUE;
+                       Newscore = true;
                }
                if (Newscore)
                        qsort(Top, MAXSCORES, sizeof Top[0], cmp_sc);
        }
 
        if (!Newscore) {
-               Full_clear = FALSE;
+               Full_clear = false;
                lseek(inf, 0, SEEK_SET);
                return;
        }
        else
-               Full_clear = TRUE;
+               Full_clear = true;
 
        move(1, 15);
        printw("%5.5s %5.5s %-9.9s %-8.8s %5.5s", "Rank", "Score", "User",
@@ -176,7 +180,7 @@ score(score_wfd)
                    scp->s_auto ? "(autobot)" : "", scp->s_level);
                if (!done_show && scp->s_uid == uid && scp->s_score == Score) {
                        standend();
-                       done_show = TRUE;
+                       done_show = true;
                }
        }
        Num_scores = scp - Top;
@@ -188,25 +192,24 @@ score(score_wfd)
        lseek(inf, 0, SEEK_SET);
 }
 
-void
-set_name(scp)
-       SCORE   *scp;
+static void
+set_name(SCORE *scp)
 {
-       PASSWD  *pp;
-       static char unknown[] = "???";
+       struct passwd *pp;
 
        if ((pp = getpwuid(scp->s_uid)) == NULL)
-               pp->pw_name = unknown;
-       strncpy(scp->s_name, pp->pw_name, MAXNAME);
+               strncpy(scp->s_name, "???", MAXNAME - 1);
+       else
+               strncpy(scp->s_name, pp->pw_name, MAXNAME - 1);
+       scp->s_name[MAXNAME - 1] = '\0';
 }
 
 /*
  * cmp_sc:
  *     Compare two scores.
  */
-int
-cmp_sc(s1, s2)
-       const void *s1, *s2;
+static int
+cmp_sc(const void *s1, const void *s2)
 {
        return ((const SCORE *)s2)->s_score - ((const SCORE *)s1)->s_score;
 }
@@ -216,10 +219,10 @@ cmp_sc(s1, s2)
  *     Show the score list for the '-s' option.
  */
 void
-show_score()
+show_score(void)
 {
-       SCORE           *scp;
-       int             inf;
+       SCORE *scp;
+       int inf;
 
        if ((inf = open(Scorefile, O_RDONLY)) < 0) {
                warn("opening `%s'", Scorefile);