Eric S. Raymond [Wed, 21 Jun 2017 20:54:10 +0000 (16:54 -0400)]
Fix GitLab issue #13 - The "eat" command exhibits strange behavior
The problem wasn't actually with "eat" but with "grate". Processing
of any two-word command with an object of "grate", when given at certain
locations including the start, inappropriately jumped directly
to the movement code (ignoring the verb).
There was a similar bug in the ancestral 2.5, though it manifested slightly
differently.
Eric S. Raymond [Wed, 21 Jun 2017 20:43:27 +0000 (16:43 -0400)]
Revert "Test coverage - Almost all of score.c". It's breaking tests.
Eric S. Raymond [Wed, 21 Jun 2017 20:37:59 +0000 (16:37 -0400)]
Revert "Test coverage - 100% score.c". It's breaking tests.
Aaron Traas [Wed, 21 Jun 2017 19:10:23 +0000 (15:10 -0400)]
Test coverage - 100% score.c
Aaron Traas [Wed, 21 Jun 2017 19:04:41 +0000 (15:04 -0400)]
Test coverage - Almost all of score.c
Aaron Traas [Wed, 21 Jun 2017 17:50:13 +0000 (13:50 -0400)]
xstrdup() not called anywhere in source. Removed.
Jason S. Ninneman [Wed, 21 Jun 2017 17:22:45 +0000 (10:22 -0700)]
Switch to 0-indexing for hint handling code.
Jason S. Ninneman [Wed, 21 Jun 2017 17:01:16 +0000 (10:01 -0700)]
Abolish HNTMAX and HNTSIZ in favor of HINT_COUNT.
This change necessitated include guards on newdb.h.
Peje Nilsson [Wed, 21 Jun 2017 16:34:07 +0000 (18:34 +0200)]
Replace SETPRM/[PR]SPEAK with variadic [pr]speak
Rename/rewrite old speak to vspeak and take a va_list
Add new speak that takes variadic parameters
Remove SETPRM & PARMS[]
David James Sherman [Wed, 21 Jun 2017 15:09:02 +0000 (17:09 +0200)]
Resolve GitLab issue #3. Applies MISRA and CERT guidelines.
MISRA C++:2008, 2-13-4 - Literal suffixes shall be upper case
MISRA C:2012, 7.3 - The lowercase character "l" shall not be used in a
literal suffix
CERT DCL16-C. - Use "L," not "l," to indicate a long value
CERT DCL16-CPP. - Use "L," not "l," to indicate a long value
CERT, DCL50-J. - Use visually distinct identifiers
Aaron Traas [Wed, 21 Jun 2017 16:14:24 +0000 (12:14 -0400)]
Test Coverage -- lots of new pieces of actions.c
Eric S. Raymond [Wed, 21 Jun 2017 15:58:58 +0000 (11:58 -0400)]
Documentation polishing.
Eric S. Raymond [Wed, 21 Jun 2017 15:45:16 +0000 (11:45 -0400)]
Documentation and polishing.
Eric S. Raymond [Wed, 21 Jun 2017 13:41:01 +0000 (09:41 -0400)]
YAMLify section 11 (hints).
Eric S. Raymond [Wed, 21 Jun 2017 11:39:10 +0000 (07:39 -0400)]
Document the YAML, remove some dead code, fix typos.
Eric S. Raymond [Wed, 21 Jun 2017 10:17:20 +0000 (06:17 -0400)]
Section 10 (class thresholds) is now parsed entirely from YAML.
Eric S. Raymond [Wed, 21 Jun 2017 00:44:21 +0000 (20:44 -0400)]
Further code simplification.
Eric S. Raymond [Wed, 21 Jun 2017 00:39:45 +0000 (20:39 -0400)]
Code simplification.
Eric S. Raymond [Wed, 21 Jun 2017 00:24:30 +0000 (20:24 -0400)]
Chage read handler argument to by-value.
This (sort of) documents the fact that, unlike say() and attack(),
read() never scribbles on the interpreter's command block.
What those other functions are doing is unclean - though less so than
fully exposed globals. I don't see a way to fix it that isn't pretty
intrusive, alas.
Eric S. Raymond [Wed, 21 Jun 2017 00:06:32 +0000 (20:06 -0400)]
WD* globals abolished. They're now members of the command block.
Jason S. Ninneman [Tue, 20 Jun 2017 23:09:33 +0000 (16:09 -0700)]
Fix another ob1 error.
Jason S. Ninneman [Tue, 20 Jun 2017 22:46:25 +0000 (15:46 -0700)]
Clean out some disused variables.
Jason S. Ninneman [Tue, 20 Jun 2017 22:43:08 +0000 (15:43 -0700)]
Fix off-by-one error.
Jason S. Ninneman [Tue, 20 Jun 2017 22:35:30 +0000 (15:35 -0700)]
Refactor how turn threshold penalties are accounted for.
Aaron Traas [Tue, 20 Jun 2017 22:43:19 +0000 (18:43 -0400)]
Test coverage -- more corner cases in actions.c
Eric S. Raymond [Tue, 20 Jun 2017 20:04:50 +0000 (16:04 -0400)]
Introduce command encapsulation structure.
Jason S. Ninneman [Tue, 20 Jun 2017 21:31:35 +0000 (14:31 -0700)]
Refactored dungeon generator.
Jason S. Ninneman [Tue, 20 Jun 2017 21:30:56 +0000 (14:30 -0700)]
Clean up adventure.yaml.
Jason S. Ninneman [Tue, 20 Jun 2017 16:02:34 +0000 (09:02 -0700)]
Don't exit on EOF from get_input().
Aaron Traas [Tue, 20 Jun 2017 16:06:49 +0000 (12:06 -0400)]
Test coverage - more corner cases in actions.c
Eric S. Raymond [Tue, 20 Jun 2017 17:38:11 +0000 (13:38 -0400)]
Comment polishing.
Eric S. Raymond [Tue, 20 Jun 2017 13:32:35 +0000 (09:32 -0400)]
Add test for "cage bird".
Eric S. Raymond [Tue, 20 Jun 2017 12:41:06 +0000 (08:41 -0400)]
Polish help text.
Eric S. Raymond [Tue, 20 Jun 2017 12:34:01 +0000 (08:34 -0400)]
Add -l to coverage testing.
Eric S. Raymond [Tue, 20 Jun 2017 12:20:34 +0000 (08:20 -0400)]
Documentation update.
Eric S. Raymond [Tue, 20 Jun 2017 11:20:03 +0000 (07:20 -0400)]
Fix off-by-one error that enabled the fuzzer to find a crash hole.
One has to allocate space for the trailing NUL, too.
Eric S. Raymond [Tue, 20 Jun 2017 10:52:52 +0000 (06:52 -0400)]
Test logic for lamp dimming triggering battery replacement.
Peje Nilsson [Mon, 19 Jun 2017 22:06:49 +0000 (00:06 +0200)]
Merge branch 'master' into magic-number
Jason S. Ninneman [Mon, 19 Jun 2017 21:49:15 +0000 (14:49 -0700)]
Fix typo and compiler warning.
Jason S. Ninneman [Mon, 19 Jun 2017 21:45:32 +0000 (14:45 -0700)]
Add token_to_packed() utility function.
Peje Nilsson [Mon, 19 Jun 2017 21:44:48 +0000 (23:44 +0200)]
Merge branch 'master' into magic-number
Peje Nilsson [Mon, 19 Jun 2017 21:44:03 +0000 (23:44 +0200)]
Cleanup Arithmetic on message number
Aaron Traas [Mon, 19 Jun 2017 20:26:14 +0000 (16:26 -0400)]
Test coverage More misuse of transitive verbs
Aaron Traas [Mon, 19 Jun 2017 20:07:35 +0000 (16:07 -0400)]
Test coverage - failure to fill
Aaron Traas [Mon, 19 Jun 2017 19:36:42 +0000 (15:36 -0400)]
Test coverage -- intransitive carry when one object is present
Aaron Traas [Mon, 19 Jun 2017 19:21:03 +0000 (15:21 -0400)]
Test coverage - drink with no valid object
Eric S. Raymond [Mon, 19 Jun 2017 21:21:45 +0000 (17:21 -0400)]
Mostly confine assumptions about what token_t is to misc.c
The token_t things like WD* are presently longs and will someday be
char[6]. By introducing some trivial functions - wordeq(),
wordempty(), and wordclear() - we mostly hide the difference.
All runtime knowledge about packing now lives only in misc.c and the
list of magic WORD_* defines in advent.h. Outside this, literals are
now accessed through #define names that could expand to either longs
or strings.
Still to be done: WD* values are sometiimes compated to zero in
ways implying they can be negative. Must figure out wat thus means.
Eric S. Raymond [Mon, 19 Jun 2017 20:53:55 +0000 (16:53 -0400)]
Concentrate all magic-number values for packed-string constants in one place.
Eric S. Raymond [Mon, 19 Jun 2017 18:20:45 +0000 (14:20 -0400)]
More semantic typing - a step towards eliminating packing.
Aaron Traas [Mon, 19 Jun 2017 17:39:49 +0000 (13:39 -0400)]
Really 100% test coverage for saveresume.c
Aaron Traas [Mon, 19 Jun 2017 17:23:24 +0000 (13:23 -0400)]
Should have 100% coverage on saveresume.c now
Eric S. Raymond [Mon, 19 Jun 2017 16:53:43 +0000 (12:53 -0400)]
Publish more things on the website.
Eric S. Raymond [Mon, 19 Jun 2017 16:49:07 +0000 (12:49 -0400)]
Boolify some logical variables.
NHOrus [Mon, 19 Jun 2017 17:13:50 +0000 (20:13 +0300)]
Even less magic
Aaron Traas [Mon, 19 Jun 2017 17:09:15 +0000 (13:09 -0400)]
Save/resume fail test coverage -- test works in Docker now
NHOrus [Mon, 19 Jun 2017 16:29:00 +0000 (19:29 +0300)]
-r doesn't show with NOSAVE build
NHOrus [Mon, 19 Jun 2017 16:11:07 +0000 (19:11 +0300)]
No need to tease with excluded options
Eric S. Raymond [Mon, 19 Jun 2017 15:37:03 +0000 (11:37 -0400)]
Revert "Improved test coverage -- save/resume fail"
Fails in GitLab CI - looks like /dev/badfilename can actually be opened there.
Aaron Traas [Mon, 19 Jun 2017 13:25:36 +0000 (09:25 -0400)]
Improved test coverage -- save/resume fail
Eric S. Raymond [Mon, 19 Jun 2017 15:09:24 +0000 (11:09 -0400)]
Magic-number elimination.
Eric S. Raymond [Mon, 19 Jun 2017 15:00:23 +0000 (11:00 -0400)]
Magic-number elimination. Fix possible glitch in troll-bridge death.
Eric S. Raymond [Mon, 19 Jun 2017 14:32:58 +0000 (10:32 -0400)]
Add axeorama log, extending test coverage.
Eric S. Raymond [Mon, 19 Jun 2017 13:46:04 +0000 (09:46 -0400)]
Restructure some code.
Eric S. Raymond [Mon, 19 Jun 2017 12:43:51 +0000 (08:43 -0400)]
L12 is gone again. Magic numbers have been almost eliminated.
Eric S. Raymond [Mon, 19 Jun 2017 12:37:19 +0000 (08:37 -0400)]
Magic number elimination, repair some careless replace damage.
Eric S. Raymond [Mon, 19 Jun 2017 11:41:59 +0000 (07:41 -0400)]
Documentation tweak.
Peje Nilsson [Mon, 19 Jun 2017 08:24:48 +0000 (10:24 +0200)]
Remove goto L12 - take two
On't know if you let me near this code again but here is a second
stab at removing "goto L12"
Previous attempt failed because of trying to continue the outer
do{}while(false)
Adding an extra for(;;) loop where the only repeat is the former
"goto L12" is replaced by continue. All other exits are returns
and a break;
Eric S. Raymond [Mon, 19 Jun 2017 11:07:45 +0000 (07:07 -0400)]
Improve test coverage.
Jason S. Ninneman [Mon, 19 Jun 2017 04:11:06 +0000 (21:11 -0700)]
Reorganize debug build options.
* 'make advent' by itself can be considered the 'release' build.
* 'make debug' now does 'make linty'.
Eric S. Raymond [Mon, 19 Jun 2017 03:31:59 +0000 (23:31 -0400)]
Get usage message into coverage tests.
Jason S. Ninneman [Mon, 19 Jun 2017 03:02:03 +0000 (20:02 -0700)]
Abolish MAXDIE in favor of maximum_deaths.
Jason S. Ninneman [Mon, 19 Jun 2017 02:59:43 +0000 (19:59 -0700)]
Clean old obit messages from adventure.yaml.
Jason S. Ninneman [Mon, 19 Jun 2017 02:54:48 +0000 (19:54 -0700)]
Remove message pointer math in croak().
Jason S. Ninneman [Mon, 19 Jun 2017 02:51:59 +0000 (19:51 -0700)]
Change YES() to take const char* arguments.
Jason S. Ninneman [Mon, 19 Jun 2017 02:44:15 +0000 (19:44 -0700)]
Give obituary messages their own data structure.
Eric S. Raymond [Mon, 19 Jun 2017 02:35:03 +0000 (22:35 -0400)]
Typo fix.
Eric S. Raymond [Mon, 19 Jun 2017 02:31:58 +0000 (22:31 -0400)]
More repairs on search-replace results.
Eric S. Raymond [Mon, 19 Jun 2017 02:24:16 +0000 (22:24 -0400)]
Fix search-and-replace error.
Eric S. Raymond [Mon, 19 Jun 2017 01:17:57 +0000 (21:17 -0400)]
No longer restricted to 6-character FORTRAN identifiers.
Eric S. Raymond [Mon, 19 Jun 2017 00:33:36 +0000 (20:33 -0400)]
Attempt to deconfuse the coverage analyzer.
Eric S. Raymond [Mon, 19 Jun 2017 00:24:37 +0000 (20:24 -0400)]
Reindent and cleanup.
Eric S. Raymond [Mon, 19 Jun 2017 00:09:39 +0000 (20:09 -0400)]
Add project logo. It'll have to do until we find an image of a miner's lamp.
Bob Little [Sun, 18 Jun 2017 23:33:21 +0000 (19:33 -0400)]
magic numbers, show usage, fixed linty warnings
Show usage when using bad parameter with ./advent
Converted magic numbers to enums for BUG(). Also bug now shows
stringify'ed version of bug enumeration (not just a number).
Jason S. Ninneman [Sun, 18 Jun 2017 21:14:13 +0000 (14:14 -0700)]
Fix bug that made YES() case-sensitive.
Also fix a related memory leak.
Jason S. Ninneman [Sun, 18 Jun 2017 20:37:51 +0000 (13:37 -0700)]
Gut and rebuild YES() with cleaner approach that doesn't rely on packing.
The new support functions get_input() and echo_input() (and others not made yet) will eventually replace GETIN() and MAPLIN().
Eric S. Raymond [Sun, 18 Jun 2017 20:39:01 +0000 (16:39 -0400)]
This should get test coverage to 93%.
Eric S. Raymond [Sun, 18 Jun 2017 20:27:12 +0000 (16:27 -0400)]
Improve test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 20:08:09 +0000 (16:08 -0400)]
Improve test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 19:50:52 +0000 (15:50 -0400)]
Improve test coverage
Eric S. Raymond [Sun, 18 Jun 2017 19:05:17 +0000 (15:05 -0400)]
Repair plover teleport and add a test for it.
Eric S. Raymond [Sun, 18 Jun 2017 18:15:54 +0000 (14:15 -0400)]
Extent test coverage to plover room access.
Eric S. Raymond [Sun, 18 Jun 2017 18:02:24 +0000 (14:02 -0400)]
Code simplification.
Eric S. Raymond [Sun, 18 Jun 2017 17:20:04 +0000 (13:20 -0400)]
Remove unused code.
Jason S. Ninneman [Sun, 18 Jun 2017 17:06:14 +0000 (10:06 -0700)]
Rename newspeak() to speak().
Eric S. Raymond [Sun, 18 Jun 2017 16:51:05 +0000 (12:51 -0400)]
Refactor scoring so score() does not conditionally exit.
Eric S. Raymond [Sun, 18 Jun 2017 15:55:10 +0000 (11:55 -0400)]
Improve test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 15:36:03 +0000 (11:36 -0400)]
Improve test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 15:14:44 +0000 (11:14 -0400)]
Improve test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 14:55:09 +0000 (10:55 -0400)]
Improve test coverage.
Eric S. Raymond [Sun, 18 Jun 2017 14:03:40 +0000 (10:03 -0400)]
Improve test coverage.