Commit Graph

697 Commits

Author SHA1 Message Date
jsm
1ce2a7dce3 Make word list for hangman selectable at run time. 1999-09-17 20:45:48 +00:00
jsm
010f0ab865 Convert tetris to use <err.h> functions. 1999-09-17 20:44:51 +00:00
jsm
ba40c8d63d Fix some uses of NULL as non-pointer and 0 for null pointer. 1999-09-17 17:07:11 +00:00
jsm
786fb53653 Use `extern' for header variable declarations in trek(6). 1999-09-17 17:06:08 +00:00
jsm
52c6bf2220 Change quiz `pres' data file to include vice-presidents, and fix some
minor errors.

From OpenBSD.
1999-09-14 20:04:02 +00:00
jsm
4092f192c0 Update pom to the third edition of Duffett-Smith's book, and clean it
up somewhat.  Change time specification format to similar to that used
by date(1) - taking a command line argument in seconds since the Epoch
is silly.  Date parsing based on code from date(1).

Based on work by Paul Janzen for OpenBSD.
1999-09-14 20:00:07 +00:00
jsm
5e8cc984ee Declare variables in extern.h as extern, and add non-extern
declarations to globals.c.
1999-09-14 19:54:47 +00:00
jsm
5b8f738447 Use time() instead of gettimeofday(). 1999-09-14 18:08:46 +00:00
jsm
ddc89b7f91 Convert snake to use curses, and generally clean it up somewhat.
Includes bugfixes from or inspired by OpenBSD.
1999-09-14 18:07:21 +00:00
jsm
533a40974d Make cribbage use the POSIX.2 pager behaviour. 1999-09-13 17:27:36 +00:00
jsm
34d9941aa7 Fix buffer overrun in rogue. 1999-09-13 17:19:55 +00:00
jsm
a1038d000e Fix uses of names of library functions for other purposes. 1999-09-13 17:18:56 +00:00
jsm
7dc5308d13 A couple more checks for file descriptor < 3 missed earlier. 1999-09-13 17:15:42 +00:00
jsm
50ab22237f Remove rogue's old and bit-rotten cut-down version of curses. 1999-09-13 17:14:07 +00:00
hwr
435463f6cb Split limericks into "normal" and "offensive" ones.
Fixes PR 6202 by Matthias Grutzeck <grut@teco.edu>.
1999-09-12 10:15:46 +00:00
hwr
2abe3ab9b5 These fortunes conatain offensive language.
These were originally unamerican.{fake,real}
Part of the work on PR 6202.
1999-09-12 10:06:21 +00:00
hwr
81dda5dccb Moved to unamerican.real-o 1999-09-12 09:57:50 +00:00
hwr
8d799a73e4 Moved to unamerican.fake-o 1999-09-12 09:54:25 +00:00
jsm
5367f3400c Security improvements for games (largely from or inspired by OpenBSD).
Games which run setgid from dm, but don't need to, should drop their
privileges at startup.

Games which have a scorefile should open it at startup, then drop all
privileges leaving just the open writable file descriptor.  If the
game can invoke subprocesses, this should be made close-on-exec.

Games with scorefiles should make sure they do not get a file
descriptor < 3.  (Otherwise, they could get confused and corrupt the
scorefile when using stdin, stdout or stderr.)

Some old setuid revokes from the days of setuid games change into gid
revokes.
1999-09-12 09:02:20 +00:00
kleink
8467923c15 Use STD*_FILENO. 1999-09-10 10:47:56 +00:00
jsm
18c51c04de Check for write errors in auxiliary programs used during build of games. 1999-09-10 00:18:20 +00:00
jsm
68603a9d0e Compare getchar() against EOF, not -1. 1999-09-10 00:16:43 +00:00
jsm
271baf14b4 Fix glitch in const changes (bin/8365 from John.P.Darrow@wheaton.edu). 1999-09-10 00:03:14 +00:00
jsm
2b25de3a90 Include <time.h> in various places in the games where time() or time_t
are used.
1999-09-09 17:30:17 +00:00
jsm
a9c7f9b096 Check for failure of malloc() and calloc() at various places in the games. 1999-09-09 17:27:58 +00:00
simonb
0012c0940d Remove extra blank line in copyright. 1999-09-09 06:30:10 +00:00
jsm
5fb18dd9da Use the symbolic names SEEK_SET' and O_RDONLY' where appropriate in
the games.
1999-09-08 21:57:16 +00:00
jsm
b03d4fa882 Add __noreturn__' and __unused__' attributes where appropriate to
the games.

