===========================
 Version 5.4 (13 Feb 2009)
===========================

* Fixed build problems on various systems.

===========================
 Version 5.3 (14 Nov 2008)
===========================

* IFM is now hosted at Bitbucket_.

* New ``them`` keyword, which refers to the list of items mentioned in the
  current statement.

* New game-solver variables: ``finish_room``, ``finish_item`` and
  ``finish_task``, which can be a comma-separated list of extra rooms,
  items and tasks which get assigned the ``finish`` attribute (i.e., cause
  the solver to exit).

* New task graph variables: ``task_graph_wrap``, which controls
  word-wrapping when printing graph nodes, and ``task_graph_font``, which
  sets the text font.

* The new keywords ``true`` and ``false`` can be used in place of 1 and 0,
  respectively, when setting variables.

* Both versions of the personal initialization file (``.ifmrc`` and
  ``ifm.ini``) are now read, if they exist.

* There's a new Perl script ``ifm2web``, which converts IFM maps to image
  files suitable for the Interweb.

* The GNU Emacs ``ifm-mode.el`` in the ``contrib`` directory has been
  improved: it can display task recording and debugging output, now has
  ``imenu`` and ``flymake`` support, and a minor bug fix.

* The documentation is now much prettier, thanks to Sphinx_ and Pygments_.
  The ``contrib`` directory contains the Python_ module used to
  syntax-highlight IFM code and IF transcripts.

* Since ``asciimapper`` is now in the IF archive, it is no longer part of
  the ``contrib`` directory.

* PostScript maps now conform properly to Adobe DSC_.  This stops
  Ghostscript 8.x barfing on them.

.. _Sphinx: http://sphinx.pocoo.org
.. _Pygments: http://pygments.org
.. _Python: http://www.python.org
.. _DSC: http://www-cdf.fnal.gov/offline/PostScript/AdobePS.html
.. _Bitbucket: http://www.bitbucket.org/zondo/ifm

==========================
 Version 5.2 (7 Sep 2006)
==========================

* There's a new ``-errors`` option, which controls the maximum number of
  errors printed before giving up.

* New program in the ``contrib`` directory: ``asciimapper``.  This is a
  tool to create IFM maps from ASCII art maps, contributed by Elijah
  Griffin.

* The GNU Emacs ``ifm-mode.el`` in the ``contrib`` directory has new
  commands to display maps, items and tasks and various other things.
  Based on an initial version contributed by `Lee Bigelow`_.

* Several unused features which added needless complexity have been
  removed.  These are: preprocessing by ``gpp``, expressions for
  real/integer values, and variable interpolation in strings.

* An obscure bug has been fixed which involved the ``follow`` and ``need``
  attributes combined.  This caused some valid task orderings to be flagged
  as cycles.

* A bug with modification of room attributes has been fixed.

* Don't crash when trying to solve game and there are no rooms.

* A crash when trying to print an error message about cyclic task
  dependencies has been fixed.

.. _Lee Bigelow: ligelowbee@yahoo.com

===========================
 Version 5.1 (30 Nov 2004)
===========================

* The ``tkifm`` program now supports line numbering and syntax
  highlighting, thanks to a contributor who wishes to remain anonymous.

* There is now a man page summarizing the command-line options.

