2002-09-30  Bernd Warken  <bwarken@mayn.de>
	________________________________________________________________
	* release of groffer 0.9.1
	
	* TODO: remove done entries
	- Remove request for different shells.
	- Remove the 'sed' complaints.

2002-07-15  Bernd Warken  <bwarken@mayn.de>

	* groffer.sh: replace `sed' interface by direct `sed'
	- This improves the performance of the shell programming parts
	  and shortens the groffer script by about 5%.
	- Remove functions: string_del_append(), string_del_leading(),
	  string_del_trailing(), string_flatten(), string_get_before(),
	  string_get_leading(), string_replace_all(), string_sed_s(),
	  and their auxiliary functions.
	- Replace all calls of these functions by direct `sed' commands.
	- Define variables for special characters to ease `sed' calls.
	- Remove `$APPEND'.
	- Restrict list_from_string() to single character separators.
	- Correct list_check() and base_name().
	- Add comments to all calls of `sed'.

	* groffer.sh: add run-time support for several shells
	- New option `--shell': stop execution and rerun groffer under
	  the shell specified in the argument of `--shell'.
	- If no shell was specified at run-time, `ash' is tried first;
	  if `ash' is not available continue with the shell with which
	  groffer was called from the command line, or with the shell
	  name in the first line of the script, actually `/bin/sh'.

2002-07-12  Bernd Warken  <bwarken@mayn.de>
	________________________________________________________________
	* fixes for groffer 0.9.0

	* groffer.sh: enhance version information
	`groffer -v|--version' now print:
	- groffer's version number and date
	- the string `is part of '
	- groff's version information (version number and copyright),
	  but not groff's `called subprograms' information.
	
	* groffer.sh: minor fixes
	- Fix the argument parser to process argument `-' correctly.
	- Some display programs have trouble with empty input; feed a
	  line consisting of a single space character in this case for
	  all display modes (not for source or groff modes).

	* TODO:
	fix entry `shoop' (not 'shopt').

2002-06-28  Bernd Warken  <bwarken@mayn.de>
	________________________________________________________________
	* release of groffer 0.9.0

	* groffer.sh: new mode `pdf'
	- PDF (Portable Document Format):
	  -> Transform groff `ps' output into pdf using `gs'.
	  -> Pro: PDF viewers provide text searching (!).
	  -> Con: the transformation is quite slow.
	  -> Not suitable as an auto mode.
	- New options `--pdf', `--pdf-viewer', `--mode pdf'.
	- Standard pdf viewers `xpdf' and `acroread'.
	- For `xpdf', choose zoom `z 3' for 100 dpi, `z 2' for 75 dpi.
	
	* groffer.sh: support bzip2 decompression
	- add test for `bzip2' with necessary options
	- extend functions `catz()' and `save_stdin()'.

	* TODO
	remove entry on `bzip' decompression (done).
	
	* groffer.man:
	- Document new `pdf' features.
	- Document new `bzip2' decompression.
	- Fix documentation for `--auto-modes'.
	
	* groffer.sh: minor fixes
	- Improve device tests in `tty' and `dvi' modes.
	- Internally, map mode `auto' to '' to facilitate tests.
	- Fix auto mode sequence to: `ps,x,tty' as was intended.

