2012-07-03 Werner LEMBERG Fix Unicode mapping of Greek stroked and curly phi. Problem reported by Alkis Georgopoulos ; see https://bugs.launchpad.net/ubuntu/+source/groff/+bug/1008115 * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Flip values of U+03C6 and U+03D5. 2012-06-13 Deri James * src/devices/gropdf/gropdf.pl: When using variable page sizes (with \X'papersize ...') ensure final page is correct size. 2012-05-24 Werner LEMBERG * src/roff/grog/grog.pl (process): Fix .so handling. This does the same as the previous commit. 2012-05-24 Denis M. Wilson * src/roff/grog/grog.sh: Fix .so handling. See http://lists.gnu.org/archive/html/bug-groff/2012-05/msg00000.html for the report and the bug fix. 2012-05-24 Ivan Shmakov Add some generic fallback characters. * tmac/fallbacks.tmac: New file. * tmac/troffrc: Include it. * tmac/Makefile.sub (NORMALFILES): Include it. 2012-05-20 Deri James * doc/groff.texinfo: Add extra info about `.asciify'. Document new gropdf options -u and -s. * src/devices/gropdf/gropdf.man: Remove references to Type 42 fonts, they do not work in PDFs. Document new option -s which adds `statistics' line to end of PDF file showing number of pages in document. This has always been the default behaviour (to add this line), all other software seems to ignore it as intended, but `gs' sometimes complains, so the default is now to omit the statistics. Document new option -u[cmapfilename] to allow a user ToUnicode CMap instead of gropdf's default. If no `cmapfilename' given then do not include any ToUnicode CMap. * src/devices/gropdf/gropdf.pl : Allow `bundled' flags on command line (i.e. -de = -d -e). Use $RT_SEP as multi path separator, not hard coded `:'. Update all users. New flags -u and -s. Once a custom papersize has been set as \X'papersize x,y' make it sticky so all following pages use custom size. When importing pdf with \X'pdf: pdfpic ...' do not compress objects which are already compressed! This caused problems with PDFs created with ImageMagick, now fixed. (IsText, PutLine, do_t): The troff `u' command can contain a kerning adjustment number, this was not being handled, now fixed. (do_c): The troff `c' command was not being handled correctly, now fixed. (FindChar, RemapChr, do_N): Handle fonts with more than 255 glyphs. ($ucmap): Define CMap ToUnicode to convert ligatures (fl,fi,ff,ffl,ffi) back to individual characters, useful for cut'n'paste and text searching. (LoadFont): Handle it. (ToPoints, GetPoints): Handle `z' unit. (do_x, FixPDFColour, PutHotSpot): Allow Annotation colour to be groff colour, i.e. 0-65535 *3, or #rrggbb, or #rrrrbbbbgggg. (do_p):The papersize width/length in switch -p were reversed, corrected. * src/devices/gropdf/Makefile.sub (gropdf): Use $RT_SEP. Use $fontpath rather than $fontdir (this ensures site-font is included in searches). * tmac/pdf.tmac (PDFBOOKMARK.VIEW, PDFHREF.VIEW, PDFPAGE.Y): Fix strings. (pdfbookmark): Correct handling of bookmark levels. Convert \[em] to hyphen in bookmarks Rather use -N than -T for "named" bookmarks (-T already used for "tag" in pdfmark.tmac) (.pdfclean): New macro which attempts to asciify bookmark text. (.pdfpagename): New wrapper macro for \X'pdf: pagename'. (.pdfswitchtopage): New wrapper macro for \X'pdf: switchtopage'. 2012-03-10 Werner LEMBERG Fix compiler warnings. * src/preproc/html/pre-html.cpp (alterDeviceTo): Avoid ambiguous if-else clause. * src/preproc/grn/main.cpp (sccsid): Comment out. * src/roff/troff/number.cpp (parse_expr) : Add cast. * src/devices/xditview/Makefile.sub (EXTRA_CFLAGS): Add `-Dlint' so that unused static ID arrays don't cause a warning. (Some) problems reported by Bjarni Ingi Gislason . 2012-03-05 Werner LEMBERG * tmac/an-ext.tmac (SY): Handle argument with spaces correctly. Problem reported by Bjarni Ingi Gislason . 2012-03-01 Bjarni Ingi Gislason [an-old] Fix warnings. * tmac/an-old.tmac (an-init): Insert missing braces. 2012-02-26 Werner LEMBERG Update configuration files from `gnulib' and `config' repositories. This also fixes a problem with `iconv' on Solaris 10, as reported in http://lists.gnu.org/archive/html/bug-groff/2012-02/msg00007.html * configure.ac: Call `gl_LOCALCHARSET. Call `AM_ICONV' as C++. * config.guess, config.rpath, config.sub, install-sh, mkinstalldirs: Updated. * m4/codeset.m4, m4/glib21.m4, m4/iconv.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: Updated. * m4/fcntl-o.m4, m4/localcharset.m4: New files. * Makefile.in: Updated. * src/include/localcharset.h, src/libs/libgroff/config.charset, src/libs/libgroff/localcharset.c: Updated. * aclocal.m4, configure, src/include/config.hin: Regenerated. 2012-02-20 Werner LEMBERG Update `gnulib' files. The invocation was gnulib-tool --add-import \ --dir=src/libs/gnulib \ wcwidth Additionally, src/libs/gnulib/configure.ac was adjusted from a `test' run as described in the change from 2010-12-13. * src/libs/gnulib/*: Updated. 2012-02-15 Deri James [gropdf] Fixes and omissions. * src/devices/gropdf/gropdf.pl (, do_u): Add facility to handle track kerning (.tkf). (do_x, do_p, do_t): If pages are reordered using `pagename' and `switchtopage' keep track of outline bookmarks. (do_x): Handle multiple files on gropdf command line, stitch multiple groff_out files together. In the main read loop any argc values not consumed by options are taken as input files and processed in order. What prevented it working properly before is the way an `x i' (initialize) record has been handled. It now processes the initialization code only in the first file. (PutHotSpot): Allow user to control size of hotspot bounding box on clickable links by setting PDFHREF.LEADING * tmac/pdf.tmac (PDFHREF.LEADING): Adjust value. (pdf*href): Pass value of PDFHREF.LEADING to gropdf. 2012-02-10 Deri James [gropdf] Fix compatibility issues with pdfmark. * tmac/pdf.tmac (PDFHREF.VIEW.LEADING): Fix value. (pdf:href.opt-X): Add check for -X option for .pdfhref. 2012-02-08 Werner LEMBERG * src/preproc/pic/main.cpp (do_file): Check for invalid characters. Problem reported by Doug McIlroy . 2012-01-25 Ingo Schwarze [mdoc] * tmac/doc-syms: Fix meaning of XBD acronym. 2012-01-25 Tadziu Hoffmann * tmac/e.tmac (bl): Make it work inside blocks. See threads starting with http://lists.gnu.org/archive/html/groff/2011-12/msg00055.html http://lists.gnu.org/archive/html/groff/2012-01/msg00000.html 2012-01-10 Bruno Haible Fix handling of MAKEFLAGS variable. * Makefile.in (MAKE_K_FLAGS): Improved definition, as explained and discussed in http://lists.gnu.org/archive/html/groff/2012-01/msg00039.html 2012-01-03 Ingo Schwarze Improve parallel builds. Some hdtbl and mom examples want PostScript formatting which requires the `DESC' file to be ready; however, the top-level `Makefile.in' doesn't currently enforce the proper order of building of `font/dev' before `contrib/hdtbl', `contrib/mom', and so on. Given that `font/dev' and the contrib examples are in different child processes of the recursive make system, it doesn't seem possible to solve this using clean Makefile dependencies. We now enforce the order by splitting the shell command invoking recursive make in the top level `Makefile.in'. * Makefile.in (ALLDIRS): Remove `OTHERDIRS'. (dodirs): Updated. (`$(TARGETS)'): Handle `OTHERDIRS' separately. 2012-01-03 Kristaps Dzonsons [mdoc] Add `-isoC-2011'. * tmac/doc-syms (doc-str-St--isoC-2011): Add it. * tmac/groff_mdoc.man: Document it. 2011-12-26 Deri James * font/devpdf/Makefile.sub: Only build fonts on first `make'. 2011-12-08 Werner LEMBERG * doc/groff.texinfo (.tl): Improve documentation. Wording suggested by Keith Marshall . 2011-12-01 Werner LEMBERG [me] Fix behaviour of centered block. Problem and possible fix reported in thread starting at http://lists.gnu.org/archive/html/groff/2011-11/msg00002.html * tmac/e.tmac (`(c'): Always start with a new line. 2011-12-01 Ingo Schwarze [man] Print volume headers like mdoc. * tmac/an-old.tmac (an-init): Add default volume name if fifth argument to `.TH' is missing. 2011-11-22 Werner LEMBERG * tmac/groff_man.man: Minor documentation improvements. Suggested by Jeff Conrad . 2011-11-14 Werner LEMBERG * doc/groff.texinfo: Improve doc for calling undefined identifiers. 2011-11-14 Werner LEMBERG * src/preproc/tbl/tbl.man: Improve documentation of `_' and friends. 2011-10-31 Werner LEMBERG Fix compiler warnings. * src/preproc/eqn/main.cpp (do_file), src/roff/troff/env.cpp (environment::print_env), src/roff/troff/mtsm.cpp (statem::display_state): Add syntactical sugar. * src/utils/tfmtodit/tfmtodit.cpp (char_info_word): Use `unsigned char' for all members. * src/devices/grohtml/html-text.cpp (html_text::remove_def): Remove unused variable `q'. * src/devices/grohtml/post-html.cpp (html_printer::lookahead_for_tables): Remove unused variable `left' and `seen_text'. 2011-10-23 Ingo Schwarze [mdoc] Synchronize string tables with the mandoc(1) utility. * tmac/doc-common: Add many architecture names used in NetBSD and OpenBSD (and "arm" from FreeBSD) and remove the duplicate OS version entry for Darwin-10.6.0. * tmac/doc-syms: Add many library names used in NetBSD and FreeBSD. * tmac/groff_mdoc.man: Document all supported architecture names, OS versions, and library names. 2011-09-11 Joseph Koshy [mdoc] Add some library strings. * tmac/doc-syms: Add `libdwarf' and `libelf'. * tmac/groff_mdoc.man: Document them. 2011-08-14 Deri James [gropdf] More minor fixes. * font/devpdf/Makefile.sub (MOSTLYCLEANADD): Don't attempt to install 'util/BuildFoundries', only used in 'make'. * src/devices/gropdf/gropdf.pl (, GetType1): Make STDOUT and any font files read to be accessed in binary rather than text mode. Prevents errors when running on systems set up for UTF-8. 2011-08-10 Deri James [gropdf] Minor updates and fixes. * src/devices/gropdf/gropdf.pl: Change command line option `-fy' to `-y' for consistency. Better support for Windows platform. (do_x): Handle keywords `pagename' and `switchtopage'. * doc/groff.texinfo, src/devices/gropdf/gropdf.man: Updated. * font/devpdf/Foundry: Renamed to... * font/devpdf/Foundry.in: This. Add default alias font names. * font/devpdf/util/BuildFoundries.pl: This is now an installation helper script and gets not longer installed. Support alternative font file names (separated with `!'). * font/devpdf/Makefile.sub: Fixes to work with a separate build directory. Font files are now build at `make' time; this makes `test-groff' work with -Tpdf. * font/devpdf/util/Makefile.sub: Removed. * Makefile.in (DEVDIRS, OTHERDIRS, EXTRADIRS): Handle devpdf specially. 2011-07-29 Daiki Ueno Fix cross building. Problem reported by Christophe Jarry . * Makefile.in ($GNULIBDIRS): Pass original config arguments to src/libs/gnulib/configure. 2011-06-25 Deri James Add new output device `gropdf'. * font/devpdf/*: New device files for gropdf. * src/devices/gropdf/*: New device. * Makefile.comm (install_dev, uninstall_dev): Handle more subdirectories. * Makefile.in (DEVDIRS, OTHERDIRS, EXTRADIRS): Add directories related to gropdf. * MANIFEST: Updated. * test-groff.in (GROFF_BIN_PATH): Updated. * tmac/Makefile.sub (NORMALFILES): Updated. * tmac/pdf.tmac: New file. * tmac/troffrc: Updated. * doc/groff.texinfo: Document it. * doc/Makefile.in, doc/Makefile.sub (groff_bin_dirs): Udpated. * doc/pic.ms: Updated. * man/groff_out.man, src/devices/grops/grops.man, src/preproc/pic/pic.man, src/roff/groff/groff.man, src/utils/afmtodit/afmtodit.man, src/utils/pfbtops/pfbtops.man: Updated. * contrib/pdfmark/pdfmark.ms: Updated. 2011-07-20 George HELFFRICH Improve line numbering support in tbl and with me macros. * tmac/e.tmac (n1, n2, TH, PS): Implement it. (@h, @n, @o, @t, @k, )b, (c, (q, )q, (l, )l, (f, @q, PE): Updated. * doc/meref.me: Document changes. * src/preproc/tbl/table.cpp (ROW_START_LINE_REG, ROW_SAVE_LINE_REG, ROW_MAX_LINE_REG, REPEATED_NM_SET_MACRO, REPEATED_NM_SUS_MACRO): New macros. (table::init_output): Define REPEATED_NM_SET_MACRO and REPEATED_NM_SUS_MACRO. (table::print_single_hline, table::print_double_hline, table::define_bottom_macro, table::do_row, table::do_top, table::do_bottom): Updated. * doc/webpage.ms: Updated. 2011-07-12 Ted Harding Werner LEMBERG * src/preproc/tbl/tbl.man: Mention trick to get abutting rules. 2011-07-03 Ben Laurie Fix clang warnings. * src/libs/libdriver/input.cpp (odd): Use parentheses. * src/roff/troff/mtsm.cpp (state_set::is_in): Fix parentheses; previous code always tested for bit 0. 2011-07-03 Guillem Jover mdoc: Update more OS versions strings. * tmac/doc-common: Add versions strings for NetBSD, OpenBSD, FreeBSD, and DragonFly. 2011-04-08 Michail Vidiassov mdoc: Update various strings related to Mac OS X and FreeBSD. * tmac/doc-common: Add strings for FreeBSD 8.2 and Darwin 9.7-11.0. * tmac/doc-syms: Add strings -lbsm and -lSystem. 2011-03-29 Christian Weisgerber Fix compilation issues with gcc 2.95. * src/roff/troff/input.cpp (my_input_iterator): Define as an alias for `input_iterator' which is predefined by an old libstdc++. 2011-03-29 Ingo Schwarze Add another POSIX standard. * tmac/doc-syms: Add POSIX 1003.1b. 2011-03-29 Christian Weisgerber Fix build with non-GNU make. * Makefile.in ($TARGETS): We must not pass `$MDEFINES' recursively down to the sub-makes started in src/libs/gnulib, because that directory has its own values for `$top_srcdir' etc., and overriding those from the command line will cause the build to fail. Currently, `$MAKEOVERRIDES' will prevent the recursive passing of those overrides with GNU make, but not with other make(1) implementations. It looks like all targets that require `$MDEFINES' set them explicitly anyway, so we shouldn't need to set `$MDEFINES' on the top level. 2011-03-21 Jan Vcelak Bernd Warken [groffer] Remove hardcoded path to 'libdir/groff/groffer' directory. * configure.ac: add GROFFERDIR variables. * Makefile.in: add and handle variable groffer_dir * m4/groff.m4: set up the --with-grofferdir command line option. 2011-03-18 Werner LEMBERG [troff] Improve error message. * src/roff/troff/input.cc (token::delimiter): Improve error message. Suggested by Doug McIlroy . 2011-03-04 Werner LEMBERG [mdoc] Within .An, .Aq, .Ao, and .Ac now use `<' and `>'. Problem reported by Ulrich Spörlein * tmac/doc.tmac (Aq, Ao, Ac): Implement it to follow RFC 822 and RFC 2822. 2011-02-14 Werner LEMBERG * doc/groff.texinfo: Add another example for .em request Based on a patch from Anton Shepelev . 2011-01-31 Werner LEMBERG More fixes for Savannah bug #32301. * src/devices/grops/Makefile.sub (XLIBS), src/devices/grodvi/Makefile.sub, src/devices/grolj4/Makefile.sub, src/devices/grohtml/Makefile.sub, src/devices/grolbp/Makefile.sub: Add $(LIBGNU). 2011-01-31 Werner LEMBERG Fix Savannah bug #32301. * src/roff/groff/Makefile.sub (XLIBS), src/preproc/grn/Makefile.sub, src/preproc/html/Makefile.sub: Add $(LIBGNU). 2011-01-29 Krzysztof Żelechowski * doc/groff.texinfo: Complete documentation on output devices. 2011-01-28 Werner LEMBERG Handle `refer*.tmac'. * tmac/Makefile.sub (NORMALFILES): Add `refer*.tmac'. * tmac/refer-mm.tmac: Moved to contrib/mm. 2011-01-28 Werner LEMBERG Improve `refer' support of -me. * tmac/refer.tmac, tmac/refer-me.tmac, tmac/refer-ms.tmac, tmac/refer-mm.tmac: New files. The code in refer.tmac is based on the old code from `s.tmac'. * tmac/s.tmac: Remove direct refer support and include `refer-ms.tmac' instead. * tmac/e.tmac: Remove direct refer support and include `refer-me.tmac' instead. * NEWS: Updated. 2011-01-22 Werner LEMBERG [groff.texinfo]: Updates. * doc/groff.texinfo: Document groff's `-j' option. Add dummy section for `chem' preprocessor. 2011-01-22 Werner LEMBERG Update `grog'. * src/roff/grog/{groff.sh,groff.pl}: `groff' now calls `pic' automatically if `grap' or `chem' is used. `chem' has been folded into `groff'. * src/roff/grog/grog.man: Updated. 2011-01-22 Werner LEMBERG Make `groff -G' imply `-p'. * src/roff/groff/groff.cpp (main): Implement it. * src/roff/groff/groff.man: Updated. 2011-01-22 Werner LEMBERG Integrate `chem' into `groff' (new option -j). * src/roff/groff/groff.cpp (CHEM_INDEX): New constant. (main) ['j']: Add `chem'. (synopsis, help): Updated. * src/roff/troff/pipeline.h (MAX_COMMANDS): Increase to 14. * src/roff/groff/groff.man: Document new command line option. * NEWS: Updated. 2011-01-22 Werner LEMBERG * doc/groff.texinfo: `chem' is now part of groff. 2011-01-22 Werner LEMBERG * doc/groff.texinfo: Improve description of `.de'. Based on suggestions by Ted Harding and Deri James. 2011-01-20 Colin Watson Fix handling of wide characters in no-SGR mode. * src/devices/grotty/tty.cpp (tty_printer::make_underline): Only emit a single backspace in no-SGR mode. less (at least) backspaces over a character at a time. (tty_printer::make_bold): Likewise. 2011-01-19 Werner LEMBERG * src/preproc/pic/pic.man: Add pic manual to `SEE ALSO' section. 2011-01-14 Werner LEMBERG Split ChangeLog. * ChangeLog: Split off older entries into... * ChangeLog.119, ChangeLog.120: these new files. 2011-01-15 Colin Watson * Makefile.comm (INCLUDES): Fix typo. 2011-01-05 Werner LEMBERG * doc/webpage.ms: Fix rendering of title image. 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. Copyright 2009-2012 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. Local Variables: version-control: never coding: utf-8 End: