2010-12-31 Werner LEMBERG Version 1.21 released ===================== * NEWS, REVISION, VERSION, doc/groff.texinfo, doc/webpage.ms: Updated. * aclocal.m4, configure: Regenerated. 2010-12-31 Werner LEMBERG * doc/webpage.ms: Updated. 2010-12-31 Werner LEMBERG * configure: Regenerate with autoconf 2.67. 2010-12-31 Werner LEMBERG Update various scripts. * config.guess, config.sub: Update from `config' repository. * install-sh, mkinstalldirs: Update from `gnulib' repository. 2010-12-31 Werner LEMBERG Update texinfo.tex. * doc/texinfo.tex: Update von `texinfo' repository. 2010-12-30 Werner LEMBERG Call texi2dvi with correct makeinfo binary. * doc/Makefile.in (.texinfo.dvi, .texinfo.pdf): Use $(MAKEINFO). 2010-12-30 Werner LEMBERG Documentation updates. * NEWS, PROBLEMS, MANIFEST: Update. 2010-12-26 Werner LEMBERG Speed up troff. * src/include/ptable.h (PTABLE): Make hash tables much more sparse by changing the ratio `FULL_NUM/FULL_DEN' from 2/3 to 1/4. This increases the allocated memory by about 200kByte (which is nothing today) but assures that there aren't extremely long searches for a free hash slot in case that the hash function doesn't return a free one. Due to the nature of the entries in uniuni.cpp, the used hash function in ptable.cpp is not optimal, but using a sparse array compensates this. 2010-12-20 Werner LEMBERG Replace patch from 2010-12-18 with a much faster implementation. * src/roff/troff/node.h (node): Add virtual function `get_break_code'. * src/roff/troff/node.cpp (inter_char_space_node): Remove class completely. (glyph_node::merge_glyph_node): Restore previous version. (break_char_node): Add `prev_break_code' field and update constructors. (node::get_break_code, break_char_node::get_break_code): Implement. (node::add_char): Pass remaining cflags values. (break_char_node::add_self): Use the logic of the now deleted `inter_char_space_node::add_self' function to insert a space node if necessary. 2010-12-20 Daiki Ueno A new try to not changing srcdir if building in separate builddir. Makefile.in ($GNULIBDIRS): Disable calls to autoconf and friends. 2010-12-20 Werner LEMBERG Speed up access to cflags values. We now recompute the cflags values for all charinfo objects if `.class' has been called. * src/roff/troff/charinfo.h: Add external references to `class_flag' and `get_flags'. (charinfo): `get_flags' no longer has a return value. (charinfo::overlaps_horizontally, charinfo::overlaps_vertically, charinfo::can_break_before, charinfo::can_break_after, charinfo::can_break_after, charinfo::ends_sentence, charinfo::transparent,, charinfo:ignore_hcodes, charinfo::prohibit_break_before, charinfo::prohibit_break_after, charinfo::inter_char_space): Call global `get_flags' only if necessary. (charinfo::add_to_class): Set `class_flag'. * src/roff/troff/input.cpp (class_flag): New global flag. (charinfo::charinfo): Call `get_flags' member function. (get_flags): New global function which iterates over all entries in the charinfo dictionary. (charinfo::get_flags): Set `flags' directly. 2010-12-19 Werner LEMBERG Protect `.class' against cyclic nesting. * src/roff/troff/charinfo.h (charinfo::contains): Add optional boolean argument. * src/roff/troff/input.cpp (define_class, charinfo::contains): Check for cyclic nesting. 2010-12-18 Werner LEMBERG Improve CJK support with new values for `.cflags'. This patch introduces three new values to `.cflags': don't break before character: 128 don't break after character: 256 allow inter-character break: 512 They are handled differently if compared to other cflags values: (1) hcode values are completely ignored (2) similar to kern values, and contrary to the other cflags values, troff looks at pairs of characters to decide whether a break gets inserted A yet-to-be-written patch should add inter-character spacing if those flags are active; currently, only zero-width breakpoints are inserted. * src/roff/troff/charinfo.h (charinfo): Change type of `flags' to `int'. Update callers accordingly. New enum values `DONT_BREAK_BEFORE', `DONT_BREAK_AFTER', and `INTER_CHAR_SPACE'. New member functions `prohibit_break_before', `prohibit_break_after', and `inter_char_space'. * src/roff/troff/input.cpp: Updated. * src/roff/troff/node.cpp (inter_char_space_node): New class similar to kern_pair_node, collecting charinfo entities with the abovementioned cflags values. (break_char_type): Add new enum values. (glyph_node::merge_glyph_node): Handle abovementioned cflags values and emit an `inter_char_space_node' if necessary. * tmac/ja.tmac: Use new cflags values. * doc/groff.texinfo, NEWS, man/groff_diff.man: Document new values. 2010-12-18 Werner LEMBERG Remove compiler warning. * src/libs/libgroff/relocate.cpp (msw2posixpath): Remove redundant dereferencing. 2010-12-16 Daiki Ueno Don't change srcdir if building in a separate builddir. * Makefile.in ($GNULIBDIRS): Copy configuring stuff of gnulib if necessary. 2010-12-15 Werner LEMBERG Fix compilation problem. This issue happens with gcc 4.2.4. * src/roff/troff/node.cpp (node::~node): Move to... * src/roff/troff/node.h: Here. This ensures that the inline member function is publicly visible. 2010-12-15 Werner LEMBERG Remove unused code. * src/roff/troff/node.cpp, src/roff/troff/node.h (space_node::space_node): Remove unused constructor. 2010-12-15 Werner LEMBERG Use enum to increase readability. * src/roff/troff/node.cpp (break_char_type): New enum. (break_char_node::add_self, node::add_char): Use it. 2010-12-13 Daiki Ueno Werner LEMBERG Add wide character support to grotty. This is a huge patch, mainly by adding the gnulib infrastructure in a separate directory tree (in `src/libs/gnulib/lib') for its `wcwidth' module. However, the actual changes to native groff source files are just a few lines. * Makefile.comm (INCLUDES): Updated. (LIBGNU): Define. * Makefile.in (NOMAKEDIRS): Updated. (GNULLIBDIRS): Define. (DISTDIRS): Add GNULLIBDIRS. ($LIBDIRS): Depend on GNULLIBDIRS. ($GNULLIBDIRS): New target. * src/libs/libgroff/font.cpp (font::get_width, font::load) [is_unicode]: Use `wcwidth'. * src/roff/troff/Makefile.sub (XLIBS): Add LIBGNU. * src/roff/troff/input.cpp (main): Set LC_CTYPE. * src/devices/grotty/Makefile.sub (XLIBS): Add LIBGNU. * src/devices/grotty/tty.cpp (main): Set LC_CTYPE. * src/libs/gnulib/*: New files. The import was done as follows: . Call gnulib-tool --create-testdir \ --dir=src/libs/gnulib \ wcwidth to get a testbed. . Manually move directories src/libs/gl{lib,m4} to src/libs/{lib,m4}, and do s/gllib/lib/ and s/glm4/m4/ everywhere to `convert' the gnulib testbed to a standard gnulib configuration as maintained by gnulib-tool. . Call gnulib-tool --add-import \ --dir=src/libs/gnulib \ wcwidth to update everything. 2010-12-13 Werner LEMBERG `.class' must not emit empty lines. * src/roff/troff/input.cpp (define_class): Add missing `skip_line' calls. 2010-12-06 UKAI Fumitoshi Colin Watson Add Japanese localization. * tmac/ja.tmac: New file. * tmac/Makefile.sub (NORMALFILES): Updated. 2010-12-06 Colin Watson Daiki Ueno Implement support for character classes. This patch uses standard C++ headers, contrary to the rest of groff. Ideally, everything in groff should be updated to do the same. * src/include/font.h (glyph_to_unicode): New function. * src/libs/libgroff/font.cpp (glyph_to_unicode): Implement it. (font::contains, font::get_code): Use it. * src/roff/troff/charinfo.h: Include and . (charinfo): New members `ranges' and `nested_classes'. New member functions `get_unicode_code' and `get_flags'. New member functions `add_to_class', `is_class', and `contains'. (charinfo::overlaps_horizontally, charinfo::overlaps_vertically, charinfo::can_break_before, charinfo::can_break_after, charinfo::can_break_after, charinfo::ends_sentence, charinfo::transparent,, charinfo:ignore_hcodes): Use `get_flags', which handles character classes also. * src/roff/troff/input.cpp (char_class_dictionary): New global variable. (define_class): New function. (init_input_requests): Register `class'. (charinfo::get_unicode_code, charinfo::get_flags, charinfo::contains): Implement it. * NEWS, doc/groff.texinfo (Character Classes), man/groff_diff.man, man/groff.man: Document it. 2010-11-11 Anton Shepelev [grohtml]: Improve texinfo documentation. * doc/groff.texinfo (grohtml): Insert man page description, slightly extended. 2010-11-11 Werner LEMBERG Fix crash in tbl with option `nospaces'. Reported by Louis Guillaume . * src/libs/libgroff/string.cpp (string::remove_spaces): If input data consists of spaces only and thus reduces to nothing, set `sz' to 0. 2010-11-02 Ulrich Spörlein [mdoc]: Complete previous patch and document OpenBSD releases. * tmac/doc-common (doc-operating-system-NetBSD): Add versions 5.0, 5.0.1, and 5.0.2. (doc-operating-system-OpenBSD-*): New strings. (doc-operating-system-FreeBSD-*): Add version 8.1. (doc-operating-system-DragonFly-*): Add versions 2.2, 2.4, 2.6, and 2.8. (Os): Handle DragonFly and OpenBSD. * tmac/groff_mdoc.man: Document OpenBSD releases. Add DragonFly release 2.8. 2010-11-02 Ulrich Spörlein [mdoc]: Improve man page. * tmac/groff_tmac.man: Fix prologue macro order. Update NetBSD, FreeBSD, and DragonflyBSD version numbers. Other minor layout improvements. 2010-11-02 Anton Shepelev [grohtml] Improve man page. * src/devices/grohtml/grohtml.man: Document two-pass handling of input data. 2010-09-19 Werner LEMBERG [groff] Don't use prefix for preconv. Reported by Dorai Sitaram * src/roff/groff/groff.cpp (main): Fix it. 2010-07-28 Larry Kollar * doc/groff.texinfo, man/groff.man: Document `!' operator better. 2010-06-28 Jan Vcelak * src/roff/troff/node.cpp (make_node): Adding missing `%'. Reported in http://lists.gnu.org/archive/html/bug-groff/2010-06/msg00022.html 2010-06-05 Larry Jones * man/groff_diff.man: Document \n[.P]. 2010-06-04 Werner LEMBERG * NEWS: Updated. 2010-06-04 Denis M. Wilson afmtodit: Add option `-o' to specify an output file. * src/utils/afmtodit.pl: Implement it. * src/utils/afmtodit.man: Document it. 2010-06-04 Larry Jones * man/groff_diff.man: Document \n[.O]. 2010-05-30 Werner LEMBERG Fix metric files for devps families A, BM, and font ZCMI. Problem reported by Denis M. Wilson . * font/devps/{AB, ABI, AI, AR, BMB, BMBI, BMI, BMR, ZCMI}: Regenerated, using correct AFM files (from the Adobe Core 35 fonts with 229 glyphs). 2010-05-28 Werner LEMBERG Don't use obsolete intermediate output command `F'. Reported by Krzysztof Zelechowski * src/roff/troff/nodes.cpp (troff_output_file::really_put_filename): Replace `F' command with `x F'. 2010-05-24 Werner LEMBERG * PROBLEMS: Document that mdoc doesn't work with test-groff. Reported by Krzysztof Zelechowski 2010-05-22 Werner LEMBERG Document preconv in texinfo. * doc/groff.texinfo: Mention preconv and its related command line options for groff. Add stubs for direct preconv documentation. Sort groff options and environment variables. 2010-05-22 Werner LEMBERG Use DESC's `unicode' keyword for grotty. Consequently, no longer check directly for the `utf8' device name which prevented the creation of arbitrarily called output device directories like `devunicode'. Problem reported by Christopher Yeleighton in Savannah bug #29895. * src/devices/grotty/tty.cpp (tty_printer): Remove `is_utf8' member. Replace all ocurrences with `font::is_unicode'. (tty_printer::tty_printer): Remove argument. * src/devices/grotty/grotty.man: Document `unicode' keyword. 2010-05-19 Werner LEMBERG Update symbol tables for devps font generation. * font/devps/generate/textmap: Sort alphabetically. Replace tabs with spaces. * font/devps/generate/symbolchars: Update list to remove duplicates which have already been added to `textmap' on 2007-04-09. * font/devps/symbolmap: Regenerated. * font/devps/*: Regenerate font definition files. 2010-05-09 Colin Watson Handle ditroff command `Dt' without argument gracefully. Without this patch, grotty goes into an infinite loop if it tries to process x T utf8 x res 240 24 40 x init p1 Dt * src/libs/libdriver/input.cpp (get_integer_arg): Emit a fatal error on a non-integer argument, bringing the code into line with the behaviour documented in the header comment. (get_possibly_integer_args): Terminate the loop on a non-integer argument. (next_arg_begin): Return newline or EOF after emitting the corresponding error, rather than continuing on to the next line. 2010-05-01 Werner LEMBERG * doc/groff.texinfo: Improve documentation of \R escape. 2010-03-10 Werner LEMBERG * doc/groff.texinfo: Document \n[DD] register. Updated version stuff. 2010-03-10 Larry Kollar * tmac/groff_ms.man: Document \n[DD] register. Problem reported by Ted. 2010-02-25 Colin Watson Use named signals for `trap' in shell scripts. * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2/graph.sh, contrib/pic2graph/pic2graph.sh: Do it. 2010-02-25 Werner LEMBERG Fix angle brackets in grohtml. Reported by Colin Watson . * src/devices/grohtml/post-html.cpp (get_html_entity): Add U+27E8 and U+27E9. 2010-02-24 Colin Watson Add new FreeBSD and Posix versions. * tmac/doc-common: Add FreeBSD versions 7.2, 7.3, and 8.0 * tmac/doc-syms: Add Posix 2008 * tmac/groff_mdoc.man: Document it. 2010-02-16 Larry Kollar tbl: Add `nowarn' option. * src/preproc/tbl/table.h (table): Add `NOWARN' enumeration value. * src/preproc/tbl/main.cpp (process_options), src/preprox/tbl/table.cpp (table::compute_expand_width, table::compute_separation_factor): Handle `NOWARN'. * src/preproc/tbl/tbl.man, NEWS: Document it. 2010-02-08 Larry Kollar * tmac/www.tmac (www-li-ol): Fix indentation if more than 10 items. 2010-02-04 Larry Kollar Improve `tbl' warnings. * src/preproc/tbl/table.cpp (table::compute_expand_width, table::compute_separation_factor): Add file name strings to warnings. 2010-01-23 Bjarni Ingi Gislason Fix `MC' macro of the ms package. * tmac/s.tmac (@MC): Define `pg*col-top' after the paragraph has been initialized. Otherwise, using this example, .nh .nf .kern 0 .pl 6c .ll 70n .MC 30n Text for multiple columns. Text for multiple columns. Text for multiple columns. Text for multiple columns. Text for multiple columns. the columns start at different vertical positions. 2010-01-23 Larry Kollar * tmac/www.tmac (www-li-{ul,ol,dl}): Handle `PORPHANS' register. 2010-01-23 Larry Kollar PROBLEMS: Document some Mac OS issues. 2010-01-02 Deri James Don't hardcode `ps' device. This is needed for cooperation with gropdf. * src/preproc/pic/troff.cpp (troff_output::text): Use GROPS_REG. 2009-12-31 Werner LEMBERG Make patterns with uppercase letters work. Problem reported by Bjarni Ingi Gislason . * src/roff/troff/input.cpp (init_hpf_code_table): Use `cmlower'. * doc/groff.texinfo, man/groff_diff.man: Update documentation of `hpfcode' request. 2009-11-24 Maurice van der Pot Fix double frees and memory leaks. * src/roff/troff/env.cpp (environment::make_tag): Use local object. * src/roff/troff/input.cpp (input_stack::check_end_diversion): Free `diversion_state' here. (interpolate_arg): Fix memory leaks. * src/roff/troff/mtsm.cpp (mtsm::pop_state): Don't free `sp->state'. 2009-11-20 Paulo Ricardo Zanoni * */*.cpp: Replace `printf(string);' with `printf("%s", string);'. 2009-10-28 Werner LEMBERG Document limitations with `#' characters, tbl, and eqn. Problem reported by Michael Kain . * src/preproc/eqn/eqn.man, src/preproc/tbl/tbl.man: Do it. 2009-10-26 Werner LEMBERG * tmac/doc-common (Dx): Define register. 2009-10-26 Jörg Sonnenberger Implement `%U' in mdoc for URL references. * tmac/doc-common (%U): New register. (Rd): Handle `doc-url-count' and `doc-url-name'. * tmac/doc.tmac (doc-url-count, doc-url-name): New registers. (doc-save-global-vars, doc-restore-global-vars, doc-reset-reference, doc-print-reference): Handle `doc-url-count' and `doc-url-name'. (%U): New macro. * NEWS, tmac/groff_mdoc.man: Document `%U' macro. 2009-09-09 Jari Aalto * src/roff/groff/groff.man: Point to troff(1) for `-w' and `-W'. 2009-09-08 Werner LEMBERG [troff]: Fix hyphenation problem with kerned letters. Problem reported by Steve Izma . * src/roff/troff/node.cpp (kern_pair_node::add_discretionary_hyphen): Compute `tf' using the first node, `n1'. `n2' might be another kerning node, and the `get_tfont' member function isn't defined then. 2009-09-01 Michael Cain [pic] Fix a border case for arc computation. * src/preproc/pic/object.cpp (object_spec::make_arc): It can happen that test `radius < d' in the loop is satisfied, but the difference in the two values is on the order of 1e-10. If `radius' is small, doubling the value can lead to a fairly gross error. The original code appears to have been intended to deal with the situation when radius is orders of magnitude less than `d'. The replacement code simply assigns `radius' the smallest value that avoids problems with the floating point code further on in the routine. 2009-08-14 Roger Leigh * man/groff_char.man: Fix white heart and diamond unicode values. 2009-07-29 Werner LEMBERG * tmac/hyphen.fr: Fix typo which prevents hyphenation. Reported by Seb . 2009-06-25 Werner LEMBERG Make groff compile on Interix. Reported by Jay Krell . * configure.ac: Call AC_USE_SYTEM_EXTENSIONS. * src/include/lib.h [__INTERIX]: Define _ALL_SOURCE. * configure: Regenerated. 2009-05-29 Werner LEMBERG pic: Fix handling of nested positions. Reported by Doug McIlroy . * src/preproc/pic/pic.y: Split `expr' into `expr_lower_than' and `expr_not_lower_than' so that we can handle (1/3)<(1/2),baz> correctly. Without the patch, `(1/3)<(1/2)' is handled prematurely as a comparison. 2009-05-07 Werner LEMBERG Accept \0 and friends within \o. Reported by Doug McIlroy . * src/roff/troff/token.h (token): Add TOKEN_HORIZONTAL_SPACE enumeration value together with `horizontal_space' member function. Add `do_overstrike' as a friend. * src/roff/troff/input.cpp: Use TOKEN_HORIZONTAL_SPACE for \0, \|, \^, and \h. Update all affected places. (do_overstrike): Remove `static' attribute. Accept all escapes which produce a fixed horizontal space. 2009-04-24 Werner LEMBERG Use straight quotes where appropriate. Reported by Reuben Thomas . * man/groff.man: Do it. 2009-04-14 Werner LEMBERG Fix documentation of `em' request. Reported by Joachim Walsdorff . * doc/groff.texinfo (End-of-input Traps): Rewrite. 2009-04-10 Werner LEMBERG Fix a memory leak in troff for -Thtml. Reported by Urs Eggli . * src/roff/troff/node.h (node::~node): Move to... * src/roff/troff/node.cpp: Here. Free `state' and `push_state'. 2009-04-01 Werner LEMBERG * tmac/doc.tmac: Call `ec' before mapping characters. 2009-03-07 Werner LEMBERG Gunnar Florus Improve configuration. * configure.ac: Read `VERSION' and `REVISION' files to provide proper values for AC_INIT. * Makefile.in: Use `@datarootdir@' and `@docdir@' so that configure's `--datarootdir' and `--docdir' options are honoured. Documentation is now by default installed into something like `/usr/local/share/doc/groff-1.20.1'. * configure: Regenerated. 2009-02-21 Colin Watson Werner LEMBERG Add a new `file' warning category. * src/roff/troff/troff.h (warning_type): Add WARN_FILE. * src/roff/troff/input.cpp (DEFAULT_WARNING_MASK): Include WARN_FILE. (warning_table): Add `file' category. (macro_source): Convert error on missing macro file to a warning. * NEWS, doc/groff.texinfo (I/O, Warnings), man/groff_diff.man, src/roff/troff/troff.man: Document new warning category. 2009-02-18 Werner LEMBERG * doc/groff.texinfo: Improve documentation of `lsm' request. 2009-02-14 Werner LEMBERG Implement a leading spaces macro request, `lsm', in analogy to `blm'. Implement two new number registers, \n[lsn] and \n[lss], which hold the number of spaces and the horizontal space, respectively, which would be inserted if the macro registered by `lsm' wasn't called. * src/roff/troff/input.cpp (leading_spaces_macro_name, leading_spaces_number, leading_spaces_space): New global variables. (leading_spaces_macro): New function. (process_input_stack) : Handle `lsm'. (init_input_requests): Register `lsm', \n[lsn], and \n[lss]. * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo (Leading Spaces Traps): Document new requests and registers. 2009-02-10 Denis M. Wilson * man/groff.man: Document missing number registers (`$$', `.b', `.F', `.j', `.k', `.L', `.O', `.P', `.R', `opmaxx', `opmaxy', `opminx', `opminy'). * doc/groff.texinfo: Document missing `.R' register. Add `.U' to register index. 2009-01-19 Werner LEMBERG Fix incorrect grops color state before \X'...'. Problem reported by Miklos Somogyi . * src/devices/grops/ps.cpp (ps_printer::special): Check color state before doing a PS special and flush buffer. Update called functions. 2009-01-09 Werner LEMBERG Version 1.20.1 released ======================= `gnu.png' isn't needed any more. * doc/Makefile.in: Don't handle or create `gnu.png'. Update all affected targets. * doc/Makefile.sub: Don't handle or create `gnu.png'. Update alll affected targets. `gnu.eps' was missing in the tarball. Problem reported by Patrik Gräser. (PROCESSEDEXAMPLEFILES): Remove `gnu.eps'. (MOSTLYCLEANNOTSRCDIRADD): Fix names of info files. (install_data): Handle `gnu.eps' specially. * MORE.STUFF: Mention texi2html's troff backend. Mention http://groff.ffii.org/groff/contrib. * README: Mention `MORE.STUFF'. * NEWS, doc/webpage.ms, doc/groff.texinfo: Updated. 2009-01-08 Werner LEMBERG * */Makefile.* (CLEANADD, CLEANNOTSRCDIRADD, CLEANDIRADD): Renamed to... (MOSTLYCLEANADD, MOSTLYCLEANNOTSRCDIRADD, MOSTLYCLEANDIRADD): This. 2009-01-06 Werner LEMBERG Remove heuristics for LIBEXT. * configure.ac: Provide LIBEXT. * Makefile.in: Use it. * configure: Regenerated. 2009-01-05 Werner LEMBERG Version 1.20 released ===================== 2009-01-05 Werner LEMBERG * */*: Update FDL 1.1 to FDL 1.3. 2009-01-05 Werner LEMBERG * */*: Update copyright year. 2009-01-05 Werner LEMBERG * MANIFEST: Updated. 2009-01-05 Werner LEMBERG * doc/texinfo.tex (\key): Fix excessive whitespace. (\texinfoversion): Tag file as patched. 2009-01-05 Werner LEMBERG * tmac/s.tmac (@TS, TE, @EQ, @EN), tmac/an-old.tmac (TS, TE, EQ, EN), tmac/e.tmac (TS, TE, EQ, EN): Set line length to a large value if processed with -Thtml. 2009-01-04 Werner LEMBERG * tmac/www.tmac (TS, TE, EQ, EN): Set line length to a large value if processed with -Thtml to avoid warning messages (from code inserted by tbl, for example). 2009-01-04 Gunnar Florus * */*: Update GPL2 to GPL3. 2009-01-04 Werner LEMBERG * Makefile.in (dist): Don't use soft links but copy files to preserve the file's time stamps. * Makefile.sub (configure): Remove `autom4te.cache'. 2009-01-04 Werner LEMBERG * tmac/de.tmac: Fix German date strings. Reported by Axel Kielhorn. 2009-01-04 Werner LEMBERG * doc/texinfo.tex: Updated from `texinfo' CVS repository. * doc/txi-en.tex: New file from `texinfo' CVS repository. 2009-01-04 Werner LEMBERG * font/make-Rproto: Moved to... * font/util/make-Rproto: Here. * Makefile.in (NOMAKEDIRS): Add `m4', `font/devps/old', and `font/util'. 2009-01-04 Werner LEMBERG * src/roff/troff/TODO: Mention local variables. 2009-01-03 Werner LEMBERG * contrib/hdtbl/examples/col_rowspan_colors.roff, contrib/hdtbl/examples/color_boxes.roff, contrib/hdtbl/examples/color_nested_tables.roff, contrib/hdtbl/examples/color_table_cells.roff, contrib/hdtbl/examples/color_transitions.roff, contrib/hdtbl/examples/short_reference.roff: Minor improvements. 2009-01-03 Werner LEMBERG * doc/webpage.ms: Updated. 2009-01-03 Werner LEMBERG * NEWS, doc/groff.texinfo, font/devps/*, VERSION, REVISION: Prepare for version 1.20. 2009-01-03 Werner LEMBERG * src/preproc/tbl/table.cpp (table::compute_expand_width, table::compute_separation_factor): In warning messages, don't refer to pages but to input line numbers. 2009-01-03 Werner LEMBERG * tmac/groff_ms.man: Improve formatting of tables. 2009-01-03 Werner LEMBERG * tmac/www.tmac (www->): Handle XHTML. (HTML

): Handle non-HTML devices. (www:url_check_tag): Avoid warnings. 2009-01-03 Werner LEMBERG * tmac/an-old.tmac, tmac/doc.tmac: For -Tutf8, map \-, -, ', and ` conservatively to ASCII for the sake of easy cut and paste. 2009-01-03 Werner LEMBERG * NEWS: Mention hdtbl. 2009-01-02 Werner LEMBERG * tmac/groff_mdoc.man: Update OS version string listing. 2009-01-02 Werner LEMBERG * config.rpath, m4/codeset.m4, m4/glibc21.m4, m4/iconv.m4, m4/lib-link.m4, m4/lib-prefix.m4, src/include/localcharset.h, src/libs/libgroff/config.charset, src/libs/libgroff/localcharset.c, src/libs/libgroff/ref-add.sin, src/libs/libgroff/ref-del.sin: Updated from `gnulib' git repository. * configure: Regenerated. 2009-01-02 Werner LEMBERG * tmac/ptx.tmac: New file. * NEWS, man/groff_tmac: man: Document it. 2008-12-30 Werner LEMBERG Fix more quoting issues. * tmac/www.tmac (BCL, BGIMG, PIMG, MPIMG, LNS): For the sake of XHTML, quote more arguments. (IMG): Fix quoting. 2008-12-30 Werner LEMBERG Fix quoting issues in www.tmac. * tmac/www.tmac (www:url_breaks_splitted): Renamed to... (www:url_breaks_split): This. (www->): New string to close tag singletons like or
. In XHTML mode (not implemented yet), this has to be changed from `>' to `/>'. (IMG): Don't use Use www->. (PIMG, MPIMG): Don't use Use www->. Fix doublequote issues. (HR): Don't use . Use www->. (LNS): Fix doublequote issues. 2008-12-24 Michail Vidiassov * tmac/doc-common: Add entries for Mac OS X and FreeBSD. 2008-12-22 Alexey Gladkov * contrib/groffer/perl/roff2.pl: Fix syntax error. 2008-12-15 Werner LEMBERG * NEWS: Mention `preconv'. 2008-11-12 Werner LEMBERG Implement `x' specifier for expanded columns. Contrary to old DWB tbl, more than a single `x' specifier can be used. At the same time, remove most of the code from change 2007-02-09 which collides with the new implementation. * src/preproc/tbl/main.cpp (format): Add `expand' array. (format::format, format::~format): Updated. (input_entry_format): Add `expand' field. (input_entry_format::input_entry_format): Updated. (input_entry_format::debug_print): Handle `expand'. (process_format): Handle `x' specifier. (process_data): Updated. * src/preproc/tbl/table.cpp (AVAILABLE_REG, COLCOUNT_REG): Remove. (EXPAND_REG): New macro. (table_entry::divert, block_entry::divert, alphabetic_block_entry::divert): Add parameter to control whether expanded columns shall be handled. (block_entry::do_width): Remove. (block_entry::do_divert): Add parameter to control whether expanded columns shall be handled. Treat expanded columns like columns with a minimum width. Remove `experimental' code. (table::table, table::~table, table::allocate): Updated. (table::set_expand_column): New function. (table::count_block_columns): Replace with... (table::count_expand_columns): This function. (table::divide_span): Handle expanded columns the same as equal columns. (table::sum_columns): Add parameter to control whether expanded columns shall be handled. (table::compute_available_block_width): Replace with... (table::compute_expand_width): This function. (table::compute_total_separation): New function, taking code from `compute_separation_factor'. (table::compute_separation_factor): Simpler code. The check for the `EXPAND' flag has been moved to the caller. (table::compute_widths): Add `top-level' changes to handle expanded blocks. * src/preproc/tbl/table.h (table): New field `total_separation'. Remove `blockflag' array. Add `expand' array. Update member function declarations. * src/preproc/tbl/tbl.man: Document `x' specifier. Expand documentation to cover all aspects of Lesk's tbl reference. * NEWS: Document `x' specifier. 2008-11-08 Werner LEMBERG * src/preproc/tbl/tbl.man: Restructuring. Improve text block documentation. 2008-11-07 Werner LEMBERG * src/preproc/tbl/table.cpp (table::compute_widths): Use default scaling operator for minimum width. Without this fix, `lw3' (or `lw(3)' would be handled as a column with a minimum width of 3u instead of 3n. 2008-11-05 Werner LEMBERG * tmac/doc-common (Dt): Start a new page if necessary and set up headers. * tmac/andoc.tmac (reload-doc): Simplify due to change in doc-common. * NEWS: Document it. 2008-10-18 Werner LEMBERG * src/preproc/tbl/main.cpp (process_format): Rename `x' and `X' to `m' and `M', respectively. Sort entries in `switch' block. * src/preproc/tbl/tbl.man: Updated. Sort key entries; other minor improvements. 2008-10-17 Werner LEMBERG * src/preproc/tbl/table.cpp (table::compute_available_block_width): New function. (table::compute_widths): Replace some code with new function (shifted to a more appropriate place). * src/preproc/tbl/table.h: Updated. 2008-10-16 Werner LEMBERG * tmac/doc-common (doc-operating-system-*), tmac/groff_mdoc.man: Add NetBSD 4.0.1. 2008-10-13 Werner LEMBERG * tmac/groff_mdoc.man: Update documentation on BSD-like OS string versions. 2008-10-10 Werner LEMBERG * man/roff.man, doc/groff.texinfo: Improve the history part. This is based on input from Tom Van Vleck . * src/preproc/eqn/sqrt.cpp (sqrt_box::compute_metrics): Assure that value of `rst' register is not zero, as can happen for the HTML output device. Otherwise, there are too many loops, and we get a stack overflow because of recursion. 2008-10-05 Stephen Gildea * src/preproc/ref/ref.cpp (reference::compute_sort_key): Do not insert SORT_SEP before the first field, so that sort_key has the same format as before the patch of 2003-08-23. 2008-10-04 Werner LEMBERG * tmac/doc-common (doc-operating-system-*): Update releases. * tmac/an-old.tmac (an-extra1, an-extra2, an-extra3): Initialize. * tmac/andoc.tmac: Rewritten, based on a preliminary version from Tadziu Hoffmann. It can now process multiple man pages with both man and mdoc formats intermixed. * NEWS, tmac/groff_man.man, tmac/groff_mdoc.man, man/groff_tmac.man: Document it. 2008-10-04 Werner LEMBERG * src/roff/troff/input.cpp (do_suppress): Make \O[3], \O[4], and \O[5] non-transparent w.r.t. beginning-of-line recognition (similar to the other \O variants). * tmac/www.tmac (TS, TE, EQ, EN): Don't use .als for setting up default macros. This causes endless loops (at least for TE). * doc/groff.texinfo: Improve documentation of `.als'. 2008-10-03 Werner LEMBERG * src/devices/grops/grops.man, src/roff/troff/troff.man, src/preproc/soelim/soelim.man: Correct documentation of -I switch. Reported by Larry Kollar. Other minor formatting issues. 2008-10-02 Werner LEMBERG * tmac/trace.tmac: Much improved. (trace-full): New register to be set on the command line; it controls whether number and string register assignments get traced also. (!!c): New macro for comments. (rm): New traced macro. (de, de1, am, am1): Use \\[xxx]\\ calling method to pass \$0 to `!!xxx'; this makes doc.tmac completely traceable. Trace call of .de and friends also. * tmac/groff_tmac.man, NEWS: Update. 2008-09-30 Werner LEMBERG Restore behaviour of \$0 if a macro is called with string syntax (problem caused by change on 2008-09-29). * src/roff/troff/input.cpp (input_iterator, input_stack, macro_iterator): Add `get_macro_name' member function. (interpolate_string): Use it. 2008-09-29 Werner LEMBERG Make \\*[xxx]\\ within a macro (with `xxx' a macro too) work as expected. Without the patch, .de aaa \\*[bbb]\\ . tm \\$* .. .de bbb . shift .. .aaa 1 2 3 prints `2 3' instead of `1 2 3'. * src/roff/troff/input.cpp (input_iterator, input_stack, macro_iterator): Add `get_arg_list' member function. (macro): Add `is_a_string', `is_string', and `clear_string_flag' members. Update constructors and operators. (arg_list): Add copy constructor. (macro_iterator): Add optional argument to constructor to indicate whether arguments shall be inherited from calling macro. (interpolate_string): If string argument is a macro, push a macro iterator on the stack. (do_define_macro): Call clear_string_flag if macro data contains a newline. * src/roff/troff/request.h: Updated. 2008-09-29 Eric S. Raymond * doc/pic.ms: Fold in documentation of pic2plot(1) capabilities. Improve the documentation of text objects. 2008-09-28 Eric S. Raymond * contrib/pic2graph, contrib/pic2graph.man, contrib/eqn2graph, contrib/eqn2graph.man: Tweak scripts to cope with incompatible changes in ImageMagick crop options. Document the bugs. 2008-09-28 Werner LEMBERG If a macro is called as a string, inherit value of \n[.br] from the caller. This is useful for `trace.tmac'. * src/roff/troff/input.cpp (string_iterator): New members `with_break' and `get_break_flag'. (string_iterator::string_iterator): Updated. * doc/groff.texinfo: Improve documentation of \$0 and string syntax calling of macros. Document behaviour of \n[.br] within strings. 2008-09-26 Werner LEMBERG * tmac/trace.tmac: Add copyright message. Use `.de1' where possible to make source code more readable. (so, mso, als, rn): Restore escape character before executing the request. (de, de1, am, am1): Trace `.foo' also if called as `\\[foo]'. 2008-09-24 Werner LEMBERG Fix incompatibility between `.de1' and `.do'. Without this change, the following snippet .de1 xx . tm \\n(.C .. .cp 1 .do xx prints 1 instead of 0. * src/roff/troff/input.cc (do_request): If a macro gets processed, call tok.next(). (interpolate_macro): Add optional argument. Update callers. (request::invoke): Add optional argument. (macro::invoke): Add optional argument to delay call of tok.next(). * src/roff/troff/request.h (request_or_macro): Add argument to `invoke' member. Update all derived classes. * doc/groff.texinfo: Improve documentation of .do request. 2008-09-09 Werner LEMBERG * tmac/an-old.tmac (FT): Initialize properly. Reported by Tadziu Hoffmann. 2008-09-06 Werner LEMBERG * tmac/doc-common (Dd, Os, Dt): Reset `doc-command-name' to make `.Nm' work properly if next manual page is printed. 2008-08-20 Werner LEMBERG * src/preproc/tbl/tbl.man: Document computation of element widths. 2008-08-20 Alexey Gladkov Werner LEMBERG Add default encoding option -D to preconv and groff. * src/preproc/preconv/preconv.cpp (default_encoding): Make it an array. Update all users. (main): Handle new option -D. (usage): Updated. * src/preproc/preconv/preconv.man: Updated. * src/roff/groff/groff.cpp (main): Handle new option -D. (synopsis, help): Updated. * src/roff/groff/groff.man: Updated. 2008-07-26 Werner LEMBERG * tmac/eqnrc (.EQ, .EN): Provide default definitions. Reported by Denis M. Wilson. * tmac/www.tmac (.EQ, .EN, .TS, .TE): Fix definitions. 2008-07-24 Denis M. Wilson New options -f and -k for afmtodit. * src/afmtodit/afmtodit.pl: New options `-f NAME' sets the internal name of the groff font. New option `-k' disables output of kerning data. * src/afmtodit/afmtodit.man, NEWS: Document new options. 2008-07-18 Werner LEMBERG * src/preproc/tbl/table.cpp (table::compute_separation_factor): Emit warning messages if table gets squeezed. (table::compute_widths): Fix computation of AVAILABLE_REG. Emit warning if table is wider than line length. * src/preproc/tbl/tbl.man: Minor improvements. 2008-05-02 Larry Jones * contrib/chem/Makefile.sub (README, examples/README): In makefiles, the `$<' macro is only guaranteed to be defined in inference rules, not in explicit target rules. Since there is only one input file in the places where it is used, the `$?' macro (which is guaranteed to be defined for both kinds of rules) is a suitable replacement. * hdtbl/examples/fonts_n.in, hdtbl/examples/fonts_n.in: Most versions of ls don't have a `--color' option. 2008-04-30 Larry Jones * Makefile.comm (depend.temp): Add `EXTRA_CCFLAGS'. 2008-04-29 Larry Jones * src/eqn/script.cpp (script_box::output): Portability fix. 2008-04-05 Dorai Sitaram Add better support for `.TAG #