2002-06-25  Bernd Warken  <bwarken@mayn.de>

	* groffer.sh:
	Fix `source' mode.

	* groffer.man:
	Fix some indentations.

2002-06-23  Bernd Warken  <bwarken@mayn.de>
	________________________________________________________________
	* release of groffer 0.8

	* Makefile.sub: add copyright section

	* groffer.man:
	- Document the new options.
	- Revise the documentation of the modes.
	- Document the configuration files in new section `FILES'.
	- Redesign section `EXAMPLES'.
	- Remove documentation for `-W'.
	
	* groffer.sh: new debugging features
	- Disabled by default; enabled by environment variables.
	- Add landmark() to catch typos with quotes.
	- Add a function call stack for suitable functions; implemented
	  as within the argument checker func_check().
	- This implies the need to provide `return' with some clean-up
	  facility; implemented as `eval "$_return_..."'.
	- Add option `--debug' to enable debugging at run-time.
	- Actually, the groffer script uses only shell builtins found
	  in `ash' (a subset of POSIX) and POSIX `sed' as the only
	  external shell utility.
		
	* groffer.sh: customization of viewers
	- In `groff' mode, the groffer viewing facilities are disabled.
	- The postprocessor option `-P' costumizes the viewer only in
	  some situations in the `groff' mode, so a new infrastructure
	  for viewer customization is necessary.
	- Allow to specify arguments to the viewer programs specified
	  in `--*-viewer()'.
	- Implement some of the essential X Toolkit resource options in
	  groffer, but with use a leading double minus.
	  -> `--bd': set border color.
	  -> `--bg', `--background': set background color.
	  -> `--bw': set border width.
	  -> `--display': set X display.
	  -> `--geometry': set size and position of viewer window.
	  -> `--fg', `--foreground': set foreground color.
	  -> `--ft', `--font': set font.
	  -> `--resolution': set X resolution in dpi.
	  -> `--title': set viewer window title.
	  -> `--xrm': set X resource.
	- Remove misnamed option `--xrdb'.
	
	* groffer.sh: new mode structure
	- New Postcript mode `ps' (`--ps'):
	  -> default viewers: gv,ghostview,gs_x11,gs;
	  -> `--ps-viewer' sets the Postscript viewer.
	- New mode `www' (`--www') for displaying in a web browser:
	  -> default browsers: mozilla,netscape,opera,amaya,arena;
	  -> `--www-viewer' sets the web browser.
	- New dvi mode (`--dvi'); default viewer `xdvi':
	  -> default viewers: xdvi,dvilx;
	  -> `--dvi-viewer' sets the dvi viewer.
	- New mode `auto':
	  -> active if no other mode is given or by new option `--auto';
	  -> selects from a sequence of modes that are tested until one
	    of them succeeds.
	  -> the default mode sequence is actually `ps', `x', `tty'.
	  -> `--default-modes' sets this mode sequence as a comma
	     separated string of program names, optionally each one
	     with arguments).
	- New mode `groff':
	  -> process input like groff, ignore viewing options.
	  -> activated by new option `--groff'.
	  -> automatically active with one of `-V', `-X', `-Z'.
	- Revise `tty' mode:
	  -> allow several text devices.
	  -> 
	- Reorganize the mode management:
	  -> new mode setting option `--mode'.
	  -> logically separate source, groff, and display modes.
	  -> intermediate output mode is now part of mode groff; remove
	     any special features around `-Z'.
	- Update usage() to reflect the new option structure.

	* groffer.sh: add configuration files
	- `/etc/groff/groffer.conf' system-wide configuration.
	- `${HOME}/.groff/groffer.conf' user configuration.
	- The configuration file are shell scripts for now; later
	  implementations can identify this from the `#! /bin/sh' line.
	
	* groffer.sh: new data structure `list':
	- Implement a `list' data structure as a string consisting of
	  single-quoted elements, separated by a space character;
	  embedded single-quotes are escaped.

	* groffer.sh: new option parser based on `list':
	- Write new option parser based on `list', compatible to both
	  POSIX getopts() and GNU getopt().
	- Long options are now available on GNU and non-GNU systems.
	- Get rid of POSIX getopts() and GNU getopt().
	- the `-W--longopt' construct is now obsolete; remove it.
	- add test/function for `unset'.
	- Option strings are now implemented as `list's in order to
	  allow unusual characters in options.
	- Parse $MANOPT first; translate essential arguments into
	  groffer options.
	
	* groffer.man:
	- determine prompt length for `.Shell_cmd'* dynamically.
	- naming scheme for static strings and registers changed to
	  `namespace:macro.variable'.

	
2002-06-16  Werner Lemberg  <wl@gnu.org>

	* groffer.sh:
	Implement man option `--ascii' by `-mtty-char'.
           

