1 2002-09-30 Bernd Warken <bwarken@mayn.de>
2 ________________________________________________________________
3 * release of groffer 0.9.1
5 * TODO: remove done entries
6 - Remove request for different shells.
7 - Remove the 'sed' complaints.
9 2002-07-15 Bernd Warken <bwarken@mayn.de>
11 * groffer.sh: replace `sed' interface by direct `sed'
12 - This improves the performance of the shell programming parts
13 and shortens the groffer script by about 5%.
14 - Remove functions: string_del_append(), string_del_leading(),
15 string_del_trailing(), string_flatten(), string_get_before(),
16 string_get_leading(), string_replace_all(), string_sed_s(),
17 and their auxiliary functions.
18 - Replace all calls of these functions by direct `sed' commands.
19 - Define variables for special characters to ease `sed' calls.
21 - Restrict list_from_string() to single character separators.
22 - Correct list_check() and base_name().
23 - Add comments to all calls of `sed'.
25 * groffer.sh: add run-time support for several shells
26 - New option `--shell': stop execution and rerun groffer under
27 the shell specified in the argument of `--shell'.
28 - If no shell was specified at run-time, `ash' is tried first;
29 if `ash' is not available continue with the shell with which
30 groffer was called from the command line, or with the shell
31 name in the first line of the script, actually `/bin/sh'.
33 2002-07-12 Bernd Warken <bwarken@mayn.de>
34 ________________________________________________________________
35 * fixes for groffer 0.9.0
37 * groffer.sh: enhance version information
38 `groffer -v|--version' now print:
39 - groffer's version number and date
40 - the string `is part of '
41 - groff's version information (version number and copyright),
42 but not groff's `called subprograms' information.
44 * groffer.sh: minor fixes
45 - Fix the argument parser to process argument `-' correctly.
46 - Some display programs have trouble with empty input; feed a
47 line consisting of a single space character in this case for
48 all display modes (not for source or groff modes).
51 fix entry `shoop' (not 'shopt').
53 2002-06-28 Bernd Warken <bwarken@mayn.de>
54 ________________________________________________________________
55 * release of groffer 0.9.0
57 * groffer.sh: new mode `pdf'
58 - PDF (Portable Document Format):
59 -> Transform groff `ps' output into pdf using `gs'.
60 -> Pro: PDF viewers provide text searching (!).
61 -> Con: the transformation is quite slow.
62 -> Not suitable as an auto mode.
63 - New options `--pdf', `--pdf-viewer', `--mode pdf'.
64 - Standard pdf viewers `xpdf' and `acroread'.
65 - For `xpdf', choose zoom `z 3' for 100 dpi, `z 2' for 75 dpi.
67 * groffer.sh: support bzip2 decompression
68 - add test for `bzip2' with necessary options
69 - extend functions `catz()' and `save_stdin()'.
72 remove entry on `bzip' decompression (done).
75 - Document new `pdf' features.
76 - Document new `bzip2' decompression.
77 - Fix documentation for `--auto-modes'.
79 * groffer.sh: minor fixes
80 - Improve device tests in `tty' and `dvi' modes.
81 - Internally, map mode `auto' to '' to facilitate tests.
82 - Fix auto mode sequence to: `ps,x,tty' as was intended.
84 2002-06-25 Bernd Warken <bwarken@mayn.de>
90 Fix some indentations.
92 2002-06-23 Bernd Warken <bwarken@mayn.de>
93 ________________________________________________________________
94 * release of groffer 0.8
96 * Makefile.sub: add copyright section
99 - Document the new options.
100 - Revise the documentation of the modes.
101 - Document the configuration files in new section `FILES'.
102 - Redesign section `EXAMPLES'.
103 - Remove documentation for `-W'.
105 * groffer.sh: new debugging features
106 - Disabled by default; enabled by environment variables.
107 - Add landmark() to catch typos with quotes.
108 - Add a function call stack for suitable functions; implemented
109 as within the argument checker func_check().
110 - This implies the need to provide `return' with some clean-up
111 facility; implemented as `eval "$_return_..."'.
112 - Add option `--debug' to enable debugging at run-time.
113 - Actually, the groffer script uses only shell builtins found
114 in `ash' (a subset of POSIX) and POSIX `sed' as the only
115 external shell utility.
117 * groffer.sh: customization of viewers
118 - In `groff' mode, the groffer viewing facilities are disabled.
119 - The postprocessor option `-P' costumizes the viewer only in
120 some situations in the `groff' mode, so a new infrastructure
121 for viewer customization is necessary.
122 - Allow to specify arguments to the viewer programs specified
124 - Implement some of the essential X Toolkit resource options in
125 groffer, but with use a leading double minus.
126 -> `--bd': set border color.
127 -> `--bg', `--background': set background color.
128 -> `--bw': set border width.
129 -> `--display': set X display.
130 -> `--geometry': set size and position of viewer window.
131 -> `--fg', `--foreground': set foreground color.
132 -> `--ft', `--font': set font.
133 -> `--resolution': set X resolution in dpi.
134 -> `--title': set viewer window title.
135 -> `--xrm': set X resource.
136 - Remove misnamed option `--xrdb'.
138 * groffer.sh: new mode structure
139 - New Postcript mode `ps' (`--ps'):
140 -> default viewers: gv,ghostview,gs_x11,gs;
141 -> `--ps-viewer' sets the Postscript viewer.
142 - New mode `www' (`--www') for displaying in a web browser:
143 -> default browsers: mozilla,netscape,opera,amaya,arena;
144 -> `--www-viewer' sets the web browser.
145 - New dvi mode (`--dvi'); default viewer `xdvi':
146 -> default viewers: xdvi,dvilx;
147 -> `--dvi-viewer' sets the dvi viewer.
149 -> active if no other mode is given or by new option `--auto';
150 -> selects from a sequence of modes that are tested until one
152 -> the default mode sequence is actually `ps', `x', `tty'.
153 -> `--default-modes' sets this mode sequence as a comma
154 separated string of program names, optionally each one
157 -> process input like groff, ignore viewing options.
158 -> activated by new option `--groff'.
159 -> automatically active with one of `-V', `-X', `-Z'.
161 -> allow several text devices.
163 - Reorganize the mode management:
164 -> new mode setting option `--mode'.
165 -> logically separate source, groff, and display modes.
166 -> intermediate output mode is now part of mode groff; remove
167 any special features around `-Z'.
168 - Update usage() to reflect the new option structure.
170 * groffer.sh: add configuration files
171 - `/etc/groff/groffer.conf' system-wide configuration.
172 - `${HOME}/.groff/groffer.conf' user configuration.
173 - The configuration file are shell scripts for now; later
174 implementations can identify this from the `#! /bin/sh' line.
176 * groffer.sh: new data structure `list':
177 - Implement a `list' data structure as a string consisting of
178 single-quoted elements, separated by a space character;
179 embedded single-quotes are escaped.
181 * groffer.sh: new option parser based on `list':
182 - Write new option parser based on `list', compatible to both
183 POSIX getopts() and GNU getopt().
184 - Long options are now available on GNU and non-GNU systems.
185 - Get rid of POSIX getopts() and GNU getopt().
186 - the `-W--longopt' construct is now obsolete; remove it.
187 - add test/function for `unset'.
188 - Option strings are now implemented as `list's in order to
189 allow unusual characters in options.
190 - Parse $MANOPT first; translate essential arguments into
194 - determine prompt length for `.Shell_cmd'* dynamically.
195 - naming scheme for static strings and registers changed to
196 `namespace:macro.variable'.
199 2002-06-16 Werner Lemberg <wl@gnu.org>
202 Implement man option `--ascii' by `-mtty-char'.
205 2002-05-31 Werner LEMBERG <wl@gnu.org>
207 * groffer.man (@.Shell_cmd_width):
208 Increase to 4m (we use `sh#' as the prompt).
211 2002-05-31 Bernd Warken <bwarken@mayn.de>
212 ________________________________________________________________
213 * release of groffer 0.7
215 * groffer.sh: remove incompatibilities with the `ash' shell:
216 - do not use `!command':
218 -> write `_not_' equivalents for some functions
219 - do not use `[^]' in `case':
220 -> restructure some functions.
221 - only single-character names for loop variables:
222 -> spoils the paradigm of leading `_' for local variables.
223 - spurious trouble with `for i in ${var}':
224 -> use `eval set -- ${var}' and `for i in "$@"'
225 - do not change or use $IFS:
226 -> define new functions string_split() and `path_split()'.
227 -> result must be processed by `eval set --'.
228 -> solve conflicts with existing positional parameters.
229 - trouble with exporting external `$GROFF_*' variables:
230 -> hope that they were exported in the calling shell.
231 - not smart about additional blanks:
232 -> remove unnecessary white space.
234 * groffer.sh: improve run-time speed:
235 - `ash' more than doubles the speed of `bash'.
236 - speed-up `man_setup()'.
239 2002-05-30 Werner Lemberg <wl@gnu.org>
242 - remove some wrong `\:'.
243 - rename macro names that start with a `[' (clashes with refer).
247 2002-05-28 Bernd Warken <bwarken@mayn.de>
248 ________________________________________________________________
249 * release of groffer 0.6
251 This is almost a complete rewrite since groffer 0.5 .
252 ________________________________________________________________
256 - Apply the changes done in www.tmac (.URL and .MTO)
257 - Replace \fP by \f[].
258 - Redesign and rewrite most macros.
259 - Include the documentation for the new features.
260 - Greatly enlarge section ENVIRONMENT
264 - Start a TODO file with several sections.
267 Due to the many changes, shorten and rearrange the entries
269 ________________________________________________________________
270 * Shell compatibility
273 - Due to possible conflicts in old BSD versions, `[]' was
274 replaced by `test'; the `test' options `-a' and `-o' were
275 replaced by multiple calls of `test'.
276 - Write interface to the `sed' command `s' to become
277 independent of the delimiter character. Rewrite all text
278 manipulating function to use this new scheme. The new
279 functions are named `string_*'.
280 - `tr' is not needed any longer, replaced by `sed'.
281 - `grep' is not needed any longer, mostly replaced by `case'.
282 - Revision of test for `getopt'.
283 - Remove `set -a'; explicitly export variables.
284 - The only external programs used are POSIX `sed' and the
285 fallback to `apropos'. All other program calls were
286 replaced by shell builtins and functions.
288 ________________________________________________________________
292 - Implement a prefix based naming scheme for local variables
293 and functions (OOP-like).
294 - Introduce variables for white space (better readability with
296 - Store the names of the processed filespecs into a variable
297 instead of a temporary file.
298 - Error-prone shell constructions were replaced by functions
299 with a simple interface.
300 - To avoid too long pipes, replace supercat() by do_fileargs();
301 every input file is handled independently.
303 ________________________________________________________________
305 - Add support for more X devices (e.g. X75-12 and X100-12).
306 - Add long option `--intermediate_output' to `-Z'.
307 - Make the options for mode selection clobber each other.
308 - Add option `--mode' with an argument having the following
310 `X': force displaying in X, same as options `-X';
311 `tty': display with a pager on text terminal; same as `--tty';
312 `source', `default', `auto', etc.
313 - Make the handling of the X mode like in groff (e.g. -X -Tps).
314 - Make resolution for gxditview behave like groff (default
316 - Add environment variable $GROFFER_OPT to preset groffer
319 ________________________________________________________________
320 * implement most of the functionality of GNU `man'.
322 - Add all `man' long options to groffer.
323 - Add all `man' environment variables.
324 - Parse and use content of `$MANOPT'.
325 - The precedence of the options and environment variables
326 is regulated like in GNU `man'.
327 - Force the option `--manpath' to have a colon-separated
328 argument like GNU `man'.
329 - Support `man section name' calling convention.
330 - Remove all dependencies on `man -w'.
333 - Add the new features above.
334 - Rewrite the search algorithm for man pages.
335 - Remove searching with `man -w' (problems with space
336 characters in file names).
337 - Fix and complement usage().
338 - The filespec parsers gets a function of its own do_manpage().
341 2002-01-08 Bernd Warken <bwarken@mayn.de>
343 * groffer 0.5 (beta) released
346 - Fix hyphenation problems with macros describing options.
347 - Fix the handling of some `-' characters.
348 - Examples of shell commands now print in font CR instead of CB.
349 - Remove documentation for option `-X'.
350 - Add documentation for option `--dpi'.
353 - New method for creating temporary files, based on process
354 IDs. This is reliable enough and suitable for GNU and POSIX.
355 - Run gxditview in a new shell instantiation for having a clean
356 handling of the temporary files when running in the
358 - Revision of the retrieving method for the window title.
359 - Empty input is now tolerated.
360 - Export the variables that are set before the call of `set -a'.
361 - Function usage() corrected and updated.
362 - Unnecessary stuff removed.
364 - Pass option `-X' to groff, i.e. force X output with 75 dpi.
365 - Implement option `--dpi' for setting the resolution for the X
366 viewer, which had already been documented in earlier versions.
368 2002-01-07 Bernd Warken <bwarken@mayn.de>
370 * groffer 0.4 (beta) released (as groff `contrib')
373 - New features documented.
374 - Macros stream-lined.
375 - Section EXAMPLES added.
378 - System tests added/optimized.
379 - Speed/memory optimizations by defining some shell functions
380 alternatively depending on the text results.
381 - Use `gzip' for decompression instead of `zcat'.
382 - Signal handling added for clean exiting by `trap'.
383 - Temporary files exist only as long as necessary.
384 - Setup of path for man-pages moved after the option parsing.
385 - Fixed a bug in determining the path for man-pages.
386 - Fixed a bug in the handling of non-groffer options.
389 - New option --tty for forcing paging on text terminal.
390 - New option --no-man for disabling the man-page feature.
391 - Implement reserved POSIX -W feature to simulate long options.
392 - gxditview is now run as a background process.
394 2002-01-05 Werner LEMBERG <wl@gnu.org>
396 * Integrate groffer into groff's `contrib' tree.
398 * Makefile: Replaced by...
399 Makefile.sub: New file.
401 * groffer: Replaced by...
402 groffer.sh: New file.
404 * groffer.man (OptDef): Add missing backslashes.
407 2001-12-15 Bernd Warken <bwarken@mayn.de>
409 * groffer 0.3 (alpha) released (still stand-alone package).
411 * GNU and POSIX are supported (POSIX without long options).
413 * New options : --man, --mandb, --title, --xrdb
415 * Support for command line arguments with embedded single space
416 characters (GNU only) .
418 * Several search methods for man-pages when no `man -w' is
419 available ($MANPATH, mandb, a default path).
421 * Language support for man-pages.
423 * Recognize the following filespecs as man-page parameters:
424 man:name(section), man:name, name.section, name.
426 2001-12-03 Bernd Warken <bwarken@mayn.de>
428 * Stand-alone package for groffer 0.2 (alpha) created
429 Files: groffer, groffer.man, Makefile, TODO, ChangeLog
431 2001-12-02 Bernd Warken <bwarken@mayn.de>
433 * groffer 0.2 (alpha) program released.
435 * Name changed from `groffview' to `groffer'.
439 * Name changed from `groffview' to `groffer'.
441 * Options harmonized with groff.
442 New options : -Q --source, -T --device, -X .
443 Other options known from groff are passed unchanged.
445 * 100 dpi as default, 75 dpi only in emergency situations.
447 * Bugs with temporary files fixed.
449 * Code restructured and comments added.
451 2001-11-28 Bernd Warken <bwarken@mayn.de>
453 ***** groffview 0.1 (experimental) and groffview.man released
454 (predecessor of groffer, shell script)
456 * Options : -h --help, -v --version
458 * Search for man-pages based on $MANPATH
460 * development of `groffview' shell script started