* release of groffer 0.9.15
[s-roff.git] / contrib / groffer / ChangeLog
blob2964a770fc0f0159143e4cb7ced039d59705a760
1 2005-06-16  Bernd Warken
2         ________________________________________________________________
3         * release of groffer 0.9.15
5         * Makefile.sub:
6         - Use `$(RM)'.
7         - Use `sed -f $(SH_DEPS_SED_SCRIPT)'.
9 2005-05-20  Bernd Warken
10         ________________________________________________________________
11         * release of groffer 0.9.14
13         * groffer.man: correction of non-hyphenation
15 2005-05-17  Bernd Warken
16         ________________________________________________________________
17         * release of groffer 0.9.13
19         * groffer.sh:
20         - first line: Add space to `#! /bin/sh'.
21         - $_VIEWER_DVI: Add `kdvi'.
22         - $_VIEWER_PDF: Add `kghostview', `ggv', and `kpdf'.
23         - $_VIEWER_PS: Add `kghostview' and `ggv'.
24         - $_modefile: For the output file name, add extension .ps for ps
25         mode and .dvi for dvi mode.  This exists already for the html and
26         pdf modes.
27         - Update some parts of the documentation.
29         * README, README_SH:
30         - Move some parts on usage from README_SH to README.
31         - Reformulate several parts of both files.
33         * groffer.man: update
35 2004-11-15  Bernd Warken
36         ________________________________________________________________
37         * release of groffer 0.9.12
39         * groffer.sh:
40         - main_init(): Rewriting of the creation of the temporary
41         directory to ensure that it cannot be made writable apart from the
42         user.  If the directory already exists and cannot be removed then
43         append `X' to the directory name.
44         - is_non_empty_file(): fix it to use POSIX `test -s'.
45         - is_existing(): new function.
46         - POSIX `rm -f -r': use this in `clean_up()' and `main_init()'.
47         - `--macro-file': remove this unused long option.
48         - `-V', `--source', `--device': move these from groff options
49         to groffer options.
50         - `$_TMP_DIR_SUB': remove this unused variable.
52 2004-06-15  Bernd Warken
53         ________________________________________________________________
54         * release of groffer 0.9.11
56         * groffer.sh:
57         - To the search of the `--apropos-*' options, add man pages with a
58         subsection in their apropos output.
59         
60 2004-06-02  Bernd Warken
61         ________________________________________________________________
62         * release of groffer 0.9.10
64         * groffer.sh:
65         - Remove automatic call of `ash' due to inconsistencies of
66         different ash versions.
67         - In the first run, add recognition of `--shell' lines in the
68         groffer configuration files.  To configure an external shell in
69         a configuration file, a line starting with `--shell' is
70         necessary.
71         - list_from_cmdline(): Simplify the arguments.
72         - As $POSIXLY_CORRECT is internally set to `y' by some GNU
73         `/bin/sh' shells the following 2 fixes are necessary:
74         -- `sed': Empty patterns are not allowed with $POSIXLY_CORRECT
75         set; so move the address information before the `s' command to the
76         pattern after the command, and write `.*' to the address field.
77         -- list_from_cmdline(): Remove the strange $POSIXLY_CORRECT style
78         to finish the option processing after the first non-option
79         argument; use the flexible GNU mixing of options and file names
80         instead.
82         * groffer.man:
83         - Remove any hints on `ash'.
84         - Add minus line behavior of `--shell' for configuration and add a
85         corresponding example.
86         - Update the information on $POSIXLY_CORRECT.
87                 
88 2004-05-29  Bernd Warken
89         ________________________________________________________________
90         * release of groffer 0.9.9
92         * groffer.sh:
93         Fix first run section to allow the starting shell to go on if
94         `ash' is not available.
96         * groffer.man:
97         Remove unnecessary information on groffer version.
98         
99 2004-05-12  Bernd Warken
100         ________________________________________________________________
101         * release of groffer 0.9.8
103         * groffer.sh:
104         Fix problems of `test' by adding subs to arguments.
106         * groffer.man:
107         Write the file license as macros that are called in sections
108         AUTHOR and COPYING.
110         * .cvsignore:
111         Restore this file.
112         
113 2004-04-30  Bernd Warken
114         ________________________________________________________________
115         * release of groffer 0.9.7
117         * groffer.sh:
118         - obj(), obj_data(), obj_from_output(), obj_set(): New object
119         oriented functions to minimize complicated `eval' commands.
120         - list_*(): Corrections.
121         - usage(): Streamlining.
122         
123         * groffer.man, README_SH:
124         Corrections.
126 2004-04-27  Bernd Warken
127         ________________________________________________________________
128         * release of groffer 0.9.6
130         This version replaces the license of all files except ChangeLog of
131         the groffer source to the GNU General Public License (GPL) of the
132         version described in files COPYING and LICENSE in the groff top
133         source directory.
135         * groffer.man:
136         Changement from the GNU Free Documentation License (FDL) to
137         the GNU General Public License (GPL).
139         * README, README_SH, TODO:
140         Add license GNU General Public License (GPL).
141         
142         * Makefile.sub, groffer.sh:
143         Keep the GNU General Public License (GPL), but refer to the
144         COPYING and LICENSE files.
146         * ChangeLog: Add a license in the style of Emacs ChangeLog file,
147         which is weaker than the GPL, but has its flavor.
149 2004-04-24  Bernd Warken
150         ________________________________________________________________
151         * release of groffer 0.9.5
153         This version is a rewrite of groffer in many parts, but it is kept
154         in the old single script style.
156         Overview of new options:
157         --text, --mode text, --tty-viewer,
158         --X, --mode X, --X-viewer, --html, --mode html, --html-view,
159         --apropos-data, --apropos-devel, --apropos-progs
161         New file:
162         <groffer-source>/README_SH
164         
165         ******* Extension of the `apropos' handling
167         The output of man's `apropos' has grown immensely meanwhile, so it
168         has become inefficient.  Now `groffer' provides new options to get
169         the a selected information from this output.
171         * groffer.sh:
172         `--apropos-progs': new option for displaying only information
173         on programs (man page sections 1, 6, and 8)
174         `--apropos-data': new option for displaying only information
175         on documented data (man page sections 4, 5 and 7)
176         `--apropos-devel': new option for displaying only information
177         on development documentation (man page sections 2, 3 and 9)
178         `--apropos': still displays just the output of man's `apropos'
179         program.
180         - Specify all of these options as a single argument option; that
181         makes groffer's `--apropos' option slightly different because
182         the corresponding `man' option does not have arguments, but takes
183         all file arguments as apropos targets.  So just ignore the `man'
184         options `-k' and `--apropos' in the parsing of $MANOPT.
185         - Exit after processing one `apropos' call.
188         ******* Quasi object oriented function arguments
190         An object is the name of an environment variable.  The value of
191         this variable contains the object's content.  This allows to
192         specify function arguments and the calling syntax in a simpler way
193         by letting the first argument be a variable name, usable for input
194         or output.
195         
196         Such an object type is `list', the string value of a shell
197         variable arranged in space-separated single-quoted elements, such
198         as $GROFFER_OPT internally.
200         * groffer.sh:
201         - Remove list_from_args(), list_element_from_arg()
202         list_from_lists(), list_length(), and list_prepend().
203         They can be replaced by list_append().
204         - All list*() functions are rearranged such that the first
205         argument is a list object, the name of a variable.
208         ******* Simplification of configuration files
210         The new syntax of the groffer configuration files is
211         - all lines starting with a `-' character are interpreted as
212         command line options for all calls of groffer; they are collected
213         and prepended to the actual value of $GROFFER_OPT; optional
214         spaces at the beginning.of the line are omitted.
215         - all other lines are interpreted as a shell command and executed
216         in the current shell of the groffer call.
217         
218         Precedence:
219         - The command line and the external environment variables such as
220         $GROFFER_OPT of the groffer call have the highest precedence.
221         - This is overwritten by the configuration file in the user's home
222         directory.
223         - The system configuration file in /etc has the lowest
224         precedence.
225         
226         * groffer.sh:   
227         The configuration files are now called after the determination of
228         the temporary files in main_init().
231         ******* Script file name
233         The file name of the script is needed for the several calls during
234         the search for the optimal shell.
236         * groffer.sh:
237         - $_GROFFER_SH: replace $_this by $_GROFFER_SH and use $0 for
238         determining the file name of the script for the following calls,
239         instead of the cumbersome @BINDIR@ construction.
240         - Force the script to be called as an executable file, so $0 must
241         contain the program name.
243         
244         ******* Improved temporary file names
246         Just like groff, groffer mixes all file parameters into a single
247         output file.  Its name is now constructed as a comma-separated
248         list built from the file name arguments without a leading comma.
249         So a leading comma can be used for the internal temporary file
250         names.
251         
252         * groffer.sh:
253         - $_OUTPUT_FILE_NAME: new global variable as basis for the output
254         file name; it is set in main_set_resources().
255         - tmp_create(): use `,name' for temporary files different from
256         output file because the output file name does not start with a
257         comma.  `$$' is not needed anymore.
258         - main_display(): simplification of $_modefile in _do_display()
259         and single display modes.
260         - Add extension `.html' to output file name in html mode.
261         - base_name(): correction for strange positions of `/'.
264         ******* Mode fixes
266         * groffer.sh:
267         - Set the main default mode to `x' with groff's X Window viewer
268         `gxditview'.
269         - Allow 'x' and 'X' in `--mode' for the X Window mode; the same
270         for `--x' and `X', `--x-viewer' and `--X-viewer'.
271         - Make groff's `-X' equivalent to `mode X'.
272         - Fix `--auto', `--mode auto',  and `--default-modes'.
273         - `html' mode: new mode equivalent to `www', add `konqueror' and
274         `lynx' as viewers.
275         - `pdf' mode: fix zoom options for pdf-viewer `xpdf' in
276         main_set_resources(); in main_display() fix the display structure.
277         - Set default X Window resolution to 75dpi.  This is not optimal,
278         but with a higher value the options and resources for some viewers
279         must be optimized.
280         `--text' and `--mode text': new option for text output without a
281         pager.
282         - `--tty-viewer': new option equivalent to `--pager'.
283         - Correct the pagers for `tty' mode.
284         - Fix `groff' mode in main_set_resources() and main_display().
285         - Harmonize `--mode arg' with the equivalent options `--arg'.
288         ******* Fixes for command line options
290         * groffer.sh:
291         - list_from_cmdline(): fix the parsing of options with arguments.
292         - Rename $_OPT_TTY_DEVICE to $_OPT_TEXT_DEVICE.
293         - $_OPTS_X_*: new variables for the inhereted X Window variables.
294         - Improve the distribution of the command line options into
295         $_OPTS_GROFFER_*, $_OPTS_GROFF_*, $_OPTS_X_*, and $_OPTS_MAN_*.
296         - $_OPTS_MANOPT_*: new variables for the parsing of $MANOPT.
297         - Correct $_OPTS_CMDLINE_*.
298         - Remove some unused $_OPTS_*.
299         - `--iconic': new option from `-iconic' of the X Window toolkit.
300         - Correct `--rv' to an option without argument.
301         - Minor fixes of other  X Window toolkit options.
304         ******* Other fixes
306         * groffer.sh:
307         - is_prog(): allow 0 arguments.
308         - is_not_writable(): new function.
309         - is_*(): fix trailing return codes.
310         - Replace most `test' calls by is_*() functions.
311         - man_setup(): due to bugs in `manpath', prefer
312         manpath_set_from_path() for the determination of the man page path.
313         - man_search_section(): correction of some `for' loops.
314         - Remove export of external non-groffer variables.
316         
317         ******* Documentation
318         
319         * groffer.man:
320         - Reorder the option details according to the option origin as
321         groffer, groff, X, and man options.
322         - Add the programming changes information mentioned above.
323         - Support man pages with a dot in their name
325         * README_SH: new file
326         Move large parts of the documentation in `groffer.sh' into this
327         file.
328         
329         * groffer.sh: usage():
330         - Change the output for `--help' to standard output.
331         - Restructure the information for this help output.
332         
334         ******* Removement of the author's email address
335         
336         Because of the extreme spam attacks, the author removed all
337         occurencies of his email address in every file of the groffer
338         source.
340 2003-01-22  Bernd Warken 
341         ________________________________________________________________
342         * release of groffer 0.9.4
344         * groffer.sh: corrections for some restrictive shells
345         - Possible exit codes in actual `ash' are between 0 and 63.  To
346         handle even deeper restrictions, use 7 as maximal code instead
347         of 255 as replacement for error -1.
348         - Remove variables $_BAD2 and $_BAD3.
349         - Replace `trap' argument `EXIT' by 0 and write new fuctions
350         `trap_clean' and `trap_set' to handle the restrictions of `trap'
351         for some shells.
352         - Correct wrong $MANPATH to $_MAN_PATH in function
353         `man_do_filespec'.
354         - Test existence of directory before deleting it in the
355         `clean_up' definitions.
356         - Correct help output in `usage' (called by `--help').
357         
358         * TODO:
359         Remove mention of `shoop' and `apropos'.
361 2002-10-21  Bernd Warken 
362         ________________________________________________________________
363         * release of groffer 0.9.3
365         * groffer.sh: new temporary subdirectory
366         - Generate temporary subdirectory for storing temporary files
367         with better names in future groffer versions (name:
368         "groffer$$" in usual temporary directory).
369         - Use `umask 000' for temporary files to allow cleaning up
370         for everyone after a system break.
371         - Change both clean_up() functions (for normal shell and
372         for main_display() subshell) to handle the new subdirectory.
373         - clean_up_secondary() and $_TMP_PREFIX are unnecessary now, so
374         they were removed.
376         * Makefile.sub: `sed' commands for "groffer:"
377         - Remove "@g@" entry (not used in "groffer.sh").
378         - Add global replace for "@BINDIR@" and "@VERSION@" for future
379         usage.
381         * TODO: think about...
382         - writing part of groffer in C/C++.
383         - handling several files with different macro packages.
384         
385 2002-10-17  Bernd Warken 
386         ________________________________________________________________
387         * fixes of groffer 0.9.2
389         * groffer.sh:
390         Terminate main_parse_MANOPT() if $MANOPT is empty or consists
391         of space characters only.
393         * groffer.man: some fixes in "GROFFER OPTIONS"
394         - New macro ".Header_CB" for CB font in .TP headers; used for
395         definition of variables in option --mode.
396         - Fix some option references to refer to long options.
397         
398         * README:
399         New file for general information on the groffer source; it is
400         not installed.
401         
402 2002-10-14  Bernd Warken 
404         * Makefile.sub:
405         add replacement "@BINDIR@" to "$(bindir)" for "groffer:"
407         * groffer.sh:
408         Define $_this as "@BINDIR@/${_PROGRAM_NAME}" to save the right
409         installation position of groffer for the special shell calling.
411         * groffer.man:
412         Remove double definition of filespec parameters.
414 2002-10-13  Bernd Warken 
415         ________________________________________________________________
416         * release of groffer 0.9.2
418         * groffer.sh: fixes
419         - Fix some 'sed' functions: two in func_stack_dump(), one in
420           base_name(), add 'sed' command in list_from_cmdline().
421         - Finish main_parse_MANOPT() if $MANOPT is empty.
422         - Sort $_OPTS_GROFF_SHORT_NA like groff short options (but
423           unchanged).
424         - Fix some comments.
426         * groffer.man: make it more readable (but no additions)
427         - A shortened section "SYNOPSIS" is followed by a simplified
428           section "DESCRIPTION".
429         - The options from "SYNOPSIS" go to new section "OPTION
430           OVERVIEW" with all groffer options in a single subsection.
431         - The details of all groffer options are described in section
432           "GROFFER OPTIONS".
433         - New macro for file names ".File_name".
434         - "Option Parsing" is moved to section "COMPATIBILITY".
435         - Fix some "EXAMPLES".
436         
437 2002-09-30  Bernd Warken 
438         ________________________________________________________________
439         * release of groffer 0.9.1
440         
441         * TODO: remove done entries
442         - Remove request for different shells.
443         - Remove the 'sed' complaints.
445 2002-07-15  Bernd Warken 
447         * groffer.sh: replace `sed' interface by direct `sed'
448         - This improves the performance of the shell programming parts
449           and shortens the groffer script by about 5%.
450         - Remove functions: string_del_append(), string_del_leading(),
451           string_del_trailing(), string_flatten(), string_get_before(),
452           string_get_leading(), string_replace_all(), string_sed_s(),
453           and their auxiliary functions.
454         - Replace all calls of these functions by direct `sed' commands.
455         - Define variables for special characters to ease `sed' calls.
456         - Remove `$APPEND'.
457         - Restrict list_from_string() to single character separators.
458         - Correct list_check() and base_name().
459         - Add comments to all calls of `sed'.
461         * groffer.sh: add run-time support for several shells
462         - New option `--shell': stop execution and rerun groffer under
463           the shell specified in the argument of `--shell'.
464         - If no shell was specified at run-time, `ash' is tried first;
465           if `ash' is not available continue with the shell with which
466           groffer was called from the command line, or with the shell
467           name in the first line of the script, actually `/bin/sh'.
469 2002-07-12  Bernd Warken 
470         ________________________________________________________________
471         * fixes for groffer 0.9.0
473         * groffer.sh: enhance version information
474         `groffer -v|--version' now print:
475         - groffer's version number and date
476         - the string `is part of '
477         - groff's version information (version number and copyright),
478           but not groff's `called subprograms' information.
479         
480         * groffer.sh: minor fixes
481         - Fix the argument parser to process argument `-' correctly.
482         - Some display programs have trouble with empty input; feed a
483           line consisting of a single space character in this case for
484           all display modes (not for source or groff modes).
486         * TODO:
487         fix entry `shoop' (not 'shopt').
489 2002-06-28  Bernd Warken 
490         ________________________________________________________________
491         * release of groffer 0.9.0
493         * groffer.sh: new mode `pdf'
494         - PDF (Portable Document Format):
495           -> Transform groff `ps' output into pdf using `gs'.
496           -> Pro: PDF viewers provide text searching (!).
497           -> Con: the transformation is quite slow.
498           -> Not suitable as an auto mode.
499         - New options `--pdf', `--pdf-viewer', `--mode pdf'.
500         - Standard pdf viewers `xpdf' and `acroread'.
501         - For `xpdf', choose zoom `z 3' for 100 dpi, `z 2' for 75 dpi.
502         
503         * groffer.sh: support bzip2 decompression
504         - add test for `bzip2' with necessary options
505         - extend functions `catz()' and `save_stdin()'.
507         * TODO
508         remove entry on `bzip' decompression (done).
509         
510         * groffer.man:
511         - Document new `pdf' features.
512         - Document new `bzip2' decompression.
513         - Fix documentation for `--auto-modes'.
514         
515         * groffer.sh: minor fixes
516         - Improve device tests in `tty' and `dvi' modes.
517         - Internally, map mode `auto' to '' to facilitate tests.
518         - Fix auto mode sequence to: `ps,x,tty' as was intended.
520 2002-06-25  Bernd Warken 
522         * groffer.sh:
523         Fix `source' mode.
525         * groffer.man:
526         Fix some indentations.
528 2002-06-23  Bernd Warken 
529         ________________________________________________________________
530         * release of groffer 0.8
532         * Makefile.sub: add copyright section
534         * groffer.man:
535         - Document the new options.
536         - Revise the documentation of the modes.
537         - Document the configuration files in new section `FILES'.
538         - Redesign section `EXAMPLES'.
539         - Remove documentation for `-W'.
540         
541         * groffer.sh: new debugging features
542         - Disabled by default; enabled by environment variables.
543         - Add landmark() to catch typos with quotes.
544         - Add a function call stack for suitable functions; implemented
545           as within the argument checker func_check().
546         - This implies the need to provide `return' with some clean-up
547           facility; implemented as `eval "$_return_..."'.
548         - Add option `--debug' to enable debugging at run-time.
549         - Actually, the groffer script uses only shell builtins found
550           in `ash' (a subset of POSIX) and POSIX `sed' as the only
551           external shell utility.
552                 
553         * groffer.sh: customization of viewers
554         - In `groff' mode, the groffer viewing facilities are disabled.
555         - The postprocessor option `-P' costumizes the viewer only in
556           some situations in the `groff' mode, so a new infrastructure
557           for viewer customization is necessary.
558         - Allow to specify arguments to the viewer programs specified
559           in `--*-viewer()'.
560         - Implement some of the essential X Toolkit resource options in
561           groffer, but with use a leading double minus.
562           -> `--bd': set border color.
563           -> `--bg', `--background': set background color.
564           -> `--bw': set border width.
565           -> `--display': set X display.
566           -> `--geometry': set size and position of viewer window.
567           -> `--fg', `--foreground': set foreground color.
568           -> `--ft', `--font': set font.
569           -> `--resolution': set X resolution in dpi.
570           -> `--title': set viewer window title.
571           -> `--xrm': set X resource.
572         - Remove misnamed option `--xrdb'.
573         
574         * groffer.sh: new mode structure
575         - New Postcript mode `ps' (`--ps'):
576           -> default viewers: gv,ghostview,gs_x11,gs;
577           -> `--ps-viewer' sets the Postscript viewer.
578         - New mode `www' (`--www') for displaying in a web browser:
579           -> default browsers: mozilla,netscape,opera,amaya,arena;
580           -> `--www-viewer' sets the web browser.
581         - New dvi mode (`--dvi'); default viewer `xdvi':
582           -> default viewers: xdvi,dvilx;
583           -> `--dvi-viewer' sets the dvi viewer.
584         - New mode `auto':
585           -> active if no other mode is given or by new option `--auto';
586           -> selects from a sequence of modes that are tested until one
587             of them succeeds.
588           -> the default mode sequence is actually `ps', `x', `tty'.
589           -> `--default-modes' sets this mode sequence as a comma
590              separated string of program names, optionally each one
591              with arguments).
592         - New mode `groff':
593           -> process input like groff, ignore viewing options.
594           -> activated by new option `--groff'.
595           -> automatically active with one of `-V', `-X', `-Z'.
596         - Revise `tty' mode:
597           -> allow several text devices.
598           -> 
599         - Reorganize the mode management:
600           -> new mode setting option `--mode'.
601           -> logically separate source, groff, and display modes.
602           -> intermediate output mode is now part of mode groff; remove
603              any special features around `-Z'.
604         - Update usage() to reflect the new option structure.
606         * groffer.sh: add configuration files
607         - `/etc/groff/groffer.conf' system-wide configuration.
608         - `${HOME}/.groff/groffer.conf' user configuration.
609         - The configuration file are shell scripts for now; later
610           implementations can identify this from the `#! /bin/sh' line.
611         
612         * groffer.sh: new data structure `list':
613         - Implement a `list' data structure as a string consisting of
614           single-quoted elements, separated by a space character;
615           embedded single-quotes are escaped.
617         * groffer.sh: new option parser based on `list':
618         - Write new option parser based on `list', compatible to both
619           POSIX getopts() and GNU getopt().
620         - Long options are now available on GNU and non-GNU systems.
621         - Get rid of POSIX getopts() and GNU getopt().
622         - the `-W--longopt' construct is now obsolete; remove it.
623         - add test/function for `unset'.
624         - Option strings are now implemented as `list's in order to
625           allow unusual characters in options.
626         - Parse $MANOPT first; translate essential arguments into
627           groffer options.
628         
629         * groffer.man:
630         - determine prompt length for `.Shell_cmd'* dynamically.
631         - naming scheme for static strings and registers changed to
632           `namespace:macro.variable'.
634         
635 2002-06-16  Werner Lemberg  <wl@gnu.org>
637         * groffer.sh:
638         Implement man option `--ascii' by `-mtty-char'.
639            
641 2002-05-31  Werner LEMBERG  <wl@gnu.org>
643         * groffer.man (@.Shell_cmd_width):
644         Increase to 4m (we use `sh#' as the prompt).
647 2002-05-31  Bernd Warken 
648         ________________________________________________________________
649         * release of groffer 0.7
651         * groffer.sh: remove incompatibilities with the `ash' shell:
652         - do not use `!command':
653           -> use `else'
654           -> write `_not_' equivalents for some functions
655         - do not use `[^]' in `case':
656           ->  restructure some functions.
657         - only single-character names for loop variables:
658           -> spoils the paradigm of leading `_' for local variables.
659         - spurious trouble with `for i in ${var}':
660           -> use `eval set -- ${var}' and `for i in "$@"'
661         - do not change or use $IFS:
662           -> define new functions string_split() and `path_split()'.
663           -> result must be processed by `eval set --'.
664           -> solve conflicts with existing positional parameters.
665         - trouble with exporting external `$GROFF_*' variables:
666           -> hope that they were exported in the calling shell.
667         - not smart about additional blanks:
668           -> remove unnecessary white space.
670         * groffer.sh: improve run-time speed:
671         - `ash' more than doubles the speed of `bash'.
672         - speed-up `man_setup()'.
675 2002-05-30  Werner Lemberg  <wl@gnu.org>
677         * groffer.man:
678         - remove some wrong `\:'.
679         - rename macro names that start with a `[' (clashes with refer).
680         - fix TP_header.
683 2002-05-28  Bernd Warken 
684         ________________________________________________________________
685         * release of groffer 0.6
687         This is almost a complete rewrite since groffer 0.5 .
688         ________________________________________________________________
689         * Documentation
690         
691         * groffer.man:
692         - Apply the changes done in www.tmac (.URL and .MTO)
693         - Replace \fP by \f[].
694         - Redesign and rewrite most macros.
695         - Include the documentation for the new features.
696         - Greatly enlarge section ENVIRONMENT
697         - Add examples.
699         * TODO:
700         - Start a TODO file with several sections.
702         * ChangeLog:
703         Due to the many changes, shorten and rearrange the entries
704         since groffer 0.5 .
705         ________________________________________________________________
706         * Shell compatibility
708         * groffer.sh:
709         - Due to possible conflicts in old BSD versions, `[]' was
710           replaced by `test'; the `test' options `-a' and `-o' were
711           replaced by multiple calls of `test'.
712         - Write interface to the `sed' command `s' to become
713           independent of the delimiter character.  Rewrite all text
714           manipulating function to use this new scheme.  The new
715           functions are named `string_*'.
716         - `tr' is not needed any longer, replaced by `sed'.
717         - `grep' is not needed any longer, mostly replaced by `case'.
718         - Revision of test for `getopt'.
719         - Remove `set -a'; explicitly export variables.
720         - The only external programs used are POSIX `sed' and the
721           fallback to `apropos'.  All other program calls were
722           replaced by shell builtins and functions.
723         
724         ________________________________________________________________
725         * Cosmetics
727         * groffer.sh:
728         - Implement a prefix based naming scheme for local variables
729           and functions (OOP-like).
730         - Introduce variables for white space (better readability with
731           $IFS).
732         - Store the names of the processed filespecs into a variable
733           instead of a temporary file.
734         - Error-prone shell constructions were replaced by functions
735           with a simple interface.
736         - To avoid too long pipes, replace supercat() by do_fileargs();
737           every input file is handled independently.
739         ________________________________________________________________
740         * New features:
741         - Add support for more X devices (e.g. X75-12 and X100-12).
742         - Add long option `--intermediate_output' to `-Z'.
743         - Make the options for mode selection clobber each other.
744         - Add option `--mode' with an argument having the following
745           values:
746           `X': force displaying in X, same as options `-X';
747           `tty': display with a pager on text terminal; same as `--tty';
748           `source', `default', `auto', etc.
749         - Make the handling of the X mode like in groff (e.g. -X -Tps).
750         - Make resolution for gxditview behave like groff (default
751           75 dpi).
752         - Add environment variable $GROFFER_OPT to preset groffer
753           options.
755         ________________________________________________________________
756         * implement most of the functionality of GNU `man'.
758         - Add all `man' long options to groffer.
759         - Add all `man' environment variables.
760         - Parse and use content of `$MANOPT'.
761         - The precedence of the options and environment variables
762           is regulated like in GNU `man'.
763         - Force the option `--manpath' to have a colon-separated
764           argument like GNU `man'.
765         - Support `man section name' calling convention.
766         - Remove all dependencies on `man -w'.
768         * groffer.sh:
769         - Add the new features above.
770         - Rewrite the search algorithm for man pages.
771         - Remove searching with `man -w' (problems with space
772           characters in file names).
773         - Fix and complement usage().
774         - The filespec parsers gets a function of its own do_manpage().
775         
776         
777 2002-01-08  Bernd Warken 
778         
779         * groffer 0.5 (beta) released
781         * groffer.man:
782         - Fix hyphenation problems with macros describing options.
783         - Fix the handling of some `-' characters.
784         - Examples of shell commands now print in font CR instead of CB.
785         - Remove documentation for option `-X'.
786         - Add documentation for option `--dpi'.
787         
788         * groffer.sh:
789         - New method for creating temporary files, based on process
790           IDs.  This is reliable enough and suitable for GNU and POSIX.
791         - Run gxditview in a new shell instantiation for having a clean
792           handling of the temporary files when running in the
793           background.
794         - Revision of the retrieving method for the window title.
795         - Empty input is now tolerated.
796         - Export the variables that are set before the call of `set -a'.
797         - Function usage() corrected and updated.
798         - Unnecessary stuff removed.
799         - Comments adjusted.
800         - Pass option `-X' to groff, i.e. force X output with 75 dpi.
801         - Implement option `--dpi' for setting the resolution for the X
802           viewer, which had already been documented in earlier versions.
804 2002-01-07  Bernd Warken 
806         * groffer 0.4 (beta) released (as groff `contrib')
807         
808         * groffer.man:
809         - New features documented.
810         - Macros stream-lined.
811         - Section EXAMPLES added.
812         
813         * groffer.sh:
814         - System tests added/optimized.
815         - Speed/memory optimizations by defining some shell functions
816           alternatively depending on the text results.
817         - Use `gzip' for decompression instead of `zcat'.
818         - Signal handling added for clean exiting by `trap'.
819         - Temporary files exist only as long as necessary.
820         - Setup of path for man-pages moved after the option parsing.
821         - Fixed a bug in determining the path for man-pages.
822         - Fixed a bug in the handling of non-groffer options.
824         * New features:
825         - New option --tty for forcing paging on text terminal.
826         - New option --no-man for disabling the man-page feature.
827         - Implement reserved POSIX -W feature to simulate long options.
828         - gxditview is now run as a background process.
830 2002-01-05  Werner LEMBERG  <wl@gnu.org>
832         * Integrate groffer into groff's `contrib' tree.
834         * Makefile: Replaced by...
835         Makefile.sub: New file.
837         * groffer: Replaced by...
838         groffer.sh: New file.
840         * groffer.man (OptDef): Add missing backslashes.
841         Update copyright.
843 2001-12-15  Bernd Warken 
845         * groffer 0.3 (alpha) released (still stand-alone package).
847         * GNU and POSIX are supported (POSIX without long options).
849         * New options : --man, --mandb, --title, --xrdb
851         * Support for command line arguments with embedded single space
852         characters (GNU only) .
854         * Several search methods for man-pages when no `man -w' is
855         available ($MANPATH, mandb, a default path).
857         * Language support for man-pages.
859         * Recognize the following filespecs as man-page parameters:
860           man:name(section), man:name, name.section, name.
861         
862 2001-12-03  Bernd Warken 
864         * Stand-alone package for groffer 0.2 (alpha) created
865         Files: groffer, groffer.man, Makefile, TODO, ChangeLog
866         
867 2001-12-02  Bernd Warken 
869         * groffer 0.2 (alpha) program released.
871         * Name changed from `groffview' to `groffer'.
873         * Comments added.
874         
875         * Name changed from `groffview' to `groffer'.
877         * Options harmonized with groff.
878         New options : -Q --source, -T --device, -X .
879         Other options known from groff are passed unchanged.
881         * 100 dpi as default, 75 dpi only in emergency situations.
883         * Bugs with temporary files fixed.
885         * Code restructured and comments added.
886         
887 2001-11-28  Bernd Warken 
889         ***** groffview 0.1 (experimental) and groffview.man released
890         (predecessor of groffer, shell script)
892         * Options : -h --help, -v --version
893         
894         * Search for man-pages based on $MANPATH
896         * development of `groffview' shell script started
898 2001-11-28  Bernd Warken
899         ________________________________________________________________
900         License
902         Copyright (C) 2001,2002,2003,2004 Free Software Foundation, Inc.
903         Written by Bernd Warken
904         Copying and distribution of this file, with or without
905         modification, are permitted provided the copyright notice and this
906         notice are preserved.
908         This file is part of groffer, which is part of the groff project.