print_items() uses field widths between 3 and 5. They go back all the
way to Empire 1, and are fine for the stock game. Widen the narrower
ones to 5, because a consistent field width looks tidier, and can
avoid misaligned columns with customized ships and land units.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Fix the bug demonstrated by the previous commit:
take_casualties_from_lands() limits total casualties to @each. It
should limit each land unit's casualties, and only if !may_kill. This
can lead to fewer casualties than called for; oops in
take_casualties(). Broken in commit 025e9cc25, v4.4.0.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Tweak military in land units to demonstrate that
take_casualties_from_lands() can kill fewer military than it should.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Commit 35ecc008c fixed take_casualties() to destroy land units only
when casualties demand it. This test demonstrated the change: inf#29
no longer dies. Good. However, this lost coverage of land units
dying in a sucessful defense. Bad.
I could tweak inf#29 to get destroyed again, but that would lose
coverage of the bug fixed by commit 35ecc008c. Make linf#28 die
instead.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Text after the first space is missing in the formatted output. That's
because .L takes just one argument, but we pass several. Broken in
commit 4e0d02b, v4.3.33. Fix by quoting the argument text.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
When autoconf is stale, include a reminder how to fix that in the
error message.
While there, cd to $nv like we do in src/scripts/gen-client-configure
for slightly terser code.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
The test for -x uses non-portable operator ==. Screwed up in commit
63c6dd6. Fix by using getopts instead.
Missing mandatory arguments aren't diagnosed. Screwed up in initial
commit 1991652, v4.3.0. Fix by checking shift's return status.
The error message for missing argument of -C neglects to print $0 and
uses echo in a non-portable way. Also screwed up in commit 1991652.
Fix the obvious way.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Commit ece998e fixed .tarball-version access from separate build tree
by adding $srcdir/ to it. That's wrong in m4_esyscmd(), because there
it runs at autoconf time, where $srcdir isn't necessary and doesn't
exist. Revert that part.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Since commit 1ec9b94, we derive the version number from git tags with
build-aux/git-version-gen. When a shallow clone doesn't include a
suitable tag, this fails, and make refuses to build anything. Since
Travis uses git-clone --depth=50, it'll break as soon as we've got
more than 50 commits since the last release.
Support arbitrarily shallow clones for limited purposes like testing
by falling back from a proper V.N-H version number to UNKNOWN-H.
To guard against use of such builds for other purposes, log a warning
on server startup, and print one on player login.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
play.c needs <string.h> since commit f1fc0df. My version of
<readline/readline.h> pulls it in, but at least Apple's (derived from
NetBSD's) doesn't, and we get warnings then. Add the missing
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
configure reads .tarball-version when the source tree isn't
git-controlled. Fails when the build tree is separate. Fix it to
read $srcdir/.tarball-version.
The occurence in Make.mk isn't wrong, because VPATH applies there.
Change it anyway, for consistency and a bit of extra robustness.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Sectors, ships, planes and land units are always visited in the same
order, but it doesn't hurt to be explicit.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
The build fails on Travis since we require autoconf 2.69 (commit
db055a). Travis still defaults to Ubuntu Precise, and Precise's
autoconf is too old. We could revert commit db055a and rely on Travis
to keep things working with old autoconf. But Precise reached end of
life a couple of months ago, and I suspect it's only a matter of time
until Travis drops it, too.
Fix the build on Travis by requesting Trusty. Its end of life is
planned for April 2019.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Notifications go to the mailing list and to the IRC channel.
Signed-off-by: Gerd Flaig <gefla@pond.sub.org>
Message-Id: <871so1nqcx.fsf@oxygen.pond.sub.org>
[Commit message tweaked]
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
As commit 1ec9b94 explains, the version reported by configure is fixed
at configure generation time. "make dist" happily distributes a stale
one. Not terrible, because all that's stale is the output of
configure --version, just embarrassing.
Make gen-tarball-version fail when the configure --version doesn't
match the tarball version.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Commit 1ec9b94 broke regeneration of configure for dist-client: it
uses .tarball-version, which exists only in the tarball, not in the
source tree.
Generating the client's autoconf stuff into the source tree is a
questionable idea anyway, as it won't run there. Generate it while
building the tarball instead.
Bonus: doesn't distribute a useless .dirty-stamp.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Commit 1ec9b94 made src/scripts/tarball generate .tarball-version and
.dirty-stamp. Hardcoding it like that there is a bit ugly.
Move it into a separate tweak script that is run right before tar.
We'll tweak some more in the next commits.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
We don't save $1 in a variable, only $1-$2. Okay, because we don't
need $1 by itself. However, the next commit will. So save it.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Commit e597257 folded $(bld_distgen) into $(src_distgen), but
neglected to update comments in .gitignore.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Commit 1ec9b94 normalized version numbers in test output to 4.3.34,
because that was thought to be the next version then. 4.3.34 has
become 4.4.0 meanwhile. Update the normalization just to avoid
mention of 4.3.34.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
"info Empire4" has become unwieldy: more than 4000 lines, almost a
quarter of a Megabyte. Split it up.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
The .NA header promises information on "Clients which communicate well
with the Empire4 Server". The page doesn't really deliver. It talks
about client support for asynchronous notifications. It stopped
listing separate client projects in 4.0.7 (1997). Not mentioning such
clients isn't just outdated, it's actively misleading.
Perhaps an up-to-date info page on clients would be useful, but I
can't write one right now. Delete.
Loses a bit of information for client developers that was tacked on in
4.0.7: pointers to dump commands, and an explanation of timestamps. I
trust client writers can find "info xdump" without this.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Looks like an attempt was made to have .SA point to info pages for
significantly changed things. It wasn't done consistently, though,
and it's impractical for Empire 4. Drop these references, and keep
only "Server".
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
The .NA show up in "info Server", like this:
Chainsaw ! Changes from KSU Empire to Chainsaw code
Empire2 ! Changes from the Chainsaw server to the Empire2 Server
Empire3 Changes from the Empire2 server to the Empire3 Server
Empire4 ! Changes from the Empire3 server to the Empire4 Server
[...]
Merc Changes from KSU code to Merc code
Old-empire ! Differences from 1.2 to UCB Empire
Tweak them to look like this:
Chainsaw ! Changes from KSU Empire to Chainsaw (1992-93)
Empire2 ! Changes from Chainsaw to Empire 2 (1995)
Empire3 Changes in Empire 3 (1995-96)
Empire4 ! Changes in Empire 4 (1996-present)
[...]
Merc Changes from KSU code to Merc code (1992)
Old-empire ! Differences from 1.2 to UCB Empire
The first paragraph of Empire2.t refers to "the new Empire 2" server.
Drop "new", because it clearly ain't anymore. Same for Empire3.t.
The first paragraph of Empire4.t claims "several changes/fixes" have
been made. Umm, that's only tenuously connected to reality by now.
Rewrite the paragraph.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
The .TH and .NA header promise information about "Wolfpack Code" and
"The Wolfpack Project", but the body doesn't really deliver. It's
basically the first paragraph of Empire4.t plus pointers to Options.t
and Empire.t. Has been that way since it was added in 4.0.2.
History.t covers the Wolfpack project more usefully, so delete this
one.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Ken Stevens stopped maintaining Empire many years ago, but "info
Empire2" and "info Empire3" still direct users to him. Drop that.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
check_trade() sets plane and land unit mobility to zero on trade.
Even when it's negative. Fix to leave it alone then.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>