Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/games/cgram cgram: WARNS=6, use int for all coordinates



details:   https://anonhg.NetBSD.org/src/rev/55588e816c9a
branches:  trunk
changeset: 959684:55588e816c9a
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sun Feb 21 17:16:00 2021 +0000

description:
cgram: WARNS=6, use int for all coordinates

Eliminate some frequently occurring subexpressions during substitution.

No functional change, assuming that fortune(6) always spits out less
than 2 gigacharacters of text.

diffstat:

 games/cgram/Makefile |   3 +-
 games/cgram/cgram.c  |  91 +++++++++++++++++++++++++--------------------------
 2 files changed, 46 insertions(+), 48 deletions(-)

diffs (216 lines):

diff -r c3da00b543cc -r 55588e816c9a games/cgram/Makefile
--- a/games/cgram/Makefile      Sun Feb 21 17:07:45 2021 +0000
+++ b/games/cgram/Makefile      Sun Feb 21 17:16:00 2021 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2021/02/21 16:05:44 rillig Exp $
+# $NetBSD: Makefile,v 1.3 2021/02/21 17:16:00 rillig Exp $
 
 PROG=          cgram
 DPADD=         ${LIBCURSES} ${LIBTERMINFO}
@@ -7,5 +7,6 @@
 MAN=           cgram.6
 HIDEGAME=      hidegame
 LINTFLAGS+=    -T
+WARNS=         6
 
 .include <bsd.prog.mk>
diff -r c3da00b543cc -r 55588e816c9a games/cgram/cgram.c
--- a/games/cgram/cgram.c       Sun Feb 21 17:07:45 2021 +0000
+++ b/games/cgram/cgram.c       Sun Feb 21 17:16:00 2021 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD */
+/* $NetBSD: cgram.c,v 1.9 2021/02/21 17:16:00 rillig Exp $ */
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -90,7 +90,7 @@
 
 struct stringarray {
        char **v;
-       int num;
+       size_t num;
 };
 
 static void
@@ -123,7 +123,7 @@
 static struct stringarray sollines;
 static bool hinting;
 static int scrolldown;
-static unsigned curx;
+static int curx;
 static int cury;
 
 static void
