Change log:
2.48 <- 2.47 [Dates 1998 and early 1999]
  4/20 Pedantic routing code for COL back to system
       Fleets/Groups in hyperspace via S command flagged.
       Removed the last (?) gets() in code from n2inputplayer
       movephase() now only moves your groups in forecasts.
       Two 'Your groups' to 'Your Groups' changes- ships.c & planets.c
       STATS code finished & doc'd.
       PEDANTIC is now the default.
       Proofread this file. (:-)
  4/24 Footnote formating is still wrong. Sigh.
       PEDANTIC was flagging probes, and missing a \n.
  5/1  PEDANTIC missing \n for fleets
  5/7  Added check for driveless, shielded cargo ships to be a warning,
       driveless unshieled cargo ships are errors (forecaster only)
       per discussion with John Cochran.
  7/3  Fixed a problem with routes where they could give away named
       systems that you can reach with a col group.
       STATS code prints NaN if no drive/sheild/.... fixed
       cmd_init() now wipes err_tmp (g 0 would use err_tmp, even if
       not set)
       isnum() now takes NZPINT which only allows 1+, not 0+,
       ninputgroup() now uses it, as does b_cmd() and matchgroup()
       C command no longer puts extra cruft in races:players
  8/31 C_cmd and addplayer legal_name calls don't work?
       @ command error now explicitly done.
       move all h*str* functions into Str.c, created str.h, changed
       code to compile again with these changes (Str.o for Edit,
       blind2ascii, ascii2blind, dbg-plus, New-game), canseeplanet into ?2?
       2nd note on interception added.
       Detailed Intercept section added to the rules.
  9/5-6 Started rewiting server code in C
  9/8  misc.c legal_name code was missing some {}'s that caused legal
       names to bomb...
  9/20 Fixed bug in planet_value() which factored in planet size twice.
       Alien shiptypes now are printed in alpha order, not creation order.
       New option SORTTYPE allows you to have your types sorted on
       alpha order or creation order. Added to rules, too [not quick ref]
       Added note O OPTION/O NO OPTION
  9/27 Whacked last (I hope) gets from enterturn.c (799).
       Added col/cap/mat to TECHPLUS GM code.
 10/24 Added Q command to code and docs.
       Updated FAQ
       Test.sh also tries to build CServer, Edit, ascii2blind, blind2ascii
       Compile-all code tweaked to easily allow new OS's to be added.
       C server code put into /server directory.
 11/1  Minor change in output of illegal player name output.
 11/16 Moved listlen() into misc.c, since the sorting shiptypes code
       in report/ships.c wants it even in forecast mode.
       Fixed support/Test.sh to work correctly with Edit, b<->a
       Claim this is now 2.48
 11/17 BSDi support added to Compile-all & Test.sh
 1/2   print_bombings()'s wouldn't show the bomber if there were two
       battles there and you only saw the second. Code still wrong
       unless you did it (but closer)...
       Added strerror (errno) output to all remaining open/fopen calls
       Sync'd ADDNEW Can-Fwd MONITER Pre-proc multi-forw turn-over
       with UTK versions.
       mailer now sets a bouncing address (typically to the GM).
 1/18  Default production for homeworlds is now Drive, per a
       suggestion from Tommy Lindqvist.
 1/25  Rules now explain what happens in the event of a shipmass tie
       and an intercept order (lowest system number).
 1/31  Added space to list of illegal chars for empire names
       Added findplayer.? order.h 
       Added new exit code to exit.h
       Changed STRNCMPT for Solaris 2 to be size_t
       Work on order.c
       Partial coding of NGBOMBING
       PEDANTIC now checks for Routes to unseen systems (need to doc and vrfy)
 2/2   Status for you now has a "-" for W/P/G instead of a "" per bug
       from zloi@durak.net [Makes tool parsing harder]
 2/4   Fixed code so that non-orders targets would compile again.
       Nearly finished Orders target code (doesn't deal with missing
       #ends well)
 2/5   More progress on orders parser
       Created List.o, verified all targets compile again
 2/11  Order exeuctable now works as long as all order sets have #end
       in them.
 2/14  HPUX 10.20 port (partial)
       orders.c now dumps abort messages to stderr, and detects when
       miscompiled
 2/15  ORDER check for Blind target in makefile
       legal_name now does fleets too. (must have 1 not digit char)
 2/20  Added AIX 4.1 to ports list, fixed (?) Irix 6
 3/7   removeing misc-g.h cause some doubles to be treated as ints,
       breaking lots of things. 
       support/mailer used hostname but set fromhost
       Created Mailer, Turn-Run, Turn-Over which work with Order code.
 3/12  Fixed a few glitches in Turn-Run, Turn-Over.
       Main.c formatting for footnote fixed a bit more.
 

2.47 <- 2.46 [Dates are 1997, early 1998]
  5/1  X text  could generate wrong error, due to missing returns in
       ninputgroup. G ###text would do same thing...
       candnphase() would rewrite races:players and Races:passwords
       during forecasts!
  5/9  Put in the table for mat/cap affects on growing worlds.
  5/12 Several strcpy's that could be overrun- new-game.c asked for
       game name, (r)report option when building name and extention
       using prname, Blind.c when reading in argv's
  5/23 Added cmds.h to Blind.c, Makefile deps. Ditto report/Main.c
  5/27 Moved hstrncpy to prototypes.h, removed 5/23 changes.
       2.46.0.1 created - v3-blind-preproc.awk, Main.c, Cmds-lib.c,
       turn.c new-game.c Blind.c are changed files
  5/28 No groups exist warning no longer shows up in turn 0 reports.
       "P 297" would generate two errors- ninputproduction() error()
       call changed to sprintf(err_tmp);
  5/31 Changed l_cmd to allow an optional ammount of cargo to be loaded.
       Took out % 32768 of random seed from time....
       Add Y&Z to listed commands when bogus one given.
       Moved n_orders++ around, so that blank lines are counted as orders.
  6&7  Hacking on fightphase()
         a) when SPEED&0x10, keep a pointer to end of shots linked list
         b) computer defense values once, and shove in a table instead
            of recomputing for each shot
         c) kill()/cankill() optimization for 0 defense.
         Net result is ~30% overall speedup.
  
  7/29 OPENBSD Port (partial), including openbsd2.h
       Buffer overrun hole in misc.c and enterturn.c closed
       
  8/31 GM Battle and Bombing summary code added. C&D options added to
        Blind.c for same.
  9/21 Doc'd C&D options
       7/29 getstr changes required a removal of \n's at end of string..
       Bombsum for GM includes galactic total.
       Battlesum for GM includes galactic total.
       K option (GM Status line) now includes overall totals
       Added SYSMASS to options and rules (not fleet part)
       Added Cartesion to options, but no support code
       Added NOT cases for K/Y/Z/Partial techs to print_options()
  10/19 Added support for CARTESIAN into code. Note that co-ords are
       still kept in "normal" fashion internally.
       Rules adjusted for CARTESIAN
       K planet war|peace me works (and is doc'd).
       Added known_empire, and tweaked A/H/W/K to use it.
       Planets you do not own/see can only be referenced by number, not name.
       Pedantic code included
       Added fleet_mass and changed print_fleets_at_planet to use it
  10&11 Faster shot reporting code from BMS.
  11/10 Added name changeing code to edit.c
  11/12 report/Main.c lied about passwords
        Cartesian call in report/map.c was missing in one spot
        D cmd check for oversized drones only happens in preproc.
        PEDANTIC missing from showopts code
  11/14 forward_list()'s outer loop didn't do the last empire...
        R ? COL ZeroWorld  crashes the forecaster. unloadphase() fixed to
        not assert.
  11/24 SYSMASS code showed alien groups in forecast mode...
        candnphase() renames chopped multiple email @'s out of races:players
        reset_email() didn't work.
  12/12 ship name shields collides with produciton type - now "shields"
  12/13 Footnote code was missing some \n's Also reformated same
  1/4   Footnode code foornote - footnote
        FreeBSD/NetBSD porting
  1/23  TWOSPACE was missing from showopts code.
        Longbattle effects are backwards, so added explantion to showopts 
        section
  3/14  Lots of {}'s to shut up gcc 2.8.0 - h.c, w.c, Cmds-lib.c, map.c, 
        planets.c, ships.c
        z.c - upped buffer lengths so z would work with long @'s
        enterturn.c - fixed rewrite_email() to not add blank lines
        Added p_size_fudge/p_resource_fudge/p_dist_fudge in new-game.h
        new-game.c - planet_value now uses p_*_fudge functions
        battle.c - added shot_addlist code
        turn.c - added enterturn-g.h to #includes
        misc.c - forward_list now stops oversize probes, 
          also dots in empire names
  3/17  y.c newentry[] was 1 char too short
        y.c/z.c  error ("This command is not enabled!\n"); for #ifndef
        showfull() changed to show all systems (inc unowned)
        showfull() [gm.c] shows system owner's name
        New option STATS partially coded.
  3/18  Bombing summaries didn't include ? entries as their own line.
  3/29  print_partial_reports() had an off by one arrary bound problem.
        AIX errno in turn.c fixed
        srandom() calls in new-galaxy needed casts for SRANDTYPE
        irix6.h and osf1.h needed some work



2.46 <- 2.45 [Dates are 1997]
  1/3  PTECH flag was not pased to version.c, PTECH was checked, not PARTTECH
       boo-boo in Cmds-lib.c array
       Linux target for Support/Compile-all was trying to compile as Ultrix
       Release of 2.45.0.2
  1/5  H x y gave errors for both X and Y.
       Took out CARRYOVER, V3, UPGRADE, NONAMEBUG from code- axed ~800 lines
       Forecasts now show # alien systems seen, size, etc.
       Changed hcstrcpy to copy at most MAXSTRLEN-1 chars- possible
       buffer overrun problem.
       created cmd_init() to do setup for each cmd, & hide tbuf.
       Bumped up err_tmp to MAXSTRLEN*2 to prevent string overflows
       (MAXSTRLEN for the line, and MAXSTRLEN for the error text)
       Changed a bunch of hstrcpy's to hstrncpy's, and otherwise
       removed a number of possible string overflows.
  1/6  Edit executable can now delete players (provided that there
       were no bombings or such that they were invovled in).
       If PTECH defined, Ships in Prod tables now print tech levels.
  2/22 report() and main() both often tried to close pr file
       descriptor (A option).
       GCC 2.7.2.1 hacks for SunOS4.1.4
       Changed send() to Send(). This shut up a number of Purify complaints.
       send() is a system call.
  2/27 Created $OS.h header files (sans Linux one). This makes
       global.h much easier to read.
       Removed GCC258/GCC260/GCC2721 stuff from code, and replaced
       with checking for GCC_*VERSION checking in sunos4.h.
       Map requests for maps larger than galaxysize return true size in error.
  3/1  o_cmd did not call extra_token when command was OK- allowing people to
       attempt "o option off" and think it worked.
       Rules clarification about map coords, and example of map command.
       E fleet fleet-in-hspace now generates an error (was ignored).
       Top level Y command (generate forwarding lists) fixed- flag
       variable initalization was misplaced.
  3/2  Top level Y command (generate forwarding lists) fixed again-
       seenlist initialized in the wrong place!
       TECHPROD option added, and rules/quickref updated.
       Showopts now shows Galaxy version, and if K-CMD/Partial techs/passwords
  3/4  J group fleet now says Fleet "fleet" not rec., instead of Fleet
       name not recognized
  3/7  Banner() created in Blind.c
  3/8  Irix 5.3 port.
       Assert(pointer) changed to assert(pointer != NULL) in
       loadgame.c misc.c Battle.c planets.c ships.c status.c for OSF1
  3/9  Added linux.h, and SRANDTYPE [linux is unsigned]
  3/15 Mismatched password now returns exit code of 120, instead of the
       "empty orders" error.
       Added IRIX 6 to ports (requires using native cc). 
       ftrunc -> Ftrunc, fdata -> Fdata becuase of symbol colisions in Irix6.
       Removed a lot of redundant prototypes from global & sunos header files.
  3/18 R system type system; comment techs would generate two errors
       due to missing return();
  3/29 Added support for #galaxy game "empire name"
       Fixed PASSWORD code to rewrite races:passwords in candnphase().
       PASSWORDFILE variable.
       C & Y commands now work when both done in same turn.
       Z command now exists, and works (no doubt not when used with a C cmd)
       New exit code 119 - races:players missing.
       Z cmd/Smartc stuff added to report/Main.c
  4/1  Forward list generation loop was wrong- started at P->next,
       instead of players
  4/5  Forecast report banner with GAMENAME defined changed.
  4/6  Changed alloc() to also do a memset(memory,0,bytes) to shut up
       purify.
       candnphase fclose(pwf2)'d even when not opened with SMARTC enabled.
  4/7  Linux wants size_t for read/write under 2.x kernels. Curses!
  4/9  Added Z command to rules & QuickRef; added example for X cmd to rules.
  4/17 Cleaned up some stuff in doc.
  4/18 2.46 Commit
       

2.45 <- 2.44 [Dates are 1996]
  1/2  Added free(fileinfo) into SPEED Read code to plug a memory leak.
  1/8  Alan R. Parker <gbjbaiap@jba.co.uk> pointed out that unsafemax
       doesn't unset itself. Tracked down problem in o.c to bad opt const.
  1/12 Fixed new-game.c to compile with GAMENAME defined.
  2/8  Fixed logic in c_cmd that made illegal names only ones OK
  2/10 sortphase() only sorts 1 player's groups when PREPROC defined
       Added hacks for player is a footnote/negative turn values
       Group_speed hacks made
       Numinclass now reports number last seen alive if only encountered in 
       battles. Number correct if seen in battle & end of turn.
       Cleaned up P_cmd (& several others) to use hcstrcpy instead of hstrcpy
       this makes dealing with comments easier.
  2/11 Battle summaries now include a summary across all battles.
  3/19 Fixed bug that caused R x cap|col|mat x; R x emp y to route
       the col/cap/mat to y....
  3/22 Fixed E FLEET fleet-in-hyperspace could be erased. (Was
       intentionally left out until now due to bug)
       p planet shiptype (nonexistant) resulted in cap production..
       c/n/t commands now let you change cases of items without an error
       Showfrom option
       printgroup's groupno is now #defined
       canseeplanet() code enhanced to run faster- using a lookup table
       report-ships.c had canseeplanet call in print_groups_at_planet
       for alien groups that was redundant with fend()'s cleanup stuff.
       canseegroup code changed to make call to canseeplanet() instead.
  3/26 n command wouldn't let you change _any_ names.
  4/29 Fixed most (all?) .c files to include <blah.h> and Makefile to
       use -Iprotos.
       added options.h header file for player options
  7/4  routes would try to use groups with 0 ships...
  7/6  Footnote text rewritten.
  7/13 sortphase() was not sorting anyone's groups in forecasts.
       Rules clarification about routes to unseen planets.
       Fixed unloadphase() to not not unload at alien or size 0
       systems in forecasts
       Added check in n2inputplayer() for matching gamenames.
       Added bombsum option & doc'd
  10/25 Moved report-*.c to report/*.c
       Running purify for leaks/problems-
         balance_galaxy alloc was off by one.
         savegame()/main didn't close file descriptor
         gm_map didn't free P allocated locally
  11/14 GAMENAME code in enterturn.c missing a }
        othertechs creation code in addplayer.c was not 0'ing all memory.
  11/16 Changed Cmds-lib.c legal_name code to not allow : in empire
        names (hoses up races:passwords file, as well as races:players
        Found file handle not closed in verify_password()
        Fixed possible bug where empirenames that are similar could
        have matched wrong entry in races:passwords
        Added reset_password code and y_cmd
        Moved bad/n_order initialization into enterturn() from declariation
	Added report/*.o -> .h dependancies to Makefile
        Moved file manipulation code for loadgame/savegame into those files
        from Blind.c new-galaxy.c util/*.c
  11/23 Added Check on turn 1 for never submitting orders players.
        Closed races:passwords file descriptor proerly in verify_password
        Ceared out T in d_cmd with memset to satisfy purify.
  12/8  races:players now rewritten on C commands
  12/17 Bombing summaries could cause the game to crash if you didn't
        know who did the bombing...
  12/20 SMARTC code always tried to redo the races:players file
  12/24 "A ship with drive 1.0, would be cheaper" for ships with 
        >1/0/0/0/0 designs
        Empires that have no groups, but are alive get warned about the lack
   
     

2.44 <- 2.43 [Dates are 1995]
  3/20 Fixed Cmds-lib.c compile problem due to too many rcsid strings
       Fixed bug with group upgraded in fleet never being able to
         move do to dist never being reset.
       Fixed Makefile do do right thing for "make ftp"
  4/4  Fixed code to allow you to break an upgraded group off of a fleet
       Fixed code to allow "B group fleet comment"
       Fixed bug in switch to group_check() (from having same code fragments
       in several places) that allowed s/i commands on upgraded groups.
       Blind-2.43-patch1 created
  5/13 Fixed: Mistake (36):'D Medusakin 28.47 90.00 1.00 13.81 1'
              Components can not be between 0.01 and 0.99.
       to
              Malformed number of guns component
       Fixed: Mistake (9):'P Rockhome ; nur was?' extra token problem
       Fixed: Mistake:'K 515 - ; cmnt' Warning!!! Extra token cmnt ignored
       Finished: K - - empire|- code
       Added code to enterturn() to abort gracefully when TOOMANYBAD errors
       is reached, with:Too many bad commands, giving up on remaining orders
       GM verbose bombings now include who owned and bombed a system
       Created shield_str() for returning effective shield strength. Placed
       calls in report-ships.c, battle.c
       Added rcsid stuff to p,k,d,g,b,i,s cmds
  7/16 Fixed I command, so that I <group> for a group in fleet gets broken off.
       Added an assert() in fleetphase, to ensure that groups in fleets have 
       same destination
       Added new option to blind.dbg executable, "f" to do a fast check of 
       orders (no forecasts). Doc'd too. Fixed Preproc to use said
       Battle code now does 4-1 defense ratio as claimed, instead of 3.984
       Fixed D token NaN problems.
       Fixed matchgroup () when looking at MAX group, to set groupno correctly
       Fixed l group type; text
       Added rcsid stuff to l,d,m cmds
       New exit code DUPORDERS (for multiple sets of orders).
  7/26 Added forw-body.awk script, and changed game-forw to use it.
       This eliminates ^~ problems.
  7/28 Fixed upgrades do not happen without PTECH set, in g_cmd.c
  8/4  e fleet <invalid fleet> gives not match fleet instead of <fleet>
  8/5  Warning!!! Extra token <x> ignored to '<x>' 
       General cleanup attempt on string over-run chances in cmds/*.c
  8/7  alloc(sizeof(p)) instead of alloc(sizeof(planet)) in
       create_galaxy fixed. Also added LINUX to OS list
  9/3  Bug in hcstrcpy for copying string of length 1 fixed.
       k <planet> works again
       Movephase changed to allow dists of ROUNDOFF size to be 0.0
       Replaced all negative values in code with #defined constants
       Fixed n/c/t commands to check for illegal names
       Fixed (?) bug where longforecasts printed alien systems in
       unowned block too.
  9/9  Speed mods made to loadgame.c/misc.c
  9/17&23 Worked on blind2ascii and ascii2blind converters.
  9/24 Blindrc <-> ascii converter works!
  10/1 Doc blindrc <-> process
  10/23 Fixed shortint problem with fleets - fast groups could end up
       going to different system than slow ones....
  11/5 N x y where y < x now illegal, since it is pointless.
       J <group> Fleet name not recog. instead of MIA.
       Fixed all places where we did removelist (x); x=x->next in a,h,k,w
       enterturn,misc,turn code...
  11/12 Fixed KCMD foulup in ascii2blindrc.c code
       Fixed delete_player to clean up othertech info for other players
  11/29 Greg Broten found intercept bug - added fabs, ALMOSTZERO hack
       Seems to be a Linix problem???
  12/4 Routes for non col types could break fleet fragments off
       Fixed groups in fleet incoming report speeds being group speed based.
  12/14 Fixed Boo-boo with renaming code (N cmd) from 11/5
  12/16 Fixed code so that it could be compiled without V3 and UPGRADE
        again.
  12/24 Cleaned up SPEED code & documentation
       Fixed W cmd bug which came about due to Linux Fixes
  12/26 Added sortgroup SPEED hacks (speed=4)
       





2.43 <- 2.42 [Dates are 1994, early 1995]
       Fixed forced delete of player to work right if player had groups
       Source now compatible with gcc 2.5.8 header files
  5/22 Fleet name matching was case sensitive.
       Uncommented out Smart forecast maps
  6/16 Changed: for (lost = 0; lost < nplanets; lost++) lostg[lost] = 0;
        to: memset (lostg,0,((unsigned int) nplanets * sizeof (int)));
       to elimnate a crash condition for the forecaster. No clue why
       it happened, or was fixed by it.
       Above problem was actually that Blind.c wasn't setting nplanets.
  7/9  numbuilt for new types was not being initialzed to 0.
       g_cmd now returns normal error msg instead of Upgrade failed.
       renamed stricmp to hstricmp, to avoid name collision with libc's
         stricmp.
       wrote support/Compile-all to make Blind and blind.dbg
  7/14-15 Fixed bug in GM map that closed stdout
       rewriting create galaxy code.
  7/20 UNSAFEMAX now works
  7/23 When you die, your report now mentions it.
       Totally off the wall commands (not [a-z]) now are flagged as errors.
       Finished up UNSAFEBREAK code.
       Added B group fleet num-ships
       At some point fixed bug that made longforecast print too many
       partial reports (1 for each system, instead of same less Full reports)
       Longforecasts now show alien/unowned systems instead of dumping
       them into partial report section [Document this]
  7/28 Top level B command (current orders submitted for player) finished
  7/31 Finished up partial tech upgrade code.
       Removed incoming reports from Full planet forecasts (Bug!)
       Code reorginization in misc.c/enterturn.c
       Cleaned up # of .o files needed for New-game
  8/1  numinclass now -1 if in production, and none exist otherwise
  8/14 Added check for "b group num" to flag group in hyperspace
       Header file reorganization (inc mv'ing all .h into protos dir)
       A few commands (n, ??) would give an extra token error as well as
       the first, true error. Fixed.
       P planet-not-owned something doesn't mention planet number any more
       [Could be used to fish for name/number pairs]
       Forecasts now show alien planets you could see previous turn.
  8/21 Partial tech builds now work
  9/10 Final testing of parital tech code (I hope). Forgot to define size of
       err_tmp -> char err_tmp[] instead of char err_tmp[80]
       Determined that BALANCE option is making planet lists dump core in
       New-game binary.
  9/12 Fixed bug in numinclass that was referencing last group
       when trying to determine if a class was able to be deleted.
  9/20 Partial tech code didn't quite work right with 0 drive (or cargo/s/w)
       ships. Also docs wrong.
  9/21 Forecast reports no longer show Ship in prod. for planets you didn't
       see at the begining of the turn.
       downgrade_cost was doubling all normal production.
       updated makefile dependencies a bit
  9/25 Finished makefile cleanup
       Added option to move planets manually in new game creation code.
  9/26 Started major code reorganiztion of report.c
       partial tech builds were checking on what the planet was building 
       before rather than what it was being set to produce.
  10/1 Finished battlemass code, report.c reorganization [Need to doc battlemass
  10/8 Cleaned up rules, and integrated Part tech stuff
 10/11 Newgame now sets a random seed.
       Smarter forwarding code.
       Hacks for gcc 2.5.8 vs. 2.6.0
 10/13 Partial tech builds didn't produce correctly when P p ship 0 # 0 0.
 10/14 Interceptphase didn't use nplanets.
       Forecast intercepts now work as sends.
       loadgame failure due to incompatible data file now exits with code
       301 (so obvious that something is wrong).
 10/30 "#galaxy" with nothing else on line no longer dumps core.
       Empty orders now generate an exit code of 255. Preproc changed to
       deal with this.
       o foo bar now only gives one error, instead of unknown and extra token.
       Forecast status lines now only show planet sizes you know about,
       rather than including ones that col'd but didn't know about.
  11/6 Ported to HP-UX, run through lint on the HP, and tested it.
 11/12 Added SHORTINTercepts
       Partial reports now print fleets correctly.
 11/16 Full report routes always printed names, unlike the route tables which
       did the right thing and printed names only when you owned the system.
 11/19 Ultrix 4.4 port (req'd MAXFLOAT)
       Added addplayer.h to headers (seemed to have missed it)
 11/20 Resolved how to get srand48 for Solaris and HP-UX
       Made wrapper isnum, to eliminate "g 204;" errors being accepted.
       T old new when old didn't exist was misleading.
       BALANCE code occasionally moved planets off the map. 
 12/13 Fixed Bug in the inactive player code, which caused it to not
       detect inactive players (bug caused due to trying to eliminate
       variable shadowing problems).
 12/26 Fixed append_cmd so that order would be "'cmd'" not "' cmd'".
       Fixed ninputgroup so that l/s/g/u max errors give a reasonable group 
       number.
       Changed multi-fwd to bounce stuff with better subjects, and all
       stuff from root.
       Changed game-fwd so it might be able to handle Galaxy:
  1/1  Fixed r_cmd so that r planet type ; comment handled right.
       Fixed p_cmd so that "p planet ship <part-tech>" at a system
       already producing that ship, would do the right thing (i.e.
       reset the levels and scrap as needed).
       Broke up cmds.c into cmds/[a-w].c
  2/19 Fixed j_cmd to prevent adding groups in hyperspace to a fleet
       Fixed longforecast partial_planet_reports glitch of printing bogus
       systems due to miscounting the number of lostgroups.
       Rewrote part of Pre-proc to send forecasts with no errors via sendmail,
       those with errors still get logged. Subject reflects quality of orders.
       Rewrote mailer in sh instead of csh
       Cleaned up docs a bit.
       Empty orders detecting code fixed.
  2/21 G group where entire group (of 2+ ships) couldn't be upgraded, caused
       whole group to be upgraded for free... This line in cmds.c (now g.c)
       from 3/28/94 is the culprit: if ((num_to_do == 1) && (g->ships > 1))
       removed the first half of the conditional
  2/27 Fixed game-forw to send ACKs to ^$race instead of $race, for
       Dragon, purpleDragon mixup.
  3/5  Fixed g group ; comment problem when part techs enabled.
       [Which broke g group, when part techs not enabled. Sigh.]
       Added code to detect multiple sets of orders, and flag it as an error.
       Added e fleet <fleetname>
  3/14 Pre-proc now understands and deals with(?) error codes 122-127
       (see protos/exit.h for details), will mail GM on error code in
       that range... Minor comment changes in script too.


2.42 <- 2.41 [Dates are 1994]
  4/8  Fixed "R planet bogustype planet2" to only complain about bogustype,
       instead of bogustype and an extra token (planet2).
  4/12 Fixed X command, so that group doesn't disappear (messing up all
       later numbers).
       R planet type bogusplanet didn't generate errors...
       Added new features of the K-command:
         K - - empire  == nix all SPD's for empire (that are yours)
         K - - myempire  == nix all SPD's for all empire (that are yours)
  4/13 B command error for "B group" was misleading. 
       Several J command errors needed \n's
  4/18 J goodfleet badfleet didn't generate an error.
       S fleet planet behaved as an intercept.... 
  4/20 Longforecasts now include partial reports.
       D fleet max   is illegal now.
       R planet all planet supported.
       Password support added. [Doc'd?]
       Partial quoted name support.
  4/22 Fleets now print properly? Instead of being missed?
       o fulltype didn't print out alien types with speed and shield str
         values.
  4/27 A longempirename  was trunciating the name a bit too soon- hstrncpy
       instead of hstrncpy
       New player's maps will be the right size.
  5/6  P planet ship  whould always scrap partial ships in production,
       rather than only when producing a new ship type.
  5/8
       Forecast maps could tell you if a planet was colonizable:
         Now consider this:
         R myplanet col neverseenplanet
         o forecast
         [assume that there is a col loaded group that can reach the planet]
       Forecast maps now could show full symbols- alien col attempt bug..
       Alien group reports now show alien fleets
       Battles should now show the cargo you have.
       Forecasts only do Routes for the player getting the forecast-
         now forecast maps can show all planets you knew about at the
         begining.
  5/16 S group_in_fleet somewhere didn't break group off of fleet.
       Multi-turn ships with p orders each turn should work.

       

2.41 <- 2.40 [Dates are 1994]
  3/9  Details of T option for GM mode neglected.
       gamename not defined in preprocessor version of code.
  3/10 make {tar,zip,manifest} now works correctly
  3/14 Sorting with fleets caused groups to be duplicated duplicated
       once per fleet fleet
       K command would cause to to fire at your own groups.
       Rough FAQ written
       2.40.1 release
  3/22 Missing #end shouldn't cause infinite loop now.
       New GM command 'b' show order status for all players.
  3/26 S foo bar ; comment    Now doesn't generate errors
       T fleet fleet    now supported
       Fleets named <digit><char> now are recognized as fleets,
       instead of fleets and groups.
       B group fleet now works correctly.
       strdup was creating strings 1 char too short....
  3/28 g <group> 1 for a group /w 1 ship that couldn't be upgraded
       entirely caused a new group to be created (and the old one to
       have 0 ships left). This caused a misleading error message
      "Only 0 ships can be sent" rather than "Group is in hyperspace"
  4/7  Makefile didn't prevent FORECAST from being on when PREPROC wasn't
       Fixed the C command so that it didn't dump core (&list, not list
       in addlist call)
       Cleaned up documentation.



2.40 <- 2.39 [Dates are late 1994, 1994]
       New forecast option wasn't supported in v3-blind-preproc.awk
       when only 2 args are used.
       o forecast 0 gave a spurrious warning.
       k planet <garbage> status error message was misleading.
       d n v w x y z   munges orders when v,w,x,y, or z are 0<?<1
       Added VERBOSE flag for turn.c to turn on status info.
       Fixed cargo capacity to be V3 compatible in reports when 
       O TECHS is set.
       Droped shar support.
       Added rules info on Guard command effects.
       New option: sortplanets
 12/14 Adding clairification on M command
       Fixed bug that broke "M -x y z"
       Forecast reports now have limited maps (* or ? only)
       o showopts now tells you about unknown planet list.
       Unknown lists no only list planets in map window.
       It is now possible to get a partial forwarding list via the GM level 
       command 'y'
 12/15 Took out fopen ("form","r") code that is replaced by the mailer
       script.
 12/29 Major coding effort for conversion from token to line based input.
       Droped backwards compatibility with original blind code.
       Put in hooks for passwords.
       Code now handles command line options (sort of)
  1/27 Finished (?) token to line based input conversion.
       P command now prevents you from building ships named
       Shields, cap, cargo, etc.
       D command prevents shiptype/fleetname colisions.
       New options: centerx centery to change your map's x and y center
                    fulltype gives you the "Extended ship type info"
  1/29 Major reorganization of report.c
       Added Full reports (on your planets) to forecast reports.
       Fixed bug in map code for forecast that printed ? for unowned planets.
  1/31 Added Selective planet defense info to full report.
       Changed War/Peace/Guard to W/P/G
       The C command's effects now happen after all orders are entered.
       [ONLY if NAMEBUG enabled]
       Fixed the debombbug code
  2/11 Finished "upgrade" converter.
       New options: longforecast, fullreport (same as f command)
       Fixed total wreck of the token code.
       Dead player delete code was printing wrong.
       New main option (for use from command line, mainly): t
       executes enterturn until EOF. Usage typically will be:
       Blind t q < <ordersfiles>
  2/15 Added Built and exist in class fields to fulltype reports.
  3/2  added compile Flag REPORTDIR
       inactive players now reported after turn run.
       Totally off the wall orders, like "2 3 4" are now
       tagged as bad.
       Number of ships built in class now gets incremented...
       New option UNSAFEMAX - if set, max refers to highest group not in
       hyperspace.
       Cargo type carried by alien ships is now hidden.
       Fleets done?
   3/8 Fleet are done: Other problems- needed to change way to save them,
       as there was no way to retrive the fleet name from the way it was
       saved.
       Fleets now show up in reports (and groups in fleets only show up
       in fleet listings).
       Minor problems in report.c with missined #ifdef UPGRADE
       Fixed problem with numbuild being less than numexist
       Wrote a prospective player intro.
       Documetned the Blind menu's
       Fleets were moving at individual group speeds, fixed....
       Fixed core dump problem with fleets @ planets causing core dumps..
      
 
2.39 <- 2.38 [Dates are 1993]
       Made sure you can't have NEWGAME defined in the preprocessor
       compile steps and moved freelist() into misc.c
       Bombings didn't show who did it for anyone, unless there was a battle.
       Techmasses for TECHPLUS option didn't work for groups with
       more than one ship...
       Shipmass production for non-homeworlds was totally incorrect-
       produce_mass was wrong.
       +++ BUGish problem +++ Don't use Gnu make
       Fixed bug that allowed driveless cargo ships to be sent on routes.
       [ bug also was in V3.4 code]
       Tweaked report.c so that it only whines when you haven't
       entered orders (this way it doesn't bitch if you forge options
       for someone and reprint their report).
       Added option upgradecost
       Added support for M command /w window (Inc options info)
       Started writing BOMBBUG converter.
       Fixed bug in route printing code that printed planet name, even when
       you shouldn't know it.
       Fixed game-fwd to have new option: forwardlist. Added p-Can-Fwd
       to scripts/ to give ability
       O sortgroups was toggling the full reports bit.
       O forecast now doesn't get reset after a turn (broken code might do
       it before).
       New option: twospace (uses 2 spaces btw fields instead of 1)- std
       galaxyish
       Forecast option now takes an optional turn for forecast for (up to 5
       turns in the future).
       Changed packing method of source to use verison # directory
     
2.38 <- 2.37 [Dates are 1993]
       Added -ansi to paranoid compile flags
       Added prototype for new_game_rcsid
       Fixed bug that implied deliting all players, instead of checking on
       them
       Capital & Material are now CAP/MAT like V3.x
9/12   Changed battle report code so that your groups are always printed
       first (like status and everything else).
       Moved code around in report.c so that duplicated code was moved
       into functions- added: print_player_groups_in_battle,
       print_groups_at_planet, print_unowned_planets,
       print_partial_reports
       Brought Makefile dependancies up to date.
9/17
       Forecasts will now show you the war/guard/peace status of
       players you've seen (only with CARRYOVER). Techs are included too.
       New option TECHPLUS- shows mass of ships, and their techmass.
       [Tech mass == mass(componetent) * tech(component)]
       New option autounload added.
       showopt option was broken- fixed.
       loading can be done on an upgraded group.
9/27   Broke up i-o.c into loadgame & savegame. This should make converters
       easier to write.
       Forecast reports will now show planet #'s iff you could see the planet
       at the begining of the turn.

2.37 <- 2.36 [Dates are 1993]
       new-game.c wasn't #including new-game.h
       Added prototypes for functions, and protos directory
       changed compile flags to include
       -Wconversion -Wstrict-prototypes -Wmissing-prototypes
       adjusted code to eliminate more whines.
       Fixed enterturn.c so that T <old> <new> with bad args
       worked properly.
8/29   Changed print_battles to not show planet names if you lose,
       and to show name in ()'s instead of #.
9/2    Rules state COL can't be unloaded at an alien planet, but code
       allowed it. enterturn() fixed to prevent it.
       Added the global Incoming report section back (dissappeared
       in 2.30 or so), header order is now ONDNRSM for both.
       Fixed Bug that didn't save the bomber correctly (mod data files)
       Define BOMBBUG for pre 2.37 created data files.
       Added new top level command 'z' which prints out RCSid's
       If one of your planets is bombed, and you had no ships there,
       the bomber will no longer be reported.
9/7    Fixed a bug which prevented upgrades of cargo ships from being able
       to move on routes [turn.c, go()].
       Added o showopt.
      


2.36 <- 2.35 [Dates are 1993]
8/17   Made V3 upgrade command complain if given a guard-type command
       Fixed K command so a bad status would be tagged with a better error.
       Did away with version.h, and made Makefile pass version # as needed.
       Fixed O unknown to work correctly.
       Added upgrade costs to rules

2.35 <- 2.34 [Dates are 1993]
       Fixed bug that always gave forecast.
       Fixed bug that sometimes caused forecast to dump core.
       Fixed bug with the K command & systems that you don't own-
         no reason for the error was given.
       Fixed bug preventing code from compling without CARRYOVER defined.

2.34 <- 2.33 [Dates are 1993]
 8/6   Fixed bug in preprocessor with multiple error messages about groups
       that have been given bad commands.
       Fixed (?) round off error bug, with producing a size 100.0 ship at
       homeworld with mat stockpile.
       Fixed BACKUPS problem (didn't work with turn<10 and turn>99
       blindrc files
       Tweaked Makefile to bitch about  CARRYOVER, V3, or KCMD being
       defined without NEW as well.
 8/9
       Finished code for forecast option, and mods to Preproc

2.33 <- 2.32 [Dates are 1993]
       Stared work on supporting O forecast
       Fixed V3 shipmasses not being reported right in report.c
       Fixed V3 shipmass not being used in battle.c
       Switched scripts to use gawk instead of nawk 
       Added scripts directory, with server scripts
       Fixed bug with # ships left after battle.

2.32 <- 2.31 [Dates are 1993]
 7/26  Fixed Makefile so that you can't build the wrong object with
       NEWGAME defined.
       Hacked on FULL_REPORTS a bit. Still don't work.
       Fixed bug in enterturn() so that P <non-planet> <something>
       wouldn't dump core.
       Fixed enterturn.c so that dumb players who enter their new
       race name before they change it get told about it.
       Added support directory, with 2 preproc.awk scripts, mailer script
       Fixed G/H problem due to V3 not getting given to enterturn.c

2.31 <- 2.30 [Dates are 1993]
 7/22  Fixed the problem with the KCMD code. Beats me why I had to
       hack savegame() that way.
 7/24  Fixed bug that prevented preprocessor from compiling with KCMD
       defined.
       Added some code to move the largest planets (1000+) away from
       homeworlds.

2.30 <- 2.29 [Dates are 1993]
       Added RCS to code, added version.[ch], and V command to GM interface.

2.29 <- 2.28 [Dates are 1993]
       Fixed makefile/addplayer.c compile switches.

2.28 <- 2.27 [Dates are 1993]
  7/6  Fixed some major bugs with the save/loadgame code's access of
       the CARRYOVER data. Finished the K command (selective war/peace
       by planet/empire pair), except for save/restore.

       Known bugs:
       Creating a galaxy, adding players, and then generating reports
       in a single session (i.e. not exiting out of the program and
       reloading the blindrc files) dumps core in the Route printing
       code. I haven't been able to find out why.
       Solution: create the galaxy, save and then create the players.
       Note: I don't know if this happens on every system, or if this
       is a Sun/gcc bug.

  7/13 Released Code.
       Added support for Ultrix 4.3 (hacked gloabl.h, added strdup())
       Fixed some missing ${VAR}'s in the makefile, changed makefile
       so that there are enough dependancies to do away with the makedepend
       stuff, for those people without it.

       Makefile now makes shar/tar/zip with version numbers, and compresses
       tar/shar files.

2.27 <- 2.26a [Dates are 1993]
  6/28 Fixed the intercept bug (?)
       Added Changes file, and did a preliminary history list
       Fixed problems with "p xxx ship yyy" where the planet existed,
         but didn't belong to you, so that the preprocessor no longer loses 
         its place.


2.?? Known fixes/mods:
       Added some limited options, such as smartmap, unknown.

       Added upgrade & scrap commands.

       Fixed random number generator bug.



2.00 <- 1.??
  9-11/92 Original mods to code from Glenn's original source, to inital
          game code.

  From a Oct 18, 1992 message:
Here is what I've added:
1) Several GM tools [planet reports, status reports, diplomatic status]
plus:
        a) when you bomb a planet, you will now get some info on its state
           at the begining of the turn:pop, ind, cap, col, & mat.  but NOT
           what it was producing..
        b) changed the groups section so that it reports effective numbers
           for drive, shields, etc instead of tech levels.
           i.e.  drive*drivetech, weapons*w-tech.
        c) added mass & speed to groups section
        d) deleted enemy ship types section
        e) other little mods to make it look more like Clarke
        f) tweaked the map code so that +'s now show up for alien
           systems you can see. Now maps are only 98% useless.
        g) fixed reports so that planet stockpile info is now in the
           orders that routes are:COL,CAP,MAT
        h) Fixed routing info to be in that order
        i) added "?" symbol to map for unknown systems (ones that you
           don't own, and where you don't have ships). An "o" now
           means  that the system is unowned.
        j) Added a new command "f" which toggles between allowing and
           not allowing the "Full Report on Planet blah" sections
           (like the map command, it stays however you set it)

  From A Nov 13, 1992 mail message:
Below is a rough draft of the modified rules. There aren't too many
surprises. Here is a quick rundown of the mods I have made in the last
week:

1) Added the status of other players info back in (based on what you
can see, not what may actually be the case, and not including tech
info). It also includes a War|Peace|Guard field as well. Not a perfect
solution to how to find it, but presumably good enough for the
ambiguous cases.

2) Added in a size-of-systems-you-control field to the status line.
This is something I occasionally want to know, and was easy enough...

3) Put the alien ship types back in.

