1 ________________________________________________________________
2 * release of groffer 0.9.18
4 2005-07-01 Bernd Warken
6 * groffer.sh: further shell compatibility
7 - `echo': Remove options and possible options of `echo' by
8 preceding the argument with a character `x' that is removed by
9 `sed' or replace `echo' by `cat <<EOF'. `echo -n' seems to be not
10 portable, so it is omitted.
11 - `for': Remove `;' from within `for' (because of ksh).
12 - `ls': Old UNIX systems echoed the error message to standard
13 output. So handle the output with `sed'. If the output contains
14 `not found' map it to an empty string.
15 - `true': Replace `true' by command `:'. Remove test of `true'
16 (because `ash' refuses the redefinition of builtins even in an
17 unreachable `if' branch).
18 - `false': Remove test of `false'; it isn't used any more.
19 - `test': As `test -e' does not exist in Solaris 2.5 replace it by
21 - `unset': `unset' is said to be not portable. As `ash' protests
22 against the definition of the function `unset()' in the test of
23 `unset' replace the test by defining `$unset' to `unset' if it
24 exists and to `:' otherwise. Use `eval $unset' instead of the
25 direct command `unset'.
26 - _get_opt_shell(): Replace `for' loop with `shift' by `while'.
27 - man_search_section(): Replace `for f in filename*' by a test on
28 the existence of `filename*'.
29 - `zsh' interprets `$...' as `"$..."'. So `eval' must be called;
30 This cannot be used in `for i in $f', so it must be rewritten as
31 `for i in $(eval set x $f; shift; echo "$@")'
34 - `--X', `--x', `--mode=X', `--mode=x': Make these options
35 equivalent to chosing an X device by setting `-TX75-12'. `-X' is
36 still equivalent to `groff -X'.
37 - main_init(): Choose the name of the temporary file by adding a
38 number using `expr' if it exists and cannot be removed.
39 - main_parse_args():Repair some options by replacing `$mpa_mode'
41 - catz(): Rename it to cat_z() to avoid problem with existing
43 - where(): Rename to where_is().
44 - $_CONFFILES: Rename to $_CONF_FILES.
45 - $_HAS_BZIP: export and preset it.
48 - Document the `X mode' changes.
49 - Add `@g@' to `troff'.
51 * README, README_SH, TODO:
52 - Add date line `Latest update:'.
53 - Add `...' quoting to essential terms.
54 - Add Emacs mode at the end.
57 - Add documentation on the above compatibility changes.
58 - Add documentation on used commands.
59 - Mention the tested shells.
64 ________________________________________________________________
65 * release of groffer 0.9.17
67 2005-06-23 Bernd Warken
69 * groffer.sh: get rid of `local' in functions (it is not POSIX)
70 - Replace local variables by variable names with a special prefix
71 that is an abbreviation of the corresponding function name (quasi-
73 - Unset the quasi-local function variables before returning.
74 - _t_e_s_t_f_u_n_c_(): Remove tests for local and global
76 - Add quasi-local variables for saving the content of
77 single-character variables.
78 - Remove some unused local and global variables.
79 - Several variables were forgotten to make local. They are now
82 * groffer.sh: other corrections
83 - $return_var: New function (after `eval') for an arbitrary
85 - obj*(): Add return modes.
86 - Rewrite tests for `true' and `false'.
87 - Add function names to error calls where it was forgotten.
88 - `for': Replace `for x in "$@"' by `for x'.
89 - `set': Replace `set -- ...' by `set x ...; shift'.
90 - `sed': Replace `\|.*|s|...|...|' by `s|...|...|'.
93 - Add information on the removing of `local'.
94 - New section for non-POSIX shell restrictions.
96 2005-06-20 Keith Marshall
98 * README-SH: Information of `Portable shells' in info autoconf.
100 ________________________________________________________________
101 * release of groffer 0.9.16
103 2005-06-19 Bernd Warken
105 * groffer.sh: Place each `then', `else', and `do' on a line of its
106 own because some shells do not support the mixture mode.
108 * groffer.man: Add section `BUGS'.
111 - Add compatibility information.
112 - Correct documentation for function arguments.
114 2005-06-18 Keith Marshall
116 * groffer.sh: $_NULL_DEV: Replace /dev/null by $_NULL_DEV which is
117 either /dev/null or NUL if /dev/null does not exist.
119 2005-06-17 Zvezdan Petkovic
121 * Makefile.sub: $(RM): Define it to `rm -f' because not all `make'
122 programs have it predefined.
124 2005-06-16 Bernd Warken
125 ________________________________________________________________
126 * release of groffer 0.9.15
130 - Use `sed -f $(SH_DEPS_SED_SCRIPT)'.
132 2005-05-20 Bernd Warken
133 ________________________________________________________________
134 * release of groffer 0.9.14
136 * groffer.man: correction of non-hyphenation
138 2005-05-17 Bernd Warken
139 ________________________________________________________________
140 * release of groffer 0.9.13
143 - $_VIEWER_DVI: Add `kdvi'.
144 - $_VIEWER_PDF: Add `kghostview', `ggv', and `kpdf'.
145 - $_VIEWER_PS: Add `kghostview' and `ggv'.
146 - $_modefile: For the output file name, add extension .ps for ps
147 mode and .dvi for dvi mode. This exists already for the html and
149 - Update some parts of the documentation.
152 - Move some parts on usage from README_SH to README.
153 - Reformulate several parts of both files.
155 * groffer.man: update
157 2005-05-14 Keith Marshall
160 - first line: Add space to `#! /bin/sh'.
162 2004-11-15 Bernd Warken
163 ________________________________________________________________
164 * release of groffer 0.9.12
167 - main_init(): Rewriting of the creation of the temporary
168 directory to ensure that it cannot be made writable apart from the
169 user. If the directory already exists and cannot be removed then
170 append `X' to the directory name.
171 - is_non_empty_file(): fix it to use POSIX `test -s'.
172 - is_existing(): new function.
173 - POSIX `rm -f -r': use this in `clean_up()' and `main_init()'.
174 - `--macro-file': remove this unused long option.
175 - `-V', `--source', `--device': move these from groff options
177 - `$_TMP_DIR_SUB': remove this unused variable.
179 2004-06-15 Bernd Warken
180 ________________________________________________________________
181 * release of groffer 0.9.11
184 - To the search of the `--apropos-*' options, add man pages with a
185 subsection in their apropos output.
187 2004-06-02 Bernd Warken
188 ________________________________________________________________
189 * release of groffer 0.9.10
192 - Remove automatic call of `ash' due to inconsistencies of
193 different ash versions.
194 - In the first run, add recognition of `--shell' lines in the
195 groffer configuration files. To configure an external shell in
196 a configuration file, a line starting with `--shell' is
198 - list_from_cmdline(): Simplify the arguments.
199 - As $POSIXLY_CORRECT is internally set to `y' by some GNU
200 `/bin/sh' shells the following 2 fixes are necessary:
201 -- `sed': Empty patterns are not allowed with $POSIXLY_CORRECT
202 set; so move the address information before the `s' command to the
203 pattern after the command, and write `.*' to the address field.
204 -- list_from_cmdline(): Remove the strange $POSIXLY_CORRECT style
205 to finish the option processing after the first non-option
206 argument; use the flexible GNU mixing of options and file names
210 - Remove any hints on `ash'.
211 - Add minus line behavior of `--shell' for configuration and add a
212 corresponding example.
213 - Update the information on $POSIXLY_CORRECT.
215 2004-05-29 Bernd Warken
216 ________________________________________________________________
217 * release of groffer 0.9.9
220 Fix first run section to allow the starting shell to go on if
221 `ash' is not available.
224 Remove unnecessary information on groffer version.
226 2004-05-12 Bernd Warken
227 ________________________________________________________________
228 * release of groffer 0.9.8
231 Fix problems of `test' by adding subs to arguments.
234 Write the file license as macros that are called in sections
240 2004-04-30 Bernd Warken
241 ________________________________________________________________
242 * release of groffer 0.9.7
245 - obj(), obj_data(), obj_from_output(), obj_set(): New object
246 oriented functions to minimize complicated `eval' commands.
247 - list_*(): Corrections.
248 - usage(): Streamlining.
250 * groffer.man, README_SH:
253 2004-04-27 Bernd Warken
254 ________________________________________________________________
255 * release of groffer 0.9.6
257 This version replaces the license of all files except ChangeLog of
258 the groffer source to the GNU General Public License (GPL) of the
259 version described in files COPYING and LICENSE in the groff top
263 Changement from the GNU Free Documentation License (FDL) to
264 the GNU General Public License (GPL).
266 * README, README_SH, TODO:
267 Add license GNU General Public License (GPL).
269 * Makefile.sub, groffer.sh:
270 Keep the GNU General Public License (GPL), but refer to the
271 COPYING and LICENSE files.
273 * ChangeLog: Add a license in the style of Emacs ChangeLog file,
274 which is weaker than the GPL, but has its flavor.
276 2004-04-24 Bernd Warken
277 ________________________________________________________________
278 * release of groffer 0.9.5
280 This version is a rewrite of groffer in many parts, but it is kept
281 in the old single script style.
283 Overview of new options:
284 --text, --mode text, --tty-viewer,
285 --X, --mode X, --X-viewer, --html, --mode html, --html-view,
286 --apropos-data, --apropos-devel, --apropos-progs
289 <groffer-source>/README_SH
292 ******* Extension of the `apropos' handling
294 The output of man's `apropos' has grown immensely meanwhile, so it
295 has become inefficient. Now `groffer' provides new options to get
296 the a selected information from this output.
299 `--apropos-progs': new option for displaying only information
300 on programs (man page sections 1, 6, and 8)
301 `--apropos-data': new option for displaying only information
302 on documented data (man page sections 4, 5 and 7)
303 `--apropos-devel': new option for displaying only information
304 on development documentation (man page sections 2, 3 and 9)
305 `--apropos': still displays just the output of man's `apropos'
307 - Specify all of these options as a single argument option; that
308 makes groffer's `--apropos' option slightly different because
309 the corresponding `man' option does not have arguments, but takes
310 all file arguments as apropos targets. So just ignore the `man'
311 options `-k' and `--apropos' in the parsing of $MANOPT.
312 - Exit after processing one `apropos' call.
315 ******* Quasi object oriented function arguments
317 An object is the name of an environment variable. The value of
318 this variable contains the object's content. This allows to
319 specify function arguments and the calling syntax in a simpler way
320 by letting the first argument be a variable name, usable for input
323 Such an object type is `list', the string value of a shell
324 variable arranged in space-separated single-quoted elements, such
325 as $GROFFER_OPT internally.
328 - Remove list_from_args(), list_element_from_arg()
329 list_from_lists(), list_length(), and list_prepend().
330 They can be replaced by list_append().
331 - All list*() functions are rearranged such that the first
332 argument is a list object, the name of a variable.
335 ******* Simplification of configuration files
337 The new syntax of the groffer configuration files is
338 - all lines starting with a `-' character are interpreted as
339 command line options for all calls of groffer; they are collected
340 and prepended to the actual value of $GROFFER_OPT; optional
341 spaces at the beginning.of the line are omitted.
342 - all other lines are interpreted as a shell command and executed
343 in the current shell of the groffer call.
346 - The command line and the external environment variables such as
347 $GROFFER_OPT of the groffer call have the highest precedence.
348 - This is overwritten by the configuration file in the user's home
350 - The system configuration file in /etc has the lowest
354 The configuration files are now called after the determination of
355 the temporary files in main_init().
358 ******* Script file name
360 The file name of the script is needed for the several calls during
361 the search for the optimal shell.
364 - $_GROFFER_SH: replace $_this by $_GROFFER_SH and use $0 for
365 determining the file name of the script for the following calls,
366 instead of the cumbersome @BINDIR@ construction.
367 - Force the script to be called as an executable file, so $0 must
368 contain the program name.
371 ******* Improved temporary file names
373 Just like groff, groffer mixes all file parameters into a single
374 output file. Its name is now constructed as a comma-separated
375 list built from the file name arguments without a leading comma.
376 So a leading comma can be used for the internal temporary file
380 - $_OUTPUT_FILE_NAME: new global variable as basis for the output
381 file name; it is set in main_set_resources().
382 - tmp_create(): use `,name' for temporary files different from
383 output file because the output file name does not start with a
384 comma. `$$' is not needed anymore.
385 - main_display(): simplification of $_modefile in _do_display()
386 and single display modes.
387 - Add extension `.html' to output file name in html mode.
388 - base_name(): correction for strange positions of `/'.
394 - Set the main default mode to `x' with groff's X Window viewer
396 - Allow 'x' and 'X' in `--mode' for the X Window mode; the same
397 for `--x' and `X', `--x-viewer' and `--X-viewer'.
398 - Make groff's `-X' equivalent to `mode X'.
399 - Fix `--auto', `--mode auto', and `--default-modes'.
400 - `html' mode: new mode equivalent to `www', add `konqueror' and
402 - `pdf' mode: fix zoom options for pdf-viewer `xpdf' in
403 main_set_resources(); in main_display() fix the display structure.
404 - Set default X Window resolution to 75dpi. This is not optimal,
405 but with a higher value the options and resources for some viewers
407 `--text' and `--mode text': new option for text output without a
409 - `--tty-viewer': new option equivalent to `--pager'.
410 - Correct the pagers for `tty' mode.
411 - Fix `groff' mode in main_set_resources() and main_display().
412 - Harmonize `--mode arg' with the equivalent options `--arg'.
415 ******* Fixes for command line options
418 - list_from_cmdline(): fix the parsing of options with arguments.
419 - Rename $_OPT_TTY_DEVICE to $_OPT_TEXT_DEVICE.
420 - $_OPTS_X_*: new variables for the inhereted X Window variables.
421 - Improve the distribution of the command line options into
422 $_OPTS_GROFFER_*, $_OPTS_GROFF_*, $_OPTS_X_*, and $_OPTS_MAN_*.
423 - $_OPTS_MANOPT_*: new variables for the parsing of $MANOPT.
424 - Correct $_OPTS_CMDLINE_*.
425 - Remove some unused $_OPTS_*.
426 - `--iconic': new option from `-iconic' of the X Window toolkit.
427 - Correct `--rv' to an option without argument.
428 - Minor fixes of other X Window toolkit options.
434 - is_prog(): allow 0 arguments.
435 - is_not_writable(): new function.
436 - is_*(): fix trailing return codes.
437 - Replace most `test' calls by is_*() functions.
438 - man_setup(): due to bugs in `manpath', prefer
439 manpath_set_from_path() for the determination of the man page path.
440 - man_search_section(): correction of some `for' loops.
441 - Remove export of external non-groffer variables.
444 ******* Documentation
447 - Reorder the option details according to the option origin as
448 groffer, groff, X, and man options.
449 - Add the programming changes information mentioned above.
450 - Support man pages with a dot in their name
452 * README_SH: new file
453 Move large parts of the documentation in `groffer.sh' into this
456 * groffer.sh: usage():
457 - Change the output for `--help' to standard output.
458 - Restructure the information for this help output.
461 ******* Removement of the author's email address
463 Because of the extreme spam attacks, the author removed all
464 occurencies of his email address in every file of the groffer
467 2003-01-22 Bernd Warken
468 ________________________________________________________________
469 * release of groffer 0.9.4
471 * groffer.sh: corrections for some restrictive shells
472 - Possible exit codes in actual `ash' are between 0 and 63. To
473 handle even deeper restrictions, use 7 as maximal code instead
474 of 255 as replacement for error -1.
475 - Remove variables $_BAD2 and $_BAD3.
476 - Replace `trap' argument `EXIT' by 0 and write new fuctions
477 `trap_clean' and `trap_set' to handle the restrictions of `trap'
479 - Correct wrong $MANPATH to $_MAN_PATH in function
481 - Test existence of directory before deleting it in the
482 `clean_up' definitions.
483 - Correct help output in `usage' (called by `--help').
486 Remove mention of `shoop' and `apropos'.
488 2002-10-21 Bernd Warken
489 ________________________________________________________________
490 * release of groffer 0.9.3
492 * groffer.sh: new temporary subdirectory
493 - Generate temporary subdirectory for storing temporary files
494 with better names in future groffer versions (name:
495 "groffer$$" in usual temporary directory).
496 - Use `umask 000' for temporary files to allow cleaning up
497 for everyone after a system break.
498 - Change both clean_up() functions (for normal shell and
499 for main_display() subshell) to handle the new subdirectory.
500 - clean_up_secondary() and $_TMP_PREFIX are unnecessary now, so
503 * Makefile.sub: `sed' commands for "groffer:"
504 - Remove "@g@" entry (not used in "groffer.sh").
505 - Add global replace for "@BINDIR@" and "@VERSION@" for future
508 * TODO: think about...
509 - writing part of groffer in C/C++.
510 - handling several files with different macro packages.
512 2002-10-17 Bernd Warken
513 ________________________________________________________________
514 * fixes of groffer 0.9.2
517 Terminate main_parse_MANOPT() if $MANOPT is empty or consists
518 of space characters only.
520 * groffer.man: some fixes in "GROFFER OPTIONS"
521 - New macro ".Header_CB" for CB font in .TP headers; used for
522 definition of variables in option --mode.
523 - Fix some option references to refer to long options.
526 New file for general information on the groffer source; it is
529 2002-10-14 Bernd Warken
532 add replacement "@BINDIR@" to "$(bindir)" for "groffer:"
535 Define $_this as "@BINDIR@/${_PROGRAM_NAME}" to save the right
536 installation position of groffer for the special shell calling.
539 Remove double definition of filespec parameters.
541 2002-10-13 Bernd Warken
542 ________________________________________________________________
543 * release of groffer 0.9.2
546 - Fix some 'sed' functions: two in func_stack_dump(), one in
547 base_name(), add 'sed' command in list_from_cmdline().
548 - Finish main_parse_MANOPT() if $MANOPT is empty.
549 - Sort $_OPTS_GROFF_SHORT_NA like groff short options (but
553 * groffer.man: make it more readable (but no additions)
554 - A shortened section "SYNOPSIS" is followed by a simplified
555 section "DESCRIPTION".
556 - The options from "SYNOPSIS" go to new section "OPTION
557 OVERVIEW" with all groffer options in a single subsection.
558 - The details of all groffer options are described in section
560 - New macro for file names ".File_name".
561 - "Option Parsing" is moved to section "COMPATIBILITY".
562 - Fix some "EXAMPLES".
564 2002-09-30 Bernd Warken
565 ________________________________________________________________
566 * release of groffer 0.9.1
568 * TODO: remove done entries
569 - Remove request for different shells.
570 - Remove the 'sed' complaints.
572 2002-07-15 Bernd Warken
574 * groffer.sh: replace `sed' interface by direct `sed'
575 - This improves the performance of the shell programming parts
576 and shortens the groffer script by about 5%.
577 - Remove functions: string_del_append(), string_del_leading(),
578 string_del_trailing(), string_flatten(), string_get_before(),
579 string_get_leading(), string_replace_all(), string_sed_s(),
580 and their auxiliary functions.
581 - Replace all calls of these functions by direct `sed' commands.
582 - Define variables for special characters to ease `sed' calls.
584 - Restrict list_from_string() to single character separators.
585 - Correct list_check() and base_name().
586 - Add comments to all calls of `sed'.
588 * groffer.sh: add run-time support for several shells
589 - New option `--shell': stop execution and rerun groffer under
590 the shell specified in the argument of `--shell'.
591 - If no shell was specified at run-time, `ash' is tried first;
592 if `ash' is not available continue with the shell with which
593 groffer was called from the command line, or with the shell
594 name in the first line of the script, actually `/bin/sh'.
596 2002-07-12 Bernd Warken
597 ________________________________________________________________
598 * fixes for groffer 0.9.0
600 * groffer.sh: enhance version information
601 `groffer -v|--version' now print:
602 - groffer's version number and date
603 - the string `is part of '
604 - groff's version information (version number and copyright),
605 but not groff's `called subprograms' information.
607 * groffer.sh: minor fixes
608 - Fix the argument parser to process argument `-' correctly.
609 - Some display programs have trouble with empty input; feed a
610 line consisting of a single space character in this case for
611 all display modes (not for source or groff modes).
614 fix entry `shoop' (not 'shopt').
616 2002-06-28 Bernd Warken
617 ________________________________________________________________
618 * release of groffer 0.9.0
620 * groffer.sh: new mode `pdf'
621 - PDF (Portable Document Format):
622 -> Transform groff `ps' output into pdf using `gs'.
623 -> Pro: PDF viewers provide text searching (!).
624 -> Con: the transformation is quite slow.
625 -> Not suitable as an auto mode.
626 - New options `--pdf', `--pdf-viewer', `--mode pdf'.
627 - Standard pdf viewers `xpdf' and `acroread'.
628 - For `xpdf', choose zoom `z 3' for 100 dpi, `z 2' for 75 dpi.
630 * groffer.sh: support bzip2 decompression
631 - add test for `bzip2' with necessary options
632 - extend functions `catz()' and `save_stdin()'.
635 remove entry on `bzip' decompression (done).
638 - Document new `pdf' features.
639 - Document new `bzip2' decompression.
640 - Fix documentation for `--auto-modes'.
642 * groffer.sh: minor fixes
643 - Improve device tests in `tty' and `dvi' modes.
644 - Internally, map mode `auto' to '' to facilitate tests.
645 - Fix auto mode sequence to: `ps,x,tty' as was intended.
647 2002-06-25 Bernd Warken
653 Fix some indentations.
655 2002-06-23 Bernd Warken
656 ________________________________________________________________
657 * release of groffer 0.8
659 * Makefile.sub: add copyright section
662 - Document the new options.
663 - Revise the documentation of the modes.
664 - Document the configuration files in new section `FILES'.
665 - Redesign section `EXAMPLES'.
666 - Remove documentation for `-W'.
668 * groffer.sh: new debugging features
669 - Disabled by default; enabled by environment variables.
670 - Add landmark() to catch typos with quotes.
671 - Add a function call stack for suitable functions; implemented
672 as within the argument checker func_check().
673 - This implies the need to provide `return' with some clean-up
674 facility; implemented as `eval "$_return_..."'.
675 - Add option `--debug' to enable debugging at run-time.
676 - Actually, the groffer script uses only shell builtins found
677 in `ash' (a subset of POSIX) and POSIX `sed' as the only
678 external shell utility.
680 * groffer.sh: customization of viewers
681 - In `groff' mode, the groffer viewing facilities are disabled.
682 - The postprocessor option `-P' costumizes the viewer only in
683 some situations in the `groff' mode, so a new infrastructure
684 for viewer customization is necessary.
685 - Allow to specify arguments to the viewer programs specified
687 - Implement some of the essential X Toolkit resource options in
688 groffer, but with use a leading double minus.
689 -> `--bd': set border color.
690 -> `--bg', `--background': set background color.
691 -> `--bw': set border width.
692 -> `--display': set X display.
693 -> `--geometry': set size and position of viewer window.
694 -> `--fg', `--foreground': set foreground color.
695 -> `--ft', `--font': set font.
696 -> `--resolution': set X resolution in dpi.
697 -> `--title': set viewer window title.
698 -> `--xrm': set X resource.
699 - Remove misnamed option `--xrdb'.
701 * groffer.sh: new mode structure
702 - New Postcript mode `ps' (`--ps'):
703 -> default viewers: gv,ghostview,gs_x11,gs;
704 -> `--ps-viewer' sets the Postscript viewer.
705 - New mode `www' (`--www') for displaying in a web browser:
706 -> default browsers: mozilla,netscape,opera,amaya,arena;
707 -> `--www-viewer' sets the web browser.
708 - New dvi mode (`--dvi'); default viewer `xdvi':
709 -> default viewers: xdvi,dvilx;
710 -> `--dvi-viewer' sets the dvi viewer.
712 -> active if no other mode is given or by new option `--auto';
713 -> selects from a sequence of modes that are tested until one
715 -> the default mode sequence is actually `ps', `x', `tty'.
716 -> `--default-modes' sets this mode sequence as a comma
717 separated string of program names, optionally each one
720 -> process input like groff, ignore viewing options.
721 -> activated by new option `--groff'.
722 -> automatically active with one of `-V', `-X', `-Z'.
724 -> allow several text devices.
726 - Reorganize the mode management:
727 -> new mode setting option `--mode'.
728 -> logically separate source, groff, and display modes.
729 -> intermediate output mode is now part of mode groff; remove
730 any special features around `-Z'.
731 - Update usage() to reflect the new option structure.
733 * groffer.sh: add configuration files
734 - `/etc/groff/groffer.conf' system-wide configuration.
735 - `${HOME}/.groff/groffer.conf' user configuration.
736 - The configuration file are shell scripts for now; later
737 implementations can identify this from the `#! /bin/sh' line.
739 * groffer.sh: new data structure `list':
740 - Implement a `list' data structure as a string consisting of
741 single-quoted elements, separated by a space character;
742 embedded single-quotes are escaped.
744 * groffer.sh: new option parser based on `list':
745 - Write new option parser based on `list', compatible to both
746 POSIX getopts() and GNU getopt().
747 - Long options are now available on GNU and non-GNU systems.
748 - Get rid of POSIX getopts() and GNU getopt().
749 - the `-W--longopt' construct is now obsolete; remove it.
750 - add test/function for `unset'.
751 - Option strings are now implemented as `list's in order to
752 allow unusual characters in options.
753 - Parse $MANOPT first; translate essential arguments into
757 - determine prompt length for `.Shell_cmd'* dynamically.
758 - naming scheme for static strings and registers changed to
759 `namespace:macro.variable'.
762 2002-06-16 Werner Lemberg <wl@gnu.org>
765 Implement man option `--ascii' by `-mtty-char'.
768 2002-05-31 Werner LEMBERG <wl@gnu.org>
770 * groffer.man (@.Shell_cmd_width):
771 Increase to 4m (we use `sh#' as the prompt).
774 2002-05-31 Bernd Warken
775 ________________________________________________________________
776 * release of groffer 0.7
778 * groffer.sh: remove incompatibilities with the `ash' shell:
779 - do not use `!command':
781 -> write `_not_' equivalents for some functions
782 - do not use `[^]' in `case':
783 -> restructure some functions.
784 - only single-character names for loop variables:
785 -> spoils the paradigm of leading `_' for local variables.
786 - spurious trouble with `for i in ${var}':
787 -> use `eval set -- ${var}' and `for i in "$@"'
788 - do not change or use $IFS:
789 -> define new functions string_split() and `path_split()'.
790 -> result must be processed by `eval set --'.
791 -> solve conflicts with existing positional parameters.
792 - trouble with exporting external `$GROFF_*' variables:
793 -> hope that they were exported in the calling shell.
794 - not smart about additional blanks:
795 -> remove unnecessary white space.
797 * groffer.sh: improve run-time speed:
798 - `ash' more than doubles the speed of `bash'.
799 - speed-up `man_setup()'.
802 2002-05-30 Werner Lemberg <wl@gnu.org>
805 - remove some wrong `\:'.
806 - rename macro names that start with a `[' (clashes with refer).
810 2002-05-28 Bernd Warken
811 ________________________________________________________________
812 * release of groffer 0.6
814 This is almost a complete rewrite since groffer 0.5 .
815 ________________________________________________________________
819 - Apply the changes done in www.tmac (.URL and .MTO)
820 - Replace \fP by \f[].
821 - Redesign and rewrite most macros.
822 - Include the documentation for the new features.
823 - Greatly enlarge section ENVIRONMENT
827 - Start a TODO file with several sections.
830 Due to the many changes, shorten and rearrange the entries
832 ________________________________________________________________
833 * Shell compatibility
836 - Due to possible conflicts in old BSD versions, `[]' was
837 replaced by `test'; the `test' options `-a' and `-o' were
838 replaced by multiple calls of `test'.
839 - Write interface to the `sed' command `s' to become
840 independent of the delimiter character. Rewrite all text
841 manipulating function to use this new scheme. The new
842 functions are named `string_*'.
843 - `tr' is not needed any longer, replaced by `sed'.
844 - `grep' is not needed any longer, mostly replaced by `case'.
845 - Revision of test for `getopt'.
846 - Remove `set -a'; explicitly export variables.
847 - The only external programs used are POSIX `sed' and the
848 fallback to `apropos'. All other program calls were
849 replaced by shell builtins and functions.
851 ________________________________________________________________
855 - Implement a prefix based naming scheme for local variables
856 and functions (OOP-like).
857 - Introduce variables for white space (better readability with
859 - Store the names of the processed filespecs into a variable
860 instead of a temporary file.
861 - Error-prone shell constructions were replaced by functions
862 with a simple interface.
863 - To avoid too long pipes, replace supercat() by do_fileargs();
864 every input file is handled independently.
866 ________________________________________________________________
868 - Add support for more X devices (e.g. X75-12 and X100-12).
869 - Add long option `--intermediate_output' to `-Z'.
870 - Make the options for mode selection clobber each other.
871 - Add option `--mode' with an argument having the following
873 `X': force displaying in X, same as options `-X';
874 `tty': display with a pager on text terminal; same as `--tty';
875 `source', `default', `auto', etc.
876 - Make the handling of the X mode like in groff (e.g. -X -Tps).
877 - Make resolution for gxditview behave like groff (default
879 - Add environment variable $GROFFER_OPT to preset groffer
882 ________________________________________________________________
883 * implement most of the functionality of GNU `man'.
885 - Add all `man' long options to groffer.
886 - Add all `man' environment variables.
887 - Parse and use content of `$MANOPT'.
888 - The precedence of the options and environment variables
889 is regulated like in GNU `man'.
890 - Force the option `--manpath' to have a colon-separated
891 argument like GNU `man'.
892 - Support `man section name' calling convention.
893 - Remove all dependencies on `man -w'.
896 - Add the new features above.
897 - Rewrite the search algorithm for man pages.
898 - Remove searching with `man -w' (problems with space
899 characters in file names).
900 - Fix and complement usage().
901 - The filespec parsers gets a function of its own do_manpage().
904 2002-01-08 Bernd Warken
906 * groffer 0.5 (beta) released
909 - Fix hyphenation problems with macros describing options.
910 - Fix the handling of some `-' characters.
911 - Examples of shell commands now print in font CR instead of CB.
912 - Remove documentation for option `-X'.
913 - Add documentation for option `--dpi'.
916 - New method for creating temporary files, based on process
917 IDs. This is reliable enough and suitable for GNU and POSIX.
918 - Run gxditview in a new shell instantiation for having a clean
919 handling of the temporary files when running in the
921 - Revision of the retrieving method for the window title.
922 - Empty input is now tolerated.
923 - Export the variables that are set before the call of `set -a'.
924 - Function usage() corrected and updated.
925 - Unnecessary stuff removed.
927 - Pass option `-X' to groff, i.e. force X output with 75 dpi.
928 - Implement option `--dpi' for setting the resolution for the X
929 viewer, which had already been documented in earlier versions.
931 2002-01-07 Bernd Warken
933 * groffer 0.4 (beta) released (as groff `contrib')
936 - New features documented.
937 - Macros stream-lined.
938 - Section EXAMPLES added.
941 - System tests added/optimized.
942 - Speed/memory optimizations by defining some shell functions
943 alternatively depending on the text results.
944 - Use `gzip' for decompression instead of `zcat'.
945 - Signal handling added for clean exiting by `trap'.
946 - Temporary files exist only as long as necessary.
947 - Setup of path for man-pages moved after the option parsing.
948 - Fixed a bug in determining the path for man-pages.
949 - Fixed a bug in the handling of non-groffer options.
952 - New option --tty for forcing paging on text terminal.
953 - New option --no-man for disabling the man-page feature.
954 - Implement reserved POSIX -W feature to simulate long options.
955 - gxditview is now run as a background process.
957 2002-01-05 Werner LEMBERG <wl@gnu.org>
959 * Integrate groffer into groff's `contrib' tree.
961 * Makefile: Replaced by...
962 Makefile.sub: New file.
964 * groffer: Replaced by...
965 groffer.sh: New file.
967 * groffer.man (OptDef): Add missing backslashes.
970 2001-12-15 Bernd Warken
972 * groffer 0.3 (alpha) released (still stand-alone package).
974 * GNU and POSIX are supported (POSIX without long options).
976 * New options : --man, --mandb, --title, --xrdb
978 * Support for command line arguments with embedded single space
979 characters (GNU only) .
981 * Several search methods for man-pages when no `man -w' is
982 available ($MANPATH, mandb, a default path).
984 * Language support for man-pages.
986 * Recognize the following filespecs as man-page parameters:
987 man:name(section), man:name, name.section, name.
989 2001-12-03 Bernd Warken
991 * Stand-alone package for groffer 0.2 (alpha) created
992 Files: groffer, groffer.man, Makefile, TODO, ChangeLog
994 2001-12-02 Bernd Warken
996 * groffer 0.2 (alpha) program released.
998 * Name changed from `groffview' to `groffer'.
1002 * Name changed from `groffview' to `groffer'.
1004 * Options harmonized with groff.
1005 New options : -Q --source, -T --device, -X .
1006 Other options known from groff are passed unchanged.
1008 * 100 dpi as default, 75 dpi only in emergency situations.
1010 * Bugs with temporary files fixed.
1012 * Code restructured and comments added.
1014 2001-11-28 Bernd Warken
1016 ***** groffview 0.1 (experimental) and groffview.man released
1017 (predecessor of groffer, shell script)
1019 * Options : -h --help, -v --version
1021 * Search for man-pages based on $MANPATH
1023 * development of `groffview' shell script started
1025 2001-11-28 Bernd Warken
1027 ________________________________________________________________
1030 Copyright (C) 2001,2002,2003,2004,2005 Free Software Foundation,
1032 Written by Bernd Warken
1033 Copying and distribution of this file, with or without
1034 modification, are permitted provided the copyright notice and this
1035 notice are preserved.
1037 This file is part of groffer, which is part of the groff project.