This merges in all such remaining changes from the Linux port of the
NetBSD games, except in hunt (where substantial changes from OpenBSD
need to be looked at).

Most noreturn attributes were previously added in bin/6144, with some
others that were missed then in bin/8082.  Previous `unused'
attributes were covered in bin/6557, bin/8058 and other PRs (all these
PRs have already been handled and closed).
1999-09-08 21:45:25 +00:00
jsm
092d313019 Add use of `const' where appropriate to the games.
This merges in all such remaining changes from the Linux port of the
NetBSD games, except in hunt (where substantial changes from OpenBSD
need to be looked at).

Some such changes were previously covered in PRs bin/6041, bin/6146,
bin/6148, bin/6150, bin/6151, bin/6580, bin/6660, bin/7993, bin/7994,
bin/8039, bin/8057 and bin/8093.
1999-09-08 21:17:44 +00:00
jsm
44a90d0991 Removed unused array Movenames[]. 1999-09-08 20:43:48 +00:00
simonb
e42b2048d4 Convert to something resembling KNF. 1999-08-21 10:40:03 +00:00
simonb
e28c422151 Instead of writing out a structure that contains pointers as the header
of the card decks file, just write out the number of cards for each
deck.  Also use "off_t" for offsets into the file (that are stored after
the number of cards) instead of "long".
/usr/share/games/cards.pck is now MI.
1999-08-21 09:23:44 +00:00
simonb
87500c939d Use new endian-specific conversion macros - 64-bit off_t's are now
the stored the same regardess of the byte order of the generating
host.

Note in the strfile(8) man page that all fields are big-endian, not
in network byte order.
1999-08-21 07:02:46 +00:00
simonb
ba77c9abaf Don't chown installed files or directories if UNPRIVILEGED is defined.
"make build" should now work as a non-root user (tested on Alpha).
mtree spits out lots of warnings during "make distrib-dirs", but
these are non-fatal.
1999-08-21 06:30:11 +00:00
simonb
b729f2c755 Use ${INSTPRIV} with ${INSTALL}. 1999-08-21 06:27:29 +00:00
hubertf
96651fe764 Make phrase to enter password again clearer 1999-08-18 01:39:16 +00:00
enami
d8ad2663a8 In name section, use .Dq macro rather than writing double quote directly. 1999-08-17 03:36:35 +00:00
simonb
299578ebd5 Spell "privilege" correctly (correct spelling from Jonathan Stone). 1999-08-16 02:59:22 +00:00
tron
7cef41650e Adapt to change of "termcap.h". 1999-08-14 16:38:45 +00:00
tron
b3cf7d7788 Adapt to change in "termcap.h". 1999-08-14 16:36:42 +00:00
tron
679f4a54e3 Adapt to change of "termcap.h". 1999-08-14 16:29:22 +00:00
sommerfeld
7e9fe5fb1e Fix the part of pr8201 which is IMHO a bug: the error message now goes
to stderr.

The existing error message ("I don't know what xxx means") is
unchanged, as it is stylisticly in keeping with the light-hearted
nature of the program, and is also more likely to be accurate than the
"no such acronym" error message proposed in 8201.
1999-08-13 03:02:06 +00:00
hubertf
ead3c28a8d Leave ^Z-handling to the system (curses? no idea, at least it works :-),
and don't wait for two seconds when game is over.
1999-08-10 21:52:43 +00:00
hubertf
2e41cf04d2 Print score after endwin() so it isn't deleted immediately afterward. 1999-08-08 03:08:08 +00:00
simonb
32a44f6987 Revert inclusion of <string.h> now that curses has been fixed. 1999-08-08 02:06:01 +00:00
thorpej
a451d97336 Fortunes from those Unamerican Activities bumper stickers you see on
mountain bikes owned by Gen-X'ers.
1999-08-04 22:45:09 +00:00
thorpej
810b5148c4 Need <strings.h>. 1999-08-04 18:38:12 +00:00
hubertf
a71d955669 This patch converts worms(6) to use curses, thereby
simplifying the code and improving its portability.  It also adds a
delay option from OpenBSD, to allow reasonable speed display on fast
terminals, adds use of const, and fixes signal handling and use of
errx() where appropriate.

