<id> tag is changed to a Reverse-DNS form, and an accommodating
PACKAGE_RDNS is set in configure.ac to use it.
<name> and <summary> tags have been added, using existing autoconf
variable values.
The `appstream-util validate` command will complain about some
optionally-missing tags and a strict string length limit on some of
the <caption> tags. `validate-relax` passes, and by the letter of the
AppStream specification, we should be completely valid.
The ftp.idsoftware.com server died several months back. Some context:
<https://www.doomworld.com/forum/topic/96999-rip-ftpidsoftwarecom/>
Instead, point at the mirrors found in the idgames repository, using
the gamers.org version since this is the canonical copy everything else
mirrors from. Unfortunately it's not possible to point at the Doomworld
idgames interface since the patches don't appear in the database there.
Build chocolate-game-setup.6 directly instead of building
chocolate-setup.6 and copying it to for each game. Apply
substitutions to the template text to replace Chocolate,
chocolate etc., as well as substituting the proper default
cfg equivalent (e.g. heretic.cfg) for each game.
Move to a "substs" hash in docgen which contains pairs of strings
to substitute. Populate @GAME@, @GAME_UPPER@ and @CFGFILE@ based
on the game supplied via -g.
Make the corresponding substitutions in default.cfg.template. Now
all of {default,heretic,hexen,strife}.cfg.5 are correct for the
respective game.
Define and pass LONG_EXE_NAME and LONG_GAME_NAME within the
controlling Makefile when generating INSTALL.*, instead of
deriving their values within the template depending on whether
DOOM/HERETIC/HEXEN/STRIFE are defined.
This means we can incorporate the values from @PROGRAM_PREFIX@
and @PACKAGE_SHORTNAME@, instead of hardcoding chocolate- and
Chocolate, respectively.
Convert chocolate-setup.6 into a template file and generate outputs
based on @PROGRAM_PREFIX@.
Add @PACKAGE_SHORTNAME@ to the list of parameters handed to docgen
and make appropriate substitutions in the manpage templates.
This is in order to better support derivative engines.
Rework the manpages to be parameterized with @PROGRAM_PREFIX@ and
@PACKAGE_NAME@. Alter the `docgen` generator to substitute those
parameters. Supply those parameters via the autofoo Makefile.
Adjust the fixed path chocolate-server.6 to be generated from
server.template, similar to doom.template -> chocolate-doom.6.
Further work is required, not least renaming chocolate-setup.6,
but several further parameterizations.
If bugs are encountered, it may be helpful to get some extra detail
about the context in which the assertation failed, including the
offset inside the BEHAVIOR lump.
We do an array lookup based on the instruction we read, so it is
important that the instruction is within the bounds of the array. In
particular the instruction may an extension supported by an advanced
source port like ZDoom, that we don't support.
Stop using pointers to represent code location; instead use an offset
from the start of the lump. This can be continually validated for
correctness and we exit with an error if we pass the end of the lump.
Offsets like these (used for eg. CmdGoto instructions) should point to
a location inside the lump; otherwise it is an error and we should fail
an assertion.
If adding another character to the print buffer would cause a buffer
overflow, don't exceed the limits of the buffer. Similar protection
is already in place for CmdPrintString and CmdPrintNumber.