From: Tobias Quathamer Date: Mon, 26 Mar 2012 10:07:17 +0200 Subject: Unsorted Debian patches --- adventure/crc.c | 4 +++- arithmetic/arithmetic.6 | 2 +- backgammon/backgammon/move.c | 3 +++ backgammon/common_source/allow.c | 4 +++- backgammon/teachgammon/ttext1.c | 2 +- backgammon/teachgammon/ttext2.c | 2 +- dab/gamescreen.h | 6 ++--- dm/dm.c | 6 ++--- fish/Makefrag | 8 ++++--- fish/fish.6 | 4 ++-- gomoku/gomoku.6 | 2 +- hack/Makefrag | 3 ++- hack/config.h | 15 ++++++++----- hunt/hunt/hunt.6.in | 2 +- hunt/hunt/hunt.c | 6 +++-- hunt/hunt/playit.c | 4 ++-- number/number.c | 47 ++++++++++++++++++++++++++-------------- sail/pl_main.c | 2 +- tests/number.-0.1 | 2 +- tetris/scores.c | 17 +++++++++------ trek/setup.c | 5 ++++- 21 files changed, 92 insertions(+), 54 deletions(-) diff --git a/adventure/crc.c b/adventure/crc.c index 66504f1..c6ee5f1 100644 --- a/adventure/crc.c +++ b/adventure/crc.c @@ -42,6 +42,8 @@ __RCSID("$NetBSD: crc.c,v 1.8 2003/08/07 09:36:50 agc Exp $"); #endif #endif /* not lint */ +#include + #include "extern.h" const unsigned long crctab[] = { @@ -125,7 +127,7 @@ crc(ptr, nr) /* Process nr bytes at a time; ptr points to them */ while (nr > 0) for (p = ptr; nr--; ++p) { - if (!(i = crcval >> 24 ^ *p)) { + if (!(i = crcval >> (sizeof(crcval) * CHAR_BIT - 8) ^ *p)) { i = step++; if (step >= sizeof(crctab) / sizeof(crctab[0])) step = 0; diff --git a/arithmetic/arithmetic.6 b/arithmetic/arithmetic.6 index b8d4d8f..bc41bca 100644 --- a/arithmetic/arithmetic.6 +++ b/arithmetic/arithmetic.6 @@ -79,7 +79,7 @@ divide by or subtract will be between 0 and .Nm will not ask you to divide by 0.) The default -.I range +.It range is 10. .El .Pp diff --git a/backgammon/backgammon/move.c b/backgammon/backgammon/move.c index 9fd81f1..027cab5 100644 --- a/backgammon/backgammon/move.c +++ b/backgammon/backgammon/move.c @@ -152,6 +152,9 @@ move(okay) trymove(0, 0); pickmove(); + if (d0) + swap; + /* print move */ writel(" and moves "); for (i = 0; i < mvlim; i++) { diff --git a/backgammon/common_source/allow.c b/backgammon/common_source/allow.c index f6bae78..8189f07 100644 --- a/backgammon/common_source/allow.c +++ b/backgammon/common_source/allow.c @@ -83,8 +83,10 @@ movallow() p[i--] = bar; if (p[i] != bar) continue; - else + else if (d0) break; + swap; + continue; } if (d0 || m == 4) break; diff --git a/backgammon/teachgammon/ttext1.c b/backgammon/teachgammon/ttext1.c index 82db223..73ea6ee 100644 --- a/backgammon/teachgammon/ttext1.c +++ b/backgammon/teachgammon/ttext1.c @@ -94,7 +94,7 @@ const char *const intro2[] = { "\n Although not indicated on the board, the players' homes are", "located just to the right of the board. A player's men are placed", "there when they are removed from the board. The board you just", - "saw was in it's initial position. All games start with the board", + "saw was in its initial position. All games start with the board", "looking like this. Notice that red's pieces are represented by the", "letter 'r' and white's pieces are represented by the letter 'w'.", "Also, a position may have zero or more pieces on it, e.g. posi-", diff --git a/backgammon/teachgammon/ttext2.c b/backgammon/teachgammon/ttext2.c index 5e827d7..eb9a083 100644 --- a/backgammon/teachgammon/ttext2.c +++ b/backgammon/teachgammon/ttext2.c @@ -65,7 +65,7 @@ const char *const stragy[] = { "points in a row) are difficult to form, many points nestled close-", "ly together produce a formidable barrier. Also, while it is good", "to move back men forward, doing so lessens the opportunity for you", - "to hit men. Finally, remember that once the two player's have", + "to hit men. Finally, remember that once the two players have", "passed each other on the board, there is no chance of either team", "being hit, so the game reduces to a race off the board. Addi-", "tional hints on strategy are presented in the practice game.", diff --git a/dab/gamescreen.h b/dab/gamescreen.h index ca90cb3..b3db2ea 100644 --- a/dab/gamescreen.h +++ b/dab/gamescreen.h @@ -70,9 +70,9 @@ class GAMESCREEN { virtual void redraw(void) = 0; // Refresh virtual int getinput(void) = 0; // Get user input virtual void bell(void) = 0; // Beep - virtual void score(size_t p, const PLAYER& p) = 0; // Post current score - virtual void games(size_t p, const PLAYER& p) = 0; // Post games won - virtual void total(size_t p, const PLAYER& p) = 0; // Post total score + virtual void score(size_t s, const PLAYER& p) = 0; // Post current score + virtual void games(size_t s, const PLAYER& p) = 0; // Post games won + virtual void total(size_t s, const PLAYER& p) = 0; // Post total score virtual void ties(const PLAYER& p) = 0; // Post tie games }; diff --git a/dm/dm.c b/dm/dm.c index c131904..16129d8 100644 --- a/dm/dm.c +++ b/dm/dm.c @@ -134,19 +134,19 @@ read_config() while (fgets(lbuf, sizeof(lbuf), cfp)) switch (*lbuf) { case 'b': /* badtty */ - if (sscanf(lbuf, "%s%s", f1, f2) != 2 || + if (sscanf(lbuf, "%39s%39s", f1, f2) != 2 || strcasecmp(f1, "badtty")) break; c_tty(f2); break; case 'g': /* game */ - if (sscanf(lbuf, "%s%s%s%s%s", + if (sscanf(lbuf, "%39s%39s%39s%39s%39s", f1, f2, f3, f4, f5) != 5 || strcasecmp(f1, "game")) break; c_game(f2, f3, f4, f5); break; case 't': /* time */ - if (sscanf(lbuf, "%s%s%s%s", f1, f2, f3, f4) != 4 || + if (sscanf(lbuf, "%39s%39s%39s%39s", f1, f2, f3, f4) != 4 || strcasecmp(f1, "time")) break; c_day(f2, f3, f4); diff --git a/fish/Makefrag b/fish/Makefrag index 1039af5..1fec493 100644 --- a/fish/Makefrag +++ b/fish/Makefrag @@ -31,7 +31,9 @@ fish_DIRS := $(GAMESDIR) $(MAN6DIR) $(shell dirname $(FISH_INSTRFILE)) fish_all: fish/fish fish/fish.instr fish/fish.6 fish_install: fish_all - $(INSTALL_BINARY) fish/fish $(INSTALL_PREFIX)$(GAMESDIR)/fish - $(HIDE_GAME) fish + $(INSTALL_BINARY) fish/fish $(INSTALL_PREFIX)$(GAMESDIR)/go-fish + $(HIDE_GAME) go-fish $(INSTALL_DATA) fish/fish.instr $(INSTALL_PREFIX)$(FISH_INSTRFILE) - $(INSTALL_MANUAL) fish/fish.6 + ln -sf fish.6 fish/go-fish.6 # hack for rename + $(INSTALL_MANUAL) fish/go-fish.6 + rm -f fish/go-fish.6 diff --git a/fish/fish.6 b/fish/fish.6 index 398c55f..46eef2b 100644 --- a/fish/fish.6 +++ b/fish/fish.6 @@ -30,10 +30,10 @@ .\" @(#)fish.6 8.1 (Berkeley) 5/31/93 .\" .Dd May 31, 1993 -.Dt FISH 6 +.Dt GO-FISH 6 .Os .Sh NAME -.Nm fish +.Nm go-fish .Nd play .Dq Go Fish .Sh SYNOPSIS diff --git a/gomoku/gomoku.6 b/gomoku/gomoku.6 index f78eb0e..024da85 100644 --- a/gomoku/gomoku.6 +++ b/gomoku/gomoku.6 @@ -45,7 +45,7 @@ .Op Ar inputfile .Sh DESCRIPTION .Nm -is a two player game were the object is to get 5 in a row horizontally, +is a two player game where the object is to get 5 in a row horizontally, vertically or diagonally on a 19 by 19 grid. By convention, black always moves first. With no arguments, diff --git a/hack/Makefrag b/hack/Makefrag index eabbd2a..5807ef0 100644 --- a/hack/Makefrag +++ b/hack/Makefrag @@ -56,7 +56,8 @@ hack_install: hack_all $(INSTALL_SCORE_GAME) hack/hack $(INSTALL_PREFIX)$(GAMESDIR)/hack $(HIDE_GAME) hack $(INSTALL_HACK_DIR) $(INSTALL_PREFIX)$(HACK_DIR) - set -e; for f in data help hh rumors; do $(INSTALL_DATA) hack/$$f $(INSTALL_PREFIX)$(HACK_DIR)/$$f; done + install -d $(INSTALL_PREFIX)/usr/share/games/bsdgames/hack + set -e; for f in data help hh rumors; do $(INSTALL_DATA) hack/$$f $(INSTALL_PREFIX)/usr/share/games/bsdgames/hack/$$f; done $(INSTALL_SCORE_FILE) $(HACK_DIR)/perm $(INSTALL_SCORE_FILE) $(HACK_DIR)/record $(INSTALL_MANUAL) hack/hack.6 diff --git a/hack/config.h b/hack/config.h index ad3bbcf..03a8b02 100644 --- a/hack/config.h +++ b/hack/config.h @@ -88,13 +88,18 @@ /* #define PYRAMID_BUG */ /* avoid a bug on the Pyramid */ /* #define NOWAITINCLUDE */ /* neither nor exists */ -#define WIZARD "bruno" /* the person allowed to use the -D option */ +/* + * Debian mods: use root for WIZARD, and move files that are static to + * /usr/share/ -- JEH + */ +#define WIZARD "root" /* the person allowed to use the -D option */ +#define SHAREDIR "/usr/share/games/bsdgames/hack/" #define RECORD "record"/* the file containing the list of topscorers */ #define NEWS "news" /* the file containing the latest hack news */ -#define HELP "help" /* the file containing a description of the commands */ -#define SHELP "hh" /* abbreviated form of the same */ -#define RUMORFILE "rumors" /* a file with fortune cookies */ -#define DATAFILE "data" /* a file giving the meaning of symbols used */ +#define HELP SHAREDIR "help" /* the file containing a description of the commands */ +#define SHELP SHAREDIR "hh" /* abbreviated form of the same */ +#define RUMORFILE SHAREDIR "rumors" /* a file with fortune cookies */ +#define DATAFILE SHAREDIR "data" /* a file giving the meaning of symbols used */ #define FMASK 0660 /* file creation mask */ #define HLOCK "perm" /* an empty file used for locking purposes */ #define LLOCK "safelock" /* link to previous */ diff --git a/hunt/hunt/hunt.6.in b/hunt/hunt/hunt.6.in index 406296e..22e45ec 100644 --- a/hunt/hunt/hunt.6.in +++ b/hunt/hunt/hunt.6.in @@ -387,7 +387,7 @@ how many of player's shots were ducked how many slime kills player had .It enemy how many enemies were killed -.tI friend +.It friend how many friends were killed (self and same team) .It deaths how many times player died diff --git a/hunt/hunt/hunt.c b/hunt/hunt/hunt.c index 11f4c44..28321bc 100644 --- a/hunt/hunt/hunt.c +++ b/hunt/hunt/hunt.c @@ -394,7 +394,8 @@ broadcast_vec(s, vector) vec_cnt = 0; for (ip = ifp; ip; ip = ip->ifa_next) - if ((ip->ifa_addr->sa_family == AF_INET) && + if (ip->ifa_addr && + (ip->ifa_addr->sa_family == AF_INET) && (ip->ifa_flags & IFF_BROADCAST)) vec_cnt++; @@ -405,7 +406,8 @@ broadcast_vec(s, vector) vec_cnt = 0; for (ip = ifp; ip; ip = ip->ifa_next) - if ((ip->ifa_addr->sa_family == AF_INET) && + if (ip->ifa_addr && + (ip->ifa_addr->sa_family == AF_INET) && (ip->ifa_flags & IFF_BROADCAST)) memcpy(&(*vector)[vec_cnt++], ip->ifa_broadaddr, sizeof(struct sockaddr_in)); diff --git a/hunt/hunt/playit.c b/hunt/hunt/playit.c index 9acf86e..881a4e7 100644 --- a/hunt/hunt/playit.c +++ b/hunt/hunt/playit.c @@ -114,7 +114,7 @@ playit() bad_con(); /* NOTREACHED */ } - if (ntohl(version) != (unsigned long)HUNT_VERSION) { + if (ntohl(version) != (uint32_t)HUNT_VERSION) { bad_ver(); /* NOTREACHED */ } @@ -649,7 +649,7 @@ do_message() bad_con(); /* NOTREACHED */ } - if (ntohl(version) != (unsigned long)HUNT_VERSION) { + if (ntohl(version) != (uint32_t)HUNT_VERSION) { bad_ver(); /* NOTREACHED */ } diff --git a/number/number.c b/number/number.c index c7559e1..3086a86 100644 --- a/number/number.c +++ b/number/number.c @@ -78,9 +78,9 @@ static const char *const name1[] = { void convert(char *); int main(int, char *[]); -int number(const char *, int); -void pfract(int); -int unit(int, const char *); +int number(const char *, int, int *); +void pfract(int, int); +int unit(int, const char *, int *); void usage(void) __attribute__((__noreturn__)); int lflag; @@ -131,7 +131,7 @@ void convert(line) char *line; { - int flen, len, rval; + int flen, len, rval, singular; char *p, *fraction; flen = 0; @@ -174,7 +174,7 @@ badnum: errx(1, "illegal number: %s", line); --len; } - rval = len > 0 ? unit(len, line) : 0; + rval = len > 0 ? unit(len, line, &singular) : 0; if (fraction != NULL && flen != 0) for (p = fraction; *p != '\0'; ++p) if (*p != '0') { @@ -182,10 +182,10 @@ badnum: errx(1, "illegal number: %s", line); (void)printf("%sand%s", lflag ? " " : "", lflag ? " " : "\n"); - if (unit(flen, fraction)) { + if (unit(flen, fraction, &singular)) { if (lflag) (void)printf(" "); - pfract(flen); + pfract(flen, singular); rval = 1; } break; @@ -197,9 +197,10 @@ badnum: errx(1, "illegal number: %s", line); } int -unit(len, p) +unit(len, p, singular) int len; const char *p; + int *singular; { int off, rval; @@ -208,7 +209,7 @@ unit(len, p) if (len % 3) { off = len % 3; len -= off; - if (number(p, off)) { + if (number(p, off, singular)) { rval = 1; (void)printf(" %s%s", name3[len / 3], lflag ? " " : ".\n"); @@ -217,14 +218,16 @@ unit(len, p) } for (; len > 3; p += 3) { len -= 3; - if (number(p, 3)) { + if (number(p, 3, singular)) { rval = 1; (void)printf(" %s%s", name3[len / 3], lflag ? " " : ".\n"); } } } - if (number(p, len)) { + if (number(p, len, singular)) { + if (rval) + *singular = 0; if (!lflag) (void)printf(".\n"); rval = 1; @@ -233,17 +236,20 @@ unit(len, p) } int -number(p, len) +number(p, len, singular) const char *p; int len; + int *singular; { int val, rval; rval = 0; + *singular = 1; switch (len) { case 3: if (*p != '0') { rval = 1; + *singular = 0; (void)printf("%s hundred", name1[*p - '0']); } ++p; @@ -262,33 +268,42 @@ number(p, len) } rval = 1; } + if (val != 1) + *singular = 0; break; case 1: if (*p != '0') { rval = 1; (void)printf("%s", name1[*p - '0']); } + if (*p != '1') + *singular = 0; } return (rval); } void -pfract(len) +pfract(len, singular) int len; + int singular; { static const char *const pref[] = { "", "ten-", "hundred-" }; switch(len) { case 1: - (void)printf("tenths.\n"); + (void)printf("tenth"); break; case 2: - (void)printf("hundredths.\n"); + (void)printf("hundredth"); break; default: - (void)printf("%s%sths.\n", pref[len % 3], name3[len / 3]); + (void)printf("%s%sth", pref[len % 3], name3[len / 3]); break; } + if (!singular) { + printf("s"); + } + printf(".\n"); } void diff --git a/sail/pl_main.c b/sail/pl_main.c index 6183420..b8b26b1 100644 --- a/sail/pl_main.c +++ b/sail/pl_main.c @@ -219,7 +219,7 @@ reprint: printf("\nInitial broadside %s (grape, chain, round, double): ", n ? "right" : "left"); fflush(stdout); - scanf("%s", buf); + scanf("%9s", buf); switch (*buf) { case 'g': load = L_GRAPE; diff --git a/tests/number.-0.1 b/tests/number.-0.1 index fea1e89..69c365b 100644 --- a/tests/number.-0.1 +++ b/tests/number.-0.1 @@ -1,3 +1,3 @@ minus one. -tenths. +tenth. diff --git a/tetris/scores.c b/tetris/scores.c index d731e25..c2d36c9 100644 --- a/tetris/scores.c +++ b/tetris/scores.c @@ -335,7 +335,8 @@ checkscores(hs, num) continue; } } - levelfound[sp->hs_level] = 1; + if (sp->hs_level < NLEVELS && sp->hs_level >= 0) + levelfound[sp->hs_level] = 1; i++, sp++; } return (num > MAXHISCORES ? MAXHISCORES : num); @@ -374,11 +375,13 @@ showscores(level) for (i = MINLEVEL; i < NLEVELS; i++) levelfound[i] = 0; for (i = 0, sp = scores; i < nscores; i++, sp++) { - if (levelfound[sp->hs_level]) - sp->hs_time = 0; - else { - sp->hs_time = 1; - levelfound[sp->hs_level] = 1; + if (sp->hs_level < NLEVELS && sp->hs_level >= 0) { + if (levelfound[sp->hs_level]) + sp->hs_time = 0; + else { + sp->hs_time = 1; + levelfound[sp->hs_level] = 1; + } } } @@ -433,7 +436,7 @@ printem(level, offset, hs, n, me) continue; } sp = &hs[item]; - (void)sprintf(buf, + (void)snprintf(buf, sizeof(buf), "%3d%c %6d %-11s (%6d on %d)", item + offset, sp->hs_time ? '*' : ' ', sp->hs_score * sp->hs_level, diff --git a/trek/setup.c b/trek/setup.c index 1f14f27..fab5136 100644 --- a/trek/setup.c +++ b/trek/setup.c @@ -234,11 +234,14 @@ setup() for (i = 0; i < NQUADS; i++) for (j = 0; j < NQUADS; j++) { + signed char tmp; q = &Quad[i][j]; q->klings = q->bases = 0; q->scanned = -1; q->stars = ranf(9) + 1; - q->holes = ranf(3) - q->stars / 5; + tmp = ranf(3) - q->stars / 5; + tmp = tmp < 0 ? 0 : tmp; + q->holes = tmp; q->qsystemname = 0; }