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