Patch supplied in PR 6661 by Joseph Myers <jsm28@cam.ac.uk>.
1999-07-30 02:23:27 +00:00
hubertf
1543eff804 This patch converts rain(6) to use curses, thereby
significantly simplifying the code and improving its portability.  It
also adds a delay option from OpenBSD to make the display go at a
useful speed on fast terminals, and fixes signal handling to make it
reliable.

Patch supplied by Joseph Myers <jsm28@cam.ac.uk> in PR 6659.
1999-07-30 02:14:56 +00:00
hubertf
ef49c17e92 This patch fixes adventure(6) to use `extern' on declarations of
objects in its header file, and to add corresponding definitions to
init.c accordingly.  (See the C standard - relying on linker commons
where there are multiple uninitialised declarations of an object in
the program traditionally works on Unix, but is not standard C.)

The patch also removes a bit-rotten code fragment under #ifdef
OLDSTUFF.

Patch submitted in PR 8105 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-28 23:23:39 +00:00
hubertf
c26f3e09fd This is a trivial fix to backgammon(6): '\a' is cleaner than '\007'.
Submitted in PR 8104 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-28 23:15:51 +00:00
hubertf
18ee317315 This patch makes worm(6) keep the cursor on the head of the worm.
Submitted by Joseph Myers <jsm28@cam.ac.uk> in PR 8103.
1999-07-28 23:09:45 +00:00
hubertf
303b1c7490 This patch adds references to the main punched card, paper tape and
Morse code standards to the bcd(6) manpage (which also serves as the
manpages ppt(6) and morse(6)).

(The only one of these standards I have read is the ECMA-10 paper tape
standard, which is also probably the least readily available, since
ECMA don't supply copies of obsolete standards, though they will
supply printed copies of any or all of their current standards at no
charge.)

Patch submitted in PR 8102 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-28 23:01:59 +00:00
hubertf
062503c344 This patch makes bcd(6) use `const' where appropriate, and use
unsigned char rather than char for values that end up passed to
isascii() and also used as array indices.

Patch submitted by Joseph Myers <jsm28@cam.ac.uk> in PR 8093.
1999-07-28 02:12:33 +00:00
hubertf
d29d591c01 This patch fixes a remaining relic of the backgammon(6) "execute
saved game to continue playing" problem described in bin/6077.

Patch contributed by Joseph Myers <jsm28@cam.ac.uk> in PR 8092.
1999-07-28 02:07:39 +00:00
hubertf
d8b3f85961 In atc(6), the function getAChar() has BSD and SYSV variants to deal
with variations in EINTR behaviour, but the optimisation of using the
BSD version where the SYSV version isn't needed is insignificant.
This patch therefore simplifies the code by making there be just one
version, a more paranoid (about EOF when errno is already EINTR)
version of the SYSV code.  Since the BSD/SYSV defines are mainly used
to control whether BSD timers are used, this helps where BSD timers
but SYSV EINTR handling are wanted.

Patch supplied in PR 8091 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-28 02:01:30 +00:00
hubertf
6c243d931c This patch improves the handling of save files in battlestar(6), by
allowing the user to choose the name of the save file and specify it
on the command line when restoring.  It also eliminates a buffer
overrun in determining the path to the save file, and any particular
arbitrary limit on the name length.  In the name of a tidier home
directory, the default name is changed from "Bstar" to ".Bstar".

Patch supplied in PR 8085 by Joseph Myers <jsm28@cam.ac.uk>
Minor modification (s/startup/filename/ in initialize()) by me.
1999-07-28 01:45:41 +00:00
drochner
b0c1735026 make sure only whole words are matched, use [:space:] RE to avoid embedded
<TAB>s
1999-07-27 15:41:27 +00:00
hubertf
6ec2bcb1c2 Remove empty functin check_adir() and references to it. 1999-07-26 21:14:21 +00:00
hubertf
83d9f5b7e0 This patch adds to backgammon(6) a couple of noreturn attributes
missed in bin/6144.

Patch submitted in PR 8082 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-26 20:56:03 +00:00
hubertf
b8d8fccc22 This patch makes backgammon(6) check that, if you use the -s option to
recover a saved game, then you specify a file name.