2002-05-31  Werner LEMBERG  <wl@gnu.org>

        * groffer.man (@.Shell_cmd_width):
	Increase to 4m (we use `sh#' as the prompt).


2002-05-31  Bernd Warken  <bwarken@mayn.de>
	________________________________________________________________
	* release of groffer 0.7

	* groffer.sh: remove incompatibilities with the `ash' shell:
	- do not use `!command':
          -> use `else'
	  -> write `_not_' equivalents for some functions
	- do not use `[^]' in `case':
	  ->  restructure some functions.
	- only single-character names for loop variables:
	  -> spoils the paradigm of leading `_' for local variables.
	- spurious trouble with `for i in ${var}':
	  -> use `eval set -- ${var}' and `for i in "$@"'
	- do not change or use $IFS:
	  -> define new functions string_split() and `path_split()'.
	  -> result must be processed by `eval set --'.
	  -> solve conflicts with existing positional parameters.
	- trouble with exporting external `$GROFF_*' variables:
	  -> hope that they were exported in the calling shell.
	- not smart about additional blanks:
	  -> remove unnecessary white space.

	* groffer.sh: improve run-time speed:
	- `ash' more than doubles the speed of `bash'.
	- speed-up `man_setup()'.


2002-05-30  Werner Lemberg  <wl@gnu.org>

	* groffer.man:
	- remove some wrong `\:'.
	- rename macro names that start with a `[' (clashes with refer).
	- fix TP_header.


2002-05-28  Bernd Warken  <bwarken@mayn.de>
	________________________________________________________________
	* release of groffer 0.6

	This is almost a complete rewrite since groffer 0.5 .
	________________________________________________________________
	* Documentation
	
	* groffer.man:
   	- Apply the changes done in www.tmac (.URL and .MTO)
	- Replace \fP by \f[].
	- Redesign and rewrite most macros.
	- Include the documentation for the new features.
	- Greatly enlarge section ENVIRONMENT
	- Add examples.

	* TODO:
	- Start a TODO file with several sections.

	* ChangeLog:
	Due to the many changes, shorten and rearrange the entries
	since groffer 0.5 .
	________________________________________________________________
	* Shell compatibility

	* groffer.sh:
	- Due to possible conflicts in old BSD versions, `[]' was
	  replaced by `test'; the `test' options `-a' and `-o' were
	  replaced by multiple calls of `test'.
	- Write interface to the `sed' command `s' to become
	  independent of the delimiter character.  Rewrite all text
	  manipulating function to use this new scheme.  The new
	  functions are named `string_*'.
	- `tr' is not needed any longer, replaced by `sed'.
	- `grep' is not needed any longer, mostly replaced by `case'.
	- Revision of test for `getopt'.
	- Remove `set -a'; explicitly export variables.
	- The only external programs used are POSIX `sed' and the
	  fallback to `apropos'.  All other program calls were
	  replaced by shell builtins and functions.
	
	________________________________________________________________
	* Cosmetics

	* groffer.sh:
	- Implement a prefix based naming scheme for local variables
	  and functions (OOP-like).
	- Introduce variables for white space (better readability with
	  $IFS).
	- Store the names of the processed filespecs into a variable
	  instead of a temporary file.
	- Error-prone shell constructions were replaced by functions
	  with a simple interface.
	- To avoid too long pipes, replace supercat() by do_fileargs();
	  every input file is handled independently.

	________________________________________________________________
	* New features:
	- Add support for more X devices (e.g. X75-12 and X100-12).
	- Add long option `--intermediate_output' to `-Z'.
	- Make the options for mode selection clobber each other.
	- Add option `--mode' with an argument having the following
	  values:
	  `X': force displaying in X, same as options `-X';
	  `tty': display with a pager on text terminal; same as `--tty';
	  `source', `default', `auto', etc.
	- Make the handling of the X mode like in groff (e.g. -X -Tps).
	- Make resolution for gxditview behave like groff (default
	  75 dpi).
	- Add environment variable $GROFFER_OPT to preset groffer
	  options.

	________________________________________________________________
	* implement most of the functionality of GNU `man'.

	- Add all `man' long options to groffer.
	- Add all `man' environment variables.
	- Parse and use content of `$MANOPT'.
	- The precedence of the options and environment variables
	  is regulated like in GNU `man'.
	- Force the option `--manpath' to have a colon-separated
	  argument like GNU `man'.
	- Support `man section name' calling convention.
	- Remove all dependencies on `man -w'.

	* groffer.sh:
	- Add the new features above.
	- Rewrite the search algorithm for man pages.
	- Remove searching with `man -w' (problems with space
	  characters in file names).
	- Fix and complement usage().
	- The filespec parsers gets a function of its own do_manpage().
	
	
