tConvert changelog to markdown - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 106e6938500e2c08c9df26b6462e9a841a955228
 (DIR) parent a8b7509024621e87d90e5a373300e243da31654d
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Thu, 10 Dec 2020 22:08:34 -0800
       
       Convert changelog to markdown
       
       Diffstat:
         D ChangeLog                           |     575 -------------------------------
         A ChangeLog.md                        |     569 +++++++++++++++++++++++++++++++
         M Makefile.am                         |       2 +-
         M auxbuild/README-release             |       2 +-
         M rpm/dopewars.spec.in                |       2 +-
       
       5 files changed, 572 insertions(+), 578 deletions(-)
       ---
 (DIR) diff --git a/ChangeLog b/ChangeLog
       t@@ -1,575 +0,0 @@
       -1.6.0   06-12-2020
       -    - Fixes to build with OpenWRT (thanks to Theodor-Iulian Ciobanu).
       -    - Write server pidfile after fork (thanks to Theodor-Iulian Ciobanu).
       -    - Updated German and French Canadian translations from Benjamin Karaca
       -      and Francois Marier.
       -    - Support for old GTK1 and GLIB1 libraries removed - we now need version 2
       -      of these libraries to build dopewars. GTK+3 is also supported.
       -    - Update metaserver to work with new SourceForge; older versions can no
       -      longer successfully register with the metaserver.
       -    - Switch to using libcurl to talk to the metaserver (this supports https,
       -      unlike the old internal code). The metaserver configuration has changed
       -      accordingly; MetaServer.Name, MetaServer.Port and MetaServer.Path are
       -      replaced with MetaServer.URL, while MetaServer.Auth, MetaServer.Proxy*,
       -      and MetaServer.UseSocks are removed (set the https_proxy environment
       -      variable instead, as per
       -      https://curl.haxx.se/libcurl/c/libcurl-tutorial.html#Environment)
       -    - The default web browser on Linux has changed from 'mozilla' to
       -      'firefox'; on Mac the system-configured default browser is used.
       -    - On Windows the high score file, log file, and config file are now
       -      stored in the user application data directory (e.g.
       -      C:\Users\foo\AppData\Local\dopewars) rather than the same directory as
       -      the dopewars binary.
       -    - Add sound support with SDL2, and on Mac.
       -    - Add 64-bit Windows binaries.
       -    - Fix for a DOS against the server using the REQUESTJET message type
       -      (thanks to Doug Prostko for reporting the problem).
       -
       -1.5.12  30-12-2005
       -    - Really fix a potential exploit against the Win32 server when running as
       -      an NT service (user data was being used as a format string in some cases).
       -
       -1.5.11  30-12-2005
       -    - Add example configuration file to the documentation.
       -    - Fixed various typos in the German translation (thanks to Jens Seidel
       -      and Francois Marier).
       -    - Fix a remote exploit against the Win32 server (thanks to KF).
       -    - High score file on Windows is now written into local application data
       -      directory if available, to work more efficiently on multi-user systems.
       -
       -1.5.10  24-10-2004
       -    - High score file is now installed in ${localstatedir} rather than
       -      ${datadir}, to allow proper Filesystem Hierarchy Standard compliance
       -    - Fix for a curses client crash if the D key is pressed during attacks
       -      by the cops
       -    - Some problems with the curses client missing screen resize events fixed
       -    - Logging to a file should now work properly again
       -    - Minimum and maximum limits on all relevant integer configuration
       -      file variables are now imposed for sanity
       -    - Quique's Spanish translation is now available both in standard Spanish
       -      (es.po) and es_ES.po, which uses drugs slang from Spain
       -    - Fix for a trivial DOS of the server
       -    - Windows installer no longer hardcodes 'C:\Program Files' so should
       -      work with non-English versions of Windows
       -
       -1.5.9   07-06-2003
       -    - The messages window in the curses client can now be scrolled with the
       -      + and - keys
       -    - The curses client now makes better use of space with screen sizes
       -      larger than 80x24
       -    - Fix for a crash encountered if you drop drugs and then encounter
       -      the cops
       -    - Addition of -P, --player command line option to set the player name
       -      to use (thanks to Michael Mitton)
       -
       -1.5.8   21-10-2002
       -    - Options dialog now allows sounds for all supported game events to be set
       -    - BindAddress config variable added, to allow the server to be bound to
       -      a non-default IP address
       -    - BankInterest and DebtInterest variables added, to allow the
       -      configuration of interest rates (with thanks to Matt)
       -    - New "UTF8" ability added; if client and server share this ability, then
       -      all network messages will be sent in UTF-8 (Unicode) encoding (without
       -      the ability, all messages are assumed to be in your locale's default
       -      codeset, which may cause problems on non-US ASCII systems)
       -    - Names.Month and Names.Year have been replaced with StartDate.Day,
       -      StartDate.Month, StartDate.Year and Names.Date; these can be used to
       -      handle the date display properly after the turn number exceeds 31
       -    - encoding and include config directives added, to allow the config file's
       -      encoding (usually taken from the locale) to be overridden, and to allow
       -      the inclusion of other config files
       -    - Spanish translation added by Quique
       -    - The Windows build of dopewars should now use Unicode throughout, on
       -      platforms with Unicode support (i.e. NT/2000/XP)
       -    - Under Windows XP, the "pretty" new common controls are now used
       -    - Sounds provided by Robin Kohli of www.19.5degs.com
       -
       -1.5.7   25-06-2002
       -    - Sound support; Windows multimedia, ESD and SDL outputs are supported;
       -      the individual modules can be statically linked in, or built as true
       -      "plugins"
       -    - Version mismatches between client and server are now treated more
       -      sensibly (it's all done server-side, and spurious warnings are now
       -      removed - only an old client connecting to a new server will
       -      trigger them)
       -    - Bug fix: when the buttons in the Fight dialog are not visible to a
       -      mouse user, previously you were able to access them via the keyboard
       -      shortcuts; now fixed.
       -    - configure should now work properly if GLib 2.0 is installed but
       -      GTK2.0 is not
       -    - Norwegian Nynorsk translation added by Åsmund
       -    - If dopewars is run setuid/setgid, it will now only use this privilege
       -      to open the default (hard-coded) high score file; it will not open
       -      a user-specified high score file with privilege
       -    - It is no longer necessary to run "dopewars -C" on a zero-byte high
       -      score file; it will be converted automatically
       -    - A new server command "save" can be used to save the current configuration
       -      to a named config file
       -
       -1.5.6   29-04-2002
       -    - Bug fix: the server will only let you pay back loans or deal with the
       -      bank when you are at the correct location, and you can no longer
       -      "pay back" negative amounts of cash to the loan shark
       -    - Minor improvements to fighting code
       -    - The GTK+2 client should now run properly in non-UTF8 locales, and
       -      handle configuration files in both UTF8 and non-UTF8 locales
       -    - Unsafe list iteration in serverside code (which could possibly cause
       -      memory corruption) fixed
       -    - Another dumb PPC bug fixed
       -    - Incorrect LIBS generated by configure script in some circumstances
       -      (due to a GTK+/Glib bug) - now fixed
       -    - Everything should now build with autoconf-2.53 (if desired)
       -
       -1.5.5   13-04-2002
       -    - On fight termination the player is now allowed to close the "Fight"
       -      dialog before any new dialogs pop up
       -    - Bug caused by a "fight" interrupting a "deal" fixed
       -    - dopewars no longer crashes if you set e.g. NumGun = 0
       -    - Incorrect handling of WM_CLOSE under Win32 fixed
       -    - Unix server now fails "gracefully" if it cannot create the Unix domain
       -      socket for admin connections
       -    - New ServerMOTD variable to welcome players to a server (with thanks
       -      to Mike Robinson)
       -    - GTK+ client should now work with GTK+2.0
       -
       -1.5.4   03-03-2002
       -    - Basic configuration file editor added to GTK+ client
       -    - Annoying flashing on closure of modal windows in Win32 fixed
       -    - Win32 client now uses "proper" dialog boxes (i.e. without a window menu)
       -    - Icon added for GTK+ client
       -    - Bug with withdrawing cash from the bank fixed
       -    - URL in GTK+ client "About" box is now clickable
       -    - Crash bugs when running on PPC systems fixed (with thanks to Zeke
       -      and Brian Campbell)
       -
       -1.5.3   04-02-2002
       -    - Text-mode server is now non-interactive by default (server admin can
       -      connect later with the -A option)
       -    - Windows server can now be run as an NT Service
       -    - Fatal bug when visiting the bank (under Win2000/XP) fixed
       -    - Windows installer should now upgrade old versions properly
       -    - Currency can now be configured with Currency.Symbol and Currency.Prefix
       -    - Windows client windows cannot now be made unreadably small
       -    - Bank/loan shark dialog now warns on entering negative prices
       -    - Default configuration is restored properly at the start of each game
       -    - Translations should now work with the Windows client
       -    - Documentation on the client-server protocol added
       -    - Windows graphical server can be minimized to the System Tray
       -    - Keyboard shortcuts for menu items in Windows client
       -    - Default buttons (ENTER -> "OK") for Windows client
       -    - RPM build/make install can now be run as non-superuser
       -    - Win32 install for current user/all users
       -    - Code cleanups
       -
       -1.5.2   16-10-2001
       -    - Slightly easier-to-use "run from fight" Jet dialog (avoids the crazy
       -      "windows pop up faster than you can close them" syndrome)
       -    - Support for HTTP proxies and authentication
       -    - SOCKS4 and SOCKS5 (user/password) support
       -    - French translation added by leonard
       -    - Boolean configuration variables (TRUE/FALSE) now supported
       -    - Many code cleanups
       -    - High score files now have a "proper" header, so that file(1) can
       -      identify them, and so the -f option cannot be used to force setgid-games
       -      dopewars to overwrite random files writeable by group "games" - use
       -      the -C option to convert old high score files to the new format
       -    - GNU long command line options now accepted on platforms with getopt_long
       -    - Simple installer now in place for Win32 systems
       -
       -1.5.1   19-06-2001
       -    - Improved logging in server via LogLevel and LogTimestamp variables
       -    - Metaserver (both client and server) moved to SourceForge
       -    - Icons (courtesy of Ocelot Mantis) and GNOME desktop entry added
       -
       -1.5.0   13-05-2001
       -    - Fixes for spurious tipoffs
       -    - High scores should now be written properly on Win32 systems
       -    - Various minor usability fixes on Win32 systems
       -
       -1.5.0beta2 29-04-2001
       -    - Various fixes for installation on BSD systems and Mac OS X
       -    - Multiplayer menus (spy on player, etc.) are now greyed out in GTK+ client
       -      when in single-player mode
       -    - Manpage (courtesy of Leon Breedt) added in doc/
       -    - Fix for missing "bgetch" when configured with --disable-curses-client
       -    - Broken "trenchcoat" message fixed
       -    - Value of bought drugs now displayed in curses client
       -    - AI players now are at least partially functional
       -    - Fix for server segfault on invalid short network messages
       -    - dopewars no longer runs GTK+ setgid
       -    - "make install" installs dopewars as group "wheel" if "games" is
       -      unavailable
       -
       -1.5.0beta1 08-04-2001
       -    - Completely rewritten fighting code
       -    - Internationalization (i18n) support
       -    - Tense and case-sensitive translated strings handled via dpg_ analogues
       -      to glib's g_ string handling functions %P = price,
       -      %Txx or %txx = tense-sensitive string, %/.../ = comment (ignored)
       -    - Networking revamped - now uses nonblocking sockets to improve server
       -      responsiveness and to remove deadlocks (previously, any client could
       -      halt server by sending an unterminated message); "abilities" added to
       -      allow backwards-compatible protocol extensions; player IDs used rather
       -      than player names to save bandwidth, with newer client+server
       -    - Drug values now stored by server (e.g. "you have 5 Weed @ $600); sent
       -      only if DrugValue config. variable is set, and only to new clients
       -      (based on a patch by Pierre F)
       -    - Spying fixed (cannot now spy on a player until they accept your bitch)
       -    - Longer T>alk and P>age messages allowed in curses client
       -    - Minor bug fixes to configure options
       -    - configure script tweaked to fix networking under Solaris (and friends)
       -      (with thanks to Caolan McNamara)
       -    - Client-side code moved out of clientside.c and dopewars.c;
       -      client-specific code now placed in <xxx>_client.c, while generic code is
       -      in message.c
       -    - GTK+ client added
       -    - Native "pointy-clicky" Win32 graphical client added (via GTK+ emulation)
       -    - GLib dependency introduced; string and list handling is taken care of
       -      now by GLib routines
       -    - Configuration files now handled by GLib's GScanner; "string lists"
       -      (of the format { "string1", "string2", "string3" } ) are now supported
       -      for configuration of subway sayings, "stopped to" and overheard songs
       -    - Timeouts bug fixed
       -    - MaxClients bug fixed
       -
       -1.4.8   09-07-2000
       -    - Several fixes to Win32 networking code
       -    - IdleTimeout and ConnectTimeout variables added, to allow the server to
       -      break connections that have been idle for too long, or take too long
       -      to (dis)connect, respectively
       -    - Servers now use UDP packets to communicate with metaserver, for 
       -      a faster response to changing game conditions; the client, and older
       -      versions of the server, still use the "old" CGI script interface;
       -      MetaServer.Port variable split into .HttpPort and .UdpPort
       -    - MetaServer.Password can now be used with a blank MetaServer.LocalName
       -      (with the new metaserver interface only) in order to identify servers
       -      whose IPs are dynamic (but are otherwise the "same" server); this password
       -      must, again, be acquired from the metaserver maintainer
       -    - Metaserver now records current & maximum numbers of players, high
       -      scores, and last update time and uptime, for each server
       -    - Servers now re-register with metaserver when players join or leave,
       -      on receipt of a SIGUSR1 signal, and periodically
       -    - Metaserver list in client now lists uptime, and current/maximum
       -      numbers of players
       -    - Pid file maintained while in server mode (-r command line switch)
       -    - Names of the gun shop, pub, bank and loan shark can now be customised
       -      (GunShopName, RoughPubName, BankName and LoanSharkName)
       -    - When a player tries to run from a fight, running to the current location
       -      now takes them back to the fighting screen
       -
       -1.4.7   14-01-2000
       -    - Minor fixes to Win32 code
       -    - dopewars now uses autoconf to (hopefully) build properly on odd sytems
       -      such as HP-UX, and also to build "out of the box" under Cygwin (win32)
       -    - long long datatype used for all prices on platforms that support it
       -    - fixes to strtoprice and pricetostr code; replacement of code which
       -      uses printf("%ld") for prices with pricetostr calls (with thanks to
       -      Coolio)
       -    - "Leave" option added to Bank
       -    - Messages window is now only displayed for network games
       -    - Binary can be compiled without TCP/IP networking support (e.g. for use
       -      on standalone systems) by configuring with --disable-networking
       -    - Minor modification to config. file handling to allow variables to be set
       -      to null strings (use "Variable=")
       -    - Option to allow the "local" server name to be specified when registering
       -      with the metaserver - MetaServer.LocalName variable. Useful when the
       -      metaserver refuses to resolve your IP address to your "preferred" domain
       -      name or when connecting via an enforced web proxy. Email the metaserver
       -      maintainer, for an authentication password (MetaServer.Password) linked to
       -      your chosen domain name, to use this option successfully.
       -
       -1.4.6   12-11-1999
       -    - Bug fix for message window and "sew you up" prompt
       -    - Bug fix for server hanging in LoseBitch function
       -    - If player opts to play again, server selection method used last time
       -      is used again
       -    - Terminal resizing now handled properly
       -    - Port to Win32 (Windows 95,98,NT) console mode
       -
       -1.4.5   21-10-1999
       -    - Limited support now for terminals at sizes other than 80x24; but response
       -      to a resize during the program run doesn't work properly yet...
       -    - Minor improvements to AI players
       -    - Corrected website address displayed by client on connecting to a
       -      server of a different version
       -    - If player opts to play again, defaults to the name they used last time
       -    - Server now disconnects clients when their game ends (rather than
       -      waiting for them to politely disconnect) - this gets around the problem
       -      of particularly unresponsive clients getting killed and then sitting
       -      around in an "undead" state, able to be repeatedly killed by other
       -      players
       -    - Armed players cannot now "stand and take it" (why would you want to
       -      anyway?) in multiplayer fights
       -    - Client now offers to obtain the list of available servers from the
       -      metaserver, to select one to connect to
       -    - "Special" values (MetaServer), (Prompt) and (Single) (including the
       -      brackets) now accepted for the "Server" variable, which instruct the
       -      client to list the servers, prompt the user for a server, or play
       -      in single-player mode, rather than connecting immediately to a server
       -    - "MetaServer.Port" variable added to facilitate connection to the
       -      metaserver via a proxy server (with thanks to Tony Brown)
       -    - Signal handling cleaned up
       -    - Buffer overflow problem with ExtractWord() fixed (hopefully) (with thanks
       -      to Lamagra)
       -    - Command line option -S for running a "private" server (do not contact
       -      the metaserver)
       -    - Prices for spies and tipoffs can be customised; this information is not
       -      communicated properly between 1.4.5 and earlier versions, of course.
       -      In such a case, the game will still work properly, although the client
       -      may report erroneous spy and tipoff prices
       -    - Fixed dodgy "pricetostr" function
       -    - Bug fix for "Drop" command in single-player mode
       -    - Command line option -g for specifying a supplementary configuration file
       -    - FightTimeout variable fixed - it now actually does something...
       -    - GunShop, LoanShark, RoughPub and Bank variables corrected so that they
       -      take actual location numbers now - not (location-1). WARNING: this
       -      breaks old configuration files!
       -    - Full HTML documentation now provided
       -    - Prices of bitches for hire can now be configured - Bitch.MinPrice and
       -      Bitch.MaxPrice
       -    - Removed description of non-existent "die" command in server
       -    - Minor fixes in antique mode
       -    - Fix of NumDrug and NumGun processing (now allows more than the default
       -      number of drugs and guns) (with thanks to Matt Higgins)
       -    - "ConfigVerbose" option added to display extra feedback during config
       -      file processing (with thanks to Matt Higgins)
       -
       -1.4.4   16-09-1999
       -    - Full compatibility with 1.4.3 servers and clients maintained
       -      (although a warning is displayed to upgrade as soon as possible)
       -    - dopewars client now properly redraws the screen when Ctrl-L is pressed
       -    - Server output is now line-buffered by default for more sensible output
       -      of log files
       -    - L>ist bug in single player mode fixed
       -    - Number of game turns can now be configured with the "NumTurns"
       -      variable, or the game can be left to go on forever if it's set to zero
       -    - The shortcuts "k" and "m" are now supported in any input of numbers
       -      (e.g. money to put in the bank). So, for instance, typing 1.5m would
       -      be short for typing 1500000  (m=million, k=thousand)
       -    - Server now automatically contacts the dopewars metaserver (actually
       -      a CGI script), at bellatrix.pcl.ox.ac.uk, whenever it is brought up or
       -      down, to keep the list of servers on the dopewars webpage up to date.
       -      Aspects of the server's communication with the metaserver can be
       -      configured with the MetaServer.xxx variables
       -    - Names of the two police officers which chase you (originally
       -      Hardass and Bob) can now be configured with the variables
       -      "Names.Officer" and "Names.ReserveOfficer" respectively
       -      (provided by: Mike Meyer)
       -    - Several uses of the  string constant "bitches" rather than
       -      the variable "Names.Bitches" have been spotted, and corrected
       -      (provided by: Mike Meyer)
       -    - "Sanitized" variable - if nonzero, removes drug references
       -      (random events, the cops, etc.) - obviously drug names need to also
       -      be changed in the config. file to complement this. Turns dopewars into
       -      a simple trading game
       -      (provided by: Mike Meyer)
       -    - Minor formatting cleanups to accommodate longer drug names on the
       -      screen neatly
       -      (provided by: Mike Meyer)
       -
       -1.4.3   23-06-1999
       -    - Bug with random offer of weed/paraquat fixed
       -    - L>ist command now offers list of logged-on players or high scores
       -    - "Out of time" message to explain why the game stops suddenly after
       -      31 days
       -    - Bank is now a little more user-friendly
       -    - Messages announcing players leaving or joining the game now appear in
       -      the central "messages" window, rather than the main, bottom window
       -    - Clients should now behave properly after the server crashes (or they
       -      are pushed off the server) - i.e. they should revert to a single-player
       -      mode game
       -    - price_t type used for all prices
       -    - Server interactive interface is now greatly improved, complete with
       -      help screen
       -    - SO_REUSEADDR set so that server can be restarted immediately if it crashes
       -    - Facility to drop unwanted drugs, with the accompanying chance that you
       -      are caught by Officer Hardass and shot at
       -    - Fighting interface greatly improved:-
       -      - All player-player fighting now occurs in a specialised window. Players
       -        can switch between the standard "deal drugs" window and the fighting
       -        window with the D and F keys
       -      - Number of keystrokes required to shoot and acknowledge all the
       -        relevant messages now greatly reduced
       -      - Some indication is now given of the other player's status (number of
       -        bitches and guns)
       -      - Server now imposes timeouts on fights, so if an opponent does not
       -        return fire within a set time, a repeat attack is allowed
       -      - A bounty is paid out for killing an enemy bitch, and any guns/drugs
       -        they're carrying are passed on to the victor (if he/she is able to
       -        carry them)
       -      - A dead player's cash is appropriated by the victor of a fight
       -    - Handling of configuration files now greatly improved; the same options
       -      that are set here can also be set within the server as long as no
       -      players are connected. A large number of dopewars settings can be
       -      changed and customised from here. Customised settings will be used
       -      in single-player mode, and if dopewars is used as a server the settings
       -      will be propagated to any clients (of version 1.4.3 or higher) that
       -      connect. Not everything can be customised, but any remaining changes
       -      should be server-side only (and thus require no alteration to the 
       -      clients). Options include:-
       -      - MaxClients option to limit the maximum number of players connected
       -        to the server
       -      - FightTimeout option to alter the length of the fight timeout
       -      - StartCash and StartDebt to change the default starting cash and debt
       -        of every player
       -      - Probabilities and toughness of Officer Hardass and his deputies can
       -        be "tweaked"
       -      - Numbers and names of locations, drugs and guns can be altered
       -      - The words used to denote "bitches", "guns" and "drugs" can be 
       -        customised
       -      - Drugs can now be sorted by name or by price, in forwards or reverse
       -        order, with the DrugSortMethod option (can take values 1-4)
       -
       -1.4.2   16-05-1999
       -    - AI player improvements
       -    - Message structure changed to use less bandwidth and neater code
       -    - Now easier to break out of buy/sell drug prompts etc. (by pressing an 
       -      'invalid' key or ENTER)
       -    - Cleanup of player list
       -    - Cleanup after a player leaves the server; i.e. remove any references to
       -      their spies or tipoffs with other players
       -    - Added highlight of most recent score (for systems without working 
       -      A_STANDOUT attribute)
       -    - Fixed bug which caused all street-bought (i.e. not at Dan's gun shop)
       -      guns to be Saturday Night Specials
       -    - Prevented badly-behaved clients from continuing to jet to new locations
       -      after their death 
       -    - Added code to remove whitespace from name=value data read from 
       -      configuration file, and defaulted from $HOME/.dopewars to /etc/dopewars
       -    - Added "helpful" messages when guns cannot be bought or sold in gun shop
       -    - Minor cleanups of player-player fighting messages
       -
       -1.4.1b  28-04-1999
       -    - segfault bug in server fixed
       -
       -1.4.1a  28-04-1999
       -    - Interim release before 1.4.2; a few bug fixes in antique mode
       -
       -1.4.1   27-04-1999
       -    - Fix of bug where paying off your debt would actually _increase_ it!
       -      Dunno how that one slipped through... I blame my beta testers... ;)
       -
       -1.4.0   27-04-1999
       -    - Fixed bug with server; server now detects if standard input has
       -      been closed properly (previously if its input was redirected from
       -      /dev/null it would keep trying to read from it, using 100% CPU. Oops.)
       -    - First release under GPL
       -
       -1.3.8   26-04-1999
       -    - Message structure changed; separator changed from : to ^ and extra
       -      field added to identify messages to AI players
       -    - Shorthand routines added for "printmessage" and "question" messages;
       -      SendPrintMessage and SendQuestion repectively
       -    - Display of status of fight with Officer Hardass cleaned up
       -    - All servers are now interactive; to run in background simply attach
       -      standard input and output to /dev/null
       -    - AI Player can now connect to server and perform simple actions
       -    - Bank and Loan Shark display cleaned up
       -    - Drug busts etc. now displayed all at once rather than singly
       -    - High scores now maintained by server
       -    - print_price replaced with FormatPrice
       -    - LOGF macro now used for all server log messages
       -    - Read in location of score files, server, port from ~/.dopewars
       -    - Fixed bugs in player-player fighting code
       -
       -1.3.7   28-03-1999
       -    - Proper support for tipoffs and spies
       -    - Discovered spies cannot now be shot if you don't have a gun...
       -    - Option added for computer players (non-functional however)
       -
       -1.3.6   14-03-1999
       -    - BreakoffCombat routine added to terminate fights cleanly when one
       -      player runs away from a fight (under 1.3.5 defending player would
       -      just hang when this was done...)
       -
       -1.3.5   27-02-1999
       -    - Basic support for meeting other players; E_MEETOTHER event added
       -    - Simple player-player fights allowed with the use of E_WAITFIGHT,
       -      E_DEFEND and E_ATTACK events 
       -    - Two players with same name bug fixed
       -    - "question" message extended; server now passes a list of allowed
       -      responses in the first "word" of message data
       -
       -1.3.4   25-02-1999
       -    - Client and virtual server now maintain completely separate lists of
       -      players
       -    - GunShop now works properly; user can actually see what's going on!
       -
       -1.3.3   23-02-1999
       -    - Complete implementation of fighting with Officer Hardass
       -    - E_DOCTOR event added to handle question "do you want a doctor to
       -      sew you up?" after killing Hardass
       -    - Clients now handle list and endlist messages properly to display
       -      lists of current players on starting a game
       -    - Minor bugfix to ensure game actually ends after the 31st
       -    - Client now wipes price list on each jet to stop old prices
       -      flashing up between messages from the server
       -
       -1.3.2   22-02-1999
       -    - "subwayflash" message added
       -    - OfferObject/RandomOffer split into separate event from OfficerHardass
       -    - "smoke paraquat" also given separate event (E_WEED) and implemented
       -    - Bank/LoanShark bugfixes
       -    - Bugfix for drug price generation code
       -    - Partial implementation of fighting with Officer Hardass
       -
       -1.3.1   21-02-1999
       -    - Drugs can now be bought and sold
       -    - RandomOffer and OfferObject routines added to handle server-based
       -      random events ("a friend gives you..." etc.) and object offers ("do
       -      you want to buy a..." etc.) although "smoke paraquat?" doesn't
       -      work properly
       -    - GunShop / LoanShark / Bank / Pub all handled by the server now
       -    - Some networking bugfixes 
       -
       -1.3.0   20-02-1999
       -    - Development series (moving decision-making from client to server to
       -      improve multi-player games and cut down on cheating, in preparation
       -      for an OpenSource release)
       -    - Simple implementation of a "virtual server" to handle the server-side
       -      stuff within a single-player game
       -    - Splitting up of Dopewars into dopewars.c (init. code and utils)
       -                                    message.c (message-handling code)
       -                                    serverside.c (server-side code)
       -                                    clientside.c (client-side code)
       -    - Drug prices now generated by server, not client - so synchronisation
       -      of turns (and drug prices) should be easy to implement in the future
       -    - Minimal functionality - networking backbone only...
       -
       -1.2.0   13-02-1999
       -    - Stable release; some bugs in fighting code cleaned up
       -
       -1.1.26  13-02-1999
       -    - "PolicePresence" member is now read - when a fight is started, there
       -      is a finite chance (varies from location to location) that the
       -      perpetrator will get attacked by the police
       -    - MinDrug and MaxDrug members added to Location struct - some locations
       -      may have a smaller range of drugs on offer than others
       -
       -1.1.25  11-02-1999
       -    - Added an "Inventory" struct to keep track of players' belongings
       -      and anything dropped during a fight; winner of a fight now gets
       -      whatever the other player dropped (guns and/or drugs)
       -
       -1.1.24  9-02-1999
       -    - Put in code to "finish" fights properly when one player escapes
       -    - Attacking player is now told whether they hit the other player or
       -      not when in a fight
       -
       -1.1.23  3-02-1999
       -    - "Jet" command replaced with "Run" when in a fight
       -    - "PolicePresence" member added to Location struct
       -    - GunShop bug fixed (guns were taking up no space) 
       -
       -1.1.22  30-01-1999
       -    - Implemented very simple "shoot at another dealers" code; players, on
       -      arriving at a location where another dealer already is, can choose
       -      to attack (if they have any guns). The attacked player can then
       -      choose to return fire or run for it...
       -
       -1.1.21  29-01-1999
       -    - Added support for the "spy on another dealer" bitch errand
       -
       -1.1.20  29-01-1999
       -    - Added support for the "tip off another dealer to the cops" bitch
       -      errand
 (DIR) diff --git a/ChangeLog.md b/ChangeLog.md
       t@@ -0,0 +1,569 @@
       +# 1.6.0   06-12-2020
       +- Fixes to build with OpenWRT (thanks to Theodor-Iulian Ciobanu).
       +- Write server pidfile after fork (thanks to Theodor-Iulian Ciobanu).
       +- Updated German and French Canadian translations from Benjamin Karaca
       +  and Francois Marier.
       +- Support for old GTK1 and GLIB1 libraries removed - we now need version 2
       +  of these libraries to build dopewars. GTK+3 is also supported.
       +- Update metaserver to work with new SourceForge; older versions can no
       +  longer successfully register with the metaserver.
       +- Switch to using libcurl to talk to the metaserver (this supports https,
       +  unlike the old internal code). The metaserver configuration has changed
       +  accordingly; `MetaServer.Name`, `MetaServer.Port` and `MetaServer.Path` are
       +  replaced with `MetaServer.URL`, while `MetaServer.Auth`, `MetaServer.Proxy*`,
       +  and `MetaServer.UseSocks` are removed (set the `https_proxy` environment
       +  variable instead, as per
       +  https://curl.haxx.se/libcurl/c/libcurl-tutorial.html#Environment)
       +- The default web browser on Linux has changed from 'mozilla' to
       +  'firefox'; on Mac the system-configured default browser is used.
       +- On Windows the high score file, log file, and config file are now
       +  stored in the user application data directory (e.g.
       +  `C:\Users\foo\AppData\Local\dopewars`) rather than the same directory as
       +  the dopewars binary.
       +- Add sound support with SDL2, and on Mac.
       +- Add 64-bit Windows binaries.
       +- Fix for a DOS against the server using the REQUESTJET message type
       +  (thanks to Doug Prostko for reporting the problem).
       +
       +# 1.5.12  30-12-2005
       +- Really fix a potential exploit against the Win32 server when running as
       +  an NT service (user data was being used as a format string in some cases).
       +
       +# 1.5.11  30-12-2005
       +- Add example configuration file to the documentation.
       +- Fixed various typos in the German translation (thanks to Jens Seidel
       +  and Francois Marier).
       +- Fix a remote exploit against the Win32 server (thanks to KF).
       +- High score file on Windows is now written into local application data
       +  directory if available, to work more efficiently on multi-user systems.
       +
       +# 1.5.10  24-10-2004
       +- High score file is now installed in `${localstatedir}` rather than
       +  `${datadir}`, to allow proper Filesystem Hierarchy Standard compliance
       +- Fix for a curses client crash if the D key is pressed during attacks
       +  by the cops
       +- Some problems with the curses client missing screen resize events fixed
       +- Logging to a file should now work properly again
       +- Minimum and maximum limits on all relevant integer configuration
       +  file variables are now imposed for sanity
       +- Quique's Spanish translation is now available both in standard Spanish
       +  (`es.po`) and `es_ES.po`, which uses drugs slang from Spain
       +- Fix for a trivial DOS of the server
       +- Windows installer no longer hardcodes `C:\Program Files` so should
       +  work with non-English versions of Windows
       +
       +# 1.5.9   07-06-2003
       +- The messages window in the curses client can now be scrolled with the
       +  + and - keys
       +- The curses client now makes better use of space with screen sizes
       +  larger than 80x24
       +- Fix for a crash encountered if you drop drugs and then encounter the cops
       +- Addition of -P, --player command line option to set the player name
       +  to use (thanks to Michael Mitton)
       +
       +# 1.5.8   21-10-2002
       +- Options dialog now allows sounds for all supported game events to be set
       +- BindAddress config variable added, to allow the server to be bound to
       +  a non-default IP address
       +- BankInterest and DebtInterest variables added, to allow the
       +  configuration of interest rates (with thanks to Matt)
       +- New "UTF8" ability added; if client and server share this ability, then
       +  all network messages will be sent in UTF-8 (Unicode) encoding (without
       +  the ability, all messages are assumed to be in your locale's default
       +  codeset, which may cause problems on non-US ASCII systems)
       +- Names.Month and Names.Year have been replaced with StartDate.Day,
       +  StartDate.Month, StartDate.Year and Names.Date; these can be used to
       +  handle the date display properly after the turn number exceeds 31
       +- encoding and include config directives added, to allow the config file's
       +  encoding (usually taken from the locale) to be overridden, and to allow
       +  the inclusion of other config files
       +- Spanish translation added by Quique
       +- The Windows build of dopewars should now use Unicode throughout, on
       +  platforms with Unicode support (i.e. NT/2000/XP)
       +- Under Windows XP, the "pretty" new common controls are now used
       +- Sounds provided by Robin Kohli of www.19.5degs.com
       +
       +# 1.5.7   25-06-2002
       +- Sound support; Windows multimedia, ESD and SDL outputs are supported;
       +  the individual modules can be statically linked in, or built as true
       +  "plugins"
       +- Version mismatches between client and server are now treated more
       +  sensibly (it's all done server-side, and spurious warnings are now
       +  removed - only an old client connecting to a new server will
       +  trigger them)
       +- Bug fix: when the buttons in the Fight dialog are not visible to a
       +  mouse user, previously you were able to access them via the keyboard
       +  shortcuts; now fixed.
       +- configure should now work properly if GLib 2.0 is installed but
       +  GTK2.0 is not
       +- Norwegian Nynorsk translation added by Åsmund
       +- If dopewars is run setuid/setgid, it will now only use this privilege
       +  to open the default (hard-coded) high score file; it will not open
       +  a user-specified high score file with privilege
       +- It is no longer necessary to run "dopewars -C" on a zero-byte high
       +  score file; it will be converted automatically
       +- A new server command "save" can be used to save the current configuration
       +  to a named config file
       +
       +# 1.5.6   29-04-2002
       +- Bug fix: the server will only let you pay back loans or deal with the
       +  bank when you are at the correct location, and you can no longer
       +  "pay back" negative amounts of cash to the loan shark
       +- Minor improvements to fighting code
       +- The GTK+2 client should now run properly in non-UTF8 locales, and
       +  handle configuration files in both UTF8 and non-UTF8 locales
       +- Unsafe list iteration in serverside code (which could possibly cause
       +  memory corruption) fixed
       +- Another dumb PPC bug fixed
       +- Incorrect LIBS generated by configure script in some circumstances
       +  (due to a GTK+/Glib bug) - now fixed
       +- Everything should now build with autoconf-2.53 (if desired)
       +
       +# 1.5.5   13-04-2002
       +- On fight termination the player is now allowed to close the "Fight"
       +  dialog before any new dialogs pop up
       +- Bug caused by a "fight" interrupting a "deal" fixed
       +- dopewars no longer crashes if you set e.g. NumGun = 0
       +- Incorrect handling of `WM_CLOSE` under Win32 fixed
       +- Unix server now fails "gracefully" if it cannot create the Unix domain
       +  socket for admin connections
       +- New ServerMOTD variable to welcome players to a server (with thanks
       +  to Mike Robinson)
       +- GTK+ client should now work with GTK+2.0
       +
       +# 1.5.4   03-03-2002
       +- Basic configuration file editor added to GTK+ client
       +- Annoying flashing on closure of modal windows in Win32 fixed
       +- Win32 client now uses "proper" dialog boxes (i.e. without a window menu)
       +- Icon added for GTK+ client
       +- Bug with withdrawing cash from the bank fixed
       +- URL in GTK+ client "About" box is now clickable
       +- Crash bugs when running on PPC systems fixed (with thanks to Zeke
       +  and Brian Campbell)
       +
       +# 1.5.3   04-02-2002
       +- Text-mode server is now non-interactive by default (server admin can
       +  connect later with the -A option)
       +- Windows server can now be run as an NT Service
       +- Fatal bug when visiting the bank (under Win2000/XP) fixed
       +- Windows installer should now upgrade old versions properly
       +- Currency can now be configured with Currency.Symbol and Currency.Prefix
       +- Windows client windows cannot now be made unreadably small
       +- Bank/loan shark dialog now warns on entering negative prices
       +- Default configuration is restored properly at the start of each game
       +- Translations should now work with the Windows client
       +- Documentation on the client-server protocol added
       +- Windows graphical server can be minimized to the System Tray
       +- Keyboard shortcuts for menu items in Windows client
       +- Default buttons (ENTER -> "OK") for Windows client
       +- RPM build/make install can now be run as non-superuser
       +- Win32 install for current user/all users
       +- Code cleanups
       +
       +# 1.5.2   16-10-2001
       +- Slightly easier-to-use "run from fight" Jet dialog (avoids the crazy
       +  "windows pop up faster than you can close them" syndrome)
       +- Support for HTTP proxies and authentication
       +- SOCKS4 and SOCKS5 (user/password) support
       +- French translation added by leonard
       +- Boolean configuration variables (TRUE/FALSE) now supported
       +- Many code cleanups
       +- High score files now have a "proper" header, so that file(1) can
       +  identify them, and so the -f option cannot be used to force setgid-games
       +  dopewars to overwrite random files writeable by group "games" - use
       +  the -C option to convert old high score files to the new format
       +- GNU long command line options now accepted on platforms with `getopt_long`
       +- Simple installer now in place for Win32 systems
       +
       +# 1.5.1   19-06-2001
       +- Improved logging in server via LogLevel and LogTimestamp variables
       +- Metaserver (both client and server) moved to SourceForge
       +- Icons (courtesy of Ocelot Mantis) and GNOME desktop entry added
       +
       +# 1.5.0   13-05-2001
       +- Fixes for spurious tipoffs
       +- High scores should now be written properly on Win32 systems
       +- Various minor usability fixes on Win32 systems
       +
       +# 1.5.0beta2 29-04-2001
       +- Various fixes for installation on BSD systems and Mac OS X
       +- Multiplayer menus (spy on player, etc.) are now greyed out in GTK+ client
       +  when in single-player mode
       +- Manpage (courtesy of Leon Breedt) added in doc/
       +- Fix for missing "bgetch" when configured with --disable-curses-client
       +- Broken "trenchcoat" message fixed
       +- Value of bought drugs now displayed in curses client
       +- AI players now are at least partially functional
       +- Fix for server segfault on invalid short network messages
       +- dopewars no longer runs GTK+ setgid
       +- "make install" installs dopewars as group "wheel" if "games" is
       +  unavailable
       +
       +# 1.5.0beta1 08-04-2001
       +- Completely rewritten fighting code
       +- Internationalization (i18n) support
       +- Tense and case-sensitive translated strings handled via `dpg_` analogues
       +  to glib's `g_` string handling functions `%P` = price,
       +  `%Txx` or `%txx` = tense-sensitive string, `%/.../` = comment (ignored)
       +- Networking revamped - now uses nonblocking sockets to improve server
       +  responsiveness and to remove deadlocks (previously, any client could
       +  halt server by sending an unterminated message); "abilities" added to
       +  allow backwards-compatible protocol extensions; player IDs used rather
       +  than player names to save bandwidth, with newer client+server
       +- Drug values now stored by server (e.g. "you have 5 Weed @ $600); sent
       +  only if DrugValue config. variable is set, and only to new clients
       +  (based on a patch by Pierre F)
       +- Spying fixed (cannot now spy on a player until they accept your bitch)
       +- Longer `T>alk` and `P>age` messages allowed in curses client
       +- Minor bug fixes to configure options
       +- configure script tweaked to fix networking under Solaris (and friends)
       +  (with thanks to Caolan McNamara)
       +- Client-side code moved out of `clientside.c` and `dopewars.c`;
       +  client-specific code now placed in `<xxx>_client.c`, while generic code is
       +  in `message.c`
       +- GTK+ client added
       +- Native "pointy-clicky" Win32 graphical client added (via GTK+ emulation)
       +- GLib dependency introduced; string and list handling is taken care of
       +  now by GLib routines
       +- Configuration files now handled by GLib's GScanner; "string lists"
       +  (of the format { "string1", "string2", "string3" } ) are now supported
       +  for configuration of subway sayings, "stopped to" and overheard songs
       +- Timeouts bug fixed
       +- MaxClients bug fixed
       +
       +# 1.4.8   09-07-2000
       +- Several fixes to Win32 networking code
       +- IdleTimeout and ConnectTimeout variables added, to allow the server to
       +  break connections that have been idle for too long, or take too long
       +  to (dis)connect, respectively
       +- Servers now use UDP packets to communicate with metaserver, for 
       +  a faster response to changing game conditions; the client, and older
       +  versions of the server, still use the "old" CGI script interface;
       +  MetaServer.Port variable split into .HttpPort and .UdpPort
       +- MetaServer.Password can now be used with a blank MetaServer.LocalName
       +  (with the new metaserver interface only) in order to identify servers
       +  whose IPs are dynamic (but are otherwise the "same" server); this password
       +  must, again, be acquired from the metaserver maintainer
       +- Metaserver now records current & maximum numbers of players, high
       +  scores, and last update time and uptime, for each server
       +- Servers now re-register with metaserver when players join or leave,
       +  on receipt of a SIGUSR1 signal, and periodically
       +- Metaserver list in client now lists uptime, and current/maximum
       +  numbers of players
       +- Pid file maintained while in server mode (-r command line switch)
       +- Names of the gun shop, pub, bank and loan shark can now be customised
       +  (GunShopName, RoughPubName, BankName and LoanSharkName)
       +- When a player tries to run from a fight, running to the current location
       +  now takes them back to the fighting screen
       +
       +# 1.4.7   14-01-2000
       +- Minor fixes to Win32 code
       +- dopewars now uses autoconf to (hopefully) build properly on odd sytems
       +  such as HP-UX, and also to build "out of the box" under Cygwin (win32)
       +- long long datatype used for all prices on platforms that support it
       +- fixes to strtoprice and pricetostr code; replacement of code which
       +  uses printf("%ld") for prices with pricetostr calls (with thanks to
       +  Coolio)
       +- "Leave" option added to Bank
       +- Messages window is now only displayed for network games
       +- Binary can be compiled without TCP/IP networking support (e.g. for use
       +  on standalone systems) by configuring with --disable-networking
       +- Minor modification to config. file handling to allow variables to be set
       +  to null strings (use "Variable=")
       +- Option to allow the "local" server name to be specified when registering
       +  with the metaserver - MetaServer.LocalName variable. Useful when the
       +  metaserver refuses to resolve your IP address to your "preferred" domain
       +  name or when connecting via an enforced web proxy. Email the metaserver
       +  maintainer, for an authentication password (MetaServer.Password) linked to
       +  your chosen domain name, to use this option successfully.
       +
       +# 1.4.6   12-11-1999
       +- Bug fix for message window and "sew you up" prompt
       +- Bug fix for server hanging in LoseBitch function
       +- If player opts to play again, server selection method used last time
       +  is used again
       +- Terminal resizing now handled properly
       +- Port to Win32 (Windows 95,98,NT) console mode
       +
       +# 1.4.5   21-10-1999
       +- Limited support now for terminals at sizes other than 80x24; but response
       +  to a resize during the program run doesn't work properly yet...
       +- Minor improvements to AI players
       +- Corrected website address displayed by client on connecting to a
       +  server of a different version
       +- If player opts to play again, defaults to the name they used last time
       +- Server now disconnects clients when their game ends (rather than
       +  waiting for them to politely disconnect) - this gets around the problem
       +  of particularly unresponsive clients getting killed and then sitting
       +  around in an "undead" state, able to be repeatedly killed by other
       +  players
       +- Armed players cannot now "stand and take it" (why would you want to
       +  anyway?) in multiplayer fights
       +- Client now offers to obtain the list of available servers from the
       +  metaserver, to select one to connect to
       +- "Special" values (MetaServer), (Prompt) and (Single) (including the
       +  brackets) now accepted for the "Server" variable, which instruct the
       +  client to list the servers, prompt the user for a server, or play
       +  in single-player mode, rather than connecting immediately to a server
       +- "MetaServer.Port" variable added to facilitate connection to the
       +  metaserver via a proxy server (with thanks to Tony Brown)
       +- Signal handling cleaned up
       +- Buffer overflow problem with ExtractWord() fixed (hopefully) (with thanks
       +  to Lamagra)
       +- Command line option -S for running a "private" server (do not contact
       +  the metaserver)
       +- Prices for spies and tipoffs can be customised; this information is not
       +  communicated properly between 1.4.5 and earlier versions, of course.
       +  In such a case, the game will still work properly, although the client
       +  may report erroneous spy and tipoff prices
       +- Fixed dodgy "pricetostr" function
       +- Bug fix for "Drop" command in single-player mode
       +- Command line option -g for specifying a supplementary configuration file
       +- FightTimeout variable fixed - it now actually does something...
       +- GunShop, LoanShark, RoughPub and Bank variables corrected so that they
       +  take actual location numbers now - not (location-1). WARNING: this
       +  breaks old configuration files!
       +- Full HTML documentation now provided
       +- Prices of bitches for hire can now be configured - Bitch.MinPrice and
       +  Bitch.MaxPrice
       +- Removed description of non-existent "die" command in server
       +- Minor fixes in antique mode
       +- Fix of NumDrug and NumGun processing (now allows more than the default
       +  number of drugs and guns) (with thanks to Matt Higgins)
       +- "ConfigVerbose" option added to display extra feedback during config
       +  file processing (with thanks to Matt Higgins)
       +
       +# 1.4.4   16-09-1999
       +- Full compatibility with 1.4.3 servers and clients maintained
       +  (although a warning is displayed to upgrade as soon as possible)
       +- dopewars client now properly redraws the screen when Ctrl-L is pressed
       +- Server output is now line-buffered by default for more sensible output
       +  of log files
       +- `L>ist` bug in single player mode fixed
       +- Number of game turns can now be configured with the "NumTurns"
       +  variable, or the game can be left to go on forever if it's set to zero
       +- The shortcuts "k" and "m" are now supported in any input of numbers
       +  (e.g. money to put in the bank). So, for instance, typing 1.5m would
       +  be short for typing 1500000  (m=million, k=thousand)
       +- Server now automatically contacts the dopewars metaserver (actually
       +  a CGI script), at bellatrix.pcl.ox.ac.uk, whenever it is brought up or
       +  down, to keep the list of servers on the dopewars webpage up to date.
       +  Aspects of the server's communication with the metaserver can be
       +  configured with the MetaServer.xxx variables
       +- Names of the two police officers which chase you (originally
       +  Hardass and Bob) can now be configured with the variables
       +  "Names.Officer" and "Names.ReserveOfficer" respectively
       +  (provided by: Mike Meyer)
       +- Several uses of the  string constant "bitches" rather than
       +  the variable "Names.Bitches" have been spotted, and corrected
       +  (provided by: Mike Meyer)
       +- "Sanitized" variable - if nonzero, removes drug references
       +  (random events, the cops, etc.) - obviously drug names need to also
       +  be changed in the config. file to complement this. Turns dopewars into
       +  a simple trading game (provided by: Mike Meyer)
       +- Minor formatting cleanups to accommodate longer drug names on the
       +  screen neatly (provided by: Mike Meyer)
       +
       +# 1.4.3   23-06-1999
       +- Bug with random offer of weed/paraquat fixed
       +- `L>ist` command now offers list of logged-on players or high scores
       +- "Out of time" message to explain why the game stops suddenly after 31 days
       +- Bank is now a little more user-friendly
       +- Messages announcing players leaving or joining the game now appear in
       +  the central "messages" window, rather than the main, bottom window
       +- Clients should now behave properly after the server crashes (or they
       +  are pushed off the server) - i.e. they should revert to a single-player
       +  mode game
       +- `price_t` type used for all prices
       +- Server interactive interface is now greatly improved, complete with
       +  help screen
       +- `SO_REUSEADDR` set so that server can be restarted immediately if it crashes
       +- Facility to drop unwanted drugs, with the accompanying chance that you
       +  are caught by Officer Hardass and shot at
       +- Fighting interface greatly improved:-
       +  - All player-player fighting now occurs in a specialised window. Players
       +    can switch between the standard "deal drugs" window and the fighting
       +    window with the D and F keys
       +  - Number of keystrokes required to shoot and acknowledge all the
       +    relevant messages now greatly reduced
       +  - Some indication is now given of the other player's status (number of
       +    bitches and guns)
       +  - Server now imposes timeouts on fights, so if an opponent does not
       +    return fire within a set time, a repeat attack is allowed
       +  - A bounty is paid out for killing an enemy bitch, and any guns/drugs
       +    they're carrying are passed on to the victor (if he/she is able to
       +    carry them)
       +  - A dead player's cash is appropriated by the victor of a fight
       +- Handling of configuration files now greatly improved; the same options
       +  that are set here can also be set within the server as long as no
       +  players are connected. A large number of dopewars settings can be
       +  changed and customised from here. Customised settings will be used
       +  in single-player mode, and if dopewars is used as a server the settings
       +  will be propagated to any clients (of version 1.4.3 or higher) that
       +  connect. Not everything can be customised, but any remaining changes
       +  should be server-side only (and thus require no alteration to the 
       +  clients). Options include:-
       +  - MaxClients option to limit the maximum number of players connected
       +    to the server
       +  - FightTimeout option to alter the length of the fight timeout
       +  - StartCash and StartDebt to change the default starting cash and debt
       +    of every player
       +  - Probabilities and toughness of Officer Hardass and his deputies can
       +    be "tweaked"
       +  - Numbers and names of locations, drugs and guns can be altered
       +  - The words used to denote "bitches", "guns" and "drugs" can be 
       +    customised
       +  - Drugs can now be sorted by name or by price, in forwards or reverse
       +    order, with the DrugSortMethod option (can take values 1-4)
       +
       +# 1.4.2   16-05-1999
       +- AI player improvements
       +- Message structure changed to use less bandwidth and neater code
       +- Now easier to break out of buy/sell drug prompts etc. (by pressing an 
       +  'invalid' key or ENTER)
       +- Cleanup of player list
       +- Cleanup after a player leaves the server; i.e. remove any references to
       +  their spies or tipoffs with other players
       +- Added highlight of most recent score (for systems without working 
       +  `A_STANDOUT` attribute)
       +- Fixed bug which caused all street-bought (i.e. not at Dan's gun shop)
       +  guns to be Saturday Night Specials
       +- Prevented badly-behaved clients from continuing to jet to new locations
       +  after their death 
       +- Added code to remove whitespace from name=value data read from 
       +  configuration file, and defaulted from $HOME/.dopewars to /etc/dopewars
       +- Added "helpful" messages when guns cannot be bought or sold in gun shop
       +- Minor cleanups of player-player fighting messages
       +
       +# 1.4.1b  28-04-1999
       +- segfault bug in server fixed
       +
       +# 1.4.1a  28-04-1999
       +- Interim release before 1.4.2; a few bug fixes in antique mode
       +
       +# 1.4.1   27-04-1999
       +- Fix of bug where paying off your debt would actually _increase_ it!
       +  Dunno how that one slipped through... I blame my beta testers... ;)
       +
       +# 1.4.0   27-04-1999
       +- Fixed bug with server; server now detects if standard input has
       +  been closed properly (previously if its input was redirected from
       +  /dev/null it would keep trying to read from it, using 100% CPU. Oops.)
       +- First release under GPL
       +
       +# 1.3.8   26-04-1999
       +- Message structure changed; separator changed from : to ^ and extra
       +  field added to identify messages to AI players
       +- Shorthand routines added for "printmessage" and "question" messages;
       +  SendPrintMessage and SendQuestion repectively
       +- Display of status of fight with Officer Hardass cleaned up
       +- All servers are now interactive; to run in background simply attach
       +  standard input and output to /dev/null
       +- AI Player can now connect to server and perform simple actions
       +- Bank and Loan Shark display cleaned up
       +- Drug busts etc. now displayed all at once rather than singly
       +- High scores now maintained by server
       +- `print_price` replaced with `FormatPrice`
       +- LOGF macro now used for all server log messages
       +- Read in location of score files, server, port from ~/.dopewars
       +- Fixed bugs in player-player fighting code
       +
       +# 1.3.7   28-03-1999
       +- Proper support for tipoffs and spies
       +- Discovered spies cannot now be shot if you don't have a gun...
       +- Option added for computer players (non-functional however)
       +
       +# 1.3.6   14-03-1999
       +- BreakoffCombat routine added to terminate fights cleanly when one
       +  player runs away from a fight (under 1.3.5 defending player would
       +  just hang when this was done...)
       +
       +# 1.3.5   27-02-1999
       +- Basic support for meeting other players; `E_MEETOTHER` event added
       +- Simple player-player fights allowed with the use of `E_WAITFIGHT`,
       +  `E_DEFEND` and `E_ATTACK` events 
       +- Two players with same name bug fixed
       +- "question" message extended; server now passes a list of allowed
       +  responses in the first "word" of message data
       +
       +# 1.3.4   25-02-1999
       +- Client and virtual server now maintain completely separate lists of
       +  players
       +- GunShop now works properly; user can actually see what's going on!
       +
       +# 1.3.3   23-02-1999
       +- Complete implementation of fighting with Officer Hardass
       +- `E_DOCTOR` event added to handle question "do you want a doctor to
       +  sew you up?" after killing Hardass
       +- Clients now handle list and endlist messages properly to display
       +  lists of current players on starting a game
       +- Minor bugfix to ensure game actually ends after the 31st
       +- Client now wipes price list on each jet to stop old prices
       +  flashing up between messages from the server
       +
       +# 1.3.2   22-02-1999
       +- "subwayflash" message added
       +- OfferObject/RandomOffer split into separate event from OfficerHardass
       +- "smoke paraquat" also given separate event (`E_WEED`) and implemented
       +- Bank/LoanShark bugfixes
       +- Bugfix for drug price generation code
       +- Partial implementation of fighting with Officer Hardass
       +
       +# 1.3.1   21-02-1999
       +- Drugs can now be bought and sold
       +- RandomOffer and OfferObject routines added to handle server-based
       +  random events ("a friend gives you..." etc.) and object offers ("do
       +  you want to buy a..." etc.) although "smoke paraquat?" doesn't
       +  work properly
       +- GunShop / LoanShark / Bank / Pub all handled by the server now
       +- Some networking bugfixes 
       +
       +# 1.3.0   20-02-1999
       +- Development series (moving decision-making from client to server to
       +  improve multi-player games and cut down on cheating, in preparation
       +  for an OpenSource release)
       +- Simple implementation of a "virtual server" to handle the server-side
       +  stuff within a single-player game
       +- Splitting up of Dopewars into dopewars.c (init. code and utils);
       +  message.c (message-handling code); serverside.c (server-side code);
       +  clientside.c (client-side code)
       +- Drug prices now generated by server, not client - so synchronisation
       +  of turns (and drug prices) should be easy to implement in the future
       +- Minimal functionality - networking backbone only...
       +
       +# 1.2.0   13-02-1999
       +- Stable release; some bugs in fighting code cleaned up
       +
       +# 1.1.26  13-02-1999
       +- "PolicePresence" member is now read - when a fight is started, there
       +  is a finite chance (varies from location to location) that the
       +  perpetrator will get attacked by the police
       +- MinDrug and MaxDrug members added to Location struct - some locations
       +  may have a smaller range of drugs on offer than others
       +
       +# 1.1.25  11-02-1999
       +- Added an "Inventory" struct to keep track of players' belongings
       +  and anything dropped during a fight; winner of a fight now gets
       +  whatever the other player dropped (guns and/or drugs)
       +
       +# 1.1.24  9-02-1999
       +- Put in code to "finish" fights properly when one player escapes
       +- Attacking player is now told whether they hit the other player or
       +  not when in a fight
       +
       +# 1.1.23  3-02-1999
       +- "Jet" command replaced with "Run" when in a fight
       +- "PolicePresence" member added to Location struct
       +- GunShop bug fixed (guns were taking up no space) 
       +
       +# 1.1.22  30-01-1999
       +- Implemented very simple "shoot at another dealers" code; players, on
       +  arriving at a location where another dealer already is, can choose
       +  to attack (if they have any guns). The attacked player can then
       +  choose to return fire or run for it...
       +
       +# 1.1.21  29-01-1999
       +- Added support for the "spy on another dealer" bitch errand
       +
       +# 1.1.20  29-01-1999
       +- Added support for the "tip off another dealer to the cops" bitch errand
 (DIR) diff --git a/Makefile.am b/Makefile.am
       t@@ -5,7 +5,7 @@ SCOREDIR       = ${DESTDIR}${localstatedir}
        SCORE          = ${SCOREDIR}/dopewars.sco
        EXTRA_DIST     = ABOUT-NLS LICENCE dopewars.desktop rpm/dopewars.spec.in \
                         runindent.sh win32/README.md win32/install.nsi.in README.md \
       -                 win32/mingw/Dockerfile
       +                 win32/mingw/Dockerfile ChangeLog.md
        CLEANFILES     = dopewars.sco dopewars-log.txt dopewars-config.txt
        DISTCLEANFILES = rpm/dopewars.spec
        ACLOCAL_AMFLAGS= -I m4
 (DIR) diff --git a/auxbuild/README-release b/auxbuild/README-release
       t@@ -1,7 +1,7 @@
        New version checklist:
        
        - cd po; rm dopewars.pot; make dopewars.pot; make update-po; ./check-cformat.sh
       -- Add version number, date to ChangeLog
       +- Add version number, date to ChangeLog.md
        - Change stable version number in NEWS README.md doc/installation.html doc/index.html doc/windows.html
        - git checkout -b release/x.y.z
        - Change SVN to x.y.z in configure.ac and commit
 (DIR) diff --git a/rpm/dopewars.spec.in b/rpm/dopewars.spec.in
       t@@ -52,7 +52,7 @@ test "$RPM_BUILD_ROOT" != "/" && rm -rf ${RPM_BUILD_ROOT}
        
        %files -f %{name}.lang
        %defattr(-,root,root)
       -%doc ChangeLog LICENCE README.md
       +%doc ChangeLog.md LICENCE README.md
        %doc %{_docdir}/%{name}
        %attr(2755,root,games) %{_bindir}/dopewars
        %attr(0660,root,games) %config %{_localstatedir}/dopewars.sco