Patch submitted in PR 8081 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-26 20:50:44 +00:00
hubertf
79705e8498 This adds a check for memory allocation failure to one place in
backgammon(6).  The use of write(2) for the message may seem odd, but
is used in another place in this game.  (Actually, a lot of
backgammon(6) could do with being substantially cleaned up.)

Patch submitted in PR 8080 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-26 18:39:06 +00:00
briggs
b0412de83c Check whatis(1) if we don't find an acronym matching the argument 1999-07-25 20:29:04 +00:00
thorpej
2464b36e0a We're in section 6. 1999-07-25 20:02:48 +00:00
hubertf
03fc787fb7 This patch marks unused parameters in atc(6) as such.
Patch submitted in PR 8058 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-25 00:24:38 +00:00
hubertf
420d34ff13 Hardcore const poisoning
Patch submitted by Joseph Myers <jsm28@cam.ac.uk> in PR 8057
1999-07-25 00:06:13 +00:00
hubertf
5cfc1e8dc6 This patch makes atc(6) check for memory allocation failure.
Patch submitted by Joseph Myers <jsm28@cam.ac.uk> in PR 8056,
with small enhancement to make clearer when loser() is called
with NULL.
1999-07-24 23:58:15 +00:00
mjl
c5a4ae7a2a Use getopt instead of home grown command line parsing.
Patch from Joseph Myers <jsm28@cam.ac.uk> in PR/8062.
1999-07-24 15:50:44 +00:00
lukem
fb5a2a2eb1 remove sh warning when invoked with no args 1999-07-22 10:08:17 +00:00
mrg
7199fd8f7b add wtf 1999-07-22 01:05:20 +00:00
mrg
3fd868859a Allen Briggs' wtf(6) to grovel the acronyms database. 1999-07-22 01:03:20 +00:00
hubertf
b7e11e5c37 const poisoning
Patch submitted in PR 8039 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-21 13:19:10 +00:00
hubertf
6cc6041b97 When atc(6) parses its game definition files, the check for `width'
being defined more than once incorrectly checks for `height' having
been previously defined instead.

Patch submitted in PR 8038 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-21 13:10:47 +00:00
hubertf
e1c8885621 Drop setgid privs early, via OpenBSD
Reported in PR 5970 by Joseph Myers <jsm@octomino.demon.co.uk>
1999-07-21 04:04:21 +00:00
hubertf
7287839679 Drop setgid privs early. Via OpenBSD, reported in PR 5970 by
Joseph Myers <jsm28@cam.ac.uk>
1999-07-21 04:02:29 +00:00
hubertf
22c39e3b98 Drop setgid privs early; via OpenBSD reported in PR 5970 by
Joseph Myers <jsm28@cam.ac.uk>
1999-07-21 03:59:41 +00:00
hubertf
054e79fedd Drop setgid privileges early. Derived from OpenBSD and sent in as PR 5970
by Joseph Myers <jsm28@cam.ac.uk>.
1999-07-21 03:56:53 +00:00
hubertf
146de2e635 Back out last due to think o on my side: we don't start banner through
dm(6), so there's no setgid privileges to discard. Pointed out by
Joseph S. Myers <jsm28@cam.ac.uk>
1999-07-19 19:07:17 +00:00
hubertf
ccb3350fe4 Drop setgid privs passed from dm(6).
Patch submitted in PR 5945 by Joseph S. Myers <jsm28@cam.ac.uk>
1999-07-19 00:42:59 +00:00
hubertf
3521abbb40 As in previously sent patches: backgammon(6) does not need setgid
games privileges from dm, so should revoke them on startup.

Patch submitteed in PR 8024 bye Joseph Myers <jsm28@cam.ac.uk>
1999-07-19 00:33:58 +00:00
hubertf
aac1ec24ab Adventure(6) should check for errors (e.g. disk full or quota
exceeded) when writing out saved games. Do so!

Patch supplied by Joseph Myers <jsm28@cam.ac.uk> in PR 8016
1999-07-17 20:02:48 +00:00
hubertf
d5f85ed9c9 The patch below improves the security of the game atc(6), by having it
open the score file at the start and then drop all setgid privileges
while keeping a (close-on-exec) file descriptor open to it.  In order
to allow this the static data files have to be made world readable.
In addition a potential buffer overrun with corrupted score files is
avoided by more careful use of scanf (note that SCORE_SCANF_FMT is
defined alongside the definition of the relevant structure).