2002-01-08  Bernd Warken  <bwarken@mayn.de>
	
	* groffer 0.5 (beta) released

	* groffer.man:
	- Fix hyphenation problems with macros describing options.
	- Fix the handling of some `-' characters.
	- Examples of shell commands now print in font CR instead of CB.
	- Remove documentation for option `-X'.
	- Add documentation for option `--dpi'.
	
	* groffer.sh:
	- New method for creating temporary files, based on process
	  IDs.  This is reliable enough and suitable for GNU and POSIX.
	- Run gxditview in a new shell instantiation for having a clean
    	  handling of the temporary files when running in the
	  background.
	- Revision of the retrieving method for the window title.
	- Empty input is now tolerated.
	- Export the variables that are set before the call of `set -a'.
	- Function usage() corrected and updated.
	- Unnecessary stuff removed.
	- Comments adjusted.
	- Pass option `-X' to groff, i.e. force X output with 75 dpi.
	- Implement option `--dpi' for setting the resolution for the X
	  viewer, which had already been documented in earlier versions.

2002-01-07  Bernd Warken  <bwarken@mayn.de>

	* groffer 0.4 (beta) released (as groff `contrib')
	
	* groffer.man:
	- New features documented.
	- Macros stream-lined.
	- Section EXAMPLES added.
	
	* groffer.sh:
	- System tests added/optimized.
	- Speed/memory optimizations by defining some shell functions
	  alternatively depending on the text results.
	- Use `gzip' for decompression instead of `zcat'.
	- Signal handling added for clean exiting by `trap'.
	- Temporary files exist only as long as necessary.
	- Setup of path for man-pages moved after the option parsing.
	- Fixed a bug in determining the path for man-pages.
	- Fixed a bug in the handling of non-groffer options.

	* New features:
	- New option --tty for forcing paging on text terminal.
	- New option --no-man for disabling the man-page feature.
	- Implement reserved POSIX -W feature to simulate long options.
	- gxditview is now run as a background process.

2002-01-05  Werner LEMBERG  <wl@gnu.org>

        * Integrate groffer into groff's `contrib' tree.

        * Makefile: Replaced by...
        Makefile.sub: New file.

        * groffer: Replaced by...
        groffer.sh: New file.

        * groffer.man (OptDef): Add missing backslashes.
        Update copyright.

2001-12-15  Bernd Warken  <bwarken@mayn.de>

	* groffer 0.3 (alpha) released (still stand-alone package).

	* GNU and POSIX are supported (POSIX without long options).

	* New options : --man, --mandb, --title, --xrdb

	* Support for command line arguments with embedded single space
	characters (GNU only) .

	* Several search methods for man-pages when no `man -w' is
	available ($MANPATH, mandb, a default path).

	* Language support for man-pages.

	* Recognize the following filespecs as man-page parameters:
	  man:name(section), man:name, name.section, name.
	
2001-12-03  Bernd Warken  <bwarken@mayn.de>

	* Stand-alone package for groffer 0.2 (alpha) created
	Files: groffer, groffer.man, Makefile, TODO, ChangeLog
	
2001-12-02  Bernd Warken  <bwarken@mayn.de>

	* groffer 0.2 (alpha) program released.

	* Name changed from `groffview' to `groffer'.

	* Comments added.
	
	* Name changed from `groffview' to `groffer'.

	* Options harmonized with groff.
	New options : -Q --source, -T --device, -X .
	Other options known from groff are passed unchanged.

	* 100 dpi as default, 75 dpi only in emergency situations.

	* Bugs with temporary files fixed.

	* Code restructured and comments added.
	
2001-11-28  Bernd Warken  <bwarken@mayn.de>

	***** groffview 0.1 (experimental) and groffview.man released
	(predecessor of groffer, shell script)

	* Options : -h --help, -v --version
	
	* Search for man-pages based on $MANPATH

	* development of `groffview' shell script started
