PageRenderTime 76ms CodeModel.GetById 35ms app.highlight 14ms RepoModel.GetById 1ms app.codeStats 1ms

/contrib/groff/contrib/groffer/ChangeLog

https://bitbucket.org/freebsd/freebsd-head/
#! | 1546 lines | 1234 code | 312 blank | 0 comment | 0 complexity | 025501c464867933ef55229d9c9af375 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1	________________________________________________________________
   2	* release of groffer 0.9.22
   3
   42005-22-04  Bernd Warken
   5
   6	### `--whatis'
   7
   8	Produce a `groff' output and allow wild cards on filespec
   9	parameters for `--whatis'.
  10
  11	* groffer2.sh:
  12	- $_FILESPEC_ARG: New variable for storing the actual filespec
  13	parameter.
  14	- main_do_fileargs(): Set $_FILESPEC_ARG and add
  15	what_is_filespec().
  16        - main_parse_args(): Add --all to --whatis.
  17	- to_tmp_line(): New function to write the arguments to the
  18	temorary cat file.
  19	- whatis_filename(): Rename of what_is().  Construct a better
  20	printout using $_FILESPEC_ARG.  Repair the sed sequneces.
  21	- whatis_filespec(): New function to print the filespec once
  22	during the `whatis' process.
  23	- whatis_header(): New funtion for printing the header of the
  24	`whatis' output.
  25
  26	* groffer.man: Revise the documentation of --whatis.
  27
  28	### `--apropos*'
  29
  30	Produce `groff' for `--apropos*'.  Allow `--sections' for
  31	`--apropos', ignore it  with `--apropos-*'.
  32
  33	* groffer2.sh:
  34	- --apropos*: Make these options without argument.
  35	- $_APROPOS_PROG: New variable for the program that is is used for
  36	`apropos'.
  37	- $_APROPOS_SECTIONS: New variable to determine the sections that
  38	are filtered out of `apropos' output depending on `--apropos-*'.
  39	- apropos_filespec(): Handling of apropos at the filespec level.
  40	- apropos_run(): Remove it.
  41	- apropos_setup(): New function.
  42	- main_set_mode(): Remove handling of $_OPT_APROPOS*.
  43
  44	* groffer.man:
  45	- Revise the documentation of `--apropos*'.
  46	- Split section 'options for GNU man' into two sections `options
  47	for man pages' and `long options taken over from GNU man'.
  48	- Move `--apropos*', `--whatis', `--man', and `--no-man' to
  49	section `options for man pages'.
  50
  51	### special display (apropos and whatis)
  52
  53	* groffer2.sh:
  54	- special_setup(): New function that chooses the setup between
  55	apropos and whatis.
  56	- special_filespec(): New function that does the output at the
  57	filespec level for apropos or whatis.
  58
  59	### handle `--sections' for man page searching
  60
  61	* groffer2.sh:
  62	- man_do_filespec(): Use $_OPT_SECTIONS of --sections instead of
  63	$_MAN_AUTO_SEC if non-empty.  If a section was given on the
  64	filespec parameter $_OPT_SECTIONS is ignored.  This differs from
  65	`man' which always uses the restricted sections of --sections.
  66	This function works for both normal man page search and whatis.
  67	- apropos_filespec(): Use --sections for --apropos, but not for
  68	--apropos-* because these provide already their own sections.
  69
  70	### wildcards in filespec arguments
  71
  72	* groffer2.sh: Wildcards are now accepted.  In `--apropos*' and
  73	`--whatis' they are interpreted as wildcard search elements; but
  74	in normal display they are only handled as their own character.
  75
  76	### development; new option
  77
  78	* groffer2.sh:
  79	- --print: New option that prints just its argument for parameter
  80	check.
  81	- usage(): Add new option.
  82	- $_OPT_DO_NOTHING: New variable for do_nothing().  Handle it at
  83	the end of main_parse_Args().
  84
  85	* groffer.man: Add information on --print.
  86
  87	### safe exit
  88
  89	* groffer2.sh:
  90	- error(): Always exit with $_ERROR.
  91	- exit_test(): New function to exit when first exit was hidden by
  92	().  Call it after each $().
  93
  94	### automatic shell determination
  95
  96	* groffer.sh:
  97	- If no option --shell is given perform a test of several shells
  98	to automatically start some shell for groffer2.sh.  `ksh' is used
  99	first because it can be safely terminated by Ctrl-C.
 100	- This can be cancelled by providing --shell=''.
 101	- Add test on `sed' program.
 102
 103	* groffer.man: Revise information on --shell.
 104
 105	### trap
 106
 107	* groffer2.sh:
 108	- trap_set(): Remove argument.  Instead of $_ALL_EXIT use only
 109	signal 0.
 110	- trap_unset(): Rename trap_clean().  Instead of $_ALL_EXIT use
 111	only signal 0.
 112	- $_ALL_EXIT: Remove this variable.
 113	- Replace all direct `trap' calls by trap_set().
 114	
 115	* README_SH: New section `Bugs' on `trap'..
 116
 117	### user errors, error output without function stack
 118
 119	* groffer2.sh:
 120	- error_user(): New function for user errors.
 121	- error(): Remove call of clean_up() because the trap will do it
 122	with the exit.  Remove the `kill' commands.  Create a temporary
 123	file `.error' that can be tested by exit_test() for a better exit
 124	test (especially for shell `ksh').
 125	- $_DEBUG_USER_WITH_STACK: New variable to enable function stack
 126	output in error_user().
 127	- list_from_cmdline(), list_single_from_abbrev(), main_set_mode():
 128	Use error_user().
 129
 130	### test modes on X and tty
 131
 132	* groffer2,sh:
 133	- is_X(), is_not_X(): New functions for checking on X Window.
 134	- $_VIEWER_HTML_TTY, $_VIEWER_HTML_X: New variables that split
 135	$_VIEWER_HTML.  Add `galeon'.
 136	- main_parse_args(): Allow mode change for graphical modes only
 137	when in X Window.
 138	- _do_display() of main_display(): Create a special run for
 139	viewers that run on the terminal; `lynx' is the only one so far.
 140
 141	### add $GROFFER_MODE to command line
 142
 143	* groffer.sh:
 144	- After the handling of the configuration files integrate
 145	$GROFFER_OPT to the command line.
 146	- This makes a `set' in the shell determination unnecessary.
 147
 148	* groffer2.sh:
 149	- The debug test gets simpler because quotes are vanished without
 150	$GROFFER_OPT.
 151	- main_parse_MANOPT(): Prepend $mpm_list to the command line.
 152	- main_parse_args(): `set' is unnecessary.
 153
 154	### debug; new options
 155
 156	* groffer2.sh:
 157	- --debug-all, --debug-lm, --debug-params, --debug-shell,
 158	--debug-stacks, --debug-tmpdir, --debug-user: New options.
 159	- --debug: Enable all debug variables except $_DEBUG_STACKS and
 160	$_DEBUG_LM.  By the new options the smallest abbreviation is now
 161	`--debug'.
 162	- $_DEBUG_STACKS: Rename $_DEBUG.
 163	- $_DEBUG_PRINT_TMPDIR: New debug variable for printing the name
 164	of the temporary directory in main_init().
 165	- $_OPT_DEBUG: Remove this variable because debug is handled at
 166	the early part of the script.
 167	- clean_up(): Enlarge $_DEBUG_KEEP_FILES to not deleting the
 168	temporary directory.
 169	- usage(): Move all development options on a section of its own.
 170	- Move the test of rudimentary shell functionality at the
 171	beginning of the script.  Add test on `sed'.
 172	- Follow this by the debug section.  The determination of all
 173	--debug* options can be done without a function.
 174
 175	* groffer.man: Revise information on --debug and add new options.
 176
 177	### variables
 178
 179	* groffer.sh:
 180	- $_ERROR: Move the definition of this variable here.
 181	- $_GROFF_VERSION: New variable, is set over @...@ construct.
 182	- $_OUTPUT_FILE_NAME: Move this variable to groffer2.sh.
 183
 184	* groffer2.sh:
 185	- $_MAN_AUTO_SEC_LIST: Rename $_MAN_AUTO_SEC because it represents
 186	a list.
 187	- $_MAN_AUTO_SEC_CHARS: New read-only variable for storing
 188	$_MAN_AUTO_SEC_LIST in [] construct.  Use it in man_do_filespec()
 189	and whatis_filename().
 190	- $_SPACE_CASE: New read-only variable with [] on space characters
 191	with \ for `case' patterns.  Use it in several functions.
 192	- $_SPACE_SED: New read-only variable with [] on space characters
 193	for `sed'.  Use it in several functions.
 194
 195	### options and display
 196
 197	* groffer2.sh:
 198	- list_from_cmdline(): Add test whether the same abbreviation is
 199	part of long options with and without arguments.  Give handling of
 200	`=' a `case' pattern of its own.
 201	- main_display(): Remove unnecessary calls of `clean_up' in order
 202	to use `mozilla' without problems.  In _do_display(): Fix -X by
 203	providing a different process when $_DISPLAY_PROG is empty.
 204	- main_set_mode(): Accept options for viewers as is, without check
 205	for program.  Add test whether no program is given for a mode.
 206	This avoids unnecessary empty $_DISPLAY_PROG in main_display().
 207
 208	### viewer programs that run on the terminal (tty); new options
 209
 210	* groffer2.sh:
 211	- $_VIEWER_TERMINAL: New variable that stores whether a viewer was
 212	supposed to run on tty.
 213	- --dvi-viewer-tty, --html-viewer-tty, --pdf-viewer-tty,
 214	--ps-viewer-tty, --tty-viewer-tty, --X-viewer-tty, --x-viewer-tty,
 215	--www-viewer-tty: New options for viewers that run on a terminal.
 216	- main_parse_args(), _do_display() of main_display(): Use the new
 217	options and the new variable.
 218	- usage(): Add the new options.
 219
 220	* groffer.man: Add information on options --*-viewer-tty.
 221
 222	### other fixes
 223
 224	* groffer2.sh:
 225	- _do_display() of main_display(): Bear errors of `groff' run.
 226	- is_not_file: Fix to have exactly one argument.
 227	- is_not_prog(): Handle no arguments.
 228	- list_has_not(): Fix.
 229	- main_do_fileargs(): Remove $mdfa_exitcode.
 230	- register_title(): Limit title to 4 elements.
 231	- version(): Print the version information to standard output just
 232	like `groff' does.
 233	- --no-special: New option to disable former calls of `--all',
 234	`--apropos*', and `whatis.
 235	- --title: Make it an option with argument.
 236
 2372005-08-07  Keith Marshall  <keith.d.marshall@ntlworld.com>
 238
 239	* contrib/groffer/Makefile.sub (install): Reference groffer2.sh
 240	as $(srcdir)/groffer2.sh, so it will install when building in a
 241	different directory from the source.
 242
 243	________________________________________________________________
 244	* release of groffer 0.9.21
 245
 2462005-08-02  Bernd Warken
 247
 248	### @...@ constructs
 249
 250	* groffer.sh:
 251	- $_AT: New variable for `@'.
 252	- @...@: Replace the @...@ constructs by variables _AT_..._AT.
 253	These constructs are transformed by `make' to useful information.
 254	Keep all of these constructs in the first part of groffer.sh.  For
 255	a run before a `make' call, the script sets these variables to
 256	special values for testing purpose.
 257	- $_GROFFER_LIBDIR: Variable pointing to the groffer library
 258	directory @libdir@/groff/groffer.
 259
 260	### Configuration files
 261
 262	* groffer.sh:
 263	- Add test for `$()' construct.
 264	- Read and transform the configuration files and execute the
 265	emerging commands.  The `sed' script was heavily enlarged to
 266	handle line with spaces and quotes.  The emerging script is now
 267	called by `eval', so no temporary file is needed.
 268	- $_CONF_FILE_ETC, $_CONF_FILE_HOME: New variables for the config
 269	files.
 270	- $_SQ, $_SP: Move variables for characters before the handling of
 271	the configuration files.  Rename $_SQUOTE to $_SQ and $_SPACE to
 272	$_SP.
 273	- $GROFFER_OPT: Remove cleaning of this variable before the
 274	reading of the configuration files.
 275
 276	* groffer2.sh:
 277	- main_init(): Remove the getting of the configuration files.
 278
 279	### Rewrite the shell determination
 280
 281	* groffer.sh:
 282	- Get rid of all functions in `groffer.sh'.  Rewrite the shell
 283	determination with `` and $().
 284	- --shell: Shortest abbreviation is `--sh'.  Allow arguments for
 285	the shell name.
 286	- Allow an empty argument for --shell as shell name to overwrite a
 287	specified shell; an empty shell name gets back to the default
 288	shell.
 289	- The shell determination now inludes the full handling of the
 290	config files.  The `--shell' option needs no longer a line
 291	starting with `-'.
 292
 293	### Test of unset
 294
 295	* groffer.sh:
 296	- Remove test of `unset'.
 297	- Remove all calls of `unset'.
 298	- Use one character names for all variables that are meant to be
 299	local in this script.
 300
 301	* groffer2.sh:
 302	- Move the test of `unset' to the testing of rudimentary shell
 303	functionality without change.
 304
 305        ### Allow abbreviations for long options
 306
 307	* groffer2.sh:
 308	- list_has_abbrev(): New function for checking a list having an
 309	element with a given abbreviation.
 310	- list_get_single_from_abbrev(): New function to retrieve the
 311	element having a given abbreviation.
 312	- list_from_cmd_line(): For an option abbreviation determine the
 313	corresponding long option.
 314	- From the man option lists remove the elements that are also in
 315	a groffer list.
 316	- Allow abbreviation for the early test of --debug.
 317
 318	* groffer.sh: Allow abbreviation for the early test on --shell.
 319	- get_opt_shell(): Rewrite _get_opt_shell() and the shell test
 320	around it.
 321	- test_on_shell(): Rename function _test_on_shell().
 322	- $_SHELL: global variable for the shell to run groffer2.sh.
 323
 324	### Get rid of `sh -c'
 325
 326	* groffer2.sh:
 327	- main_display(), _do_display(): Remove the `sh -c' calls.  Make
 328	the cleanup working without it.
 329	- _do_display(): Extend _do_display() such that	it can be used for
 330	the pdf mode as well.
 331	- _make_pdf(): New subfunction of main_display() for running the
 332	additional parts of pdf mode in _do_display().
 333	- rm_file(), rm_file_with_debug(), rm_tree(): New functions for
 334	removing files and directories.
 335
 336	### Change directory
 337
 338	* groffer2.sh:
 339	- $_START_DIR: New variable to store the directory at the starting
 340	time of the script.
 341	- main_display(): Go to the groffer temporary directory to be able
 342	to process internal `groff' data like pictures.
 343	- clean_up(): Get back to the starting directory.
 344
 345	### Compatibility with strange shells
 346
 347	* groffer2.sh:
 348	- clean_up(): `zsh' and `posh' had difficulties with `eval'.
 349	- is_*(): Add test on empty argument.  Some shells return true on
 350	`test -d' etc. with empty argument, while most shells return
 351	false.
 352	- echo1(); New function to print single line `cat <<EOF'.  Replace
 353	all `echo x' by `echo1'.
 354	- list_has_abbrev(), list_from_cmdline(): Correction.
 355	- main_parse_MANOPT(): Repair and revise.
 356	- --do-nothing: New option without output (for development).
 357	- Rewrite rudimentary shell functionality near the beginning of
 358	the script.
 359
 360	* groffer.sh, groffer2.sh:
 361	- Remove `;' after the commands `if', `while', and `until'.
 362
 363	### Debugging information
 364
 365	* groffer2.sh:
 366	- $_DEBUG_PRINT_PARAMS: New variable for printing all parameters
 367	from the config files, $GROFFER_OPT, and command line after they
 368	have been transformed.
 369	- $_DEBUG_PRINT_SHELL: New variable for printing the name of the
 370	shell found in groff.sh.
 371	- main(): Move the landmarks of main-*() into main().
 372
 373	### Further checks and additions
 374
 375	* groffer.sh, groffer2.sh:
 376	- $_PROGRAM_NAME: Replace this variable by `groffer'.  The program
 377	name is now stable.
 378	- $_GROFFER_RUN: Remove this variable.  As `groffer.sh' or
 379	`groffer' is no longer rerun, this variable is not necessary any
 380	more.
 381
 382	* groffer2.sh:
 383	- main_set_resources(): Make the default viewers capable to use
 384	arguments in the list.
 385	- leave(): Add an argument for given exit code.  Use it where
 386	suitable in main_*().
 387	- do_filearg(): Add error messages for non-existing files and man
 388	pages.
 389	- _do_opt_V(): New subfunction of main_display() to handle the
 390	output for option `-V'.  `groff -V' is greatly enlarged by
 391	`groffer' specific information.
 392	- register_title(): Handle file names with spaces.  Replace spaces
 393	by `_'.
 394	- is_existing(): Add `test -c' for special files.
 395	- usage(): Add `=arg' to the options with an argument.  Add option
 396	`--tty-viewer'.
 397	- kghostview: In the default viewer list, add option
 398	`--scale=1.45'.
 399	- $_OPTS_CMDLINE_SHORT_NA: Correct a lacking space.
 400
 401	* Makefile.sub: Repair the installation instructions for
 402	groffer2.sh.
 403
 404	* groffer.man:
 405	- Add paragraph on option handling.
 406	- Add option `--do-nothing'.
 407	- Reorder option for development and `groff'.
 408	- Rewrite documentation for option `-V'.
 409	- Expand `--shell'.
 410	- Reformulate sections CONFIGURATION FILES, COMPATIBILITY and SEE
 411	ALSO.
 412	- Make `man' italic where possible.
 413	- .copyleft: Adjust the fonts.
 414
 415	* README: Update sections `Output' and `Compatibility'.
 416
 417	* README_SH:
 418	- Add `mksh' as compatible shell.
 419	- Add information on the scripts after the split.
 420
 421	* TODO: Remove some fulfilled parts.
 422
 423	* ChangeLog: Remove final spaces.
 424
 425	________________________________________________________________
 426	* release of groffer 0.9.20
 427
 4282005-07-30  Bernd Warken
 429
 430	### Split groffer.sh into two files groffer.sh and groffer2.sh.
 431
 432	* groffer.sh:
 433	- Remove the second part of this script.  It is now in
 434	groffer2.sh.
 435	- $_GROFFER2_SH: New variable to point to the installed position
 436	of `groffer2.sh'.  This position is presented using @libdir@.
 437
 438	* groffer2.sh: New script containing the second part of
 439	groffer.sh. This script will be installed in the groffer library
 440	directory @libdir@/groff/groffer, this might be
 441	/usr/local/lib/groff/groffer/groffer2.sh for example.
 442
 443	* Makefile.sub:
 444	- `groffer': Add replacement of @libdir@.
 445	- `install_data': Add the installation of the groffer library
 446	directory and groffer2.sh.
 447	- `uninstall_sub': Delete the installed `groffer2.sh' and the
 448	groffer library directory.
 449
 450	* README_SH:
 451	- Remove the function list.
 452	- Add argument options to the list of used commands.
 453	- Documentation of the splitting of the script.
 454	- Document the possible abbreviation of options.
 455
 456	________________________________________________________________
 457	* release of groffer 0.9.19
 458
 4592005-07-07  Bernd Warken
 460
 461	* groffer.sh: extensions
 462	- `mode x': Mode for the equivalent options `--x', `--mode x',
 463	`--X' `--mode X', and the default mode.  The default assumes a
 464	resolution of 75 dpi.  The default device for a resolution of 75
 465	dpi is `X75-12', the default device for a resolution of 100 dpi is
 466	`X100'.  The default geometry for the resolution of 100 dpi is set
 467	to the width 800 dpi.
 468	- `mode X': New mode for option -X only.
 469	- `-V': Extent the `groff' output of -V by `groffer' specific
 470	information (in main_display()).
 471	- register_file(): Replace title `-' by `stdin'.
 472	- $_DEBUG_KEEP_FILES: If set to `yes' the files in the temporary
 473	directory are not deleted before the end trap.
 474
 475	* groffer.sh: get `zsh' to work as well
 476	- tmp_create(): Use `: >file' for generating an empty file.
 477	- rmdir: Replace `rmdir' by `rm -f -r'.
 478	- eval: Add `eval' to many commands with variable arguments.
 479
 480	* groffer.sh: repair `debug'
 481	- Print all debug output to stderr.
 482	- $_FUNC_STACK: Built function call stack even when $_DEBUG is not
 483	set.  Now the arguments are not added.
 484	- $_DEBUG: If set to `yes' print 3 call stack events: the function
 485	that is added with its arguments is printed with `+++ '
 486	(func_push()); the call stack after the addition is printed with
 487	`>>> ' (func_push()); the call stack after the removing is printed
 488	with `<<< ' (func_pop()).
 489	- error(): Always print the function call stack on errors.
 490
 491	* groffer.sh: Corrections
 492	- $_groffer_run: Rename to $_GROFFER_RUN.
 493	- $unset: Rename to $_UNSET.
 494	- Repair test of `unset'.
 495	- Repair test for `--shell'.  The script is now rerun under the
 496	shell specified in the option argument.  This can increase the
 497	speed.
 498
 499	* README_SH: `zsh' now works.
 500
 501	* groffer.man:
 502	- Reformulate the information for the `groffer' specific details
 503	of option `-V'.
 504	- Add information on the debug process.
 505	- Add information on the default devices in `x mode'.
 506	- Minor corrections.
 507
 508	________________________________________________________________
 509	* release of groffer 0.9.18
 510
 5112005-07-01  Bernd Warken
 512
 513	* groffer.sh: further shell compatibility
 514	- `echo': Remove options and possible options of `echo' by
 515	preceding the argument with a character `x' that is removed by
 516	`sed' or replace `echo' by `cat <<EOF'.  `echo -n' seems to be not
 517	portable, so it is omitted.
 518	- `for': Remove `;' from within `for' (because of ksh).
 519	- `ls': Old UNIX systems echoed the error message to standard
 520	output.  So handle the output with `sed'.  If the output contains
 521	`not found' map it to an empty string.
 522	- `true': Replace `true' by command `:'.  Remove test of `true'
 523	(because `ash' refuses the redefinition of builtins even in an
 524	unreachable `if' branch).
 525	- `false': Remove test of `false'; it isn't used any more.
 526	- `test': As `test -e' does not exist in Solaris 2.5 replace it by
 527	`test -f || test -d'.
 528	- `unset': `unset' is said to be not portable.  As `ash' protests
 529	against the definition of the function `unset()' in the test of
 530	`unset' replace the test by defining `$unset' to `unset' if it
 531	exists and to `:' otherwise.  Use `eval $unset' instead of the
 532	direct command `unset'.
 533	- _get_opt_shell(): Replace `for' loop with `shift' by `while'.
 534	- man_search_section(): Replace `for f in filename*' by a test on
 535	the existence of `filename*'.
 536	- `zsh' interprets `$...'  as `"$..."'.  So `eval' must be called;
 537	This cannot be used in `for i in $f', so it must be rewritten as
 538	`for i in $(eval set x $f; shift; echo "$@")'
 539
 540	* groffer.sh:
 541	- `--X', `--x', `--mode=X', `--mode=x': Make these options
 542	equivalent to choosing an X device by setting `-TX75-12'.  `-X' is
 543	still equivalent to `groff -X'.
 544	- main_init(): Choose the name of the temporary file by adding a
 545	number using `expr' if it exists and cannot be removed.
 546	- main_parse_args():Repair some options by replacing `$mpa_mode'
 547	by `$_OPT_MODE'.
 548	- catz(): Rename it to cat_z() to avoid problem with existing
 549	programs.
 550	- where(): Rename to where_is().
 551	- $_CONFFILES: Rename to $_CONF_FILES.
 552	- $_HAS_BZIP: export and preset it.
 553
 554	* groffer.man:
 555	- Document the `X mode' changes.
 556	- Add `@g@' to `troff'.
 557
 558	* README, README_SH, TODO:
 559	- Add date line `Latest update:'.
 560	- Add `...' quoting to essential terms.
 561	- Add Emacs mode at the end.
 562
 563	* README_SH:
 564	- Add documentation on the above compatibility changes.
 565	- Add documentation on used commands.
 566	- Mention the tested shells.
 567
 568	* Makefile.sub:
 569	Readd `@g@'.
 570
 571	________________________________________________________________
 572	* release of groffer 0.9.17
 573
 5742005-06-23  Bernd Warken
 575
 576	* groffer.sh: get rid of `local' in functions (it is not POSIX)
 577	- Replace local variables by variable names with a special prefix
 578	that is an abbreviation of the corresponding function name (quasi-
 579	local variables).
 580	- Unset the quasi-local function variables before returning.
 581	- _t_e_s_t_f_u_n_c_(): Remove tests for local and global
 582	variables.
 583	- Add quasi-local variables for saving the content of
 584	single-character variables.
 585	- Remove some unused local and global variables.
 586	- Several variables were forgotten to make local.  They are now
 587	made quasi-local.
 588
 589	* groffer.sh: other corrections
 590	- $return_var: New function (after `eval') for an arbitrary
 591	return value.
 592	- obj*(): Add return modes.
 593	- Rewrite tests for `true' and `false'.
 594	- Add function names to error calls where it was forgotten.
 595	- `for': Replace `for x in "$@"' by `for x'.
 596	- `set': Replace `set -- ...' by `set x ...; shift'.
 597	- `sed': Replace `\|.*|s|...|...|' by `s|...|...|'.
 598
 599	* README_SH:
 600	- Add information on the removing of `local'.
 601	- New section for non-POSIX shell restrictions.
 602
 6032005-06-20 Keith Marshall
 604
 605	* README-SH: Information of `Portable shells' in info autoconf.
 606
 607	________________________________________________________________
 608	* release of groffer 0.9.16
 609
 6102005-06-19  Bernd Warken
 611
 612	* groffer.sh: Place each `then', `else', and `do' on a line of its
 613	own because some shells do not support the mixture mode.
 614
 615	* groffer.man: Add section `BUGS'.
 616
 617	* README_SH:
 618	- Add compatibility information.
 619	- Correct documentation for function arguments.
 620
 6212005-06-18  Keith Marshall
 622
 623	* groffer.sh: $_NULL_DEV: Replace /dev/null by $_NULL_DEV which is
 624	either /dev/null or NUL if /dev/null does not exist.
 625
 6262005-06-17  Zvezdan Petkovic
 627
 628	* Makefile.sub: $(RM): Define it to `rm -f' because not all `make'
 629	programs have it predefined.
 630
 6312005-06-16  Bernd Warken
 632	________________________________________________________________
 633	* release of groffer 0.9.15
 634
 635	* Makefile.sub:
 636	- Use `$(RM)'.
 637	- Use `sed -f $(SH_DEPS_SED_SCRIPT)'.
 638
 6392005-05-20  Bernd Warken
 640	________________________________________________________________
 641	* release of groffer 0.9.14
 642
 643	* groffer.man: correction of non-hyphenation
 644
 6452005-05-17  Bernd Warken
 646	________________________________________________________________
 647	* release of groffer 0.9.13
 648
 649	* groffer.sh:
 650	- $_VIEWER_DVI: Add `kdvi'.
 651	- $_VIEWER_PDF: Add `kghostview', `ggv', and `kpdf'.
 652	- $_VIEWER_PS: Add `kghostview' and `ggv'.
 653	- $_modefile: For the output file name, add extension .ps for ps
 654	mode and .dvi for dvi mode.  This exists already for the html and
 655	pdf modes.
 656	- Update some parts of the documentation.
 657
 658	* README, README_SH:
 659	- Move some parts on usage from README_SH to README.
 660	- Reformulate several parts of both files.
 661
 662	* groffer.man: update
 663
 6642005-05-14  Keith Marshall
 665
 666	* groffer.sh:
 667	- first line: Add space to `#! /bin/sh'.
 668
 6692004-11-15  Bernd Warken
 670	________________________________________________________________
 671	* release of groffer 0.9.12
 672
 673	* groffer.sh:
 674	- main_init(): Rewriting of the creation of the temporary
 675	directory to ensure that it cannot be made writable apart from the
 676	user.  If the directory already exists and cannot be removed then
 677	append `X' to the directory name.
 678	- is_non_empty_file(): fix it to use POSIX `test -s'.
 679	- is_existing(): new function.
 680	- POSIX `rm -f -r': use this in `clean_up()' and `main_init()'.
 681	- `--macro-file': remove this unused long option.
 682	- `-V', `--source', `--device': move these from groff options
 683	to groffer options.
 684	- `$_TMP_DIR_SUB': remove this unused variable.
 685
 6862004-06-15  Bernd Warken
 687	________________________________________________________________
 688	* release of groffer 0.9.11
 689
 690	* groffer.sh:
 691	- To the search of the `--apropos-*' options, add man pages with a
 692	subsection in their apropos output.
 693
 6942004-06-02  Bernd Warken
 695	________________________________________________________________
 696	* release of groffer 0.9.10
 697
 698	* groffer.sh:
 699	- Remove automatic call of `ash' due to inconsistencies of
 700	different ash versions.
 701	- In the first run, add recognition of `--shell' lines in the
 702	groffer configuration files.  To configure an external shell in
 703	a configuration file, a line starting with `--shell' is
 704	necessary.
 705	- list_from_cmdline(): Simplify the arguments.
 706	- As $POSIXLY_CORRECT is internally set to `y' by some GNU
 707	`/bin/sh' shells the following 2 fixes are necessary:
 708	-- `sed': Empty patterns are not allowed with $POSIXLY_CORRECT
 709	set; so move the address information before the `s' command to the
 710	pattern after the command, and write `.*' to the address field.
 711	-- list_from_cmdline(): Remove the strange $POSIXLY_CORRECT style
 712	to finish the option processing after the first non-option
 713	argument; use the flexible GNU mixing of options and file names
 714	instead.
 715
 716	* groffer.man:
 717	- Remove any hints on `ash'.
 718	- Add minus line behavior of `--shell' for configuration and add a
 719	corresponding example.
 720	- Update the information on $POSIXLY_CORRECT.
 721
 7222004-05-29  Bernd Warken
 723	________________________________________________________________
 724	* release of groffer 0.9.9
 725
 726	* groffer.sh:
 727	Fix first run section to allow the starting shell to go on if
 728	`ash' is not available.
 729
 730	* groffer.man:
 731	Remove unnecessary information on groffer version.
 732
 7332004-05-12  Bernd Warken
 734	________________________________________________________________
 735	* release of groffer 0.9.8
 736
 737	* groffer.sh:
 738	Fix problems of `test' by adding subs to arguments.
 739
 740	* groffer.man:
 741	Write the file license as macros that are called in sections
 742	AUTHOR and COPYING.
 743
 744	* .cvsignore:
 745	Restore this file.
 746
 7472004-04-30  Bernd Warken
 748	________________________________________________________________
 749	* release of groffer 0.9.7
 750
 751	* groffer.sh:
 752	- obj(), obj_data(), obj_from_output(), obj_set(): New object
 753	oriented functions to minimize complicated `eval' commands.
 754	- list_*(): Corrections.
 755	- usage(): Streamlining.
 756
 757	* groffer.man, README_SH:
 758	Corrections.
 759
 7602004-04-27  Bernd Warken
 761	________________________________________________________________
 762	* release of groffer 0.9.6
 763
 764	This version replaces the license of all files except ChangeLog of
 765	the groffer source to the GNU General Public License (GPL) of the
 766	version described in files COPYING and LICENSE in the groff top
 767	source directory.
 768
 769	* groffer.man:
 770	Changement from the GNU Free Documentation License (FDL) to
 771	the GNU General Public License (GPL).
 772
 773	* README, README_SH, TODO:
 774	Add license GNU General Public License (GPL).
 775
 776	* Makefile.sub, groffer.sh:
 777	Keep the GNU General Public License (GPL), but refer to the
 778	COPYING and LICENSE files.
 779
 780	* ChangeLog: Add a license in the style of Emacs ChangeLog file,
 781	which is weaker than the GPL, but has its flavor.
 782
 7832004-04-24  Bernd Warken
 784	________________________________________________________________
 785	* release of groffer 0.9.5
 786
 787	This version is a rewrite of groffer in many parts, but it is kept
 788	in the old single script style.
 789
 790	Overview of new options:
 791	--text, --mode text, --tty-viewer,
 792	--X, --mode X, --X-viewer, --html, --mode html, --html-view,
 793	--apropos-data, --apropos-devel, --apropos-progs
 794
 795	New file:
 796	<groffer-source>/README_SH
 797
 798
 799	******* Extension of the `apropos' handling
 800
 801        The output of man's `apropos' has grown immensely meanwhile, so it
 802	has become inefficient.  Now `groffer' provides new options to get
 803	the a selected information from this output.
 804
 805	* groffer.sh:
 806        `--apropos-progs': new option for displaying only information
 807        on programs (man page sections 1, 6, and 8)
 808        `--apropos-data': new option for displaying only information
 809        on documented data (man page sections 4, 5 and 7)
 810        `--apropos-devel': new option for displaying only information
 811        on development documentation (man page sections 2, 3 and 9)
 812        `--apropos': still displays just the output of man's `apropos'
 813	program.
 814	- Specify all of these options as a single argument option; that
 815	makes groffer's `--apropos' option slightly different because
 816	the corresponding `man' option does not have arguments,	but takes
 817	all file arguments as apropos targets.  So just ignore the `man'
 818	options `-k' and `--apropos' in the parsing of $MANOPT.
 819	- Exit after processing one `apropos' call.
 820
 821
 822	******* Quasi object oriented function arguments
 823
 824	An object is the name of an environment variable.  The value of
 825	this variable contains the object's content.  This allows to
 826	specify function arguments and the calling syntax in a simpler way
 827	by letting the first argument be a variable name, usable for input
 828	or output.
 829
 830	Such an object type is `list', the string value of a shell
 831	variable arranged in space-separated single-quoted elements, such
 832	as $GROFFER_OPT internally.
 833
 834	* groffer.sh:
 835	- Remove list_from_args(), list_element_from_arg()
 836	list_from_lists(), list_length(), and list_prepend().
 837	They can be replaced by list_append().
 838	- All list*() functions are rearranged such that the first
 839	argument is a list object, the name of a variable.
 840
 841
 842	******* Simplification of configuration files
 843
 844	The new syntax of the groffer configuration files is
 845	- all lines starting with a `-' character are interpreted as
 846	command line options for all calls of groffer; they are collected
 847	and prepended to the actual value of $GROFFER_OPT; optional
 848	spaces at the beginning.of the line are omitted.
 849	- all other lines are interpreted as a shell command and executed
 850	in the current shell of the groffer call.
 851
 852	Precedence:
 853	- The command line and the external environment variables such as
 854	$GROFFER_OPT of the groffer call have the highest precedence.
 855	- This is overwritten by the configuration file in the user's home
 856	directory.
 857	- The system configuration file in /etc has the lowest
 858	precedence.
 859
 860	* groffer.sh:
 861	The configuration files are now called after the determination of
 862	the temporary files in main_init().
 863
 864
 865	******* Script file name
 866
 867	The file name of the script is needed for the several calls during
 868	the search for the optimal shell.
 869
 870	* groffer.sh:
 871	- $_GROFFER_SH: replace $_this by $_GROFFER_SH and use $0 for
 872	determining the file name of the script for the following calls,
 873	instead of the cumbersome @BINDIR@ construction.
 874	- Force the script to be called as an executable file, so $0 must
 875	contain the program name.
 876
 877
 878	******* Improved temporary file names
 879
 880	Just like groff, groffer mixes all file parameters into a single
 881	output file.  Its name is now constructed as a comma-separated
 882	list built from the file name arguments without a leading comma.
 883	So a leading comma can be used for the internal temporary file
 884	names.
 885
 886	* groffer.sh:
 887	- $_OUTPUT_FILE_NAME: new global variable as basis for the output
 888	file name; it is set in main_set_resources().
 889        - tmp_create(): use `,name' for temporary files different from
 890	output file because the output file name does not start with a
 891	comma.  `$$' is not needed anymore.
 892	- main_display(): simplification of $_modefile in _do_display()
 893	and single display modes.
 894	- Add extension `.html' to output file name in html mode.
 895	- base_name(): correction for strange positions of `/'.
 896
 897
 898	******* Mode fixes
 899
 900	* groffer.sh:
 901	- Set the main default mode to `x' with groff's	X Window viewer
 902	`gxditview'.
 903	- Allow 'x' and 'X' in `--mode' for the X Window mode; the same
 904	for `--x' and `X', `--x-viewer' and `--X-viewer'.
 905	- Make groff's `-X' equivalent to `mode X'.
 906	- Fix `--auto', `--mode auto',  and `--default-modes'.
 907	- `html' mode: new mode equivalent to `www', add `konqueror' and
 908	`lynx' as viewers.
 909	- `pdf' mode: fix zoom options for pdf-viewer `xpdf' in
 910	main_set_resources(); in main_display() fix the display structure.
 911	- Set default X Window resolution to 75dpi.  This is not optimal,
 912	but with a higher value the options and resources for some viewers
 913	must be optimized.
 914	`--text' and `--mode text': new option for text output without a
 915	pager.
 916	- `--tty-viewer': new option equivalent to `--pager'.
 917	- Correct the pagers for `tty' mode.
 918	- Fix `groff' mode in main_set_resources() and main_display().
 919	- Harmonize `--mode arg' with the equivalent options `--arg'.
 920
 921
 922	******* Fixes for command line options
 923
 924	* groffer.sh:
 925	- list_from_cmdline(): fix the parsing of options with arguments.
 926	- Rename $_OPT_TTY_DEVICE to $_OPT_TEXT_DEVICE.
 927	- $_OPTS_X_*: new variables for the inhereted X Window variables.
 928	- Improve the distribution of the command line options into
 929	$_OPTS_GROFFER_*, $_OPTS_GROFF_*, $_OPTS_X_*, and $_OPTS_MAN_*.
 930	- $_OPTS_MANOPT_*: new variables for the parsing of $MANOPT.
 931	- Correct $_OPTS_CMDLINE_*.
 932	- Remove some unused $_OPTS_*.
 933	- `--iconic': new option from `-iconic' of the X Window toolkit.
 934	- Correct `--rv' to an option without argument.
 935	- Minor fixes of other  X Window toolkit options.
 936
 937
 938	******* Other fixes
 939
 940	* groffer.sh:
 941	- is_prog(): allow 0 arguments.
 942	- is_not_writable(): new function.
 943	- is_*(): fix trailing return codes.
 944        - Replace most `test' calls by is_*() functions.
 945	- man_setup(): due to bugs in `manpath', prefer
 946	manpath_set_from_path() for the determination of the man page path.
 947	- man_search_section(): correction of some `for' loops.
 948	- Remove export of external non-groffer variables.
 949
 950
 951	******* Documentation
 952
 953	* groffer.man:
 954	- Reorder the option details according to the option origin as
 955	groffer, groff, X, and man options.
 956	- Add the programming changes information mentioned above.
 957	- Support man pages with a dot in their name
 958
 959	* README_SH: new file
 960	Move large parts of the documentation in `groffer.sh' into this
 961	file.
 962
 963	* groffer.sh: usage():
 964	- Change the output for `--help' to standard output.
 965	- Restructure the information for this help output.
 966
 967
 968	******* Removement of the author's email address
 969
 970	Because of the extreme spam attacks, the author removed all
 971	occurencies of his email address in every file of the groffer
 972	source.
 973
 9742003-01-22  Bernd Warken
 975	________________________________________________________________
 976	* release of groffer 0.9.4
 977
 978	* groffer.sh: corrections for some restrictive shells
 979	- Possible exit codes in actual `ash' are between 0 and 63.  To
 980	handle even deeper restrictions, use 7 as maximal code instead
 981	of 255 as replacement for error -1.
 982	- Remove variables $_BAD2 and $_BAD3.
 983	- Replace `trap' argument `EXIT' by 0 and write new fuctions
 984	`trap_clean' and `trap_set' to handle the restrictions of `trap'
 985	for some shells.
 986	- Correct wrong $MANPATH to $_MAN_PATH in function
 987	`man_do_filespec'.
 988	- Test existence of directory before deleting it in the
 989	`clean_up' definitions.
 990	- Correct help output in `usage' (called by `--help').
 991
 992	* TODO:
 993	Remove mention of `shoop' and `apropos'.
 994
 9952002-10-21  Bernd Warken
 996	________________________________________________________________
 997	* release of groffer 0.9.3
 998
 999	* groffer.sh: new temporary subdirectory
1000	- Generate temporary subdirectory for storing temporary files
1001	with better names in future groffer versions (name:
1002	"groffer$$" in usual temporary directory).
1003	- Use `umask 000' for temporary files to allow cleaning up
1004	for everyone after a system break.
1005	- Change both clean_up() functions (for normal shell and
1006	for main_display() subshell) to handle the new subdirectory.
1007	- clean_up_secondary() and $_TMP_PREFIX are unnecessary now, so
1008	they were removed.
1009
1010	* Makefile.sub: `sed' commands for "groffer:"
1011	- Remove "@g@" entry (not used in "groffer.sh").
1012	- Add global replace for "@BINDIR@" and "@VERSION@" for future
1013	usage.
1014
1015	* TODO: think about...
1016	- writing part of groffer in C/C++.
1017	- handling several files with different macro packages.
1018
10192002-10-17  Bernd Warken
1020	________________________________________________________________
1021	* fixes of groffer 0.9.2
1022
1023	* groffer.sh:
1024	Terminate main_parse_MANOPT() if $MANOPT is empty or consists
1025	of space characters only.
1026
1027	* groffer.man: some fixes in "GROFFER OPTIONS"
1028	- New macro ".Header_CB" for CB font in .TP headers; used for
1029	definition of variables in option --mode.
1030	- Fix some option references to refer to long options.
1031
1032	* README:
1033	New file for general information on the groffer source; it is
1034	not installed.
1035
10362002-10-14  Bernd Warken
1037
1038	* Makefile.sub:
1039	add replacement "@BINDIR@" to "$(bindir)" for "groffer:"
1040
1041	* groffer.sh:
1042	Define $_this as "@BINDIR@/${_PROGRAM_NAME}" to save the right
1043	installation position of groffer for the special shell calling.
1044
1045	* groffer.man:
1046	Remove double definition of filespec parameters.
1047
10482002-10-13  Bernd Warken
1049	________________________________________________________________
1050	* release of groffer 0.9.2
1051
1052	* groffer.sh: fixes
1053	- Fix some 'sed' functions: two in func_stack_dump(), one in
1054	  base_name(), add 'sed' command in list_from_cmdline().
1055	- Finish main_parse_MANOPT() if $MANOPT is empty.
1056	- Sort $_OPTS_GROFF_SHORT_NA like groff short options (but
1057	  unchanged).
1058	- Fix some comments.
1059
1060	* groffer.man: make it more readable (but no additions)
1061	- A shortened section "SYNOPSIS" is followed by a simplified
1062	  section "DESCRIPTION".
1063	- The options from "SYNOPSIS" go to new section "OPTION
1064	  OVERVIEW" with all groffer options in a single subsection.
1065	- The details of all groffer options are described in section
1066	  "GROFFER OPTIONS".
1067	- New macro for file names ".File_name".
1068	- "Option Parsing" is moved to section "COMPATIBILITY".
1069	- Fix some "EXAMPLES".
1070
10712002-09-30  Bernd Warken
1072	________________________________________________________________
1073	* release of groffer 0.9.1
1074
1075	* TODO: remove done entries
1076	- Remove request for different shells.
1077	- Remove the 'sed' complaints.
1078
10792002-07-15  Bernd Warken
1080
1081	* groffer.sh: replace `sed' interface by direct `sed'
1082	- This improves the performance of the shell programming parts
1083	  and shortens the groffer script by about 5%.
1084	- Remove functions: string_del_append(), string_del_leading(),
1085	  string_del_trailing(), string_flatten(), string_get_before(),
1086	  string_get_leading(), string_replace_all(), string_sed_s(),
1087	  and their auxiliary functions.
1088	- Replace all calls of these functions by direct `sed' commands.
1089	- Define variables for special characters to ease `sed' calls.
1090	- Remove `$APPEND'.
1091	- Restrict list_from_string() to single character separators.
1092	- Correct list_check() and base_name().
1093	- Add comments to all calls of `sed'.
1094
1095	* groffer.sh: add run-time support for several shells
1096	- New option `--shell': stop execution and rerun groffer under
1097	  the shell specified in the argument of `--shell'.
1098	- If no shell was specified at run-time, `ash' is tried first;
1099	  if `ash' is not available continue with the shell with which
1100	  groffer was called from the command line, or with the shell
1101	  name in the first line of the script, actually `/bin/sh'.
1102
11032002-07-12  Bernd Warken
1104	________________________________________________________________
1105	* fixes for groffer 0.9.0
1106
1107	* groffer.sh: enhance version information
1108	`groffer -v|--version' now print:
1109	- groffer's version number and date
1110	- the string `is part of '
1111	- groff's version information (version number and copyright),
1112	  but not groff's `called subprograms' information.
1113
1114	* groffer.sh: minor fixes
1115	- Fix the argument parser to process argument `-' correctly.
1116	- Some display programs have trouble with empty input; feed a
1117	  line consisting of a single space character in this case for
1118	  all display modes (not for source or groff modes).
1119
1120	* TODO:
1121	fix entry `shoop' (not 'shopt').
1122
11232002-06-28  Bernd Warken
1124	________________________________________________________________
1125	* release of groffer 0.9.0
1126
1127	* groffer.sh: new mode `pdf'
1128	- PDF (Portable Document Format):
1129	  -> Transform groff `ps' output into pdf using `gs'.
1130	  -> Pro: PDF viewers provide text searching (!).
1131	  -> Con: the transformation is quite slow.
1132	  -> Not suitable as an auto mode.
1133	- New options `--pdf', `--pdf-viewer', `--mode pdf'.
1134	- Standard pdf viewers `xpdf' and `acroread'.
1135	- For `xpdf', choose zoom `z 3' for 100 dpi, `z 2' for 75 dpi.
1136
1137	* groffer.sh: support bzip2 decompression
1138	- add test for `bzip2' with necessary options
1139	- extend functions `catz()' and `save_stdin()'.
1140
1141	* TODO
1142	remove entry on `bzip' decompression (done).
1143
1144	* groffer.man:
1145	- Document new `pdf' features.
1146	- Document new `bzip2' decompression.
1147	- Fix documentation for `--auto-modes'.
1148
1149	* groffer.sh: minor fixes
1150	- Improve device tests in `tty' and `dvi' modes.
1151	- Internally, map mode `auto' to '' to facilitate tests.
1152	- Fix auto mode sequence to: `ps,x,tty' as was intended.
1153
11542002-06-25  Bernd Warken
1155
1156	* groffer.sh:
1157	Fix `source' mode.
1158
1159	* groffer.man:
1160	Fix some indentations.
1161
11622002-06-23  Bernd Warken
1163	________________________________________________________________
1164	* release of groffer 0.8
1165
1166	* Makefile.sub: add copyright section
1167
1168	* groffer.man:
1169	- Document the new options.
1170	- Revise the documentation of the modes.
1171	- Document the configuration files in new section `FILES'.
1172	- Redesign section `EXAMPLES'.
1173	- Remove documentation for `-W'.
1174
1175	* groffer.sh: new debugging features
1176	- Disabled by default; enabled by environment variables.
1177	- Add landmark() to catch typos with quotes.
1178	- Add a function call stack for suitable functions; implemented
1179	  as within the argument checker func_check().
1180	- This implies the need to provide `return' with some clean-up
1181	  facility; implemented as `eval "$_return_..."'.
1182	- Add option `--debug' to enable debugging at run-time.
1183	- Actually, the groffer script uses only shell builtins found
1184	  in `ash' (a subset of POSIX) and POSIX `sed' as the only
1185	  external shell utility.
1186
1187	* groffer.sh: customization of viewers
1188	- In `groff' mode, the groffer viewing facilities are disabled.
1189	- The postprocessor option `-P' costumizes the viewer only in
1190	  some situations in the `groff' mode, so a new infrastructure
1191	  for viewer customization is necessary.
1192	- Allow to specify arguments to the viewer programs specified
1193	  in `--*-viewer()'.
1194	- Implement some of the essential X Toolkit resource options in
1195	  groffer, but with use a leading double minus.
1196	  -> `--bd': set border color.
1197	  -> `--bg', `--background': set background color.
1198	  -> `--bw': set border width.
1199	  -> `--display': set X display.
1200	  -> `--geometry': set size and position of viewer window.
1201	  -> `--fg', `--foreground': set foreground color.
1202	  -> `--ft', `--font': set font.
1203	  -> `--resolution': set X resolution in dpi.
1204	  -> `--title': set viewer window title.
1205	  -> `--xrm': set X resource.
1206	- Remove misnamed option `--xrdb'.
1207
1208	* groffer.sh: new mode structure
1209	- New Postcript mode `ps' (`--ps'):
1210	  -> default viewers: gv,ghostview,gs_x11,gs;
1211	  -> `--ps-viewer' sets the Postscript viewer.
1212	- New mode `www' (`--www') for displaying in a web browser:
1213	  -> default browsers: mozilla,netscape,opera,amaya,arena;
1214	  -> `--www-viewer' sets the web browser.
1215	- New dvi mode (`--dvi'); default viewer `xdvi':
1216	  -> default viewers: xdvi,dvilx;
1217	  -> `--dvi-viewer' sets the dvi viewer.
1218	- New mode `auto':
1219	  -> active if no other mode is given or by new option `--auto';
1220	  -> selects from a sequence of modes that are tested until one
1221	    of them succeeds.
1222	  -> the default mode sequence is actually `ps', `x', `tty'.
1223	  -> `--default-modes' sets this mode sequence as a comma
1224	     separated string of program names, optionally each one
1225	     with arguments).
1226	- New mode `groff':
1227	  -> process input like groff, ignore viewing options.
1228	  -> activated by new option `--groff'.
1229	  -> automatically active with one of `-V', `-X', `-Z'.
1230	- Revise `tty' mode:
1231	  -> allow several text devices.
1232	  ->
1233	- Reorganize the mode management:
1234	  -> new mode setting option `--mode'.
1235	  -> logically separate source, groff, and display modes.
1236	  -> intermediate output mode is now part of mode groff; remove
1237	     any special features around `-Z'.
1238	- Update usage() to reflect the new option structure.
1239
1240	* groffer.sh: add configuration files
1241	- `/etc/groff/groffer.conf' system-wide configuration.
1242	- `${HOME}/.groff/groffer.conf' user configuration.
1243	- The configuration file are shell scripts for now; later
1244	  implementations can identify this from the `#! /bin/sh' line.
1245
1246	* groffer.sh: new data structure `list':
1247	- Implement a `list' data structure as a string consisting of
1248	  single-quoted elements, separated by a space character;
1249	  embedded single-quotes are escaped.
1250
1251	* groffer.sh: new option parser based on `list':
1252	- Write new option parser based on `list', compatible to both
1253	  POSIX getopts() and GNU getopt().
1254	- Long options are now available on GNU and non-GNU systems.
1255	- Get rid of POSIX getopts() and GNU getopt().
1256	- the `-W--longopt' construct is now obsolete; remove it.
1257	- add test/function for `unset'.
1258	- Option strings are now implemented as `list's in order to
1259	  allow unusual characters in options.
1260	- Parse $MANOPT first; translate essential arguments into
1261	  groffer options.
1262
1263	* groffer.man:
1264	- determine prompt length for `.Shell_cmd'* dynamically.
1265	- naming scheme for static strings and registers changed to
1266	  `namespace:macro.variable'.
1267
1268
12692002-06-16  Werner Lemberg  <wl@gnu.org>
1270
1271	* groffer.sh:
1272	Implement man option `--ascii' by `-mtty-char'.
1273
1274
12752002-05-31  Werner LEMBERG  <wl@gnu.org>
1276
1277        * groffer.man (@.Shell_cmd_width):
1278	Increase to 4m (we use `sh#' as the prompt).
1279
1280
12812002-05-31  Bernd Warken
1282	________________________________________________________________
1283	* release of groffer 0.7
1284
1285	* groffer.sh: remove incompatibilities with the `ash' shell:
1286	- do not use `!command':
1287          -> use `else'
1288	  -> write `_not_' equivalents for some functions
1289	- do not use `[^]' in `case':
1290	  ->  restructure some functions.
1291	- only single-character names for loop variables:
1292	  -> spoils the paradigm of leading `_' for local variables.
1293	- spurious trouble with `for i in ${var}':
1294	  -> use `eval set -- ${var}' and `for i in "$@"'
1295	- do not change or use $IFS:
1296	  -> define new functions string_split() and `path_split()'.
1297	  -> result must be processed by `eval set --'.
1298	  -> solve conflicts with existing positional parameters.
1299	- trouble with exporting external `$GROFF_*' variables:
1300	  -> hope that they were exported in the calling shell.
1301	- not smart about additional blanks:
1302	  -> remove unnecessary white space.
1303
1304	* groffer.sh: improve run-time speed:
1305	- `ash' more than doubles the speed of `bash'.
1306	- speed-up `man_setup()'.
1307
1308
13092002-05-30  Werner Lemberg  <wl@gnu.org>
1310
1311	* groffer.man:
1312	- remove some wrong `\:'.
1313	- rename macro names that start with a `[' (clashes with refer).
1314	- fix TP_header.
1315
1316
13172002-05-28  Bernd Warken
1318	________________________________________________________________
1319	* release of groffer 0.6
1320
1321	This is almost a complete rewrite since groffer 0.5 .
1322	________________________________________________________________
1323	* Documentation
1324
1325	* groffer.man:
1326   	- Apply the changes done in www.tmac (.URL and .MTO)
1327	- Replace \fP by \f[].
1328	- Redesign and rewrite most macros.
1329	- Include the documentation for the new features.
1330	- Greatly enlarge section ENVIRONMENT
1331	- Add examples.
1332
1333	* TODO:
1334	- Start a TODO file with several sections.
1335
1336	* ChangeLog:
1337	Due to the many changes, shorten and rearrange the entries
1338	since groffer 0.5 .
1339	________________________________________________________________
1340	* Shell compatibility
1341
1342	* groffer.sh:
1343	- Due to possible conflicts in old BSD versions, `[]' was
1344	  replaced by `test'; the `test' options `-a' and `-o' were
1345	  replaced by multiple calls of `test'.
1346	- Write interface to the `sed' command `s' to become
1347	  independent of the delimiter character.  Rewrite all text
1348	  manipulating function to use this new scheme.  The new
1349	  functions are named `string_*'.
1350	- `tr' is not needed any longer, replaced by `sed'.
1351	- `grep' is not needed any longer, mostly replaced by `case'.
1352	- Revision of test for `getopt'.
1353	- Remove `set -a'; explicitly export variables.
1354	- The only external programs used are POSIX `sed' and the
1355	  fallback to `apropos'.  All other program calls were
1356	  replaced by shell builtins and functions.
1357
1358	________________________________________________________________
1359	* Cosmetics
1360
1361	* groffer.sh:
1362	- Implement a prefix based naming scheme for local variables
1363	  and functions (OOP-like).
1364	- Introduce variables for white space (better readability with
1365	  $IFS).
1366	- Store the names of the processed filespecs into a variable
1367	  instead of a temporary file.
1368	- Error-prone shell constructions were replaced by functions
1369	  with a simple interface.
1370	- To avoid too long pipes, replace supercat() by do_fileargs();
1371	  every input file is handled independently.
1372
1373	________________________________________________________________
1374	* New features:
1375	- Add support for more X devices (e.g. X75-12 and X100-12).
1376	- Add long option `--intermediate_output' to `-Z'.
1377	- Make the options for mode selection clobber each other.
1378	- Add option `--mode' with an argument having the following
1379	  values:
1380	  `X': force displaying in X, same as options `-X';
1381	  `tty': display with a pager on text terminal; same as `--tty';
1382	  `source', `default', `auto', etc.
1383	- Make the handling of the X mode like in groff (e.g. -X -Tps).
1384	- Make resolution for gxditview behave like groff (default
1385	  75 dpi).
1386	- Add environment variabl…

Large files files are truncated, but you can click here to view the full file