Submitted in PR 8015 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-17 19:57:03 +00:00
hubertf
fbaff02b26 Add two .Els that nroff was complaining to miss. 1999-07-17 19:48:40 +00:00
hubertf
dceb24647b This patch (a) makes arithmetic(6) revoke any setgid privileges it got
from dm; (b) marks an unused parameter as such.

Submitted in PR 8014 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-17 19:11:30 +00:00
hubertf
adf74b1e92 This patch cleans up the handling of the variable `saved' in
adventure(6).  The handling of this variable is somewhat confusing,
since it is used for two different purposes (controlling the time
required before a saved game can be restored, and controlling various
aspects of dwarf behaviour); in fact, it is also declared twice in
hdr.h.  Except possibly when saving a game fails, these uses can never
interfere; when used for controlling dwarf behaviour, we always have
saved == -1.  This can be better understood with reference to the
original PDP-10 FORTRAN source (URL in patch, since hdr.h references
the comments of the FORTRAN as still relevant to this version) of
which the C version is a direct translation: the wrong value for
`saved' meant that someone was cheating and had bypassed normal
initialisation.  Saving was done by halting and telling the user to
save their core image, so the question of carrying on after saving
failed to open the output file did not arise.

This patch separates the uses of `saved' into uses of two separate
variables.

Closes PR 8005 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-16 01:38:20 +00:00
hubertf
24d3aaa397 Const poisoning.
Patch submitted in PR 7993 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-14 22:52:07 +00:00
hubertf
4502aed41f This patch fixes a -Wcast-qual warning in wump(6).
Submitted in 7994 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-14 22:49:27 +00:00
hubertf
9c8243f4e2 Fix scoring, submitted in PR 7992 by Joseph Myers <jsm28@cam.ac.uk> 1999-07-14 22:46:21 +00:00
hubertf
12a0758a42 From PR 7987 by Joseph Myers <jsm28@cam.ac.uk>:
More battlestar(6) spelling and punctuation fixes for battlestar(6).
These ones come from OpenBSD.
1999-07-14 17:42:13 +00:00
hubertf
148eb780dc This patch makes fish(6) honour PAGER for viewing the instructions.
The detailed behaviour follows POSIX.2.  A similar patch for wump(6)
which was accepted is in bin/6699.  Fish does not need any setgid
privileges it gets from dm, so this patch also moves the gid resetting
earlier.

Reported in PR 7986 by Joseph Myers <jsm28@cam.ac.uk>
1999-07-14 17:30:21 +00:00
hubertf
c1f52f97cd From PR 7988 by Joseph Myers <jsm28@cam.ac.uk>: use the symbolic
name SEEK_SET for values which end up as the third argument of
fseek(), rather than a hard-coded 0.
1999-07-14 17:23:53 +00:00
hubertf
76139748e2 From PR 7985 by Joseph Myers <jsm28@cam.ac.uk>:
games/adventure/setup.c fails to check for errors when writing its
output.  This means that, if the disk fills up at this point during a
build, it would nevertheless fail to return an error status.
1999-07-14 17:21:03 +00:00
sommerfeld
3365b567da man page rewritten into -mandoc by dholland@eecs.harvard.edu; from PR7861 1999-06-27 04:35:42 +00:00
christos
605ec8abd1 Fixi uninit vars warnings. 1999-05-16 00:15:46 +00:00
christos
4cb49d76cc Add missing prototypes 1999-05-16 00:03:35 +00:00
christos
18dfb39e84 Add -A for automatic playing mode.
Make the score file MI
1999-05-15 23:56:35 +00:00
kristerw
8e5038f0a3 Fix Y2K buffer overflow (from OpenBSD). 1999-04-25 19:08:34 +00:00
kristerw
a9a6e776fa Buffer overflow fix (from OpenBSD) 1999-04-24 22:09:06 +00:00
simonb
a2ed16d0dd initscr() returns a pointer, compare return value with NULL and not
an int.
Compatible with other versions of curses.
1999-04-18 03:30:12 +00:00
simonb
4e92840504 Don't frob the interals of a WINDOW*, use the mvinch() macro. 1999-04-18 03:29:01 +00:00