Find a file
Markus Armbruster 2b80ce93da edit: Fix integer argument range checking
Upper bounds corrected:

    cmd  key  struct member   wrong   correct   notes
    -------------------------------------------------
    edit l m  sct_mobil         255       127      1
           t  sct_ptime         255     32767
    edit c b  nat_btu          1024  max_btus
    edit p m  pln_mobil         255       127      1
    edit u F  lnd_harden        255       127	   1

Missing bounds supplied, arguments out of bounds are silently clipped
unless noted otherwise:

    cmd  key     struct member   bounds           notes
    ---------------------------------------------------
    edit c t     nat_tgms        0   USHRT_MAX       2
           m     nat_reserve     0   INT_MAX
           T...  nat_level[]     0   infinity
    edit s a     shp_pstage      0   PLG_EXPOSED     3
           b     shp_ptime       0   32767
           M     shp_mobil    -127   127
           c...  shp_item[]      0   load limit      4
    edit u Y     lnd_land       -1   size of table   5
           M     lnd_mobil    -127   127
           S     lnd_ship       -1   size of table   5
           Z     lnd_retreat     0   100
           c...  lnd_item[]      0   load limit      4
    edit p r     pln_range       0   max range
           s     pln_ship       -1   size of table   5
           y     pln_land       -1   size of table   5

Notes:

1. Values between SCHAR_MAX and 255 were cast to signed char, changing
the sign.

2. The real upper bound is the number of telegrams in the mailbox, but
counting them isn't worth it.

3. This check is particularly important, because values out of bounds
make the server refuse to start without -F, and empdump -x warn
"export has errors, not importable as is".

4. Values outside 0..ITEM_MAX got caught and clipped by
item_prewrite().  This check avoids the oops, and tightens the upper
bound for units.

5. Argument out-of-bounds are rejected.  This check is particularly
important, because unit numbers beyond the size of the table trigger
oopses.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
2013-06-06 19:52:26 +02:00
build-aux Move auxiliary build tools to build-aux/ 2013-05-08 14:35:04 +02:00
doc Put URIs and e-mail addresses in <angle brackets> 2013-05-26 09:48:16 +02:00
include prnat() prnatid(): New, common country name (#number) formatting 2013-06-06 19:52:26 +02:00
info info/version: Update example to current output 2013-05-26 17:13:52 +02:00
m4 Refresh autoconf macros from autoconf-archive-2013.04.06 2013-05-08 14:35:04 +02:00
man Put URIs and e-mail addresses in <angle brackets> 2013-05-26 09:48:16 +02:00
scripts Update copyright notice 2013-01-12 17:45:01 +01:00
src edit: Fix integer argument range checking 2013-06-06 19:52:26 +02:00
tests edit: Fix integer argument range checking 2013-06-06 19:52:26 +02:00
.gitignore Declare subjects instead of picking them up automatically 2013-05-08 06:57:57 +02:00
.travis.yml Add Travis CI configuration 2013-05-08 06:55:21 +02:00
bootstrap Replace other occurences of git-FOO by git FOO 2008-12-03 07:57:14 -05:00
configure.ac Bump version to 4.3.32 2013-05-20 17:41:08 +02:00
COPYING License upgrade to GPL version 3 or later 2011-04-12 21:20:58 +02:00
CREDITS Put URIs and e-mail addresses in <angle brackets> 2013-05-26 09:48:16 +02:00
GNUmakefile.in Update copyright notice 2013-01-12 17:45:01 +01:00
INSTALL Refresh auxiliary build tools from automake 1.11.6 2013-05-08 14:35:04 +02:00
Make.mk tests/actofgod: New, disabled for now because it oopses 2013-06-06 19:52:20 +02:00
README Put URIs and e-mail addresses in <angle brackets> 2013-05-26 09:48:16 +02:00

Welcome to Empire 4, code-named Wolfpack.

Empire is a multi-player, client/server Internet based war game.
Copyright (C) 1986-2013, Dave Pare, Jeff Bailey, Thomas Ruschak,
Ken Stevens, Steve McClure, Markus Armbruster

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License (in file
`COPYING'), or (at your option) any later version.

See file `CREDITS' for a list of contributors.

Directory `doc' has additional information.  File `doc/README'
describes the files there and what they talk about.

To build the server and set up a game, follow the steps below.

(1) Unpacking the source tree

    If you downloaded a tarball, unpack it.

    If you cloned a git repository, run bootstrap.  This requires
    recent versions of Autoconf and Automake to be installed.  See
    also doc/contributing.

(2) Building a server

    Prerequisites: IEEE Std 1003.1-2001 (POSIX.1-2001), GNU make, a
    curses library, Perl, and either nroff or GNU troff (`groff').

    See file `INSTALL' for detailed compilation and installation
    instructions.  Quick guide for the impatient: run configure; make;
    make install.  The last step is optional; everything runs fine
    right from the build tree.

    If configure reports "terminfo: no" in its configuration summary,
    highlighting doesn't work in the client.  Commonly caused by not
    having development libraries installed.  On Linux, try installing
    ncurses-devel.

    If make fails without doing anything, you're probably not using
    GNU make.  Some systems have it installed as `gmake'.

    Solaris supports POSIX.1-2001, but you need to set up your
    environment for that.  Try passing
        SHELL=/usr/xpg4/bin/sh PATH=/usr/xpg6/bin:/usr/xpg4/bin:$PATH
    to make.  See standards(5) for details.

(3) Creating a game

    * Create a configuration for your game.  make install installs one
      in $prefix/etc/empire/econfig ($prefix is /usr/local unless you
      chose something else with configure).  You can use pconfig to
      create another one.

    * Edit your configuration file.  See doc/econfig for more
      information.

      Unless you put your configuration file in the default location
      (where make install installs it), you have to use -e with all
      programs to make them use your configuration.

    * Run files to set up your data directory.

    * Run fairland to create a world.  For a sample world, try
      `fairland 10 30'.  This creates file ./newcap_script, which will
      be used below.  You can edit it to change country names and
      passwords.

      Check out fairland's manual page for more information.

    * Start the server.  For development, you want to run it with -d
      in a debugger, see doc/debugging.  Do not use -d for a real
      game!

    * Log in as deity POGO with password peter.  This guide assumes
      you use the included client `empire', but other clients should
      work as well.

      For help, try `info'.

      To change the deity password, use `change re <password>'.

    * Create countries with `exec newcap_script'.

    Your game is now up!

Naturally, there's more to running a real game than that, but that's
beyond the scope of this file.

Please report bugs to <wolfpack@wolfpackempire.com> or via SourceForge
<http://sourceforge.net/projects/empserver/> (registration required).

For more information or help, try rec.games.empire on Usenet, or send
e-mail to <wolfpack@wolfpackempire.com> and we'll try to answer if we
can.  Also check out our web site at <http://www.wolfpackempire.com/>.

Have fun!

Wolfpack!