@@ -167,34 +167,32 @@
 encode(void)
 {
        int key[26];
+
        for (int i = 0; i < 26; i++)
                key[i] = i;
+
        for (int i = 26; i > 1; i--) {
-               int c = random() % i;
+               int c = (int)(random() % i);
                int t = key[i - 1];
                key[i - 1] = key[c];
                key[c] = t;
        }
 
-       for (int y = 0; y < lines.num; y++) {
-               for (unsigned x = 0; lines.v[y][x] != '\0'; x++) {
-                       if (ch_islower(lines.v[y][x])) {
-                               int q = lines.v[y][x] - 'a';
-                               lines.v[y][x] = 'a' + key[q];
-                       }
-                       if (ch_isupper(lines.v[y][x])) {
-                               int q = lines.v[y][x] - 'A';
-                               lines.v[y][x] = 'A' + key[q];
-                       }
+       for (int y = 0; y < (int)lines.num; y++) {
+               for (char *p = lines.v[y]; *p != '\0'; p++) {
+                       if (ch_islower(*p))
+                               *p = (char)('a' + key[*p - 'a']);
+                       if (ch_isupper(*p))
+                               *p = (char)('A' + key[*p - 'A']);
                }
        }
 }
 
 static bool
-substitute(int ch)
+substitute(char ch)
 {
-       assert(cury >= 0 && cury < lines.num);
-       if (curx >= strlen(lines.v[cury])) {
+       assert(cury >= 0 && cury < (int)lines.num);
+       if (curx >= (int)strlen(lines.v[cury])) {
                beep();
                return false;
        }
@@ -210,17 +208,16 @@
        char lch = ch_tolower(ch);
        char uch = ch_toupper(ch);
 
-       for (int y = 0; y < lines.num; y++) {
-               for (unsigned x = 0; lines.v[y][x] != '\0'; x++) {
-                       if (lines.v[y][x] == loch) {
-                               lines.v[y][x] = lch;
-                       } else if (lines.v[y][x] == uoch) {
-                               lines.v[y][x] = uch;
-                       } else if (lines.v[y][x] == lch) {
-                               lines.v[y][x] = loch;
-                       } else if (lines.v[y][x] == uch) {
-                               lines.v[y][x] = uoch;
-                       }
+       for (int y = 0; y < (int)lines.num; y++) {
+               for (char *p = lines.v[y]; *p != '\0'; p++) {
+                       if (*p == loch)
+                               *p = lch;
+                       else if (*p == uoch)
+                               *p = uch;
+                       else if (*p == lch)
+                               *p = loch;
+                       else if (*p == uch)
+                               *p = uoch;
                }
        }
        return true;
@@ -236,7 +233,7 @@
        for (int i = 0; i < LINES - 1; i++) {
                move(i, 0);
                int ln = i + scrolldown;
-               if (ln < lines.num) {
+               if (ln < (int)lines.num) {
                        for (unsigned j = 0; lines.v[i][j] != '\0'; j++) {
                                char ch = lines.v[i][j];
                                if (ch != sollines.v[i][j] && ch_isalpha(ch)) {
@@ -304,18 +301,18 @@
                                curx--;
                        } else if (cury > 0) {
                                cury--;
-                               curx = strlen(lines.v[cury]);
+                               curx = (int)strlen(lines.v[cury]);
                        }
                        break;
                case 5:         /* ^E */
                case KEY_END:
-                       curx = strlen(lines.v[cury]);
+                       curx = (int)strlen(lines.v[cury]);
                        break;
                case 6:         /* ^F */
                case KEY_RIGHT:
-                       if (curx < strlen(lines.v[cury])) {
+                       if (curx < (int)strlen(lines.v[cury])) {
                                curx++;
-                       } else if (cury < lines.num - 1) {
+                       } else if (cury < (int)lines.num - 1) {
                                cury++;
                                curx = 0;
                        }
@@ -325,11 +322,11 @@
                        break;
                case 14:        /* ^N */
                case KEY_DOWN:
-                       if (cury < lines.num - 1) {
+                       if (cury < (int)lines.num - 1) {
                                cury++;
                        }
-                       if (curx > strlen(lines.v[cury])) {
-                               curx = strlen(lines.v[cury]);
+                       if (curx > (int)strlen(lines.v[cury])) {
+                               curx = (int)strlen(lines.v[cury]);
                        }
                        if (scrolldown < cury - (LINES - 2)) {
                                scrolldown = cury - (LINES - 2);
@@ -340,8 +337,8 @@
                        if (cury > 0) {
                                cury--;
                        }
-                       if (curx > strlen(lines.v[cury])) {
-                               curx = strlen(lines.v[cury]);
+                       if (curx > (int)strlen(lines.v[cury])) {
+                               curx = (int)strlen(lines.v[cury]);
                        }
                        if (scrolldown > cury) {
                                scrolldown = cury;
@@ -354,22 +351,22 @@
                        done = true;
                        break;
                default:
-                       if (isascii(ch) && isalpha(ch)) {
-                               if (substitute(ch)) {
-                                       if (curx < strlen(lines.v[cury])) {
+                       if (isascii(ch) && ch_isalpha((char)ch)) {
+                               if (substitute((char)ch)) {
+                                       if (curx < (int)strlen(lines.v[cury])) {
                                                curx++;
                                        }
-                                       if (curx == strlen(lines.v[cury]) &&
-                                           cury < lines.num - 1) {
+                                       if (curx == (int)strlen(lines.v[cury]) &&
+                                           cury < (int)lines.num - 1) {
                                                curx = 0;
                                                cury++;
                                        }
                                }
-                       } else if (curx < strlen(lines.v[cury]) &&
+                       } else if (curx < (int)strlen(lines.v[cury]) &&
                            ch == lines.v[cury][curx]) {
                                curx++;
-                               if (curx == strlen(lines.v[cury]) &&
-                                   cury < lines.num - 1) {
+                               if (curx == (int)strlen(lines.v[cury]) &&
+                                   cury < (int)lines.num - 1) {
                                        curx = 0;
                                        cury++;
                                }
@@ -389,7 +386,7 @@
 
        stringarray_init(&lines);
        stringarray_init(&sollines);
-       srandom(time(NULL));
+       srandom((unsigned int)time(NULL));
        readquote();
        encode();
        opencurses();



Home | Main Index | Thread Index | Old Index