/contrib/groff/contrib/groffer/ChangeLog
#! | 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