* In PostScript output, up/down and in/out labels are now drawn separately,
  next to their respective rooms.  Also, if a link leaves a room and
  returns to the same room, it's drawn as a small circle.  Thanks to `Dan
  Eble`_.

* Hopefully, the Windows port should work properly now.

* Fixed weird bug with scaled arcs in PostScript output.  More thanks to
  `Dan Eble`_.

* Fixed bug in ``ifm2tex`` with converting strings to TeX format
  (specifically, ones with embedded zeros).

* Fixed crash when using ``it`` in some circumstances.

.. _Dan Eble: mailto:eble@ticalc.org

===========================
 Version 5.0 (23 Jan 2003)
===========================

* New map output: Fig format, suitable for viewing or editing with Xfig, or
  exporting to other formats.

* New utility program: ``ifm2dev``, which pipes IFM output in Fig format
  through ``fig2dev`` repeatedly to write each map section to its own file.

* New utility program: ``ifm2tex``, which converts Fig files to EPS and
  includes them in a LaTeX document together with tables of items and
  tasks.

* New task output: graphviz (``dot``) format, which dumps a task dependency
  graph.

* New ``keep with`` and ``keep until`` syntax for items, allowing items to
  be kept until certain tasks are done or certain other items are dropped.

* New room ``nodrop`` attribute, indicating that no items should be dropped
  there.

* New task and item ``ignore`` attribute, indicating that these things
  should be ignored when finding a solution.

* New task ``do`` attribute, indicating that when a task is done, it also
  does one or more other tasks automatically.

* New option: ``-style``, which sets global styles for all IFM objects.

* New option: ``-set``, which lets you set variables from the command line.
  To support this, the variable-setting syntax has been changed: instead
  of a space separating the driver name from the variable, there's now a
  period.

* New ``-show`` option: ``maps``, which lists all the map sections and
  their sizes.

* The ``-map`` option now accepts an optional list of map sections to
  print.

* There's a bunch of new variables to control things, including the overall
  behaviour of the game solver.

* IFM input is now *preprocessed*, in a similar way to C programs.  As a
  result, the old ``include`` and ``alias`` features have been replaced
  with the preprocessor equivalents.

* There's a new ``require`` keyword, which lets you say that a certain
  version of IFM (or later) is required for a map.

* Changed implicit-link style behaviour: the ``style`` clause on a room
  now applies to both the room and the implicit link, so it's now
  independent of its position relative to the ``dir`` clause.

* The command-line option ``-debug`` has been removed; its functionality
  has been replaced by a control variable.

* The old ``puzzle`` and ``special`` attributes have finally been removed;
  if you have any old maps which use these, you must replace them with the
  corresponding styles instead.

* Documentation is now distributed in HTML and PDF formats, instead of GNU
  Info.

* The GNU Emacs IFM mode in the ``contrib`` directory now has font lock
  support.  The ``ifm.vim`` file has also been updated with the latest
  keywords.

* Fixed bug with room ``link`` and ``join`` attributes: it didn't work to
  use ``last`` as an argument.

* Fixed glitch in room text on PostScript output: now tries reducing font
  size before squishing, so that text is filled better.

===========================
 Version 4.1 (10 May 1999)
===========================

* Fixed minor task bug: in special cases, giving items caused solver to
  fail to find newly-opened paths.

* Fixed stupid blunder with DOS ``\r`` characters in one of the source
  files.

* Fixed core dump problem when reading colour definitions (on FreeBSD, at
  least).

===========================
 Version 4.0 (21 Apr 1999)
===========================

* PostScript driver can now print in colour.

* New 3D room shadowing effect on maps.

* Many new output variables to control new map features.

* Variables can now be set via expressions, not just values.  Variables can
  now be used to customize many aspects of the input (e.g., notes, repeat
  counts).

* Individual parts of the map can now be customized using *display styles*.

* New ``include`` syntax, which allows files to include other files, either
  explicitly or via a path search.

* New ``-include`` (``-I``) option to prepend directories to the search
  path from the command line.

* New ``-show`` option to show various things (defined variables, search
  path), also included in ``tkifm`` menus.

* More information is now printed in item lists: which tasks require an
  item, which tasks an item requires, etc.

* Some example maps are now bundled with IFM, in the ``demos``
  subdirectory.

* Names and defaults of many output variables have been changed in order to
  make them more consistent.

* Extra complexity in variable syntax has been removed, as it wasn't being
  used.  Specifically, variables can't be set according to type of output
  or per-map-section any more, only by output driver.

* Removed formatted man page documentation: now only Info, HTML and text
  documentation is distributed.  If there are enough complaints, I'll put
  it back.

* The ``puzzle`` and ``special`` attributes are now obsolete; they're
  replaced by display styles.

* ``tkifm`` now redisplays old map windows when refreshing the map.

* Win32 version is now compiled with Cygwin b20, and so requires
  ``cygwin1.dll`` (not ``cygwin.dll``), included in the distribution.
  See ``README.win32`` for details.

==========================
 Version 3.0 (1 Oct 1998)
==========================

* There's a new program ``scr2ifm`` in the distribution, which attempts to
  convert a game transcript into IFM format.  It's a perl script, and gets
  installed on Unix-type systems if perl is detected.

* New ``nolink`` attribute for rooms, which suppresses generation of an
  implicit link between this and the previous room.

* New ``nopath`` attribute for rooms, links and joins, which stops those
  map connections from being used by the game solver.

* New task ``cmd none`` syntax, for tasks that don't need any special user
  commands (e.g., visiting a room for the first time).

* New PostScript variable ``link_arrowsize``, which allows you to change
  the size of arrowheads on one-way links.

* ``tkifm`` is now installed automatically on Unix-type systems if ``wish``
  (or one of its namesakes) is detected.

* ``tkifm`` now shows busy-cursor when doing something CPU-intensive.

* Improved solver failure messages, which give more information about
  what's wrong.

* Removed PostScript documentation from distribution.

* The ``times`` keyword is now obsolete (but still works, for
  compatibility); just the repeat count is used instead.

* Fixed bug with ``drop all except`` clause; it was treating it as just a
  simple ``drop`` clause.

* Fixed bug in task path calculation; it didn't always choose the best
  route between rooms.

* Linking a room to itself with no ``dir`` clause now results in an error,
  instead of failing mysteriously at the map-drawing stage.

* Minor fixes to make installation smoother on FreeBSD.

===========================
 Version 2.1 (26 Aug 1998)
===========================

* Fixed bug which caused some types of variable not to be set properly.

* Minor fixes to library functions to link properly under Solaris.

===========================
 Version 2.0 (19 Aug 1998)
===========================

* Lots of new keywords for use by the game solver, which has been
  considerably enhanced.

* New commands to modify previous definitions, which allow you to keep all
  game hacks in one place.

* New ``show_tags`` variable, which toggles addition of room tag names to
  room descriptions.

* New ``-debug`` command-line option, which gives the gory details of what
  the game solver is up to.

* New recording output, which can generate commands to play back in
  interpreters.

* Package now has a test suite.

* Links and joins can now be ``hidden``, which means they're used only for
  task purposes.

* Removed ``groff`` output; it's not worth supporting any more, now that
  PostScript output works so well.

* Text task output now prints details of the rooms you move through to get
  places, including directions moved in (or commands typed to move that
  way).

* PostScript driver now has some standard page sizes.  Also there's a
  variable ``page_rotate`` which can override the default decisions on
  whether to print landscape or not.

* Having no rooms defined is not an error any more, in order to placate
  ``tkifm``.

* Changed list attributes to be cumulative, instead of overriding previous
  value.

* Variables can now be set to ``undef``, which allows their default setting
  to reappear.

* Various ``tkifm`` enhancements to make it convenient to use your
  preferred editor.

* Unix version now uses GNU autoconf/automake for installation.

* Got ``tkifm`` save-as option to set current filename properly.

* Stopped *outside grid* warnings from causing ``tkifm`` to fail when
  drawing map.

* Library function now doesn't clobber read-only strings.

===========================
 Version 1.0 (11 Jun 1998)
===========================

* First release.

.. Local Variables:
.. mode: rst
.. End:
