summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:44:05 +0000
commitd318611dd6f23fcfedd50e9b9e24620b102ba96a (patch)
tree8b9eef82ca40fdd5a8deeabf07572074c236095d /ChangeLog
parentInitial commit. (diff)
downloadgroff-d318611dd6f23fcfedd50e9b9e24620b102ba96a.tar.xz
groff-d318611dd6f23fcfedd50e9b9e24620b102ba96a.zip
Adding upstream version 1.23.0.upstream/1.23.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--ChangeLog18665
-rw-r--r--ChangeLog.1156156
-rw-r--r--ChangeLog.1161397
-rw-r--r--ChangeLog.1172199
-rw-r--r--ChangeLog.1183803
-rw-r--r--ChangeLog.1195240
-rw-r--r--ChangeLog.1203053
-rw-r--r--ChangeLog.121788
-rw-r--r--ChangeLog.1225331
9 files changed, 46632 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..bfcc345
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,18665 @@
+2023-06-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Offer advice to users of PDF who want a table of contents
+ at the front of the document.
+
+ * doc/groff.texi (ms Document Structure): Move mention of
+ pdfjam(1) from here...
+ (ms TOC): ...to here, and identify alternatives, including
+ gropdf(1)'s `pdfswitchtopage` macro.
+
+ * doc/ms.ms (General structure of an ms document):
+ (Creating a table of contents): Similar.
+
+ Fixes <https://savannah.gnu.org/bugs/?64278>. Thanks to Michał
+ Kruszewski for the report.
+
+2023-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Migrate terminology to "scaling unit".
+
+ ...from "scaling indicator".
+
+ Fixes <https://savannah.gnu.org/bugs/?60957>. Thanks to Ingo
+ Schwarze for the discussion.
+
+2023-05-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Revise discussion of fonts.
+
+ * doc/groff.texi:
+ - Rename node/section "Fonts and Symbols" to "Using Fonts". Add
+ giant new introduction, properly establishing terminology.
+ - Rename node/section "Changing Fonts" to "Selecting Fonts".
+ Shift location of `.fn` and `.sty` register documentation.
+ Rewrite presentation of `ft` and `\f`. Discuss typeface
+ selection by mounting position and font (or style) name
+ together; since arguments to these formatter instructions are
+ always interpreted as mounting positions first, it doesn't
+ make much sense to me to present them separately, and the new
+ introduction provides the necessary background. Tighten
+ example. Document that current and previous font selections
+ are environment properties.
+ - Add several concept index entries.
+ - Do more migration from "symbol" and "glyph" names to "special
+ character" names.
+
+ * man/groff.7 (Using fonts): Introduce new section, synced with
+ the renamed node from our Texinfo manual above.
+
+ Fixes <https://savannah.gnu.org/bugs/?62973>.
+
+2023-05-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Revise "Page Layout" material.
+
+ * doc/groff.texi:
+ - Recast generally.
+ - Describe behavior of `pl` in more detail.
+ - Migrate terminology from "scaling indicator" to "scaling
+ unit".
+ - Stop discussing page margins in the context of the `pl`
+ request.
+ - Move concept index entries regarding margins from here to
+ "Traps".
+ - Move discussion of `pn` request to precede `tl` request.
+ - Add concept index entries.
+ - Recast description of `tl` request. Migrate terminology from
+ "justification" to "alignment".
+ - Recast description of `lt` request. Describe behavior in more
+ detail.
+ - Recast description of `pc` request.
+ - Add example of `lt` and `tl` usage. Add forward reference to
+ "Traps", mentioning page header and footer traps.
+
+ Fixes <https://savannah.gnu.org/bugs/?55124>. Thanks to Dave
+ Kemper for the report.
+
+2023-05-22 Dave Kemper <saint.snit@gmail.com>
+
+ [docs]: Correct minor punctuation, grammar, and spelling issues.
+
+ Also remove a couple instances of unnecessarily telling the
+ reader to note something.
+
+ * doc/groff.texi:
+ * man/groff.7.man:
+ * man/groff_char.7.man:
+ * man/groff_diff.7.man:
+ * man/roff.7.man:
+ * src/roff/nroff/nroff.1.man: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?64230>. [I threw in a few
+ more fixes. --GBR]
+
+2023-04-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Attempt to further clarify end-of-sentence detection.
+
+ * doc/groff.texi (Sentences):
+ * man/roff.7 (Concepts): Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?64091>. Thanks to Ingo
+ Schwarze and Dave Kemper for the report.
+
+2023-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Minimally document `tag`, `taga` requests.
+
+ * doc/groff.texi (Postprocessor Access):
+ * man/groff.7 (Request short reference): Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?62695>.
+
+2023-04-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Fix typos.
+
+ * doc/groff.texi (ms basic information):
+ * doc/ms.ms (Basic information): Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?64032>. Thanks to an
+ anonymous reporter.
+
+2023-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Operators in Conditionals):
+ * man/groff.7.in (Conditional expressions): Clarify how the
+ output comparison operator is recognized.
+
+ Fixes <https://savannah.gnu.org/bugs/?63812>. Thanks to John
+ Gardner for the report.
+
+2023-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Use a better type for symbol hashes.
+
+ * bootstrap.conf: Add "stdint" module to ensure that the
+ `uintptr_t` type is available.
+ * src/include/symbol.h: Include <stdint.h> for `uintptr_t`.
+ (class symbol):
+ (symbol::hash): Change return type from `unsigned long`, which
+ causes build failures on 64-bit MinGW, to `uintptr_t`.
+ (symbol::hash): Use a C++ type cast, not a C-style one.
+
+ Thanks to Bruno Haible for reporting the build failure in the
+ 64-bit MinGW environment, and for suggesting a remedy.
+
+2023-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [groff]: Revise a test to be more revealing.
+
+ * src/roff/groff/tests/initialization_is_quiet.sh: Stop using
+ "set -e". Instead use `fail` variable and `wail` function (and
+ lowercase names for our internal variables) like many of our
+ other tests. If the "unset" shell built-in fails, skip the
+ test (prompted by /usr/xpg4/bin/sh on Solaris). Attempt every
+ groff locale, with and without compatibility mode initially
+ enabled, instead of stopping at the first failure. Report
+ standard error and standard output content separately. Use
+ groff's `-a` flag to prepare the standard output, for
+ readability.
+ * PROBLEMS: Document that this test might be skipped rather than
+ failing on Solaris. (What actually happens depends on which
+ shell you run it with, and we advise a variety of approaches.)
+
+ Thanks to Bruno Haible for feedback regarding mysterious
+ failures of this test on GNU/Hurd and NetBSD systems.
+
+2023-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * bootstrap.conf (gnulib_modules): Add "stdbool-c99" per
+ recommendation from Bruno Haible.
+
+ Fixes build problem on Solaris using Sun compiler.
+
+2023-03-06 Bruno Haible <bruno@clisp.org>
+
+ * Makefile.am (AR): Remove hardcoded value. Let Automake use the
+ value from config.status.
+
+ {Fixes build problem on 64-bit AIX. Problem appears to date
+ back to commit 5fec19d453, 2014-08-15. --GBR}
+
+2023-03-06 Bruno Haible <bruno@clisp.org>
+
+ * arch/misc/misc.am (shdeps.sed): Rename target from this...
+ ($(SH_DEPS_SED_SCRIPT)): ...to this, to work better with make(1)
+ on FreeBSD, NetBSD, and AIX.
+
+2023-03-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Discard now-unneeded Autoconf macro and variables.
+
+ * configure.ac: Stop calling `GROFF_POPPLER`. Stop populating
+ the Automake conditional `HAVE_PDFTOOLS`. Eliminate chatter
+ about their availability in the configuration report.
+ * m4/groff.m4 (GROFF_POPPLER): Delete.
+
+2023-03-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS_NOTICE): Adapt wording of notice
+ to presence and identity of Ghostscript interpreter command.
+ Clarify that it is gropdf(1) specifically that traverses the
+ Ghostscript search path reported by its "-h" option.
+
+ Continues <https://savannah.gnu.org/bugs/?63808>. Thanks to
+ Deri James for the ongoing discussion.
+
+2023-02-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [devpdf]: Revise tests.
+
+ * font/devpdf/tests/check-default-foundry.sh.in: Test only the
+ base 14 fonts of the PDF standard unconditionally. Test the
+ remainder from the set of 35 commonly distributed only if a
+ Ghostscript interpreter was detected at configuration time,
+ because the latter fonts _must_ be embedded in PDF documents.
+ If they're not present, skip the test rather than failing it.
+ * font/devpdf/tests/check-urw-foundry.sh.in: Skip test if no URW
+ fonts detected at configuration time, rather than failing it.
+ * m4/groff.m4 (GROFF_GROPDF_PROGRAM_NOTICE)
+ (GROFF_URW_FONTS_NOTICE): Drop warnings of expected test
+ failures. The tests no longer fail in the anticipated
+ circumstances.
+
+2023-02-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [devpdf]: Generate tests from template files, so we can populate
+ the test scripts with information determined at configuration.
+ The default foundry test depends on $GHOSTSCRIPT, and the URW
+ foundry test on $urwfontsdir.
+
+ * font/devpdf/tests/check-default-foundry.sh:
+ * font/devpdf/tests/check-urw-foundry.sh: Rename these...
+ * font/devpdf/tests/check-default-foundry.sh.in:
+ * font/devpdf/tests/check-urw-foundry.sh.in: ...to these.
+
+ * font/devpdf/devpdf.am (font_devpdf_default_test)
+ (font_devpdf_urw_test): New variables store names of generated
+ test scripts.
+ (font/devpdf/tests/check-default-foundry.sh):
+ (font/devpdf/tests/check-urw-foundry.sh): New targets produce
+ test scripts from corresponding .in files.
+
+2023-02-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [devpdf]: Trivially refactor. Rename sed-substitutum [Lat.]
+ from "@GROFF_GHOSTSCRIPT_INTERPRETERS@" to "@GHOSTSCRIPT@" for
+ clarity and brevity; this is a scalar value containing the
+ Autoconf-determined name of the Ghostscript interpreter. It is
+ not the same as the replacement that occurs in contrib/pdfmark.
+
+ * font/devpdf/devpdf.am:
+ * font/devpdf/util/BuildFoundries.pl: Do it.
+
+2023-02-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Stop scraping output of Ghostscript executable with
+ "-h" option to attempt to find URW fonts. Fonts that ship with
+ Ghostscript are regarded as the "default" foundry, not the URW
+ foundry (though they often ultimately originate with URW fonts).
+ They are often missing Adobe Font Metric (AFM) files, so it is
+ impossible for groff to generate font description files for them
+ at build time.
+
+ * m4/groff.m4 (GROFF_URW_FONTS_CHECK): Drop `AC_REQUIRE` on
+ `GROFF_AWK_PATH`. Drop awk-based scraping of Ghostscript "-h"
+ output. Annotate need for sync between this list of
+ characteristic font file names and the one in BuildFoundries.
+
+ Thanks to Deri James for the ongoing discussions.
+
+2023-02-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Drop now-redundant explicit
+ `GROFF_URW_FONTS_CHECK`. `GROFF_GROPDF_DEPENDENCIES_CHECK`
+ `AC_REQUIRE`s it as of commit ec001d2a23, 18 February.
+
+2023-02-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS_CHECK): When looking for a
+ characteristic URW font by its file name, also check for
+ "URWGothic-Book" with no file extension. Avoids false negatives
+ in URW Type 1 font detection when using Ghostscript 9.53.3.
+ Thanks to Deri James for suggesting the test procedure that
+ uncovered this flaw.
+
+2023-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am (uninstall_groffdirs): Remove "html.mono" and
+ "html.node" directories corresponding to HTML version of our
+ Texinfo manual.
+ * doc/doc.am (uninstall-html): Uninstall HTML version of our
+ Texinfo manual more reliably.
+
+ Fixes a regression introduced by me in commit c2698aade, 6 April
+ {my claim "we're only deleting files with this command, not
+ directories" was not correct}.
+
+2023-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [doc]: Handle output formats of our Texinfo manual more
+ consistently.
+
+ * doc/doc.am (install-doc): Add dependency on (Automake
+ standard) target 'install-dvi'.
+ (maintainer-clean-local): Remove our Texinfo manual in plain
+ text format.
+ (install-data-local): Add dependency on new target
+ 'install-txt'.
+ (install-txt): Install our Texinfo manual in plain text format.
+ (uninstall-local): Add dependency on new target 'uninstall-txt'.
+ (uninstall-txt): Uninstall our Texinfo manual in plain text
+ format.
+
+ Thanks to T. Kurt Bond for noticing the discrepancy.
+
+2023-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (install-pdf-local, install-html-local): Enable
+ rules to work in out-of-tree builds.
+
+2023-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (uninstall-hook): Drop dependency on
+ "uninstall_mom"; this is not the appropriate place to declare
+ it, and "uninstall_groffdirs" already depends on it in mom's
+ Automake file.
+
+2023-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Have more tests report output.
+
+ * src/roff/groff/tests/ab_works.sh:
+ * src/roff/groff/tests/handle_special_input_code_points.sh:
+ * src/roff/groff/tests/initialization_is_quiet.sh:
+ * src/roff/groff/tests/msoquiet_works.sh:
+ * src/roff/groff/tests/soquiet_works.sh:
+ * tmac/tests/an-ext_MR-works.sh:
+ * tmac/tests/an_MR-works.sh: Do it.
+
+2023-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Prevent failures when $GROFF_ENCODING is set.
+
+ * src/roff/groff/tests/ab_works.sh:
+ * src/roff/groff/tests/handle_special_input_code_points.sh:
+ * src/roff/groff/tests/initialization_is_quiet.sh:
+ * src/roff/groff/tests/msoquiet_works.sh:
+ * src/roff/groff/tests/soquiet_works.sh:
+ * tmac/tests/an-ext_MR-works.sh:
+ * tmac/tests/an_MR-works.sh:
+ * tmac/tests/an_font-remapping-does-not-affect-titles.sh: Unset
+ $GROFF_ENCODING before running test because preconv(1) confounds
+ these tests.
+
+ Thanks to Alexis for reporting this problem.
+
+2023-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Rename test.
+
+ * tmac/tests/s_no-excess-space-around-displays.tmac: Rename...
+ * tmac/tests/s_no-excess-space-around-displays.sh: ...to this.
+ * tmac/tmac.am (tmac_TESTS): Update.
+
+2023-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gropdf]: Revise tests to run unconditionally, rather than
+ configuring them away at build time, which can cause a
+ distribution archive to be incorrectly structured. Update
+ configuration notices when optional dependencies are absent.
+
+ * font/devpdf/devpdf.am (font_devpdf_TESTS): Remove `USE_GROPDF`
+ and `HAVE_URW_FONTS` conditionals.
+ * m4/groff.m4 (GROFF_GROPDF_PROGRAM_NOTICE):
+ (GROFF_URW_FONTS_NOTICE): Warn reader that a gropdf test failure
+ is to be expected.
+
+ Fixes <https://savannah.gnu.org/bugs/?63824> (2/2).
+
+2023-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Revise tests to check for requisite programs at test
+ time and skip if not found, rather than configuring them away at
+ build time, which can cause a distribution archive to be
+ incorrectly structured.
+
+ * m4/groff.m4: Annotate requisite program list since we're
+ violating the DRY principle.
+ * src/roff/groff/groff.am (groff_TESTS): Populate
+ unconditionally.
+
+ * src/roff/groff/tests/html_works_with_grn_and_eqn.sh:
+ * src/roff/groff/tests/smoke-test_html_device.sh: Check for
+ requisite programs and skip test if any are not found.
+
+ Fixes <https://savannah.gnu.org/bugs/?63824> (1/2).
+
+2023-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man pages]: Define page-local `MR` fallback.
+
+ [man pages]: Provide page-local fallback definition of new `MR`
+ macro. I didn't think I was going to have to do this, but the
+ premier site on the web for viewing Linux man pages, Michael
+ Kerrisk's man7.org, has been pulling snapshots of the pages
+ themselves without upgrading the underlying macros, and so man
+ page cross references set with `MR` are getting lost in its
+ presentations. (I acknowledge: Ingo Schwarze warned me
+ something like this could happen.) This definition is intended
+ as a stopgap measure only. I want to revert this after groff
+ 1.23 is released and has spread to some reasonable degree.
+
+ * contrib/chem/chem.1.man:
+ * contrib/eqn2graph/eqn2graph.1.man:
+ * contrib/gdiffmk/gdiffmk.1.man:
+ * contrib/glilypond/glilypond.1.man:
+ * contrib/gperl/gperl.1.man:
+ * contrib/gpinyin/gpinyin.1.man:
+ * contrib/grap2graph/grap2graph.1.man:
+ * contrib/hdtbl/groff_hdtbl.7.man:
+ * contrib/mm/groff_mm.7.man:
+ * contrib/mm/groff_mmse.7.man:
+ * contrib/mm/mmroff.1.man:
+ * contrib/mom/groff_mom.7.man:
+ * contrib/pdfmark/pdfroff.1.man:
+ * contrib/pic2graph/pic2graph.1.man:
+ * contrib/rfc1345/groff_rfc1345.7.man:
+ * man/groff.7.man:
+ * man/groff_char.7.man:
+ * man/groff_diff.7.man:
+ * man/groff_font.5.man:
+ * man/groff_out.5.man:
+ * man/groff_tmac.5.man:
+ * man/roff.7.man:
+ * src/devices/grodvi/grodvi.1.man:
+ * src/devices/grohtml/grohtml.1.man:
+ * src/devices/grolbp/grolbp.1.man:
+ * src/devices/grolj4/grolj4.1.man:
+ * src/devices/gropdf/gropdf.1.man:
+ * src/devices/gropdf/pdfmom.1.man:
+ * src/devices/grops/grops.1.man:
+ * src/devices/grotty/grotty.1.man:
+ * src/devices/xditview/gxditview.1.man:
+ * src/preproc/eqn/eqn.1.man:
+ * src/preproc/eqn/neqn.1.man:
+ * src/preproc/grn/grn.1.man:
+ * src/preproc/pic/pic.1.man:
+ * src/preproc/preconv/preconv.1.man:
+ * src/preproc/refer/refer.1.man:
+ * src/preproc/soelim/soelim.1.man:
+ * src/preproc/tbl/tbl.1.man:
+ * src/roff/groff/groff.1.man:
+ * src/roff/nroff/nroff.1.man:
+ * src/roff/troff/troff.1.man:
+ * src/utils/addftinfo/addftinfo.1.man:
+ * src/utils/afmtodit/afmtodit.1.man:
+ * src/utils/grog/grog.1.man:
+ * src/utils/hpftodit/hpftodit.1.man:
+ * src/utils/indxbib/indxbib.1.man:
+ * src/utils/lkbib/lkbib.1.man:
+ * src/utils/lookbib/lookbib.1.man:
+ * src/utils/pfbtops/pfbtops.1.man:
+ * src/utils/tfmtodit/tfmtodit.1.man:
+ * src/utils/xtotroff/xtotroff.1.man:
+ * tmac/groff_man.7.man.in:
+ * tmac/groff_me.7.man:
+ * tmac/groff_ms.7.man:
+ * tmac/groff_trace.7.man:
+ * tmac/groff_www.7.man: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?63825>. Thanks greatly to
+ Alexis for identifying an issue with mandoc(1)'s handling of an
+ earlier iteration of this fallback, and to John Gardner for
+ identifying a method of detecting mandoc as the renderer at
+ formatting time.
+
+2023-02-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an_TS-do-not-keep-tables-when-cR-set.sh: Improve
+ portability of script by using shell constructs instead of the
+ nonstandard GNU coreutils 'seq' utility. Resolves test failure
+ on Solaris 10.
+ * HACKING: Document this problem.
+
+2023-02-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_MAKE_DEFINES_RM): Test the make(1) in the
+ environment variable $MAKE if defined, not a literal "make".
+ Required on (some) Solaris 10 configurations where traditional
+ make(1) is not installed but GNU make is installed as "gmake".
+
+2023-02-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/latin2_works.sh: Fix missing backslash in printf.
+ Solaris printf(1) was sensitive to this error; macOS and GNU
+ printf were not. Fixes a test failure on Solaris 11.
+
+2023-02-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/regression_savannah_58153.sh: Improve
+ portability. Avoid the unpredictability of implementations when
+ putting backslashes inside a groff-piped printf shell command
+ inside a here document inside a command substitution by changing
+ the groff escape character to something meaningless to the shell
+ and to printf ('@'). Fixes a test failure on Solaris 11.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/Foundry.in: Recognize URW foundry replacements for
+ Helvetica Bold-Oblique and Helvetica Oblique under the file
+ names "NimbusSans-BoldItalic.t1" and "NimbusSans-Italic.t1",
+ respectively.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (uninstall-pdf): Clean more fastidiously; try to
+ remove the configured `pdfdocdir` in the event it is empty, but
+ do not fail if it isn't. (It can be a directory shared with
+ other groff components; we don't know in what order the
+ uninstall targets will serialize, but the last one run should
+ succeed.)
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Detangle "pdfroff" and "gropdf" configuration (2/2).
+
+ * m4/groff.m4: Give pdfroff its own Autoconf macros to handle
+ dependency checking, build objectives, and user notice.
+ (GROFF_PDFROFF_DEPENDENCIES_CHECK): New macro requires
+ `GROFF_AWK_PATH` and `GROFF_GHOSTSCRIPT_PATH`, determines
+ whether pdfroff can be used at build time, and (if not)
+ constructs part of message to be shown to user explaining why.
+ (GROFF_PDFROFF_PROGRAM_NOTICE): New macro requires
+ `GROFF_PDFROFF_DEPENDENCIES_CHECK` and emits message if needed.
+ (GROFF_GHOSTSCRIPT_AVAILABILITY_NOTICE): Drop mention of impact
+ on pdfroff since its dedicated notice covers this now.
+ * configure.ac: Call the new macros at appropriate times.
+ Produce a new Automake macro, `USE_PDFROFF`, to replace
+ inapposite use of `USE_GROPDF` in pdfmark.am.
+ * contrib/pdfmark/pdfmark.am: Use `USE_PDFROFF` instead of
+ `USE_GROPDF`.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Detangle "pdfroff" and "gropdf" configuration (1/2).
+
+ * m4/groff.m4 (GROFF_GROPDF_DEPENDENCIES_CHECK): Add
+ `AC_REQUIRE`ment on `GROFF_URW_FONTS_CHECK`. Per discussion
+ with Deri James, if _either_ Ghostscript or the URW fonts are
+ avilable, gropdf will be fully functional, consequent to commit
+ d5515, 22 June. Drop dependency on awk; it is used only at
+ configuration time (in an Autoconf macro) and since Savannah
+ #62775 was resolved (19 September), it has not been strictly
+ necessary. (It is useful for searching more locations for URW
+ fonts, but several others are searched even if it is absent.)
+ Stop populating notice text here, instead moving it...
+ (GROFF_GROPDF_PROGRAM_NOTICE): ...here, since it no longer needs
+ to be dynamically constructed.
+
+ Continues <https://savannah.gnu.org/bugs/?63808>. Thanks to
+ Deri James for the continued discussion.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Rename `GROFF_CHECK_GROPDF_PROGRAMS` macro to
+ `GROFF_GROPDF_DEPENDENCIES_CHECK` to generalize for greater
+ accuracy in forthcoming change.
+
+ * configure.ac:
+ * m4/groff.m4: Do it.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gropdf]: Don't run automated tests if 'gropdf' will be
+ operating with reduced function. If neither Ghostscript nor the
+ URW fonts are available at configuration time, there is no point
+ testing for successful build-time population of the font
+ descriptions for the default and URW foundries.
+
+ * font/devpdf/devpdf.am (font_devpdf_TESTS) [USE_GROPDF]: Run
+ "check-default-foundry" only if gropdf is fully functional.
+ (font_devpdf_TESTS) [USE_GROPDF && HAVE_URW_FONTS]: Run
+ "check-urw-foundry" only if the URW fonts were found.
+
+ Continues <https://savannah.gnu.org/bugs/?63808>. Thanks to
+ Deri James for the continued discussion.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gropdf]: Rename tests to more accurately characterize their
+ purpose.
+
+ * font/devpdf/tests/basic-fonts-present.sh:
+ * font/devpdf/tests/urw-fonts-present.sh: Rename these...
+ * font/devpdf/tests/check-default-foundry.sh:
+ * font/devpdf/tests/check-urw-foundry.sh: ...to these.
+ * font/devpdf/devpdf.am (font_devpdf_TESTS): Reflect rename.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gropdf]: Revise tests to be foundry-focussed.
+
+ * font/devpdf/tests/basic-fonts-present.sh: Stop trying to match
+ font descriptions in the "devps" directory with ones in
+ "devpdf"; instead, test whether "BuildFoundries" did its job.
+ Test for font descriptions corresponding to the full 35
+ PostScript Level 2 font repertoire, plus groff's "EURO".
+ * font/devpdf/tests/urw-fonts-present.sh: Drop stale comment and
+ rename variable for better parallelism with the other test
+ above.
+
+ Continues <https://savannah.gnu.org/bugs/?63808>. Thanks to
+ Deri James for the continued discussion.
+
+2023-02-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Tweak fix to Savannah #63768.
+
+ * tmac/an.tmac (MR): Ensure `an*url` always has a value,
+ defaulting to "format 1" (man:page(section)). Resequence the
+ macOS URL formats to sort the contemporary one before the
+ others.
+ * tmac/man.local: Reflect resequencing of integer assignments to
+ formats. Clarify historicity of annotations.
+
+ Continues <https://savannah.gnu.org/bugs/?63768>. Thanks to
+ John Gardner for further discussion.
+
+2023-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Port a test to Solaris 11 sed.
+
+ * tmac/tests/s_TC-works-with-percent-in-custom-titles.sh: Put
+ newlines after opening braces in sed scripts. macOS and GNU sed
+ tolerate their absence, but this sed does not.
+ * HACKING: Document this problem.
+
+2023-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.am (groff_TESTS) [!USE_GROHTML]: Don't
+ test the 'grohtml' driver if we know it won't work.
+
+2023-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/\
+ device_control_escapes_express_basic_latin.sh: Use printf(1),
+ which is often a shell built-in command, more consistently.
+ Double backslashes intended as literals in the format string,
+ and single-quote format strings using them. Fixes test failure
+ seen on Solaris 11 with GNU Bash 4.4 and ksh 93u+ (2012-08-01).
+
+2023-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an_use-input-traps-correctly.sh: Explicitly test
+ `SM` and `SB` with 'ps' output device. If one set
+ GROFF_TYPESETTER=utf8 in the test environment, these test cases
+ would fail. Thanks to John Gardner for the report.
+
+2023-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Add Automake conditional, `HAVE_GHOSTSCRIPT`, so
+ that we can populate the list of PDF device font tests
+ dynamically. Call new macro
+ `GROFF_GHOSTSCRIPT_AVAILABILITY_NOTICE`. Call
+ `GROFF_GHOSTSCRIPT_VERSION_NOTICE` after it, but before
+ `GROFF_URW_FONTS_NOTICE`.
+ * m4/groff.m4 (GROFF_AWK_NOTICE): New macro produces warning if
+ no awk could be found. This reduces gropdf functionality, but
+ so do missing URW fonts, so we report this problem separately.
+ Report the names under which we sought it, since there's a
+ configure script option for that.
+ (GROFF_GHOSTSCRIPT_AVAILABILITY_NOTICE): New macro explains
+ consequences of missing optional dependency on Ghostscript
+ program: reduced grohtml functionality, nonfunctional pdfroff.
+ Report the names under which we sought it, since there's a
+ configure script option for that.
+ (GROFF_CHECK_GROPDF_PROGRAMS): Better characterize gropdf's
+ reduced function, pointing out the ways in which it would be
+ more useful if the dependencies were met. Also simplify the
+ computational grammar.
+ (GROFF_URW_FONTS_NOTICE): Identify 'U' as the foundry name
+ gropdf uses for the URW fonts. Confirm continuing availability
+ of most recent URW fonts release; bump date.
+ * font/devpdf/devpdf.am: Test availability of "basic" (PDF base
+ 14) fonts (plus groff's "EURO") if either Ghostscript or URW
+ fonts are available. Test availability of URW fonts (35) only
+ if Ghostscript _and_ the URW fonts were found at configuration
+ time.
+
+ Fixes <https://savannah.gnu.org/bugs/?63808>. Thanks to Deri
+ James for the report and extremely helpful pseudocode.
+
+2023-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_GHOSTSCRIPT_VERSION_CHECK,
+ GROFF_URW_FONTS_NOTICE): Add macro dependency on
+ `GROFF_GHOSTSCRIPT_PATH`, which should have been there already.
+ (GROFF_GROHTML_PROGRAM_NOTICE): Add macro dependency on
+ `GROFF_CHECK_GROHTML_PROGRAMS`, which should have been there
+ already.
+
+ (GROFF_CHECK_GROHTML_PROGRAMS, GROFF_PNMTOOLS_CAN_BE_QUIET):
+ Move `AC_REQUIRE` expansions to precede shell variable
+ assignments (after checking that the required macros don't
+ clobber the assignments we're making).
+
+2023-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/tests/basic-fonts-present.sh: Revise test again,
+ per feedback from Deri James. Even without Ghostscript or URW
+ fonts available, gropdf can generate valid PDF documents; it
+ simply can't embed fonts in general (without further
+ arrangements made on the host system), which means it is
+ restricted to the PDF base 14 fonts. That's enough for many
+ purposes, including generating our compiled man pages document
+ {with minor degradations to the typeface lists in gropdf(1) and
+ grops(1)}. Drop the 'gs' command check, which also didn't check
+ for the name of the Ghostscript interpreter determined by the
+ "configure" script. Replace dynamically generated font list
+ with a static one (the base 14 fonts plus groff's EURO).
+
+2023-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/tests/basic-fonts-present.sh: Revise test.
+ Improve explanation of why we're looking for the gs(1) command
+ in a font availability test. Prefix diagnostic output with name
+ of test script. Perform a search for the 'ps' device font
+ descriptions that will work in more build scenarios (i.e., don't
+ assume an out-of-tree build taking place in an immediate
+ subdirectory of the source). Distinguish failure to find the
+ font descriptions from a failure to locate the 'gs' command,
+ skipping the test in both scenarios. Reduce noise in output.
+ * m4/groff.m4 (GROFF_CHECK_GROPDF_PROGRAMS): Revise warning
+ issued when awk and Ghostscript are unavailable; gropdf will not
+ be completely inoperative. Characterize its reduced function.
+
+ Thanks to Deri James in <https://lists.gnu.org/archive/html/\
+ groff-commit/2023-02/msg00089.html> for prompting me to take a
+ another look at this.
+
+2023-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/latin2_works.sh:
+ * tmac/tests/latin5_works.sh:
+ * tmac/tests/latin9_works.sh: Port to work around macOS's
+ apparently POSIX non-conforming 'od' command. Use single-byte
+ octal output format instead of "character", and update test
+ expectations accordingly. Apparently gratuitously, macOS also
+ puts more spaces after the octal address field when using this
+ output format.
+ * HACKING: Document, and elaborate upon, this problem.
+
+2023-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Port a test to work with macOS sed.
+
+ * tmac/tests/doc_heading-font-remapping-works.sh: Put semicolons
+ between commands and closing braces in sed script. Put each of
+ multiple closing braces on a separate input line, because macOS
+ doesn't accept them otherwise. Resolves test failure observed
+ on macOS.
+ * HACKING: Document the closing brace sequence problem.
+
+2023-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Port a test to work with macOS sed.
+
+ * tmac/tests/an_TS-adds-no-vertical-space.sh: Put semicolons
+ between commands and closing braces in sed script. Separate
+ command stream into multiple '-e' expressions, breaking them
+ after branch and label commands. Resolves test failure observed
+ on macOS.
+ * HACKING: Document the above problems.
+
+2023-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/\
+ some_escapes_accept_newline_delimiters.sh: Weaken regexes in two
+ test cases to accommodate excessive output from macOS's 'od'
+ command. Resolves test failure seen on macOS.
+ * HACKING: Add section "Writing Tests" and document the above
+ since this is the second time I've cracked my shin on this.
+
+2023-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/tests/basic-fonts-present.sh: Skip test if 'gs'
+ command not available. The test is to ensure that gropdf will
+ produce sound documents using the base fonts from PostScript,
+ but since gropdf requires Ghostscript to do this (as noted in
+ our "./configure" messages), it makes no sense to validate font
+ availability if the program is absent. Resolves test failure
+ seen on macOS with minimal dependencies installed.
+
+2023-02-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Filling and Adjustment): Say more
+ about the consequences of a break.
+
+ Fixes <https://savannah.gnu.org/bugs/?63777>. Thanks to Dave
+ Kemper for the report.
+
+2023-02-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Re-re-christen 'ESCAPE_AMPERSAND' ('\&'). Now call it a
+ {non-transparent} "dummy character". Also rechristen
+ 'ESCAPE_RIGHT_PARENTHESIS', ('\)') as the "transparent dummy
+ character"; it has no impact on sentence-ending detection.
+
+ * doc/groff.texi:
+ * doc/meref.me.in:
+ * man/groff.7.man:
+ * man/groff_diff.7.man:
+ * man/roff.7.man:
+ * src/preproc/refer/refer.1.man:
+ * tmac/groff_man.7.man.in: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?62816>. Thanks to Dave
+ Kemper for the report and to the groff mailing list for the
+ vigorous discussion. I don't expect my solution to please
+ everyone.
+
+2023-02-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Add internal register `an*MR-URL-format` to
+ select from a few known formats of man page hyperlink. There
+ are three known on macOS, and one used everywhere else.
+ * tmac/man.local: Document this feature so macOS users can enjoy
+ the OSC 8 hyperlink feature if their terminal application
+ supports it.
+
+ I hope that this feature will be a temporary measure while macOS
+ implements support for the man page URL format used everywhere
+ else in the world.
+
+ Fixes <https://savannah.gnu.org/bugs/?63768>. Thanks to John
+ Gardner for the report, research, consultation, and testing.
+
+2023-02-11 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [BuildFoundries]: Fails if neither ghostcript nor URW fonts
+ are installed.
+
+ * font/devpdf/util/BuildFoundries.pl: When the change to hold
+ paths in an array, rather than a delimited string (see commit
+ 4ae4aeb6555f4f16c28fcb03eb1f56577826054c), the FindGSpath
+ subroutine should return a pointer to an empty array when the
+ call to ghostscript fails, rather than return an empty string,
+ as was done previously.
+
+ See <https://lists.gnu.org/archive/html/groff/2023-02/\
+ msg00042.html>; thanks to Bruno Haible for the report.
+
+2023-02-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Switch to using system's assert.h header file. It is futile to
+ attempt to preserve compatibility with ISO C90 systems by
+ providing a bespoke predicate-reporting assert() (a C99 feature)
+ when gnulib, which we require, itself demands C99. This ensures
+ that `static_assert` remains defined so that gnulib can use it.
+ Thanks to Bruno Haible for the consultation.
+ <https://lists.gnu.org/archive/html/groff/2023-02/msg00034.html>
+
+ * src/include/assert.h: Delete.
+
+ * src/devices/grodvi/dvi.cpp:
+ * src/devices/grolbp/lbp.cpp:
+ * src/devices/grolj4/lj4.cpp:
+ * src/include/itable.h:
+ * src/include/stringclass.h:
+ * src/libs/libbib/linear.cpp:
+ * src/libs/libbib/search.cpp:
+ * src/libs/libdriver/printer.cpp:
+ * src/libs/libgroff/assert.cpp:
+ * src/libs/libgroff/color.cpp:
+ * src/libs/libgroff/errarg.cpp:
+ * src/libs/libgroff/font.cpp:
+ * src/libs/libgroff/nametoindex.cpp:
+ * src/libs/libgroff/prime.cpp:
+ * src/libs/libgroff/relocate.cpp:
+ * src/libs/libgroff/searchpath.cpp:
+ * src/preproc/eqn/box.cpp:
+ * src/preproc/eqn/delim.cpp:
+ * src/preproc/eqn/pile.cpp:
+ * src/preproc/eqn/script.cpp:
+ * src/preproc/html/pre-html.cpp:
+ * src/preproc/pic/pic.h:
+ * src/preproc/preconv/preconv.cpp:
+ * src/preproc/soelim/soelim.cpp:
+ * src/roff/groff/groff.cpp:
+ * src/roff/troff/troff.h:
+ * src/utils/hpftodit/hpftodit.cpp:
+ * src/utils/indxbib/indxbib.cpp:
+ * src/utils/lkbib/lkbib.cpp:
+ * src/utils/lookbib/lookbib.cpp:
+ * src/utils/tfmtodit/tfmtodit.cpp: Respell "assert.h" inclusion
+ with angle brackets instead of quotation marks.
+
+ Fixes <https://savannah.gnu.org/bugs/?63078>.
+
+2023-02-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (token::next): Use correct kind of
+ null object in comparison. Fixes latent bug that would be
+ exposed if we were to migrate from zero literals to `nullptr`.
+
+2023-02-09 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf] Parse multiple entries in 'papersize' as specified in
+ the groff_font man page. Reported by Ben Wong and fix based on
+ his patch, thanks.
+
+ * src/devices/gropdf/gropdf.pl: Parse papersize string for
+ possible multiple (space separated) entries. First valid entry
+ wins.
+
+ Fixes https://savannah.gnu.org/bugs/?63757
+
+2023-02-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Correct numerous typos and solecisms throughout the source tree.
+
+ * ChangeLog:
+ * ChangeLog.115:
+ * ChangeLog.116:
+ * ChangeLog.117:
+ * ChangeLog.118:
+ * ChangeLog.119:
+ * ChangeLog.121:
+ * ChangeLog.122:
+ * Makefile.am:
+ * NEWS:
+ * PROBLEMS:
+ * README:
+ * contrib/chem/chem.am:
+ * contrib/chem/chem.pl:
+ * contrib/glilypond/README.txt:
+ * contrib/glilypond/glilypond.pl:
+ * contrib/hdtbl/groff_hdtbl.7.man:
+ * contrib/mm/ChangeLog:
+ * contrib/mm/m.tmac:
+ * contrib/pdfmark/pdfmark.ms:
+ * doc/automake.mom:
+ * doc/groff.texi:
+ * doc/me-revisions:
+ * doc/webpage.ms:
+ * m4/lib-link.m4:
+ * man/groff.7.man:
+ * man/groff_diff.7.man:
+ * man/roff.7.man:
+ * src/devices/grohtml/post-html.cpp:
+ * src/devices/grolbp/lbp.h:
+ * src/devices/gropdf/TODO:
+ * src/devices/gropdf/gropdf.1.man:
+ * src/devices/gropdf/gropdf.pl:
+ * src/devices/xditview/ChangeLog:
+ * src/devices/xditview/xditview.c:
+ * src/libs/libdriver/input.cpp:
+ * src/libs/libgroff/glyphuni.cpp:
+ * src/preproc/eqn/eqn.1.man:
+ * src/preproc/grn/gprint.h:
+ * src/preproc/grn/main.cpp:
+ * src/preproc/html/pre-html.cpp:
+ * src/preproc/preconv/preconv.cpp:
+ * src/preproc/tbl/table.cpp:
+ * src/roff/groff/pipeline.c:
+ * src/roff/groff/tests/substring_works.sh:
+ * src/roff/groff/tests/
+ use_point_size_escape_with_single_digit_arg.sh:
+ * src/roff/troff/div.cpp:
+ * src/roff/troff/input.cpp:
+ * src/roff/troff/troff.1.man:
+ * src/utils/grog/grog.pl:
+ * src/utils/indxbib/indxbib.cpp:
+ * src/utils/tfmtodit/tfmtodit.1.man:
+ * tmac/doc-old.tmac:
+ * tmac/doc.tmac:
+ * tmac/groff_man.7.man.in:
+ * tmac/hyphen.fr: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?63589>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2023-02-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Drop XFAIL test. It was written with an unclear
+ understanding of how DWB (AT&T) and Heirloom Doctools troff
+ behaved. The individual checks might come back, modified.
+
+ * src/preproc/tbl/tests/table-lacks-spurious-top-border.sh:
+ Delete.
+
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Drop it.
+ (tbl_XFAIL_TESTS, XFAIL_TESTS): Drop now empty assignment and
+ unnecessary update, respectively.
+
+2023-02-04 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update gnulib submodule
+
+ gnulib now points on sha1 4e9fcc7b84fcac07a3e5a3cd5f66d1ff320dc8e8
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix bugs using boxes or vertical rules at table edges on
+ nroff devices, particularly when combined with region or column
+ expansion.
+
+ * src/preproc/tbl/table.h (class table): Add `GAP_EXPAND`
+ enumeration constant. James Clark seems to have designed GNU
+ tbl carefully to avoid distinguishing region expansion from
+ column expansion in a categorical way, but I needed a way for
+ formatting-time logic to know which was in use. (Column
+ expansion, the "x" modifier, expands columns--i.e., text.
+ Region expansion expands [or compresses] the _gaps_ between
+ columns.)
+ * src/preproc/tbl/main.cpp (process_options): Set `GAP_EXPAND`
+ flag in table if "expand" region option seen.
+ * src/preproc/tbl/table.cpp: Add new macro `LEFTOVER_FACTOR_REG`
+ to name a new roff register for the remainder of gap-expansion
+ space when the amount of space available for expansion is
+ divided by the number of gaps.
+ (table::compute_overall_width): If _not_ expanding a table in
+ either respect and in nroff mode, reduce line length by 1n for
+ each of any left and right border (because the vertical lines
+ eat character cells). This prevents bordered or boxed tables
+ from being overset even when they use neither expansion feature.
+ (table::compute_separation_factor): If gap-expanding a table,
+ store any remainder from the division used to compute the
+ separation factor into the new `LEFTOVER_FACTOR_REG`.
+ (table::compute_column_positions): Insert that remainder into
+ the gap before the last (rightmost) column of the table. This
+ _could_ be done more elegantly by spreading each en in a
+ symmetric way across a subset of the gaps. (It is necessarily a
+ subset by the pigeonhole principle.) But it didn't seem worth
+ the effort for a feature (region expansion) that few users
+ employ. (Usually what you want is the "x" column modifier.)
+ Alternatively, "forget it, Jake--it's a terminal emulator".
+
+ * src/preproc/tbl/tbl.am (tbl_XFAIL_TESTS): Remove now-passing
+ tests.
+
+ Fixes <https://savannah.gnu.org/bugs/?63640> and
+ <https://savannah.gnu.org/bugs/?63749>.
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::compute_column_positions):
+ Stop multiplying the gaps at the left and right edges of a table
+ {which occur when it is boxed or has a leading and/or trailing
+ vertical line} by the column separation factor. Only interior
+ column gaps should be spread. This change prevents tables using
+ the "expand" region option from being overset (exceeding the
+ line length), but might not (yet) fully expand to that length on
+ low-resolution devices due to integer roundoff.
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::compute_total_separation)
+ (table::compute_separation_factor, table::compute_widths): Add
+ comments to generated roff output to assist the mystified user.
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Refactor.
+
+ * src/preproc/tbl/table.cpp:
+ * src/preproc/tbl/table.h: Rename `compute_expand_width` to
+ `compute_overall_width`, since this member function is used on
+ _all_ tables, not just those undergoing column or gap expansion.
+ For instance, in a post-groff 1.22.4 development, it throws a
+ diagnostic if an unexpanded table overruns the line length.
+ * src/preproc/tbl/table.cpp (table::compute_widths): Update call
+ site of `compute_overall_width`.
+ * src/preproc/tbl/table.cpp: Split the roff register behind the
+ `EXPAND_REG` C++ preprocessor macro into two, adding
+ `AVAILABLE_WIDTH_REG`. Annotate the distinction.
+ (compute_overall_width): Annotate. Move and conditionalize
+ logic so as not to produce as much unnecessary roff output.
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (main): Avoid reading from invalid
+ memory upon failure to open an input file.
+
+ Fixes <https://savannah.gnu.org/bugs/?63751>.
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/lex.cpp (get_delimited_text): Avoid reading
+ from invalid memory when throwing diagnostic. Duplicate
+ `filename` string, then free it on all paths out of function.
+
+ Fixes <https://savannah.gnu.org/bugs/?63214>.
+
+2023-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Add more tests.
+
+ * src/preproc/tbl/tests/boxes-and-vertical-rules.sh:
+ * src/preproc/tbl/tests/expand-region-option-works.sh:
+ * src/preproc/tbl/tests/x-column-modifier-works.sh: Do it.
+
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run tests.
+ (tbl_XFAIL_TESTS): Add; future changes will resolve these.
+
+2023-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::compute_column_positions):
+ If a table has "left separation" (it is boxed, or has a vertical
+ rule on the left-hand side), increase the first column's start
+ register value by 1n, for symmetry with the right-hand size.
+
+ * src/preproc/tbl/tests/check-horizontal-line-length.sh:
+ * src/preproc/tbl/tests/check-line-intersections.sh:
+ * src/preproc/tbl/tests/check-vertical-line-length.sh: Update
+ output expectations.
+
+ * src/preproc/tbl/tbl.am (tbl_XFAIL_TESTS): Remove now-passing
+ test.
+
+ See <https://savannah.gnu.org/bugs/?61597> for background.
+
+2023-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::compute_total_separation):
+ Trivially refactor; rename loop indices so it's obvious which
+ dimension of a matrix they're referring to.
+
+2023-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::determine_row_type)
+ (table::compute_widths, table::do_row): Boolify some local ints.
+
+2023-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Refactor handling of vertical lines in format. Validate
+ input more strictly. Add diagnostics when vertical lines are
+ redundant with box borders.
+
+ * src/preproc/tbl/main.cpp (process_format): Shift diagnostic
+ about excess vertical lines in a sequence at the beginning of a
+ row description to later, after the first proper column
+ descriptor has been interpreted. Normalize a sequence of more
+ than two consecutive vertical lines to 2 when they occur at the
+ beginning of a row description. Unconditionally update
+ `list->vline` and reset `vline_count` once we start looking for
+ modifiers, since we know we've finished any sequence of vertical
+ lines, and at the end of a row definition. Rename and retype
+ loop variable int `success` to Boolean
+ `is_valid_modifier_sequence`. Drop now-invalid assertion.
+ * src/preproc/tbl/table.cpp (table::add_vlines): Throw new
+ diagnostics when vertical lines are redundant with box borders.
+ Add assertion to ensure we got a valid vertical line value (0,
+ 1, or 2) from `process_format`. Throw these only once per table
+ format, not for every row.
+
+2023-01-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (process_table): Trivially refactor.
+ Rename `form` to `fmt` to imply "format", not "form".
+
+2023-01-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (process_format): Throw error
+ diagnostic if more than 2 vertical lines are specified at the
+ beginning of a row definition.
+
+ Fixes <https://savannah.gnu.org/bugs/?63731>.
+
+2023-01-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (process_format): Recast diagnostic
+ message to refer to character by its Unicode name and generalize
+ to accurately cover additional circumstance of excess '|'
+ symbols at end of row definition.
+
+2023-01-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/ms.ms: Remove redundant initializations.
+
+2023-01-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/ms.ms: Define appropriate hyphen-minus mapping on 'cp1047'
+ output device.
+
+2023-01-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (TE): Enable no-space mode after outputting the
+ display distance vertically, replacing any inter-paragraph
+ distance that might follow.
+
+2023-01-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix misleading diagnostic message.
+
+ * src/preproc/html/pre-html.cpp (main): The suggestion should be
+ to re-run the formatter (groff, troff), not "pre-grohtml", with
+ a different output driver since the document may be malformed.
+
+2023-01-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (process_format): Fix code hygiene
+ nit: nullify `list` pointer after freeing its target.
+
+2023-01-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Really fix Savannah #63449.
+
+ * src/preproc/tbl/main.cpp (process_format): "Or" on the
+ `HAS_TOP_VLINE` flag if the format specification begins with a
+ "|"; the beginning is a separate state in the FSM used to parse
+ the description. I missed it in commit 0e93ab4102, 1 December.
+
+ Fixes <https://savannah.gnu.org/bugs/?63449>.
+
+2023-01-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/tests/\
+ do-not-overdraw-page-top-in-nroff-mode.sh: Correct erroneous
+ check of test output, and add two more test cases.
+
+2023-01-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Move the saving of the hyphenation mode from
+ the "top level" to...
+ (mY): ...this new macro.
+ (SY, mQ, MR): Call `mY` before disabling hyphenation.
+
+ Problem introduced by me in commit 096c2f0567, 16 February.
+ "an-ext.tmac" gets sourced by "an.tmac" before any
+ command-line setting of the `HY` register is handled, so (for
+ groff) the stored hyphenation mode was the default for the
+ language, not reflecting user disablement. The synopsis macros,
+ which do not have an alternate implementation in "an.tmac" for
+ leverage of groff features, were causing hyphenation to be
+ resurrected (after `YS`) even if the user had disabled it.
+ Saving the hyphenation mode anew upon entry to these macros is
+ arguably inefficient, but it is more correct since a man page
+ could conceivably manipulate the automatic hyphenation mode
+ {even if that's not recommended outside of tbl(1) text blocks}.
+
+2023-01-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add regression test for hyphenation getting wrongly
+ restored by `YS`, `ME`, `UE`, and `MR` macros.
+
+ * tmac/tests/an_HY-register-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2023-01-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (Sh, Ss): Narrow scope of font remappings
+ lexically and restrict remapping to the heading font family (if
+ any) to avoid undesired remapping of fonts in page headers if,
+ say, a (sub)section heading begins just prior to a page
+ break--which is ugly anyway and should be avoided, but the
+ package has no keep macros and solving that problem in an
+ automatic way promises to be complex.
+
+2023-01-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (MT, UR): Throw style warning if macro called
+ without (exactly one) argument.
+
+2022-12-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/groff-man-pages.pdf): Set (sub)section
+ headings in Helvetica bold in compiled man pages, as a test and
+ demonstration of the `HF` feature's application to both man(7)
+ and mdoc(7) documents.
+
+2022-12-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `HF` string.
+
+ * tmac/doc.tmac (initialization): Add logic supporting `HF`
+ string just as our man(7) implementation does. If the font name
+ ends with `B` (as the default does), set
+ `doc-remap-I-style-in-headings` register and extract font
+ family, which can be empty (as is the default).
+ * tmac/mdoc/doc-common (Sh, Ss): If
+ `doc-remap-I-style-in-headings` register set, perform (and
+ unwind) font remapping of italic to bold-italic face.
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Define `doc-Sh-font` in terms of `HF`.
+
+ * tmac/tests/doc_heading-font-remapping-works.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ * tmac/groff_mdoc.7.man (Options): Document it.
+ * NEWS: Update item.
+
+ Fixes last part of <https://savannah.gnu.org/bugs/?63046>.
+
+2022-12-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Revise "fallback" character definitions in several
+ respects for Unicode characters from General Punctuation block.
+
+ * tmac/fallbacks.tmac: Comment out fallbacks for U+200B, U+2010,
+ U+2011, and U+201[89CD], due to ineffectuality or apparent groff
+ bugs. Redefine U+2012 fallback to include hair space (\^)
+ around synthetic figure dash. Redefine U+2016 to use `\[ba]`
+ special characters instead of ordinary `|` characters to dodge
+ possible character translations by user.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?63354>. Thanks to
+ Dave Kemper for the (multifarious) discussion.
+
+2022-12-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Invoking groff, Built-in Registers):
+ * man/groff.7.man (Writable predefined registers):
+ * src/roff/groff/groff.1.man (Environment):
+ * src/roff/troff/troff.1.man (Environment): Replace erroneous
+ reference to ctime(3) with localtime(3).
+
+ Fixes <https://savannah.gnu.org/bugs/?63509>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-12-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Fix potential problem(s) in trap handler.
+
+ * src/roff/groff/tests/smoke-test_html_device.sh: Move call of
+ `cleanup` function from end of script to after the tests that
+ generate temporary files have been run, and before script
+ possibly exits with status 77 to skip some checks. Within trap
+ handler, mask trapped signals while running handler.
+ (cleanup): Reset trap dispositions to default after removing
+ files; once the temporary files are gone, we no longer need a
+ trap handler. One might already be running however, and this
+ ensures that its "suicide" ("kill -s INT $$") will succeed.
+
+2022-12-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `FT` register.
+
+ * tmac/doc.tmac (initialization): Add logic supporting `FT`
+ register just as our man(7) implementation does.
+ * tmac/mdoc/doc-common (doc-set-up-titles): Plant footer trap in
+ validated user-requested location.
+ * tmac/groff_mdoc.7.man (Options): Document it.
+ * NEWS: Update item.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?63046>.
+
+2022-12-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Fix code style nit: use `as` requests to
+ avoid overlong input lines.
+
+2022-12-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac: Inform user we're ignoring their "-rD1" setting
+ if also formatting HTML; parallels groff man(7) behavior.
+
+2022-12-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac: Trivially refactor. Relocate handling of `D`
+ command-line register to prepare for greater synchronization
+ with groff man(7).
+
+2022-12-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp: Trivially refactor. Rename
+ {portion of} internal register to include an interword hyphen
+ for readability.
+
+2022-12-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Change default line length to 6.5 inches.
+
+ * tmac/s.tmac (par@load-init): Do it.
+
+ * doc/groff.texi (ms Document Control Settings):
+ * doc/ms.ms (Document control settings):
+ * tmac/groff_ms.7.man (Document control settings): Document it.
+
+ * tmac/tests/s_honor-MINGW-when-two-columns.sh:
+ * tmac/tests/s_mark-column-start-correctly.sh: Update test
+ expectations.
+
+ * NEWS: Add item.
+
+2022-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TH): Relocate `an-break-body-text` trap to be
+ one half-inch above footer (instead of twice the footer
+ distance). I reason that anyone who customizes `FT` is doing so
+ to overprint some kind of material at the bottoms of pages, or
+ simply to make the margin larger. (One then wonders why we
+ don't have an `HD` register for the top.) Also remove register
+ when done with it.
+ * tmac/groff_man.7.man.in (Options) <FT>: Document this.
+
+2022-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TH): Trivially refactor. Rename
+ `an-footer-location` to `an*footer-location` and set page traps
+ in order descending the page.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `X` register.
+
+ * tmac/doc.tmac (initialization): Add logic supporting `X`
+ register just as our man(7) implementation does.
+ * tmac/groff_mdoc.7.man (Options): Document it.
+ * NEWS: Update item.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?63046>.
+
+2022-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Add unit test for `X` register.
+
+ * tmac/tests/doc_X-register-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac (Nm): Fix `if` -> `ie` typo/thinko.
+
+ Fixes <https://savannah.gnu.org/bugs/?63527>. Thanks to John
+ Gardner for the report.
+
+2022-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/doc_Nm-works.sh: Add more checks.
+
+2022-12-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/smoke-test_html_device.sh: Add checks for
+ inlining of images when tbl(1) or eqn(1) used.
+
+2022-12-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac (reload-man): Unplant `doc-break-body-text`
+ trap, added in commit 892703b17e, 6 September. Its survival
+ into man(7) pages didn't seem to cause any problems but I have
+ no confidence that will remain true forever.
+
+2022-12-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (initialization): Fix problem with `FT` register
+ validation. Small but valid values were being rejected due to
+ inappropriate use of scaling operator. Also throw user a bone
+ by expressing what size '1v' is for the output device, in basic
+ units.
+
+2022-12-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man, mdoc]: Fix Savannah #63500. Support use of `P` (initial
+ page number) register when batch rendering, regardless of
+ switching macro packages between man(7) and mdoc(7) or setting
+ of `C` (continuous numbering) register. (`P` without `C` means
+ "start numbering each rendered document at \n[P]".)
+
+ * tmac/an.tmac (an-end): Call `an*break-page-with-new-number`
+ instead of invoking `bp`.
+ (an*break-page-with-new-number): If `P` is set and `C` is not,
+ use value of `P` as the next page number.
+ (TH): If `C` register is set, remove `P` register after ending a
+ previous document.
+ (initialization): If `P` is set, assign the page number using
+ the `pn` request if the transition to the first formatted page
+ has not yet occurred; otherwise update page number register `%`
+ directly. Also ignore it with diagnostic if `ps4html` register
+ {for grohtml's internal use} is set. Add explanatory comment.
+
+ * tmac/mdoc/doc-common (Dd): If `C` register is set, remove `P`
+ register after ending a previous document.
+ (doc-end-macro): Call `doc-break-page-with-new-number` instead
+ of invoking `bp`.
+ (doc-break-page-with-new-number): If `P` is set and `C` is not,
+ use value of `P` as the next page number.
+ * tmac/doc.tmac (initialization): If `P` is set, assign the page
+ number using the `pn` request if the transition to the first
+ formatted page has not yet occurred; otherwise update page
+ number register `%` directly. Also ignore it with diagnostic if
+ `ps4html` register (for grohtml's internal use) is set. Add
+ explanatory comment.
+
+ Fixes <https://savannah.gnu.org/bugs/?63500>.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `P` register.
+
+ * tmac/doc.tmac (initialization): Add logic supporting `P`
+ register just as our man(7) implementation does.
+ * tmac/groff_mdoc.7.man (Formatting with groff, troff, and
+ nroff): Document it.
+ * NEWS: Update item.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?63046>.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Add unit tests for man/mdoc `P` register.
+
+ * tmac/tests/an_P-register-works.sh:
+ * tmac/tests/andoc_P-register-works.sh:
+ * tmac/tests/doc_P-register-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man, mdoc]: Refactor. Rename a Boolean register to more
+ clearly communicate its purpose. This also reverses its sense.
+
+ * tmac/an.tmac (TH): Rename `an-is-first-page-of-document` to
+ `an*need-titles-reset`. Drop redundant store. Reverse sense of
+ test.
+ (initialization): Initialize it to zero.
+
+ * tmac/mdoc/doc-common (Dd): Rename
+ `doc-is-first-page-of-document` to `doc-need-titles-reset`.
+ Drop redundant store. Reverse sense of test.
+ (initialization): Initialize it to zero.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Add future regression test for header/footer
+ mishandling that wasn't already covered (not a live bug; was
+ exposed by attempted refactoring).
+
+ * tmac/tests/andoc_check-an-to-doc-transition.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man, mdoc]: Trivially refactor.
+
+ * tmac/an.tmac (an-start-new-document): Rename this...
+ (an*break-page-with-new-number): ...to reflect its reduced
+ responsibility.
+
+ * tmac/mdoc/doc-common (doc-start-new-document): Rename this...
+ (doc-break-page-with-new-number): ...to reflect its reduced
+ responsibility.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man, mdoc]: Refactor to separate page number management from
+ header trap management.
+
+ * tmac/an.tmac (an-start-new-document): Stop removing
+ `an-header` trap.
+ (TH): Clear the trap here even if not continuously rendering,
+ and call `an-start-new-document`.
+
+ * tmac/mdoc/doc-common (doc-start-new-document): Stop removing
+ `doc-header` trap.
+ (Dd): Clear the trap here even if not continuously rendering,
+ and call `doc-start-new-document`.
+
+2022-12-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common: Refactor for better parallelism with our
+ man(7) implementation and to prepare for a synchronized change
+ to both.
+ (Dd): Move open-coded (inlined) operations from here...
+ (doc-start-new-document): ...to this new macro.
+ (doc-end-macro): Drop unnecessary register assignment. `Dd`
+ takes care of it if there is a subsequent mdoc(7) document.
+
+2022-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix off-by-one error in generated diagnostic message.
+
+ * src/preproc/tbl/table.cpp: Define new preprocessor macro,
+ `PREVIOUS_PAGE_REG`.
+ (table::init_output): Compute value for register named using
+ `PREVIOUS_PAGE_REG`, use it in diagnostic, and then remove it.
+ Also fix verb tense in message.
+
+2022-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Expose the fact of a table's boxedness via a troff
+ register so that macro packages can make more intelligent
+ decisions about space requirements (since box borders occupy
+ significant space on nroff devices).
+
+ * src/preproc/tbl/table.cpp: Define new preprocessor macro,
+ `IS_BOXED_REG`.
+ (table::do_top): Initialize "boxedness" register.
+
+2022-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (TH): Clarify computation and diagnostic message.
+
+2022-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #61878.
+
+ * src/preproc/tbl/table.cpp: Define new preprocessor macro,
+ `STARTING_PAGE_REG`.
+ (table::define_bottom_macro): Have the formatter issue a warning
+ if an unkept, boxed table ends on a different page than it
+ began.
+ (table::do_top): Save current page number when table begins.
+
+ Fixes <https://savannah.gnu.org/bugs/?61878>.
+
+2022-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #61878.
+
+ * src/preproc/tbl/tests/\
+ warn-on-long-boxed-unkept-table.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-12-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp: Write comments to generated output;
+ these correspond to functions in this file and to major
+ operations of table construction.
+ (init_output, compute_widths, define_bottom_macro, do_row)
+ (do_top, do_bottom): Do it.
+
+2022-12-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Trivially refactor. Rename class `constant_int_reg` to
+ `readonly_register`. Say "readonly" instead of "const" to
+ try to avoid confusion with C++ constness. Drop "int" because
+ integer-valued registers are the norm, not the exception.
+
+ * src/roff/troff/column.cpp (init_column_requests):
+ * src/roff/troff/div.cpp (init_div_requests):
+ * src/roff/troff/input.cpp (top level, init_input_requests):
+ * src/roff/troff/node.cpp (init_node_requests):
+ * src/roff/troff/reg.h: Do it.
+
+2022-12-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Trivially refactor. Rename class `constant_reg` to
+ `readonly_text_register`. Say "readonly" instead of "const" to
+ try to avoid confusion with C++ constness. Say "text" because
+ this class is _mostly_ used for interpolation of string-valued
+ registers like the version registers `.x`, `.y` and `.Y`.
+ Nevertheless there are some abuses (apparently because the
+ constructors for register classes don't accept integer
+ parameters for initialization--why?).
+
+ * src/roff/troff/input.cpp (top level)
+ (readonly_text_register::readonly_text_register)
+ (readonly_text_register::get_string)
+ (main, init_registers, init_requests): Do it.
+
+2022-12-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Trivially refactor. Rename `number_reg_dictionary` to
+ `register_dictionary`. It's shorter _and_ non-abbreviated _and_
+ matches our documentation.
+
+ * src/roff/troff/column.cpp (init_column_requests):
+ * src/roff/troff/div.cpp (page_number, init_div_requests):
+ * src/roff/troff/env.cpp (print_env, init_env_requests)
+ (init_hyphen_requests):
+ * src/roff/troff/input.cpp (length_request)
+ (interpolate_number_format, do_register, do_if_request, main)
+ (init_registers, init_input_requests):
+ * src/roff/troff/node.cpp (get_register, init_node_requests):
+ * src/roff/troff/reg.cpp (top level, define_number_reg)
+ (inline_define_reg, alter_format, remove_reg, alias_reg)
+ (rename_reg, print_number_regs):
+ * src/roff/troff/reg.h: Do it.
+
+2022-12-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add regression test.
+
+ * tmac/tests/an_link-trailing-text-hugs-previous.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/fallbacks.tmac: Really use troff-mode fallbacks only on
+ typesetting devices; because this macro file is loaded so early,
+ we cannot rely on ".if t". Thanks to Dave Kemper for the
+ discussion in Savannah #63354.
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Use more mnemonic register names, thanks to
+ the recent freeing up of some name space.
+ - mJ -> mH: saved automatic hyphenation mode
+ - mX -> mE: formatting in EX/EE context (Boolean)
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdf.tmac: Drop deletion of unused string `PDFHREF.TEXT`.
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (an-end, AT, UC, DT, PD, SH, IP, BI, BR, IB, IR)
+ (RB, RI, OP, an*end-hyperlink, MR): Refactor; "nop"ify macros
+ that produce formatted output or call other macros using string
+ interpolations--except where we can't: see Savannah #63470.
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (R): Drop macro definition, which implements a
+ hack for people who try to use "R" as a font style macro. This
+ doesn't seem to happen much in actual practice (though perhaps
+ the diagnostic this hack produces is responsible for suppression
+ of the mistake). Retaining it interferes with the
+ "nop"-ification of this macro file.
+ * NEWS: Add item.
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Use truly traditional hyphenation mode on
+ non-groff-compatible formatters.
+
+2022-12-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Update test coverage and expectations.
+
+ * tmac/tests/an_ME-punct-hyphenates.sh: Test both "an.tmac" and
+ "an-ext.tmac" implementations of `ME`.
+ * tmac/tests/an_UE-punct-hyphenates.sh: Test both "an.tmac" and
+ "an-ext.tmac" implementations of `UE`.
+ * tmac/tests/an_UE-breaks-before-long-URIs.sh: Update test
+ expectations. I appear to have inadvertently fixed some
+ inelegant rendering.
+
+2022-12-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Rename to reflect code reorganization.
+
+ * tmac/tests/an-ext_ME-punct-hyphenates.sh:
+ * tmac/tests/an-ext_MT-body-hyphenates.sh:
+ * tmac/tests/an-ext_UE-breaks-before-long-URIs.sh:
+ * tmac/tests/an-ext_UE-punct-hyphenates.sh:
+ * tmac/tests/an-ext_UR-body-hyphenates.sh: Rename these...
+ * tmac/tests/an_ME-punct-hyphenates.sh:
+ * tmac/tests/an_MT-body-hyphenates.sh:
+ * tmac/tests/an_UE-breaks-before-long-URIs.sh:
+ * tmac/tests/an_UE-punct-hyphenates.sh:
+ * tmac/tests/an_UR-body-hyphenates.sh: ...to these.
+
+ * tmac/tmac.am (tmac_TESTS): Reflect renames.
+
+2022-12-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Remove groff-feature-dependent code for
+ hyperlink management, greatly reducing the size of the file,
+ which we permissively license and encourage people to copy
+ around. Drop register definitions corresponding to
+ groff-specific output device names. Drop definition and use of
+ `mL` and `mR` strings for angle brackets; no observable change
+ on non-groff formatters. Recognize `mG` register to enable
+ testing of these macros even if the formatter is groff.
+ (mV): Radically simplify. This internal "back-end" for `MT` and
+ `UR` now just stores its argument in a string, `m1`.
+ (mQ): Radically simplify. This internal "back-end" for `ME` and
+ `UE` now just disables automatic hyphenation, formats the saved
+ `m1` string between angle brackets, suffixes it with the
+ optional argument, and restores automatic hyphenation.
+ (UR, MT): Call `mV` with one argument, not nine.
+ (UE, ME): Call `mQ` with one argument, not nine.
+
+ * tmac/tests/an-ext_MR-works.sh: Add test of this file's
+ simplified `MR` implementation.
+ * tmac/tests/an-ext_MT-works.sh:
+ * tmac/tests/an-ext_UR-works.sh: Move tests of groff-specific
+ hyperlink output from here...
+ * tmac/tests/an_MT-works.sh:
+ * tmac/tests/an_UR-works.sh: ...to these new files.
+ * tmac/tests/an_MR-works.sh:
+ * tmac/tests/an_MT-works.sh:
+ * tmac/tests/an_UR-works.sh: Add tests for valid HTML formatting
+ of hyperlinks, which experience shows is a bit fragile in the
+ face of diversion manipulation and output line continuation.
+
+ * tmac/tmac.am (tmac_TESTS): Run new tests.
+
+2022-12-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Support `mG` register: clear it to force the
+ loading of this file's macros even if they have an
+ implementation in tmac/an.tmac and the formatter claims groff
+ compatibility. This is to ease these macros' testing under
+ groff and keep the implementations here simple.
+ * tmac/an.tmac: Initialize `mG` register to 1 if not set on
+ command line.
+
+2022-12-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Initialize `mX` register.
+
+2022-12-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Define `mC` string (constant-width typeface
+ used by `EX`/`EE` macros) as `R` in nroff mode. Thanks to
+ Russ Allbery for prompting me to think more about the
+ limitations of Solaris troff. Implementations do varying
+ things with the "previous" font restored by `\fP` or an
+ unargumented `.ft` if a requested font is not found.
+
+2022-11-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #63449.
+
+ * src/preproc/tbl/table.h (class table): Add new enumeration
+ constants for use with `flags` member variable: `HAS_TOP_VLINE`
+ and `HAS_TOP_HLINE`, which track properties of the table.
+ Unlike others, these have no correspondence to table region
+ options.
+ * src/preproc/tbl/main.cpp (process_format): Add new local
+ Boolean to track whether we're interpreting a format for the
+ first row. Use this to "or" on the `HAS_TOP_VLINE` or
+ `HAS_TOP_HLINE` flags if "|" or [_-] are encountered in the
+ first row's format, as appropriate.
+ (process_data): "Or" on `HAS_TOP_HLINE` if a single or double
+ horizontal line is used as the first row's data.
+ * src/preproc/tbl/table.cpp (do_top): On nroff mode devices, add
+ one vee of space above the table if we're going to be drawing an
+ unintersected vertical rule above the table's top.
+
+ Fixes <https://savannah.gnu.org/bugs/?63449>.
+
+2022-11-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #63449.
+
+ * src/preproc/tbl/tests/\
+ do-not-overdraw-page-top-in-nroff-mode.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-11-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (struct input_entry_format)
+ (input_entry_format::input_entry_format)
+ free_input_entry_format_list, process_format): Trivially
+ refactor. Rename `pre_vline` to `vline_count`.
+
+2022-11-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp
+ (vertical_rule::contribute_to_bottom_macro, table::print)
+ (table::init_output, table::divide_span)
+ (table::compute_expand_width, table::define_bottom_macro)
+ (table::do_bottom): Produce roff output that is more readable,
+ for maintainability. Indent control lines inside macro
+ definitions. Standardize form of `if`, `ie`, and `el` requests.
+ Some output will not be indented because it is produced within
+ narrowly-scoped C++ functions (set_troff_location,
+ table::print_single_hline, table::print_double_hline,
+ table::do_row), I haven't verified that each one is called from
+ a consistent troff indentation level, and I'm not sure it's a
+ win to parameterize those functions in the indentation level.
+
+2022-11-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #61909.
+
+ * src/preproc/tbl/table.cpp (SAVED_INTER_WORD_SPACE_SIZE)
+ (SAVED_INTER_SENTENCE_SPACE_SIZE): Add new preprocessor macros.
+ (block_entry::do_divert): Restore saved inter-word and
+ inter-sentence space when formatting a text entry.
+ (table::init_output): When a table region begions, save the
+ values of inter-word and inter-sentence space. Add request to
+ the reset macro to restore saved inter-word and inter-sentence
+ space when leaving table region.
+ (table::do_top): Set inter-sentence space to be equal to
+ inter-word space. This way spaces are "literal" in ordinary
+ table extries (but not text blocks).
+
+ Fixes <https://savannah.gnu.org/bugs/?61909>.
+
+2022-11-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #61909.
+
+ * src/preproc/tbl/tests/\
+ save-and-restore-inter-sentence-space.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-11-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Suppress line numbering when formatting tables, and
+ restore it afterward.
+
+ * src/preproc/tbl/table.cpp: Revert much of commit b69062693's
+ {2011-07-20} changes to this file. They were too complex for me
+ to understand, and permitted Savannah #60140 to persist (or
+ caused it).
+ (ROW_START_LINE_REG, ROW_SAVE_LINE_REG, ROW_MAX_LINE_REG)
+ (REPEATED_NM_SET_MACRO, REPEATED_NM_SUS_MACRO): Drop
+ preprocessor macros.
+ (SAVED_NUMBERING_LINENO, SAVED_NUMBERING_SUPPRESSION_COUNT): Add
+ new preprocessor macros.
+ (table::init_output, table::print_single_hline)
+ (table::print_double_hline, table::define_bottom_macro)
+ (table::do_row, table::do_top, table::do_bottom): Drop old
+ logic.
+
+ (table::init_output): When the table begins, save the current
+ line number register `ln` and the count of remaining lines to be
+ suppressed (the new `.nn` register). Then suppress numbering
+ for the next 2 billion+ lines of output, with a groveling
+ apology to the elegance police.
+ (table::do_bottom): Restore saved value of `.nn`. If numbering
+ was active (even if suppressed), restore it with `nm` request.
+ If it wasn't, disable it, in case it was turned on inside the
+ table region.
+
+ Fixes <https://savannah.gnu.org/bugs/?60140>. Thanks to Hans
+ Bezemer for noting the practical significance of this bug.
+
+2022-11-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #60140.
+
+ * src/preproc/tbl/tests/save-and-restore-line-numbering.sh: Do
+ it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-11-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Implement new `.nn` register to report the remaining
+ count of lines to have their numbering suppressed.
+
+ * src/roff/troff/env.h (class environment): Declare new member
+ function `get_no_number_count()`.
+ * src/roff/troff/env.cpp (get_no_number_count): Define new
+ member function, returning value of member variable
+ `no_number_count`.
+ (init_env_requests): Define new ".nn" register and attach it to
+ `get_no_number_count()`.
+
+ * doc/groff.texi (Miscellaneous): Document it. Include example
+ of use to determine whether current output line will be
+ numbered. Also clarify meaning of register; `.nn` is not
+ decremented except when output line numbering is enabled.
+ * man/groff.7.man (Read-only registers): Document it.
+
+ * src/roff/groff/tests/dot-nn_register_works.sh: Test it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ * NEWS: Add item.
+
+ See <https://lists.gnu.org/archive/html/groff/2022-11/\
+ msg00153.html>.
+
+2022-11-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/fallbacks.tmac: Comment out four of the fallback
+ character definitions for (preconv'd) Unicode character input
+ added to address Savannah #58930 (corresponding to \[dg], \[dd],
+ \[%0], and \[rn]; they are failing for not yet understood
+ reasons involving "macros" attached to groff character info
+ structs, and the semantics of what it means for a character to
+ "exist" per the 'c' conditional operator. Fixes regression when
+ using "tty-char.tmac" (which nroff loads by default). Problem
+ introduced by me in commit 132182bd71, 23 October. The hope is
+ to resolve this issue post-groff 1.23.0. Thanks to Dave Kemper
+ for the report and discussion in Savannah #63332.
+
+2022-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (SY, YS, mV): Remove `mA`, `mI`, and `mT`
+ registers when done with them.
+
+2022-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/node.h (character_exists):
+ * src/roff/troff/node.cpp (character_exists): Boolify.
+
+2022-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [doc]: Add make(1) dependency.
+
+ * doc/doc.am (doc/groff-man-pages.pdf): Add dependency on our
+ FreeEuro font since we embed it.
+
+2022-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Refactor generation of "freeeuro.pfa" to make more
+ economical use of existing infrastructure, per a suggestion from
+ Deri James. This also puts the file where gropdf's "download"
+ file can find it when running it in a separate build directory.
+ We use it to generate "groff-man-pages.pdf".
+
+ * font/devps/freeeuro.pfa: Rename this...
+ * font/devps/freeeuro.ps: ...to this. We can now use the suffix
+ rule that also applies to "symbolsl.ps" and "zapfdr.ps".
+
+ * font/devps/devps.am (DEVPSFONTFILES): Move "freeeuro.pfa" from
+ here...
+ (DEVPSFONTFILES_GENERATED): ...to here.
+ (EXTRA_DIST): Ship the "new" "freeeuro.ps" file.
+
+2022-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devps/psstrip.sed: Stop stripping comment lines in
+ general instead of preserving only ones that use the form in the
+ Document Structuring Conventions. This way we won't strip
+ copyright notices, like Werner Lemberg's in the FreeEuro font.
+ Thanks to Deri James for pointing this out.
+
+2022-11-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ tmac/an-ext.tmac: Refactor to reduce code size.
+
+ * tmac/an-ext.tmac: Refactor to reduce code size. `UE` and `ME`
+ have nearly identical implementations so...
+
+ (mQ): Define new macro to perform the requisite actions, and...
+
+ (UE, ME): Make these into wrappers calling mQ.
+
+2022-11-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add unit tests for `MT/ME` and `UR/UE`.
+
+ * tmac/tests/an-ext_MT-works.sh:
+ * tmac/tests/an-ext_UR-works.sh: Do it.
+
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2022-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl: Throw warning if paper format is
+ unrecognized.
+
+2022-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (Msg): Align more closely with
+ diagnostic message format prescribed by GNU Coding Standards:
+ emit space (only) prior to message severity.
+
+2022-11-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meref.me.in: Drop unnecessary initialization parameters
+ from document. The line and title length do not need to be set
+ in troff mode; the document lays out fine for a variety of paper
+ formats if these are not forced to 6.5 inches. Also drop
+ redundant initialization of `pp` register.
+
+2022-11-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Fix Savannah #63377.
+
+ * tmac/doc.tmac (Nm): Properly leverage new
+ `doc-in-name-section` variable. Set page topic `doc-topic-name`
+ to the first encountered argumentful `Nm` call in the "Name"
+ section while handling other "Name" section concerns, instead of
+ later after deciding we're not in the "Synopsis" section.
+ Problem caused by me when fixing antediluvian mdoc bug in commit
+ 0d85615c62, 5 November.
+
+ Fixes <https://savannah.gnu.org/bugs/?63377>. Thanks to John
+ Gardner for the report.
+
+2022-11-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Add tests for `Nm` macro.
+
+ * tmac/tests/doc_Nm-works.sh: Do it. Test regression reported
+ in Savannah #63377. Also ensure that we handle the case where
+ multiple `Nm` items are declared in the "Name" section (as might
+ happen in library man pages).
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-11-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/papersize.tmac: Improve integration with mm(7) macro
+ package. If a paper format has been selected, set `W` register
+ to new line length (if not already set on command line).
+ Similarly, set `O` register to 1 inch for the symmetric
+ horizontal margins otherwise assumed by this macro file. This
+ means that "groff -mm" and "groff -dpaper=letter -mm" are _not_
+ synonymous (when groff is configured to use U.S. letter as the
+ default paper format), because groff mm(7) uses a page offset of
+ 0.963 inches on typesetters for compatibility with DWB mm.
+ * NEWS: Add item.
+
+ See discussion in <https://lists.gnu.org/archive/html/\
+ groff/2022-11/msg00081.html> and (some) follow-ups.
+
+2022-11-16 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: If the argument to the paper
+ format option '-p' matches a recognized format but includes a
+ trailing 'L' or 'l' ("legalL" or "a4l", for example), rotate the
+ document's MediaBox.
+
+2022-11-16 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: Fix incorrect hotspot placement
+ if page is in landscape orientation.
+ (FixRect): Perform coordinate transform if page is rotated.
+ (Rotate): New function performs relevant trigonometry.
+
+ Fixes <https://savannah.gnu.org/bugs/?63380>. Thanks to Blake
+ McBride for the report.
+
+2022-11-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Integrate better with papersize.tmac by no longer
+ forcing line (and title) length to 6 inches for typesetters on
+ initialization. Gather default line length from output device
+ description, possibly modified later (by other macro file or
+ input). No change to terminal ("nroff mode") output.
+ * NEWS: Add item.
+
+2022-11-16 Peter Schaffter <peter@schaffter.ca>
+
+ * tmac/papersize.tmac: If a paper format has been selected,
+ smuggle right margin setting to mom(7) if not overridden by the
+ user. See discussion in <https://lists.gnu.org/archive/html/\
+ groff/2022-11/msg00081.html> and (some) follow-ups.
+
+2022-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/groff-man-pages.pdf)
+ (doc/groff-man-pages.utf8.txt): Add dependencies on new
+ `TMAC_PACKAGE_MAN` and `TMAC_PACKAGE_MDOC` convenience macros.
+
+2022-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am (TMAC_PACKAGE_MAN, TMAC_PACKAGE_MDOC): Define
+ convenience macros for in-tree documents to depend on.
+
+2022-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Trivially refactor. Rename `an-section` to
+ `an*section`.
+
+2022-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grolbp/lbp.cpp (usage): Tweak usage message. The
+ output driver should be perfectly capable of handling output
+ from non-GNU (but device-independent) troffs.
+
+2022-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/ps.cpp (usage): Employ more informative
+ metasyntactic variable names in usage message. Also summarize
+ program's function and direct reader to man page if help
+ explicitly requested (inferred from identity of output stream).
+
+2022-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Trivially refactor for congruence with
+ documentary terminology. Rename strings and macros.
+ - an-title -> an*topic
+ - an-abbreviate-page-title -> an*abbreviate-page-topic
+ - an-title-abbv -> an*topic-abbv
+ - an-title-string -> an*topic-string
+ - an-title-length -> an*topic-length
+ - an-title-length-prev -> an*topic-length-prev
+ - an-title-new-length -> an*topic-new-length
+ - an-page-title-style -> an*topic-style
+ (TH): Recast diagnostic message to refer to "section", not
+ "volume" title.
+
+2022-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Refactor to reduce code size. `UR` and `MT`
+ have identical implementations so...
+ (mV): Define new macro to perform the requisite actions, and...
+ (UR, MT): Make these into wrappers calling mV.
+
+2022-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (UR, MT): Fix problem with incorrect line
+ lengths and occasional "can't adjust" warnings when using
+ hyperlinks. Reduce the line length within the diversion by the
+ amount of indentation used in the context. Without this, lines
+ were getting set too short. (You might think they'd be too
+ long, but when creating a new environment, the _formatter's_
+ default line length is used; that's 65n on terminal devices.)
+
+2022-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add test to ensure that link text (when the hyperlink
+ itself is not formatted because the device supports
+ hyperlinking) uses the correct line length and is adjusted.
+
+ * tmac/tests/an_adjust-link-text-correctly.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2022-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am: Refactor.
+ (MOSTLYCLEANFILES): Populate macro incrementally, adjacent to
+ the targets that build the files to be cleaned. This will
+ enable cleaner refactoring in the future.
+ (DEFAULT_BASE35_FONTS): Add new macro storing the targets of the
+ PostScript Level 2 standard base 35 font descriptions.
+ (devpdffont_DATA): Populate using `DEFAULT_BASE35_FONTS`.
+ (URW_BASE35_FONTS): Add new macro, empty if [!HAVE_URW_FONTS];
+ and [HAVE_URW_FONTS] otherwise naming the `U` foundry font
+ description counterparts of the `DEFAULT_BASE35_FONTS`.
+ (devpdffont_DATA): Append `URW_BASE35_FONTS`.
+ ($(DEFAULT_BASE35_FONTS) $(URW_BASE35_FONTS)): Assert dependency
+ on "font/devpdf/download". This isn't literally true, but
+ BuildFoundries generates all of these together, so if the
+ "font/devpdf/download" target rule runs successfully, the font
+ description files named in these macro expansions will be
+ generated too.
+
+2022-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Add new command-line option to
+ specify the generated font description's "spacewidth" parameter;
+ in commit bf7f6862c3, 2021-09-24, I made libgroff complain if
+ this directive is missing (since any font, even a "special" one,
+ can be selected as current and the formatter's behavior when
+ encountering an input space should be well-defined under that
+ circumstance). Adding this option enables a well-formed font
+ description to be produced.
+ * src/utils/afmtodit/afmtodit.pl (usage):
+ * src/utils/afmtodit/afmtodit.1.man (Synopsis, Options):
+ Document it.
+ * NEWS: Add item.
+
+2022-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Use our own fatal exit
+ function instead of Perl's "die".
+ (croak): New subroutine emits argument as part of diagnostic
+ message and exits with status 1.
+ (usage): Exit with status 2, not 1, on usage errors.
+
+ * NEWS: Document new exit behavior.
+
+2022-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am (font/devpdf/download): Improve
+ comprehensibility of comments in generated "download" file.
+ Stop bracketing path element separator with spaces.
+
+2022-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl (LoadFoundry): Stop
+ capitalizing beginning of diagnostic message (per GNU Coding
+ Standards). Drop ellipsis from end since no further diagnostics
+ relevant to that message are expected. Trim trailing slashes
+ from font path elements.
+
+2022-11-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devps/devps.am: Refactor. Turn two identical target
+ rules into a (BSD-make-style, old-fashioned) pattern rule.
+
+2022-11-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Rechristen self "GNU roff".
+
+2022-11-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/pic/pic.ypp: Slightly refactor. Rename parameter
+ `form` (format) to `fmt` to make its nature as an abbreviation
+ clear.
+ (format_number, do_sprintf): Reorder null pointer equality
+ comparisons to avoid inadvertent lvalue assignment.
+ (do_sprintf): Declare lists of valid format conversion
+ specifiers and modifiers explicitly instead of as happenstance
+ literals. Recast diagnostic messages to refer to "invalid", not
+ "bad" input; refer to input keyword correctly as "sprintf" (not
+ "snprintf"); and report the identity of the invalid conversion
+ specifier we reject.
+
+2022-11-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac (Fl, doc-flag-recursion, doc-print-recursive)
+ (doc-print-prefixes, Ar, Nm, Pa, Xr, doc-do-func, Fn)
+ (doc-do-func-args, Fo): Remove now-relic resets of type size to
+ previous value. Since commit 5125754cdf, 23 February, no mdoc
+ macro ever changes the type size.
+
+2022-11-08 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Cater for invalid entries in download file.
+
+ * src/devices/gropdf/gropdf.pl: Test if path in the "download"
+ file points to a readable file. Also change order so that the
+ first valid entry is used as the font to embed. This replaces
+ previous order where last found entry is used.
+
+ Fixes <https://savannah.gnu.org/bugs/?62950>.
+
+2022-11-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Set page topic in roman in "Name" section.
+
+ * tmac/doc.tmac (Nm): If in the "Name" section of the page, set
+ argument(s) with the `No` (normal formatting) macro instead of
+ handling them...normally. Since `Nm`'s usual behavior is to set
+ the next argument in boldface, in this circumstance it is set in
+ roman. Aligns page rendering with man(7) and fixes a bug
+ documented in the 4.3BSD-Reno mdoc.samples(7) page (1990-06-22),
+ upon which the groff_mdoc(7) page is based.
+ * tmac/groff_mdoc.7.man (Bugs): De-document bug.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?62926>.
+
+2022-11-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common: Add internal register
+ `doc-in-name-section` to keep track of whether a macro is called
+ within the "Name" section of the document, to prepare a means of
+ fixing a long-standing bug with `Nm`.
+ (Sh): Canonicalize capitalization of section heading sooner.
+ Set or clear `doc-in-name-section` based on result.
+ (Rd): Add new register to dump.
+ * tmac/doc.tmac (doc-save-global-vars, doc-restore-global-vars):
+ Handle new register.
+
+2022-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Use font CR, not CB, for `Cm` ("command modifier") and
+ `Fl` ("flag") macros on typesetters.
+
+ * tmac/mdoc/doc-ditroff (doc-Cm-font, doc-Fl-Font): Switch to
+ Courier roman from Courier bold. This congrues better with
+ other `Li` literals, which were not in boldface.
+
+2022-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-nroff (doc-Li-Font): Switch from roman to bold.
+ On typesetters, the use of Courier (roman) plainly distinguishes
+ unquoted literals from their context. On terminals there was no
+ such visible distinction. Fortunately, in groff_mdoc(7) itself,
+ this does not result in a blinding blitz of boldface because the
+ `Ql` (quoted literal) macro is so often used, and it maintains
+ the roman style. This change further aligns groff mdoc(7) with
+ groff man(7) style conventions. (Also see how we handle
+ literals for typesetters and terminals in the "ms.ms" document.)
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Make `Sx` macro perform quotation, not italicization.
+ It's thorougly inconsistent with English composition practices
+ to refer to (sub)section headings within a document as if they
+ were major works.
+
+ * tmac/doc.tmac (Sx): Implement.
+ * tmac/mdoc/doc-ditroff (doc-Sx-font):
+ * tmac/mdoc/doc-nroff (doc-Sx-font): Delete.
+ * tmac/groff_mdoc.7.man (Section Cross References): Rename...
+ ((Sub)section cross references): ...to this. Recognize
+ existence of `Ss` macro, curiously overlooked before.
+ * NEWS: Add item.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Drop now-unused `doc-pageref` string. It was nowhere
+ interpolated outside of state management macros.
+
+ * tmac/doc.tmac (doc-save-global-vars, doc-restore-global-vars):
+ * tmac/mdoc/doc-common: Do it.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (doc-header, doc-footer): Revise for
+ clarity and to use correct typefaces for titles.
+ (doc-header): Add new strings to ease title construction.
+ `doc-xref` stores the fully formatted page topic and section
+ number, e.g., "troff(1)"; `doc-abbv` stores the its potentially
+ abbreviated form when it is too long to fit.
+ (doc-footer): Use `doc-xref` as above. Stop setting the `Os`
+ and `Dd` parameters in the ("semantic"?) font used for the
+ page's section number (probably unnoticed all these years
+ because the font used to render that was (Times) roman).
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common: Rename strings for clarity.
+ - doc-document-title -> doc-page-topic
+ - doc-document-title-saved -> doc-page-topic-saved
+ * tmac/mdoc/doc-common: Use new name.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff (doc-page-topic-font):
+ * tmac/mdoc/doc-nroff (doc-page-topic-font): Set man page topic
+ names in italics.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Rename strings for clarity.
+ - doc-caption-font -> doc-page-topic-font
+ - doc-caption-font2 -> doc-page-section-font
+ * tmac/mdoc/doc-common (doc-header, doc-footer): Use new names.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac: Delete suppression of `Pa` font selection in a
+ "Files" section. This special handling was not documented.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff (doc-Pa-font): Set file specifications
+ in italics on typesetters. (Terminals already use italics.)
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff (doc-Xr-font):
+ * tmac/mdoc/doc-nroff (doc-Xr-font): Set man page topic cross
+ references in italics.
+
+2022-11-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Rename `doc-Tn-font-shape` to
+ `doc-Tn-font` for better parallelism with other font selection
+ strings for mdoc macros, since the `Tn` macro no longer
+ manipulates the type size.
+ * tmac/doc.tmac (Tn): Use new name.
+
+2022-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Debugging): Fix misleading claim. The
+ arguments to the `tm`, `tmc`, and `tm1` requests are not read in
+ copy mode. For example, you don't need to double backslashes to
+ get them to interpolate registers or strings.
+
+2022-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (an-end):
+ * tmac/mdoc/doc-common (doc-end-macro): Ensure that document
+ footer appears in continuous rendering mode even when a final
+ pending output line in the document is 1v from the page bottom.
+ Replace `fl` call with `br`, which IMO has clearer semantics.
+ Extend page length by 1v before doing so if the current vertical
+ position is within 1v of the page bottom.
+
+ Thanks to Alex Colomar for the report.
+
+2022-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man, mdoc]: Regression-test special case of continuous
+ rendering when the last pending output line in the document is
+ 1v from the (notional) page bottom.
+
+ * tmac/tests/an_output-footer-when-continuously-rendering.sh:
+ * tmac/tests/doc_output-footer-when-continuously-rendering.sh:
+ Do it.
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2022-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TE): Update diagnostic to mention another
+ failure mode: a man page that is simply a `so` request requires
+ soelim(1) to be run if the sourced page uses tbl(1).
+
+2022-11-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/xditview/xditview.am
+ ($(GXDITVIEW_GROFF_VERSION_H)): Run `$(MKDIR_P)` and `printf` as
+ separate rule commands in order to use them with `$(AM_V_at)`
+ and `$(AM_V_GEN)`, respectively. Prevents noise from build.
+
+ Fixes <https://savannah.gnu.org/bugs/?63302>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [eqn]: Fix Savannah #63299.
+
+ * src/preproc/eqn/main.cpp: Revise input file line number
+ handling.
+ (read_line): Stop dealing with `current_lineno` here; it's now
+ up to its caller (`do_file()`) to manipulate the line number.
+ (do_file): When reading new file, initialize `current_lineno` to
+ 1 instead of 0. Reset it to zero when encountering EOF (so that
+ diagnostics will not include a line number at all). When
+ performing nested call to `read_line()` to gather '.EN' from
+ input, increment the line number. Write correct line number in
+ output groff `lf` requests; in groff, its first argument assigns
+ the number of the _next_ input line. Increment line number at
+ end of outer `read_line()` loop.
+
+ Fixes <https://savannah.gnu.org/bugs/?63299>. Thanks to Alex
+ Colomar for the report.
+
+2022-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [eqn]: Regression-test Savannah #63299.
+
+ * src/preproc/eqn/tests/\
+ diagnostics-report-correct-line-numbers.sh: Do it.
+ * src/preproc/eqn/eqn.am (eqn_TESTS, TESTS, EXTRA_DIST): Run
+ test.
+
+2022-10-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (fail, warn, construct_command)
+ (version): Restore trailing newlines to `print`ed output. They
+ went missing when I removed the assignment of the output record
+ separator in commit 6f2e367836, 24 October. Thanks to Dave
+ Kemper for catching this.
+
+2022-10-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.cpp: Trivially refactor. Rename
+ `default_encoding` to `fallback_encoding` for clarity. Update
+ comments and debugging diagnostic messages accordingly.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grolj4]: Absorb lj4_font(5) man page into grolj4(1).
+
+ * src/devices/grolj4/lj4_font.5.man: Delete, moving content...
+ * src/devices/grolj4/grolj4.1.man (Fonts): ...hither.
+
+ * doc/doc.am (GROFF_MAN_PAGES1):
+ * src/devices/grolj4/grolj4.am (man5_MANS, EXTRA_DIST): Stop
+ formatting and shipping removed page.
+
+ * src/roff/groff/groff.1.man:
+ * src/utils/hpftodit/hpftodit.1.man: Drop references to page.
+
+ Fixes <https://savannah.gnu.org/bugs/?61819>.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `SN` register to configure subsection heading
+ indentation.
+
+ * tmac/doc.tmac: Recognize `SN` register if set on command line
+ and use groff man(7)-compatible default if it is not.
+ * tmac/mdoc/doc-common (Ss): Use this register instead of a
+ literal.
+ * tmac/groff_mdoc.7.man (Formatting with groff, troff, and
+ nroff): Document it.
+ * NEWS: Update item.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?62926>.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `IN` register to configure paragraph
+ indentation.
+
+ * tmac/doc.tmac: Recognize `IN` register if set on command line
+ and use groff man(7)-compatible defaults if it is not.
+ * tmac/mdoc/doc-common (Sh): Use this register instead of
+ `doc-paragraph-indentation`.
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Stop setting pargraph indentation
+ defaults here.
+ * tmac/groff_mdoc.7.man (Formatting with groff, troff, and
+ nroff): Document it.
+ * NEWS: Update item.
+
+ * tmac/tests/doc_Mt-works.sh:
+ * tmac/tests/doc_indents-correctly.sh: Update test expectations.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?62926>.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (Sh): Fix code style nit. Set paragraph
+ indentation absolutely rather than incrementally. mdoc(7)
+ doesn't have relative inset macros like man(7)'s `RS`/`RE`, so
+ the relative measurement could mislead the reader. (The
+ section heading itself uses an indentation of 0.)
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Fix Debian #1022179.
+
+ * tmac/mdoc/doc-common (Ss): Indent entire subsection heading by
+ 3 ens, even if it breaks across output lines. (Change and
+ restore indentation explicitly instead of using a temporary
+ indent to achieve this. Also indent absolutely by 3n instead of
+ retreating by one quarter inch.)
+
+ Fixes <https://bugs.debian.org/1022179>. Thanks to наб for the
+ report.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/doc_indents-correctly.sh: Add regression test for
+ Debian #1022179.
+
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Fix misleading register name.
+
+ * tmac/mdoc/doc-common (Sh):
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Rename `doc-subheader-indent` to
+ `doc-paragraph-indentation`, because the latter is what it's
+ used for.
+
+2022-10-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_POPPLER): Improve shell code portability.
+ Per the GNU Autoconf manual, "The -a, -o, '(', and ')' operands
+ are not present in all implementations, and have been marked
+ obsolete by Posix 2008. ...portable uses of test should never
+ have more than four arguments, and scripts should use shell
+ constructs like '&&' and '||' instead."
+
+2022-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.cpp: Alter usage message handling.
+ (usage): Summarize purpose of program and steer reader to man
+ page (only) if help was explicitly requested, and exit
+ successfully from here...
+ (main): ...instead of calling scope.
+
+2022-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.cpp (usage): Use more
+ communicative metasyntactic variable names.
+ * src/preproc/preconv/preconv.1.man (Synopsis, Options): Align
+ with updated usage message.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp: Alter usage message handling.
+ (usage): Summarize purpose of program and steer reader to man
+ page (only) if help was explicitly requested, and exit
+ successfully from here...
+ (main): ...instead of calling scope.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grolbp/lbp.cpp: Alter usage message handling.
+ (usage): Summarize purpose of program and steer reader to man
+ page (only) if help was explicitly requested, and exit
+ successfully from here...
+ (main): ...instead of calling scope.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grolbp/lbp.cpp (main): Handle `getopt_long()`
+ return value more idiomatically.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grolbp/lbp.cpp: Fix code style nits.
+ (main): Use standard C library symbols `EXIT_SUCCESS` and
+ `EXIT_FAILURE` instead of integer literals as arguments to
+ `exit()`. Add assertion.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tty.cpp: Alter usage message handling.
+ (usage): Summarize purpose of program and steer reader to man
+ page (only) if help was explicitly requested, and exit
+ successfully from here...
+ (main): ...instead of calling scope.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tty.cpp: Fix code style nits.
+ (main): Use standard C library symbols `EXIT_SUCCESS` and
+ `EXIT_FAILURE` instead of integer literals as arguments to
+ `exit()`. Replace `assert(0)` call with communicative
+ predicate.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp: Alter usage message handling.
+ (synopsis, help): Coalesce these two functions...
+ (usage): ...into this one. Summarize purpose of program and
+ steer reader to man page only if help was explicitly requested,
+ rather than blitzing user with text upon a usage error. Also
+ drop option summary from usage message, as it duplicates
+ groff(1).
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Alter usage message handling.
+ (help): Rename this subroutine...
+ (usage): ...to this. Summarize purpose of program and steer
+ reader to man page only if help was explicitly requested, rather
+ than blitzing user with text upon a usage error. Also drop
+ option summary from usage message, as it duplicates grog(1).
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Drop relic code and comments.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Migrate expansion of Perl interpreter in shebang.
+ Use the same technique as afmtodit, mmroff, gropdf, and pdfmom.
+
+ * src/utils/grog/grog.am (grog): Replace "@PERL@" instead of
+ '^\(#! \).*perl'.
+ * src/utils/grog/grog.pl: Use "@PERL@" in shebang.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [afmtodit]: Give program a usage message.
+
+ * src/utils/afmtodit/afmtodit.pl: Add new scalar `want_help` of
+ Boolean sense. Recognize new long option `--help`, attached to
+ `$want_help`. Stop stripping off directory name components from
+ program name when emitting diagnostics. No other groff program
+ does this (well, gropdf did until recently), and it might save
+ users some confusion if they're working with multiple copies of
+ afmtodit.
+ (usage): New subroutine reports usage message. If help was
+ explicitly requested, summarize purpose of program and steer
+ reader to man page.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [afmtodit]: Migrate expansion of Perl interpreter in shebang.
+ Use the same technique as mmroff, gropdf, and pdfmom.
+
+ * src/utils/afmtodit/afmtodit.am (afmtodit): Replace "@PERL@"
+ instead of "/usr/bin/perl".
+ * src/utils/afmtodit/afmtodit.pl: Use "@PERL@" in shebang.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gropdf] Give program a usage message.
+
+ * src/devices/gropdf/gropdf.pl: Add new scalar `want_help` of
+ Boolean sense. Recognize new long option `--help`, attached to
+ `$want_help`.
+ (usage): New subroutine reports usage message. If help was
+ explicitly requested, summarize purpose of program and steer
+ reader to man page.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/xditview/xditview.c (Syntax): "#if 0" out
+ reference to `-noPolyText` option, whose effect is likewise
+ bracketed in another file.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (enable_warning, disable_warning):
+ Recast diagnostic messages for clarity.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pfbtops]: Fix code style and diagnostic nits.
+
+ * src/utils/pfbtops/pfbtops.c (error): Exit with `EXIT_FAILURE`
+ status (from standard C library) instead of status 2.
+ (main): Exit with `EXIT_SUCCESS` status when writing version or
+ help information. Exit with status 2 when dying due to usage
+ error. Use `fprintf()` and `strerror()` to construct error
+ message when dying due to inability to open input file instead
+ of using `perror()`, which anonymizes its caller and thus should
+ never be used in serious work. Avoid it like `gets()`.
+ * NEWS: Add item for exit status changes.
+
+ Continues the long process of fixing Savannah #52463.
+
+2022-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man pages]: Don't document macro package compatibility wrapper
+ directory if it's not used.
+
+ * Makefile.am (.man): Use sed to replace
+ '@COMPATIBILITY_WRAPPERS@' in man page text with value of
+ `compatibility_wrappers` shell variable. Document its purpose.
+ * src/preproc/eqn/eqn.1.man (Description):
+ * src/preproc/grn/grn.1.man (Options):
+ * src/roff/groff/groff.1.man (Installation directories):
+ * src/roff/troff/troff.1.man (Environment): Mention
+ `@SYSTEMMACRODIR@` only if `@COMPATIBILITY_WRAPPERS@` expands to
+ something other than "no" (it could be "yes" or "manual").
+
+ Thanks to Alexander Kanavin and Jeremy Puhlman for the report.
+
+2022-10-21 Robert Yang <liezhi.yang@windriver.com>
+
+ * font/devpdf/util/BuildFoundries.pl:
+ * src/devices/gropdf/gropdf.pl:
+ * src/devices/gropdf/pdfmom.pl: Replace use of '-w' in shebang
+ line with "use warnings;".
+
+2022-10-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/fallbacks.tmac: Define fallback characters for many code
+ points from the Unicode General Punctuation Block. This is to
+ ease migration from other documentation formats; in many cases
+ there are more idiomatic *roff ways of getting results that
+ typeset better and are amenable to fine tuning. For instance,
+ Unicode defines spaces and dashes of various discrete widths;
+ when typesetting with *roff, you can have a space or dash (among
+ other things) of any length achievable by the output device.
+ * tmac/ps.tmac: Migrate non-breaking hyphen fallback character
+ definition from here to the foregoing.
+
+ Fixes <https://savannah.gnu.org/?58930>. Thanks to Dave Kemper
+ for the report and discussion.
+
+2022-10-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac:
+ * tmac/s.tmac: Escape newlines when opening conditional blocks.
+
+ Fixes <https://savannah.gnu.org/?63197>. Thanks to Bjarni Ingi
+ Gislason for the report and Dave Kemper for the quick fix.
+
+2022-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grodvi/dvi.cpp (usage):
+ * src/devices/grohtml/post-html.cpp (usage):
+ * src/devices/grolbp/lbp.cpp (usage):
+ * src/devices/grolj4/lj4.cpp (usage):
+ * src/devices/grops/ps.cpp (usage):
+ * src/devices/grotty/tty.cpp (usage):
+ * src/devices/xditview/xditview.cpp (usage):
+ * src/preproc/eqn/main.cpp (usage):
+ * src/preproc/grn/main.cpp (usage):
+ * src/preproc/html/pre-html.cpp (usage):
+ * src/preproc/pic/main.cpp (usage):
+ * src/preproc/preconv/preconv.cpp (usage):
+ * src/preproc/refer/refer.cpp (usage):
+ * src/preproc/soelim/soelim.cpp (usage):
+ * src/preproc/tbl/main.cpp (usage):
+ * src/roff/groff/groff.cpp (synopsis, help):
+ * src/roff/nroff/nroff.sh:
+ * src/roff/troff/input.cpp (usage):
+ * src/utils/addftinfo/addftinfo.cpp (usage):
+ * src/utils/hpftodit/hpftodit.cpp (usage):
+ * src/utils/indxbib/indxbib.cpp (usage):
+ * src/utils/lkbib/lkbib.cpp (usage):
+ * src/utils/lookbib/lookbib.cpp (usage):
+ * src/utils/pfbtops/pfbtops.c (usage):
+ * src/utils/tfmtodit/tfmtodit.cpp (usage):
+ * src/utils/xtotroff/xtotroff.c (usage): Update usage message.
+ Present different modes of operation on separate output lines.
+ Sort options in English lexicographic order. Document help
+ option(s) as last mode of operation.
+
+2022-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl: Revise handling of argument 0.
+ Rename scalar `progname` to `prog` for brevity (and preparation
+ for writing a usage message). Also stop stripping off directory
+ name components from it. No other groff program does this, and
+ it might save users some confusion if they're working with
+ multiple copies of gropdf.
+
+2022-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Migrate terminology from "paper size" to "paper format" or
+ "paper dimensions" as appropriate in documentation and
+ diagnostic messages. "Format" implies an orientation (which can
+ be overridden in many cases) whereas size does not. When only
+ the magnitudes of measurements are at issue (mainly for internal
+ purposes), use the term "dimensions".
+
+ * NEWS:
+ * PROBLEMS:
+ * doc/groff.texi:
+ * m4/groff.m4 (GROFF_PAGE):
+ * man/groff_font.5.man:
+ * man/groff_tmac.5.man:
+ * src/devices/grodvi/dvi.cpp (main):
+ * src/devices/grolbp/grolbp.1.man:
+ * src/devices/grolbp/lbp.cpp (main):
+ * src/devices/grolj4/grolj4.1.man:
+ * src/devices/grolj4/lj4.cpp (lj4_printer::lj4_printer, main):
+ * src/devices/grolj4/lj4_font.5.man:
+ * src/devices/gropdf/gropdf.1.man:
+ * src/devices/grops/grops.1.man:
+ * src/devices/grops/ps.cpp (main):
+ * src/roff/groff/groff.1.man:
+ * tmac/papersize.tmac: Do it.
+
+2022-10-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff (doc-left-parenthesis)
+ (doc-right-parenthesis, doc-left-bracket, doc-right-bracket):
+ Drop thin and hair space escape sequences from these string
+ definitions. (Also, doc-right-bracket was inconsistent with
+ doc-left-bracket, the former inserting horizontal motion only
+ before the bracket character.) Eliminates excess space when
+ using Pq, Po, Pc and Bq, Bo, Bc macros and formatting for
+ typesetters, and aligns output with behavior of `Pq` and `Bq` as
+ documented in groff_mdoc(7).
+
+ Fixes <https://bugs.debian.org/1021795>. Thanks to наб for the
+ report.
+
+2022-10-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff: Use groff-canonical typeface names in
+ font selection escape sequences. Migrate 'C' to 'CR' and 'CO'
+ to 'CI'. (Admittedly, "Courier oblique" is more pedantically
+ correct than "Courier italic". But the iron ball of Unix troff
+ history and its style trio [later quartet] of "R", "I", "B"
+ {then "BI"} will not be ignored.)
+
+2022-10-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff: Drop nilpotent type size escape
+ sequences from string definitions.
+
+2022-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Document a CSTR #54 erratum regarding \n(st and \n(sb.
+
+ * doc/groff.texi (Page Motions):
+ * man/groff.7.man (Writable registers):
+ * man/groff_diff.7.man (New registers): Do it.
+
+ * PROBLEMS: Further clarify. Note DWB and Heirloom behavior.
+
+2022-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/main.cpp (read_line): Fix switched test
+ consequents when updating `current_lineno`.
+
+2022-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/xtotroff/xtotroff.c (main): Annotate "xtotroff" as a
+ GNU program in version information.
+
+2022-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/xditview/xditview.am
+ ($(GXDITVIEW_GROFF_VERSION_H): Perform correct substitution to
+ get groff version string into `Version_string` C symbol.
+ Continues commit c73decb58f, 9 October.
+
+2022-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.1.man (Files): Fix ordering error.
+
+ Fixes <https://savannah.gnu.org/bugs/?63228>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-10-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/lex.cpp (get_delimited_text): Clear line
+ number when hitting EOF.
+ * src/preproc/eqn/main.cpp: Revise end-of-file handling. Clear
+ line number upon reaching EOF so that we don't report a nonsense
+ value one greater than the number of lines in the input file.
+ (read_line): Boolify. Make static (local linkage only), since
+ it has no external callers. Introduce new Boolean variable
+ `is_end_of_file`. Clear `current_lineno` if EOF, and increment
+ it otherwise.
+ (do_file, main): Clarify diagnostic messages.
+
+2022-10-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [eqn]: Improve diagnostics involving unprintable characters.
+
+ * src/preproc/eqn/main.cpp (input_char_description): New
+ function constructs a human-readable string describing
+ characters.
+ (read_line, inline_equation, main): Call new function and adjust
+ diagnostic message wording to accommodate the phrase it returns.
+
+ Fixes <https://savannah.gnu.org/bugs/?63218>.
+
+2022-10-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [eqn]: Improve diagnostics.
+
+ * src/preproc/eqn/lex.cpp (file_input::~file_input):
+ * src/preproc/eqn/main.cpp (main): Die if `fclose()` fails and
+ report underlying system error.
+ (inline_equation): Identify inline equation context.
+
+2022-10-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (2c, 1c): Throw diagnostic if changing columnation
+ with a footnote pending. This isn't necessarily an error per
+ se, but in many cases it will flag an undesirable page layout
+ due to the limited flexibility of me(7)'s footnote support at
+ present. See <https://savannah.gnu.org/bugs/?63176>.
+
+2022-10-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/main.cpp: Fix code style nits.
+ (usage): Align output with man page. Document separate
+ invocation modes separately.
+ (main): Use standard C library symbols `EXIT_SUCCESS` and
+ `EXIT_FAILURE` with `exit()` calls instead of integer literals.
+ Replace `assert(0)` call with communicative predicate. Check
+ return value of `fclose()`, and exit with fatal error if it
+ fails. Distinguish `ferror()` status and `fflush(stdout)`
+ failures when cleaning up before exit.
+
+2022-10-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_color_draw_node): Clarify
+ diagnostic.
+
+2022-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/dvi.tmac: Always render \[aq] as a neutral apostrophe.
+ Thanks to the TC fonts, we can do this even when the default CM
+ text fonts are in use.
+
+ Fixes <https://savannah.gnu.org/bugs/?63200>.
+
+2022-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/ec.tmac: Remove apparently unnecessary remappings of
+ styles (and reassertion of style slots in the font mounting
+ position list, albeit in an unusual order (RBI instead of RIB)).
+ This code frustrated the rendering of man pages with post-1.22.4
+ groff for the 'dvi' output device when using EC fonts. Instead
+ remap the T and H family typefaces in all four styles
+ explicitly. (The CW and CWI faces were already handled.) Also
+ add remappings of groff+PostScriptish font names "CB" and "CBI"
+ to CW EC faces of normal weight, corresponding to dvi.tmac; see
+ commits 529e2ca0c4, 2002-03-23 and c9741da6c0, 2021-05-06.
+
+ Fixes <https://savannah.gnu.org/bugs/?63194>.
+
+2022-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an_works-with-ec.sh: Add regression test for
+ Savannah #63194.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/ec_works.sh: Add unit test to validate use of EC
+ fonts when "-mec" option given.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/latin2.tmac:
+ * tmac/latin5.tmac:
+ * tmac/latin9.tmac: Perform the character remapping shenanigans
+ of the fix for Savannah #63112 only if the output device is
+ "latin1" (a terminal using an 8-bit character encoding). Only
+ then can we be sure that Latin-1 glyphs will be unavailable when
+ other encodings are used and that `\N` escape sequences will
+ identify correct glyph indices in a font (because there is no
+ font per se accessible to groff--simply a terminal implementing
+ a character encoding).
+
+2022-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (GetType1): Clarify diagnostic.
+ When failing to open a font file for embedding in a PDF, mention
+ this context.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.tables: Update against Unicode 15.
+ No substantive changes.
+
+ Fixes <https://savannah.gnu.org/bugs/?63188>.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: If URW fonts were located, add the directory
+ where they were found to the configuration report.
+
+ Attempts to fix <https://savannah.gnu.org/bugs/?62860> (2/2).
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4: Try to make gropdf's search for URW font files
+ more deterministic. To disambiguate cases where multiple--not
+ necessarily identical--copies may be found on the system, search
+ _only_ in the directory given to the `--with-urw-fonts-dir`
+ configure option, if present. This populates the "Foundry" file
+ generated by the build, causing gropdf to search there first.
+ (GROFF_URW_FONTS_PATH): Stop `AC_SUBST`ing `urwfontsdir` here.
+ (GROFF_URW_FONTS_CHECK): `AC_REQUIRE` `GROFF_URW_FONTS_PATH` to
+ be run first. If `urwfontsdir` is not null, search only there
+ for URW fonts. Assign `urwfontsdir` the value of the directory
+ in which the fonts are found. Assign it an empty value if none
+ are found. Either way, `AC_SUBST` the variable.
+
+ Attempts to fix <https://savannah.gnu.org/bugs/?62860> (1/2).
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (LoadFont): Clarify diagnostic.
+ gropdf opens "fonts" in two distinct ways. On the one hand, it
+ opens groff font description files for essentially all
+ nontrivial output. On the other, it may open actual Type 1 font
+ files for embedding in a PDF. Make failure of the former case
+ less confusable with the latter.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Document new XN/XH and related macros.
+
+ * doc/groff.texi (Creating a table of contents):
+ * doc/ms.ms (Creating a table of contents):
+ * tmac/groff_ms.7.man (Creating a table of contents): Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?63110>.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gxditview]: Support `-version`, `--version` option. As a C
+ program, gxditview had no access to the (C++) libgroff
+ `Version_string` symbol, so construct a header file to store
+ this datum at build time. If groff gets other user-facing C
+ programs, we should consider generating this header in
+ src/include instead.
+
+ * src/devices/xditview/xditview.am: Generate "groff_version.h"
+ file.
+ (GXDITVIEW_GROFF_VERSION_H): Define new macro.
+ ($(GXDITVIEW_GROFF_VERSION_H)): Define target to generate file.
+ (XDITVIEW_GENHDRS): Add $(GXDITVIEW_GROFF_VERSION_H).
+
+ * src/devices/xditview/xditview.c: Include new header file.
+ (Syntax): Report newly supported options.
+ (main): Recognize and handle new options.
+
+ * src/devices/xditview/gxditview.1.man (Synopsis): Document
+ them.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [gxditview]: Update usage message production and contents.
+
+ * src/devices/xditview/xditview.c: Use C99 Boolean type.
+ (Syntax): Accept additional Boolean argument indicating whether
+ the usage message is to be issued due to an error. Write
+ message to stderr if so, and stdout otherwise. Stop presuming
+ length of output line; guessing where to wrap is unreliable due
+ to variable terminal width and length of argv[0]. Write one
+ line per invocation mode of the program. Stop duplicatively
+ documenting standard X Toolkit options. Exit with standard C
+ library `EXIT_FAILURE` status if there was an error, and
+ `EXIT_SUCCESS` otherwise.
+ (main): Refactor to prepare for `--version` support.
+
+ * src/devices/xditview/gxditview.1.man (Synopsis): Sync list of
+ options with usage message.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Recognize "--version" as
+ synonym for "-v". To achieve this, use Getopt::Long instead of
+ Getopt::Std.
+ * src/utils/afmtodit/afmtodit.1.man (Synopsis, Options):
+ Document it.
+
+2022-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/pdfmom.pl: Recognize "--version" as synonym
+ for "-v".
+ * src/devices/gropdf/pdfmom.1.man (Synopsis, Description):
+ Document it.
+
+2022-10-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (version): Identify as a GNU program.
+
+2022-10-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grolj4/grolj4.1.man (Typefaces): Add new
+ subsection.
+
+ Fixes <https://savannah.gnu.org/bugs/?60929>. Thanks to T. Kurt
+ Bond for the report.
+
+2022-10-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meref.me.in (Columnated Output): Document persistence of
+ `$s` register value across columnation mode changes.
+
+ Fixes <https://savannah.gnu.org/bugs/?62717>. Thanks to Dave
+ Kemper for the report.
+
+2022-10-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meref.me.in: Annotate empty default arguments more
+ consistently.
+
+ Fixes <https://savannah.gnu.org/bugs/?62801>. Thanks to Dave
+ Kemper for the report.
+
+2022-10-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meref.me.in: Fix documentation error.
+ (Summary) <\_>: Describe as "underrule", not "underscore".
+ These are distinct: the latter is a glyph; the former is drawn
+ by typesetters and rendered with SGR attributes on terminals.
+
+2022-10-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * NEWS: Advise users of changes to "name" directive handling in
+ font description files.
+
+ Fixes <https://savannah.gnu.org/bugs/?61423>. Thanks to Dave
+ Kemper for the report.
+
+2022-10-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/number.cpp: Refactor and fix code style nits.
+ Boolify and rename static (local) functions.
+ - parse_expr -> is_valid_expression
+ - start_number -> is_valid_expression_start
+ - parse_term -> is_valid_term
+ Rename preprocessor macro `SCALE_INDICATOR_CHARS` to
+ `SCALING_UNITS`.
+ (is_valid_expression, is_valid_term): Rename parameters and
+ demote them from `int` to `bool`.
+ - scaling_indicator -> scaling_unit (no demotion)
+ - parenthesised -> is_parenthesized
+ - rigid -> is_mandatory
+ (is_valid_expression_start, is_valid_expression, is_valid_term):
+ Return Boolean rather than integer literals.
+ (get_vunits, get_hunits, get_number_rigidly, get_number)
+ (get_integer): Update call sites of renamed functions. Replace
+ Boolean-valued integer literals used as Booleans with Boolean
+ literals and annotate their purposes. (See <https://\
+ stackoverflow.com/questions/38076786/\
+ why-doesnt-c-support-named-parameters>.)
+ (get_vunits, get_hunits, get_number, get_integer): Replace `0`
+ in assertions with a communicative predicate. In all of these
+ it's an unhandled `switch()` case.
+
+2022-10-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_expr_test, do_zero_width): Use
+ better terminology in diagnostic messages.
+
+2022-10-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Fix Savannah #63151.
+
+ * src/roff/troff/input.cpp (read_draw_node): Throw "delim"
+ warning diagnostic when a drawing escape sequence ends the line
+ without a closing delimiter.
+
+ Fixes <https://savannah.gnu.org/bugs/?63151>.
+
+2022-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/fallbacks.tmac: Define fallbacks for characters in ISO
+ Latin-{2,5,9} but not in Latin-1.
+
+ Fixes <https://bugs.debian.org/782903>. Thanks to Rafal Pietrak
+ for the report.
+
+2022-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Fix Savannah #63149.
+
+ * src/roff/troff/reg.cpp (alter_format): Throw comprehensible
+ diagnostic when input delete character encountered in register
+ format.
+
+ Fixes <https://savannah.gnu.org/bugs/?63149>.
+
+2022-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Describe an input delete character comprehensibly.
+
+ * src/roff/troff/input.cpp (token::description): The delete
+ character (ISO 127 decimal, EBCDIC 7) is a valid `TOKEN_CHAR`
+ but is not printable. Don't attempt to output it literally in
+ diagnostics; describe it in a phrase instead.
+
+2022-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Apply consistent terminology.
+
+ * src/roff/troff/input.cpp: Rename functions to better align
+ with our documentation, and decouple their names from an
+ assumption of diagnostic severity. Also give them imperative
+ names since they are called for their side effects, not their
+ return values.
+ - empty_name_warning -> diagnose_missing_identifier
+ - non_empty_name_warning -> diagnose_invalid_identifier
+ (diagnose_missing_identifier): Refer to absent operand as
+ "identifier", not "name", in diagnostic messages since the
+ latter (strictly) refers to the request/macro/string/diversion
+ name space, and this function is also used to gather register
+ identifiers.
+
+2022-10-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Fix Savannah #63112 (3/3).
+
+ * tmac/latin2.tmac: Replace characters that ISO Latin-1 has but
+ Latin-2 doesn't. Map characters that ISO Latin-2 has and
+ Latin-1 doesn't to their numeric code points.
+
+2022-10-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Regression-test Savannah #63112 (3/3).
+
+ * tmac/tests/latin2_works: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Fix Savannah #63112 (2/3).
+
+ * tmac/latin5.tmac: Replace characters that ISO Latin-1 has but
+ Latin-5 doesn't. Map characters that ISO Latin-5 has and
+ Latin-1 doesn't to their numeric code points.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Regression-test Savannah #63112 (2/3).
+
+ * tmac/tests/latin5_works: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Fix Savannah #63112 (1/3).
+
+ * tmac/latin9.tmac: Replace characters that ISO Latin-1 has but
+ Latin-9 doesn't. Map characters that ISO Latin-9 has and
+ Latin-1 doesn't to their numeric code points.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Regression-test Savannah #63112 (1/3).
+
+ * tmac/tests/latin9_works: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp: Refactor to parallelize logic in
+ similar routines; namely, those handling escape sequences that
+ accept newlines as argument delimiters.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp: Fix inconsistencies in handling of
+ escape sequences that accept newlines as delimiters. Some threw
+ spurious warnings as in Savannah #63011; others failed to treat
+ a newline-terminated escape sequence also as the ending of an
+ input line.
+ (do_name_test, do_zero_width): Suppress spurious warning.
+ (do_zero_width, do_width, do_special): Synthesize newline to
+ terminate input line.
+
+2022-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/\
+ some_escapes_accept_newline_delimiters.sh: Add test cases for
+ `\A` and test formatted output of escape sequences, not just the
+ absence of diagnostics from permitted use of newlines as
+ argument delimiters.
+
+2022-09-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libdriver/input.cpp (do_file): Make use of
+ positioning commands before the first page is started fatal
+ errors; they suggest ill-formed input. The 'p' command
+ clobbers the vertical position anyway. (See
+ https://bugs.debian.org/421437 for discussion.)
+
+2022-09-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdf.tmac: Add inclusion guard; if a `pdfmark` macro is
+ already defined, skip inclusion of this file. Unfortunately
+ there are multiple name collisions with pdfmark.tmac.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp:
+ * src/roff/troff/request.h: Trivially refactor. Boolify
+ `interpolate_macro` and `request::invoke`. Also rename
+ parameter `no_next` to `do_not_want_next_token`, exposing
+ potentially confusing interface design.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (spring_trap, interpolate_string)
+ (interpolate_string_with_args): Improve error diagnostics: when
+ a sprung trap or an interpolation fails because it's being
+ attempted on a request, say so explicitly and _name_ it. If the
+ argument to the trap-planting request or to a string
+ interpolation escape sequence is itself an interpolation, this
+ name might not be obvious. Consider:
+ .wh \n[pos] \*[mac]
+ .em \*[mac]
+ .itc 1 \*[mac]
+ \*[\*[mac]]
+ Supplying this information requires no additional overhead.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (interpolate_string): Trivially
+ refactor. Rename function parameter from `s` to `nm` to more
+ obviously align with `interpolate_string_with_args()`.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_zero_width, token::description)
+ (interpolate_string, interpolate_string_with_args)
+ (token::get_char): Revise diagnostic messages to stop presuming
+ the identity of the escape character.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (set_escape_char): Recast error
+ message to describe attempted operation and tell the user what
+ we're doing about being instructed to use an invalid escape
+ character.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_size): Be more helpful to
+ ambiguous type size escape sequence users; offer advice in
+ terms of the current escape character.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (main): Fix SEGV when exiting
+ gxditview. The `postdriver` pointer always referred to
+ allocated memory except when the `-X` option was given; it was
+ then assigned the address of a #defined string literal. It was
+ thus statically allocated and an error to attempt to `free()`
+ it. Duplicate the string on the heap instead so that we can
+ clean up uniformly regardless of postprocessor. Problem caused
+ by me when introducing `xexit()` in commit 6769e56aab, 20 June.
+
+2022-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (@o, n2, sk (f, ++): Consistently call `@err`
+ macro with `do`.
+
+2022-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Initialize new register `_f`, the value of `$m`
+ {column count} of the previous pending footnote, to zero,
+ meaning there is no previous pending footnote.
+ (@o): Emit diagnostic when flushing footnotes into a different
+ column layout than the pending footnote last added. Set `_f` to
+ zero.
+ ((f): Emit diagnostic when enqueueing footnote using a different
+ column layout than the previous pending footnote used. Set `_f`
+ to `$m`.
+
+ Fixes <https://savannah.gnu.org/bugs/?58736>. Thanks to Dave
+ Kemper for the report and discussion.
+
+2022-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Explicitly initialize and annotate internal
+ register `?f`.
+
+2022-09-08 Nikita Ivanov <nikita.vyach.ivanov@gmail.com>
+
+ * tmac/ps.tmac: Fallback definitions for glyphs that usually
+ come from special fonts should use `schar` instead of `fchar`.
+ {Define fallback special characters using `schar` instead of
+ `fchar` for glyphs that we do not expect to find in text fonts;
+ that is, they don't have bold, italic, and bold-italic stylistic
+ variants. This means all special character definitions in the
+ file except for rules, ligatures, and digraphs. Problem dates
+ back to a series of commits from March 2002 to February 2003,
+ straddling the introduction of the `schar` request in November
+ 2002. --GBR}
+
+ Fixes <https://savannah.gnu.org/bugs/?62955>.
+
+2022-09-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Slightly simplify new `XN` macro feature to align it more
+ closely with Berkeley TOC macro behavior; don't prepend the
+ table of contents entry with the section number (`\*[SN]`). If
+ desired, a document can define `XN-REPLACEMENT`. This does not
+ regress "pdfmark.ms" because it uses an alternative, older
+ implementation of these features from "spdf.tmac".
+
+ * tmac/s.tmac (XH-UPDATE-TOC): Update comments.
+ (XN-REPLACEMENT): Do it.
+
+2022-09-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdf.tmac (pdf*href-I): Call `pdf:error` macro by its
+ correct name. Both this macro file and
+ contrib/pdfmark/pdfmark.tmac seem to want to use the 'pdf'
+ prefix for their macro names, with much confusing overlap.
+ Problem dates back to commit 87046b2948, 2011-07-26.
+
+2022-09-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS_CHECK): If Ghostscript or awk are
+ unavailable, skip only the prepopulation of the URW font search
+ path instead of the entire check. This way we still locate the
+ URW fonts if they are in one of several standard locations.
+
+ Fixes <https://savannah.gnu.org/bugs/?62775>.
+
+2022-09-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Trivially refactor.
+
+ * src/roff/troff/input.cpp (do_name_test): Boolify and rename
+ local variables to..."impredicate" their names.
+ - bad_char -> got_bad_char
+ - some_char -> got_some_char
+
+2022-09-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grodvi, ...]: Trivially refactor.
+
+ Tidy up #includes of the "assert.h" header, which we locally
+ provide to ensure a C99-conformant implementation. Drop
+ inclusion of header from files that don't directly need it, add
+ it where they do, and spell the inclusion consistently with
+ double quotes to cue the reader of its local status.
+
+ * src/devices/grodvi/dvi.cpp:
+ * src/devices/grolj4/lj4.cpp:
+ * src/libs/libdriver/printer.cpp:
+ * src/preproc/eqn/box.cpp:
+ * src/preproc/eqn/delim.cpp:
+ * src/preproc/eqn/pile.cpp:
+ * src/preproc/eqn/script.cpp: Add inclusion.
+
+ * src/include/driver.h:
+ * src/libs/libgroff/fontfile.cpp:
+ * src/preproc/eqn/eqn.h:
+ * src/preproc/html/pushback.cpp:
+ * src/preproc/refer/refer.h:
+ * src/preproc/tbl/table.h:
+ * src/utils/addftinfo/addftinfo.cpp: Drop inclusion.
+
+ * src/include/itable.h:
+ * src/include/stringclass.h:
+ * src/libs/libbib/linear.cpp:
+ * src/libs/libbib/search.cpp:
+ * src/libs/libgroff/color.cpp:
+ * src/libs/libgroff/font.cpp:
+ * src/libs/libgroff/nametoindex.cpp:
+ * src/libs/libgroff/prime.cpp:
+ * src/libs/libgroff/searchpath.cpp:
+ * src/preproc/html/pre-html.cpp:
+ * src/preproc/preconv/preconv.cpp:
+ * src/preproc/soelim/soelim.cpp:
+ * src/utils/indxbib/indxbib.cpp:
+ * src/utils/lkbib/lkbib.cpp:
+ * src/utils/lookbib/lookbib.cpp: Respell inclusion.
+
+ Fixes <https://savannah.gnu.org/bugs/?63079>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-09-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff, ...]: Trivially refactor.
+
+ Boolify and rename internal library function from
+ `invalid_input_char` to `is_invalid_input_char`.
+
+ * src/include/lib.h: Do it.
+
+ * src/libs/libgroff/font.cpp (text_file::next_line):
+ * src/preproc/eqn/lex.cpp (file_input::read_line):
+ * src/preproc/eqn/main.cpp (read_line, main):
+ * src/preproc/pic/lex.cpp (file_input::read_line,
+ simple_file_input::get, simple_file_input::peek):
+ * src/preproc/pic/main.cpp (top_input::get, top_input::peek)
+ (do_file):
+ * src/preproc/refer/command.cpp (input_stack::push_file):
+ * src/preproc/refer/refer.cpp (do_file, do_bib):
+ * src/roff/troff/env.cpp (environment::make_tag):
+ * src/roff/troff/input.cpp (file_iterator::fill)
+ (file_iterator::peek, get_char_for_escape_parameter)
+ (transparent_translate, read_request, asciify)
+ (input_char_description, read_string, transparent_file,
+ set_string): Update call sites.
+
+2022-09-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Tweak diagnostic messages.
+
+ * src/roff/troff/input.cpp (token::description)
+ (input_char_description): Consistently use articles in
+ descriptive noun phrases.
+
+2022-09-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Tweak diagnostic messages.
+
+ * src/roff/troff/input.cpp (non_empty_name_warning): Say
+ "identifier", not "name", in diagnostic message; it can be
+ thrown for attempted assignments to invalid register
+ identifiers, and some of our documentation refers to identifiers
+ in the name space shared by requests, macros, strings, and
+ diversions as "names".
+
+ * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file):
+ * src/roff/troff/input.cpp (get_char_for_escape_parameter)
+ (token::usable_as_delimiter, non_empty_name_warning)
+ (pipe_source, psbb_locator::psbb_locator, open_request)
+ (opena_request, define_class, pipe_output, system_request):
+ Consistently say "_is_ not allowed". The zero copula poses too
+ great a risk of incomprehension IMO.
+
+2022-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Add internal string `doc-Lk-font` to manage the typeface
+ in which to render URIs.
+
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Add it. Use roman instead of (Courier)
+ bold. This is more consistent with man(7)'s `UR` and less with
+ mandoc(1).
+
+ * tmac/doc.tmac (Lk): Use it instead of `doc-Sy-font`.
+
+2022-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Fix Savannah #59738.
+
+ * tmac/doc.tmac (Lk): Process further macro arguments more like
+ other macros do, calling `doc-print-recursive`. This permits
+ recognition of end-of-sentence punctuation in the argument list.
+
+ Fixes <https://savannah.gnu.org/bugs/?59738>.
+
+2022-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Regression-test Savannah #59738.
+
+ * tmac/tests/doc_Lk-respect-sentence-ending-punctuation.sh: Do
+ it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Fix code style nit. Rename `doc-arg-limit` to
+ `doc-arg-count`. This register doesn't track any sort of limit
+ on the number of arguments you can give to an mdoc(7) macro, or
+ anything like that. It is simply a count of the number of
+ arguments visible to the currently operating macro.
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff:
+ * tmac/mdoc/doc-syms: Do it.
+
+2022-09-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Fix errors in documentation regarding which escape
+ sequences accept newlines as argument delimiters, and other
+ inaccuracies.
+
+ * doc/groff.texi (Escape Sequences): Cover general cases before
+ exceptional ones. Leaders can be used as argument delimiters.
+ Call out letters and numerals as (usually) usable as well.
+ Correct an almost completely inaccurate list of escape sequences
+ that accept a newline as an argument delimiter: \A, \b, \o, \w,
+ \X, and \Z do; \B does not. Correct example of use of newline
+ as delimiter with \o escape sequence. Stop referring to the
+ decimal point as an "operator". Drop "newline" from a list of
+ prohibited delimiters by several escape sequences since it has
+ already been discussed.
+
+ * man/groff.7.man (Escape sequences): Replace weaksauce cross
+ reference to our Texinfo manual with a proper discussion of
+ acceptable delimiters in escape sequences, synced with the
+ foregoing change. Stop using quotation marks around escape
+ sequences, except for "\ " which obviously needs it.
+
+ Fixes <https://savannah.gnu.org/bugs/?63002>. Thanks to Dave
+ Kemper for the report.
+
+2022-09-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Don't throw a spurious warning when using newline as
+ delimiter with the few escape sequences that permit this.
+
+ * src/roff/troff/input.cpp (do_overstrike, do_bracket, do_width)
+ (do_special): Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?63011>. Thanks to Bjarni
+ Ingi Gislason for the report and Dave Kemper for the discussion.
+
+2022-09-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Add regression test for Savannah #63011.
+
+ * src/roff/groff/tests/\
+ some_escapes_accept_newline_delimiters.sh: Do it.
+ * src/roff/groff/groff.am (groff_TESTS): Run it.
+
+2022-09-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_special): Fix code style nit;
+ align function definition with declaration (internal linkage).
+
+2022-09-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/ps.cpp (ps_printer::special)
+ (resource_manager::process_file): Fix code style nit. Mark
+ static structs initialized within functions and never modified
+ thereafter as `const`. This attempts to work around an apparent
+ false positive from AddressSanitizer. If it doesn't pacify
+ ASAN, please explain to me how constant structure members
+ initialized to string literals and pointers to functions within
+ the translation unit can ever be null. If that is infeasible,
+ please report a bug to your compiler vendor.
+
+ Fixes (addresses, at any rate) https://savannah.gnu.org/bugs/\
+ ?61643>. Thanks to Bjarni Ingi Gislason for the report.
+
+2022-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Refactor: relocate most rendering option handling to
+ "doc.tmac" from "doc-ditroff" and "doc-nroff", cutting down on a
+ lot of duplication. The `S` register retains separate handling.
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Do it.
+
+2022-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff (doc-setup-page-layout): In troff mode,
+ if the user does not define the `LL` register, use the device's
+ default line length, not 6.5 inches. If the user does not
+ define the `LT` register, make the default line length for
+ titles the same as the regular line length, not 6.5 inches
+ independently of it. This is consistent with man(7)'s handling
+ of `LL` and `LT`.
+
+2022-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `AD` string to set default adjustment mode.
+
+ * tmac/mdoc/doc-common (Sh): Set adjustment mode to
+ user-specified default, not troff's default (and not only in
+ troff mode).
+
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Process `AD` string setting from command
+ line as man(7) does.
+
+ * tmac/groff_mdoc.7.man (Formatting with groff, troff, and
+ nroff): Document it.
+
+ * NEWS: Add and update items.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?63046>.
+
+2022-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac (doc-tag-list): Fix code style nit: don't give
+ `ad` request a numeric argument. Say `l` instead of `0`.
+
+2022-09-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Align inter-paragraph spacing with man(7).
+
+ * tmac/mdoc/doc-common: Use `doc-paragraph-space` when spacing
+ prior to section and subsection headings instead of spacing by
+ the 1v default.
+ * tmac/mdoc/doc-ditroff: Align inter-paragraph distance amount
+ in troff mode with man(7), reducing to 0.4v from 0.5v.
+
+2022-09-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-nroff: Map monospaced fonts (CR, CB, CI, CBI) to
+ standard styles as man(7) has done for 15 years. This silences
+ warnings from the formatter when a man page attempts to use
+ fonts from the Courier family in tbl(1) tables, which is about
+ the only place a reasonable man page attempts such a thing.
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Stop prefixing center header with name of operating
+ system. This was hard-coded to "BSD" and stuck on all mdoc(7)
+ pages using a default manual section number, regardless of host
+ operating system. Bad idea. Further, the argument to the `Os`
+ call, if any, or a default, is always disclosed in the left
+ footer.
+
+ * tmac/mdoc/doc-common: Do it.
+ (Dt): Initialize `doc-volume` as empty and annotate it;
+ calling the macro with a numeric second argument overrides the
+ fallback default of "LOCAL". A slash is no longer needed to
+ separate a recognized architecture string from the OS name, so
+ drop it.
+
+ * tmac/tests/doc_smoke-test.sh: Update test expectations.
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Drop dead code. The register
+ `doc-volume-operating-system-ateol`, introduced in groff 1.18
+ {July 2002}, was being tested but never set to a nonzero value.
+ In fact, it seems never to have been.
+
+ * tmac/mdoc/doc-common: Get rid of it...
+ (Dt): ...and the dependent block.
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Make `Ux` render "Unix" in mixed case.
+
+ * tmac/mdoc/doc-syms (Ux): Do it. Also remove local string
+ after we're done with it.
+
+ Continues work begun prior to groff 1.22.4 release.
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Align spacing around headers with man(7).
+
+ * tmac/doc.tmac (doc-save-global-vars, doc-restore-global-vars):
+ * tmac/mdoc/doc-common (Rd):
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Stop defining, saving, and restoring
+ `doc-header-space`.
+
+ * tmac/mdoc/doc-common (doc-header): When starting new document
+ and not continuously rendering, space by one half-inch instead
+ of by the now-defunct `doc-header-space` amount (which,
+ strictly, should not have applied to this measurement). If
+ continuously rendering, extend page length by 1v to accommodate
+ header line. After formatting header, if not continuously
+ rendering, space to 1 inch below first text baseline.
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Support `C` register for consecutive page numbering.
+
+ * tmac/mdoc/doc-common (Dd): Reset page number to 1 upon new
+ document only if not consecutively numbering.
+
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Process `C` register setting from command
+ line as man(7) does.
+
+ * tmac/groff_mdoc.7.man (Formatting with groff, troff, and
+ nroff): Document it.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?63046>.
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Align trap management more closely with man(7).
+
+ * tmac/mdoc/doc-common: Call new macro (see below)
+ `doc-set-up-continuous-rendering` when initializing, if that
+ mode is configured.
+ (doc-ne): New macro replaces `ne` request
+ in continuous rendering mode. It extends the page length by the
+ amount in the argument or by 1v if none given.
+ (doc-bp): New macro replaces `bp` request in continuous
+ rendering mode, setting the page length to the vertical drawing
+ position.
+ (doc-set-up-continuous-rendering): New macro renames requests to
+ emplace the foregoing.
+ (Dd): Interpret this macro call strictly as starting a new
+ mdoc(7) document. (andoc.tmac already makes this assumption,
+ and has for over 20 years. groff_mdoc(7) and mandoc_mdoc(7)
+ also prescribe the sequence `Dd`, `Dt`, `Os`.) We require this
+ invariant even more rigidly now because it's the only way we can
+ be sure that we can process multiple documents while rendering
+ headers and footers with information corresponding to the
+ appropriate document. (man(7)'s `TH` has an advantage here in
+ that calling it is "atomic": from its arguments alone you can
+ obtain everything you need to know to format the header and
+ footer. In mdoc(7), permuting the initialization macro order
+ reliably produces chaos.) Break the page (if necessary)
+ _before_ processing any arguments (instead of after), to flush
+ the previous page's footer. Stop calling `doc-set-up-titles`
+ here; we don't have enough information to do that yet. Also
+ stop writing the PDF bookmark here, because `doc-document-title`
+ and `doc-section` will not reflect the new page content yet.
+ (Os): Once the `doc-operating-system` string content has been
+ determined, call `doc-set-up-titles`, write the PDF bookmark for
+ the page, and call `doc-header`, causing the page header to be
+ formatted. These changes further imply a stronger requirement
+ on initialization macro ordering being canonical.
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (7/7).
+
+2022-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Trivially refactor. Relocate string and macro
+ definition within file. mdoc(7) mandates that the document
+ setup macros `Dd`, `Dt`, and `Os` be called in that order;
+ arrange their definitions accordingly, for maintainability.
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Refactor. Rename strings and macro for clarity. These
+ things don't only affect headers.
+ - doc-header-string -> doc-pageref
+ - doc-header-string-saved -> doc-pageref-saved
+ - doc-setup-header -> doc-set-up-titles
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common: Do it.
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Refactor. There is no difference in
+ `doc-header-string` and `doc-setup-header` between the files
+ "doc-ditroff" and "doc-nroff", so define them only once, in
+ "doc-common".
+
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Do it.
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Align footer management more closely with man(7).
+
+ * tmac/doc.tmac (doc-save-global-vars, doc-restore-global-vars):
+ * tmac/mdoc/doc-common (Rd):
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Stop defining, saving, and restoring
+ `doc-footer-space`.
+
+ * tmac/mdoc/doc-common (doc-break-body-text): New macro, called
+ only when not continuously rendering, schedules a page break.
+ (doc-footer): Stop vertically spacing by `doc-footer-space`,
+ instead relying upon a trap to move us here.
+
+ * tmac/mdoc/doc-ditroff (doc-setup-header):
+ * tmac/mdoc/doc-nroff (doc-setup-header): Set traps at the end
+ of the page where man(7) does by default; break the body text at
+ 1 inch from the page bottom, and write the footer at ½ inch.
+
+ * tmac/mdoc/doc-nroff (doc-setup-header): Add 1/6 em "thin
+ space" between man page name and parenthesized section, for
+ precise parity with doc-ditroff implementation. (`\|` does not
+ take up any character cells on nroff devices.)
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (6/7).
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (Dt, Dd): Emit diagnostic warnings if
+ macros called with no arguments.
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (5/7).
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Fix code style nit: stop using Control+G as an escape
+ sequence argument delimiter. This is not necessary in groff and
+ hasn't been for at least thirty years. See the node/section
+ "Implementation Differences" of our Texinfo manual. Our mdoc
+ implementation does not operate in compatibility mode, so using
+ control characters like this obfuscates input to no advantage.
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff:
+ * tmac/mdoc/doc-syms: Do it.
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (doc-footer): Pull more footer concerns
+ into this macro. Don't bail out if continuously rendering;
+ instead, format the appropriate footer text if we are. For now,
+ break the page only if we are not continuously rendering.
+ (doc-end-macro): Call `doc-footer` instead of formatting footer
+ here.
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (4/7).
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (doc-end-macro): When continuously
+ rendering, set the page reference (e.g., "ls(1)") in the right
+ footer instead of repeating the left footer. Thanks to Ingo
+ Schwarze for the discussion.
+
+ * tmac/tests/doc_smoke-test.sh: Update expectations of footer
+ regression test.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?62926>.
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (doc-end-macro): Reset strings to reduce
+ info leaks from one man page to the next.
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (3/7).
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (Dt): Stop reinitializing `doc-volume`
+ and `doc-section`. This is the job of package initialization
+ {and, soon, the end-of-input macro}.
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (2/7).
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common: Populate default date string
+ `doc-date-string` with "UNDATED".
+ (Dd, Dt, Os): Make more orthogonal: stop touching
+ `doc-topic-name`. It is "doc.tmac"'s job to initialize it and
+ the `Nm` macro's job to update it.
+ (Dd): Do nothing if given no arguments. (You can still blank
+ out the document date with an explicitly empty argument:
+ .Dd ""
+ .)
+
+ Fixes <https://savannah.gnu.org/bugs/?62774> (1/7).
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common: Change `doc-default-operating-system`
+ string from "BSD" to "GNU", per discussion with Ingo Schwarze.
+ See <https://lists.gnu.org/archive/html/groff/2022-07/\
+ msg00280.html>.
+
+ * tmac/tests/doc_smoke-test.sh: Update expectations of footer
+ regression test.
+
+2022-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common (Dt): Delete lingering and useless
+ definition of `doc-command-name` string. Thanks to Steffen
+ Nurpmeso for the report. See commit e9e92ee008, 27 August.
+
+2022-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/pic/pic.ypp (not_lower_than): Emit deprecation
+ warning for use of 'rand()' with a (non-empty) argument. The
+ man page has declared it thus for over 30 years, at least since
+ groff 1.02 (June 1991).
+
+2022-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/pic/pic.ypp (object_spec): Emit deprecation
+ diagnostic for "plot" command. The man page has declared it
+ thus for over 30 years, at least since groff 1.02 (June 1991).
+
+2022-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/pic/pic.ypp (placeless_element): Explicitly say
+ that an unsafe command is being ignored in diagnostic.
+
+2022-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/main.cpp (main): Drop man page reference from
+ deprecation diagnostics. The man page might be installed with a
+ prefix determined at configuration time, and that's too much
+ trouble to mess with for construction of a message. Trust the
+ user of these ancient options to try reading the man page with
+ the same name as the command.
+
+2022-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Revise discussion of measurements.
+
+ * doc/groff.texi: Drop Texinfo @codequote* command brackets
+ around revised sections; relevant nodes have been reviewed for
+ correct glyph usage. Move concept index entries for obsolescent
+ term "machine units" to same location as "basic units".
+ Bump document date.
+ (Measurements): Rewrite presentation. We have already
+ introduced page geometry concepts, including the concept of
+ basic units.
+ (Motion Quanta): New subsection node; introduce this concept
+ much sooner, right after measurement units. Relocate
+ documentation of `.H` and `.V` registers from a miscellaneous
+ read-only register list here. Introduce example of rounding to
+ horizontal motion quantum.
+ (Default Units): Revise discussion. Stop abusing @result
+ notation in example.
+ (Built-In Registers): Relocate `.H` and `.V` as above.
+
+ * man/groff.7.man: Sync with Texinfo content updates.
+
+ Fixes <https://savannah.gnu.org/bugs/?61432>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-09-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Drop groff_filenames(5) document. It says nothing accurate that
+ is not covered elsewhere.
+
+ * contrib/groff_filenames: Delete.
+ * doc/doc.am (GROFF_MAN_PAGES): Drop.
+ * src/roff/groff/groff.1.man: Drop cross reference to it.
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?61818>.
+
+2022-09-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/tbl.1.man (Table data): Generalize discussion
+ of roff control line use in tables.
+ (Examples): Illustrate how to embed a comment in a table.
+
+2022-08-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * NEWS: man(7)'s `TS` no longer adds vertical space. See commit
+ 7ec36dc9b9, 30 July.
+
+2022-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/main.cpp (main): Issue deprecation warning
+ upon use of '-p' or '-s' options. The eqn(1) man page has
+ documented these as deprecated since at least groff 1.02 (June
+ 1991). Don't count on them sticking around another 30 years.
+
+2022-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/main.cpp (main): Clarify error diagnostics
+ regarding invalid option arguments. Identify the option being
+ handled at the time and characterize the argument as "invalid",
+ not "bad".
+
+2022-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [eqn]: Drop support for undocumented '-D' option. It has been
+ undocumented, and issued a warning of its obsolescence upon use,
+ for 30 years, since groff 1.06 (September 1992). That's plenty
+ long enough for a deprecation cycle.
+
+ * src/preproc/eqn/main.cpp (main): Do it.
+ * NEWS: Add item.
+
+2022-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: (EX, EE): Always break line, even if call invalid.
+
+ * tmac/an.tmac (EX, EE):
+ * tmac/an-ext.tmac (EX, EE): Do it. Ingo Schwarze pointed out
+ that page authors will expect breaking semantics from these
+ macros even if using them in an ill-formed way. In a
+ well-formed document, the breaks are redundant but harmless (the
+ later `nf` and `fi` requests, respectively, also cause breaks).
+
+2022-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Trivially refactor.
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common: Rename string `doc-command-name` to
+ `doc-topic-name`; the former is misleading for man pages not in
+ sections 1, 6, or 8.
+
+2022-08-25 Bjarni Ingi Gislason <bjarniig@vortex.is>
+
+ * man/groff_char.7.man: Fix bad example syntax.
+
+ Fixes <https://savannah.gnu.org/bugs/?62959>.
+
+2022-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Trivially refactor.
+
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Stop using "Null" as an empty string
+ indicator when comparing a string interpolation to an empty
+ parameter will serve just as well; it is also more idiomatic.
+ The string in question, `doc-section`, is never formatted if it
+ is empty anyway; the very tests at issue, which populate
+ `doc-header-string`, ensure this.
+
+2022-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (environment::set_family): Throw error
+ if user requests a font family that (when combined with the
+ current style) can't be resolved to a real font name. Fixes a
+ regression introduced by me in commit d8cb8cf9d8, 2021-09-15,
+ arising from a revision of font selection logic in node.cpp to
+ enable a bunch of _other_ font error diagnostics.
+
+ Fixes <https://savannah.gnu.org/bugs/?62941>. Thanks to Dave
+ Kemper for the report and two useful end points for a bisection.
+
+2022-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (environment::set_family): Add some
+ paranoia. Add `assert()`s on the previous font mounting
+ position still being valid and the font family dictionary lookup
+ not returning a null pointer. Add an early return for the
+ latter case (which should be impossible).
+
+2022-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/node.cpp (font_family::make_definite):
+ Refactor. Rename parameter from inscrutable `i` to
+ `mounting_position`. Add `assert()` to enforce invariant: we're
+ passed a mounting position that is nonnegative. Use `pos` as
+ short alias of parameter once we're into the function body.
+ Relocate conditional branches to front-load early returns as
+ well as those requiring little code to handle. This reduces the
+ average indentation level of the function, a readability win.
+
+2022-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Restore robustness to `EE` misuse.
+
+ * tmac/an.tmac: Add `an*is-in-example` register to track state
+ of within-exampleness. Not doing so can cause a spurious use of
+ `EE` to wrongly set the inter-paragraph distance to zero.
+ (TH): Initialize register.
+ (EX): Test register; if set, ignore macro call and, if
+ `CHECKSTYLE` warnings are on, throw diagnostic. Set register.
+ (EE): Test register; if clear, ignore macro call and, if
+ `CHECKSTYLE` warnings are on, throw diagnostic. Clear register.
+
+ * tmac/an-ext.tmac (EX, EE): Similar, using `mX` register.
+ Because AT&T troff had no `return` request, invert the sense of
+ the tests and put the entire macro bodies inside conditionals.
+
+ This regressed post-1.22.4. Thanks to Ingo Schwarze for the
+ report and a proposed patch.
+
+2022-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Refactor. Rename `mX` to `mZ` so we can use
+ `mX` for an "in-example" state register in a future commit.
+ Rename `mE` to `mF` to store the current font's mounting
+ position. Bizarrely, `mF` was not already used for this
+ purpose.
+
+2022-08-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ Trivially refactor. Use separate string constant for invariant
+ material. (This will make it easier to, for example, store the
+ diagnostic level strings in an array that can be indexed by
+ their corresponding `enum` type.)
+
+2022-08-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (fatal_with_file_and_line)
+ (error_with_file_and_line, debug_with_file_and_line): Align more
+ closely with GNU Coding Standards regarding diagnostics: don't
+ suffix the colon after the program name with a space when
+ location information follows.
+
+2022-08-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grohtml/grohtml.1.man: Fix erroneous claim.
+ Images are not generated when "baseline rules" or "box rules"
+ are encountered in the input. These are troff special
+ characters; the former is converted to an underscore and the
+ latter to U+2502, "box drawings light vertical". This remains
+ true even if a series of them is drawn with the `\l` escape
+ sequence. (I also checked vertical line drawing with `\L`.
+ grohtml's handling of that provoked a rather wet eructation from
+ my lower esophageal sphincter--the output is assuredly not
+ correct. But it's still not an image.)
+
+2022-08-22 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Bug #62934 - after glyph remapped mark it as used
+
+ When many glyphs are remapped from code points above 255
+ such as writing documents in cyrillic with the U-TR fonts,
+ gropdf starts reusing code points in the range 128-255.
+ If subsequently one of those code points is actually required,
+ such as \(em (code 138), and it has been replaced by a
+ cyrillic, then it needs to be mapped to another free code.
+
+ To determine if a particular code point is free each glyph
+ has a USED flag. The bug was caused because after remapping
+ \(em to the next free glyph the USED flag was not set. So the
+ next new cyrillic character to be entered was given the same
+ code point as had been allocated to \(em.
+
+ * src/devices/gropdf/gropdf.pl: Set the USED flag on remapped
+ glyphs.
+
+ Fixes <https://savannah.gnu.org/bugs/?62934>.
+
+ Thanks to Nikita Ivanov for spotting the problem and testing
+ the fix.
+
+2022-08-20 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Bug #62923 - problem using aliased glyphs
+
+ With a large font if 2 characters above the 255 code
+ point limit are aliased, the aliased glyph has incorrect meta
+ data.
+
+ * src/devices/gropdf/gropdf.pl: Instead of duplicating a pointer
+ to the font metadata, duplicate the data itself. Then, if the
+ glyph is remapped to a code point under 256, the metadata is
+ preserved.
+
+ Fixes <https://savannah.gnu.org/bugs/?62923>. Thanks to Nikita
+ Ivanov for the report.
+
+2022-08-18 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Improve parsing of troff font files.
+
+ * src/devices/gropdf/gropdf.pl: Allow the glyph code number
+ to be octal or hex as well as a decimal number. If entity_name
+ is missing use name instead.
+
+2022-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Support pic(1) "flyback" feature.
+
+ * tmac/s.tmac (PF): Add macro; it does what `PE` formerly did,
+ minus vertical spacing.
+ (PE): Call `PF` and vertically space as before.
+
+ * doc/groff.texi (ms Insertions):
+ * doc/ms.ms (Tables, figures, equations, and references):
+ * tmac/groff_ms.7.man (Tables, figures, equations, and
+ references): Document it.
+
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?60558>.
+
+2022-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (@PS): Validate better; check for 2 arguments
+ exactly.
+
+2022-08-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pic]: Recognize `.PY` as synonym of `.PF`.
+
+ * src/preproc/pic/main.cpp:
+ * src/preproc/pic/pic.h: Add new Boolean variable,
+ `want_alternate_flyback` to record `.PY` usage.
+
+ * src/preproc/pic/main.cpp (top_input::get, top_input::peek):
+ Recognize it. Update diagnostic messages to mention it.
+ (main): Define `PY` troff macro as empty if not defined.
+
+ * src/preproc/pic/troff.cpp (troff_output::finish_picture):
+ Don't advance the vertical position if `want_alternate_flyback`.
+ Write out the `PY` macro call if it was on the input.
+
+ * src/preproc/pic/pic.1.man: Document it.
+
+ * tmac/pic.tmac (PY): Define the same as `PF`.
+
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?62901>.
+
+2022-08-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pic]: Refactor `flyback_flag`.
+
+ * src/preproc/pic/main.cpp:
+ * src/preproc/pic/pic.h:
+ * src/preproc/pic/troff.cpp: Rename to `want_flyback`.
+
+ * src/preproc/pic/main.cpp:
+ * src/preproc/pic/pic.h: Demote type from `int` to `bool`.
+
+ * src/preproc/pic/main.cpp (top_input::get, top_input::peek):
+ Use parentheses to clarify operation precedence.
+
+2022-08-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/eqn.1.man: Expand to include lists of
+ recognized primitives and predefined macros.
+
+2022-08-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * NEWS: Add item for new groff mm `V` register support.
+
+2022-08-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/lex.cpp (do_delim): Recognize "delim on" even
+ in compatibility mode, enabling tbl to toggle eqn delimiter
+ recognition when it is run in compatibility mode as well.
+ * src/preproc/eqn/eqn.1.man (Controlling delimiters): Update.
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?62852>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-08-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TH): Fix spurious complaint from `CHECKSTYLE`
+ feature when a custom manual section title is declared for a
+ standard section number. Thanks to Quentin Monnet for the
+ report.
+
+2022-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdfpic.tmac: Finish incomplete string renames. Continues
+ 0fd6ab6b4c, 21 January.
+ pdfpic*file-name -> pdfpic*file-name-base
+ pspic-args -> pdfpic*pspic-args
+
+2022-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TS): Stop inserting space before tables. Unlike
+ ms(7), man(7) has no concept of "displays" and thus none of
+ "display distance". It is up to the page author to use
+ paragraphing macros around tables if vertical space is desired.
+ And not up to us to impose it.
+
+ Fixes <https://savannah.gnu.org/bugs/?62841>.
+
+2022-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Regression-test Savannah #62841.
+
+ * tmac/tests/an_TS-adds-no-vertical-space.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::do_bottom): Avoid
+ overprinting a double-boxed table's bottom border on nroff
+ devices.
+
+2022-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Expand regression test for Savannah #49390. Check for
+ overlap of double box borders, too.
+
+ * src/preproc/tbl/tests/\
+ do-not-overlap-bottom-border-in-nroff.sh: Do it.
+
+2022-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #49390.
+
+ * src/preproc/tbl/table.cpp (table::do_bottom): Avoid
+ overprinting a boxed table's bottom border on nroff devices.
+
+ Fixes <https://savannah.gnu.org/bugs/?49390>. Thanks to Osamu
+ Sayama for the report.
+
+2022-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #49390.
+
+ * src/preproc/tbl/tests/\
+ do-not-overlap-bottom-border-in-nroff.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-07-28 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Improve slant application to lowercase Greek letters.
+ <https://lists.gnu.org/archive/html/groff/2022-07/msg00210.html>
+
+ * tmac/pdf.tmac: Slant only if the glyph is sourced from a
+ special font, not a regular (text) font containing Greek glyphs.
+
+2022-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Add italic correction support to `I` and `BI`
+ macros. Call `par*define-font-macro` with newly recognized
+ third argument indicating that italic corrections should be
+ applied.
+ (par*define-font-macro): Apply the corrections if directed.
+
+2022-07-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (input_char_description): Clear
+ static buffer on every entry to the function so that calling it
+ twice in succession where the second call populates the buffer
+ with less data than the first doesn't leave garbage characters
+ in a diagnostic message. Problem appears to date back to 1991
+ or earlier.
+
+ Fixes <https://savannah.gnu.org/bugs/?62813>.
+
+2022-07-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (token::usable_as_delimiter):
+ (do_non_interpreted, interpolate_arg): Recast diagnostic
+ messages for clarity.
+
+2022-07-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Initialize section number registers. Fixes
+ warnings when starting section numbering at a depth greater than
+ 1.
+
+ Fixes <https://savannah.gnu.org/bugs/?62812>.
+
+2022-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PAGE): Use 'grep -q' instead of redirecting
+ standard output to null device. The '-q' option was
+ standardized in POSIX Issue 5 (1997) or earlier. Also drop the
+ redirection of the standard error stream; we have already
+ checked the file named in "$descfile" for existence and
+ readability. grep should thus not emit diagnostic messages.
+
+2022-07-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PAGE): Macro used awk(1) without
+ `AC_REQUIRE`-ing a relevant macro or checking for its existence.
+ Fortunately, sed is powerful enough for our needs. Remove
+ dependency on awk. Cope with "search" directive in resolv.conf
+ having multiple arguments. Match "domain" directive in same
+ file instead of "dom", which I cannot find attested (this logic
+ dates to 1991). Rename `dom` shell variable to `domains` for
+ clarity, since its multiplicity could be greater than 1.
+
+2022-07-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PAGE): Refactor: drop AC_DEFINE of
+ `PAGEA4`. This symbol appears to be a relic; it is nowhere
+ tested or dereferenced.
+
+2022-07-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tty-char.tmac: Drop definition of \[sd] special
+ character. This was superseded by commit 78e666246c, 8 May,
+ which defined a fallback for the character in tty.tmac instead.
+ Thanks to Dave Kemper for the catch.
+
+2022-07-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/pdfpic_does-not-choke-on-bad-pdfinfo-output.sh:
+ Skip test if "pdfinfo" command not available.
+
+2022-07-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Add sanity checks for font description file generation
+ for PDF output device, prompted by discussion with Ingo
+ Schwarze. See <https://lists.gnu.org/archive/html/groff/\
+ 2022-06/msg00094.html>.
+
+ * font/devpdf/tests/basic-fonts-present.sh:
+ * font/devpdf/tests/urw-fonts-present.sh: Add files.
+
+ * font/devpdf/devpdf.am (font_devpdf_TESTS): Add the former test
+ unconditionally, and the latter only if `HAVE_URW_FONTS`.
+
+2022-07-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am: Refactor to simplify. Now that
+ symbol.map lives in the "devpdf/generate" directory along with
+ the other map files, it doesn't need a dedicated Makefile target
+ to produce it.
+ (DEVPDFFONTMAP_1, DEVPDFFONTMAP_2): Coalesce and rename to...
+ (devpdffontmapdata): ...this.
+ (font/devpdf/map/symbol.map:): Drop target.
+ (devpdffontmap_DATA, font/devpdf/download): Update dependencies.
+
+2022-07-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl (LoadFoundry): Recast
+ diagnostic message so that the user understands the consequence
+ of failure to locate a Type 1 font file (that isn't one of the
+ base 14 PostScript level 1 fonts): the font will be unavailable
+ for the "pdf" output device.
+
+2022-07-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl (LoadFoundry): Separate
+ lists of Type 1 font names with spaces as well as commas, for
+ better diagnostic message readability. Also begin message in
+ lowercase (per GNU Coding Standards).
+
+2022-07-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl (LoadFoundry): Verify that
+ `$foundrypath->[$j]` is defined before operating on it.
+
+2022-07-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [afmtodit]: Clarify diagnostic message.
+
+ * src/utils/afmtodit/afmtodit.pl: When we have excess Adobe
+ Glyph List mappings for a groff special character identifier
+ {making the reverse mapping from groff special character to font
+ glyph name ambiguous}, report that we're ignoring the excess.
+ Use "print STDERR" instead of Perl "warn" built-in since we want
+ diagnostic messages to start with the name of the program
+ emitting them.
+
+2022-07-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Name and place PS->groff glyph name maps consistently.
+
+ * font/devps/symbolmap: Rename from this...
+ * font/devps/generate/symbol.map: ...to this.
+
+ * font/devpdf/devpdf.am (font/devpdf/map/symbolmap): Rename
+ target...
+ (font/devpdf/map/symbol.map): ...to this.
+ (font/devpdf/map/symbol.map): Copy "devps" version of file from
+ its new location in the "generate" subdirectory.
+
+ * font/devpdf/Foundry.in: Reflect rename.
+
+ * font/devps/generate/Makefile (symbolmap): Rename target...
+ ($(srcdir)/symbol.map): ...to this.
+
+ * font/devps/devps.am (DEVPSGENFILES, EXTRA_DIST):
+ * font/devps/generate/Makefile (S, EURO $(SPECIALFONTS), clean):
+ * src/utils/afmtodit/afmtodit.1.man: Reflect rename and
+ relocation.
+
+ * font/devps/generate/dingbats.rmap: Rename from this...
+ * font/devps/generate/dingbats-reversed.map: ...to this.
+
+ * font/devps/devps.am (DEVPSGENFILES):
+ * font/devps/generate/Makefile (ZDR):
+ * src/utils/afmtodit/afmtodit.1.man: Reflect rename.
+
+ * font/devps/generate/lgreekmap: Rename from this...
+ * font/devps/generate/slanted-symbol.map: ...to this.
+
+ * font/devps/devps.am (DEVPSGENFILES):
+ * font/devps/generate/Makefile (SS):
+ * src/utils/afmtodit/afmtodit.1.man: Reflect rename.
+
+ * font/devps/generate/textmap: Rename from this...
+ * font/devps/generate/text.map: ...to this.
+
+ * font/devpdf/Foundry.in:
+ * font/devpdf/devpdf.am (DEVPDFFONTMAP_1):
+ * font/devps/devps.am (DEVPSGENFILES):
+ * font/devps/generate/Makefile (TEXTMAP):
+ * src/devices/gropdf/gropdf.1.man:
+ * src/devices/grops/grops.1.man:
+ * src/utils/afmtodit/afmtodit.1.man: Reflect rename.
+
+2022-07-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/ms.ps): Add dependency on "eqn", and call
+ groff with "-e" option.
+ * src/utils/grog/tests/smoke-test.sh: Update expected "grog"
+ output for the ms.ms document.
+
+2022-07-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/ms.ps): Add dependency on "tbl".
+
+2022-07-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/node.cpp (suppress_node::tprint): Add source
+ file line number after its name when emitting "grohtml-info", to
+ aid debugging.
+
+2022-07-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/node.cpp (get_register, get_string): Reorder
+ null pointer inequality comparisons; they don't need to be in a
+ funny order because it's pretty hard to mistype `!=` as an
+ assignment operator. Annotate them as null pointers to ease any
+ future migration to ISO C++11. Use primitive type constructor
+ instead of C-style cast operator; this seems more idiomatic.
+
+2022-07-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (generateImages): Flush the
+ standard error stream after writing to it in a loop.
+
+2022-07-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (RP): Recognize new optional arguments
+ `no-renumber` and `no-repeat-info`, the latter as a synonym for
+ the existing `no`. The former suppresses the page number
+ manipulation that normally occurs. Drop now-unnecessary `pn 0`
+ request.
+ (top level, cov*first-page-init, RP, cov*print): Rename
+ `cov*rp-format` to `cov*use-rp-format` for clarity.
+ (cov*break-page): New macro breaks the cover page at the end,
+ resetting next page number to 1 only if desired by user.
+ (cov*print, cov*rp-print): Call `cov*break-page` instead of
+ invoking `bp`.
+
+ * doc/groff.texi (Document Description Macros) <RP>:
+ * doc/ms.ms (Document description macros) <RP>:
+ * tmac/groff_ms.7.man (Document description macros) <RP>:
+ Document them.
+
+ * NEWS: Add item.
+
+2022-07-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Rename register `cov*rp-no` to
+ `cov*rp-no-repeat-info`.
+
+2022-07-08 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * font/devpdf/util/BuildFoundries.pl (LocateFile): Some systems
+ store .afm files in a parallel directory to the Type 1 files,
+ restore original path after checking for parallel directory.
+
+2022-07-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am (font/devpdf/download): Call
+ "BuildFoundries" with new `--strict` option so that the build
+ fails if the AFM files for the URW fonts can't be found.
+
+2022-07-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl: Add Boolean-valued scalar
+ `beStrict` (defaults false) and new command-line option
+ `--strict` to make it true.
+ (LoadFoundry): Check return value of subroutine `LocateAF`.
+ Emit diagnostic if it is null, as a warning if not "strict", and
+ fatal if so.
+
+2022-07-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am (font/devpdf/util/BuildFoundries): Add
+ dependency on "afmtodit" since "BuildFoundries" calls this
+ program when generating groff font description files from URW
+ fonts.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Fix Savannah #62690.
+
+ * tmac/s.tmac (P1, SC, UC, P2): Drop undocumented support for
+ document-private macros used by Kernighan & Cherry's
+ "Typesetting Mathematics -- User's Guide (Second Edition)".
+
+ Fixes <https://savannah.gnu.org/bugs/?62690>.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Fix Savannah #62688.
+
+ * tmac/s.tmac (DE): Set no-space mode when ending displays.
+ (@EN): Set no-space mode after outputting the display distance
+ so that it doesn't combine with inter-paragraph space.
+
+ Fixes <https://savannah.gnu.org/bugs/?62688>.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Regression-test Savannah #62688.
+
+ * tmac/tests/s_no-excess-space-around-displays.tmac: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Fix Savannah #62687.
+
+ * tmac/s.tmac (@MC): Honor `MINGW` register even when setting
+ only two columns, as clearly implied by our documentation.
+
+ Fixes <https://savannah.gnu.org/bugs/?62687>.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Regression-test Savannah #62687.
+
+ * tmac/tests/s_honor-MINGW-when-two-columns.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Fix Savannah #62686.
+
+ * tmac/s.tmac (@MC): Set no-space mode before doing a paragraph
+ reset, not after: we don't want vertical space at the top of the
+ first column when entering multi-column mode, because then it
+ doesn't align with the tops of subsequent columns.
+
+ Fixes <https://savannah.gnu.org/bugs/?62686>.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Regression-test Savannah #62686.
+
+ * tmac/tests/s_mark-column-start-correctly.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (IX): Drop.
+ * NEWS: Add item.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Add "sorry" implementations for documented but
+ unsupported Unix Version 7 ms macros. This way it's easier to
+ tell when a historical document needs one and this case is
+ distinguishable from a document-private macro warned about with
+ "groff -w mac".
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (UX): Drop undocumented support for this macro.
+ This implementation isn't consistent with historical ones, which
+ identified the trademark holder. But doing that is a problem,
+ so just stop trying to cope. Also, spelling Unix in full caps
+ was an imposition by the AT&T legal department on the CSRC.
+
+ "The name Unix is a trademark, originally owned by Bell Labs and
+ subsequently traded off like a baseball card among a number of
+ companies." -- Ben Klemens
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Replace incomplete documentation of unimplemented macros.
+
+ * doc/groff.texi (Missing ms Macros):
+ * doc/ms.ms (AT&T ms macros not appearing in groff ms): Drop,
+ replacing with...
+
+ * doc/groff.texi (Unix Version 7 ms Macros Not Implemented by
+ groff ms):
+ * doc/ms.ms (Unix Version 7 ms macros not implemented by groff
+ ms):
+ * tmac/groff_ms.7.man (Unix Version 7 macros not implemented by
+ groff ms): ...these.
+
+2022-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_translate): Throw an error
+ diagnostic when the user attempts to translate space characters.
+ {By contrast, translating _to_ [unbreakable, unadjustable]
+ spaces is an old troff hack often seen as ".tr ~ ", and largely
+ superseded by groff's "\~" escape sequence, now widely supported
+ by other troffs.}
+
+ Fixes <https://savannah.gnu.org/bugs/?60803>. Thanks to T. Kurt
+ Bond and Oliver Corff for the report.
+
+2022-07-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/pipeline.c: Refactor. Drop function rename via
+ preprocessor macro usage. Declare and define `c_error` by its
+ correct name.
+ (run_pipeline): Update call sites. Stop flushing standard error
+ stream after calling libgroff's `error` function (which
+ `c_error` wraps); libgroff already guarantees this operation.
+
+2022-07-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (abort_request): Flush the standard
+ error stream before exiting, to improve chances of user seeing
+ any message as arguments to the `ab` request.
+
+2022-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp
+ (char_buffer::run_output_filter): Die if platform supports
+ neither `fork()` nor `spawn()` for child process creation.
+
+2022-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (cleanup): Add function to tidy
+ memory before exiting.
+ (main): Register aforementioned function with `atexit()`. Die
+ if registration fails.
+
+2022-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (do_file): Die if `fclose()`
+ fails; such a situation suggests a pretty hosed environment.
+
+2022-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (checkImageDir): If `mkdir()`
+ fails, use `strerror()` to report the underlying problem.
+
+2022-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp: Refactor. Drop unnecessary
+ prototype for static function. Use idiomatic C++98 null pointer
+ constant. Annotate it as null pointer to ease any future
+ migration to ISO C++11. Boolify. Use C++98 bool data type
+ instead of preprocessor macros `TRUE` and `FALSE`. Demote some
+ global Boolean variables from `int` to `bool` and rename some to
+ be more clear: `show_progress` -> `want_progress_report`;
+ `debugging`; `eqn_flag` -> `need_eqn`.
+ (make_message): Rename this...
+ (make_string): ...to this. Align more closely with contemporary
+ version of example from Linux man-pages printf(3) page. Use
+ `vsnprintf()` to determine size of memory buffer needed prior to
+ allocation instead of iteratively growing it until it is large
+ enough. Always die if `vsnprintf()` fails: this function now
+ always returns a valid pointer if it returns at all.
+ (makeFileName, setupAntiAlias, imageList::createPage,
+ imageList::createImage): Update call sites to use
+ `make_string()`.
+ (char_buffer::can_see): Demote return type from `int` to `bool`.
+ (char_buffer::skip_spaces): Drop unused member function.
+ (char_buffer::read_file, makeTempFiles): Demote return type from
+ `int` to `void`. Stop returning after calling functions that
+ don't return.
+ (char_buffer::read_file): Call `sys_fatal()` if `fread()`
+ returns an error, similarly to other calls into the standard C
+ library that this file makes. Improve check for error from
+ `fread()` by not regarding a return value of zero when the
+ end-of-file indicator is set as an error condition.
+ (makeFileName, checkImageDir, char_buffer::run_output_filter,
+ scanArguments): Call `fatal()` instead of `error()` and then
+ `exit(1)`.
+ (makeFileName, scanArguments): Dismiss Shlemiel the Painter:
+ save return value of `strlen()` and call `strcpy()` multiple
+ times instead of mixing `strcpy()` and `strcat()`; the latter
+ approach rescans the string unnecessarily.
+ (char_buffer::run_output_filter): Stop passing unnecessary null
+ pointer argument to diagnostic message functions. Stop calling
+ `fflush()` after libgroff diagnostic function, which always
+ {ultimately} flushes the standard error stream itself.
+ (makeTempFiles, do_file, main): Boolify.
+ (makeTempFiles, do_file): Reorder null pointer equality
+ comparisons to avoid inadvertent lvalue assignment.
+ (scanArguments, main): Use `EXIT_SUCCESS` and `EXIT_FAILURE`
+ constants from C library instead of integer literals for exit
+ status.
+ (do_file): Demote return type from `int` to `bool`. Return
+ Boolean literals. Drop conditional with empty consequent.
+ (main): Declare local variables closer to the points of use.
+ Stop trying to be a register allocator: stop reusing loop index
+ variable `i` as integer storage for another (albeit related)
+ purpose; introduce `operand_index` instead. Clarify logic by
+ splitting combined initialization and comparison operations, and
+ by testing function return value directly instead of storing it
+ in a pointless temporary. Use `EXIT_SUCCESS` and `EXIT_FAILURE`
+ constants from C library instead of integer literals for exit
+ status.
+
+2022-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (run_commands): Trivially refactor.
+ Rename variable for clarity; add comment.
+
+2022-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp
+ (char_buffer::run_output_filter): Return wait status of child
+ process.
+ (char_buffer::run_output_filter, main): Rename local variable
+ `status` to `wstatus` to recognize distinction between exit
+ status (a 7-bit quantity) and wait status (a wider type).
+ (main): Issue fatal diagnostic if child process exited with
+ nonzero status. Since the child's output to the standard error
+ stream is lost, advise re-running with different output driver
+ to see them. This unhappy shortcoming is filed as Savannah
+ #62673. Explicitly return zero otherwise.
+
+ Fixes <https://savannah.gnu.org/bugs/?60782>.
+
+2022-06-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/ab_works.sh: Add regression test for
+ Savannah #60782.
+
+2022-06-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Trivially refactor.
+
+ * src/roff/troff/input.cpp (token::next): Rename statement label
+ to use documentary terminology.
+ * src/roff/troff/node.cpp (make_composite_node)
+ (make_glyph_node): Make functions static since nothing outside
+ this translation unit calls them.
+ * src/roff/troff/node.cpp (make_glyph_node): Refactor optional
+ argument and its usage. Put it down, flip it, and reverse it.
+ That is, demote its type from `int` to `bool`, invert its sense,
+ and rename it since it affects warning, not error, diagnostics.
+ (character_exists): Update only call site of `make_glyph_node()`
+ that uses non-default argument value.
+
+2022-06-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Adjust diagnostic message text to clarify and better
+ match terminology used in documentation.
+
+ * src/roff/troff/input.cpp (set_escape_char, do_overstrike)
+ (do_bracket, do_name_test, do_width, do_special):
+ * src/roff/troff/node.cpp (suppress_node::tprint): Migrate from
+ "escape" to "escape sequence".
+
+ * src/roff/troff/node.cpp (make_composite_node)
+ (make_glyph_node): Clarify what went wrong.
+
+ * src/roff/troff/input.cpp (token::get_char)
+ (check_missing_character): Migrate from "normal character" to
+ "ordinary character" (see groff_char(7)).
+
+2022-06-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Rename a function for clarity.
+
+ * src/roff/troff/input.cpp (add_to_node_list): Rename this...
+ (add_to_zero_width_node_list): ...to this.
+ (do_zero_width): Update call site.
+ * src/roff/troff/token.h: Update declaration.
+
+2022-06-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (handle_unknown_desc_command):
+ Refactor to skip unnecessary string comparisons. We explicitly
+ return in the final case instead of falling off the end of this
+ void function for consistency if additional cases are added.
+
+2022-06-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (handle_unknown_desc_command):
+ Partially revert commit 64dc40d23a, 19 June. I forgot to save
+ and restore the previous values of the globals
+ `current_filename` and `current_lineno`, and, noticing that this
+ function has 3 return paths, decided that it's cheaper just to
+ go back to `error_with_file_and_line()`.
+
+2022-06-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Add more search paths to the Foundry file.
+
+ * font/devpdf/Foundry.in: Use the directory specified with the
+ config flag --with-urw-fonts-dir to populate the default foundry
+ as well as the U foundry. Important to populate the download
+ file with font files to embed the fonts not part of the base
+ pdf fonts or if user wants all fonts embedded.
+
+2022-06-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (UR, MT): Fix problem with hyphenation
+ occurring before the end of the line when the line length was
+ not the device default (common for man pages at the terminal)
+ and hyperlinks were enabled. The issue is that the new
+ environment we created inherits the default environment's line
+ length (its state at troff initialization, prior to macro
+ package loading and configuration). This latent issue was
+ exposed by post-groff 1.22.4 changes to enable the hyphenation
+ of link text and add the hyperlink feature. Fix it by copying
+ the line length at the time the macro is called, which is
+ necessarily after man(7) sets up the line length, to the new
+ environment.
+
+2022-06-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/psrm.cpp (resource_manager::output_prolog):
+ (resource_manager::supply_resource):
+ (resource_manager::read_download_file): Update diagnostic
+ message language and report underlying problem encountered by
+ system when failing to open files. This will probably be the
+ text for ENOENT in most cases, but should help avoid frustration
+ in those where it isn't.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/psrm.cpp
+ (resource_manager::read_download_file): Align diagnostic message
+ wording with gropdf in the same circumstance.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Throw warning in font category when a font selection
+ escape sequence is used after the output line continuation
+ escape sequence on an input line, because it is ignored.
+
+ * src/roff/troff/env.cpp (environment::set_font): Do it.
+
+ * doc/groff.texi (Warnings):
+ * src/roff/troff/troff.1.man (Warnings): Document it.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (font_change): Boolify.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (LoadFont): Revise error message
+ when a font can't be found for embedding. User failure to add
+ an entry for locating the font file seems a more likely scenario
+ than outright corruption of the file.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (font_change): Warn upon selection of a
+ nonexistent font name.
+
+ Fixes <https://savannah.gnu.org/bugs/?62656>.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Revise `environment::set_font` to return Boolean value
+ indicating success of font selection operation.
+
+ * src/roff/troff/env.cpp (environment::set_font):
+ * src/roff/troff/env.h (environment::set_font): Do it.
+
+ This prepares the way for a fix for Savannah #62656.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp: Use single exit path, freeing
+ memory allocated for strings.
+ (xexit): Add `exit()` wrapper; free allocated memory.
+ (main): Use it in all three exit paths.
+
+2022-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp: Refactor to be more meticulous with
+ memory. Add globals `saved_path`, `groff_bin_path`, and
+ `groff_font` to store pointers into the process environment
+ returned by `putenv()`; once used, they need to remain valid for
+ the lifetime of the program.
+ (xstrdup): Add `strdup()` wrapper: dies if `strdup()` fails.
+ (main): Split nested `strsave()` and `xputenv()` (until recently
+ `putenv()`) calls. Free duplicate strings prior to exit.
+
+2022-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (main): Rename temporary variable to
+ avoid shadowing one in enclosing scope, which can lead to
+ cut-and-paste errors (ask me how I know).
+
+2022-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp: Slightly refactor to indirect
+ `putenv` calls through an error-checking wrapper.
+ (xputenv): Add new function to die if `putenv()` fails.
+ (main): Update call sites to use it.
+
+2022-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [groff]: Add information to diagnostic messages.
+
+ * src/roff/groff/groff.cpp (main): Report underlying system
+ error if `putenv()` fails.
+ (handle_unknown_desc_command): Set globals `current_filename`
+ and `current_lineno` from `filename` and `lineno` arguments
+ passed to us to we can use the simpler interface of `error()`
+ rather than `error_with_file_and_line()`.
+
+2022-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Update return type of `font::load_desc` function to
+ enable more informative diagnostics from callers.
+
+ * src/include/font.h (font::load_desc): Change return type from
+ `bool` to `const char` pointer.
+ * src/libs/libgroff/font.cpp (font::load_desc): Return null
+ pointer literal on failed `open()` or validation failures.
+ Return filespec on success.
+
+ * src/libs/libdriver/input.cpp (do_file):
+ * src/preproc/grn/main.cpp (getres):
+ * src/roff/groff/groff.cpp (main):
+ * src/roff/troff/input.cpp (main): Compare `font::load_desc()`
+ return value to null pointer literal instead of treating it as a
+ Boolean.
+
+ * src/roff/groff/groff.cpp (main): Report full filespec of
+ troublesome "DESC" file when complaining of missing "postpro"
+ directive.
+
+2022-06-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp: Add new Boolean global,
+ `need_postdriver`, and initialize it true.
+ (main): Make `need_postdriver` false if the `-X` or `-Z` options
+ are given. Test it later. This prevents groff from exiting
+ with a fatal error if an output driver is not available, but
+ also not required. Also reorder null pointer equality
+ comparison to avoid inadvertent lvalue assignment.
+
+ Fixes <https://savannah.gnu.org/bugs/?62640>.
+
+2022-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (help): Revise usage message for
+ expressiveness and clarity.
+
+2022-06-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Correct display of pathnames used.
+
+ * font/devpdf/util/BuildFoundries.pl: Convert array to
+ string of pathnames.
+
+2022-06-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Fix to gropdf.
+
+ * src/devices/gropdf/gropdf.pl: If pdfbookmark was called
+ within 5p of top of page (e.g. straight after a .bp when
+ \n[nl] was zero) the click destination would be off by a
+ page.
+
+2022-06-19 Ingo Schwarze <schwarze@openbsd.org>
+
+ * font/devpdf/devpdf.am: Always build PDF font description
+ files.
+
+ Build font/devpdf/download and the various TR, TB, CR etc.
+ files in the same directory even when they are not required
+ by the build because USE_GROPDF is unset, usually because
+ ghostscript is either unavailable or deliberately disabled
+ by the person running the build. These files need to be
+ built and installed anyway, and can be used on the target
+ system when the required infrastructure is available at run
+ time.
+
+2022-06-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Revise introduction of vertical spacing concept to avoid
+ render inference that the formatter will compute a vertical
+ spacing appropriate to the type size automagically--it will not.
+
+ Fixes <https://savannah.gnu.org/bugs/?62617>. Thanks to Dave
+ Kemper for the report.
+
+2022-06-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Revise discussion of end-of-sentence detection.
+
+ * doc/groff.texi (Filling):
+ * man/roff.7.man (Concepts): Do it. "Spaces" is a now a term
+ with a much more restricted usage. Emphasize the input context,
+ now explicitly identified as plain text files with Unix line
+ endings.
+
+ Fixes (one hopes) <https://savannah.gnu.org/bugs/?62593>.
+ Thanks to Ingo Schwarze for the report and Dave Kemper for the
+ discussion.
+
+2022-06-10 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Changes to BuildFoundries.
+
+ * font/devpdf/util/BuildFoundries.pl: Collect search paths into
+ an array rather than a colon delimited string, this allows
+ the @PATH_SEPARATOR@ character (':' or ';') to be used to
+ delimit paths yielded by the command 'gs -h' but still use ':'
+ to delimit paths in the Foundry file. This means the same
+ Foundry file can be used on all systems.
+
+ * font/devpdf/Foundry.in: Add more likely paths to find the URW
+ fonts.
+
+2022-06-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Weaken dependency on TeX, instead using it (to generate
+ the DVI and PDF forms of our Texinfo manual) only if it is
+ available.
+
+ * m4/groff.m4 (GROFF_USE_TEX_CHECK): Check for presence of 'tex'
+ executable in path. Set shell variable `groff_use_tex` to "yes"
+ if present, and "no" otherwise. This check runs only if the
+ 'makeinfo' and 'texi2dvi' version checks have already passed.
+
+ * configure.ac: Run the new check. Set Automake conditional
+ `USE_TEX` only if shell variable `groff_use_tex` is "yes".
+ Report whether "groff.dvi" and "groff.pdf" are (re-)buildable.
+
+ * doc/doc.am: Parameterize names of groff.{dvi,pdf} targets as
+ Make macros `GROFF_DVI` and `GROFF_PDF`. Define them only if
+ `USE_TEX`. Do _not_ update `EXTRA_DIST` macro; leave the
+ literal file names there because we require that distribution
+ archives contain these files.
+ (.texi.dvi, .texi.pdf): Update suffix rules to check `USE_TEX`
+ and fail, complaining of missing 'tex' program, if these targets
+ are attempted without it being true. Only manually specifying
+ the file names as targets to 'make' or attempting to generate a
+ distribution archive without TeX present should cause these
+ errors.
+
+ * INSTALL.REPO: Update dependency information.
+
+ Fixes <https://savannah.gnu.org/bugs/?62592>. Thanks to Deri
+ James for the report.
+
+2022-06-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (.texi.dvi, .texi.pdf, $(DOC_GNU_EPS)): Quote names
+ of programs when aborting because they're missing.
+
+2022-06-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PROG_MAKEINFO, GROFF_PROG_TEXI2DVI):
+ Largely revert commit d5013ededc, 21 May: run checks for
+ 'makeinfo' and 'texi2dvi' programs regardless of presence of
+ ".tarball-version" file. Their presence is a necessary (but not
+ sufficient) condition for refresh of formatted forms of our
+ Texinfo manual if the source is modified.
+
+ Begins addressing <https://savannah.gnu.org/bugs/?62592>.
+
+2022-06-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Rename some groff Autoconf macros to better match
+ Autoconf's own naming conventions.
+
+ * m4/groff.m4 (GROFF_MAKEINFO): Rename to...
+ (GROFF_PROG_MAKEINFO): ...this.
+ (GROFF_TEXI2DVI): Rename to...
+ (GROFF_PROG_TEXI2DVI): ...this.
+
+ * configure.ac:
+ * m4/groff.m4 (GROFF_TEXI2DVI): Update call sites.
+
+2022-06-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (SH, SS, B, I, SM, SB): Set input trap with `it`
+ instead of `itc` for better Unix Version 7 man(7) compatibility.
+
+ Fixes <https://savannah.gnu.org/bugs/?51468>. Also see
+ discussion at
+ https://lists.gnu.org/archive/html/groff/2022-06/msg00020.html
+ et sequentia (amid a vigorous bikeshedding of `\&`'s name).
+
+2022-06-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Regression-test use of input traps.
+
+ * tmac/tests/an_use-input-traps-correctly.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-06-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (LoadDesc): Validate device
+ description file for essential directives and acceptable values
+ as grops(1) does.
+
+2022-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff, grohtml, grops, grotty]: Update wording of diagnostic
+ messages to refer to "motion quantum" rather than "resolution"
+ where appropriate.
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::html_printer):
+ * src/devices/grops/ps.cpp (ps_printer::ps_printer):
+ * src/devices/grotty/tty.cpp (tty_printer::set_char)
+ (tty_printer::add_char, tty_printer::end_page):
+ * src/roff/troff/env.cpp (line_length, title_length): Do it.
+
+2022-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl: Do more "DESC" file validation.
+ (LoadDesc): Bomb out gracefully if any of "unitwidth", "res", or
+ "sizescale" missing from "DESC" file. This prevents Perl
+ warnings about use of uninitialized values, and undoubtedly
+ mangled output.
+
+2022-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl: Revise diagnostic message
+ handling.
+ (top level): Add new scalar `progname` to house executable name.
+ (Msg): Output messages in format recommended by GNU Coding
+ Standards manual. Identify who's talking (Savannah #52463).
+ Rename `lev` scalar to `fatal` since it is used only as a
+ Boolean for immediately exiting with failure status. Report
+ diagnostic severity as part of message.
+ (Warn, Die): Add new subroutines through which all diagnostics
+ are now emitted.
+ (top level): Migrate a use of Perl `die` builtin to our `Die`.
+ (top level, ToPoints, LoadDownload, LoadDesc, do_x, GetPoints,
+ LoadSWF, LoadPDF, LoadStream, BuildStream, ParsePDFHash,
+ LoadFont, GetType1, GetChunk, RemapChr, do_N): Migrate `Msg(0,
+ ...)` calls to `Warn` and `Msg(1, ...)` to `Die`. Begin
+ messages in lowercase (GNU Coding Standards). Recast a few
+ messages for clarity.
+
+ Continues the long process of fixing Savannah #52463.
+
+2022-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (Load_Config): Drop unused
+ subroutine and its commented-out call site, which came in that
+ way in July 2011.
+
+2022-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (LoadFont): Warn if a font to be
+ embedded in PDF output cannot be located in the "download" file.
+
+ Fixes <https://savannah.gnu.org/bugs/?62572>. Thanks to Deri
+ James.
+
+2022-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/a4.tmac: Drop file from distribution. It has been
+ superseded by papersize.tmac for nearly 20 years.
+ * tmac/tmac.am (TMACNORMALFILES): Delete reference.
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?62569>.
+
+2022-06-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Parameterize X11-related man pages, so they don't get
+ spuriously generated (and not cleaned) when building with X11
+ support disabled.
+
+ * Makefile.am (.man): Fix logic nit: drop unnecessary removal of
+ target before clobbering it with sed.
+ * src/devices/xditview/xditview.am (GXDITVIEW_MAN1): Add new
+ macro, expanding to nothing if `WITHOUT_X11` and to the target
+ name otherwise.
+ (man1_MANS): Append `GXDITVIEW_MAN1` expansion, not a literal.
+ * src/devices/xditview/xditview.am (XTOTROFF_MAN1): Add new
+ macro, expanding to nothing if `WITHOUT_X11` and to the target
+ name otherwise.
+ (man1_MANS): Append `XTOTROFF_MAN1` expansion, not a literal.
+ * doc/doc.am (GROFF_MAN_PAGES1): Append foregoing expansions
+ instead of literals.
+
+2022-06-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Add `AM_CONDITIONAL`: `HAVE_URW_FONTS`, so our
+ Automake files can more easily cope with their absence.
+ * font/devpdf/Foundry.in: Add easily matched phrases to
+ comments, to clearly delimit the URW foundry portion of the file
+ so it can be omitted if those fonts are absent.
+ * font/devpdf/devpdf.am (font/devpdf/Foundry): Generate file
+ differently depending on `HAVE_URW_FONTS`; keep the existing
+ procedure if true, and delete the URW section from the generated
+ file otherwise, avoiding diagnostic messages from afmtodit(1)
+ and our BuildFoundries script.
+
+ Fixes <https://savannah.gnu.org/bugs/?62570>.
+
+2022-06-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am (font/devpdf/util/BuildFoundries):
+ Generate script using the `PATH_SEPARATOR` Automake macro.
+ * font/devpdf/util/BuildFoundries.pl: Add `pathsep` scalar to
+ house the build-time path separator.
+ (LocateFile): Use it.
+ (LoadFoundry, CheckFoundry): Stop using spaces as part of the
+ path separation delimiter. It is not idiomatic.
+
+2022-06-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Explicitly identify poppler tools in report.
+
+2022-06-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl: Trivially refactor. Drop
+ unused hash `foundry`. Drop scalar `warn` that was set and
+ updated but never tested.
+
+2022-06-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl: Alter script to write to
+ the standard output stream instead of (re)writing a file named
+ "download" in the current working directory. This recovers from
+ a problem I introduced in commit 6e62be835d, 2 May, as an
+ unforeseen side effect of improving build parallelism so that
+ the "download" file wouldn't be read until it was fully
+ populated. As a side benefit, this approach is more Unixy, and
+ less dependent on $PWD.
+ (top level): Stop calling `WriteDownload` with an argument.
+ (LoadFoundry): Close only the file handle of interest when done,
+ not all of them (including `STDOUT`, which we now need).
+ (CheckFoundry): Same--just for cleanliness, since at present
+ running the script in 'check' mode doesn't write to any streams.
+ (WriteDownload): Stop taking an argument and manipulating file
+ handles. Write download file to standard output.
+ (LoadDownload, WriteDownload): Drop `top` scalar, used as a
+ mutex to serialize read and write access to "download" file; it
+ is no longer needed since the "download" file is now only read.
+
+2022-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Rename shell variables and Autoconf/Automake macros of
+ Boolean sense to have names more like logical predicates and
+ avoid doofy "DONT" nomenclature.
+
+ * m4/groff.m4 (GROFF_MAKE_RM): Rename shell variable
+ `groff_is_rm_defined` to `groff_make_defines_rm` (purely for
+ clarity; it already had a good name).
+ (GROFF_MAKE_RM): Rename this...
+ (GROFF_MAKE_DEFINES_RM): to this, to make parallelism obvious,
+ and enabling...
+ * configure.ac: ...rename of `MAKE_DONT_HAVE_RM` to
+ `MAKE_DEFINES_RM` with sense of test reversed. Also interpolate
+ `GROFF_MAKE_DEFINES_RM` instead of `GROFF_MAKE_RM`. This in
+ turn enables...
+ * Makefile.am: ...revision of conditional from
+ `MAKE_DONT_HAVE_RM` to "!`MAKE_DEFINES_RM`".
+
+2022-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS_PATH)
+ (GROFF_WITH_COMPATIBILITY_WRAPPERS, GROFF_APPDEFDIR_OPTION)
+ (GROFF_UCHARDET): Recast help strings to more closely parallel
+ structure and style of Autoconf's own help strings.
+ (GROFF_WITH_COMPATIBILITY_WRAPPERS): Recast to tighten wording.
+
+2022-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac:
+ * m4/groff.m4 (GROFF_APPDEFDIR_OPTION, GROFF_APPDEFDIR_DEFAULT)
+ (GROFF_APPDEFDIR_CHECK): Rename m4 macros and shell variable
+ from "*appres*" to "*appdef*. Update interpolation sites.
+
+ * configure.ac:
+ * m4/groff.m4 (GROFF_APPDEFDIR_CHECK): Further rename this...
+ (GROFF_APPDEFDIR_NOTICE): ...to this, for consistency with other
+ post-report output macros.
+
+ * Makefile.am:
+ * PROBLEMS:
+ * doc/automake.mom:
+ * src/devices/xditview/xditview.am: Update interpolation sites
+ of `appresdir`.
+
+ * Makefile.am:
+ * src/devices/xditview/gxditview.1.man:
+ * src/roff/groff/groff.1.man: Update interpolation sites of
+ `APPRESDIR`.
+
+ * NEWS: Add item.
+
+2022-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_X11, GROFF_UCHARDET): Drop redundant
+ messages (which are easily overlooked amid the torrent of
+ "checking" output anyway). Discovery failures of X11 and the
+ uchardet library are already parts of the configuration report
+ at or near the end of output.
+
+2022-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PNMTOPS_NOSETPAGE): Partially revert change
+ from 21 May and document why in a comment.
+
+2022-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/troffrc: Skip loading of "papersize.tmac" if not in troff
+ mode.
+
+ Fixes <https://savannah.gnu.org/bugs/?62238>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-05-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Report use of "g" prefix for commands and macro
+ package compatibility wrappers.
+ * m4/groff.m4 (GROFF_G): Fix code style nits. Update
+ indentation to match recent practice.
+
+2022-05-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Fix code style nits and tweak report. Stop
+ superfluously using braces for shell parameter expansions that
+ don't require them. The shell is not make(1). Say
+ "installation _directory_ prefix" since another kind of prefix
+ can be used by groff (the "g" in front of command and macro
+ package names shared with AT&T troff).
+
+2022-05-31 Dave Kemper <saint.snit@gmail.com>
+
+ * doc/groff.texi: Fix content and style nits.
+ - Remove redundancy ("fixed-width... character that can't be
+ adjusted").
+ - Fix incorrect word ("environment value" -> "environment
+ variable").
+ - Add or change the placement of a couple tie{}s to comport
+ with style-guide recommendation.
+ - Grammarify.
+ - Clarify and tighten wording.
+
+ Fixes <https://savannah.gnu.org/bugs/?62551>.
+
+2022-05-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/node.cpp (font_position): If mounting a font
+ fails and a third argument was given (to the `fp` request),
+ report its value in the diagnostic message. This could reveal a
+ prohibited attempt at directory traversal. See commit
+ a891161bc9, 7 November.
+
+2022-05-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/fontfile.cpp (font::open_file): Refactor.
+ Move more logic, including memory allocation, inside conditional
+ that accepts only file names without '/' characters, skipping
+ unnecessary work in the alternative. Annotate use of zero
+ literals as null pointers to ease any future migration to ISO
+ C++11. Add 'const' qualifier to variable that doesn't require
+ modification (and which is used in the LHS of an equality
+ comparison, so that clumsy operator misuse will provoke a
+ compiler warning).
+
+ Fixes <https://savannah.gnu.org/bugs/?62532>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-05-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: In configuration report, say that we're
+ reporting compiler options along with the compiler executable.
+ Fix leftover test(1) comparison with garbage, overlooked in
+ commit faa22d89d2, 20 May.
+
+2022-05-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/meintro_fr.ps): Build with '-t' option.
+
+ Fixes <https://savannah.gnu.org/bugs/?62542>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-05-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.1.man (Options) <-l>: Handle case where
+ no default print spooler is configured, and report formatter
+ behavior correctly if it isn't.
+
+ Fixes <https://savannah.gnu.org/bugs/?62535>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-05-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am (.man): Process '@PSPRINT@' substitutions with
+ "makevarescape.sed".
+
+2022-05-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PROG_YACC, GROFF_MAKEINFO, GROFF_TEXI2DVI):
+ Fix logic error in detection of build scenario: the presence of
+ a ".git" directory is not an indicator that we're not building
+ from a distribution archive, because we might be building from a
+ snapshot archive (which also lacks it). Instead, perform checks
+ required only by builds from Git checkouts and snapshot archives
+ if the ".tarball-version" file is not present.
+
+2022-05-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am (EXTRA_DIST): Ship "HACKING" file.
+
+2022-05-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * bootstrap.conf: Add "pkg-config" to `buildreq`. Not having it
+ causes pretty horrible macro expansion problems and diagnostics
+ when 'autoreconf' is run; they're still pretty bad even if you
+ use `AC_REQUIRE` and `m4_pattern_forbid`. So just demand it.
+
+2022-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devps/S:
+ * font/devps/symbolmap: Drop excess mapping of `*U` special
+ character. groff maps it to the Adobe Glyph List name
+ 'Upsilon1'. (The AGL 'Upsilon' is a homoglyph of the Latin
+ capital 'Y'.)
+ * PROBLEMS: De-document build-time warning, now resolved.
+
+2022-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.tables: Regenerate using Unicode
+ 14.0. No substantive changes.
+
+2022-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/make-afmtodit-tables: Refactor. Drop
+ unused variable `prog`. Use value of `CPP` from environment (if
+ defined) and use parameter expansion to apply a default if null
+ or not set. Use for loop to eliminate duplicative if statement.
+ Test input files for readability, not just existence. Use more
+ portable test(1) and shell syntax. Swap usage error and fatal
+ error exit statuses; using "1" for failure and "2" for usage
+ errors is more common in shell scripts I've seen. Update usage
+ message to put non-literal parameter in full caps, and clarify
+ its name. Update comment blocks written to generated files to
+ further clarify data provenance.
+
+2022-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PRINT): Refactor. Stop performing checks
+ for spooler options if none is available. Stop redundantly
+ reporting command name used for spooling PostScript files. If
+ an option is required for spooling DVI files, report it alone
+ instead of repeating the command name as well.
+
+2022-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Fix insensitivity of groff(1) man page to configured spooler.
+
+ * Makefile.am (.man): Replace `@PSPRINT@` in man page sources
+ with name of configured print spooler command.
+ * src/roff/groff/groff.1.man (Options) <-l>: Use configured
+ print spooler command instead of literal 'lpr'.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_UCHARDET_CHECK): Fix grammar nit in failure
+ message when user demands uchardet support but the library
+ cannot be located.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_CHECK_GROHTML_PROGRAMS): Fix logic error in
+ computation of verb to be used in notice message.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PROG_YACC, GROFF_URW_FONTS_CHECK)
+ (GROFF_WITH_COMPATIBILITY_WRAPPERS, GROFF_UCHARDET_NOTICE):
+ Improve shell code portability. Per the GNU Autoconf manual,
+ "The -a, -o, '(', and ')' operands are not present in all
+ implementations, and have been marked obsolete by Posix 2008.
+ ...portable uses of test should never have more than four
+ arguments, and scripts should use shell constructs like '&&' and
+ '||' instead."
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.1.man (Installation directories): Don't
+ output a tagged paragraph for the X11 application defaults
+ directory if the build symbol '@APPRESDIR@' is not defined (that
+ is, we didn't build with X11 support).
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_GHOSTSCRIPT_VERSION_CHECK): Fix code style
+ nits. Use lowercase for shell variables we define. Don't quote
+ literal operands to test(1) that don't contain syntactically
+ shell-significant characters. Update indentation to match
+ recent practice.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS_NOTICE): Don't emit the notice if
+ Ghostscript isn't available, since it was a prerequisite for
+ the `GROFF_URW_FONTS_CHECK` macro in the first place.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Add print spooler determination to configuration
+ report.
+
+ * m4/groff.m4 (GROFF_PRINT): Add shell variable
+ `groff_have_spooler` to house the name of the print spooler
+ {"lp" or "lpr"} or the word "no".
+ * configure.ac: Report determined spooler, or its absence.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/tests/do-not-seek-the-unseekable.sh: Skip
+ seekability check of the standard input stream if there is no
+ controlling terminal.
+
+ Fixes <https://savannah.gnu.org/bugs/?62506>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-05-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_CHECK_GROHTML_PROGRAMS): Migrate from
+ `AC_FOREACH` to `m4_foreach` to avoid obsolescence warning from
+ GNU Autoconf 2.70 or later.
+
+ Fixes <https://savannah.gnu.org/bugs/?61059>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man: Rename "pilot" list macros for man(7) from
+ `BL`/`EL` to `LS`/`LE`, per suggestion from Alejandro Colomar.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_MAKEINFO, GROFF_TEXI2DVI): Check for
+ makeinfo(1) and texi2dvi(1) programs only if building from Git,
+ not a distribution archive.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/meintro_fr.ps): Call groff with `-K utf8`
+ instead of `-k`, in case the "configure" script didn't find
+ uchardet (and preconv(1) thus can't auto-detect an encoding).
+
+ Fixes <https://savannah.gnu.org/bugs/?59463>.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/tests/do-not-seek-the-unseekable.sh: Skip
+ a check if /dev/stdin is not a character special device.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PDFTOOLS): Rename this...
+ (GROFF_POPPLER): ...to this.
+ * configure.ac: Update call site.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_UCHARDET_CHECK): Rename this...
+ (GROFF_UCHARDET_NOTICE): ...to this.
+ * configure.ac: Update call site.
+
+ * m4/groff.m4 (GROFF_UCHARDET_NOTICE): Tighten wording of
+ message reported to user.
+
+ Fixes <https://savannah.gnu.org/bugs/?59481>. Thanks to Dave
+ Kemper for the report.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PNMTOOLS_CAN_BE_QUIET)
+ (GROFF_PNMTOPS_NOSETPAGE): Skip check if prerequisite not met.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS_CHECK): Rename this...
+ (GROFF_URW_FONTS_NOTICE): ...to this.
+ (GROFF_URW_FONTS): ...and this...
+ (GROFF_URW_FONTS_CHECK): ...to this.
+ (GROFF_URW_FONTS_NOTICE): Give lengthy notice message a one-line
+ summary.
+ * configure.ac: Update call sites.
+
+2022-05-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS): Refactor. If our prerequisites
+ are not met (availability of 'awk' and 'gs'), don't even run the
+ check logic or print a "checking" message.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Handle missing programs required to construct files needed at
+ runtime by gropdf more gracefully. Rename and refactor
+ configuration-time logic to be more understandable.
+
+ * configure.ac:
+ * m4/groff.m4: Rename `GROFF_PDFDOC_PROGRAMS` macro to
+ `GROFF_CHECK_GROPDF_PROGRAMS`. Rename shell variable
+ `make_pdfdoc` to `use_gropdf`. Set it explicitly to "no" or
+ "yes" instead of null or not null.
+
+ * configure.ac:
+ * m4/groff.m4:
+ * doc/doc.am: Rename `BUILD_PDFDOC` to `USE_GROPDF`.
+
+ * configure.ac: Call `GROFF_GROPDF_PROGRAM_NOTICE`.
+
+ * doc/doc.am: Bracket definition of `PROCESSEDDOCFILES_PDF`
+ macro and `$(PROCESSEDDOCFILES_PDF)` dependency declaration in
+ Automake `if USE_GROPDF` conditional. This prevents attempts
+ to build PDF documents using groff that are doomed to fail.
+
+ * m4/groff.m4: Refactor gropdf runtime-dependency program check.
+ Split into two macros: one (`GROFF_CHECK_GROPDF_PROGRAMS`)
+ performs the check, the other (`GROFF_GROPDF_PROGRAM_NOTICE`)
+ issues a notice at the end of the configuration process if at
+ least one program was not found. Rename `docnote` shell
+ variable to `gropdf_notice`. Tighten wording of notice. Drop
+ unused `make_install_pdfdoc` and `make_uninstall_pdfdoc` shell
+ variables.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Handle missing programs required at runtime by grohtml more
+ gracefully. Rename and refactor configuration-time logic to be
+ more understandable.
+
+ * configure.ac:
+ * m4/groff.m4: Rename `GROFF_HTML_PROGRAMS` macro to
+ `GROFF_CHECK_GROHTML_PROGRAMS`. Rename shell variable
+ `make_htmldoc` to `use_grohtml`. Set it explicitly to "no" or
+ "yes" instead of null or not null.
+
+ * configure.ac:
+ * m4/groff.m4:
+ * doc/doc.am: Rename `BUILD_HTML` to `USE_GROHTML`.
+
+ * configure.ac: Call `GROFF_GROHTML_PROGRAM_NOTICE`.
+
+ * doc/doc.am: Bracket definition of `PROCESSEDDOCFILES_HTML`
+ macro and `$(PROCESSEDDOCFILES_HTML)` dependency declaration
+ in Automake `if USE_GROHTML` conditional. This prevents an
+ attempt to build an HTML version of the "pic.ms" document that
+ is doomed to fail (noisily).
+
+ * m4/groff.m4: Refactor grohtml runtime-dependency program
+ check. Split into two macros: one
+ {`GROFF_CHECK_GROHTML_PROGRAMS`} performs the check, the other
+ {`GROFF_GROHTML_PROGRAM_NOTICE`} issues a notice at the end of
+ the configuration process if at least one program was not found.
+ Rename `html_docnote` shell variable to `grohtml_notice`.
+ Tighten wording of notice. Drop unused `make_install_htmldoc`
+ and `make_uninstall_htmldoc` shell variables.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_GHOSTSCRIPT_VERSION_NOTICE): Add newline at
+ end of buggy Ghostscript notification, so that the multiple
+ possible lengthy notices after the configuration report have
+ blank lines separating them.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Check for m4 program at configuration time.
+
+ * m4/groff.m4 (GROFF_PROG_M4): Define new macro to perform the
+ check and error out if the program is missing.
+ * configure.ac: Call the new macro.
+ * tmac/tmac.am (tmac/groff_man.7.man)
+ (tmac/groff_man_style.7.man): Use the new implicitly AC_SUBST-ed
+ variable `M4` to run the program.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PROG_YACC): Update wording of error
+ message: we search for "yacc", so report it as missing if it is
+ not found (along with "byacc" and "bison").
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Fix shell style nits. Get rid of string
+ {non-}nullity tests and comparisons involving concatenation with
+ garbage (usually "x"). See 13 November entry regarding m4. Use
+ idiomatic shell "brace style" for control structures.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Trivially refactor libgroff allocator configuration.
+
+ * m4/groff.m4 (GROFF_USE_GROFF_ALLOCATOR): Update description of
+ configuration flag to clarify that it's implemented in a
+ library. Rename shell variable to prefix it with "groff_",
+ putting it in an ad hoc name space as with other variables. If
+ feature disabled, set variable to literal "no".
+ * configure.ac: Use renamed variable and interpolate it directly
+ into configuration report, simplifying shell logic.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Revise configuration report for intelligibility.
+ Add report of C++ compiler and flags used: we compile much more
+ C++ than C code so this seems appropriate. Report Perl
+ interpreter version so that we can collect build reports and
+ turn the ratchet past Perl 5.6.1 at some point. Fix X11
+ "resources" misnomer (application defaults are what is meant).
+ Rephrase generally.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am (EXTRA_DIST): Ship "ChangeLog.122" in distribution
+ archive. Overlooked in commit c11995df16, 19 February 2021.
+
+2022-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tests/basic_latin_glyphs_map_correctly.sh:
+ Fix portability problem: POSIX says that "od -c" (and "od -t c")
+ are supposed to emit printing characters as defined by the
+ underlying locale, but GNU coreutils od doesn't do this and
+ macOS od does. Set `LC_ALL` to "C" when running it to force
+ 3-digit octal reporting of characters with their eighth bit set.
+
+ Fixes <https://savannah.gnu.org/bugs/?62357>. Thanks to John
+ Gardner for the report. Also see <https://pubs.opengroup.org/\
+ onlinepubs/9699919799/utilities/od.html>.
+
+2022-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * INSTALL.extra (In Case of Trouble): Add advice on using the
+ test suite, particularly if it fails.
+
+ Fixes <https://savannah.gnu.org/bugs/?62478> (one hopes).
+
+2022-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Input Line Traps): Expand discussion. The
+ `it` and `itc` requests count neither input lines (strictly) nor
+ text lines. Instead, they count input lines that _directly
+ produce formatted output_ (and, in the case of `itc`, are not
+ "interrupted" or continued with the `\c` escape sequence). This
+ is useful--empty requests and requests that don't put nodes on
+ the output don't break things--but does demand some explanation.
+ Clarify and provide example.
+ * man/groff.7.man (Escape sequence short reference) <it>: Sync.
+
+2022-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (environment::choose_breakpoint): Tweak
+ diagnostic message ("can't" -> "cannot").
+ * doc/groff.texi (Breaking): Update example.
+
+2022-05-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Copy Mode):
+ * man/groff.7.man (Copy mode): Fix omission; `\?` is interpreted
+ in copy mode.
+
+2022-05-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (PT): Unclutter name space; remove
+ `pg*saved-page-number-format` string when we're done with it.
+
+2022-05-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Add unit tests, including one XFAIL for bad behavior.
+
+ * src/preproc/tbl/tests/check-horizontal-line-length.sh:
+ * src/preproc/tbl/tests/check-line-intersections.sh:
+ * src/preproc/tbl/tests/check-vertical-line-length.sh:
+ * src/preproc/tbl/tests/table-lacks-spurious-top-border.sh: Do
+ it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run tests.
+ (tbl_XFAIL_TESTS, XFAIL_TESTS): Expect one test failure.
+
+2022-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tty.cpp (tty_printer::add_char): Modify
+ diagnostic message: what gets written "above [the] first line"
+ might not be a character (glyph) per se, but a line (rule) from
+ a drawing command, and in fact the occurrence of these from
+ boxed tables is the most common cause of this message I've seen.
+
+2022-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Do more input validation.
+
+ * src/devices/grotty/tty.cpp (tty_printer::draw): Throw warning
+ if an unsupported geometric primitive is encountered.
+ (tty_printer::line): Throw warning if a line is diagonal. Die
+ if length of a horizontal or vertical line is not a multiple of
+ the appropriate motion quantum of the device (troff should never
+ emit such nonsense, and currently doesn't appear to).
+
+2022-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/tbl.1.man (Miscellaneous): Document GNU tbl's
+ use of `#T` and `T.` registers.
+
+2022-05-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_color_draw_node): Tweak
+ diagnostic message to better distinguish drawing commands and
+ device control commands.
+
+2022-05-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Mitigate double-free problem exposed by malformed
+ input.
+
+ * src/roff/troff/mtsm.h (struct statem): Place member variable
+ `issue_no` behind `DEBUGGING` preprocessor symbol, omitting it
+ from production and ordinary development builds.
+ * src/roff/troff/mtsm.cpp (no_of_statems): Place global variable
+ behind `DEBUGGING` preprocessor symbol, omitting it from
+ production and ordinary development builds.
+ (statem::statem): Make constructor trivial if `DEBUGGING` not
+ defined in preprocessor; it manipulates only `issue_no` and
+ `no_of_statems`, which are synchronized.
+ (statem::statem {copy}): Gate assignment of `issue_no` member
+ variable from copy constructor behind `DEBUGGING` preprocessor
+ symbol.
+ (statem::flush, mtsm::inherit): Gate debugging output, already
+ runtime-gated on `debug_state` symbol, of `issue_no` member
+ variable, so that we don't reference it when it is not declared.
+
+ See <https://savannah.gnu.org/bugs/?62040>.
+
+2022-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Rename a test artifact; it's a bibliographic database
+ file, not a refer(1) command file.
+
+ * src/preproc/refer/tests/artifacts/62124.ref: Rename this...
+ * src/preproc/refer/tests/artifacts/62124.bib: ...to this.
+ * src/preproc/refer/refer.am (EXTRA_DIST):
+ * src/preproc/refer/tests/report-correct-line-numbers.sh: Use
+ new name.
+
+2022-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/command.cpp (process_commands): Begin
+ migration to use existing global variables for location reports
+ in diagnostic messages. Save current file name and line number
+ before calling `command_loop()` and restore them afterward.
+ Also decrement line counter before entering that loop because it
+ would be too far advanced by one due to the final newline on a
+ parsed input line.
+
+2022-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.cpp (main): Report system error on
+ `fflush()` failure. POSIX Issue 5 a.k.a. SUSv2 (1997) specifies
+ several possible `errno` values this C standard library function
+ can set; see
+ <https://pubs.opengroup.org/onlinepubs/007908799/xsh/fflush.html>.
+
+2022-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Refactor: drop unused version of function (taking only
+ a `const char *` parameter).
+
+ * src/preproc/refer/command.cpp (process_commands): Drop
+ definition.
+ * src/preproc/refer/command.h (process_commands): Drop
+ declaration.
+
+2022-05-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.cpp (do_file): Fix another off-by-one
+ line number reporting bug exposed by fix for Savannah #62391.
+
+2022-05-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/tests/report-correct-line-numbers.sh: Add
+ more regression tests.
+
+2022-05-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Trivially refactor: boolify.
+
+ * src/preproc/refer/command.cpp (input_stack::push_file): Demote
+ and rename local variable from `int` to `bool`.
+ (bol): Renamed from this...
+ (is_at_beginning_of_line): ...to this.
+
+2022-05-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Trivially refactor.
+
+ * src/preproc/refer/command.cpp (input_stack::push_file):
+ * src/preproc/refer/refer.cpp (do_file): Drop unnecessary
+ construction of integer from integer (return type of `getc()`)
+ in argument to error diagnostic functions; parallelizes with
+ other diagnostic function calls.
+
+2022-05-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/command.cpp: Refactor to simplify.
+ (get_location): Demote return type from `int` to `void`. The
+ function only ever returned a `1` literal.
+ (input_stack::error): Update call site to stop uselessly testing
+ return value of `get_location()`.
+
+2022-05-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (dist-info-bits, install_infodoc, dist-gnueps): Fix
+ logic error. When checking both source and build trees for
+ files to copy, break after successfully copying the files, not
+ after the first iteration of the loop unconditionally. This
+ caused the Info documents not to be installed from out-of-tree
+ builds, and potentially would prevent them and doc/gnu.eps from
+ being included in the distribution archive if for some reason
+ they didn't build and that build failure were not treated as an
+ error. Problems introduced by me in commits e78bd20d54, 27
+ March, and d79c3f3a4a, 11 November.
+
+2022-05-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_APPRESDIR_OPTION): Update comments and
+ human-readable output to (1) stop claiming that existing
+ gxditview application defaults in the installation directory
+ will be backed up; this is no longer true as of commit
+ c66cb7725f, 3 April; and (2) refer to these files as
+ "application defaults", not "resources". (X11 application
+ defaults are client-side and mandatory [for Xt-based programs];
+ X resources are stored server-side and need not be configured to
+ determine an X client's geometry and rendering.)
+
+2022-05-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devX100-12/devX100-12.am (devX100_12_fontdir):
+ * font/devX100/devX100.am (devX100_fontdir):
+ * font/devX75-12/devX75-12.am (devX75_12_fontdir):
+ * font/devX75/devX75.am (devX75_fontdir): Define macros without
+ an extra "font/" layer in the directory hierarchy.
+
+ Fixes problem introduced by me in commit 3c82cbbfe5, 27
+ February.
+
+2022-05-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am (font/devpdf/util/BuildFoundries): Spell
+ dependency on `$(SH_DEPS_SED_SCRIPT)` using that macro expansion
+ instead of a literal file name. See doc/automake.mom.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/eqn.am (MAINTAINERCLEANFILES):
+ * src/preproc/pic/pic.am (MAINTAINERCLEANFILES):
+ * src/preproc/refer/refer.am (MAINTAINERCLEANFILES): Preserve
+ byacc/bison output artifacts unless "maintainer-clean"ing. Per
+ the GNU Automake manual, "The intermediate files generated by
+ yacc (or lex) will be included in any distribution that is made.
+ That way the user doesn’t need to have yacc or lex."
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Stop manually handling "test-groff". Per the
+ GNU Automake manual, "If configure built it, then distclean
+ should delete it." This is taken care of automatically if we
+ don't interfere.
+ (BUILT_SOURCES, MOSTLYCLEANFILES): Drop "test-groff".
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/eqn.am (neqn): Produce temporary file first
+ and set its permissions before moving it into place. If
+ anything in the future ever has a dependency on it, this avoids
+ a race where the file exists, satisfying a dependency, but
+ execution is attempted before its `x` permission bit is set.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Ensure that we install *.me source files, but don't
+ include them in the distribution archive.
+
+ * doc/doc.am (dist_otherdoc_DATA): Move `$(GENERATEDDOCFILES)`
+ from here...
+ (nodist_otherdoc_DATA): ...to here.
+ (.PRECIOUS): Add `$(GENERATEDDOCFILES)` so that make(1) doesn't
+ automatically remove "intermediate" objects in the .me.in -> .me
+ -> .ps chain.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Handle "gnu.eps" file better.
+
+ * doc/doc.am (GENERATEDDOCFILES): Remove `$(DOC_GNU_EPS)`.
+ (EXTRA_DIST): Ship `$(DOC_GNU_EPS)` in distribution archive.
+ ($(DOC_GNU_EPS)): Simplify rule commands; stop trying to copy
+ the file around since it will either be (1) in the distribution
+ archive from which a build is performed; or (2) missing because
+ a build is being done from Git, in which case we expect the PNM
+ tools to be available.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (clean_otherdoc): Drop target: it doesn't seem to
+ accomplish anything.
+ (clean_infodoc): Drop target, moving its rules into...
+ (maintainer-clean-local): ...this. Drop deps, both gone now.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (distclean-local): Drop target: stop cleaning
+ generated forms of our Texinfo manual with the "distclean"
+ target. They ship with the distribution archive and should
+ remain in the tree even if the user needs to re-./configure.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Fix problems exposed by high build parallelism.
+
+ * font/devpdf/devpdf.am (font/devpdf/util/BuildFoundries)
+ (font/devpdf/DESC, font/devpdf/Foundry): Drop
+ unnecessary removal of target prior to creating it.
+ (font/devpdf/Foundry): Add creation of destination build
+ directory as other targets do.
+ (font/devpdf/download): Create dedicated target instead of
+ lumping its generation under the stamp file. Add missing
+ dependencies on `$(DEVPDFFONTMAP_1)`, `$(DEVPDFFONTMAP_2)`,
+ `font/devpdf/Foundry` and `font/devpdf/enc/text.enc`. Remove
+ now-unnecessarily complicated "forgery" of "GEN" line in quiet
+ builds. Tweak format of comment written to "download" file to
+ make field identities clearer. Construct output (with multiple
+ shell commands) in temporary file so it is not read prematurely
+ by the "BuildFoundries" script. Move target into place as the
+ last step.
+ (font/devpdf/stamp): Relocate target to follow its dependencies.
+ Add dependency on "font/devpdf/download".
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Tweak diagnostic messages in BuildFoundries script.
+
+ * font/devpdf/util/BuildFoundries.pl (LoadFoundry)
+ (WriteDownload, CheckFoundry): Recast for specificity and
+ consistent style.
+ (Die): Stop reporting line number with fatal errors; none of the
+ call sites are parsing input.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Fix off-by-one error in line number for some
+ diagnostics.
+
+ * src/preproc/refer/command.cpp (input_item::get_location):
+ Decrement reported line number by one after looping over input
+ so that we report the line number as it was before the last
+ newline character seen. This off-by-one error was partially
+ masked by...
+ * src/preproc/refer/refer.cpp (do_file): ...initialization of
+ `current_lineno` to zero. However, for syntax problems (as
+ opposed to the semantic problems of refer(1) command
+ processing), this could result in complaints about the line
+ number before they occurred, even on "line zero". Initialize
+ the variable to 1.
+
+ Fixes <https://savannah.gnu.org/bugs/?62391>.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/tests/report-correct-line-numbers.sh: Add
+ regression test for Savannah #62391.
+
+2022-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/tfmtodit/tfmtodit.cpp (usage): Tweak usage message.
+ Condense `-v` and `--version` into a single output line with
+ brace and pipe notation, which we do not use in our man pages,
+ but consistently do in our usage messages. Use lowercase for
+ option arguments since they are separated from option flag
+ letters by space. Call `fprintf()` once instead of 3 times.
+
+2022-05-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.cpp (main): Tweak wording of
+ diagnostic messages to refer to options consistently and to
+ characterize input as "invalid" rather than "bad".
+ (usage): Document --version option. Use more informative
+ metasyntactic variable names. Organize usage message
+ consistently with our others, and stop wrapping the output
+ lines: we know neither the width of the terminal nor the length
+ of the `program_name` string we're interpolating. See commit
+ b4de44f0, 19 July 2021.
+
+2022-05-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (string_iterator::backtrace): Fix
+ spurious output when `mac.filename` is empty. Provoked by:
+ $ printf '\\(' | troff -b
+
+2022-05-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.cpp: Trivially refactor. Demote
+ global variable `recognize_R1_R2` from integer to Boolean.
+ (main, do_bib): Give expressions to `assert()` meaningful
+ content.
+ (is_list): Demote return type from `int` to `bool`.
+ (do_file): Demote and rename integer local variables
+ `start_of_line` to Boolean `at_start_of_line`.
+ (is_list, do_file): Reorder equality comparisons to avoid
+ inadvertent lvalue assignment.
+
+2022-05-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Reduce and rationalize in-tree document dependencies.
+ This eliminates spurious rebuilds of numerous documents
+ {including the 380+-page groff-man-pages collections}. It also
+ fixes missing dependencies when using the build's groff to
+ generate PostScript documents.
+
+ * .gitignore: Drop old name of devpdf stamp file.
+ * doc/.gitignore: Drop now-unused "example.stamp" file.
+ * doc/doc.am (PROCESSEDDOCFILES_HTML, PROCESSEDDOCFILES_PDF)
+ (PROCESSEDDOCFILES_TXT): Add new macros grouping targets by the
+ format/output driver used to produce them, to better organize
+ dependencies for their generation.
+ (PROCESSEDDOCFILES): Redefine as simply the expansions of the
+ foregeoing.
+ (PROCESSEDFILES_DEPS_HTML, PROCESSEDFILES_DEPS_HTML,
+ PROCESSEDFILES_DEPS_PDF, PROCESSEDFILES_DEPS_TXT): Add new
+ macros defining prerequisites for production of the
+ corresponding output document formats.
+ ($(PROCESSEDDOCFILES_HTML), $(PROCESSEDDOCFILES_PDF),
+ $(PROCESSEDDOCFILES_PS), $(PROCESSEDDOCFILES_TXT)): Declare the
+ dependencies using expansions of the foregoing macros.
+ (MOSTLYCLEANFILES): Drop "doc/automake.pdf", now part of
+ `PROCESSEDDOCFILES_PDF`.
+ (doc/automake.pdf): Drop dependencies already supplied by
+ `PROCESSEDFILES_DEPS_PDF`.
+ (HTMLDOCFILES): Drop macro. "doc/pic.html" is now in the
+ expansion of `PROCESSEDDOCFILES_HTML`.
+ (htmlpic_DATA): Redefine as expansion of
+ `PROCESSEDDOCFILES_HTML` instead of `HTMLDOCFILES`.
+ (PROCESSEDEXAMPLEFILES_HTML) [BUILD_HTML]: Define as
+ "doc/webpage.html", otherwise as empty.
+ (PROCESSEDEXAMPLEFILES_PS): Contain "doc/webpage.ps" and
+ "doc/grnexampl.ps".
+ (PROCESSEDEXAMPLEFILES): Redefine as expansions of
+ `PROCESSEDEXAMPLEFILES_HTML` and `PROCESSEDEXAMPLEFILES_PS`.
+ ($(PROCESSEDEXAMPLEFILES_HTML), $(PROCESSEDEXAMPLEFILES_PS)):
+ Declare dependencies using `PROCESSEDFILES_DEPS_HTML` and
+ `PROCESSEDFILES_DEPS_PS`, respectively.
+ (HTMLEXAMPLEFILES): Drop macro. "doc/webpage.html" is now in
+ the expansion of `PROCESSEDDOCFILES_HTML`.
+ (nodist_htmlexamples_DATA): Drop macro, no longer needed.
+ ($(PROCESSEDDOCFILES_PS)): Relocated and redefined above.
+ ($(PROCESSEDEXAMPLEFILES) $(PROCESSEDDOCFILES)): Drop overbroad
+ dependency declarations in favor of the above.
+ (MOSTLYCLEANFILES, doc/examples.stamp): Drop generation and
+ removal of unnecessary stamp file.
+ (doc/pic.html, doc/webpage.html): Add explicit dependency on
+ required preprocessors. Drop redundant and spurious
+ dependencies.
+ * font/devhtml/devhtml.am (MOSTLYCLEANFILES)
+ (font/devhtml/stamp): Generate and remove stamp file to enable
+ reliable target dependencies for build-time generation of HTML
+ documents by groff.
+ * font/devpdf/devpdf.am (MOSTLYCLEANFILES, font/devpdf/stamp):
+ Rename stamp file from "font/devpdf/build_font_files".
+ (font/devpdf/stamp): Drop unnecessary dependency on "afmtodit".
+ * font/devps/devps.am (MOSTLYCLEANFILES, font/devps/stamp):
+ Generate and remove stamp file to enable reliable target
+ dependencies for build-time generation of PostScript documents
+ by groff.
+ * font/devutf8/devutf8.am (MOSTLYCLEANFILES)
+ (font/devutf8/stamp): Generate and remove stamp file to enable
+ reliable target dependencies for build-time generation of
+ UTF-8-encoded text documents by groff.
+
+ Fixes <https://savannah.gnu.org/bugs/?62084>; thanks to
+ Sergei Trofimovich for the report. Also fixes
+ <https://savannah.gnu.org/bugs/?62297>; thanks to Bjarni Ingi
+ Gislason for the report.
+
+2022-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Fix code style nits in Automake files.
+
+ * doc/doc.am: Put spaces around (Auto)make variable assignments,
+ for consistency with the rest of this .am file, and our others.
+ * font/devpdf/devpdf.am (font/devpdf/build_font_files): Use
+ shell '>' operator instead of touch(1).
+ * font/devhtml/devhtml.am (font/devhtml/DESC):
+ * font/devps/devps.am (font/devps/DESC): Construct target in
+ temporary file, since doing so is a multi-step process, moving
+ it to the target name when it is complete and usable by
+ dependencies.
+
+2022-04-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.cpp (main): When complaining of
+ unrecognized option, report the entire option string (after
+ the leading dash), not just its first character.
+
+2022-04-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/error.cpp: Trivially refactor. Explicitly
+ compare pointer lvalues to null pointers instead of punningly
+ treating them as Booleans. Annotate use of zero literals as
+ null pointers to ease any future migration to ISO C++11.
+
+2022-04-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (an*abbreviate-inner-footer): Clean up better
+ before early returns. Remove temporary registers.
+
+2022-04-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/fallbacks.tmac: Add fallbacks for U+02C6 MODIFIER LETTER
+ CIRCUMFLEX ACCENT and U+02DC SMALL TILDE to Basic Latin
+ characters.
+
+2022-04-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Fix portability problem. Don't pass echo(1) arguments
+ containing backslashes because implementations handle them
+ differently. Use printf(1) instead. Thanks to Bertrand
+ Garrigues for reporting the problem and confirming the fix on
+ his build host.
+
+ * tmac/tests/e_chapter-titles-work.sh:
+ * tmac/tests/e_ld-works.sh:
+ * tmac/tests/localization-works.sh: Do it.
+
+2022-04-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (ppsz): Recognize "com10" (U.S.
+ commercial envelope) paper format.
+
+ Addresses the original issue reported in
+ <https://bugs.debian.org/1009248>. We have however broadened
+ its scope; see <https://savannah.gnu.org/bugs/?62344>.
+
+2022-04-27 Dave Kemper <saint.snit@gmail.com>
+
+ * src/devices/gropdf/gropdf.pl (ppsz): Recognize ISO B-series
+ paper formats using strings of the form "b0-b6", not "isob0-b6",
+ for consistency with libgroff and papersize.tmac.
+
+ Fixes <http://savannah.gnu.org/bugs/?62346>.
+
+2022-04-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor to simplify. Ingo's removal of the
+ "--with-doc" "configure" option, among other changes, clears the
+ way to remove many phony targets and simplify dependencies
+ involving generation of the 5 formats of our Texinfo manual.
+ (build_infodoc, doc, doc_all, doc_txt, dvi, doc_dvi, pdf,
+ doc_pdf, html, doc_html): Drop phony targets.
+ (all): Depend directly on doc/groff.{info,txt,html,dvi,pdf}.
+ * NEWS: Add item since "make doc" is no longer necessary and
+ will do nothing.
+
+2022-04-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Handle `\R` sequences in text blocks robustly.
+
+ * src/preproc/tbl/table.cpp (table::add_entry): Fix SEGV when
+ repeating glyph table entry syntax (`\Rx`) used in a text block.
+ Lift extraction of entry string to be done unconditionally,
+ rather than in 5 different special cases. This frees us up to
+ rewrite the entry if necessary, changing '\R' to '\&' inside a
+ text block. Recast diagnostic to describe the problem
+ clearly--"bad repeated character" suggests that something is
+ wrong with the "argument" to `\R`, when really the problem is
+ the _context_.
+
+ Fixes <http://savannah.gnu.org/bugs/?62366>.
+
+2022-04-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #62366.
+
+ * src/preproc/tbl/tests/\
+ do-not-segv-when-backslash-R-in-text-block.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-04-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/string.cpp (string::extract): Check return
+ value of `malloc()` for nullity, and only poke into the buffer
+ returned if it is valid. Discovered while troubleshooting
+ Savannah #62366.
+
+2022-04-23 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ gnulib: replace non-recursive-gnulib-prefix-hack with
+ automake-subdir option
+
+ 'non-recursive-gnulib-prefix-hack' is deprecated by gnulib's
+ commit f8eed11b15e9141d061900e4068ea1f3ba9b63f6 and replaced by
+ '--automake-subdir'.
+
+ * bootstrap.conf:
+ (gnulib_modules): Remove option
+ 'non-recursive-gnulib-prefix-hack'.
+ (gnulib_tool_option_extras): Add option '--automake-subdir'.
+ (bootstrap_post_import_hook): Remove the invocation of
+ 'build-aux/prefix-gnulib-mk'.
+
+ * doc/automake.mom: update documentation accordingly.
+
+ Fixes <http://savannah.gnu.org/bugs/?61708> and
+ <https://savannah.gnu.org/bugs/?62205> , issues reported and fix
+ suggested by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>. Fix
+ also suggested by Werner LEMBERG <wl@gnu.org> (see
+ <https://repo.or.cz/ttfautohint.git/commit/a938fc63cb55ef48393a924d7083b13c1352d294>).
+
+2022-04-23 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update gnulib submodule
+
+ * gnulib now points on c8b8f3bbcde37a53cd226f4c9cebd0dde6aca37f
+
+ * bootstrap: merge the latest version from gnulib/build-aux
+ {groff's bootstrap has a patch for OS X}.
+
+ * bootstrap.conf: update copyright date.
+
+2022-04-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (XH-UPDATE-TOC): Modify Keith Marshall's new XN/XH
+ feature to indent TOC entries by section heading depth. The
+ increment is 2 ens per depth level.
+
+2022-04-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (XA): Drop apparently useless `ll` request. It
+ doesn't do anything according to my tests.
+
+2022-04-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/label.ypp: Drop redundant declaration of
+ `yyparse`. Both byacc 20140715 and GNU Bison 3.3.2 supply the
+ the function prototype themselves. Addresses
+ "-Wredundant-decls" warning from GCC.
+
+ Fixes <https://savannah.gnu.org/bugs/?43569>.
+
+2022-04-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/hdb.cpp (DBGetType): Lower fatal diagnostics
+ to errors when encounting invalid element type characters.
+ Return a value interpreted by our caller as an error indication
+ instead. Helps compilers determine that we're not implicitly
+ falling through our cases. Addresses "-Wimplicit-fallthrough"
+ warnings from GCC.
+
+ Fixes https://savannah.gnu.org/bugs/?54702>.
+
+2022-04-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/hdb.cpp (DBRead): Add more validity checking.
+ Verify that the number of conversions returned by fscanf() is as
+ expected instead of throwing this information away--abort
+ processing ("giving up" like pic(1) does) if it does not.
+ Consistently report this abandonment in diagnostic messages.
+ Similarly validate pointer returned by fgets(). Soften handling
+ of invalid text condition from fatal error, introduced in
+ commit eb4f0675e, 16 August, to a normal one with abandonment of
+ Gremlin file. Addresses "-Wunused-result" warnings from GCC.
+
+2022-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/main.cpp (conv): Throw an error diagnostic
+ when failing to open a Gremlin picture file.
+
+2022-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix extraneous space in output after `ME` or `UE` when
+ mandoc wrapper is used.
+
+ * tmac/an-ext.tmac (UE, ME): Double backslashes in macro
+ definitions when interpolating `.$` register (just like we tell
+ everyone else to do). This one was interesting to track down.
+ When using just `-man`, the problem never manifested; only with
+ `-mandoc`. The difference is that with the former, the `.$`
+ register is initialized to zero; with the latter, because `TH`
+ is aliased to another macro (then unaliased), `.$` has the
+ argument count to the `TH` macro, not to the macros actually
+ being called. This caused the wrong branch of a conditional to
+ be taken and put an extra space node on the output.
+
+ Fixes <https://savannah.gnu.org/bugs/?62044>.
+
+2022-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/cp1047.tmac:
+ * tmac/latin1.tmac:
+ * tmac/latin2.tmac:
+ * tmac/latin5.tmac:
+ * tmac/latin9.tmac: Stop remapping input soft hyphen characters
+ with `tr` requests in character encoding macro files. The
+ formatter does this for us now.
+
+2022-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Translate 8-bit NBSP and SHY on input.
+
+ * src/roff/troff/input.h: Define constant integers for "input"
+ no-break spaces and soft hyphens for EBCDIC and non-EBCDIC
+ (presumably ASCII/ISO 8859/Unicode) systems.
+
+ * src/roff/troff/input.cpp (token::next): Translate the input
+ character codes for NBSP to \~ and SHY to \%.
+
+ Fixes <https://savannah.gnu.org/bugs/?58962>. Thanks to Dave
+ Kemper for the report, code review, and his suggestion to push
+ more work to compile time.
+
+2022-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [groff]: Regression-test Savannah #58962.
+
+ * src/roff/groff/handle_special_input_code_points.diff: Do it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2022-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_if_request): Clarify diagnostic;
+ at the point it is thrown, we know not merely that we're in a
+ conditional expression, but processing an output comparison
+ operator.
+
+2022-04-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi:
+ * doc/ms.ms:
+ * man/groff.7.man: Characterize "roff language" in the singular,
+ not the plural, emphasizing the similarity of extant specimens.
+
+ * doc/groff.texi (Conventions Used in This Manual): Add
+ paragraph discussing denotations of "groff" and "roff".
+
+ Fixes <https://savannah.gnu.org/bugs/?62233>. Thanks to John
+ Gardner and Dave Kemper for the discussion.
+
+2022-04-12 Ingo Schwarze <schwarze@openbsd.org>
+
+ Delete the harmful, ill-designed, buggy, and essentially
+ unmaintained and untested --with-doc option of the configure
+ script.
+
+ * configure.ac: Delete five AM_CONDITIONAL variables, one
+ autoconf(1) macro call, and some related diagnostic output.
+ * doc/doc.am: Delete two BUILD_EXAMPLES and one BUILD_OTHERDOC
+ conditional and use BUILD_HTML instead of BUILD_HTMLEXAMPLES.
+ * m4/groff.m4: Delete the GROFF_DOC_CHECK macro and simplify the
+ macros GROFF_HTML_PROGRAMS, GROFF_INSTALL_INFO, GROFF_MAKEINFO,
+ and GROFF_PDFDOC_PROGRAMS. This also deletes more than thirty
+ configuration variables.
+ * Makefile.am: Delete comments about 16 variables that are no
+ longer set.
+ * NEWS: Add details regarding the rationale.
+
+2022-04-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.cpp (unicode_entity): Convert
+ input U+00A0 to \~ as troff would, not to \[u00A0].
+
+ Fixes <https://savannah.gnu.org/bugs/?62300>.
+
+2022-04-11 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf] fails to deal with 255th glyph in font.
+
+ * src/devices/gropdf/gropdf.pl: a pdf font can only contain 255
+ glyphs. The array which holds the glyph names also holds the
+ start position (zero) as first element, it is legal for it to
+ contain 256 elements, so truncate to 256 (not 255).
+
+ Fixes <https://savannah.gnu.org/bugs/?62294>.
+
+2022-04-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [localization]: Define hyphenation mode registers for Japanese
+ and Chinese. They are set to zero but must be defined so that
+ macro packages can rely on their existence without causing 'reg'
+ warnings.
+
+ * tmac/ja.tmac:
+ * tmac/zh.tmac: Do it.
+
+2022-04-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Add test for multi-lingual man(7) scenario.
+
+ * tmac/tests/localization-works.sh: Test two more cases. Ensure
+ that the 'trap bit' (hyphenation value 2, which has nothing to
+ do with any language) is preserved when switching locales back
+ from a CJK language, since those languages' modes
+ unconditionally clear it. We test Japanese and Chinese; we have
+ no localization macro file for Korean at this time.
+
+2022-04-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Slightly refactor `an*abbreviate-inner-footer`.
+
+ * tmac/an.tmac (an*abbreviate-inner-footer): Discard
+ unnecessary string.
+
+2022-04-09 Ingo Schwarze <schwarze@openbsd.org>
+
+ Fix the configuration of texi2dvi.
+
+ * m4/groff.m4: Set groff_have_texi2dvi if texi2dvi(1) is
+ available and usable, even if the availability was specified by
+ the user by manually providing the configure variable
+ PROG_TEXI2DVI, and not only if it was autodetected.
+ Also, set the PROG_TEXI2DVI Makefile variable to the name of
+ the texi2dvi program specified by the user or autodetected,
+ and not to the string "found", such that this Makefile variable
+ can be used for invoking the program.
+ * doc/doc.am: Call the texi2dvi program specified by the user
+ or autodetected rather than hardcoding "texi2dvi". This lets
+ the groff build succeed on systems where the first texi2dvi
+ in the $PATH is an old version unfit for groff's purposes.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Abbreviate long `TH` arguments more carefully.
+
+ * tmac/an.tmac: Do it.
+ (an*scan-string-for-backslash): Add new helper macro.
+ (an*abbreviate-inner-footer): Rewrite. Use the foregoing and a
+ different technique to compute available space and shorten the
+ string.
+
+ Fixes <https://savannah.gnu.org/bugs/?62257>.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add regression test for Savannah #62257.
+
+ * tmac/tests/an_do-not-abbreviate-escape-using-TH-arguments.sh:
+ Do it.
+ * tmac/tmac.am (tmac_TESTS): Run it.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Trivially refactor. Rename strings `an-ifoot`
+ to `an*ifoot` and `an-outer-footer-text` to `an*ofoot`.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Refactor. Abbreviate page title and inner
+ footer only once per document instead of once per page.
+ Exception: the legacy macros `AT` and `UC` change the inner
+ footer, so re-abbreviate it if they are called.
+ (TH, AT, UC): Call abbreviation macros from here...
+ (an-header, an-footer): ...instead of here.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Refactor: initialize header/footer environment
+ only once. Also rename it to `an*env-header-and-footer`.
+ (TH): Do it here...
+ (an-header, an-footer): ...instead of here.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Trivially refactor.
+ (an*prepare-page-title): Rename this...
+ (an*abbreviate-page-title): ...to this.
+ (an-prepare-inner-footer): And this...
+ (an*abbreviate-inner-footer): ...to this.
+ (an-header, an-footer): Update call sites.
+
+2022-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/other.cpp (hmotion_box::output): Fix typo in
+ generated MathML diagnostic message.
+
+2022-04-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (EXTRA_DIST): Add "groff.dvi" and "groff.pdf" to
+ ensure that the GNU-released groff distribution archive contains
+ our Texinfo manual in these formats. (This doesn't increase the
+ build-dependency requirements unless you want to "make dist", in
+ which case it _should_.)
+
+2022-04-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Add nroff mode fallback for `UL` macro.
+
+ * tmac/s.tmac (UL): On nroff devices, bracket the first argument
+ with \(ul (underline rule) special character escape sequences.
+ {In plain language, '.UL "like this"' renders "_like this_".}
+ See corresponding 12 February change to "tmac/e.tmac".
+
+2022-04-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Drop unnecessary `-I` options to groff.
+ (DOC_GROFF): There is no need to look at the top of the build
+ directory for any file inclusions.
+ (doc/webpage.html): There is no need to look in `doc_builddir`
+ for file inclusions, since that is the current working directory
+ when "webpage.ms" is processed.
+
+2022-04-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Trivially refactor. Use `RM` macro idiomatically.
+ Automake ensures that it is defined to call an `rm` command with
+ the `-f` option, and this in turn ignores failures to delete
+ nonexistent files, so...
+ (uninstall_doc_examples, uninstall-pdf): Stop adding superfluous
+ `-f` flag.
+ (clean_infodoc uninstall-pdf, uninstall-html): Stop prefixing
+ command with `-` to ignore error exit status.
+ (uninstall-html): Drop superfluous `-r` flag; we're only
+ deleting files with this command, not directories.
+
+2022-04-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Trivially refactor shell style in rule commands.
+ The placement of `&&` was inconsistent. Always begin a
+ continued rule line with it, and don't give it its own
+ indentation level. In general, operators adjacent to line
+ continuations should _follow_ the continuations because they are
+ easier for humans to spot at the (possibly indented) beginning
+ of a physical line.
+
+2022-04-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Rename `TFLAG` macro, which means "tmac flag", to
+ `MFLAG`, because it expands to `-M` options to groff, not the
+ `-T` option, which can be bewildering.
+ * doc/doc.am (DOC_GROFF): Update expansion site.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Rename `DOC_GROFF_ONLY` to `DOC_GROFF`.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor. Drop ghastly hack used to get file
+ names into troff diagnostics when reading from standard input.
+ We've refactored so that it no longer does, making the hack
+ unnecessary. For the same reason, no users of the `DOC_GROFF`
+ macro remain, so delete it. Add comments to explain what
+ `DOC_SED` and `DOC_GROFF_ONLY` are for.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor.
+ (doc/pic.html, doc/webpage.html): Drop indirection of source
+ document through `DOC_SED` macro. It was not necessary since
+ neither of these documents are parameterized in configuration
+ options (that is, they don't contain @VERSION@ or @g@).
+
+2022-04-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Trivially refactor.
+ (doc/webpage.html): Tidy up dependency list. Create directory
+ using the same macro interpolation we use to change into it.
+
+2022-04-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor and fix error in builds in remote
+ out-of-source-tree builds exposed by pending commit and `make
+ distcheck`. The images generated for the pic.html and
+ webpage.html files were being built in the wrong directory, and
+ subsequently not found by an install rule.
+ (imagedir): Add comment explaining purpose of macro. It should
+ _not_ be used with any file specifications relative to the
+ source or build trees--it is for installation directories only.
+ (htmldocimagedir, exampleimagedir): Drop macros.
+
+ (doc/pic.html, doc/webpage.html): Replace interpolations of
+ `imagedir` with literal "img", since these files are being
+ generated within the build tree: the directory name is known.
+
+ (mostlyclean_doc, install_doc_htmldoc, install_doc_examples):
+ Replace interpolations of `htmldocimagedir` relative to
+ `doc_builddir` with "img" literals.
+
+ (install_doc_htmldoc, uninstall_doc_htmldoc): Interpolate
+ concatenation of `htmldocdir` and `imagedir` instead of
+ `htmldocimagedir` (relative to `DESTDIR`).
+ (install_doc_examples, uninstall_doc_examples): Interpolate
+ concatenation of `exampledir` and `imagedir` instead of
+ `exampleimagedir` (relative to `DESTDIR`).
+
+2022-04-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor. Relocate "doc/grnexampl.ps" target to
+ group it with other me(7) documents. Put addition of
+ "doc/examples.stamp" to `MOSTLYCLEANFILES` adjacent to its
+ target rule. Relocate same rule so that it precedes the target
+ depending on it (make(1) might not benefit from this, but human
+ readers can).
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor.
+ (DOC_GROFF_ONLY): Drop preprocessor options from groff command.
+ This macro is now, simply, a way to run the in-tree groff: no
+ assumptions about preprocessors, macro packages, or output
+ device are made.
+ (doc/pic.html, doc/webpage.html): Add only necessary
+ preprocessor options after expansion of `DOC_GROFF_ONLY`.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor. Add explicit dependencies of compiled
+ man page documents on preprocessors needed to generate them. In
+ their target rules, explicitly use groff's preprocessor options,
+ freeing us up to simplify the `DOC_GROFF_ONLY` macro.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Rationalize dependencies. Drop dependency of
+ `PROCESSEDEXAMPLEFILES` and `PROCESSEDDOCFILES` on expansion of
+ `hdtbltmac_DATA`, because nothing in this directory uses the
+ hdtbl package. Move dep of same expansions on "gnu.eps" to
+ "doc/webpage.html", which actually uses it. Put the numerous
+ dependencies of "doc/pic.html" and "doc/webpage.html" in a
+ parallel ordering so that they are easier for humans to
+ evaluate. These targets' dependencies on `bin_PROGRAMS` and
+ `prefixexecbin_PROGRAMS` are overkill and should be reviewed at
+ a later date.
+
+2022-04-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Refactor use of target and suffix rules.
+ (doc/meintro.me, doc/meintro_fr.me, doc/meref.me): Add target
+ rules, with lengthy, exasperated comment about lack of feature
+ parity in various make(1) implementations.
+ (doc/meintro_fr.ps): Add target rule, as this seems to be the
+ only way to keep GNU Make from ignoring a '_fr.me._fr.ps' suffix
+ rule in favor of '.me.ps', which doesn't call preconv (and
+ doesn't need to--and moreover we don't want to build English
+ me(7) documents with the `-mfr` option). Depend on `preconv`.
+ (doc/webpage.ps): Convert from suffix rule to target rule.
+ (doc/ms.ps, doc/pic.ps, doc/webpage.ps): Add target rules and
+ dependencies.
+ (.ms.ps): Add commented-out suffix rule (since nothing uses it,
+ but might in the future).
+ (doc/meintro_fr.ps, .me.ps, doc/pic.ps, doc/webpage.ps): Migrate
+ expansions of `DOC_GROFF` to `DOC_GROFF_ONLY` to prepare for a
+ forthcoming simplification.
+
+2022-04-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Clean generated doc files better. doc/me*.me were
+ getting left behind in the build tree.
+ (MOSTLYCLEANFILES): Add `GENERATEDDOCFILES`. This includes
+ `DOC_GNU_EPS`, so...
+ (clean_maintdoc): Drop phony target that manually removes it.
+ (maintainer-clean-local): Drop dependency on foregoing.
+
+2022-04-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/xditview/xditview.am (install_xditview)
+ [!WITHOUT_X11]: Stop backing up existing "GXditview" and
+ "GXditview-color" application defaults files. There is no
+ symmetric restoration of them in the uninstall target, and it
+ seems like unjustifiable complexity to add such. These are
+ groff-specific file names, installed (by default) to /usr,
+ not /etc, so they are not going to be "configuration files" in
+ Debian-based systems, for example (and likely not elsewhere).
+ There are other ways to supersede application defaults for
+ programs using the X Toolkit Intrinsics.
+
+2022-04-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Stop treating "gnu.eps" as an "example" file; it
+ is also used by pdfmark's cover.ms, which is ordinary
+ documentation. We therefore must not omit it when building.
+ (install-data-hook): Add dependency on new phony target,
+ "install_doc_gnu_eps".
+ (install_doc_examples): Move installation of "gnu.eps" from
+ here...
+ (install_doc_gnu_eps): ...to here. Also refactor the loop we
+ use to locate the file to follow a more idiomatic pattern.
+
+2022-04-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (dist-info-bits, install_infodoc, dist-gnueps): Fix
+ code style nit: use consistent "brace style" in conditionals and
+ loops.
+
+2022-04-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (mostlyclean_doc): When cleaning, try harder to
+ remove the image directory created by the "pic.html" and
+ "webpage.html" targets.
+
+2022-04-02 Ingo Schwarze <schwarze@openbsd.org>
+
+ * doc/doc.am: Stop installing doc/meintro.me.in,
+ doc/meintro_fr.me.in, and doc/meref.me.in.
+
+2022-03-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/webpage.ms: Die horribly if `PSPIC` call fails.
+
+2022-03-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pspic.tmac (pspic*error-hook): Define (as empty).
+ * man/groff_tmac.5.man (Auxiliary packages) <pspic>: Document.
+ * NEWS: Add item.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/webpage.ps): Relocate target rule.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/pdfpic_does-not-choke-on-bad-pdfinfo-output.sh:
+ * tmac/tests/pdfpic_falls-back-to-PSPIC.sh: Remove output file
+ even when skipping test. Quote `fail` variable when checking it
+ with `test -z`.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_tmac.7.man (Auxiliary packages): Tweak sboxes
+ documentation to imply ms dependency.
+
+ Fixes <https://savannah.gnu.org/bugs/?62062>.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (an*bookmark): Trivially refactor. Now that
+ we're no longer doing arithmetic on our first argument, simplify
+ our definition. Made possible by commit 3baf0e2f3, 23 February.
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.cpp (detect_file_encoding): Demote
+ an error diagnostic to a debugging message. libuchardet has no
+ man page, and inspecting the source of the
+ `uchardet_handle_data` function we find that it effectively
+ returns a Boolean value (if the result of a
+ `reinterpret_cast`(!) is not `NS_OK`). This is useless
+ information for a user-facing tool. We're designed to muddle on
+ regardless (see preconv(1)).
+
+2022-03-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grodvi/dvi.cpp (dvi_printer::set_color)
+ (draw_dvi_printer::fill_next):
+ * src/devices/grops/ps.cpp (output::put_color):
+ * src/libs/libgroff/color.cpp (color::print_color): Construct
+ doubles instead of casting to them.
+
+2022-03-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [doc]: Refactor handling of "gnu.eps" file.
+
+ * doc/doc.am: Put "gnu.eps" in a Make macro, `DOC_GNU_EPS`.
+ ($(PROCESSEDEXAMPLEFILES) $(PROCESSEDDOCFILES),
+ doc/webpage.html, install_doc_examples): Migrate dependency to
+ `DOC_GNU_EPS`.
+ (doc/webpage.ps): Add (missing) dependency on `DOC_GNU_EPS`.
+ (DOC_GROFF_ONLY): Drop `-I` flag; it's not necessary given the
+ following.
+ (.ms.ps): Drop `-mwww` argument from suffix rule. A truly
+ generic ms document won't need it.
+ (doc/webpage.ps): Add target rule. Include `-mwww` argument.
+ (doc/webpage.ps, doc/webpage.html): Pass `-I` option to
+ `DOC_GROFF` and `DOC_GROFF_ONLY` (respectively) to enable
+ location of "gnu.eps" file. Search the build and source trees'
+ "doc" directories because the file can be generated as part of
+ the build or can come with the distribution archive.
+ (EXTRA_DIST): Drop redundant inclusion of "doc/gnu.xpm".
+ (clean_maintdoc): Add phony target to dispose of `DOC_GNU_EPS`.
+ (maintainer-clean-local): Depend on "clean_maintdoc".
+
+ * tmac/tests/pdfpic_does-not-choke-on-bad-pdfinfo-output.sh:
+ * tmac/tests/pdfpic_falls-back-to-PSPIC.sh: Update tests to look
+ for "gnu.eps" in "doc" directory of build tree. Give generated
+ files distinguishable names so their tests can run concurrently.
+
+2022-03-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Add new macro `PROCESSEDDOCFILES_PS` to isolate
+ names of targets in PostScript format. Expand this macro in
+ definition of `PROCESSEDDOCFILES` and use it to move PostScript
+ font description file dependencies of the latter and
+ `PROCESSEDEXAMPLEFILES` to the former. (At present, the
+ dependency might seem superfluous, since those files are in the
+ source distribution, but it's conceivable that in the near
+ future, they will be produced at build time from Adobe font
+ metric files; see font/devps/generate/Makefile). The "pic.html"
+ and "webpage.html" targets already had such a dependency because
+ of the way grohtml (pre-grohtml) works.
+
+2022-03-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * INSTALL.extra: Add a section on uninstalling.
+
+2022-03-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Create target rule for "doc/grnexampl.ps" instead
+ of relying on a suffix rule. Explicitly depend on grn and eqn
+ executables. Produce output using their groff flags, "-ge".
+
+2022-03-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdfpic.tmac (PDFPIC): Fix breakage when no temporary
+ directory environment variables are defined: actually use string
+ interpolation syntax in comparand to output comparison
+ operator. Problem introduced by me in commits adc1999af and
+ 24900cf6d, 15 February.
+
+2022-03-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devX100-12/devX100-12.am:
+ * font/devX100/devX100.am:
+ * font/devX75-12/devX75-12.am:
+ * font/devX75/devX75.am: Fix in-tree build; expand `fontdir`
+ instead of `abs_top_builddir` Make macro when defining Automake
+ variable for generated artifacts. Problem introduced by me in
+ commit 3c82cbbfe, 27 February. Thanks to Robert Goulding for
+ the report.
+
+2022-03-22 Ingo Schwarze <schwarze@openbsd.org>
+
+ * doc/doc.am: delete redundant "SUFFIXES +=" line
+
+2022-03-22 Ingo Schwarze <schwarze@openbsd.org>
+
+ * doc/doc.am: fix non-portable syntax in the meintro_fr.ps
+ target: This rule requires DOC_GROFF and hence $<, so turn it
+ into a suffix rule.
+
+2022-03-22 Ingo Schwarze <schwarze@openbsd.org>
+
+ * doc/doc.am: fix non-portable syntax in the doc/me*.me targets:
+ POSIX does not define the meaning of $< in non-suffix rules, so
+ use the portable $? instead. This is adequate here because each
+ of these three rules has exactly one prerequisite.
+
+2022-03-22 Ingo Schwarze <schwarze@openbsd.org>
+
+ * doc/doc.am: fix non-portable syntax in the groff-man-pages.*
+ targets by using DOC_GROFF_ONLY rather than DOC_GROFF in order
+ to not use $< outside a suffix rule; DOC_GROFF functionality is
+ not needed here in the first place.
+
+2022-03-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac:
+ * tmac/doc.tmac: Stop remapping input hyphens on `utf8` device.
+
+2022-03-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac: Stop remapping ` and ' on `utf8` output device.
+ Aligns mdoc(7) with commit 697e6db7f, 19 October 2020 (for
+ man(7)).
+
+2022-03-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Fix bug introduced in commit
+ 0d451902c, 10 March. Don't store a newline in the version
+ string. Put `\n` in its interpolation context as necessary.
+
+2022-03-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Install ptx.tmac.
+
+ * tmac/tmac.am (TMACNORMALFILES): Add it.
+ * NEWS: Report availability.
+
+ Fixes <https://savannah.gnu.org/bugs/?62201>. Thanks to Ralph
+ Corderoy for the report.
+
+2022-03-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Drop ditroff(7) document. It says nothing that is not covered
+ elsewhere.
+
+ * man/ditroff.7.man: Delete.
+ * doc/doc.am (GROFF_MAN_PAGES):
+ * man/man.am (man7_MANS, EXTRA_DIST): Stop processing, shipping.
+ * src/roff/groff/groff.1.man: Drop cross reference to it.
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?61817>.
+
+2022-03-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [preconv]: Trivially refactor.
+
+ * src/preproc/preconv/preconv.cpp: Use diagnostic message
+ functions from libgroff where possible. Explain in a comment
+ why we don't use `debug()`. Boolify and rename some variables,
+ and use Boolean literals to assign to them.
+ debug_flag -> is_debugging
+ invalid_warning -> emit_invalid_utf8_warning
+ incomplete_warning -> emit_incomplete_utf8_warning
+ Rename `expected_bytes` to `expected_byte_count`. Except for
+ the debugging flag, these are all members of `struct
+ conversion`.
+ (get_tag_lines): Migrate to `warning()`.
+ (detect_file_encoding): Migrate to `error()` and `fatal()`, as
+ appropriate.
+ (utf8::invalid, utf8::incomplete, get_tag_lines): Don't break a
+ line in the middle of a diagnostic; doing so frustrates grepping
+ and necessarily makes an assumption about the terminal width.
+
+2022-03-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Trivially refactor.
+
+ * src/roff/troff/input.cpp: Rename global variable
+ `have_string_arg` to `have_multiple_params` and demote it from
+ an integer to a Boolean. Assign Boolean literals to it.
+ (read_long_escape_parameters, get_copy, token::next): Do it.
+
+2022-03-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #62191.
+
+ * src/preproc/tbl/main.cpp (table_input::get): Increment input
+ line counter when encountering an escaped newline; this fixes
+ inaccurate diagnostics from the formatter at any point in a
+ document after a line-continued row of table data. Also drop a
+ "perhaps" comment. I tested the surmise (setting the FSM state
+ to "START"), and it results in bad formatting.
+
+ Fixes <https://savannah.gnu.org/bugs/?62191>. Problem appears
+ to date back to groff 1.02 (June 1991) at the latest.
+
+2022-03-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #62191.
+
+ * src/preproc/tbl/tests/count-continued-input-lines.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2022-03-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Environments): Clarify environment handling.
+ * man/groff.7.man (Environments): Add new section.
+
+ Fixes <https://savannah.gnu.org/bugs/?62036>. Thanks to Dave
+ Kemper for the report and a suggested patch.
+
+2022-03-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (initialization): Define `@b` as empty if
+ formatting for HTML, because no page breaks occur in that
+ format.
+
+ Fixes <https://savannah.gnu.org/bugs/?62039>.
+
+2022-03-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grodvi/dvi.cpp (usage): Align usage message with
+ man page; disclose `-l` option.
+
+2022-03-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grodvi/dvi.cpp (main):
+ * src/devices/grops/ps.cpp (main): Update diagnostic:
+ characterize bad `-w` argument as "invalid", not "bad", and
+ explicitly report it as ignored.
+
+ * src/devices/grodvi/dvi.cpp (main): Report invalid parameter
+ in `-w` diagnostic.
+
+2022-03-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grodvi/dvi.cpp (dvi_printer::set_color)
+ (draw_dvi_printer::fill_next):
+ * src/devices/grops/ps.cpp (output::put_color):
+ * src/libs/libgroff/color.cpp (color::print_color): Explicitly
+ cast `enum` divisors to `double`; quietens
+ `-Wdeprecated-enum-float-conversion` warnings.
+
+ Fixes <https://savannah.gnu.org/bugs/?61964>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-03-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Recover more quickly from missing `EE` calls.
+ (initialization): Define new strings, `an*body-family` and
+ `an*example-family` to house the font families used in these
+ rendering contexts.
+ (TH, SH, SS): Restore the font family to `an*body-family`.
+ (TH): Set font style to roman as well.
+ (EX): Change to `an*example-family` instead of literal "C".
+
+ Fixes <https://savannah.gnu.org/bugs/?62187>.
+
+2022-03-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Test register for existence before using it to
+ set hyphenation mode. A site troffrc or other local
+ customization might remove the register (which is guaranteed to
+ be set under the stock configuration) and, perversely, Heirloom
+ Doctools troff interprets a `do` request, instead of ignoring it
+ as a historical troff implementation would, so if they borrow
+ our me(7) changes, the register would be unset, interpolate
+ zero, and hyphenation would wind up disabled.
+
+ Fixes <https://savannah.gnu.org/bugs/?62181>. Thanks to Dave
+ Kemper for the report.
+
+2022-03-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Rename test to apply naming scheme.
+
+ * tmac/tests/pdfpic_falls_back_to_PSPIC.sh: Rename this...
+ * tmac/tests/pdfpic_falls-back-to-PSPIC.sh: ...to this.
+ * tmac/tmac.am (tmac_TESTS): Use new name.
+
+2022-03-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/ps.cpp (usage): Align usage message with man
+ page synopsis.
+
+2022-03-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Input Line Traps): Fix error; input traps do
+ _not_ ignore control lines. Error appears to have crept in with
+ the first version of our Texinfo manual, shipped with groff 1.14
+ {December 1999}.
+
+2022-03-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devps/devps.am: Rename targets.
+ (fonts):
+ (devps_fonts): Rename these...
+ (maintainer-font-descriptions):
+ (devps_font-descriptions): ...to these. Add comments explaining
+ what they're for and why they aren't used in a build.
+
+ * font/devps/generate/Makefile: Add `outdir` variable to store
+ destination directory of font description files, and update all
+ targets that write artifacts to use this directory. This makes
+ the targets "phony", which I don't regard as a problem since the
+ generated artifacts are kept under source control, and this
+ isn't really a user-facing script (even though it gets
+ installed). I think there is a good chance that this will
+ become a shell script, because to avoid regressions we need to
+ generate the font descriptions using both the 229-glyph and
+ 314-glyph versions of the Adobe fonts' AFM files (so that we get
+ wider glyph coverage _and_ more kerning pair data) and we need
+ to add kerning information for the ellipsis (Savannah #58897).
+ (symbolsl.afm): Revise generation process to be sensitive to
+ failure.
+
+2022-03-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devps/symbolsl.afm: New file.
+ * font/devps/devps.am (EXTRA_DIST): We have long shipped
+ "symbol.afm" with the distribution archive--I don't see why we
+ don't ship "symbolsl.afm" and "zapfdr.afm" as well (metrics for
+ `SS`, the slanted symbol font, and ZDR, reversed Zapf Dingbats).
+ Like the Type 1 font descriptions themselves, this file is
+ updated only in "maintainer mode", not as part of the build.
+ Moreover, these fonts are not part of the PostScript level 2
+ base 35 fonts so their AFM files are unlikely to be readily
+ available elsewhere.
+
+2022-03-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Trivially refactor. Store the
+ program's version string in scalar `afmtodit_version` and use
+ that in the usage message and comment embedded in the output.
+
+2022-03-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Fix code style nits. Migrate
+ to the shebang line style we use in more recently modified Perl
+ scripts. Replace `-w` with `use warnings;`. Shorten an output
+ comment since the groff version string can grow long (see commit
+ 1264531310, 14 January 2018).
+
+2022-03-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Stop writing full file name to
+ the generated font description file as the "name" (i.e., don't
+ include directory components).
+
+ Fixes <https://savannah.gnu.org/bugs/?62150>. Thanks to Dave
+ Kemper for the discussion and code review.
+
+2022-03-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.1.man:
+ * src/utils/afmtodit/afmtodit.pl: Update and align man page
+ synopsis, option descriptions, and command usage output.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/X.tmac: Redirect `fchar` requests for \[lq] and \[rq] to
+ \[dq] since the X11 Type 1-based text fonts encode ISO 8859-1
+ {Latin-1} and don't have typopgrapher's quotes. Drop `fchar`
+ request for \[aq], which _is_ represented, per recent changes.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * /font/devX100-12/CB:
+ * /font/devX100-12/CBI:
+ * /font/devX100-12/CI:
+ * /font/devX100-12/CR:
+ * /font/devX100-12/HB:
+ * /font/devX100-12/HBI:
+ * /font/devX100-12/HI:
+ * /font/devX100-12/HR:
+ * /font/devX100-12/NB:
+ * /font/devX100-12/NBI:
+ * /font/devX100-12/NI:
+ * /font/devX100-12/NR:
+ * /font/devX100-12/TB:
+ * /font/devX100-12/TBI:
+ * /font/devX100-12/TI:
+ * /font/devX100-12/TR:
+ * /font/devX100/CB:
+ * /font/devX100/CBI:
+ * /font/devX100/CI:
+ * /font/devX100/CR:
+ * /font/devX100/HB:
+ * /font/devX100/HBI:
+ * /font/devX100/HI:
+ * /font/devX100/HR:
+ * /font/devX100/NB:
+ * /font/devX100/NBI:
+ * /font/devX100/NI:
+ * /font/devX100/NR:
+ * /font/devX100/TB:
+ * /font/devX100/TBI:
+ * /font/devX100/TI:
+ * /font/devX100/TR:
+ * /font/devX75-12/CB:
+ * /font/devX75-12/CBI:
+ * /font/devX75-12/CI:
+ * /font/devX75-12/CR:
+ * /font/devX75-12/HB:
+ * /font/devX75-12/HBI:
+ * /font/devX75-12/HI:
+ * /font/devX75-12/HR:
+ * /font/devX75-12/NB:
+ * /font/devX75-12/NBI:
+ * /font/devX75-12/NI:
+ * /font/devX75-12/NR:
+ * /font/devX75-12/TB:
+ * /font/devX75-12/TBI:
+ * /font/devX75-12/TI:
+ * /font/devX75-12/TR:
+ * /font/devX75/CB:
+ * /font/devX75/CBI:
+ * /font/devX75/CI:
+ * /font/devX75/CR:
+ * /font/devX75/HB:
+ * /font/devX75/HBI:
+ * /font/devX75/HI:
+ * /font/devX75/HR:
+ * /font/devX75/NB:
+ * /font/devX75/NBI:
+ * /font/devX75/NI:
+ * /font/devX75/NR:
+ * /font/devX75/TB:
+ * /font/devX75/TBI:
+ * /font/devX75/TI:
+ * /font/devX75/TR: Regenerate font descriptions with xtotroff,
+ using updated ISO-8859_1 map. \[aq] and \[oq] are now aliases
+ of "'" and \[ga] is an alias of "`". This change probably
+ should have been made when the X11 fonts were corrected in
+ XFree86 4.0 (March 2000). See
+ <https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html>.
+
+ Fixes <https://bugs.debian.org/243238>.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libxutil/DviChar.c (ISO_8859_1_map): Fix incorrect
+ assignment of Latin-1 grave accent to \[oq] special character;
+ reassign it to the neutral apostrophe. Map \[aq] to neutral
+ apostrophe. Map \[ga] to '`'.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/xtotroff/xtotroff.1.man (Options) <-d>: Document new
+ option.
+ * src/utils/xtotroff/xtotroff.c (usage): Align with man page.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Filling and Adjustment):
+ Explicitly identify the page offset as an output line property
+ that is not determined until a break occurs.
+
+ (Line Layout) <po>: Correct error; the page offset for terminal
+ devices is set by "tty.tmac", not "troffrc". (The manual has
+ been wrong for a long time; we've had it in tty.tmac since James
+ Clark put it there in 1992.) Recast and tighten wording. Drop
+ the word "horizontal"; there is no vertical page offset (as
+ such) in *roff. Replace hand-waving about unexpected results
+ with a description of the formatter's behavior. Document
+ request behavior without an argument before getting into the
+ weeds (and CSTR #54 errata). Migrate terminology from "scaling
+ indicator" to "scaling unit".
+
+ Fixes <https://savannah.gnu.org/bugs/?58035>.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Expressions): Expand '|' operator explanation.
+ Split discussion of its application into horizontal and vertical
+ contexts. Add example of vertical usage.
+
+ Fixes <https://savannah.gnu.org/bugs/?60820>.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp: Trivially refactor. Drop `#define`
+ that was working around a GCC 2.95-era libstdc++ problem.
+ Shorten long line.
+ (get_char_for_escape_parameter): Demote parameter from `int` to
+ `bool` and use Boolean literal for default argument. Annotate a
+ null pointer constant.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Rename some internal functions.
+
+ * src/roff/troff/input.cpp: Do it.
+ (read_escape_name):
+ (read_long_escape_name):
+ (read_two_char_escape_name):
+ (get_char_for_escape_name):
+ (read_increment_and_escape_name): Rename these...
+ (read_escape_parameter):
+ (read_long_escape_parameters):
+ (get_char_for_escape_parameter):
+ (read_two_char_escape_parameter):
+ (read_increment_and_escape_parameter): ...to these.
+ (read_two_char_escape_parameter, read_long_escape_parameters,
+ read_escape_parameter, read_increment_and_escape_parameter,
+ get_copy, token::next): Update call sites.
+
+2022-03-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (get_char_for_escape_name): Recast
+ diagnostic messages to more accurately refer to escape
+ "sequence" rather than "name". "Name" is a confusing term here,
+ given that it also applies to a group of objects sharing a name
+ space (natch): requests, macros, strings, and diversions.
+ Further, the "escape name" cited by these diagnostics is not the
+ escape function selector; that is, the character after the
+ escape character which determines how the escape sequence is to
+ be interpreted. These diagnostics are only thrown after that
+ function is known, however, when parsing of an escape sequence
+ parameter is attempted.
+ (input_char_description): Drop leading articles ("a") from
+ input character descriptions, to economize in diagnostic
+ messages this function helps produce.
+ (non_empty_name_warning): Use zero copula for economy.
+
+ * src/roff/troff/input.cpp (empty_name_warning, read_size)
+ (token::get_char, check_missing_character):
+ * src/roff/troff/number.cpp (start_number, parse_term): Recast
+ messages to more consistently use the form "expected X, got Y"
+ where feasible.
+
+ * src/roff/troff/number.cpp (start_number): Say "numeric
+ expression missing" instead of "missing number"; we don't
+ require a terminal symbol in the expression grammar here. Also
+ use `tok.description()` where we can, and remove assumption that
+ the escape character is the default.
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (AT, UC, HP): Add deprecation warnings. For the
+ last, only do so if we're not inside a synopsis (SY/YS), since
+ our definition of `SY` calls `HP` internally. (This does seem
+ hypocritical. Perhaps if we knew the correct CSS incantation
+ to speak in grohtml, we could un-deprecate `HP`.)
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.an (M4CHECK): Rename stamp file to make its purpose
+ clearer.
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Tweak customization management.
+
+ * tmac/an.tmac: Load "man.local" with `msoquiet` request, so
+ people can get rid of the file if they don't need it.
+ (PT, BT): Define these macros only if not already defined. This
+ is slightly less paranoid but far more ergonomic, given
+ interactions with the andoc wrapper. Now user-defined page
+ header traps (PT) defined in man.local can take effect on the
+ first page rendered.
+
+ * tmac/groff_man.7.man.in (Hooks): Document how to remove page
+ headers and/or footers entirely.
+
+ Fixes <https://savannah.gnu.org/bugs/?61954>.
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer,mm]: Add and use `ref*reset` macro to clean up between
+ bibilography entries.
+
+ * tmac/refer.tmac (]-): Move string clean up logic from here...
+ (ref*reset): ...to this new macro. Now we can also use it...
+
+ * contrib/mm/refer-mm.tmac (ref*][-first-pass): ...here.
+
+ Problem appears to date back to refer-mm.tmac's introduction in
+ January 2011. Thanks to Bjarni Ingi Gislason for the root-cause
+ analysis and proposed fix, to which I applied the DRY principle
+ and added a reset of `ref*string` as well.
+
+ Fixes <https://savannah.gnu.org/bugs/?60657>.
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mm]: Regression-test Savannah #60657.
+
+ * contrib/mm/tests/remove-stale-bib-entry-data.sh: Do it.
+ * contrib/mm/tests/artifacts/60657.ref: Add new file.
+ * contrib/mm/mm.am (mm_TESTS): Run test.
+ (EXTRA_DIST): Ship test artifact in distribution archive.
+
+ Thanks to Bjarni Ingi Gislason for the straightforward
+ bug reproducer.
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Report correct line number in bibliography file
+ diagnostics.
+
+ * src/preproc/refer/refer.cpp (do_bib): Set line number to 1
+ upon successfully opening a bibliography file.
+
+ Problem appears to date back to groff 1.02 (June 1991) at the
+ latest.
+
+ Fixes <https://savannah.gnu.org/bugs/?62142>.
+
+2022-03-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [refer]: Regression-test Savannah #62124.
+
+ * src/preproc/refer/tests/report-correct-line-numbers.sh: Do it.
+ * src/preproc/refer/tests/artifacts/62124.ref: Add new file.
+ * src/preproc/refer/refer.am (refer_TESTS): Run test.
+ (EXTRA_DIST): Ship test artifact in distribution archive.
+
+2022-03-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/div.cpp
+ (top_level_diversion::transparent_output):
+ * src/roff/troff/input.cpp (transparent_translate): Suppress two
+ troublesome (i.e., more or less spurious) error diagnostics
+ about transparent output/throughput unless the environment
+ variable `GROFF_ENABLE_TRANSPARENCY_WARNINGS` is present. This
+ is a bit of a bodge until we get diversion sanitization worked
+ out. See Savannah #61407.
+
+2022-03-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [preconv]: Stop assuming that the default input stream, or an
+ explicit '-' operand, is the only unseekable stream. Check
+ instead.
+
+ * src/preproc/preconv/preconv.cpp (do_file): Add new Boolean
+ `is_seekable`. Test the input stream with `fseek()` per a
+ suggestion from Ingo Schwarze. Report unseekability in debug
+ output and skip coding tag and uchardet tests altogether
+ {precisely paralleling our description in the preconv(1) man
+ page}. Also update debugging output to say "<standard input>"
+ instead of "-".
+
+ Fixes <https://savannah.gnu.org/bugs/?62131>.
+
+2022-03-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [preconv]: Regression-test Savannah #62131.
+
+ * src/preproc/preconv/tests/do-not-seek-the-unseekable.sh: Do
+ it.
+ * src/preproc/preconv/preconv.am (preconv_TESTS): Run test.
+
+2022-03-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (process_format): Update diagnostic
+ to recognize that a font mounting position is also an acceptable
+ argument to the 'f' column modifier.
+
+2022-02-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Refactor X11 font description generation. Integrate it with our
+ "new" (post-2014) Automake-based build system.
+
+ * src/utils/xtotroff/Makefile.in: Delete relic of old build
+ system. Also, it had a bug: it generated X11 output device
+ 'DESC' files with a "unitwidth 10" directive even for the "-12"
+ devices, which is not correct (the in-tree DESC files we've been
+ shipping for years were nevertheless correct, apparently fixed
+ by hand by James Clark in groff 1.07 [March 1993]).
+
+ * src/utils/xtotroff/xtotroff.am: Define `xtotroff` variable for
+ use by X11 font description generation targets below.
+
+ * font/devX100-12/devX100-12.am:
+ * font/devX100/devX100.am:
+ * font/devX75-12/devX75-12.am:
+ * font/devX75/devX75.am: Add new (phony) targets, variously
+ named "devX{100,100_12,75,75_12}", to generate the corresponding
+ output device's DESC file and run xtotroff(1) to generate its
+ font description files. Be sure to set the correct "unitwidth"
+ for the "-12" devices. Add new dependency-only rule
+ "maintainer-font-descriptions" depending on these new targets
+ for convenience (and future expansion to devps and devlj4).
+
+ * FOR-RELEASE: Document existence of
+ "maintainer-font-descriptions" Make target and when to run it.
+
+ Running this target with the aforementioned bug fix, overwriting
+ the in-tree DESC and font description files using data gathered
+ from a running X server, results in no changes whatsoever. Say
+ what you will about X11 core font technology--it's stable.
+
+2022-02-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Rename and ship "FontMap-X11". xtotroff(1) is not very useful
+ without a font name mapping file to read. To date it has been
+ available only in the source distribution. Remedy that. The
+ file is placed directly in the groff font directory alongside
+ the device directories because it applies to four different
+ devices, and four copies of this data are not required.
+
+ * src/devices/xditview/FontMap: Rename to...
+ * src/devices/xditview/FontMap-X11: ...this.
+
+ * LICENSES:
+ * src/devices/xditview/xditview.am (EXTRA_DIST): Reflect rename.
+
+ * src/devices/xditview/xditview.am (install_xditview
+ [!WITHOUT_X11], uninstall_xtdiview): (Un-)install it.
+
+ * src/utils/xtotroff/xtotroff.1.man (Files): Add section
+ documenting the presence and purpose of this file.
+
+2022-02-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [xtotroff]: Add `-d` option to produce font description files in
+ specified directory.
+
+ * src/utils/xtotroff/xtotroff.c: Do it. Add global `destdir`
+ pointer.
+ (xtotroff_exit): Add new function to clean up storage allocated
+ by `strdup()` (below) for destination directory.
+ (MapFont): Introduce new variable `file_name`, into which we
+ assemble a destination file name from `destdir` (if not null)
+ and the troff font name. Handle memory allocation failure (by
+ carefully dying). Free allocated storage on success and failure
+ paths out of the function.
+ (usage): Document new `-d` option.
+ (main): Instruct `getopt_long` to expect a `-d` flag with an
+ argument. Use `strdup()` to make a copy of any such option
+ argument. Call `xtotroff_exit()` instead of `exit()`.
+
+ * src/utils/xtotroff/xtotroff.1.man: Document new `-d` option.
+
+2022-02-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [xtotroff]: Trivially refactor.
+
+ * src/utils/xtotroff/xtotroff.c: Boolify. Include `stdbool.h`
+ and `errno.h` headers.
+ (charExists, CanonicalizeFontName, FontNamesAmbiguous, MapFont):
+ Boolify. Demote return type from `int` to `bool` and return
+ Boolean instead of integer literals.
+ (FontNamesAmbiguous, main): Reorder equality comparisons with
+ simple left-hand sides to avoid inadvertent lvalue assignments.
+ (FontNamesAmbiguous, MapFont): Refer to font name as "invalid",
+ not "bad", in diagnostic messages.
+ (MapFont, main): Use `strerror()` instead of `perror()` so that
+ diagnostics include the program name and an indication of
+ problem severity.
+ (MapFont): Compare `FILE` stream pointer to `NULL` instead of
+ treating it as a Boolean.
+ (main): Use `EXIT_SUCCESS` and `EXIT_FAILURE` constants from C
+ library instead of integer literals for exit status.
+
+2022-02-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pic]: Fix "unused result" compiler warning.
+
+ * src/preproc/pic/pic.ypp (placeless_element) <SH>: Check return
+ value of `system()` to quieten `-Wunused-result` warning; if it
+ is less than zero, report it to the standard error stream.
+
+2022-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/safer.tmac: Drop file from distribution. It contained
+ only comments.
+ * tmac/tmac.am (TMACNORMALFILES): Delete reference.
+ * NEWS: Add item. Suggest two workarounds for its absence.
+
+ Fixes <https://savannah.gnu.org/bugs/?61831>.
+
+2022-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac (initialization): Drop definition of
+ `doc-curr-size` register. It is no longer needed since nothing
+ internal to the package now changes the type size.
+
+ * tmac/doc.tmac (Fl, doc-print-recursive, doc-print-prefixes)
+ (doc-generic-macro, Ar, Cd, doc-do-func-decl, Fd, In, Nm, Pa)
+ (Tn, doc-enclose-string, Ef, Bd, doc-save-global-vars)
+ (doc-restore-global-vars, doc-diag-list, Xr, Dl, Vt, Ft, Fa)
+ (doc-do-func, Fn, doc-do-func-args, Fo, Fc, %A, %B, %C, %D, %I)
+ (%J, %N, %O, %P, %Q, %R, %T, %U, %V, doc-do-reference, Hf, An)
+ Lk):
+ * tmac/mdoc/doc-common (Sh, Ss, Rd):
+ * tmac/mdoc/doc-syms (Ux, Bx, At, Dx, Fx, Nx, Ox, Bsx, St, Lb):
+ Drop interpolations of the string and comments documenting that
+ each macro has a side effect on the type size.
+
+2022-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/doc.tmac (Tn):
+ * tmac/mdoc/doc-syms (Ux, Bx): Stop interpolating string
+ `doc-Tn-font-size` to set macro arguments at a smaller type
+ size. This leaves the string without a purpose, so...
+
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Drop definitions of `doc-Tn-font-size`.
+
+ * tmac/mdoc/doc-syms: Drop interpolations of that string from
+ numerous other string definitions.
+
+ Fixes <https://savannah.gnu.org/bugs/?60616>.
+
+2022-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Revert addition of man(7) `BD` register. This feature, which I
+ introduced in commit ea3b27102f (31 January) doesn't work
+ because pdf.tmac normalizes the bookmark depth. Embedding a man
+ page in a larger PDF document with appropriately nested
+ bookmarks is a project that will have to await another day (or
+ perhaps already has tools to implement it).
+
+ * tmac/an.tmac: Do it.
+ * tmac/groff_man.7.man.in: De-document it.
+
+2022-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdf.tmac: Add string containing the name of the macro
+ package for use in diagnostic messages.
+ (pdf:warn, pdf:error): Use it.
+
+ Continues the long process of fixing Savannah #52463.
+
+2022-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man,mdoc,me]: Revise hyphenation localization.
+
+ * tmac/an.tmac (an*reset-hyphenation-mode): New macro sets the
+ hyphenation mode appropriate to the locale depending on the
+ values of `cR` (continuous rendering mode) and `HY` (hyphenation
+ enablement); the latter is now interpreted as a Boolean. Define
+ new register `an*hyphenation-mode` reflecting these conditions.
+ (TH): Call the foregoing instead of invoking `hy` request.
+ (MR): Restore hyphenation mode to `an*hyphenation-mode`.
+ (initialization): Simplify; if not defined, set `HY` to 1.
+
+ * tmac/e.tmac (ld): Set the hyphenation mode here instead of in
+ initialization (which already calls this macro). Set the mode
+ to 6 for the benefit of anyone borrowing our me(7) changes, but
+ then immediately change to the mode determined by the
+ localization file.
+
+ * tmac/mdoc/doc-common (doc-hyphen-flags): Set a hyphenation
+ mode appropriate to the locale, depending on the values of `cR`
+ and `HY`.
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff: Simplify initialization; if not defined,
+ set `HY` to 1.
+
+ * tmac/cs.tmac:
+ * tmac/de.tmac:
+ * tmac/en.tmac:
+ * tmac/fr.tmac:
+ * tmac/it.tmac:
+ * tmac/sv.tmac: Before switching locales, set a flag if
+ troublesome value 2 of the hyphenation mode is set so that we
+ can preserve it. Shift man(7) and me(7) logic to follow setup
+ of the new hyphenation mode; for the former, call the new
+ `an*reset-hyphenation-mode`.
+
+ * tmac/groff_man.7.man.in:
+ * tmac/groff_mdoc.7.man: Document updated meaning of `HY`
+ register.
+
+ * NEWS: Add item noting change of man(7) `HY`'s meaning. Update
+ existing item regarding mdoc(7)'s support for it (groff 1.22.4
+ mdoc(7) didn't recognize the register at all).
+
+ Fixes <https://savannah.gnu.org/bugs/?61734> (for real this
+ time?).
+
+2022-02-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Regression-test Savannah #61734.
+
+ * tmac/tests/an_reset-hyphenation-correctly.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_char.7.man (History): Add new section.
+ (See also): Add cross reference to 1976 edition of CSTR #54.
+
+2022-02-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man.in (Document structure macros) <EX, EE>
+ [style]: Add material cautioning writers against asoociating
+ the disablement of filling with some sort of "literal mode".
+ Document still-operational status of inter-sentence space
+ supplementation.
+ (Notes) [style]: Describe an alternative (and macro
+ call-symmetrical) means of using `RS` and `RE` with `TP`.
+
+2022-02-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Add phony targets "man-all" and "man-clean" to
+ {re-}generate and delete all man pages, respectively.
+
+ Arguably fixes <https://savannah.gnu.org/bugs/?61167>.
+
+2022-02-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am (.man): Prefix hyphenation control escape
+ sequences to more configuration-time interpolations to prevent
+ their hyphenation: @DEVICE@, @g@, @INDEX_SUFFIX@, @PAGE@,
+ @TMAC_{AN,M,S}_PREFIX@, @TMAC_MDIR@.
+
+2022-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Refactor `EX` and `EE` macros.
+
+ * tmac/an-ext.tmac: Add new `mC` string to store the font name
+ to be used for example regions. In AT&T device-independent
+ troff, "CW" was a common name, so use that. It is however a
+ terrible fit for groff's font family and style-combination
+ functionality, and is inflexible in the face of font selection
+ requests and escape sequences within the example region. (One
+ either needs to know the names of the fonts available on the
+ output device, or suffer the indignity of mixed constant-width
+ and proportional typefaces.) Relatedly, drop groff-specific
+ font remapping requests.
+ (EX, EE): Ignore definition if GNU troff is the formatter. Drop
+ font family manipulation. Drop specialized logic for groff's
+ DVI output device.
+
+ * tmac/an.tmac (initialization): Resurrect font remapping
+ requests here.
+ (EX, EE): Add new definitions, saving and restoring more state
+ and remapping DVI output device fonts to reflect the absence of
+ CWB and CWBI faces.
+
+2022-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Slightly refactor. Stop using groff's `HY`
+ register to restore the hyphenation mode, since I plan to change
+ its semantics to a Boolean value (see Savannah #61734).
+ Introduce new register `mJ` to store "1" (if not groff) and the
+ current hyphenation mode otherwise. Explain why in a comment.
+ (YS, UE, ME, MR): Restore hyphenation mode using `mJ` instead of
+ `HY`.
+
+2022-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: Trivially refactor. Use a better idiom
+ {seen in James Clark's changes to BSD me(7)} for conditionally
+ defining a (simple) macro.
+
+2022-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tty.cpp (tty_printer::special): Warn upon
+ encountering unrecognized device control commands using the
+ 'tty:' tag.
+
+2022-02-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Remove 'sgr' device control command.
+
+ * src/devices/grotty/tty.cpp (tty_printer::special): Do it.
+ * src/devices/grotty/grotty.1.man (Device control commands):
+ {De-}document it.
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?61561>.
+
+2022-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdfpic.tmac: Add support for Cygwin/MinGW temporary
+ directory conventions.
+
+2022-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdfpic.tmac: Search for temporary directories as groff(1)
+ does, instead of going straight to /tmp.
+ (pdfpic@get-temporary-directory): New function checks each of
+ its arguments for validity as a temporary directory; if one is
+ found, its name is left in `pdfpic*temporary-directory`.
+ (pdfpic@cleanup): Remove strings `pdfpic*temporary-directory`
+ and `pdfpic*temporary-file`.
+ (PDFPIC): Call `pdfpic@get-temporary-directory`, using the
+ contents of the environment variables $GROFF_TMPDIR and $TMPDIR,
+ and then /tmp, in that order. Store the temporary file name in
+ string `pdfpic*temporary-file`. Use this string in subsequent
+ `sy` and `so` requests.
+
+ Fixes <https://savannah.gnu.org/bugs/?62055> for Unix systems.
+
+2022-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Add test for PDFPIC fallback to PSPIC.
+
+ * tmac/tests/pdfpic_falls_back_to_PSPIC.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Tweak PDFPIC test input.
+
+ * tmac/tests/pdfpic_does-not-choke-on-bad-pdfinfo-output.sh:
+ Eliminate unnecessary blank lines from input. Also call gs(1)
+ with '-q' in addition to '-o'. (Why does the latter not imply
+ the former?!) Thanks to Deri James for the advice.
+
+2022-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdfpic.tmac: Slightly refactor.
+ (pdfpic@cleanup, PDFPIC): Rename `pdfpic*file-name` to
+ `pdfpic*file-name-base` since it is not used as a complete file
+ name (but rather a basis for an ".eps" extension).
+ (PDFPIC): When testing PDF file extension, include the "."; a
+ file name like "mxyzptlkpdf" is too dubious to accept. Also
+ explicitly compare `systat` register as equal or not equal to
+ zero, since its truth value is inverted from the expectations of
+ *roff expressions.
+
+2022-02-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdfpic.tmac (PDFPIC): Refactor PDFPIC_NOSPACE handling.
+ Stop shelling out to create, and then sourcing, a temporary file
+ just to obtain the value of an environment variable. groff
+ already has the `\V` escape sequence for that purpose (it's even
+ safe!). Check that the value of $GROFF_PDFPIC_NOSPACE is a
+ valid numeric expression before assigning it to a register.
+ Trivially, use '=' instead of '==' as an equality operator.
+ *roff languages do not use '=' as an assignment operator, and I
+ believe the '==' synonym to be a sop to C programmers.
+
+2022-02-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Stop attempting to adjust pargraph tag lines.
+
+ * tmac/an.tmac (TP): Disable adjustment inside the diversion.
+ (an-write-paragraph-tag): Restore adjustment outside of it.
+
+ Fixes <https://savannah.gnu.org/bugs/?62051>.
+
+2022-02-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (@z): Conceal bare tab after request name (exposed
+ by no longer stripping the macro file). See commit ad0575f20, 9
+ December.
+
+2022-02-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grops,troff]: Migrate to term "scaling unit" in diagnostics.
+
+ * src/devices/grops/ps.cpp (ps_printer::do_import):
+ * src/roff/troff/input.cpp (warnscale_request):
+ * src/roff/troff/number.cpp (parse_term): Do it.
+
+2022-02-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Add nroff mode fallback for `u` macro.
+
+ * tmac/e.tmac (u): On nroff devices, bracket the first argument
+ with \(ul (underline rule) special character escape sequences.
+ {In plain language, '.u "like this"' renders "_like this_".}
+
+ I regard this as a cosmetic and semantic improvement; since the
+ quarter-em vertical motions used in troff mode were ignored in
+ nroff mode, the effect was not underlining but a sort of
+ strike-through, visible only at spaces in the argument. The use
+ of this macro was thus invisible in nroff output if no spaces
+ were present in the argument. This is probably the best we can
+ do without a fatter interface to terminal device capabilities.
+
+2022-02-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Simulate boxed text support on nroff devices with ISO 6429
+ color escape sequences.
+
+ * tmac/e.tmac (bx): Do it. Add further fallback for non-groff
+ formatters in nroff mode, bracketing the boxed argument with '|'
+ glyphs.
+ * doc/meref.me.in: Document it.
+
+ Fixes <https://savannah.gnu.org/bugs/?62038>.
+
+2022-02-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Rename registers `$v` -> `tv`, `$V` -> `dv`.
+
+ * tmac/e.tmac: Do it. Also include much commentary (including
+ some from James Clark in 1992) attempting to illuminate the
+ confusing history (and naming) of `$[rRvV]`.
+
+ * doc/meref.me.in: Document it. Introduce new terms
+ "text vertical spacing" and "display vertical spacing" earlier
+ and use them to condense and clarify discussions of their use.
+
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?61710>.
+
+2022-02-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Deferring Output): Add new node introducing
+ and motivating environments, diversions, and traps.
+
+2022-02-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Add more compatibility mode guards.
+
+2022-02-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/pdf.tmac: Add compatibility mode guards so that we can
+ run even if troff is given the -C option. Resurrect your
+ vintage 1975 Sixth Edition Unix manuals from '.deth' and format
+ them in PDF today!
+
+ Fixes <https://savannah.gnu.org/bugs/?61995>.
+
+2022-02-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac: Prefix diagnostic with package file name
+ literally.
+
+2022-02-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Trivially refactor.
+
+ * tmac/an.tmac (an*localize): Rename to...
+ (an*localize-strings): ...this.
+ (TH): Update call site.
+
+2022-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Present several fundamental concepts.
+
+ * doc/groff.texi (Page Geometry):
+ * man/roff.7.man (Concepts): Add new node/section.
+ - page geometry
+ - basic units
+ - device resolution
+ - drawing position
+ - text baseline
+ - page offset
+ - vertical spacing
+ - page break
+
+ Fixes the remainder of <https://savannah.gnu.org/bugs/?58035>.
+
+2022-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Add page length insufficiency check.
+
+ * tmac/e.tmac (@h): Port Keith Marshall's page length checker
+ from ms(7).
+
+ Fixes <https://savannah.gnu.org/bugs/?61034> and
+ <https://savannah.gnu.org/bugs/?61428>.
+
+2022-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Add test for insufficient page length error.
+
+ * tmac/tests/e_rejects-too-short-page-lengths.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Slightly refactor.
+
+ * tmac/e.tmac (@h): Use groff default scaling operator in
+ conditional expression. Add `do` requests so that the logic for
+ checking the line length works in compatibility mode. Also move
+ misplaced parenthesis in conditional expression.
+
+2022-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Refactor insufficient page length check.
+
+ * tmac/s.tmac (pg@top): Drop extraneous closing parenthesis from
+ numeric expression. Change operator from '>' to '>='; a page
+ length right at the boundary causes a spurious extra page break
+ when a paragraphing macro is used to initialize the document.
+ Condense diagnostic emission using the @error macro instead of
+ duplicating it. Change indentation to fit the style of the rest
+ of the file (use hard tabs). If aborting, truncate the page
+ length to the current vertical position so that we don't
+ uselessly output further vertical space.
+
+2022-02-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Add test for insufficient page length error.
+
+ * tmac/tests/s_rejects-too-short-page-lengths.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-02-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Vertically space delayed text like other annotations.
+
+ * tmac/e.tmac ((d): Set vertical spacing using percentage in
+ `$V` register.
+ ()d): Restore vertical spacing using percentage in `$v`
+ register.
+
+ Fixes <https://savannah.gnu.org/bugs/?61973>.
+
+2022-01-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Expand '@PAGE@' when generating man pages.
+
+ * Makefile.am (.man): Substitute the './configure'd paper format
+ for @PAGE@.
+ * src/roff/groff/groff.1.man: Use it.
+
+2022-01-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Trivially refactor an-ext.tmac.
+
+ * tmac/an-ext.tmac (EX, EE): Do a better job of keeping the
+ name space promise made in comments at the top of the file.
+ Rename `sP` register to `mP`. Problem introduced by me in
+ commit 69895ec20, 15 January 2020. Also rename `la` and `ra`
+ strings to `mL` and `mR`, respectively. These (undocumented)
+ string names date back to commit 259929625, 15 January 2007.
+
+ * tmac/groff_man.7.man.in (Files) <an-ext.tmac>: Document the
+ aforementioned promise.
+
+2022-01-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Refactor PDF bookmark support.
+
+ * tmac/an.tmac (an*bookmark): New internal macro calls
+ `pdfbookmark` (only if the output device is 'pdf').
+ (initialization): Migrate macro appendments to appropriate
+ definitions. Two cases...
+ (SH, SS): ...were straightforward.
+ (initialization): Another (for the man page title) was poorly
+ placed when appended to the `TH` macro, skipping over the page
+ header. Move it instead...
+ (PT): ...here. But to keep this bookmark from being generated
+ on every page of a document, we need a new variable
+ `an*was-TH-bookmark-emitted` which is tested here and assigned
+ once one bookmark corresponding to a `TH` call has been written.
+ (TH): Initialize `an*was-TH-bookmark-emitted` to zero.
+ (SS): Write the bookmark _before_ the subsection heading text.
+ (initialization): Drop short-lived `BM` register. It seems
+ harmless to unconditionally include bookmarks in PDF output. A
+ PDF tool can strip them out if they're not desired, and viewers
+ seem capable of minimizing or reducing the navigation pane (if
+ they even offer one in the first place).
+
+ * tmac/an.tmac (initialization): Rename new `BN` register to
+ `BD`...
+ * tmac/groff_man.7.man.in (Options) <BD>: ...and document it.
+ Also document `PT`'s new bookmarking responsibility.
+
+ Fixes <https://savannah.gnu.org/bugs/?58949> and
+ <https://savannah.gnu.org/bugs/?58950>.
+
+2022-01-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml,groff,nroff,troff]: Tweak usage message.
+
+ * src/devices/grohtml/post-html.cpp (usage):
+ * src/roff/groff/groff.cpp (synopsis):
+ * src/roff/nroff/nroff.sh:
+ * src/roff/troff/input.cpp (usage): Partly revert commit
+ 06ae7b0b8, 16 January. Move an ellipsis back inside a bracketed
+ operand (that is, an optional one). On reflection, I think this
+ notation makes it clearer that the command can be meaningfully
+ run without operands.
+
+2022-01-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/papersize.tmac: Slightly refactor. Use new `stringdown`
+ request instead of a combination of `tr`, `di`, `asciify`, and
+ `chop`.
+
+2022-01-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Slightly refactor.
+
+ * tmac/an.tmac (an-prepare-page-title): Rename to...
+ (an*prepare-page-title): ...this. Also simplify numeric
+ expression. Add comment regarding necessity of correct
+ environment.
+
+ (an-header): Update call site of `an*prepare-page-title`.
+
+ (TH): Move planting of `an-header` trap from out of the midst of
+ footer trap management. Add comments.
+
+ (an-header): Move `pl` and `sp` requests from here...
+ (PT): ...to here. While it's conceptually nice to have these
+ macros consist solely of `tl` requests, it doesn't yield enough
+ power to those who want to redefine them. Add comment.
+
+ (an-footer, BT): ...simile.
+
+2022-01-27 Dave Kemper <saint.snit@gmail.com>
+
+ [man pages]: Add more references to pic(1)'s .PF.
+
+ * contrib/chem/chem.1.man:
+ * contrib/pic2graph/pic2graph.1.man:
+ * src/utils/grog/grog.1.man: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?61949>.
+
+2022-01-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Implement PDF bookmark support for man pages. Limitation: A
+ {sub}section can only be bookmarked if it is specified in the
+ arguments to the `SH` or `SS` requests, not on the next line in
+ an input trap. Thanks to Deri James for providing the
+ fundamentals (blame me for any weird bits).
+
+ * tmac/an.tmac (an-prepare-page-title): Define a new string,
+ `an*page-ref-string`, which is the man page's own reference
+ {such as "groff(1)"} without any abbreviation, ellipsis, or font
+ selection or italic correction escape sequences.
+ (SS): Define a new string, `an*subsection-heading`, storing the
+ macro arguments (if any). These could contain font selection
+ escape sequences, for instance, a fact that becomes important
+ later.
+ (initialization):
+ - Recognize `BM` register to enable PDF bookmarks (only on the
+ 'pdf' output device); defaults on. Recognize `BN` register to
+ set a base level/depth for the bookmarks; this is to ease
+ embedding of man pages in other PDF documents that already use
+ bookmarks. The default is 0. The registers are not yet
+ documented.
+ - If the output device is 'pdf' and bookmarks are enabled, set
+ `PDFOUTLINE.FOLDLEVEL` and `PDFHREF.VIEW.LEADING` registers
+ {recognized by 'pdf.tmac'}. Append to `TH`, `SH`, `SS` to get
+ the `an*page-ref-string`, `an-section-heading`, and
+ `an*subsection-heading` bookmarks in the document at the
+ applicable levels.
+
+ * tmac/mdoc/doc-common: Add straw-man implementation--it doesn't
+ support the `BM` and `BN` configuration parameters yet. (This
+ is enough to get bookmarks for the groff_mdoc(7) page to
+ correctly appear in the new 'groff-man-pages.pdf' document.)
+ (Dt, Sh, Ss): If the output device is 'pdf', place bookmarks in
+ the document at levels 1, 2, and 3.
+
+ Fixes <https://savannah.gnu.org/bugs/?58950>.
+
+2022-01-26 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Allow multiline text in .pdfinfo
+
+ * src/devices/gropdf/gropdf.pl: Use either '\\\\\\\\n' or
+ '\[u000a]' as line separators in the string.
+
+2022-01-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/trans.tmac: Further follow up commit c64fd60dff. If the
+ `andoc` wrapper is being used, perform man(7) localization (not
+ just when `an` is loaded).
+
+2022-01-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man pages]: Fix options used to generate compilations.
+
+ * doc/doc.am (doc/groff-man-pages.pdf): Drop `-rU0` option (it's
+ unnecessary since we don't yet have PDF hyperlink support in
+ this document). Add `-rC1` option to enable continuous page
+ numbering.
+ (doc/groff-man-pages.utf8.txt): Drop `-rC1 -rU1`. Continuous
+ page numbering is superfluous since page numbers are not shown
+ in continuous rendering mode. Stop turning on OSC 8 defaults;
+ we don't know if the document will be viewed with a supporting
+ pager+terminal combination, and further we don't yet have a
+ mechanism for making `MR` man page cross references internal to
+ the document when they indicate groff man pages.
+
+2022-01-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man pages]: Ship compilations in UTF-8 text and PDF.
+
+ Localization support and the resolution of Savannah #61266 have
+ made it practical to batch-render all of groff's man pages as a
+ single giant document. Provide PDF and UTF-8 text (with ECMA-48
+ escape sequences, but not the italic attribute or OSC 8
+ sequences).
+
+ Reasons for this addition include: {1} it is now possible,
+ whereas I don't believe it was in any previous groff release;
+ {2} many people still don't realize how much more pleasant
+ reading typeset man pages can be (while a subjective assessment,
+ I'm not alone[1]); {3} providing these forms permits full-text
+ searching of groff's entire man page corpus via the PDF viewer
+ or a pager like "less -R", the latter without sacrificing the
+ style variations of the text that aid the reader to comprehend
+ the material; {4} sentimentally, it honors the 50th anniversary
+ of the first Unix manual (dated 3 November 1971)
+ <https://www.bell-labs.com/usr/dmr/www/1stEdman.html>.
+
+ * doc/doc.am (PROCESSEDDOCFILES): Add
+ 'doc/groff-man-pages.{pdf,utf8.txt}'.
+ (GROFF_MAN_PAGES{1,2,3}): Add new macro storing names of all man
+ pages generated in the build tree. Motivate the reason for 3
+ variables in a comment (it's due to groff locale switching).
+ (GROFF_MAN_PAGES_ALL): Add convenience macro for use in
+ dependency lists required by...
+ ('doc/groff-man-pages.{pdf,utf8.txt}'): ...these targets.
+ Generate pages with the lint dial turned all the way up.
+
+ Fixes <https://savannah.gnu.org/bugs/?61900>.
+
+ [1] "The manual was intended to be typeset; some detail is
+ sacrificed on terminals." (man(1), _Unix Time-Sharing System
+ Programmer's Manual_, Eighth Edition, Volume 1, February 1985)
+
+2022-01-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Commit c64fd60dff was not quite cooked. The localized
+ strings (in English) for the manual section titles need to be
+ set at every document load (i.e., when `TH` is called), but only
+ if the groff locale is "english". When switching locales, these
+ strings were getting "stuck" in their non-English translations
+ even when returning to an English page.
+
+ * tmac/an.tmac (an*localize): New macro initializes strings.
+ (TH): Call `an*localize` if the locale is "english".
+ (initialization): Drop initialization of section title strings.
+
+ Continues fixing <https://savannah.gnu.org/bugs/?61734>.
+
+2022-01-24 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf]: Fix Savannah #61908
+
+ * src/devices/gropdf/gropdf.pl: Adjust text position when
+ given landscape media (i.e -P-l).
+
+ Fixes <https://savannah.gnu.org/bugs/?61908>.
+
+ Thanks to KUBO Koichi for finding the problem and supplying a
+ patch.
+
+2022-01-24 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: A fix to importing pdf
+ versions > 1.4.
+
+2022-01-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Skip part of test if locale doesn't support UTF-8.
+
+ * src/devices/grotty/tests/basic_latin_glyphs_map_correctly.sh:
+ Skip test of 'utf8' output device if locale lacks UTF-8 support.
+ But if the 'ascii' or 'latin1' test cases have already failed,
+ report that instead.
+
+ Fixes <https://savannah.gnu.org/bugs/?61891>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2022-01-23 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ [man pages]: Fix typos.
+
+ Fixes <https://savannah.gnu.org/bugs/?61430>.
+
+2022-01-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Fix style nits in test.
+
+ * tmac/tests/pdfpic_does-not-choke-on-bad-pdfinfo-output.sh:
+ - Emit complaints about test environment to standard error.
+ - Replace lingering literal file name with variable expansion.
+ - Skip test if gs(1) fails, instead of reporting failure.
+ - Begin continued lines with operators, for visibility.
+
+2022-01-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix misspelled member variable.
+
+ * src/devices/grohtml/post-html.cpp (class html_printer):
+ Rename `supress_sub_sup` to `suppress_sub_sup`.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pdfpic]: Fix Savannah #58206.
+
+ * tmac/pdfpic.tmac (PDFPIC): Scrub null bytes out of pdfinfo(1)
+ output. Thanks to an anonymous contributor for the patch (the
+ commentary about it is mine, if someone wants an argument).
+
+ Fixes <https://savannah.gnu.org/bugs/?58206>.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pdfpic]: Regression-test Savannah #58206.
+
+ * tmac/tests/pdfpic_does-not-choke-on-bad-pdfinfo-output.sh: Do
+ it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pdfpic]: Refactor.
+
+ Now that the package does not abort upon the first whiff of any
+ trouble, avoid littering groff's name spaces. Take this
+ opportunity to rename registers and strings to have obvious
+ meaning to even the casual reader.
+
+ * tmac/pdfpic.tmac: Do it.
+ (pdfpic@cleanup): New macro removes temporary strings and
+ registers.
+ (PDFPIC): Call the cleanup macro upon entry; this way, if we
+ errored out from a previous call, we avoid confusion. (We don't
+ clean up upon an error return because the leftover objects might
+ be useful for troubleshooting.) Rename registers and strings,
+ to get them under name space discipline and also to better
+ suggest their purpose.
+ - convert-pdf -> pdfpic*do-conversion
+ - pdf-offset-mode -> pdfpic*offset-mode
+ - pspic-args -> pdfpic*pspic-args
+ - pdf-offset -> pdfpic*indentation
+ - is-pdf -> pdfpic*file-extension
+ - img-file -> pdfpic*file-name
+ - pdf-wid -> pdfpic*width
+ - pdf-ht -> pdfpic*height
+ - pdf-deswid -> pdfpic*desired-width
+ - pdf-desht -> pdfpic*desired-height
+ Call cleanup macro before returning upon successful operation.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pdfpic]: Improve robustness.
+
+ * tmac/pdfpic.tmac (@abort): Rename to `pdfpic@error`. This is
+ an auxiliary package, and something else could very well step on
+ the former name (or worse, we break it if we're loaded later).
+ (pdfpic@error): Stop aborting; simply report an error. It's up
+ to the user how serious `PDFPIC` macro problems are. As noted
+ in a comment, the user can easily `am pdfpic@error` to tack an
+ `ab` request onto the end of its definition. Always report
+ input file name and line number. Replace "[PDFPIC]" prefix with
+ the name of the macro file complaining, to make it easier for
+ groff non-experts to find.
+ (PDFPIC): Return upon errors. Recast diagnostic messages. Stop
+ implying that we perform any sort of probing test of file type
+ {there's no telling what pdfinfo(1) will say}. Apply new
+ 'stringdown' request so that we accept '.pdf' file name
+ extension in any lettercase. Test file argument for existence
+ before proceeding (acknowledge TOCTTOU exposure). Skip file if
+ pipeline returned a non-zero exit status or the registers into
+ which we extract the height and width are undefined (indicating
+ failure of a temporary file to be created or read). Reject
+ files with non-positive image width or height reported by
+ pdfinfo. Validate `width` and `height` arguments, if given,
+ rejecting non-positive values.
+
+ Fixes <https://savannah.gnu.org/bugs/?61892>.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mdoc]: Make `Pa` macro interpolate basic Latin tilde on all
+ output devices.
+
+ * tmac/doc.tmac (Pa): Do it.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix incorrect line numbers in diagnostics. Line numbers
+ for multiple format-time diagnostics emitted by tbl(1)-generated
+ groff input were off by +5 lines.
+
+ * src/preproc/tbl/table.cpp: Fix it.
+ (NOP_NAME): Add new preprocessor symbol to construct name of
+ "nop" macro to be used as end macro for `ig` requests inside
+ macro definitions.
+ (table::init_output, table::compute_expand_list,
+ table::compute_separation_factor):
+ - Move `entry_list->set_location()` calls to more auspicious
+ locations.
+ - Replace "around line X" language in diagnostic messages with a
+ more idiomatic, and less embarrassing, simple report of an
+ integer.
+ (table::init_output):
+ - Add `entry_list->set_location()` call right before emitting
+ diagnostic about a table row not fitting on a page.
+ - Turn off eqn(1) delimiters when emitting diagnostic about a
+ boxed table not fitting on a page (necessitating `.TS H`
+ support), using new NOP_NAME-based end macro to achieve this
+ inside a macro definition.
+ (table::compute_expand_list): Suppress issue of too-wide table
+ diagnostic when the `EXPAND` table flag is set (corresponding to
+ the `expand` region option), because other code already emits
+ diagnostics in this case.
+
+ Fixes <https://savannah.gnu.org/bugs/?60598>. Problem appears
+ to date back to commit 3bc4a53a45, 2013-01-07.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Add unit test for format-time diagnostics.
+
+ Ensure that the various format-time diagnostics that a
+ tbl-preprocessed document can generate (1) occur when they are
+ supposed to and (2) are appropriately suppressed by the
+ "nowarn" and/or "nokeep" region options. One of them is an
+ error and cannot be suppressed by the former, but _can_ be by
+ "nokeep", which is arguably a bug (Savannah #61878).
+
+ * src/preproc/tbl/tests/format-time-diagnostics-work.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TEST): Run test.
+
+2022-01-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Trivially refactor.
+
+ * src/preproc/tbl/table.cpp (table::compute_expand_width):
+ Declare and initialize variables closer to use. Also, the width
+ computed is compared to the line length and indentation, so use
+ these well-established *roff terms in the diagnostic message.
+
+2022-01-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix Savannah #61854.
+
+ * src/preproc/tbl/table.cpp (compute_expand_width): To properly
+ warn if a table is too wide to fit between the indentation and
+ the right margin, we need to compute its column widths including
+ those eligible for expansion via the 'x' column modifier; we
+ cannot use the same expression that we do to determine the
+ amount of space we have to distribute among the expanded
+ columns. Iterate through columns again (the function was
+ already doing so twice), once to potentially produce the
+ warning, and then as before to distribute any available width.
+ In other words, warnings were only being emitted for too-wide
+ tables where one or more columns used the 'x' modifier.
+
+ Fixes <https://savannah.gnu.org/bugs/?61854>.
+
+2022-01-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Don't add leaders that don't lead anywhere.
+
+ * tmac/s.tmac (toc*end-entry): If no page number string
+ `toc*num` is defined, don't interpolate its emptiness prefixed
+ with a leader (and tab). This makes "no" as the first argument
+ to `XS` and `XA` work as documented, suppressing not only the
+ page number but the leader after the entry.
+
+ Fixes <https://savannah.gnu.org/bugs/?61853>.
+
+2022-01-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Add regression test for Savannah #61853.
+
+ * tmac/tests/s_XA-literal-no-argument-suppresses-leader.sh: Do
+ it.
+ * tmac/tmac.am (tmac_TESTS): Run it.
+
+2022-01-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Fix bad unit test.
+
+ * tmac/tests/e_chapter-titles-work.sh: Fix missing shell test at
+ end of script, which caused it to exit successfully regardless
+ of any test failures. Irritating. This is among the fruits of
+ the "never, ever use 'set -e'" tree. (This religion has a thick
+ bible: <https://mywiki.wooledge.org/BashFAQ/105>.) Fortunately,
+ all the tests pass legitimately.
+
+2022-01-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [font]: For 'ascii' and 'latin1' devices, consistently define
+ glyphs for ordinary characters before their special character
+ aliases. This parallels existing usage for the 'cp1047' device,
+ and, I think, makes the file contents slightly more accessible.
+
+ * font/devascii/R.proto:
+ * font/devlatin1/R.proto: Do it.
+
+2022-01-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Update diagnostic messages.
+
+ * src/devices/grohtml/post-html.cpp (assert_state::add)
+ (assert_state::compare, replace_negate_str)
+ (assert_state::check_value_error, make_val): Make format of
+ internal assertion system messages shorter and more mutually
+ parallel.
+ (html_printer::set_char, html_printer::set_numbered_char)
+ (html_printer::set_char_and_width): Parallelize diagnostic
+ messages with libdriver; see yesterday's commit.
+ (main): Put information in argument to `assert()`; see commit
+ 11b43053, 24 November.
+
+2022-01-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [nroff]: Emit usage message on usage errors.
+
+ * src/roff/nroff/nroff.sh: Store the usage message in a shell
+ variable instead of a here document, and sling it to the
+ standard output or standard error streams, as appropriate.
+
+2022-01-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml,groff,nroff,troff]: Tweak usage message.
+
+ * src/devices/grohtml/post-html.cpp (usage):
+ * src/roff/groff/groff.cpp (synopsis):
+ * src/roff/nroff/nroff.sh:
+ * src/roff/troff/input.cpp (usage): Stop putting an ellipsis
+ inside a bracket expression (for file arguments); that suggests
+ misleading complexity.
+
+ * src/devices/grohtml/post-html.cpp (usage): Also don't set
+ metasyntactic variable names in screaming capitals when they are
+ separated from option letters by space and thus can't be
+ confused with them.
+
+2022-01-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libdriver]: Update diagnostic messages.
+
+ * src/libs/libdriver/printer.cpp (printer::find_font): Describe
+ the problem encountered instead of saying lamely "sorry, I can't
+ continue".
+ (printer::set_char_and_width, printer::set_numbered_char):
+ Characterize input as "invalid", not "bad"; see commit bb7512b5,
+ 17 September. When referring to font mounting position, say so.
+ (printer::set_char_and_width): Describe required input character
+ as "ordinary", not "ascii". Apart from the incorrect casing,
+ doing so better aligns with our terminology in groff_char(7),
+ groff_out(5), our Texinfo manual, and other diagnostic messages;
+ moreover, the use of "ascii" is potentially confusing to those
+ whose environments use another encoding, like UTF-8 or IBM code
+ page 1047.
+
+ Fixes <https://savannah.gnu.org/bugs/?61829>.
+
+2022-01-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Check basic Latin ("ASCII") glyph mappings.
+
+ * src/devices/grotty/tests/basic_latin_glyphs_map_correctly.sh:
+ Do it.
+ * src/devices/grotty/grotty.am (grotty_TESTS): Run test.
+
+2022-01-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [font,tmac]: Simplify Unicode character mapping process.
+
+ * tmac/unicode.tmac: Drop. It was originally added in 2005 to
+ suppress horizontal spacing of glyphs in the range U+0483..9.
+ Its purpose has wandered over the years; most recently to map
+ the Basic Latin ("ASCII") hyphen-minus, apostrophe, and grave
+ accent to special characters (and thus ultimately to the General
+ Punctuation block). But this is unnecessary since the font
+ descriptions for devices with the `unicode` property can provide
+ this information, and anyone who wants to alter the mappings can
+ change either font description files, output device macro files,
+ or troffrc; or add `char` requests to their macro packages or
+ documents (in decreasing magnitude of ambition).
+
+ * tmac/html.tmac:
+ * tmac/tty.tmac: Stop sourcing unicode.tmac.
+
+ * tmac/tmac.am (TMACNORMALFILES): Stop shipping it.
+
+ * font/devutf8/NOTES: Drop remarks about mapping of \[a~],
+ \[a^], and Basic Latin circumflex accent and tilde. Not only do
+ I disagree with the reasoning (whether these glyphs are "too
+ small" depends on the font used by the terminal emulator, over
+ which we have no control), but this mapping happens in a
+ completely different part of the source tree,
+ src/libs/libgroff/glyphuni.cpp.
+
+ * font/devhtml/R.proto:
+ * font/devutf8/R.proto: Add mappings for the five Basic Latin
+ characters that map surprisingly (see groff_char(7)) and are not
+ syntactically significant to troff. Three of these are ported
+ from unicode.tmac.
+ (html): Don't migrate the hyphen-minus--yet.
+
+2022-01-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tty-char.tmac: Drop redundant logic. We don't need to
+ source the `cp1047` or `latin1` files here; `troffrc` will
+ already have loaded `tty` for us, which loads whichever applies.
+
+2022-01-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Separate concerns better; stop re-generating plain
+ text and HTML documents when the 'doc' target is updated; these
+ are already handled by the 'build_infodoc' target.
+ (build_infodoc): Use existing phony targets for plain text and
+ HTML output files instead of repeating filename literals.
+ (doc_all): Remove those same two phony targets from this one's
+ dependencies.
+
+2022-01-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp: Rename `eoi_macro_name` to
+ `end_of_input_macro_name`. It's long, yes, but better parallels
+ `blank_line_macro_name` and `leading_spaces_macro_name`. It is
+ not used in lengthy expressions and furthermore clarifies the
+ meaning of the nearby function name `eoi_macro` in one use.
+
+2022-01-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.1.man (Limitations): Add
+ subsection.
+
+ Fixes <https://savannah.gnu.org/bugs/?55035>.
+
+2022-01-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Be more careful with control characters when they are
+ word-initial in filled text lines. The idea is to prevent
+ baffling surprises if a sentence is recast in a text editor, and
+ a word beginning with a dot or neutral apostrophe is reflowed
+ onto the beginning of the next input line--suddenly it is parsed
+ as a control character. Based on a patch by Bjarni Ingi
+ Gislason.
+
+ * contrib/hdtbl/groff_hdtbl.7.man:
+ * doc/automake.mom:
+ * doc/meintro.me.in:
+ * doc/meintro_fr.me.in:
+ * doc/pic.ms:
+ * doc/webpage.ms:
+ * src/devices/gropdf/gropdf.1.man: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?51312>.
+
+2022-01-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Font Description File Format):
+ * man/groff_font.5.man (Font description file format): Document
+ restriction of kerning adjustment to glyph pairs from within a
+ single font (since that is the scope of the font description).
+
+ Fixes <https://savannah.gnu.org/bugs/?44715>.
+
+2022-01-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * contrib/groff_filenames/groff_filenames.5.man: Remove
+ superfluous paragraphing macro.
+
+ Fixes <https://savannah.gnu.org/bugs/?55084>. Thanks to Bjarni
+ Ingi Gislason for the report and a suggested patch.
+
+2022-01-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Operators in Conditionals): Update explanation
+ of output-comparison conditional operator.
+
+ Fixes <https://savannah.gnu.org/bugs/?60836>.
+
+2022-01-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Use pnmtops(1)'s -quiet option if possible, to quieten
+ build.
+
+ * m4/groff.m4 (GROFF_PNMTOOLS_CAN_BE_QUIET): Add new macro to
+ test pnmtops for support for (undocumented) '-quiet' option.
+
+ * configure.ac: Perform the check.
+
+ * doc/doc.am: Alter check of shell variable `pnmtops_nosetpage`
+ {processed by AC_SUBST} to correctly match even if pnmtops
+ accepts the '-quiet' option.
+
+2022-01-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Manage hyphenation mode more carefully in localization
+ packages.
+
+ * tmac/{cs,de,it,sv}.tmac: Localize the man(7) package's HY
+ register.
+
+ * tmac/{cs,de,fr,it,sv}.tmac: When localizing the ms(7) package,
+ use mode "2" instead of "3": the 'hy' request complains of
+ contradictory hyphenation modes if "3" is used (the semantics of
+ the hyphenation mode are complex and non-orthogonal; see
+ groff(7) or our Texinfo manual).
+
+ * tmac/{cs,de,en,fr,it,sv}.tmac: If the one language-independent
+ hyphenation bit (don't hyphenate just prior to a page location
+ trap) is set, preserve it; this way a system's troffrc or a
+ macro package can set it and it will not get turned off by the
+ localization package, which for best results should be loaded
+ after any full-service package (and any auxiliary package
+ requiring localized strings, though none are yet distributed
+ with groff).
+
+2022-01-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Add unit test for localization macro files. Right now
+ this just covers the hyphenation mode.
+
+ * tmac/tests/localization-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2022-01-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [indxbib]: Document --version in usage message.
+
+ * src/utils/indxbib/indxbib.cpp (usage): Document --version
+ option. Use more informative metasyntactic variable names.
+ Organize usage message consistently with our others, and stop
+ wrapping the output lines: we know neither the width of the
+ terminal nor the length of the `program_name` string we're
+ interpolating. See commit b4de44f0, 19 July 2021.
+
+2022-01-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libbib]: Refactor index header checking.
+
+ * src/libs/libbib/index.cpp: Move more header validity checks...
+ (index_search_item::load): ...from here...
+
+ (index_search_item::check_header): ...to here. Test all size
+ values in header for negative values (never valid) before
+ proceeding. (These data could be changed to unsigned integer
+ types in the file format, but that would require bumping the
+ file version. That in turn would make indexes generated with
+ groff 1.23 unusable on systems running older groffs and, perhaps
+ worse, would make groff 1.23 reject index files produced by
+ older groffs. On the other hand, the regeneration of index
+ files should be, for those who use them, a common activity, and
+ as long as the original database files are kept intact, it seems
+ likely that most people, given modern machines, won't even
+ notice a slowdown in document generation when refer(1) and
+ friends fail to open the indices and fall back to full-text
+ searches of the originals. So we could still consider revising
+ the file format before the groff 1.23 release.)
+
+ * src/libs/libbib/index.cpp (index_search_item::load):
+ Explicitly perform widening conversion from signed `off_t` value
+ {from a stat(2) buffer} to an unsigned integer; quietens
+ compiler warning about comparison between integers differing in
+ signedness.
+
+2022-01-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac (AC_CHECK_HEADERS): Expect stdbool.h, since we
+ now use it in src/include/lib.h.
+
+2022-01-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libbib, libgroff, indxbib]: Slightly refactor.
+
+ Also, it's silly to test even numbers > 2 for primality. Stop.
+
+ * src/include/lib.h: Include `stdbool.h` since this header file
+ is used for both C and C++ code.
+
+ * src/include/lib.h (is_prime):
+ * src/libs/libgroff/prime.cpp (is_prime): Boolify. Return
+ Boolean instead of integer literals and demote return type to
+ `bool`. Include `assert.h` and add assertion to reject
+ mathematically offensive input.
+
+ * src/libs/libbib/index.cpp
+ (index_search_item::read_common_words_file): Test only odd
+ numbers for primality.
+ * src/utils/indxbib/indxbib.cpp (main): Same. Since the number
+ comes from user input, make it (a potential hash table size) odd
+ first.
+
+2022-01-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Internationalize and localize.
+
+ * tmac/an.tmac (TH): Indirect predefined manual section titles
+ through new strings `an*section[1-9]` so that they can be
+ localized.
+ (initialization): Give these strings English defaults.
+ (TH): Move `ss` request from here...
+
+ * tmac/en.tmac: ...to here. It's not the man(7) package's
+ business what the inter-word and inter-sentence spacing values
+ are. Also, having the correct[disputed] inter-sentence spacing
+ value for English in its localization file restores it for the
+ benefit of multi-lingual documents (mainly roff applications
+ other than man(7)).
+
+ * tmac/{cs,de,fr,it,sv}.tmac: Supply translations for the manual
+ section titles; these were done by a monoglot American employing
+ Google Translate, so those scandalized or running into howlingly
+ wrong locutions are warmly invited to submit corrections.
+
+ * tmac/trans.tmac: Load localized strings.
+
+ Fixes <https://savannah.gnu.org/bugs/?61734>.
+
+2022-01-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Handle auxiliary macro package
+ arguments correctly.
+ (process_arguments): Don't append the argument to the '-m'
+ option to the command line; requested macro packages have
+ dedicated logic.
+ (construct_command): When iterating through requested package
+ list, assume each element is an auxiliary package unless it
+ matches an element in the list of main packages. If the
+ assumption holds, append the package name to a new list,
+ `auxiliary_package_argument` (prefixed with '-m'). Push this
+ list onto the command line after any main package.
+
+ Also rename `$selected_main_package` to `$main_package` for
+ brevity, and drop unused global lists `m` and
+ `supplemental_package`.
+
+ Fixes <https://savannah.gnu.org/bugs/?61758>.
+
+2022-01-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/tests/smoke-test.sh: Add test cases for user
+ specification of auxiliary macro packages.
+
+2022-01-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Drop unnecessary code. Apart from being superfluous, it
+ prevented a user-defined value of the `sx` register from being
+ applied to the first footnote marker interpolated, a subtlety
+ that escaped my notice because the first footnotes in our
+ "meref" and "meintro" documents are not numeric, but symbolic,
+ and their markers occurred on lines with vertical space above
+ and below. (The bug was further masked by an otherwise
+ redundant redefinition of the `*` string inside the `)f` macro.)
+
+ * tmac/e.tmac ()f, +c): Stop redefining footnote marker string
+ `*` after updating the automatic footnote number; its
+ interpolation is already backslash-protected.
+ ()d, pd): Stop redefining delayed text marker string `#` for an
+ analogous reason.
+ (initialization): Drop unneeded `_*` and `_#` strings.
+
+ Thanks to Robert Goulding for his feedback and patience. See
+ <https://savannah.gnu.org/bugs/?61025>.
+
+2022-01-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/e_footnote-marks-work.sh: Enhance test. Confirm
+ that the automatic footnote number is reset to 1 by starting a
+ new chapter with the `+c` macro.
+
+2022-01-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Revise `n1` and `n2` interface and behavior.
+
+ There were several bugs in the previous implementation.
+
+ * tmac/e.tmac (po): Issue diagnostic if an attempt is made to
+ set the page offset to a negative value.
+
+ (n1): Accept new optional "C" argument to behave more (but not
+ exactly) like roff(1), as the formerly-recognized "c" argument
+ to `n2` did. If present, the line length is reduced by the same
+ amount (in new interface register `no`) as the line number field
+ to preserve the overall line length. Save the previous line
+ length in internal register `_l` and set a flag, stored in `?N`,
+ indicating this reduction. Otherwise, the macro expects to be
+ able to reduce the page offset to accommodate the line number.
+ If it cannot (for example, with the zero page offset default
+ used by nroff output devices), see above re: the `po` macro.
+
+ (n2): Cache the last line number that may have been output,
+ instead of the current one, so that we can operate on it
+ consistently with user expectations. Do this earlier, and
+ rename this macro-local variable from `_ln` to `_n` so that we
+ don't need groff's `do` request to operate on it. Drop
+ recognition of "c" as an optional second argument. If turning
+ off line numbering: if the line length was shortened (`?N`)
+ restore the saved value and delete `_l` register; otherwise,
+ reverse the change to the page offset. Delete `_n` register.
+
+ (initialization): Assign `\w'0000'u` to `no` register; this was
+ previously hard-coded in `n1` and `n2`. Initialize `?N` with 0.
+
+ * doc/meref.me.in (roff Support): Update to reflect interface
+ changes and describe behavior more accurately.
+
+ * doc/meref.me.in (Summary):
+ * tmac/groff_me.7.in (Registers): Document new `no` register and
+ mark it as a groff extension.
+
+ * NEWS: Add item documenting interface changes.
+
+ Fixes <https://savannah.gnu.org/bugs/?61646>. See the comments
+ in the report for a lengthy enumeration of rendering problems
+ exhibited by the previous implementation.
+
+2022-01-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Add unit test for line numbering feature.
+
+ * tmac/tests/e_line-numbering-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-12-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grohtml/post-html.cpp (style::style): Add
+ initializer to argumentless constructor to avoid later read from
+ uninitialized memory in `html_printer::do_font`.
+
+ Fixes <https://savannah.gnu.org/bugs/?61748>.
+
+2021-12-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [groff]: Add regression test for Savannah #61748.
+
+ * src/roff/groff/tests/html_works_with_grn_and_eqn.sh: Do it.
+ * src/roff/groff/groff.am (groff_TESTS): Run it.
+
+2021-12-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::do_file_components): Emit fatal diagnostic if
+ we're unable to `freopen()` standard output. Quietens
+ `-Wunused-result` warning from GCC 8.3.
+
+2021-12-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grohtml/html.h (INT_HEXDIGITS): Add new constant
+ to store the maximum possible quantity of digits in the
+ hexadecimal representation of an `int`.
+
+ * src/devices/grohtml/html-text.cpp (html_text::issue_tag):
+ * src/devices/grohtml/post-html.cpp (html_printer::do_body):
+ Guard against format string overflow by large integers in RGB
+ color channel specifications; in a *printf format string, the
+ precision (like the field width) is a _minimum_. Quietens
+ `-Wformat-overflow` warnings from GCC 8.3.
+
+2021-12-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (get_image_generator): Clarify
+ complex conditional expression. Quietens `-Wparentheses`
+ warning from GCC 8.3.
+
+2021-12-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Rename new `$x` register to `sx`. Since we expect the
+ user to set this register directly, it should not be named with
+ a leading '$' per the "me Reference Manual".
+
+ * tmac/e.tmac (initialization, {, }): Do it.
+
+ * tmac/groff_me.7.man:
+ * doc/meref.me.in:
+ * NEWS: Update documentation.
+
+ * doc/meintro.me.in:
+ * doc/meintro_fr.me.in:
+ * doc/meref.me.in: Sync with new register name.
+
+ See <https://savannah.gnu.org/bugs/?61025>. Thanks to Dave
+ Kemper for the discussion in
+ <https://savannah.gnu.org/bugs/?61710>.
+
+2021-12-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Slightly refactor.
+
+ * src/roff/troff/div.cpp:
+ * src/roff/troff/div.h:
+ * src/roff/troff/input.cpp: Rename variables to reduce confusion
+ between "end macros" and "end-of-input macros". Call the latter
+ "eoi" macros for brevity.
+
+2021-12-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Fix code style nits.
+ - Use new terminology in diagnostic. See commit 66ac1a8db9,
+ 11 December.
+ - Drop unused '&&&' annotation for macro definitions. This
+ was a BSD me(7) implementation detail wherein parts of the
+ package were broken out into module files, loaded if/when
+ their macros were called. groff me(7) is monolithic, except
+ for devtag and refer(1) support.
+ - Remove '&&' end macro when we're done using it.
+
+2021-12-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: (Re-)localize strings.
+
+ * tmac/{cs,de,fr,it,sv}.tmac: Update package localizations to
+ use new resources. As a happy side effect (and with the new
+ appendix string), the `+c` macro is now localized for Czech,
+ German, and Swedish.
+
+ * doc/meintro_fr.me.in (Les Parties du Document): Update example
+ to reflect mixed-case default string used in chapter headings.
+
+ * tmac/tests/e_ld-works.sh: Add tests for localization.
+
+2021-12-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Internationalize strings.
+
+ * tmac/e.tmac (initialization): Introduce internal
+ `_mo1`..`_mo12`, `_dw1`..`_dw7`, and `_td_format` strings (with
+ English defaults). Define them outside of the new `ld` macro so
+ that they can be overridden by localization packages.
+ (ld) <dw, mo, td>: Populate via the above new strings.
+ * tmac/trans.tmac: Stop defining `mo` and `dw`. Instead, make
+ them aliases of the new strings above. Handle `wa` and `wc`
+ similarly.
+
+2021-12-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Add `ld` macro to re-init date/l10n stuff.
+
+ * tmac/e.tmac (ld): New macro updates `y2` and `y4` registers
+ and `wa`, `wc`, `mo`, `dw`, and `td` strings.
+
+ * doc/meref.me.in (Miscellaneous, Predefined Strings):
+ * tmac/groff_me.7.man (Macros): Document it.
+
+ * tmac/tests/e_ld-works.sh: Add unit test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?61670>.
+
+2021-12-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/e_chapter-titles-work.sh: Add unit test for chapter
+ heading feature.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-12-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Ease localization and customization by exposing
+ strings for "Chapter" and "Appendix" instead of hard-coding
+ these words into the `$c` macro.
+ (initialization): Define new `wa` and `wc` strings. Separate
+ these and existing localization strings from `y2` and `y4`
+ initialization since the latter don't involve natural languages.
+ ($c): Interpolate these strings in chapter and appendix headings
+ and in calls to `$C` hook macro. Set "Chapter" and "Appendix"
+ in mixed case instead of full capitals, and set one
+ adjustable nonbreaking word space `\~` between them and the
+ chapter number instead of two unadjustable nonbreaking spaces.
+ {These changes do slightly alter the default output of the
+ package when the `+c` macro is used.}
+
+ * doc/meref.me.in (Predefined Strings):
+ * tmac/groff_me.7.man (Strings): Document new strings.
+
+ * doc/meintro.me.in (Parts of the Basic Paper): Update example
+ to reflect mixed-case default string.
+
+ Fixes <https://savannah.gnu.org/bugs/?61661>.
+
+2021-12-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (@p): Deactivate right alignment (the effect of
+ groff's `rj` request) when starting a new paragraph.
+ * doc/meref.me.in (Paragraphing) <lp>: Document this.
+
+2021-12-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac ()c): Add bounds check to avoid attempting to set
+ a negative indentation, provoking a troff warning. Problem
+ exposed by formatting "meintro_fr.me" document with default
+ nroff mode line length.
+
+2021-12-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Slightly refactor (boolify).
+
+ * src/roff/troff/div.cpp:
+ * src/roff/troff/div.h:
+ * src/roff/troff/env.cpp:
+ * src/roff/troff/input.cpp: Rename variables and demote from
+ `int` to `bool`. Initialize and assign them using Boolean
+ literals. The new names try harder to express a logical
+ predicate, and start with verbs to resist interpretation as
+ noun phrases.
+ - exit_started -> is_exit_underway
+ - done_end_macro -> is_end_macro_finished
+ - seen_last_page_ejector (demoted but not renamed)
+ - began_page_in_end_macro (demoted but not renamed)
+
+2021-12-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Explain presence of undocumented `$r` and `$R`
+ registers.
+
+ Fixes <https://savannah.gnu.org/bugs/?61683>.
+
+2021-12-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (bc): To get to the next column, space by the page
+ length `.p`, not by the distance to the next trap (or 24 inches,
+ as hard-coded in me(7) traditionally). It is up to any sprung
+ traps to issue further space requests or otherwise ensure a
+ transition to the next column.
+
+ See <https://savannah.gnu.org/bugs/?55081> for discussion.
+
+2021-12-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac ({): Fix missing scaling unit in arithmetic
+ expression: broke footnotes in troff mode. Problem introduced
+ by me in commit 6eafd208, 16 December. Thanks to Robert
+ Goulding for the (informal) report.
+
+2021-12-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/{pic,webpage}.html): Quieten build. Stop
+ passing `-p` (progress) option to postprocessor, which produces
+ TeX-like bracketed page numbers when images occur.
+
+2021-12-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (.ms.html): Drop unused suffix rule.
+
+2021-12-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am (tmac_XFAIL_TESTS): Mark test
+ "e_footnotes-work-with-columns.sh" as expected to fail (as it
+ does now, consequent to a reverted commit).
+
+2021-12-16 Dave Kemper <saint.snit@gmail.com>
+
+ * man/groff_tmac.5.man: Fix minor errors.
+
+ Fixes <https://savannah.gnu.org/bugs/?61633>.
+
+2021-12-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Parameterize line height adjustment when super/subscripting.
+
+ * tmac/e.tmac (initialization): Assign 0.2m to register `$x`.2m.
+ ({, <}: Apply adjustment, multiplied by -1 for superscripts.
+
+ * doc/meref.me.in:
+ * tmac/groff_me.7.man: Document it.
+
+ * NEWS: Add item.
+
+ * doc/meintro.me.in:
+ * doc/meintro_fr.me.in:
+ * doc/meref.me.in: Forego extra line height for more attractive
+ typesetting.
+
+ Fixes <https://savannah.gnu.org/bugs/?61025>. Thanks to Robert
+ Goulding for the suggestion.
+
+2021-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac ($c): Draw the footnote separator no wider than
+ the column width.
+
+ Fixes <https://savannah.gnu.org/bugs/?61675>.
+
+2021-12-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (2c): Accept an empty first argument, permitting
+ the number of columns to be specified but preserving the default
+ column separation.
+
+ Fixes <https://savannah.gnu.org/bugs/?61671>.
+
+2021-12-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (initialization): Initialize `$C` hook, preventing
+ `mac` warnings from troff(1) if chapter title feature is used.
+
+2021-12-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (i, bi): Add italic corrections.
+
+2021-12-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Fix groff warnings and correctness issue.
+ (n2): Prefix `ie` request with `do` because it uses the groff
+ `\B` escape sequence. Use braces to group multiple requests
+ after an `el` request: `ie` and `el` count as two requests, not
+ one. Add comment regarding the unfortunate choice of brace
+ style given *roff's syntactical constraints.
+ (n2, (c): Conceal bare tab in request argument list (exposed by
+ no longer stripping the macro file).
+
+2021-12-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Revise diagnostic messages to follow GNU Coding Standards,
+ identifying what is emitting them.
+
+ * tmac/e.tmac (_e): New string holds "e.tmac".
+ (@err): New macro constructs and issues diagnostics. Add file
+ name to messages when available. Suppress line number when
+ unavailable.
+ (check_page_length, @z, @h, n2, sk, @p, @(, @), (c, )c, EQ, (f,
+ ++, @U): Call `@err` instead of invoking `tm` request. Revise
+ wording of messages in an attempt at clarity.
+
+ Continues the long process of fixing Savannah #52463.
+
+2021-12-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Slightly refactor footnote numbering.
+ ()f): Tighten code style and end string definition with comment.
+ (+c, initialization): Drop unused auto-incrementation of
+ footnote number register `$f`. Add new string `_*` to use when
+ {re-}initializing `*` outside of a footnote diversion, and
+ interpolate the footnote number register instead of a literal.
+
+2021-12-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/e_footnote-marks-work.sh: Add unit test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-12-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Fix automatic numbering of delayed text.
+ (initialization): Add `_#` string for use in multiple
+ assignments of `#` string.
+ (initialization, pd): Remove unused auto-incrementation from
+ `$d` delayed text number register.
+ ()d): Increment `$d` register unconditionally, no longer
+ conditionally on whether the delayed text marker string `#` has
+ been interpolated.
+ ()d, pd): Update `#` string using new `_#` string. Stop
+ initializing the string with `\k` mark-setting escape sequence.
+
+ * doc/meref.me (Annotations) <)d>: Document now-unconditional
+ incrementation of `$d` register.
+
+ Fixes <https://savannah.gnu.org/bugs/?61632>.
+
+2021-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/e_delayed-text-marks-work.sh: Add test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Rename internal register out of user name space.
+ (@f): Rename `VL` to `__`; remove it immediately after using it.
+
+2021-12-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meref.me: Fix documentation error; the `$s` macro draws a
+ horizontal line of 2 inches' length, not 1.5 inches.
+
+ Fixes <https://savannah.gnu.org/bugs/?58682>. Thanks to Dave
+ Kemper for the report.
+
+2021-12-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Generate me(7) manual sources as part of the build. We had been
+ shipping 'me' sources with the string '@VERSION@' in them and
+ only sed-replacing that to produce generated PostScript, but
+ this replacement was not occurring for users who processed the
+ documents themselves.
+
+ * doc/meintro.me:
+ * doc/meintro_fr.me:
+ * doc/meref.me: Rename these to...
+ * doc/meintro.me.in:
+ * doc/meintro_fr.me.in:
+ * doc/meref.me.in: ...these.
+
+ * doc/doc.am (DOCFILES): Add the new *.in files. Move the *.me
+ files from here...
+ (GENERATEDDOCFILES): ...to this new variable.
+ (dist_otherdoc_DATA, EXTRA_DIST): Add `$(GENERATEDDOCFILES)`.
+ (doc/me{intro{,_fr},ref}.me): Add new target rules.
+
+ * src/utils/grog/tests/smoke-test.sh: Update test to look for
+ the above source tree documents under their new names.
+
+2021-12-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (.me.txt, .ms.txt): Drop unused suffix rules.
+
+2021-12-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (DOC_SED): Add substitution of command prefix
+ {"@g@"} so we can make accurate reference to groff commands with
+ Unix counterparts in our documentation.
+
+2021-12-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac: Add nroff mode string definitions for 4.4BSD
+ compatibility.
+ - Define '{' and '}' (superscripting) strings as '[' and ']'.
+ - Define '<' and '>' (subscripting) strings as '\(la and
+ '\(ra' if available on the device, otherwise '<' and '>'.
+
+ * tmac/tests/e_footnote-marks-work.sh: Update expected output.
+
+ * doc/meref.me: Document it.
+
+ Fixes <https://savannah.gnu.org/bugs/?61619>.
+
+2021-12-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (doc/meintro_fr.ps): Add target rule (overriding
+ suffix rule) to generate this file using `-mfr` (load the French
+ localization macro file).
+
+2021-11-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Drop redundant `do_divert()` declaration.
+
+ * src/roff/troff/env.h: Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?61433>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-11-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Remove `DEBUGGING` preprocessor cruft.
+
+ * src/roff/troff/input.cpp:
+ * src/roff/troff/mtsm.cpp: Stop defining `DEBUGGING`
+ preprocessor macro (as empty).
+
+ * src/roff/troff/input.cpp: Give `DEBUG_OPTION` an empty string
+ value if the former is undefined, so the `getopt_long()` call
+ will compile.
+
+ Fixes <https://savannah.gnu.org/bugs/?61436>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-11-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Slightly refactor table format column modifier `p` and
+ `v` validation.
+
+ * src/preproc/tbl/main.cpp (process_format): Make code terser by
+ introducing references to `list->point_size` and
+ `list->vertical_spacing`. Doing this requires a new scope
+ {because a switch case isn't one} so add it, without updating
+ indentation for this commit. When complaining of out-of-range
+ type size or vertical spacing, report the limit.
+
+2021-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Improve diagnostic messages.
+
+ Revise diagnostic messages generally to use terminology
+ consistent with the recent rewrite of tbl(1), identify a
+ contextual token when possible, and communicate more helpfully.
+
+ * src/preproc/tbl/main.cpp (process_options): Tell the user
+ which region option is missing a closing parenthesis or cannot
+ accept an empty argument. Refer to region options as such, not
+ simply "options" (so they can't be confused with command-line
+ options). Say that input is "invalid" instead of "bad".
+ (process_format): Say "table format specification" instead of
+ just "format". Say "column classifier" instead of "format".
+ When a column modifier is missing an argument or a closing
+ parenthesis, identify it and refer to it as a "column modifier"
+ instead of omitting context. Inform user that arguments to `p`
+ and `v` column modifiers must be "(optionally signed) integer"s,
+ not "numbers", lower these diagnostics' levels from error to
+ warning, and indicate that the modifier is ignored. Clarify
+ diagnostic when extra characters trail `.` at the end of a table
+ format line.
+ (process_data): Say "table entry" instead of "data entry" when
+ discarding an excess one.
+ (process_table): Say we're giving up on "this table region", not
+ this "table", particularly since any table continuations (.T&)
+ are ignored.
+
+2021-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix call to `getopt_long()`.
+
+ * src/preproc/tbl/main.cpp (main): Stop telling `getopt_long()`
+ to look for a `T` option. Continues b4bbf32e, 16 October 2020.
+
+2021-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Tweak usage message.
+
+ * src/preproc/tbl/main.cpp (usage): Document `--version`. Give
+ version retrieval mode separate synopsis. Use more normative
+ synopsis syntax.
+
+2021-11-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Fix code style nits.
+
+ * src/preproc/tbl/main.cpp (process_input_file)
+ (entry_format::debug_print, process_data, main): Replace
+ `assert(0)` calls with communicative predicates.
+ (struct input_entry_format, input_entry_format::debug_print,
+ process_format): Boolify. Demote and rename `int`s
+ `last_column` and `equal` to `bool`s named `is_last_column` and
+ `is_equal_width`. Assign them Boolean literals.
+ (process_format): Boolify. Demote `have_expand`, `got_format`,
+ and `got_period` from `int` to `bool`. Use Boolean literals in
+ assignments thereto.
+ (process_options): Swap order of null pointer comparison when a
+ typo or thinko could lead to lvalue assignment.
+ (process_data): Boolify. Demote `give_up` from `int` to `bool`.
+ Demote and rename `int` `row_comment` to `bool`
+ `seen_row_comment`. Use Boolean literals in assignments
+ thereto.
+ (main): Use standard C library symbols `EXIT_SUCCESS` and
+ `EXIT_FAILURE` with `exit()` calls instead of `0` and `1`.
+
+2021-11-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Fix Savannah #61520.
+
+ * src/utils/grog/grog.pl: Move hash `preprocessor_for_macro` to
+ global scope since it is now mutable across `do_line` subroutine
+ calls.
+ (do_line): Adjust regex matching an end macro to work better.
+ Check names of macros being defined by the document; if they
+ start with '[' or ']', stop attempting to detect refer(1) usage,
+ by deleting its key from the `preprocessor_for_macro` hash.
+
+ Fixes <https://savannah.gnu.org/bugs/?61520>.
+
+2021-11-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Add regression test for Savannah #61520.
+
+ * src/utils/grog/tests/avoid-refer-fakeout.sh: Do it.
+ * src/utils/grog/grog.am (grog_TESTS): Run test.
+
+2021-11-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Page Motions):
+ * man/groff.7.man (Escape short reference): Fix error: the `\r`,
+ `\u`, and `\d` escape sequences move in ems, not vees, despite
+ being vertical motions. Add discussion and example. Thanks to
+ Bjarni Ingi Gislason for pointing out the problem in groff(7)
+ and Tadziu Hoffman for his lucid explanation.
+
+ Fixes <https://savannah.gnu.org/bugs/?61437>. Thanks to Bjarni
+ Ingi Gislason for the report and a suggested patch.
+
+2021-11-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/include/error.h: Drop `extern` storage class from
+ diagnostic function prototypes. Drop parameter names from
+ prototypes, in keeping with the Stroustrup-style C++ used in
+ most of groff.
+
+2021-11-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/font.cpp (font::load): Update diagnostic
+ messages to say "kerning pair" instead of "kern pair".
+
+2021-11-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_size): Update diagnostic
+ messages to use more normative language: say "type size" instead
+ of "point-size", and "escape sequence" instead of "escape".
+ * src/roff/groff/tests/\
+ use_point_size_escape_with_single_digit_arg.sh: Update expected
+ diagnostic wording in text.
+
+2021-11-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_size): Boolify. Update
+ prototype. Demote return type from `int` to `bool`. Use
+ Boolean literals for return values. Similarly demote local
+ variable, rename it from `bad_digit` to
+ `contains_invalid_digit`, and use Boolean literals with it.
+
+2021-11-16 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: Fixes to importing pdf versions
+ > 1.4.
+
+2021-11-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: If "nowarn", suppress table row warning.
+
+ * src/preproc/tbl/table.cpp (table::init_output): Bracket the
+ generated groff code that emits a warning if a table row
+ overruns a page location trap (usually, is too long to
+ vertically fit on the page) in a test for whether the "nowarn"
+ region option was given, so that this warning is suppressed as
+ well when that option is used.
+ * src/preproc/tbl/tbl.1.man (Region options): Document new
+ "nowarn" behavior.
+
+ {"nokeep" also suppresses this warning, for a different reason;
+ no diversion is created to hold the table row, so its vertical
+ size does not exist to be compared to the distance to the next
+ page trap.}
+
+ Fixes <https://savannah.gnu.org/bugs/?61477>.
+
+2021-11-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::do_vspan): Fix code style
+ nits. Swap order of null pointer and zero equality comparisons
+ when a typo or thinko could lead to lvalue assignment. Break a
+ series of 6 and-ed assertion predicates into separate `assert()`
+ calls--sure to be less maddening for anyone who has to debug
+ such a contingency. Clarify comment since C++98 didn't yet have
+ `nullptr`.
+
+2021-11-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [m4]: Clean up shell variable quoting and bracing.
+
+ * m4/groff.m4 (GROFF_PROG_YACC, GROFF_MAKEINFO)
+ (GROFF_BROKEN_SPOOLER_FLAGS, GROFF_TARGET_PATH_SEPARATOR): Stop
+ bracing shell variable expansions that don't require it; the
+ shell is not make(1).
+ (GROFF_PROG_YACC, GROFF_MAKEINFO): Double-quote shell variable
+ expansions that might produce whitespace.
+ (GROFF_MAKEINFO): Drop unnecessary leading zeroes from version
+ number component construction. Drop unnecessary escaping of
+ plus sign in expr(1) input.
+
+2021-11-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [m4]: Clean up test(1) usage.
+
+ Get rid of string (non-)nullity tests and comparisons involving
+ concatenation with garbage (usually "x"). Even the GNU Autoconf
+ manual's shell portability material doesn't recommend this. It
+ must be either a bodge cooked up by shell programmers who
+ couldn't remember to quote variable expansions, or a workaround
+ for shells of such poor quality that they defied the odds and
+ decayed out of usage or got fixed.
+
+ Instead, use double quotes (only where necessary). Test for
+ non-empty strings with "test -n" and empty strings with "test
+ -z". Stop quoting literal comparands that obviously have no
+ shell metacharacters in them.
+
+ * m4/groff.m4 (GROFF_PRINT, GROFF_PROG_YACC, GROFF_PERL)
+ (GROFF_DOC_CHECK, GROFF_MAKEINFO, GROFF_TEXI2DVI)
+ (GROFF_HTML_PROGRAMS, GROFF_PDFDOC_PROGRAMS, GROFF_PAGE)
+ (GROFF_TMAC, GROFF_WITH_COMPATIBILITY_WRAPPERS, GROFF_X11)
+ (GROFF_APPRESDIR_DEFAULT, GROFF_APPRESDIR_CHECK)
+ (GROFF_HAVE_TEST_EF_OPTION, GROFF_BASH, GROFF_UCHARDET)
+ (GROFF_UCHARDET_CHECK, GROFF_PDFTOOLS)
+ (GROFF_USE_GROFF_ALLOCATOR): Do it.
+
+2021-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_TEXI2DVI): Add dependency on
+ `GROFF_MAKEINFO` macro. Rewrite to also test `MAKEINFO`
+ variable, which is empty if the `makeinfo` command is not
+ installed or too old. Consequently ignore `texi2dvi` if is too
+ old without having to do a version check (since it and
+ `makeinfo` are distributed together, both being part of GNU
+ Texinfo).
+
+ * doc/doc.am (.texi.dvi, .texi.pdf): Update error message to
+ indicate that `texi2dvi` is _either_ missing or too old.
+
+2021-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_MAKEINFO): Stop throwing a warning if the
+ installed `makeinfo` is old but the distributed Info manual is
+ up to date. This is not a configure-time problem; the user will
+ be notified when they run 'make' if they modify doc/groff.texi,
+ or if they run 'make doc' (which has required a TeX installation
+ for years). Empty the `MAKEINFO` variable immediately if a
+ too-old version is detected. Drop needless `AC_SUBST`itution of
+ the detected `makeinfo` version.
+
+2021-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_HTML_PROGRAMS): Clarify message; it is only
+ groff-generated HTML that is disabled by the absence of the
+ programs checked for. (`makeinfo` can still generate our
+ Texinfo manual in HTML format.)
+
+2021-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [build]: Drop `BUILD_INFODOC` symbol. Ship manual in GNU Info,
+ text, and HTML forms in distribution archive.
+
+ * Makefile.am (MAINTAINERCLEANFILES): Initialize.
+ (MOSTLYCLEANADD): Drop unused variable.
+ * configure.ac: Drop `AM_CONDITIONAL([BUILD_INFODOC]...`.
+ * doc/doc.am (EXTRA_DIST): Rearrange shipment of our Texinfo
+ manual source files to precede all of the generated forms, for
+ clarity. Drop all `BUILD_INFODOC` conditionals. Make
+ `build_infodoc` phony target depend on plain text, GNU Info, and
+ HTML forms of Texinfo manual unconditionally. Also drop unused
+ variables `groffinfodir`, `groffpdfdir`, and `texi2dvi_missing`.
+ (EXTRA_DIST, MAINTAINERCLEANFILES): Add Info form of manual.
+ Drop glob pattern attempting to match the segments that
+ `makeinfo` breaks it into. It isn't necessary for
+ MAINTAINERCLEANFILES.
+ (EXTRA_DIST, MAINTAINERCLEANFILES): Add text form of manual.
+ (EXTRA_DIST, MAINTAINERCLEANFILES): Add HTML form of manual.
+ (dist-hook): Depend on new (phony) target `dist-info-bits`.
+ (dist-info-bits): Look for the info document in the build
+ directory, then the source directory. (It could be in either
+ place depending on whether the build from a Git working tree is
+ being done in or out of a separate build directory.) When
+ found, copy the segments to the assembly area for the
+ distribution archive.
+ (install_infodoc): Refactor. Remove any groff info files from
+ the destination info directory using a shell glob directly
+ instead of a partly redundant ls(1) command substitution.
+ Similarly, use a shell glob to cp(1) the info files (including
+ any matched segments) to the destination info directory before
+ running `install-info`. (In this process I learned that
+ `install-info` doesn't "install" anything; instead, it
+ {de-}registers info files with their top-level catalog.)
+
+2021-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (.texi.txt, .texi.html): Reorder pattern rules to
+ make it clearer which formats require only `makeinfo` and which
+ require `texi2dvi`. The latter imposes more build dependencies,
+ including a full TeX installation.
+
+2021-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [mom]: Build more quietly.
+
+ * contrib/mom/mom.am (penguin.{ps,.pdf}): Make targets quiet by
+ default; they are simple file copies.
+
+2021-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Revise a test's setup.
+
+ * src/roff/groff/tests/fp_should_not_traverse_directories.sh:
+ Revise search for device/font description directory to work in
+ within-source-tree builds and (for now) with the approach used
+ by Automake's "distcheck" target.
+
+2021-11-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Accept `\&` as an empty table entry.
+
+ * src/preproc/tbl/table.cpp (table::add_entry): Suppress
+ diagnostic about non-empty table entries classified as `_` or
+ `=` if the entry consists of exactly `\&`.
+
+ * src/preproc/tbl/tbl.1.man (Table data): Document this idiom.
+
+2021-11-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Update diagnostic messages.
+
+ * src/preproc/tbl/main.cpp (process_options, process_format):
+ * src/preproc/tbl/table.cpp (table::add_entry): Align diagnostic
+ text with terminology now used in tbl(1) man page.
+ - "global option" -> "region option"
+ - "specifier" -> "column modifier"
+ - "format" -> "column classifier"
+
+2021-11-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Fix missing colon in diagnostic messages.
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ Restore missing colon to diagnostic text. Problem introduced by
+ me in commit 9a038161, 8 November.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff,grops]: Slightly refactor.
+
+ * src/devices/grops/ps.cpp: Explicitly preprocessor-include
+ "lib.h" since we use the `PI` symbol it defines.
+
+ * src/include/lib.h: Add inclusion guard. Wrap only `extern "C"
+ and its braces in preprocessor conditionals, so that prototypes
+ are present in the header even for C language code that
+ #includes this header. Add `static` storage class to `PI`
+ symbol to avoid redefinition errors from the linker.
+
+ * src/libs/libgroff/iftoa.c (if_to_a):
+ * src/libs/libgroff/itoa.c (i_to_a, ui_to_a): Add `const` type
+ qualifier to function definitions for agreement with prototypes
+ in "lib.h". Drop local copies of prototypes.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Centralize definitions of {U,}INT_DIGITS.
+
+ * src/libs/libgroff/iftoa.c:
+ * src/libs/libgroff/itoa.c: Move definitions of `INT_DIGITS` and
+ `UINT_DIGITS` from here...
+ * src/include/lib.h: ...to here.
+
+ * src/libs/libgroff/iftoa.c:
+ * src/libs/libgroff/itoa.c: Preprocessor-include "lib.h". This
+ revealed missing guards around `extern "C"` declarations, so...
+
+ * src/include/lib.h: Add them where necessary.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (OP): Fix code style nits. Don't quote macro
+ arguments unnecessarily. Use consistent backslashing. Use
+ groff font escape sequence syntax. Use adjustable non-breaking
+ space escape sequence instead of a non-adjustable one.
+ Parenthesize numeric expression for better readability.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Make allocator replacement optional. Switch it
+ off by default, relying on C++ runtime new/delete support.
+
+ * configure.ac: Call new `GROFF_USE_GROFF_ALLOCATOR` m4 macro.
+ Use `AM_CONDITIONAL` to set Automake variable
+ `USE_GROFF_ALLOCATOR` if appropriate. Report whether the
+ allocator is used in configure script output summary.
+ * m4/groff.m4 (GROFF_USE_GROFF_ALLOCATOR): Define new macro to
+ collect user preference. The default is off.
+ * src/libs/libgroff/libgroff.am (libgroff_a_SOURCES): Build and
+ link new.cpp only if we are to `USE_GROFF_ALLOCATOR`.
+
+ * NEWS: Add item.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_TMAC): Report a human-readable message if
+ no system tmac prefix is found, instead of leaving the ellipsis
+ hanging.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_TMAC): Use separate shell variable for
+ `AC_MSG_RESULT()` content since the human-readable string we
+ populate it with in the empty case is not appropriate for later
+ `AC_SUBST()`-itution. Problem introduced by me in commit
+ 19670348, 31 October.
+
+2021-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am (MOSTLYCLEANFILES): Remove `$(TMACMDOCFILES)`.
+ This variable, formerly named `TMACMDOCSTRIPFILES`, should not
+ be used in a clean target because its contents are (no longer)
+ generated files. Problem introduced by me in commit 24602f42, 4
+ July (only noticeable in within-source-tree builds).
+
+2021-11-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff,pic]: Check `strdup()` return value.
+
+ * src/libs/libgroff/font.cpp (struct text_file): Add `fatal()`
+ member function.
+ (text_file::fatal): Implement it.
+
+ * src/libs/libgroff/font.cpp (font::load_desc):
+ * src/preproc/pic/troff.cpp (troff_output::set_location): Die if
+ `strdup()` returned a null pointer.
+
+2021-11-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ Revise to eliminate `fprintf()` calls, which might perform
+ dynamic memory allocation, rendering this function unsafe to
+ call after memory allocation failures. Since this function is
+ near the top of our diagnostic output call stack, that would be
+ unfortunate. `errprint()` does not use dynamic allocation, nor
+ do the `i_to_a()` and `ui_to_a()` functions it calls to format
+ integers.
+
+2021-11-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * configure.ac: Add `strdup` to AC_CHECK_FUNCS since we are
+ using it and the whole point of libgroff's `strsave()` was to
+ get along without it. But `strdup` has been standardized in
+ POSIX for 20 years (SUSv3, POSIX:2001) and is on its way into
+ ISO standard C (N2353) and C++ (P2391R0) as well.
+
+2021-11-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/strsave.cpp (strsave): Call `strcpy()` only
+ if `malloc()` did not return a null pointer. Problem noted by
+ Ingo Schwarze.
+
+2021-11-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/fontfile.cpp (font::open_file): Don't open
+ user-specified font file names with slashes in them; i.e., don't
+ traverse directories outside the configured font path. Also
+ refuse to open the file if the `sprintf()` used to construct its
+ file name doesn't write the expected quantity of bytes to the
+ destination buffer.
+
+ Fixes <https://savannah.gnu.org/bugs/?61424>. Thanks to Ingo
+ Schwarze for feedback.
+
+2021-11-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Regression-test Savannah #61424.
+
+ * src/roff/groff/tests/fp_should_not_traverse_directories.sh: Do
+ it.
+ * src/roff/groff/tests/artifacts/HONEYPOT: Add test artifact.
+ * src/roff/groff/tests/artifacts/devascii/README: ...and this;
+ we need a directory to make the test work but empty ones tend to
+ look unintentional.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+ (EXTRA_DIST): Ship artifacts.
+
+2021-11-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Fix diagnostic error wording.
+
+ * src/libs/libgroff/font.cpp (font::load): Fix diagnostic
+ message; this is issued when an unrecognized directive is
+ encountered, so it necessarily occurs _before_ any `charset` or
+ `kernpairs` directive. Give the user a hint accordingly.
+
+2021-11-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix paragraph tag regressions.
+
+ * tmac/an-ext.mac (UR, MR): Only create an environment and
+ diversion if we're not already in one of the latter. If we are
+ {in groff man, this occurs only when collecting a `TP` paragraph
+ tag}, then typeset the URI as part of the indented paragraph.
+ (UE, ME): Pop the diversion and environment stacks only if we
+ pushed them in the first place. Eliminate spurious space in
+ post-URI arguments by only typesetting excess macro parameters
+ if there were any.
+
+2021-11-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Regression-test Savannah #61425.
+
+ * tmac/tests/an-ext_link-macros-work-in-paragraph-tags.sh: Do
+ it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-11-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (DS): Drop a redundant unconditional break; every
+ display macro we call in the event of a valid call already
+ breaks the line, and it's polite to not break if we're given an
+ invalid argument. Emit a diagnostic error if the argument we're
+ given is invalid, and immediately end the diversion we just
+ opened.
+
+2021-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (environment::set_font): Clarify
+ diagnostic warning.
+
+2021-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::add_entry): If we see a '\^'
+ entry on the first row of a table, it's invalid, but we need to
+ create an empty entry in its place. Otherwise, someone can put
+ another '\^' right below the one on the first row, creating a
+ reference to a nonexistent table entry and provoking a SEGV.
+ Issue an error diagnostic (distinct from the one in
+ `do_vspan()`), create the entry, and skip `do_vspan()` (given a
+ '^' in a first-row definition, it issues an error diagnostic and
+ returns early, which suffices). Problem appears to date back to
+ groff 1.02 (June 1991) at the latest.
+
+ Fixes <https://savannah.gnu.org/bugs/?61417>.
+
+2021-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Regression-test Savannah #61417.
+
+ * src/preproc/tbl/tests/\
+ do-not-segv-on-invalid-vertical-span-entry.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+2021-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix Savannah #61408.
+
+ * tmac/an.tmac (an-prepare-inner-footer): Don't try to get a
+ substring of an empty string; the man page author might not have
+ specified a third argument to `TH` (or supplied an empty one).
+
+ Fixes <https://savannah.gnu.org/bugs/?61408>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add regression test for Savannah #61408.
+
+ * tmac/tests/an_inner-footer-abbreviation-works.sh: Do it.
+
+2021-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Tweak computation in URI breaking.
+
+ * tmac/an-ext.tmac (UE, ME): Stop adding the page offset `.o`
+ when performing the available horizontal space computation for
+ the typeset URI string. This made no difference on nroff
+ devices (grotty; even with `.po 15n`), but it caused the
+ breaking decision to be too conservative on troff devices
+ {grops}, forcing some URIs that would fit on the current line to
+ the next one.
+
+ * tmac/tests/an-ext_UE-breaks-before-long-URIs.sh: Add test of
+ URI with no link text, which also has break points after every
+ character, so that we detect even slight alterations.
+
+2021-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Do more device and font description file validation,
+ resolve an assertion failure arising from a negative declared
+ device resolution, and correct a documentation error.
+
+ * src/libs/libgroff/font.cpp (font::load): Include more
+ information about invalid input in diagnostic messages.
+ - When a kern pair's amount is missing or invalid, report the
+ name of the kern pair.
+ - When someone tries to declare the first entry in the charset
+ section as an alias, report the glyph name.
+ - Identify the token for the unnamed character if an attempt
+ is made to alias it.
+ - When an out-of-range character type is applied to a glyph,
+ name the glyph.
+ (font::load_desc): Same.
+ - Drop redundant zero initialization of `res`.
+ - Check all directives that take basic units for positive
+ values, adding `res`, `unitwidth`, `paperwidth`, and
+ `paperlength`. Update this diagnostic to demand positive,
+ not nonnegative, values.
+ - When the font count is long in a `fonts` directive, report
+ how many font names were declared (and thus expected). (If
+ the count is short, the next line is read for a font name,
+ like 'tcommand' in our devutf8/DESC.)
+ - When interpreting a `papersize` directive, throw an error
+ and return false if `res` has not yet been encountered,
+ since it is used in subsequent computations.
+ - When a paper format cannot be determined, report the
+ original declared value from the DESC file. Use `strdup()`
+ to save it since it gets clobbered by the resolving process.
+ `free()` the saved string when we're done, regardless of
+ error condition.
+
+ * doc/groff.texi (Device and Font Files):
+ * man/groff_font.5.man (DESC file format): Document additional
+ exception to order-indifference of directives: (at least one)
+ `res` must precede `papersize`.
+
+ Fixes <https://savannah.gnu.org/bugs/?61414>.
+
+2021-11-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::do_file_components): Add assertion.
+
+2021-11-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/ps.cpp (usage): Document -p and --version
+ options.
+
+2021-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-nroff (doc-setup-page-layout): Set the title
+ length to the device line length (register `.l`) if register
+ `LT` is not defined. This keeps the title length from being set
+ to 78n when the line length is not, preventing the output from
+ looking silly.
+
+2021-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (main): Emit groff code to define
+ macro `T&` as empty if it is not already defined. (All of our
+ full-service macro packages [except mdoc(7)] already do this, so
+ there's no change in semantics; mom(7) even defines it as an
+ empty _string_.)
+
+2021-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/string_case_xform_requests.sh: Migrate
+ test to POSIX shell, dropping use of process substitution (a
+ Bashism). Also rewrite to stop using a here document within a
+ command substitution, mainly for paranoia.
+
+ * src/roff/groff/tests/string_case_xform_requests.sh:
+ * src/roff/groff/tests/on_latin1_device_oq_is_0x27.sh: Update
+ shebang lines to use /bin/sh as the interpreter.
+
+2021-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/ps.cpp (encode_subfont): Update assertion to
+ check for `sub` parameter being a null pointer rather than
+ `sub->glyphs`; the latter is a member array of a `subencoding`
+ struct so it can't be a null pointer. (`glyphs` is an array of
+ pointers to `const char`; the _elements_ of the array can [and
+ are initialized to] be null pointers, but the address of the
+ array itself will never be in a C/C++ implementation.) Detected
+ by Clang 13's "-Wtautological-pointer-compare".
+
+2021-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/new.cpp (delete): Declare `throw()` (no
+ exceptions thrown); quiets "-Wimplicit-exception-spec-mismatch"
+ from Clang 13.
+
+2021-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4: Fix messaging nits.
+ (GROFF_MAKEINFO): Set `missing` to "missing 'makeinfo'" for
+ consistency with other assignments to `missing`.
+ (GROFF_TMAC): Utter an intelligible result in the configure
+ check when no system macro files requiring groff wrapping are
+ located.
+
+2021-10-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Handle special character escape sequences that map to
+ basic Latin glyphs in device control escape sequences
+ consistently among output devices.
+
+ * src/roff/troff/input.cpp (encode_char): Rearrange
+ conditionals. This is the logic that puts the "whatever" within
+ a \X'whatever' escape sequence into GNU troff's intermediate
+ output. Handle adjustable and nonadjustable space escape
+ sequences ("\~" and \ ") first. Then, if the token is a special
+ character escape sequence, retrieve its "contents" (glyph name).
+ Move the basic Latin mapping for the seven glyph names '-',
+ 'aq', 'dq', 'ga', 'ha', 'rs', and 'ti' here, before checking
+ whether the device description issued the
+ 'use_charnames_in_special' directive. This way, the 'html' and
+ 'xhtml' output devices can straightforwardly embed these basic
+ Latin characters in device control escapes (notably, "html:",
+ for which the present convention is to follow the this tag
+ immediately with a literal HTML URI, complete with `<a href>`
+ element syntax). If the special character is none of these and
+ we should 'use_charnames_in_special', proceed as groff 1.22.4
+ and earlier did. This is a behavior change, as was my addition
+ of this translation mechanism in the first place, so...
+
+ * doc/groff.texi (Postprocessor Access): Document it.
+
+ * src/roff/groff/tests/\
+ device_control_escapes_express_basic_latin.sh: Test it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?61401>.
+
+2021-10-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Map \[ti] correctly in device control escape sequences.
+
+ * src/roff/troff/input.cpp (encode_char): Fix copy-and-paste
+ error. \[ti] should put '~', not '^', into a device control
+ command.
+
+ Fixes <https://savannah.gnu.org/bugs/?61403>; problem introduced
+ by me in commit 9d61b3d1, 1 October.
+
+2021-10-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Handle degenerate input quietly.
+
+ * tmac/an.tmac (TH): Define new register `an-TH-was-called`.
+ (an-end): Return immediately if that register is not defined;
+ to format the default page footer we must have the information
+ declared in a valid `TH` call. (`TH` also initializes the type
+ size and baseline spacing registers we use to prepare the page
+ footer environment.) If the register _is_ defined, remove it
+ just prior to the end of this macro definition, in preparation
+ for next page to be rendered.
+
+ * tmac/tests/an_handle-degenerate-input-quietly.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/61402>, a regression from
+ groff 1.22.4 (problem introduced by me in the course of many
+ changes to trap management and header/footer handling to work
+ nicely in batch rendering with -mandoc and mdoc(7) documents).
+
+2021-10-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Warn if `TE` table macro called but `TW` register (set by
+ tbl(1)) undefined. Arrange it so that we warn only once per
+ man(7) document, not per table region.
+
+ * tmac/an.tmac (TH): Remove `TW` register when processing new
+ document and clear `an-was-tbl-failure-reported` register.
+ (TE): Check `TW` and `an-was-tbl-failure-reported` registers; if
+ the former is undefined and the latter false, emit the message
+ and set `an-was-tbl-failure-reported`.
+
+ Addresses part of <https://savannah.gnu.org/bugs/?61379>.
+ Thanks to Bjarni Ingi Gislason for the suggestion.
+
+2021-10-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Improve portability.
+
+ * src/devices/grotty/tests/osc8_works.sh: Fix typo in test.
+ Multiple regex quantifiers after an atom were not flagged with a
+ diagnostic by GNU grep 3.3, but were by BSD grep 2.5.1-FreeBSD.
+
+ * src/roff/groff/tests/smoke-test_html_device.sh: Stop trying to
+ set $LC_CTYPE to "C.UTF-8"; some systems don't support this
+ expediency. Skip the test if the tester hasn't configured the
+ environment adequately.
+
+ * tmac/tests/s_TC-works-with-percent-in-custom-titles.sh: Fix
+ portability problems exposed by FreeBSD sed (which version is
+ unclear). {1} Use POSIX BREs, dropping use of '+' quantifier.
+ {2} Add semicolons to terminate commands before braces on the
+ same line. Simplify surrounding test structure.
+ * tmac/tests/e_footnotes-work-with-columns.sh: Fix same two sed
+ problems.
+ * tmac/tests/andoc_flush-between-packages.sh:
+ * tmac/tests/doc_accept-mixed-case-section-headings.sh:
+ * tmac/tests/an_TS-do-not-keep-tables-when-cR-set.sh: Fix same
+ sed semicolon problem.
+
+ * src/roff/groff/tests/on_latin1_device_oq_is_0x27.sh: Rewrite
+ test to stop using a here document (containing an unpaired
+ single quote) inside a command substitution, which is broken in
+ GNU Bash 3.2 and some other versions. Instead construct the
+ input with printf(1). Also gets rid of a Bashism (process
+ substitution) that Ingo pointed out years ago.
+ * src/utils/grog/tests/recognize-perl-pod.sh: Same problem,
+ different solution. The Perl POD output is far too large to
+ construct programmatically, so move it into an external file...
+ * src/utils/grog/tests/foo.man: ...here.
+ * src/utils/grog/grog.am (EXTRA_DIST): Ship new test artifact.
+
+2021-10-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Make sed-based insertion of `lf` requests more
+ portable: a dance is required to embed a literal newline inside
+ a sed expression inside a shell command executed as part of a
+ Make target rule. We assume that neither the POSIX shell $''
+ operator nor a working printf(1) is available.
+ (DOC_GROFF): Define a shell variable containing a literal
+ newline, evading make(1) and echo(1)'s valiant attempts to
+ consume it.
+ (doc/pic.html, doc/webpage.html): Repeat trick, slightly
+ modified since the dependency needs to be manually identified.
+
+ Solution adapted from the GNU Autoconf manual, "Newlines in Make
+ Rules".
+
+ Fixes <https://savannah.gnu.org/bugs/?61265>. Thanks to John
+ Gardner for the report.
+
+2021-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TH): Stop populating `an-extra3` (the default
+ center header) if the section argument is "3p". "3p" does not
+ always mean a Perl-related man page; Debian- and Arch
+ Linux-based systems[1][2] (at least) have long used a "3perl"
+ suffix, while OpenBSD appears to still use "3p" for Perl[3],
+ which is also used by the POSIX man page distribution[4].
+ Fortunately, Perl and POSIX are reliable at providing a fifth
+ argument to `TH` anyway, so our fallback is as unnecessary as it
+ is non-impartial.
+ * tmac/groff_man.7.man.in (Document structure macros) <TH>:
+ De-document the above behavior.
+
+ [1] https://manpages.debian.org/bullseye/perl-doc/\
+ Pod::Man.3perl.en.html
+ [2] https://man.archlinux.org/man/Pod::Man.3perl
+ [3] https://man.openbsd.org/man3p/Pod::Man.3p
+ [4] https://man7.org/linux/man-pages/man3/system.3p.html
+
+2021-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Abbreviate the inside footer if necessary.
+
+ * tmac/an.tmac (an-prepare-inner-footer): Prevent the inside
+ footer from overrunning the center footer.
+ (BT): Use new string `an-ifoot` instead of `an-extra2` in page
+ footers.
+
+ Fixes <https://savannah.gnu.org/bugs/?61386>.
+
+2021-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #61386.
+
+ * tmac/tests/an_inner-footer-abbreviation-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_char.7.man (Description, Special character escape
+ forms): Document the `\C` escape sequence. Fix error: \[a] is
+ _not_ "translated to \a, the uninterpreted leader escape
+ sequence," but requests a glyph _named_ '\a' internally--it
+ appears thus in diagnostic messages and, importantly, in the
+ font description files defining special character glyph names.
+
+2021-10-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac: Refactor to reduce repetition.
+ (an-break-paragraph): New macro handles paragraph-breaking tasks
+ previously duplicated.
+ (SH, SS, P, TP, IP, HP): Call it rather than issuing its
+ constituent requests.
+
+2021-10-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (TP): Reset type size, vertical spacing, and font
+ to defaults before setting the new paragraph.
+
+ Fixes <https://savannah.gnu.org/bugs/?61380>.
+
+2021-10-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Auto-increment): Fix error; the `\R` escape
+ sequence does _not_ support an auto-incrementation amount.
+ * man/groff_out.5.man (Command reference/Simple commands): Fix
+ erroneous claim: 'N' is not a GNU roff extension; it appears on
+ page 27 of CSTR#54 (1992).
+
+2021-10-24 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ [ms]: Provide global default XH and XN implementations.
+
+ cf. <https://savannah.gnu.org/bugs/?58946#comment13>
+
+ * tmac/s.tmac (XH-INIT, XN-INIT, XH-UPDATE-TOC)
+ (XH, XN, XH-REPLACEMENT, XN-REPLACEMENT): Implement them, and...
+ * tmac/groff_ms.7.man: ...document them.
+
+2021-10-24 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ [ms]: Fix misleading NH macro indentation.
+
+ * tmac/s.tmac (@NH) [.T is html]: .if statement should exhibit
+ same indentation as preceding .DEVTAG-NH statement, but is
+ overindented; fix it.
+
+2021-10-23 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ [ms]: Defend against uncontrolled page trap recursion.
+
+ * tmac/s.tmac (pg@top) [HM+FM+.V>.p]: Diagnose insufficient page
+ length, and abort; cf. <https://savannah.gnu.org/bugs/?61294>
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [groff]: Fix code style nits.
+
+ * src/roff/groff/groff.cpp (main, help): Use standard C library
+ preprocessor symbols `EXIT_SUCCESS` and `EXIT_FAILURE` instead
+ of 0 and 1 literals, respectively. See commit fa4c27e9, 7
+ September.
+ (main): Replace `assert(0)` with a communicative predicate.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tty.cpp (tty_printer::special_link):
+ Eliminate casts by retyping `uri` and `pair` to pointers to
+ `const char`s.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am: Build more quietly.
+ (tmac/stamp-wrap): Prefix all rule commands with `$(AM_V_at)`;
+ since this target is a stamp file instead of a useful artifact
+ to be distributed, make its creation completely silent by
+ default.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/troff.am: Build more robustly.
+ (src/roff/troff/majorminor.cpp): Drop progress-reporting `echo`
+ in favor of prefixing final rule command with `$(AM_V_GEN)`.
+ Prefix earlier rule commands with `$(AM_V_at)`. Use `printf`
+ instead of `echo` to build the file, and create a temporary file
+ at first so that we don't race with the compiler on parallelized
+ builds.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/eqn.am (neqn): Simplify: drop removal of
+ target prior to overwriting it; any system we can build groff on
+ should have a shell that implements the clobbering semantics of
+ the POSIX shell '>' operator. (If this isn't true, we have
+ _many_ other target rules in our build to which we must add
+ prefatory `$(RM)`s, or I miss my guess.)
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/libgroff.am: Build more quietly and
+ robustly.
+ (src/libs/libgroff/version.cpp): Drop progress-reporting `echo`
+ in favor of prefixing final rule command with `$(AM_V_GEN)`.
+ Prefix earlier rule commands with `$(AM_V_at)`. Use `printf`
+ instead of `echo` to build the file, and create a temporary file
+ at first so that we don't race with the compiler on parallelized
+ builds. Drop nilpotent sed transformation; this looks like a
+ relic of past times when we'd drop a trailing ".0" from the
+ version number stored in the C symbol `Version_string`.
+ (charset.alias, ref-del.sed, ref-add.sed): Prefix rule command
+ with `$(AM_V_GEN)`.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/xditview/xditview.am: Build more quietly.
+ (src/devices/xditview/GXditview-ad.h): Drop progress-reporting
+ `echo` in favor of prefixing rule command with `$(AM_V_GEN)`.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am: Build more quietly.
+ (font/devpdf/enc/text.enc, font/devpdf/map/symbolmap,
+ $(DEVPDFFONTMAP_1)): Prefix all rule commands with
+ `$(AM_V_at)`; since these are all `mkdir`s and `cp`s, I reason
+ that little can go wrong with them that won't be disclosed by
+ these tools' own diagnostic messages, so they are insignificant
+ from a perspective of build progress.
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Build more quietly.
+ (doc/examples.stamp): Prefix all rule commands with
+ `$(AM_V_at)`; since this target is a stamp file instead of
+ a useful artifact to be distributed, make its creation
+ completely silent by default.
+ (doc/groff.info, .texi.txt): Prefix directory creation with
+ `$(AM_V_at)` and `makeinfo` command with `$(AM_V_GEN)`.
+ (.texi.dvi, .texi.pdf): Prefix directory creation with
+ `$(AM_V_at)` and `makeinfo` command with `$(AM_V_GEN)`. Send
+ diagnostic message to standard error if `texi2dvi` is
+ unavailable.
+ (.texi.html): Prefix directory creation with
+ `$(AM_V_at)`. Two HTML versions are produced, in split and
+ unsplit versions; prefix one `makeinfo` command with
+ `$(AM_V_GEN)` and the other with `$(AM_V_at)` so that only one
+ message is produced.
+ (gnu.eps): Drop useless/noisy `echo` command. Prefix copy
+ operation with `$(AM_V_at)`. Send diagnostic messages to
+ standard error if there are problems with the Netpbm tools.
+
+ (MOSTLYCLEANFILES): The `mostlyclean` target was leaving a file,
+ `groff.info-3`, behind in the build tree. At some point our
+ Texinfo manual grew beyond earlier expectations. Use a glob
+ `[0-9]` instead (giving a hostage to fortune that `makeinfo`
+ will never split our manual into more than nine chunks).
+
+2021-10-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * arch/misc/misc.am:
+ (arch_shdeps_sh): Pull file name into a new variable.
+ (EXTRA_DIST, shdeps.sed): Use it.
+ (shdeps.sed): Build more quietly; prefix with `$(AM_GEN_V)`.
+
+2021-10-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [nroff]: Support groff's -R flag to run refer(1).
+
+ There's no reason not to support calling `refer` with nroff-mode
+ documents; typographically, it's less demanding than tbl(1).
+ GNU troff(1) supports an incompatible `-R` flag to suppress the
+ reading of troffrc{,-end} files, but this is likely not the `-R`
+ that users will want--it is most useful for troubleshooting
+ troff, and nroff already unconditionally loads a macro file
+ {tty-char.tmac}.
+
+ * src/roff/nroff/nroff.sh: Do it.
+
+ * src/roff/nroff/nroff.1.man:
+ * NEWS: Document it.
+
+2021-10-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am (tmac/groff_man.7.man)
+ (tmac/groff_man_style.7.man): Be quieter by default; use
+ $(AM_V_GEN) more consistently with the rest of the build.
+
+2021-10-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_error): Format diagnostic
+ messages in closer alignment with GNU Coding Standards: don't
+ introduce a space between the program name and the input file
+ name.
+
+ * src/roff/groff/tests/string_case_xform_errors.sh: Update
+ expected output.
+
+2021-10-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (distribute_space): Revert an
+ `assert()` I added in commit b93eacd8d7 (5 September); we can
+ indeed reach this code with a negative amount of desired space,
+ and in fact the "show hyphenation points" trick
+ <https://froude.eu/groff/examples/hyphenation-points.html>
+ relies upon it. Add explanatory comment.
+
+ Fixes <https://savannah.gnu.org/bugs/?61348>.
+
+2021-10-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * test-groff.in: Add support for sboxes.tmac.
+
+2021-10-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Include <config.h> before any standard headers.
+
+ Gnulib requires that files that might use Gnulib features (which
+ pretty much means every C or C++ source file) must include
+ <config.h> first. Arrange for that. This will be needed once
+ Groff updates to the latest Gnulib; see Bjarni Ingi Gislason's
+ problem report in:
+ <https://lists.gnu.org/r/bug-gnulib/2021-10/msg00008.html>
+
+ The only exception I can see is src/utils/addftinfo/guess.cpp,
+ which does not include any standard include file either directly
+ or indirectly, and so need not include <config.h>.
+
+ * src/devices/xditview/Dvi.c:
+ * src/devices/xditview/font.c:
+ * src/devices/xditview/lex.c:
+ * src/devices/xditview/page.c:
+ * src/devices/xditview/parse.c:
+ * src/libs/libbib/map.c:
+ * src/libs/libgroff/change_lf.cpp:
+ * src/libs/libgroff/cmap.cpp:
+ * src/libs/libgroff/cset.cpp:
+ * src/libs/libgroff/fmod.c:
+ * src/libs/libgroff/getcwd.c:
+ * src/libs/libgroff/lf.cpp:
+ * src/libs/libgroff/ptable.cpp:
+ * src/libs/libgroff/quotearg.c:
+ * src/libs/libxutil/DviChar.c:
+ * src/libs/libxutil/XFontName.c:
+ * src/libs/libxutil/xmalloc.c:
+ * src/utils/indxbib/signal.c: Do it.
+
+ [Fixes <https://savannah.gnu.org/bugs/?61315>. --GBR]
+
+2021-10-10 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Handle pdfs > v1.4 loaded by \X'pdf: pdfpic'.
+
+ * src/devices/gropdf/gropdf.pl: Improve loading of pdfs above
+ version 1.4, i.e. handle compressed nodes in /ObjStm. Also
+ improve code in \X'pdf: import'.
+
+2021-10-10 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Add new background boxes to gropdf.
+
+ * src/devices/gropdf/gropdf.pl: New \X'pdf: background' command.
+ * tmac/pdf.tmac: Covenience command .pdfbackground added.
+ * contrib/sboxes/: Files which demonstrate use of background
+ boxes using -ms macros.
+
+2021-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Fix portability problems in 2 tests.
+
+ * src/roff/groff/tests/break_zero-length_output_line_sanely.sh:
+ * tmac/tests/s_PN-works.sh: Migrate from `echo` to `printf` for
+ test inputs containing backslashes to be interpreted literally.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?61302>. Thanks to
+ Deri James for identifying the problem.
+
+2021-10-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Slightly refactor.
+
+ * src/devices/grotty/tty.cpp: Boolify. Demote numerous
+ variables (and one return type) from `int` to `bool`, use
+ Boolean instead of integer literals with them, and give the
+ variables names resembling logical predicates.
+ - horizontal_tab_flag -> want_horizontal_tabs
+ - form_feed_flag -> want_form_feeds
+ - bold_flag_option -> want_emboldening_by_overstriking
+ - bold_flag -> do_bold
+ - underline_flag_option -> want_italics_by_underlining
+ - underline_flag -> do_underline
+ - overstrike_flag -> want_glyph_composition_by_overstriking
+ - draw_flag -> allow_drawing_commands
+ - italic_flag_option -> want_sgr_italics
+ - italic_flag -> do_sgr_italics
+ - reverse_flag_option -> want_reverse_video_for_italics
+ - reverse_flag -> do_reverse_video
+ - old_drawing_scheme -> use_overstriking_drawing_scheme
+ (class tty_printer:printer): Similarly.
+ - is_underline -> is_underlining
+ - is_bold -> is_boldfacing
+ - cu_flag -> is_continuously_underlining
+ (tty_printer::tty_color): Demote return type as above. Invert
+ its sense; rename `unknown_color` to `is_known_color`.
+ (tty_printer::color_to_idx): Invert sense of test at
+ `tty_color()` call site.
+
+2021-10-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Finish documenting new `TC-MARGIN` register and
+ `TC-LEADER` special character.
+
+ Fixes <https://savannah.gnu.org/bugs/?61157>.
+
+2021-10-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Slightly refactor.
+
+ * src/devices/grotty/tty.cpp (tty_printer::special_link): Use
+ consistent loop styles and drop unnecessary arithmetic.
+
+2021-10-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix oversight and improve `MR` test.
+
+ * tmac/an-ext.tmac (initialization): Enable `mY` register to
+ indicate use of grotty(1) (and therefore OSC 8 support) if the
+ "ascii", "cp1047", or "latin1" output devices are used, not just
+ "utf8".
+
+ * tmac/tests/an_MR-works.sh: Drop copy-and-paste cruft from a
+ different test. Update expected output and check for the
+ presence of "link" device control subcommands, not just correct
+ font selections.
+
+2021-10-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add `MR` macro for man page cross references.
+
+ * tmac/an.tmac (an-prepare-page-title): After a possibly
+ abbreviated man page title is determined, redefine `an-pageref`
+ to set the title portion in the font stored in the `MF` string
+ and bracket it with italic corrections if that font is thought
+ to be oblique.
+ (MR): Add macro to format the text of a man page cross
+ reference, and hyperlink it on HTML and terminal output devices
+ if permitted by the `U` register.
+ (initialization): Define `MF` string as `I` if not already set.
+ Define `an-lic` and `an-ic` strings as either empty or as
+ containing italic corrections.
+
+ * tmac/an-ext.tmac (MR): If the formatter is not GNU troff,
+ define macro to format the text of a man page cross reference.
+
+ * tmac/groff_man.7.man.in: Document it.
+ (Description): Add macro to summary table.
+ (Description/Hyperlink macros): Document new feature. Note
+ origin in Plan 9 troff. [style] Add examples of use.
+ (Description/Font style macros): Drop man page cross references
+ from list of items whose typeface conventions are disputed,
+ since we have a semantic macro now and a configurable means of
+ resolving the problem.
+ (History): Add `MR` item.
+ (Options) <MF>: Document new string.
+ (Files) <an-ext.tmac>: Revise discussion to accommodate `MR`.
+ (Authors): Add myself an author of extension macros.
+
+ * tmac/tests/an_MR-works.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ * NEWS: Add item.
+
+2021-10-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (SH, SS): Invoke `ne` request _before_ performing
+ font remapping: any page-breaking decision will be taken before
+ the remapping happens, and so won't be in effect across a page
+ boundary, undesirably impacting header and footer text.
+
+ Fixes <https://savannah.gnu.org/bugs/?61279>.
+
+2021-10-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Regression-test Savannah #61279.
+
+ * tmac/tests/an_font-remapping-does-not-affect-titles.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-10-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (an-abbreviate-title): Rename to...
+ (an-prepare-page-title): ...this.
+
+2021-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Correct erroneous claim: the ".NH S" extension to ms(7)
+ comes from 4.2BSD, not GNU.
+
+2021-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/ms.ms (Creating a table of contents): Sync with recent
+ additions to groff_ms(7), expand, and heavily revise.
+
+2021-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [andoc,man,mdoc]: Fix Savannah #61266. Resolve problems in
+ batch rendering of man pages to PDF arising from entanglement
+ of end-of-input traps, page location traps, continuous rendering
+ mode, and andoc's reloading of the (m)an and (m)doc packages.
+
+ * tmac/andoc.tmac (reload-doc, reload-man): Remove end-of-input
+ traps alongside others.
+
+ * tmac/an.tmac (an-end): Only perform flush and "manual" page
+ footer placement if in continuous rendering mode, since this
+ macro is not only called by a trap placed only in continuous
+ rendering mode, but also by andoc when changing macro packages.
+ Unconditionally remove the `an-header` trap since the next
+ document might be using a different macro package.
+
+ * tmac/mdoc/doc-common: In initialization, set flag indicating
+ that manual header placement will be required.
+ (Dt): Call `doc-setup-header` (which sets up several types of
+ trap) unconditionally, and break the page if the vertical
+ drawing position is anywhere but at the top.
+ (Os): If the package has just been initialized, call
+ `doc-header` to force the page header to be written.
+ (doc-end-macro): Remove `doc-header` trap since the next
+ document might be using a different macro package. Break the
+ page. Set flag indicating that manual header placement will be
+ required for the next document.
+
+ * tmac/mdoc/doc-ditroff (doc-setup-header): Only set page
+ location traps for the header and footer if not continuously
+ rendering.
+ * tmac/mdoc/doc-nroff (doc-setup-header): Stop calling
+ `doc-header` here if continuously rendering. Emit an
+ unconditional break. Except for the location of the footer
+ trap, the `doc-setup-header` implementations are now identical.
+
+ Refactoring is needed: some macros and registers have misleading
+ names, there is some code duplication in mdoc, and some of the
+ trap management problems are solved in slightly different ways
+ in man(7) and mdoc(7), perhaps unnecessarily. We also need some
+ test scripts to protect us from regressions. But this fixes the
+ rendering problems.
+
+ Fixes <https://savannah.gnu.org/bugs/?61266>.
+
+2021-10-02 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Correct manpage typo/inconsistency.
+
+ * tmac/groff_ms.7.man (TC_LEADER, TC_MARGIN): Correct; should
+ be...
+ (TC\-LEADER, TC\-MARGIN): ...respectively, for consistency
+ with...
+ * tmac/s.tmac (TC-LEADER, TC-MARGIN): ...these.
+
+2021-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (encode_char): Update diagnostic
+ messages to not presume the identity of the escape character;
+ continues 9be3f8e3 (4 June).
+
+2021-10-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/tty.cpp (tty_printer:special_link): Tighten
+ code slightly by taking advantage of preprocessor string literal
+ concatenation.
+
+2021-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix `U` enablement override so it actually works the way
+ I had in mind.
+ - The package proper enables it by default, but
+ - the sample site configuration file switches it off, on the
+ assumption that distributors and users will know better than
+ we do when they get a capable pager in place, and
+ - a register setting at the command line (or otherwise prior to
+ the loading of the macro package) is dispositive.
+
+ * tmac/an-ext.tmac: Rename URI output device capability register
+ from `U` to `mU`.
+ (UR, UE, MT, ME): Test both `U` and `mU` before handling
+ hyperlinks specially.
+ * tmac/an.tmac: If `man.local` did not initialize `U`, switch it
+ on. The hope is that we can drop the stuff in `man.local`
+ completely at some point.
+ * tman/man.local: Only initialize `U` if it is not already
+ defined.
+
+2021-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Use OSC 8 hyperlinks.
+
+ * tmac/an-ext.tmac: Add registers `mY` (output driver is
+ "grotty") and `U` (generate hyperlinks). `U` is intended to
+ apply to hyperlinking support in general, not just grotty's OSC
+ 8 feature. If the output driver is either grohtml or grotty,
+ make `U` true (`man.local` is read subsequently and can override
+ it).
+ (UR, MT): Conditionalize diversion production on hyperlink
+ support, not grohtml use per se.
+ (UE, ME): Generate device control commands for `tty` device to
+ emit hyperlinks.
+
+ * tmac/groff_man.7.man.in (Options): Document -rU.
+ (Files) [style]: Add example of `U` register enablement.
+
+ * tmac/man.local: Disable `U` register by default, except on the
+ `html` device.
+
+ * NEWS: Add item.
+
+2021-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grotty]: Add OSC 8 hyperlink support.
+
+ * src/devices/grotty/tty.cpp: Do it. Define `OSC` (Operating
+ System Command) and `ST` (String Terminator) preprocessor
+ symbols for these ECMA-48 (ISO 6429) character sequences.
+ (tty_printer::simple_add_char): Add stripped-down alternative to
+ `add_char()` member function for cases where we want to use many
+ defaults because we're writing a terminal escape sequence, not
+ rendering a glyph. (A function like `add_char()` that takes 8
+ arguments of varying types is a code smell--phew!)
+ (tty_printer::special): Call `special_link()` member function if
+ the device control command is `link`.
+ (tty_printer::special_link): Add new member function to generate
+ OSC 8 hyperlinks.
+
+ * src/devices/grotty/grotty.1.man: Document it. Observe in
+ multiple places that disablement of SGR escape sequences
+ disables OSC 8 too.
+
+ * src/devices/grotty/tests/osc8_works.sh: Test it.
+ * src/devices/grotty/grotty.am (TESTS, grotty_TESTS): Run test.
+ (EXTRA_DIST): Ship test.
+
+ * NEWS: Add item.
+
+ Fixes <https://savannah.gnu.org/bugs/?60666>. Thanks to Steffen
+ Nurpmeso for supplying a proof-of-concept. (I went with my own
+ implementation, though, so blame me if it breaks.)
+
+2021-10-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Convert special character glyphs corresponding to
+ Unicode Basic Latin ("ASCII") code points to those code points
+ when they occur in device escapes. (They should be correct for
+ IBM code page 1047 as well, but this is untested.) This is
+ necessary for encoding URLs in device control commands. Special
+ character identifiers are presumed to be the defaults documented
+ in groff_char(7); this is a design gap that we should consider
+ addressing. (We don't have a way to ask "is this the special
+ character corresponding to Unicode basic Latin code point X?")
+
+ * src/roff/troff/input.cpp (encode_char): Do it.
+
+2021-09-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man, mdoc]: Draw line after each page more consistently in
+ continuous rendering mode.
+
+ * tmac/an.tmac (an-bp): Move responsibility for line-drawing
+ after each document from here...
+ (an-end): ...to here. Refactor; drop
+ `an-do-draw-line-after-document` register in favor of testing
+ `\n[.F]` for nullity; if it is not null, then another document
+ is due to be processed (in fact, `.F` already contains its file
+ name), and we need to draw a separating line. If it is null, we
+ have reached the end of input and none is necessary.
+
+ * tmac/mdoc/doc-ditroff.tmac (doc-setup-page-layout):
+ * tmac/mdoc/doc-nroff.tmac (doc-setup-page-layout): Save
+ configured line length in new register `doc-line-length`.
+ * tmac/mdoc/doc-common.tmac (doc-end-macro): Port the above
+ man(7) feature to mdoc(7); draw a line of this length after each
+ document if continuously rendering.
+
+2021-10-01 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ [ms]: Update footnote handling documentation.
+
+ * tmac/groff_ms.7.man: Make some linguistic style adjustments.
+ (FP): Document it; see <https://savannah.gnu.org/bugs/?61022>.
+ (FS-MARK): Likewise, document this recently added feature.
+
+2021-10-01 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ [ms]: Support user-defined TOC leader style.
+
+ * tmac/s.tmac (toc*leader-char): Rename it as...
+ (TC-LEADER): ...this; within PX, leave it unchanged, if
+ predefined.
+ (TC-MARGIN): New numeric register; if predefined, leave it
+ unchanged, otherwise define as \w'000'; use it instead of
+ hard-wired definition, within PX; see
+ <https://savannah.gnu.org/bugs/?61157>.
+
+ * tmac/groff_ms.7.man (TC-LEADER, TC-MARGIN): Document them.
+
+2021-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [pic]: Update input file name correctly.
+
+ * src/preproc/pic/troff.cpp (troff_output::set_location): Copy
+ the inbound file name argument with `strdup()` and store pointer
+ to this copy in `last_filename` instead of aliasing argument.
+ (troff_output::~troff_output): `free()` the memory allocated by
+ `strdup()` in destructor.
+
+ Fixes <https://savannah.gnu.org/bugs/?61206>. Pointer
+ assignment instead of a string copy was being performed, which
+ means that after its initial assignment, `last_filename` always
+ shared its value ultimately with the `current_filename` pointer
+ {a libgroff symbol}, so `strcmp()` was always being performed on
+ identical pointers. Problem appears to date back 30+ years, to
+ the dawn of our repo history.
+
+2021-09-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devlj4/S: Make font name consistent with file name.
+
+2021-09-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/font.cpp (font::load): Throw error if a font
+ description file is missing a `spacewidth` directive, since it
+ is now re-documented as mandatory. Atypically, we don't return
+ false in this scenario; instead we proceed with the existing
+ logic to compute a space width for the font based on typical
+ practices for Western alphabetic fonts (see, e.g.,
+ <https://type.today/en/journal/spaces>.
+
+ * font/devdvi/EX:
+ * font/devdvi/MI:
+ * font/devdvi/S:
+ * font/devdvi/SA:
+ * font/devps/EURO: Add `spacewidth` directive to font
+ description files we ship that were missing it. We use the same
+ values that libgroff would have computed, so there should be no
+ visible difference.
+
+2021-09-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Mark `$(TEST_SUITE_LOG)` as `.PRECIOUS`. This
+ prevents the test suite log from being deleted if there are any
+ failures.
+
+ Fixes <https://savannah.gnu.org/bugs/?61213>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (do_line): Move first-macro-call test
+ for `TH` to a more appropriate location.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Refactor to make it easier to generalize a per-package
+ scoring mechanism.
+
+ * src/utils/grog/grog.pl: Convert `inferred_main_package` from
+ scalar to list. Add scalar `selected_main_package` to store a
+ "winner" from the list of main packages inferred.
+ (push_main_package): Add subroutine to populate
+ `inferred_main_package`.
+ (do_line, infer_man_or_ms_package): Update to use
+ `push_main_package`.
+ (construct_command): Rewrite to select a main package from the
+ list `inferred_main_package`, taking user-supplied arguments
+ into account as an overriding factor. Drop now-unused `msupp`
+ list.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp (main): If the `-I` option is given,
+ run the grn preprocessor and pass it an `-M` option with `-I`'s
+ argument.
+
+ * NEWS:
+ * src/roff/groff/groff.1.man (Options): Document it. Also
+ document that `-I` options are passed to the output driver.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (do_line): Don't strip groff-style
+ comments \# if AT&T compatibility mode is enabled.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Perform more font description file validation. Our
+ documentation said that the `name` directive was mandatory but
+ we didn't actually enforce this. Also be more specific in our
+ complaints of ill-formedness.
+
+ * src/libs/libgroff/font.cpp (font::load): Add local Boolean
+ variable `saw_name_directive`. Rename `had_charset` to
+ `saw_charset_directive` for symmetry. Emit distinct diagnostics
+ for `spacewidth` and `slant` directives having a missing,
+ non-numeric, or out-of-range argument. Emit diagnostic if the
+ file lacks a `name` directive.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Slightly refactor.
+
+ * src/libs/libgroff/font.cpp (struct text_file): Rename member
+ variable `size` to `linebufsize` for clarity (it's certainly not
+ the size of the text file).
+ (text_file::text_file): Initialize `linebufsize` in constructor.
+ (text_file::next_line): Allocate new `buf` using `linebufsize`
+ instead of magic number (which was also stored to `size`, making
+ it only semi-magic, I guess). Rename local variable `i` to
+ `length` since it is in fact the length (in `char`s) of the
+ string stored in `buf`.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Revisit fix for Savannah #61173.
+
+ * src/libs/libgroff/font.cpp (text_file::text_file): Restore
+ setting of `lineno` member variable to `0` in constructor
+ initializer list, but...
+ (text_file::next_line): ...unconditionally increment it every
+ time through this member function's outer loop.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Align diagnostic message format with libgroff.
+
+ * src/roff/troff/input.cpp (fatal_with_file_and_line): Report
+ the program name if one is defined.
+ (fatal_with_file_and_line, error_with_file_and_line,
+ debug_with_file_and_line): Report the line number of the input
+ file only if it is positive, so that other values can be used
+ for "whole file" complaints. See commit cd0457b6, 17 September.
+
+2021-09-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop redundant diagnostic.
+
+ * src/libs/libgroff/font.cpp (font::load): Drop redundant
+ diagnostic; a missing `charset` directive is already checked for
+ later, circa line 998.
+
+2021-09-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Fix code style nits.
+
+ * src/libs/libgroff/font.cpp (font::font): Use initializer list
+ as much as possible in constructor.
+ (font::unit_scale, font::get_width, font::get_height,
+ font::get_depth, font::get_italic_correction,
+ font::get_left_italic_correction,
+ font::get_subscript_correction, font::get_character_type,
+ font::get_code, font::get_special_device_encoding): These member
+ functions rely on the font being either indexed or associated
+ with an output device that uses the `unicode` directive in its
+ `DESC` file. The compiler doesn't know this, so annotate the
+ `abort()` calls that conclude them. Add an `assert()` before
+ each one to more usefully describe the violated invariant in the
+ event this unreachable code is somehow reached.
+ (font::get_width): Annotate special meaning of zero zoom factor.
+
+2021-09-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/include/font.h (UNDEFINED_GLYPH): Use idiomatic C++98 null
+ pointer constant.
+
+2021-09-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix compiler warning and dead store.
+
+ * src/devices/grohtml/post-html.cpp (html_printer::special):
+ Update call of `font::load_font()` to stop passing obsolete
+ parameter (deleted by me in 2dff87d3, 17 September). The value
+ stored to the parameter by that function was never read anyway,
+ so also get rid of the variable that contained it.
+
+ Fixes <https://savannah.gnu.org/bugs/?61187>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-09-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Slightly refactor.
+
+ * src/include/font.h (font::scan_papersize): Demote return type
+ from `int` to `bool`.
+ * src/libs/libgroff/font.cpp (font::scan_papersize): As above.
+ Use Boolean instead of integer literals. Also rename `FILE`
+ stream pointer from `f` to `fp` and perform an explicit
+ comparison against the idiomatic C++98 null pointer constant.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff, troff]: Slightly refactor device and font description
+ file loading. Remove dead code.
+
+ * src/include/font.h (font::load_font): Drop second parameter.
+ It was never used for its intended purpose.
+ (load): Drop first parameter; likewise.
+ * src/libs/libgroff/font.cpp (font::load, load): As above.
+
+ * src/libs/libgroff/font.cpp (struct text_file): Rename
+ `skip_comments` to `recognize_comments`. Demote that and
+ `silent` from `int` to `bool`.
+ (text_file::text_file): Use Boolean rather than integer literals
+ in constructor.
+ (text_file::next_line, font::load): Apply above renaming.
+
+ * src/libs/libgroff/font.cpp (font::load): Rename parameter from
+ `head_only` to `load_header_only` to be more communicative.
+ Drop test of font description file name being `DESC`; this code
+ was not being reached. Stop throwing errors from this function
+ on failure to open the file; the caller will handle this when it
+ sees our false return value. Rename local variable `command` to
+ `directive` for alignment with our documentation. Replace "I
+ dont think this should happen" test and comment with `assert()`.
+ (struct table): Rename member from `command` to
+ `numeric_directive` to indicate its specificity, tracking only a
+ subset of valid `DESC` file directives.
+
+ * src/libs/libgroff/font.cpp (font::load, font::load_desc):
+ Remove redundant assignments to the member variable formerly
+ known as `skip_comments`.
+
+ * src/libs/libgroff/font.cpp (font::load_desc): Rename local
+ variable `directive_found` to `numeric_directive_found` to
+ clarify logic.
+
+ * src/roff/troff/node.cpp (mount_font_no_translate): Simplify
+ call of `font::load_font`. The `not_found` in-out parameter
+ which was so agonizingly passed up through layers of library
+ calls was never actually read. Drop code that has been `#if
+ 0`-ed out since 1993.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/font.cpp (font::load_desc): Clear line
+ number before emitting whole-file validity diagnostics.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/font.cpp (font::load_desc): Emit correct
+ line numbers when complaining of invalid `sizescale`, `hor`, or
+ `vert` values in device description files.
+
+ Fixes <https://savannah.gnu.org/bugs/?61174>.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Increase validation of device and font description
+ files.
+
+ * src/libs/libgroff/font.cpp (font::load): Validate the syntax
+ and value of the `name` directive.
+ (font::load_desc): Issue distinct diagnostics for a `fonts`
+ directive that is missing arguments and for a first argument
+ that can't be interpreted as a valid number.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Make error reporting more flexible.
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ Interpret a nonpositive line number specially: treat the
+ diagnostic as applying to the entire file, and omit the line
+ number.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Add information to diagnostics.
+
+ * src/libs/libgroff/font.cpp (font::load): Drop unused argument
+ from `error()` call.
+ (font::load_desc): In another, add name of numeric directive
+ that is given an unparsable number.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Tweak code style.
+
+ * src/libs/libgroff/font.cpp (trim_args, font::load)
+ (font::load_desc): Compare pointer explicitly to null pointer
+ literal `0` instead of using logical complementation.
+ (font::load, font::load_desc): Swap order of null pointer
+ equality comparisons when a typo or thinko could lead to lvalue
+ assignment.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Use idiomatic C++98 null pointer constant.
+
+ * src/libs/libgroff/font.cpp (text_file::error)
+ (glyph_to_unicode, font::get_special_device_encoding)
+ (font::load):
+ * src/libs/libgroff/fontfile.cpp (font::image_generator):
+ * src/libs/libgroff/nametoindex.cpp (class charinfo)
+ (character_indexer::named_char_glyph)
+ (character_indexer::numbered_char_glyph):
+ * src/libs/libgroff/string.cpp (string::clear):
+ * src/libs/libgroff/tmpfile.cpp (temp_init::temp_init):
+ * src/libs/libgroff/tmpname.cpp (gen_tempname): Use `0` literal
+ instead of `NULL` to represent a null pointer; this was
+ idiomatic in C++98 and is mostly the practice elsewhere in
+ groff. Also swap order of null pointer equality comparisons
+ when a typo or thinko could lead to lvalue assignment.
+
+ * src/roff/troff/input.cpp (input_stack::diversion_state)
+ (input_stack::get_diversion_state, charinfo::contains)
+ (glyph_to_name): Similar.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Slightly refactor.
+
+ * src/libs/libgroff/font.cpp (font::load): Use same loop style
+ as `font::load_desc()`.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Fix off-by-one error in font and device description
+ file reader diagnostics.
+
+ * src/libs/libgroff/font.cpp (text_file::text_file): All text
+ files begin with line 1, not line 0.
+
+ Fixes <https://savannah.gnu.org/bugs/?61173>.
+
+2021-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Boolify more interfaces.
+
+ * src/include/font.h (font::unit_scale):
+ * src/libs/libgroff/font.cpp (font::unit_scale): Demote return
+ type from `int` to `bool`. Use Boolean literals instead of
+ integers.
+
+ * src/libs/libgroff/font.cpp (struct text_file): Rename `next`
+ member function to `next_line`. Demote its return type from
+ `int` to `bool`. Use Boolean literals instead of integers.
+
+2021-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Boolify local variables.
+
+ * src/libs/libgroff/font.cpp (font::load, font::load_desc):
+ Demote local variables used as Booleans from `int` to `bool` and
+ update literals used with them from integer to Boolean.
+
+2021-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grn, groff, troff]: Communicate better when device DESC file
+ can't be loaded.
+
+ * src/libs/libgroff/font.cpp (font::load_desc): Stop writing
+ diagnostic to standard error.
+ * src/preproc/grn/main.cpp (getres):
+ * src/roff/troff/troff.cpp (main): Replace "sorry, I can't
+ continue" fatal diagnostic with a more informative message.
+ Instead say which device's DESC file the program was trying to
+ open, which might reveal a user's logic error or typo.
+ * src/roff/groff/groff.cpp (main): Replace "invalid device" text
+ of fatal diagnostic similarly. I think it is more helpful to
+ indicate the operation that failed rather than saying the device
+ was invalid, particularly since there are other ways for a
+ device description to be invalid even if a DESC file is found
+ and loaded.
+
+2021-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Throw warning diagnostic if device DESC file attempts
+ to load unavailable fonts.
+
+ * src/roff/troff/input.cpp (main): Take advantage of new Boolean
+ return values of `mount_style()` and `mount_font()` to produce
+ warning diagnostics if mounting a style or font as directed by
+ the DESC file fails. Explain in a comment why, at present, this
+ style mount warning will never actually trip.
+
+2021-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Lift font mounting diagnostic messages to be closer to
+ their user-controlled contexts to provide more information. In
+ many cases no diagnostic was being thrown at all when an
+ unavailable font was requested by name, which is the method most
+ users prefer, and which meant that failures resulting from typos
+ in font names for many requests (`uf`, `fschar`, `rfschar`,
+ `special`, `fspecial`, `fzoom`, `bd`, `tkf`, `cs`) were going
+ unreported. Further, promote these font warnings to errors
+ because the request will utterly fail to do what was requested
+ with no reasonable fallback. Possibly, they were formerly
+ warnings because at the low level they were being emitted, they
+ could also have originated from unavailable fonts encountered in
+ device description files, and while that's bad news, it results
+ in no formatting problems if it doesn't affect fonts that an
+ input document actually uses.
+
+ * src/roff/troff/node.cpp (struct font_lookup_info): New struct
+ keeps the font name or position requested, and the position of
+ successful font lookup.
+ (font_lookup_info::font_lookup_info): Add constructor.
+ (font_lookup_error): New function builds error message using a
+ `font_lookup_info` struct and a message argument.
+ (get_fontno): Rename to...
+ (has_font): ...this. Add argument to take a pointer to a
+ `font_lookup_info` struct. Return a `bool` indicating whether
+ the lookup succeeded. Place former `int` return value into the
+ struct instead. Populate the other struct members with the
+ requested font name or position, as appropriate.
+ (mount_font_no_translate): Stop throwing warning diagnostic here
+ if a font cannot be loaded. Instead, throw them...
+ (font_position): ...here, and...
+ (underline_font, define_font_special_character,
+ remove_font_special_character, read_special_fonts,
+ font_special_request, font_zoom_request, bold_font, track_kern,
+ constant_space): ...here, using `font_lookup_info` structs and
+ `has_font()`.
+ (remove_font_special_character): Stop returning early if font
+ lookup fails; it's gratuitously inconsistent with other similar
+ functions (save one, which has a reason to be different).
+ (define_font_special_character): Return early if font lookup
+ fails and say why in a comment (we can't `skip_line()`).
+
+ Fixes <https://savannah.gnu.org/bugs/?59522>.
+
+2021-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * [libgroff, troff]: Further boolify.
+
+ * src/include/font.h (load_font, font): Demote parameters from
+ {pointer to} `int` to `bool` and update default literal from
+ integer to Boolean (except for the pointer). Update comment.
+ * src/libs/libgroff/font.cpp (load_font, load): Similarly.
+
+ * src/roff/troff/node.h (mount_font):
+ * src/roff/troff/node.cpp (mount_font): Demote return type from
+ `int` to `bool`.
+
+ * src/roff/troff/node.h (mount_style):
+ * src/roff/troff/node.cpp (mount_style): Promote return type
+ from `void` to `bool`.
+
+ * src/roff/troff/node.cpp (mount_font_no_translate): Demote
+ return type and `check_only` parameter from `int` to `bool` and
+ use Boolean rather than integer literals with them.
+ (check_font): Update call site of `mount_font_no_translate` to
+ use Boolean literal.
+ (font_position): Indicate that "error" is ignored by casting
+ return value of `mount_font` to void instead of using a comment.
+ (style): Cast return value of `mount_style` to `void`.
+
+2021-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Add `.DELETE_ON_ERROR` special target; both GNU
+ and FreeBSD make(1)s support it so maybe it will be portable
+ enough. This avoids, among other problems, a target appearing
+ falsely up-to-date (often as an empty file) when the troff
+ process generating it experiences an assertion failure.
+
+2021-09-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Since June 1991 if not earlier, groff (technically, the refer,
+ lookbib, and lkbib programs) has trusted the header contents of
+ binary bibliographic index files (canonically generated with
+ indxbib(1)) regarding the sizes of the data structures that
+ follow in the file, a notorious class of security problem. In
+ July 2013, the Mayhem Team at Carnegie Mellon University
+ reported to the Debian Bug Tracking System a problem with
+ groff's refer(1) implementation dumping core when reading an
+ index file prepared by a fuzzer.
+
+ * src/libs/libbib/index.cpp (index_search_item::check_header):
+ Add new member function to validate the header of an indexed
+ bibliography file, returning a string describing in detail the
+ first validity problem encountered.
+ (index_search_item::load): Perform the foregoing check before
+ using any of the size values taken from the header; they are
+ relied upon for pointer arithmetic. If in verification mode
+ {using the undocumented `-V` flag to refer(1), lkbib(1), or
+ lookbib(1)}, report the details of the problem encountered.
+ Regardless of that mode, if there is a validity problem, report
+ corruption of the index file and abandon it, forcing fallback to
+ the text version of the corresponding bibliography file.
+
+ Fixes <https://bugs.debian.org/716109>.
+
+2021-09-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libbib/index.cpp
+ (index_search_item::get_invalidity_reason): Don't complain about
+ a last list element being nonnegative if the list size was zero
+ in the first place, as can happen with an empty index. More
+ seriously from a language standpoint, avoid reading through a
+ negative array index (this can escape a compiler's attention
+ because we're reading from the midst of a heap-allocated or
+ `mmap()`ed region, but it's still a code smell).
+
+ Fixes <https://savannah.gnu.org/bugs/?61144>.
+
+2021-09-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libbib/index.cpp (index_search_item::load)
+ (index_search_item::get_invalidity_reason)
+ (index_search_item::add_out_of_date_file): Clarify diagnostic
+ messages. Make it more obvious when we're complaining of a
+ problem in an indexed bibliographic database file (rather than a
+ plain text one). Dial down the amount of Unix jargon a little.
+
+2021-09-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libbib]: Partially boolify.
+
+ * src/include/search.h:
+ * src/libs/libbib/index.cpp:
+ * src/preproc/refer/refer.cpp:
+ * src/utils/lkbib/lkbib.cpp:
+ * src/utils/lookbib/lookbib.cpp: Demote `verify_flag` from an
+ `int` to a `bool`, rename it to `do_verify`, use Boolean
+ instead of integer literals with it, and update call sites.
+
+ * src/libs/libbib/index.cpp: Rename `do_verify()` member
+ function to `get_invalidity_reason()` (it returns a string).
+ Demote `load()` from `int` to `bool`; do the same for `verify()`
+ and rename it to `is_valid()` as well. Use Boolean instead of
+ integer literals with them.
+ (index_search_item::is_valid, make_index_search_item): Update
+ call sites of renamed member functions.
+
+2021-09-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libbib/map.c (mapread): Compare return value of
+ `mmap()` to `MAP_FAILED` instead of `(char *)-1`. `MAP_FAILED`
+ is documented in POSIX Issue 5 a.k.a. SUSv2
+ <https://pubs.opengroup.org/onlinepubs/007908799/xsh/mmap.html>
+ {1997} and should be portable enough by now.
+
+2021-09-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Clamp negative tab stop positions to zero instead of
+ throwing an assertion failure.
+
+ * src/roff/troff/env.cpp (tab_stops::distance_to_next_tab):
+ Replace `assert` with clamping logic, ensuring that `lastpos`
+ can never be negative. While negative tab stop positions don't
+ make much sense (they result in zero horizontal motion), user
+ input like `.ta T -5` should never provoke an assertion failure.
+
+ (set_tabs): Throw range warning in additional scenario, viz., if
+ a repeating tab offset is negative.
+
+ Fixes <https://bugs.debian.org/990406>. Thanks to наб for the
+ report.
+
+2021-09-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Boolify `set_tabs` function.
+
+ * src/roff/troff/env.cpp (set_tabs): Demote local variables from
+ `int` to `bool` and give them predicate-like names.
+ - `first` -> `is_first_stop`
+ - `repeated` -> `is_repeating_stop`
+ Use Boolean instead of integer literals in assignments to them.
+
+2021-09-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Deprecate `OP` macro.
+
+ * tmac/an-ext.tmac (OP): Move implementation from here...
+ * tmac/an.tmac (OP): ...to here. Throw deprecation warning.
+ Throw style warning if wrong number of arguments given.
+
+ * tmac/groff_man.7.man.in (Description): Drop from introductory
+ macro summary.
+ (Description/Command synopsis macros): Move discussion from
+ here...
+ (Description/Deprecated features): ...to here. Explain why it's
+ deprecated.
+
+2021-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Make `ab` request quiet if given no arguments. The
+ `tm`, `tm1`, and `tmc` requests provide ample flexibility for
+ constructing diagnostic messages prior to an error exit, and
+ it's convenient to make `ab` itself quiet instead of saying
+ "User Abort." as Unix Version 7 troff did. Further, there is no
+ standardization across troffs regarding what `ab` should emit if
+ arguments are absent.
+
+ * src/roff/troff/input.cpp (abort_request): Do it.
+
+ * src/roff/groff/tests/ab_works.sh:
+ * src/roff/groff/groff.am (groff_TESTS): Test it.
+
+ * doc/groff.texi (Debugging, Implementation Differences):
+ * man/groff.7.man (Requests/Request short reference):
+ * man/groff_diff.7.man (Implementation differences): Document
+ it.
+
+ Fixes <https://savannah.gnu.org/bugs/?61070>. Thanks to Dave
+ Kemper for the discussion.
+
+2021-09-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Update exit status literals.
+
+ * src/roff/troff/div.cpp (top_level_diversion::begin_page):
+ * src/roff/troff/input.cpp (exit_troff, abort_request, do_error)
+ (fatal_with_file_and_line): Use standard C library preprocessor
+ symbols `EXIT_SUCCESS` and `EXIT_FAILURE` instead of 0 and 1
+ literals, respectively.
+
+2021-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Drop unused member function.
+
+ * src/roff/troff/token.h (class token): Drop unused `title`
+ member function. Its implementation was apparently removed in
+ the prehistory of our Git repository: see James Clark's
+ ChangeLog entry of 1990-09-06.
+
+2021-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Remove workaround for Cfront 1.2 bug.
+
+ * src/roff/troff/input.cpp (do_define_macro): Move `dot_symbol`
+ from to file to function local scope as originally intended.
+
+2021-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Rename parameter.
+
+ * src/roff/troff/input.cpp (token::usable_as_delimiter): Rename
+ parameter from `err` to `report_error` to be more communicative.
+
+2021-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Boolify members of `token` class.
+
+ * src/roff/troff/token.h (class token): Demote return type of
+ several member functions from `int` to `bool` and rename them.
+ - `backspace` -> `is_backspace`
+ - `delimiter` -> `usable_as_delimiter`
+ - `dummy` -> `is_dummy`
+ - `eof` -> `is_eof`
+ - `horizontal_space` -> `is_horizontal_space`
+ - `hyphen_indicator` -> `is_hyphen_indicator`
+ - `leader` -> `is_leader`
+ - `left_brace` -> `is_left_brace`
+ - `newline` -> `is_newline`
+ - `page_ejector` -> `is_page_ejector`
+ - `right_brace` -> `is_right_brace`
+ - `space` -> `is_space`
+ - `special` -> `is_special`
+ - `stretchable_space` -> `is_stretchable_space`
+ - `tab` -> `is_tab`
+ - `transparent_dummy` -> `is_transparent_dummy`
+ - `transparent` -> `is_transparent`
+ - `unstretchable_space` -> `is_unstretchable_space`
+ - `white_space` -> `is_white_space`
+ - `zero_width_break` -> `is_zero_width_break`
+ (class token): Drop 1991 comment anticipating that member
+ function `nspaces` could return "2" for a "double space"; this
+ was apparently never implemented.
+ (class token): Drop parameter names from declarations; the
+ prevailing style (familiar from Stroustrup) is not to use them.
+ (token::is_special): Simplify implementation.
+
+ * src/roff/troff/input.cpp (has_arg)
+ (token::usable_as_delimiter): Update definitions of above member
+ functions not defined in token.h.
+
+ * src/roff/troff/div.cpp (begin_page, space_request, need_space)
+ (output_saved_vertical_space, flush_output):
+ * src/roff/troff/env.cpp (fill, no_fill, center)
+ (right_justify, indent, temporary_indent, margin_character)
+ (number_lines, do_break_request, hyphen_word):
+ * src/roff/troff/input.cpp (next_file, do_overstrike)
+ (do_bracket, do_name_test, do_expr_test, do_zero_width)
+ (token::skip, has_arg, skip_line, empty_name_warning)
+ (non_empty_name_warning, do_get_long_name, process_input_stack)
+ (flush_pending_lines, decode_args, read_request)
+ (do_define_string, do_define_character, remove_character)
+ (do_define_macro, length_request, get_delim_number)
+ (get_line_arg, read_size, get_delim_name, do_register, do_width)
+ (read_title_parts, encode_char, do_special, device_request)
+ (output_request, skip_alternative, begin_alternative)
+ (nop_request, do_if_request, do_source, pipe_source)
+ (ps_bbox_request, tag, taga, do_terminal, do_translate)
+ (hyphenation_code, hyphenation_patterns_file_code, define_class)
+ (get_optional_char, check_missing_character, abort_request)
+ (copy_file, transparent_file, do_macro_source)
+ (charinfo_to_node_list, read_draw_node, read_color_draw_node):
+ * src/roff/troff/node.cpp (get_fontno)
+ (remove_font_special_character, bold_font):
+ * src/roff/troff/number.cpp (start_number, parse_term):
+ * src/roff/troff/reg.cpp (define_number_reg, alter_format):
+ Update call sites to use new names.
+
+ * src/roff/troff/input.cpp (token::usable_as_delimiter)
+ (read_draw_node): Return Boolean, not integer, literals.
+
+2021-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Clamp line and title lengths to device horizontal
+ resolution.
+
+ * src/roff/troff/env.cpp (line_length, title_length): Do it.
+
+ Fixes <https://savannah.gnu.org/bugs/?61116>.
+
+2021-09-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (do_hyphenation_patterns_file):
+ Refactor slightly. Demote `append` from `int` to `bool`.
+ (hyphenation_patterns_file, hyphenation_patterns_file_append):
+ Update call sites to use Boolean, not integer, literals.
+
+2021-09-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/hvunits.h:
+ * src/roff/groff/number.cpp: Mark `H0`, `V0` objects as `const`.
+
+2021-09-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (do_underline_special): Refactor
+ slightly.
+ - Rename `underline_spaces` -> `do_underline_spaces`.
+ - Demote it from an `int` to a `bool`.
+ - Use ternary operator and explicit character literals when
+ writing device control command instead of doing arithmetic
+ on a character literal.
+ - Update call sites to use Boolean literals.
+ - Relocate function to avoid forward reference.
+ - Mark function as static to eliminate external linkage.
+ Remove now-unnecessary prototype.
+
+2021-09-04 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Add "ms" footnote marker placement hook.
+
+ * tmac/s.tmac (FS-MARK): New macro; define as no-op, by default.
+ (@FS): Invoke FS-MARK as first action, allowing caller to "hook" it.
+
+2021-09-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (distribute_space): Refactor slightly.
+ - Rename `force_reverse` to `force_reverse_node_list`.
+ - Rename `reverse` to `do_reverse`.
+ - Demote both of the above from `int` to `bool`.
+ - Use Boolean literals with them.
+ - Add assertions to enforce positive values of `nspaces` and
+ `desired_space`.
+ - Remove now-redundant test for `nspaces` being positive.
+ - Add explanatory comments.
+ (environment::wrap_up_field): Update call sites of
+ `distribute_space` when non-default value of
+ `force_reverse_node_list` is supplied.
+
+2021-09-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Don't adjust nonadjustable lines. This means that the
+ direction from which an output line in adjustment mode "b" (or
+ its "n" synonym) is filled with supplemental space is not
+ changed if that output line does not require adjustment. This
+ will result in whitespace changes to documents using that
+ adjustment mode, and these changes will be plainly visible on
+ low-resolution output devices like terminals.
+
+ To illustrate, in the following "A" means an output line
+ requiring adjustment; "F" a line that is "full" and does not;
+ and "L" and "R" indicate distribution of adjustment spaces from
+ the left and right, respectively.
+
+ groff 1.22.4 groff 1.23.0
+ ------------ ------------
+ A L A L
+ A R A R
+ F L F R
+ A R A L
+
+ * src/roff/troff/env.cpp (distribute_space): Return early if
+ either the amount of desired space to be distributed or the
+ count of space nodes in the output line to distribute it among
+ is zero.
+
+ * tmac/tests/an_TH-repairs-ad-damage.sh: Update test to expect
+ space to be distributed differently.
+
+ Fixes <https://savannah.gnu.org/bugs/?61089> and
+ <https://savannah.gnu.org/bugs/?60673>.
+
+2021-09-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Skip core-dump-checking test if a core file already exists.
+
+ * src/roff/groff/tests/regression_savannah_59202.sh: Skip test
+ if a core dump is already present.
+
+2021-09-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #60189.
+
+ * src/roff/groff/tests/break_zero-length_output_line_sanely.sh:
+ Do it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2021-08-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Tweak diagnostic message.
+
+ * src/roff/troff/env.cpp (environment::environment): Use
+ terminology more rigorously in diagnostic.
+
+2021-08-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Fix code style nit.
+
+ * src/libs/libgroff/errarg.cpp (errprint): Replace `assert(0)`
+ with a meaningful predicate.
+
+2021-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Demote `need_space` to Boolean.
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ Demote local integer `need_space` and its assignments to `bool`.
+
+2021-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Boolify `font::load()` and `font::load_desc()`
+ return values.
+
+ * src/include/font.h (font::load, font::load_desc):
+ * src/libs/libgroff/font.cpp (font::load, font::load_desc): Do
+ it.
+
+2021-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (TRADITIONAL_CPP): Update `AC_MSG_CHECKING`
+ argument to refer to "pre-ISO C90 syntax" instead of a
+ "traditional" preprocessor. Call `AC_MSG_ERROR` (aborting
+ configuration) if the check (for pre-C90 transformation)
+ succeeds. We thus withdraw support for such superannuated
+ {"Reiser"} C preprocessors.
+
+2021-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Un-indirect token concatenation through macro.
+
+ * src/include/itable.h:
+ * src/include/ptable.h: Do it.
+
+2021-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop support for `TRADITIONAL_CPP`. This means a C
+ preprocessor that does not support the ANSI C89/ISO C90
+ token concatenation operator "##".
+
+ * src/include/itable.h:
+ * src/include/ptable.h: Do it.
+
+ * Makefile.am: Undocument preprocessor symbol.
+
+2021-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop `a_delete` preprocessor wrapper for the
+ `delete` operator. It has been rendered unnecessary by the
+ removal of support for ancient C++ compilers.
+
+ * src/include/lib.h (a_delete): Drop symbol definition.
+
+ * src/devices/grohtml/output.cpp (word::~word):
+ * src/devices/grohtml/post-html.cpp (char_block::char_block)
+ (assert_state::~assert_state, assert_state::add)
+ (assert_state::close, replace_negate_str):
+ * src/devices/grops/ps.cpp (ps_font::ps_font)
+ (subencoding::subencoding, ps_printer::define_encoding)
+ (ps_printer::encode_fonts):
+ * src/devices/grops/psrm.cpp (resource_manager::document_setup)
+ (resource_manager::supply_resource):
+ * src/devices/grotty/tty.cpp (tty_printer::tty_color)
+ (tty_printer::tty_printer, tty_printer::color_to_idx)
+ (tty_printer::add_char):
+ * src/include/itable.h (ITABLE(T)::~ITABLE(T))
+ (ITABLE(T)::define):
+ * src/include/ptable.h (PTABLE(T)::~PTABLE(T))
+ (PTABLE(T)::define):
+ * src/libs/libbib/index.cpp
+ (index_search_item::~index_search_item, make_index_search_item,
+ index_search_item_iterator::index_search_item_iterator,
+ index_search_item::get_tag, index_search_item::munge_filename,
+ index_search_item::search):
+ * src/libs/libbib/linear.cpp (bmpattern::~bmpattern)
+ (file_buffer::file_buffer, file_buffer::load)
+ (linear_searcher::linear_searcher)
+ (linear_searcher::~linear_searcher):
+ * src/libs/libbib/search.cpp
+ (search_list_iterator::search_list_iterator)
+ (search_item::search_item):
+ * src/libs/libdriver/input.cpp (IntArray::~IntArray)
+ (IntArray::append, StringBuf::~StringBuf, StringBuf::append)
+ (get_integer_arg, parse_x_command, do_file):
+ * src/libs/libdriver/printer.cpp (printer::printer)
+ (printer::load_font, text_file::~text_file, text_file::next)
+ (font::~font, font_widths_cache::~font_widths_cache)
+ (font:alloc_ch_index, font::extend_ch, font::compact)
+ (font::load_desc):
+ * src/libs/libgroff/fontfile.cpp (font::open_file):
+ * src/libs/libgroff/relocate.cpp (searchpath, searchpathext)
+ (set_current_prefix):
+ * src/libs/libgroff/searchpath.cpp (search_path::search_path)
+ (search_path::command_line_dir, search_path::open_file)
+ (search_path::open_file_cautious):
+ * src/libs/libgroff/string.cpp (sfree, srealloc)
+ (string::remove_spaces):
+ * src/libs/libgroff/symbol.cpp (symbol::symbol, concat):
+ * src/libs/libgroff/tmpfile.cpp (temp_init::temp_init)
+ (xtmpfile_list_init::~xtmpfile_list_init, xtmpfile):
+ * src/preproc/eqn/box.cpp (set_gfont, set_grfont, set_gbfont)
+ (box_list::append, box_list::~box_list):
+ * src/preproc/eqn/delim.cpp (make_delim_box)
+ (delim_box::~delim_box):
+ * src/preproc/eqn/eqn.ypp (number):
+ * src/preproc/eqn/lex.ypp (file_input::~file_input)
+ (argument_macro_input::~argument_macro_input):
+ * src/preproc/eqn/pile.ypp (matrix_box::~matrix_box)
+ (matrix_box::append):
+ * src/preproc/eqn/special.cpp (special_box::~special_box):
+ * src/preproc/eqn/text.ypp (set_char_type):
+ * src/preproc/html/pre-html.cpp (get_line, scanArguments):
+ * src/preproc/pic/object.cpp (output::~output)
+ (output::set_args, text_item::~text_item)
+ (object_spec::~object_spec, command_object::~command_object)
+ (line_object::~line_object):
+ * src/preproc/pic/pic.ypp (placeless_element, reset_variables)
+ (print_args, text_expr, object_spec, text, sprintf_args, path):
+ * src/preproc/refer/command.cpp (input_item::~input_item)
+ (input_item::peek_char):
+ * src/preproc/refer/label.ypp (lookup_label):
+ * src/preproc/refer/refer.cpp (store_citation, store_reference):
+ * src/preproc/tbl/main.cpp (format::add_rows, format::~format):
+ * src/preproc/tbl/table.cpp (block_entry::~block_entry)
+ (table::~table, table::allocate):
+ * src/roff/groff/groff.cpp (possible_command::~possible_command)
+ (possible_command::clear_name):
+ * src/roff/troff/column.cpp
+ ((justification_spec::~justification_spec)
+ (justification_spec::append):
+ * src/roff/troff/dictionary.cpp (dictionary::lookup):
+ * src/roff/troff/env.cpp (override_sizes, tab_stops::to_string)
+ (hyphen_word, hyphen_trie::insert_hyphenation):
+ * src/roff/troff/input.cpp (read_long_escape_name, token::next)
+ (do_get_long_name, temp_iterator::~temp_iterator)
+ (get_delim_name, pipe_source, read_string, pipe_output)
+ (system_request, open_mac_file, do_macro_source)
+ (do_register_assignment, do_string_assignment, read_draw_node)
+ (copy_mode_error):
+ * src/roff/troff/node.cpp (troff_output_file::set_font)
+ (troff_output_file::~troff_output_file, draw_node::is_tag)
+ (grow_font_table, font_family::~font_family)
+ (font_family::make_definite):
+ * src/utils/hpftodit/hpftodit.cpp (name_list::~name_list)
+ (read_map):
+ * src/utils/indxbib/indxbib.cpp (main, get_cwd):
+ * src/utils/tfmtodit/tfmtodit.cpp (tfm::~tfm, tfm::load): Port
+ uses of `a_delete` to `delete[]`.
+
+2021-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop `ad_delete` preprocessor wrapper for the
+ `delete` operator. It has been rendered unnecessary by the
+ removal of support for ancient C++ compilers.
+
+ * src/include/lib.h (ad_delete): Drop symbol definition.
+
+ * src/preproc/pic/object.cpp (graphic_object::print_text):
+ * src/preproc/refer/ref.cpp (reference::reference)
+ (reference::merge, reference::insert_field)
+ (reference::delete_field):
+ * src/preproc/tbl/main.cpp (format::add_rows): Port uses of
+ `ad_delete` to `delete[]`.
+
+2021-08-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_ARRAY_DELETE): Update `AC_MSG_CHECKING`
+ argument to refer to "ISO C++98" instead of "ANSI". Call
+ `AC_MSG_ERROR` (aborting configuration) if the check fails.
+
+2021-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop support for `ARRAY_DELETE_NEEDS_SIZE`.
+
+ * src/include/lib.h [ARRAY_DELETE_NEEDS_SIZE]: Drop preprocessor
+ conditional branch. This abandons support for certain pre-ISO
+ C++98 compilers. (According to a now-removed comment, unsized
+ array deletion was documented in "ARM", meaning _The C++
+ Annotated Reference Manual_, published in 1989.)
+
+ * Makefile.am: Undocument preprocessor symbol.
+
+2021-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop redefinition of `INT_MIN`.
+
+ * src/include/lib.h: Drop redefinition of `INT_MIN`. It was
+ motivated by a bug in the AT&T C++ compiler (cfront), version
+ 2.0, released in June 1989. Implementations have had 30 years
+ to get this right; assume that they have.
+
+ * PROBLEMS: Drop corresponding item.
+
+2021-08-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Drop long-dead `COOKIE_BUG` logic.
+
+ * src/libs/libgroff/new.cpp (operator new, operator delete):
+ Drop preprocessor conditional branches on the `COOKIE_BUG`
+ symbol. This was de-documented, and an autoconf check for its
+ necessity removed, way back in groff 1.10 (November 1995). It
+ was relevant only to GCC from versions 2.0 to 2.2.2 (all 1992).
+
+2021-08-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Refactor `font::scan_papersize()`.
+
+ * src/libs/libgroff/font.cpp (font::scan_papersize): Ensure
+ successful return value of `fgets()` before attempting to parse
+ string for paper format. Convert `test_file` to Boolean and
+ rename to `attempt_file_open`. Quiets GCC `-Wunused-result`
+ warning.
+
+2021-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Apply naming convention.
+
+ * tmac/tests/e_footnotes_work_with_columns.sh: Rename from...
+ * tmac/tests/e_footnotes-work-with-columns.sh: ...to this.
+ * tmac/tmac.am (tmac_TESTS): Update.
+
+2021-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an.tmac (IP): Make code more accessible by using a
+ Boolean operator rather than an arithmetic one (assembly
+ language programmers are comfortable with the interchangeability
+ of subtraction and comparison, but not everyone is).
+
+2021-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ groff(7): Document more escapes.
+
+ * man/groff.7.man (Escape short reference): Document
+ `\[charNNN]`, `\[uNNNN]`, `\[uNNNN_NNNN...]` escape sequences.
+ Revise descriptions of `\O0` and `\O1` escape sequences.
+ Document `\O2`, `\O3`, `\O4`, and `\O5` escape sequences.
+
+2021-08-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ groff(7): Fix bug in `\?` escape rendering.
+
+ * man/groff.7.man (ESC?): Fix bug in page-private macro: the
+ question mark that ends this uniquely-syntaxed escape sequence
+ was not shown with the mandatory escape character before it.
+ Problem dates back at least to commit 41b0e794, 19 February
+ 2007, but possiby to f790bc7a9, 6 January 2002.
+
+2021-08-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [docs]: Elaborate macro definition discussion.
+
+ Fixes <https://savannah.gnu.org/bugs/?57944>. Thanks to Dave
+ Kemper for the report.
+
+2021-08-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tests]: Make robust against $GROFF_TYPESETTER settings.
+
+ * src/roff/groff/tests/\
+ use_point_size_escape_with_single_digit_arg.sh:
+ * src/roff/nroff/tests/verbose_option_works.sh:
+ * tmac/tests/s_IP-indents-using-paragraph-type-size.sh: Export
+ an empty $GROFF_TYPESETTER to the environment.
+
+ Fixes <https://savannah.gnu.org/bugs/?60140>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-08-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Treat an empty $GROFF_TYPESETTER as unset.
+
+ * src/libs/libgroff/device.cpp (device_init::device_init): Test
+ both returned pointer from `getenv()` and, if that's not null,
+ the first character of the string for nullity before assigning
+ it to `device`.
+
+ Fixes <https://savannah.gnu.org/bugs/?61068>.
+
+2021-08-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff]: Rename font class member variable.
+
+ * src/include/font.h (font class): Rename `unscaled_charwidths`
+ member variable to `use_unscaled_charwidths`: since it is a
+ Boolean, make it read more like a logical predicate.
+
+ * src/libs/libgroff/font.cpp (font::get_width, font::load_desc):
+ * src/libs/libgroff/fontfile.cpp (font class): Update
+ initialization and assignments.
+
+2021-08-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (get_copy): Demote integer arguments
+ to Booleans and use Boolean literals for default values. Rename
+ `defining` to `is_defining`.
+ (get_char_for_escape_name, do_define_macro): Update call sites
+ that use non-default arguments to use Boolean literals and
+ comments to document what's being requested.
+
+2021-08-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (DOC_GROFF_ONLY): Stop running groff in unsafe
+ mode; no documents (in _this_ directory) appear to require it.
+
+2021-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grn]: Fix code style issues.
+
+ * src/preproc/grn/hgraph.cpp:
+ * src/preproc/grn/hpoint.cpp:
+ * src/preproc/grn/main.cpp:
+ * src/preproc/grn/hdb.cpp: Drop use of `register` storage class.
+
+ Fixes <https://savannah.gnu.org/bugs/?57733>. Thanks to Bjarni
+ Ingi Gislason for the report and a suggested patch.
+
+ * src/preproc/grn/hgraph.cpp (len, HGPrintElt, picurve):
+ * src/preproc/grn/hdb.cpp (DBRead): Wrap long lines.
+
+ * src/preproc/grn/hgraph.cpp: Rename function from
+ `Paramaterize` to `Parameterize`.
+ (HGCurve): Update call site.
+
+ * src/preproc/grn/main.cpp (add_file): Drop redundant cast in
+ `realloc()` call.
+ (conv, interpret): Use standard English in diagnostic messages.
+
+2021-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/hdb.cpp: Perform more input validation.
+ Improve diagnostics by taking advantage of libgroff
+ infrastructure and tracking the line number of the input file.
+ Add global `lineno`.
+ (DBRead): Increment `lineno` after reading newlines from input.
+ Call `error_with_file_and_line()` instead of `error()`. If
+ input reports a negative length for the text (string) to follow
+ in the file, exit with a fatal diagnostic. Check for EOF while
+ reading text string.
+ (DBGetType): Convert `fprintf()` call for warning diagnostic to
+ `warning_with_file_and_line()`.
+ (DBRead, DBGetType): Add contextual information to diagnostic
+ messages.
+
+ Fixes <https://savannah.gnu.org/bugs/?61043>. Thanks to
+ Savannah user eqkws for the report.
+
+2021-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/main.cpp (usage): Update usage message.
+
+2021-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grn]: Add and use `malloc()` wrapper.
+
+ * /src/preproc/grn/main.cpp (grnmalloc): New function takes
+ argument of `size_t` type and constant string argument to
+ describe what is being allocated. Return non-null pointer from
+ `malloc()`, otherwise call `fatal()`, describing what was being
+ allocated and the problem reported by the system.
+
+ * src/preproc/grn/hdb.cpp (DBCreateElt):
+ * src/preproc/grn/hpoint.cpp (PTMakePoint):
+ * /src/preproc/grn/main.cpp (main, interpret): Migrate
+ `malloc()` callers to `grnmalloc()`.
+
+2021-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/hdb.cpp (DBRead): Check return value of
+ `sscanf()` and call `fatal()` if no conversions succeeded. The
+ blithe discard of a useful return value is bad enough, but this
+ one took place inside a do-while such that it could loop
+ forever trying fruitlessly to parse two doubles out of strings
+ that didn't contain them (the loop never checked the EOF status
+ of the file stream from which it was reading, and relied on
+ `fgets()` to keep advancing the stream pointer). Discovered
+ while root-causing Savannah #61043.
+
+2021-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Resolve compiler warnings relating to format string security and
+ ISO C++98 conformance.
+
+ * src/preproc/eqn/delim.cpp (define_extensible_string):
+ * src/preproc/pic/pic.ypp (do_sprintf): Use #pragma to silence
+ GCC "format-nonliteral" warning and explain why our usage is
+ safe in a comment.
+
+ * src/preproc/preconv/preconv.cpp (detect_file_encoding): Use
+ `l` modifier to `%u` `fprintf()` conversion instead of `z`, and
+ cast return values of `size_t` to unsigned long; "ISO C++98
+ does not support the ‘z’ gnu_printf length modifier" (it doesn't
+ support `ll` either). N.B. this is debugging output only.
+
+ * src/roff/groff/groff.cpp (synopsis):
+ * src/roff/troff/input.cpp (usage): Repeat variadic argument for
+ `%s` conversion in `fprintf()` call because "ISO C++98 does not
+ support %n$ operand number formats".
+
+ * src/roff/troff/env.cpp: Initialize adjustment and hyphenation
+ mode enums without commas at the end of the enumeration lists.
+
+2021-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Clean up the interface between `an-footer` and `BT`, and
+ HTML header and footer suppression generally. Move
+ responsibility for checking the `ps4html` register from the
+ latter to the former. This is not something a `BT` redefiner
+ {see groff_man(7)} should have to worry about.
+
+ * tmac/an.tmac (BT): Drop test of `ps4html` register and early
+ return.
+ (an-header, an-footer): Return immediately if
+ `an-suppress-header-and-footer` is true. Remove conditional on
+ `an-is-output-html`.
+ (initialization): Define `an-suppress-header-and-footer`
+ register; true if `an-is-output-html` is true, or if `ps4html`
+ is defined.
+
+2021-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (get_resolution): Unbrace a
+ single-statement `while` loop per prevailing coding style. Add
+ comments noting how we aren't parsing DESC files _precisely_ as
+ our documentation specifies.
+
+2021-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Convert font class `int` members to `bool` where appropriate.
+
+ * src/include/font.h (font class): Demote integers to Booleans
+ and use Boolean literals where possible. Rename some member
+ variables to look like logical predicates.
+ - contains()
+ - is_special()
+ - has_ligature()
+ - tcommand -> has_tcommand
+ - unscaled_charwidths
+ - pass_filenames
+ - use_charnames_in_special
+ - is_unicode
+ - special (private)
+ * src/libs/libgroff/font.cpp (font::font): Construct object
+ using Boolean literal.
+ (font::contains):
+ (font::is_special):
+ (font::has_ligature): Convert return type to `bool`.
+ (font::load):
+ (font::load_desc): Assign to member variables using Boolean
+ literals.
+ * src/libs/libgroff/fontfile.cpp: Initialize appropriate globals
+ using `bool` type and Boolean literals.
+ * src/roff/troff/troff.h:
+ * src/roff/troff/input.cpp (main):
+ * src/roff/troff/node.cpp (troff_output_file::put_char_width):
+ Rename `tcommand_flag` to `device_has_tcommand` to suggest a
+ logical predicate, and to emphasize the formatter's concern with
+ what the output device can accept in the intermediate output
+ language.
+ * src/roff/troff/input.cpp: Initialize `device_has_tcommand`
+ global using `bool` type and Boolean literal.
+
+2021-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Clarify breadth of application of `ll` macro.
+
+ * doc/meref.me: Document application of .ll macro only to the 3
+ environments that me(7) uses, not any the user might create.
+ * tmac/e.tmac (@C, xl, ll): Update comments.
+
+ Fixes <https://savannah.gnu.org/bugs/?55060>.
+
+2021-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #58736.
+
+ * tmac/tests/e_footnotes_work_with_columns.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (bc): Fix problem with multiple columns on long
+ pages. Space to the next page location trap, not 24 inches.
+ Thanks to Dave Kemper and Bjarni Ingi Gislason for help tracking
+ this bug down.
+
+ Fixes <https://savannah.gnu.org/bugs/?55081>.
+
+2021-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #55081.
+
+ * tmac/tests/e_columns-work-on-long-pages.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-08-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Localization): Add section.
+
+2021-08-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/cs.tmac:
+ * tmac/de.tmac:
+ * tmac/fr.tmac:
+ * tmac/it.tmac:
+ * tmac/sv.tmac: Update ms package localization to use an
+ appropriate hyphenation mode for the `HY` register (the
+ mode for the pattern files, plus 2 as is traditional in ms).
+
+2021-08-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac (1c): Place comment escape sequence immediately
+ after macro argument. (When redefining a request, one needs to
+ remember that request arguments are not parsed exactly as macro
+ arguments are.) Quiets "-w tab" warning.
+
+2021-08-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Fix misleading documentation claim; gremlin(1) pictures
+ cannot be included directly; they must be preprocessed with
+ grn(1).
+
+ * doc/meref.me:
+ * tmac/groff_me.7.man: Replace "gremlin" with "grn".
+
+2021-08-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_me.7.man: Document `n1` and `n2` macros.
+
+2021-08-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [me]: Fix PS/n1 combination diagnostic spew and apparent logic
+ error.
+
+ * tmac/e.tmac (@h): Place comment escape sequence immediately
+ after macro argument. (When redefining a request, one needs to
+ remember that request arguments are not parsed exactly as macro
+ arguments are.)
+ (n2): Prefix with `do` requests using long register names.
+ (n2): Add macro-local register `|l` to store length of first
+ argument. Don't attempt to extract a substring beyond the
+ bounds of its source, which produces a warning diagnostic.
+ (&&): Define no-op macro for use as end macro in nested macro
+ definition.
+ (PS): Fix unbalanced-else diagnostic by changing `if` to `ie`.
+ (PS): Initialize `PS_nm_cnt` register to 0 instead of relying on
+ implicit definition.
+ (PS): Prefix with `do` definition of long macro name.
+ (PS): Indent call of end macro.
+ (PS): Add comment after escaped space.
+ (PS, PF): Prefix with `do` call of long macro name.
+
+ Fixes <https://savannah.gnu.org/bugs/?61019>.
+
+2021-08-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (do_line): Recognize `n1` and `n2` as
+ characteristic me(7) macros.
+
+2021-08-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_me.7.man: Document GF, IE, IF, IS, and PF macros.
+
+2021-08-08 Dave Kemper <saint.snit@gmail.com>
+
+ * tmac/e.tmac: Rename `PE` to `PF` but remove vertical spacing.
+ (PE): New `PE` calls `PF` and then spaces as old `PE` did.
+
+ Fixes <https://savannah.gnu.org/bugs/?60479>.
+
+2021-08-06 Dave Kemper <saint.snit@gmail.com>
+
+ * doc/meref.me: Improve documentation of image-inclusion macros.
+
+ Fixes <https://savannah.gnu.org/bugs/?60478>.
+
+2021-08-06 Dave Kemper <saint.snit@gmail.com>
+
+ GNU pic recognizes two possible endings of a pic block: .PE or
+ .PF. This fact was documented in doc/pic.ms but not in the pic
+ man page. The minimal pic implementation provided by pic.tmac
+ also did not include a .PF definition.
+
+ * src/preproc/pic/main.cpp (main): Add dummy definition of `PF`
+ macro.
+ * tmac/pic.tmac (PF): Add macro that performs indentation only.
+ (PE): Call PF for indentation.
+
+ * doc/pic.ms (Interface to [gt]roff/How Scaling is Handled):
+ * src/preproc/pic/pic.1.man (Description, Options): Mention `PF`
+ in addition to `PS` and `PE`.
+
+ Fixes <https://savannah.gnu.org/bugs/?60504>.
+
+2021-08-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/refer-ms.tmac:
+ * tmac/s.tmac (fn@init, @PP): Rename strings
+ `fn@sup-{start,end}` to `fn@mark-{start,end}`. This makes it
+ more clear that the strings are brackets for the footnote
+ marker, and not so much to do with the note text. Further, in
+ nroff mode, they aren't superscripts at all, but bracket glyphs.
+
+2021-08-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.1.man (Examples): Add section.
+
+ Addresses part of <https://savannah.gnu.org/bugs/?57667>.
+
+2021-08-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/refer-ms.tmac: Use `fn@sup-{start,end}` instead of
+ `par@sup-{start,end}` when setting refer(1) citation labels.
+ This improves the appearance of the default labels on nroff
+ devices. Continues commit caeede07, 1 May.
+
+2021-08-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tman/an-ext.tmac (EX, EE): Stop manipulating hyphenation.
+ It's redundant since disabling fill mode already prevents
+ automatic breaking, and therefore automatic hyphenation.
+ * tmac/groff_man.7.man.in (Description/Document structure
+ macros) <EX, EE>: Update documentation.
+
+2021-08-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Update authorship credits. I appear
+ to have removed or refactored all of the "device" (recte: macro
+ package) inference logic adapted from Ralph Corderoy's grog.sh;
+ see commit 3617f42048f54cc3f0adc282ee3b9e481c75ebd5, 13 June
+ 2014.
+
+2021-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Refactor through relocation and
+ renaming. Move several global objects into subroutines.
+ - `@request` -> `&do_line`
+ - `@macro_ms`, `@macro_man`, `@macro_man_or_ms` ->
+ `&infer_man_or_ms_package`
+ - `@main_package` -> `&construct_command`
+ Rename some objects for clarity.
+ - `%Groff` -> `%score`
+ - `@filespec` -> `$input_file`
+ Delete unused object.
+ - `@standard_macro`
+ Add comments.
+
+2021-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (do_line): When matching macro/request
+ names, accept any non-whitespace character (Perl: \S) instead of
+ just a word-constituent character (Perl: \w), since roff
+ identifiers can contain unusual characters (refer(1) and
+ groff_me(7) illustrate some real-world cases).
+
+2021-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Refactor macro package inference.
+ - Stop manually populating `Groff` hash. (It's itching for a
+ rename.)
+ - Stop calling now-dead subroutine `infer_macro_packages`.
+ (do_line): Always store the names of all macros called to the
+ `Groff` hash, incrementing it. Now it's a proper scoreboard.
+ Populate `inferred_main_package` from here upon encountering
+ characteristic (i.e., uniquely named) macros of each package.
+ Bug fix: drop "SP" from list of characteristic mom(7) macros;
+ it's shared with mm(7).
+ (infer_man_or_ms_package): Update comment. Return 0 (false) if
+ document appears to be "raw", using no full-service macro
+ package.
+ (infer_macro_packages): Delete; do_line() does this work.
+
+2021-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Refactor preprocessor inference.
+ - Add new list, `inferred_preprocessor`.
+ - Drop preprocessor-related keys from `Groff` hash.
+ - Drop scalar `inside_tbl_table`.
+ (do_line): Set up hash `preprocessor_for_macro`. Detect
+ preprocessor macros the way the preprocessors do, explained in a
+ comment. Respect AT&T compatibility mode when doing so. Build
+ list of inferred preprocessors. This replaces the extensive and
+ gaseous series of `if` statements that manipulated the `Groff`
+ hash.
+ (infer_preprocessors): Completely replace. Set up a hash
+ `option_for_preprocessor` mapping preprocessor names to groff
+ options (where applicable). Append to `command` and
+ `preprocessor` lists as appropriate. Sort the preprocessor
+ options so they don't move around in the argument list depending
+ on the order of their macros' appearance in the input.
+
+ * src/utils/grog/tests/smoke-test.sh: Update test cases to
+ expect preprocessor options to show up in sorted order.
+
+2021-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Drop dead code. Delete global
+ hash `preprocs_tmacs`, unused since commit b0de53c9, 30 June.
+
+2021-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix code nit.
+
+ * src/preproc/html/pre-html.cpp (get_image_generator):
+ Type-qualify `keyword_len` as `const` to encourage the compiler
+ to compute this value (the length of a string literal) at build
+ time.
+
+2021-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Slightly refactor.
+
+ * src/roff/troff/node.cpp: Add static `image_filename_len` to
+ store length of cached image file name, so we don't wastefully
+ recompute its length every time one is re-used.
+ (suppress_node::tprint): Compute image file name length only
+ when saving a new image file name. Use saved length in later
+ expressions.
+ (min): Drop unused inline function.
+
+2021-07-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Fix regression (breaking important pdfmark/pdfroff
+ features) caused by my commit
+ e876d4bfd193abb9a7d1fb6e76519349bded482a, 27 July. An empty
+ image file name is in fact semantically valid when writing a
+ bounding box; pdfmark uses such boxes to frame hyperlinks.
+ Avoid null pointer dereference by initializing `image_filename`
+ to an empty string literal. Thanks to Tadziu Hoffman and Keith
+ Marshall for their patient explanations.
+
+2021-07-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Refactor some internal functions.
+
+ * src/roff/troff/node.cpp: Rename two functions that have only
+ one caller.
+ - get_reg_int -> get_register
+ - get_reg_str -> get_string
+ We now have:
+ (get_register, get_string): Use `assert()` aggressively because
+ these are deeply internal and validation is imperative. Get rid
+ of diagnostic messages (one of which perpetuated the dubious
+ "number register" nomenclature) accordingly.
+ (fetch_register): Also rename `prev_value`, misleadingly
+ specific and seemingly copy-and-pasted out of a context where an
+ auto-increment or -decrement might have been applied. It's just
+ the `value`.
+ (suppress_node::tprint): Update call site.
+
+2021-07-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Refactor `get_value` member functions. Given their
+ names and popular "getter/setter" paradigms from many OO
+ languages, the return type is misleading. Change it from `int`
+ to `bool` since it returns only a success/failure status and
+ modifies an argument (passed by reference) to deliver the
+ requested data.
+
+ * src/roff/troff/reg.h (reg, variable_reg):
+ * src/roff/troff/div.cpp (page_offset_reg, page_length_reg)
+ (vertical_position_reg, high_water_mark_reg)
+ (distance_to_next_trap_reg, page_number_reg, no_space_mode_reg):
+ * src/roff/troff/env.cpp (int_env_reg, vunits_env_reg)
+ (hunits_env_reg, horizontal_place_reg):
+ * src/roff/troff/input.cpp (writable_lineno_reg):
+ * src/roff/troff/reg.cpp (reg, number_reg, variable_reg): Update
+ class and member function definitions to reflect the new type.
+ Update member function definitions to return appropriate Boolean
+ literals instead of 0 and 1.
+
+2021-07-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix Savannah #60981. Refactor device description
+ file handling and make it more robust. Make pre-grohtml's
+ -F option work as documented and honor device description file
+ semantics documented in groff_font(5).
+
+ * src/preproc/html/pre-html.cpp: Store partial filespecs of HTML
+ and PostScript device files in constant strings.
+ (get_resolution): Initialize `res` to zero. Only `free()` the
+ pointer `pathp` if `open_file()` succeeded (populating it).
+ Stop checking for valid `sscanf()` conversions of an integer to
+ store in `res`, and don't return early. Instead process the
+ whole DESC file; per our Texinfo manual and groff_font(5),
+ "Later entries in the file ... override previous values."
+ (get_image_generator): Add new function, paralleling
+ `get_resolution()`, replacing open-coded logic in `main()`.
+ Only the body of the `while` loop significantly differs.
+ Instead of using `sscanf`, process the input character by
+ character matching the keyword and {1,} spaces or tabs
+ after it. Whatever follows in `linebuf` must be the program
+ name.
+ (imageList::createPage): Add `assert()` to cause failure if an
+ empty image generator program gets this far, because it creates
+ repeated messes if it does. (Something isn't checking exit
+ statuses.)
+ (main): Condense `image_gen` collection to a function call, a
+ null pointer check, and a fatal diagnostic. Add a sanity check
+ and a fatal diagnostic if the PostScript resolution is garbage.
+ {It's initialized to -1 and `get_resolution()` will return 0 if
+ it doesn't find one.}
+
+ Fixes <https://savannah.gnu.org/bugs/?60981>.
+
+2021-07-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Delete or rename `debug` symbols to avoid clash with
+ new `debug` function in libgroff.
+
+ * src/preproc/html/pre-html.cpp: Update a comment to refer to
+ "debugging" mode. Rename static global from `debug` to
+ `debugging`.
+ (html_system, imageList::createPage, imageList::createImage,
+ print_args, char_buffer::do_html, char_buffer::do_image,
+ scanArguments): Update uses of static global.
+
+ * src/preproc/html/pushback.cpp:
+ * src/preproc/html/pushback.h: Delete unused `debug` member
+ variable.
+
+2021-07-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Fix straggling use of `$1`, which
+ might not have a clear meaning in some shells after being
+ shifted (what if we just shifted the last argument?). Also
+ `continue` after processing a (groff) option argument, as we
+ should make no attempt to parse it.
+
+2021-07-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_suppress): Recast diagnostic
+ messages for clarity, to communicate in terms of what the
+ escape sequence _is_, and to quote literals expected as input.
+ * src/roff/troff/node.cpp (suppress_node::tprint): Recast
+ diagnostic to prevent misinterpretation of image "description"
+ as being HTML IMG tag alt text or something like that.
+ Unfortunately, the new language speaks in terms of internal
+ implementation details ("grohtml-info"), but at least that way
+ it's easier for a user to decide if they care about it.
+
+2021-07-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Avoid using sprintf() with user-controlled format
+ string.
+
+ * src/preproc/html/pre-html.cpp (makeFileName): Add comment
+ noting need for implementation synchrony between this function,
+ which generates \O5 escape sequences, and troff's
+ suppress_node::tprint member function, which interprets them.
+ * src/roff/troff/node.cpp: Rename 2 static globals for clarity.
+ - `last_image_filename` -> `image_filename`
+ - `last_image_id` -> `subimage_counter`
+ (suppress_node::tprint): Set up the buffer for image file name
+ to be written using a constant rather than an embedded literal.
+ Unconditionally initialize the buffer with a string terminator,
+ so there is no chance of a read from uninitialized storage.
+ Drop unused code involving `tem`. Drop stale comments. Clarify
+ comment: an `image_filename` doesn't _always_ contain a format
+ string, only sometimes. Replace use of `sprintf` with manual
+ construction of a new image filename string. There are two
+ cases, one where a format string {presently "%d"} is present,
+ and one where it is not. If it is present, locate it
+ {`percent`}. This means a limited/bounded image ("subimage") is
+ being processed; increment the subimage counter. Write a new
+ image file name preserving the parts before and after "%d" (the
+ "prefix" and "suffix", and replacing only the middle, using
+ `sprintf` with the subimage counter and the (string literal)
+ format. Be mindful of string bounds and memory allocation,
+ issuing diagnostics or aborting as necessary. If the image file
+ name does _not_ contain a format string, but needs only to be
+ copied, do that (`strcpy`), again instead of using `sprintf`.
+
+ Fixes <https://savannah.gnu.org/bugs/?60977>.
+
+2021-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix Savannah #60971.
+
+ * src/preproc/html/pre-html.cpp (makeFileName): Consistently put
+ a dash at the end of `macroset_template` whether the image file
+ name stem is user-supplied or the default. Stop adding the dash
+ before the image number in `image_template` instead. This makes
+ the image file name format reliable whether the image needs to
+ be subdivided (eqn) or not (tbl).
+
+ Fixes <https://savannah.gnu.org/bugs/?60971>.
+
+2021-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Reduce noise to standard error stream.
+
+ * src/preproc/html/pre-html.cpp (imageList::createImage): Fix
+ apparent oversight: `EXE_EXT` was not being applied to the
+ second of three commands being run in a pipeline (did Windows
+ users notice?). Also issue (undocumented!) `-quiet` option to
+ `pnmtopng` to shut up its commentary about counting colors.
+
+2021-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Stop discarding standard error output.
+
+ * src/preproc/html/pre-html.cpp (html_system): Stop sending the
+ standard error stream to /dev/null; this just makes debugging
+ harder, and doesn't produce much more output for well-formed
+ input documents. Rename `save_stdout` to `saved_stdout`.
+
+2021-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Fix misspelled variable.
+
+ * src/preproc/html/pre-html.cpp: Rename `IMAGE_BOARDER_PIXELS`
+ to `IMAGE_BORDER_PIXELS`.
+
+2021-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [libgroff, troff]: Add debug diagnostic level.
+
+ * src/include/error.h: Declare functions
+ `debug_with_file_and_line` and `debug`.
+ * src/libs/libgroff/error.cpp: Add `DEBUG` to enum `error_type`.
+ (do_error_with_file_and_line): Add case for `DEBUG` in switch.
+ (debug, debug_with_file_and_line): Add new functions.
+
+ Do the same for troff since it has a private implementation of
+ the diagnostic functions (thanks to `output_warning()`).
+
+ * src/roff/troff/input.cpp: Add `DEBUG` to enum `error_type`.
+ (do_error_with_file_and_line): Add case for `DEBUG` in switch.
+ (debug, debug_with_file_and_line): Add new functions.
+
+2021-07-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/hpftodit/hpftodit.cpp (hp_msl_to_ucode_name)
+ (unicode_to_ucode_name): Hush "format nonliteral" compiler
+ warnings by using a preprocessor-defined string literal as an
+ sprintf() format string instead of a C++ variable that just
+ compared identically to the same thing.
+
+2021-07-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/hpftodit/hpftodit.cpp (show_symset): Prevent
+ sprintf() from overunning a static buffer. Thanks to Bjarni
+ Ingi Gislason for the report. Resize buffer to be large enough
+ to accommodate a 64-bit unsigned int type formatted as decimal.
+ Also add assert() before the sprintf() to abort if the int type
+ is even larger than that. Use "%u" conversion instead of "%d"
+ since the quantity is unsigned.
+ (hp_msl_to_ucode_name): Similar, but for a signed int.
+ (unicode_to_ucode_name): Similar, but for a signed int formatted
+ as (unsigned) hexadecimal.
+
+ Fixes <https://savannah.gnu.org/bugs/?60964>.
+
+2021-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Refactor, mostly by relocation. Move
+ locale character set inference logic so that we only run it if
+ we have to (`-T` option was invalid or not given and
+ `GROFF_TYPESETTER` was not set in the environment or invalid).
+ Initialize `T` variable as empty.
+
+2021-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Use Version 7 Unix sh-compatible form
+ of parameter expansion; per the GNU Autoconf manual[1], "[o]ld
+ BSD shells, including the Ultrix sh, don't accept the colon for
+ any shell substitution, and complain and die." This is also the
+ form of such substitutions used elsewhere in the script, so they
+ should be mutually consistent.
+
+ [1] https://www.gnu.org/software/autoconf/manual/autoconf-2.60/\
+ html_node/Shell-Substitutions.html
+
+2021-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Slightly refactor. Rename formerly
+ unused loop index variable from `i` to `arg` to leverage it in a
+ later diagnostic message without a separate definition. Inside
+ the loop, expand `arg` instead of positional parameter 1, the
+ meaning of which is less obvious after the parameter list is
+ shifted by the new `is_option_argument_pending` logic (commit
+ 2b955c57, 20 July).
+
+2021-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.1.man (Options) <-S>: Fix error: `-S`
+ sets safer mode (redundantly) but is not passed to pic and troff
+ as was claimed.
+
+2021-07-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/number.cpp (parse_term): Tweak diagnostic
+ messages. When a left operand to a binary operator is empty,
+ report the operator in question (helpful for string
+ interpolations in complex expressions). When handling input
+ scaling indicators, drop word "this" from "this context", since
+ the parser's context might not be clear from a file name and
+ line number. Say "scaling indicator" instead of "scale
+ indicator".
+ (parse_expr, parse_term): Rename function parameter from
+ `scale_indicator` to `scaling_indicator`.
+
+2021-07-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (define_color): Tweak warning
+ diagnostics for clarity. Only one value is expected when
+ defining a color in the `gray` color space. Quote recognized
+ color space names when complaining of an unknown one.
+
+2021-07-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [nroff]: Pass a supplied `-c` option to groff. While at present
+ this does little more than `-P-c` already achieves, that might
+ not be true forever. Further, there is a distinction between
+ ignoring color-related requests in groff input documents and
+ ignoring color-related commands in device-independent output.
+ This distinction would make it unwise to adapt `-c` to any other
+ purpose in nroff in the future.
+
+ * NEWS: Update item from commit dd725dce, 10 February 2020.
+ * src/roff/nroff/nroff.sh: Pass `-c` option to groff in addition
+ to synthesizing a `-P-c` option (for grotty) when it is seen.
+ * src/roff/nroff/nroff.1.man (Options): Document `-c` as an
+ option recognized by troff(1).
+
+2021-07-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [nroff]: Support space between option flags and their arguments.
+
+ * src/roff/nroff/nroff.sh: Add new `is_option_argument_pending`
+ flag to add an additional state to the option parser. Set it if
+ an argument-requiring option is encountered with no abutting
+ argument. If it is set when a new argument is encountered,
+ absorb the argument into the groff option list and clear the
+ flag. Modernize script in a couple of other ways.
+ - Exit with status 2 upon usage errors so that this condition
+ is easily distinguished from a groff abort (which exits with
+ status 1).
+ - Test shell variables for non-nullity with test(1) -n
+ operator instead of a string comparison.
+ * src/roff/nroff/tests/verbose_option_works.sh: Test correct
+ construction of groff command using this input form.
+ * src/roff/nroff/nroff.1.man (Options): Add spaces between
+ option flags and option arguments. Sync metasyntactic variable
+ names with groff(1) while we're at it.
+ (Description): Drop sentence warning of whitespace prohibition.
+ (Exit status): Add new section.
+
+ Fixes <https://savannah.gnu.org/bugs/?60943>.
+
+2021-07-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (main): Emit error diagnostic if `-d`
+ or `-r` option is given a malformed argument. This prevents a
+ string or register with an empty name from being created.
+
+ Fixes <https://savannah.gnu.org/bugs/?60935>.
+
+2021-07-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh:
+ * src/roff/troff/input.cpp (usage): Use "dev" as metasyntactic
+ variable name for -T option argument to achieve consistency with
+ our other documentation.
+
+2021-07-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [groff]: Comment out vestiges of gideal support. It would be
+ lovely to have, but no free (and GPL-compatible) implementation
+ has showed up after decades of waiting. Production of the
+ original was a Ph.D. thesis. Excited by de Moivre's theorem?
+ Take a stab at it.
+
+ * src/roff/groff/groff.cpp (main): Comment out effect of `-J`
+ option. It remains recognized, but silently ignored (instead of
+ attempting to execute a nonexistent preprocessor).
+ (synopsis): Add comment reminding us to document the option if
+ we ever get the support.
+ (help): Comment out documentation of option.
+
+2021-07-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [[gnt]roff]: Make usage messages more accurate.
+
+ * src/roff/groff/groff.cpp (synopsis): Drop `-h` and `-v` from
+ normal operation synopsis. Sort options in en_US lexicographic
+ order. Tighten presentation of alternate usage forms.
+ (help): Document longer forms of `-d` and `-r`.
+ * src/roff/nroff/nroff.sh: Report `$prog` instead of "nroff"
+ literal. Refer to `-P` option argument as "arg" instead of
+ "opt", for consistency with groff usage message. Use opposite
+ case from option letter for option argument.
+ * src/roff/troff/input.cpp (usage): Put brackets around options.
+ Sort options in en_US lexicographic order. Drop `-v` from
+ normal operation synopsis. Use opposite case from option letter
+ for option argument. Put operand name in capitals. Set valid
+ usage forms on one physical line each (see 89648fb4, 5 June).
+ Add synopsis line for alternate usage forms.
+
+2021-07-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Refactor environment initialization, switching, and
+ copying.
+
+ * src/roff/troff/env.cpp: Rename struct `env_list` to
+ `env_list_node` since it describes a node of a singly-linked
+ list. Remove constant `NENVIRONMENTS` and array `env_table`.
+ Add static symbol `default_environment_name` to replace string
+ literal.
+ (init_environments): Stop initializing `curenv` through
+ `env_table`. Use `default_environment_name` for that
+ initialization and add the default environment to
+ `env_dictionary`.
+ (environment_switch): Simplify. Shorten "dummy environment"
+ diagnostic message. Stop creating an integer-named
+ environment inside the `env_table` array, only falling through
+ to use the `env_dictionary` if the named environment is not a
+ valid integer or if the array is full. Instead use
+ `env_dictionary` always. Drop no longer needed `pop`
+ quasi-Boolean integer with extra state to suppress environment
+ stack underflow errors. Instead report the error if underflow
+ occurs, regardless of any other circumstance.
+ (environment_copy): Simplify. Stop searching the `env_table`
+ array for an environment to copy from, only falling through to
+ use the `env_dictionary` if the named environment is not a valid
+ integer or if the array is full. Instead search
+ `env_dictionary` always. Emit "no environment specified to copy
+ from" diagnostic only if the `evc` request is given no argument.
+ If the source environment to copy from is given but not found,
+ emit a new diagnostic naming the nonexistent environment. Fix
+ bug: stop returning early if no copying could be done; instead
+ fall through to the end of the function, which calls
+ `skip_line()` and prevents anything on the remainder of the
+ {invalid} control line from being interpreted. Problem dates
+ back to commit da3b7137, 6 March 2000 (groff 1.16).
+
+ Fixes <https://savannah.gnu.org/bugs/?60913>.
+
+2021-07-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/evc_produces_no_output_if_invalid.sh:
+ Regression-test Savannah #60913.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2021-07-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Update English hyphenation patterns.
+
+ * NEWS: Add item.
+ * tmac/hyphen.en: Update file using `hyph-en-us.tex` patterns
+ file from the TeX hyph-utf8 project.
+ * tmac/hyphenex.en: Remove explicit hyphenations for words that
+ no longer require them when using the new patterns. Add one
+ item scraped from an erratum comment in hyphen.en
+ {"dem-o-crat"}.
+
+ The new patterns likely _will_ change the automatic hyphenation
+ break points of your English documents. Here is a sample of
+ affected words found within groff's own documentary corpus.
+
+ OLD NEW
+ === ===
+ ar‐range‐ment arrange‐ment
+ col‐umns columns
+ con‐struc‐ted con‐structed
+ cus‐tom‐ized cus‐tomized
+ def‐i‐ni‐tions de‐f‐i‐n‐i‐tions
+ der‐i‐va‐tions de‐riva‐tions
+ hy‐phen‐a‐tion hy‐phen‐ation
+ ma‐te‐rial ma‐te‐r‐ial
+ Mi‐cro‐soft Mi‐crosoft
+ pipe‐lines pipelines
+ post‐pro‐ces‐sors post‐proces‐sors
+ pro‐cessed processed
+ pro‐cesses processes
+ spa‐ces spaces
+ Wer‐ner Werner
+
+2021-07-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Add unit test for `substring` request.
+
+ * src/roff/groff/tests/substring_works.sh: Do it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2021-07-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Remove compatibility mode save registers after using
+ them.
+
+ * tmac/an.tmac:
+ * tmac/andoc.tmac:
+ * tmac/cp1047.tmac:
+ * tmac/devtag.tmac:
+ * tmac/ec.tmac:
+ * tmac/fallbacks.tmac:
+ * tmac/latin1.tmac:
+ * tmac/latin2.tmac:
+ * tmac/latin5.tmac:
+ * tmac/latin9.tmac:
+ * tmac/papersize.tmac:
+ * tmac/pdfpic.tmac:
+ * tmac/psold.tmac:
+ * tmac/pspic.tmac:
+ * tmac/trace.tmac:
+ * tmac/unicode.tmac: Do it.
+
+ * doc/groff.texi (Implementation Differences):
+ * man/groff_diff.7.man (Implementation Differences): Illustrate
+ doing so in relevant examples.
+
+2021-07-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/troffrc: Load the English localization file `en.tmac` by
+ default, instead of dealing with hyphenation language and
+ patterns directly in this file. (This also replaces a
+ localization-determination mechanism that was never part of a
+ groff release.)
+
+ * src/roff/groff/tests/initialization_is_quiet.sh:
+ * src/roff/groff/tests/localization_works.sh: Rewrite to use
+ explicit macro file loading localization mechanism.
+
+2021-07-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Move core man(7) implementation to an.tmac.
+
+ * tmac/an.tmac: Delete andoc-sourcing wrapper.
+
+ * tmac/an-old.tmac: Rename...
+ * tmac/an.tmac: ...to this.
+
+ * tmac/tests/an-old_AT-and-UC-footer-saved-and-restored.sh:
+ * tmac/tests/an-old_CS-register-off.sh:
+ * tmac/tests/an-old_CS-register-on.sh:
+ * tmac/tests/an-old_CS-register-unspecified.sh:
+ * tmac/tests/an-old_CT-register-off.sh:
+ * tmac/tests/an-old_CT-register-on.sh:
+ * tmac/tests/an-old_CT-register-unspecified.sh:
+ * tmac/tests/an-old_FT-bad-value-should-not-trash-titles.sh:
+ * tmac/tests/an-old_LL-init-sanely.sh:
+ * tmac/tests/an-old_TH-repairs-ad-damage.sh:
+ * tmac/tests/an-old_TH-repairs-hy-damage.sh:
+ * tmac/tests/an-old_TS-do-not-keep-tables-when-cR-set.sh:
+ * tmac/tests/an-old_X-register-works.sh:
+ * tmac/tests/an-old_avoid-two-font-denial-of-service.sh:
+ * tmac/tests/an-old_no-break-after-short-paragraph-tags.sh:
+ * tmac/tests/an-old_page-footers-present.sh:
+ * tmac/tests/an-old_page-header-has-current-data.sh:
+ * tmac/tests/an-old_title-abbreviation-works.sh: Rename...
+
+ * tmac/tests/an_AT-and-UC-footer-saved-and-restored.sh:
+ * tmac/tests/an_CS-register-off.sh:
+ * tmac/tests/an_CS-register-on.sh:
+ * tmac/tests/an_CS-register-unspecified.sh:
+ * tmac/tests/an_CT-register-off.sh:
+ * tmac/tests/an_CT-register-on.sh:
+ * tmac/tests/an_CT-register-unspecified.sh:
+ * tmac/tests/an_FT-bad-value-should-not-trash-titles.sh:
+ * tmac/tests/an_LL-init-sanely.sh:
+ * tmac/tests/an_TH-repairs-ad-damage.sh:
+ * tmac/tests/an_TH-repairs-hy-damage.sh:
+ * tmac/tests/an_TS-do-not-keep-tables-when-cR-set.sh:
+ * tmac/tests/an_X-register-works.sh:
+ * tmac/tests/an_avoid-two-font-denial-of-service.sh:
+ * tmac/tests/an_no-break-after-short-paragraph-tags.sh:
+ * tmac/tests/an_page-footers-present.sh:
+ * tmac/tests/an_page-header-has-current-data.sh:
+ * tmac/tests/an_title-abbreviation-works.sh: ...to these.
+
+ * tmac/tmac.am (TMACNORMALFILES): Remove an-old.tmac.
+ (tmac_TESTS): Reflect renames of test files above.
+ (tmac/stamp-wrap): Macro-source `an.tmac` in the man wrapper.
+
+ * tmac/andoc.tmac: Refer to (and macro-source) an.tmac.
+ * tmac/man.tmac: Macro-source `an.tmac`, not `andoc.tmac`.
+ * tmac/tests/andoc_flush-between-packages.sh: Call groff with
+ `-mandoc` option instead of `-man`. Henceforth, if you want the
+ andoc wrapper, you have to ask for it.
+
+ * tmac/an.tmac: Drop "-old" nomenclature.
+
+ * PROBLEMS:
+ * doc/groff.texi (man):
+ * tmac/man.local: Update documentation appropriately.
+
+ * NEWS: Add item.
+
+ * man/groff_tmac.5.man (Macro packages/man pages):
+ * src/roff/groff/groff.1.man (Usage/Macro packages): Update
+ discussion of an, doc, and andoc.
+ * tmac/groff_man.7.man.in (Files): Update descriptions of
+ an.tmac, andoc.tmac, man.tmac, and mandoc.tmac.
+
+ Fixes <https://savannah.gnu.org/bugs/?60789>.
+
+2021-07-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Slightly refactor. Make the source code slightly more
+ accessible by using a `bool` type for a function's default
+ parameter used as a Boolean, and comment it at call sites where
+ the default is overridden.
+
+ * src/roff/troff/token.h (get_name, get_long_name): Change type
+ of parameter from `int` to `bool` and default from 0 to `false`.
+ * src/roff/troff/input.cpp (do_get_long_name)
+ (empty_name_warning, get_name, get_long_name): Change type of
+ parameter from `int` to `bool` in declarations and definitions.
+ * src/roff/troff/column.cpp (column_justify):
+ * src/roff/troff/div.cpp (diversion_trap):
+ * src/roff/troff/env.cpp (environment_switch, environment_copy)
+ (do_input_trap, set_hyphenation_language)
+ (do_hyphenation_patterns_file):
+ * src/roff/troff/input.cpp (define_color, composite_request)
+ (do_define_string, do_define_macro, rename_macro, alias_macro)
+ (chop_macro, do_string_case_transform, substring_request)
+ (length_request, asciify_macro, unformat_macro, do_register)
+ (device_macro_request, do_if_request, do_source)
+ (ps_bbox_request, do_open, close_request, do_write_request)
+ (write_macro_request, define_class, copy_file, vjustify)
+ (transparent_file, do_macro_source):
+ * src/roff/troff/node.cpp (font_translate, font_position, style)
+ (get_fontno):
+ * src/roff/troff/reg.cpp (define_number_reg, inline_define_reg)
+ (alter_format, alias_reg, rename_reg): Update call sites. Add
+ (comment indicating meaning of parameter.
+
+ Do similarly for token::delimiter() member function.
+
+ * src/roff/troff/token.h (token::delimiter): Change type of
+ parameter from `int` to `bool`, name from `warn` to `err` (to
+ match definition and behavior in input.cpp) and default from 0
+ to `false`.
+ * src/roff/troff/input.cpp (token::delimiter): Change type of
+ parameter from `int` to `bool` in definition.
+ * src/roff/troff/input.cpp (do_expr_test, get_delim_number)
+ (get_line_arg, read_size, do_register, read_draw_node):
+ * src/roff/troff/reg.cpp (inline_define_reg): Update call sites.
+ Add comment indicating meaning of parameter.
+
+2021-07-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-footer): Remove string
+ `an-outer-footer-text` after we're done with it.
+
+2021-07-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Remove the stripper script and its vestiges.
+
+ * contrib/hdtbl/hdmisc.tmac:
+ * contrib/hdtbl/hdtbl.tmac:
+ * contrib/mom/om.tmac:
+ * tmac/doc.tmac:
+ * tmac/e.tmac:
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff:
+ * tmac/mdoc/doc-syms: Remove `%beginstrip` comment.
+
+ * tmac/strip.sed: Delete.
+
+ * tmac/tmac.am (EXTRA_DIST): Stop shipping `strip.sed`.
+
+ Fixes <https://savannah.gnu.org/bugs/?55091>.
+
+2021-07-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Skip the stripper, part 3/3 (mdoc).
+
+ * tmac/doc-old.tmac-u:
+ * tmac/doc.tmac-u:
+ * tmac/mdoc/doc-common-u:
+ * tmac/mdoc/doc-ditroff-u:
+ * tmac/mdoc/doc-nroff-u:
+ * tmac/mdoc/doc-syms-u: Rename these...
+
+ * tmac/doc-old.tmac:
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff:
+ * tmac/mdoc/doc-syms: ...to these.
+
+ * tmac/tmac.am (TMACNORMALFILES): Add `doc-old.tmac` and
+ `doc.tmac`.
+ (TMACUNSTRIPFILES, TMACSTRIPFILES): Delete variables.
+ (dist_tmac_DATA): Drop `$(TMACUNSTRIPFILES)`.
+ (nodist_tmac_DATA): Drop `$(TMACSTRIPFILES)`.
+ (TMACMDOCSTRIPFILES): Rename...
+ (TMACMDOCFILES): ...to this.
+ (nodist_mdoc_DATA, MOSTLYCLEANFILES): Reflect above rename.
+ (nodist_mdoc_DATA): Rename...
+ (dist_mdoc_DATA): ...to this.
+ (TMACMDOCUNSTRIPFILES): Delete variable.
+ (EXTRA_DIST): Drop `$(TMACMDOCUNSTRIPFILES)`.
+ ($(TMACSTRIPFILES), $(TMACMDOCSTRIPFILES)): Drop targets.
+
+ The portions above are based on a patch by Ingo Schwarze.
+
+ * tmac/doc.tmac:
+ * tmac/mdoc/doc-common:
+ * tmac/mdoc/doc-ditroff:
+ * tmac/mdoc/doc-nroff:
+ * tmac/mdoc/doc-syms: Bracket macro definitions tightly with
+ `eo` and `ec` requests since they were written under this
+ assumption. The files in general were also drafted under the
+ assumption that they'd be stripped, so `eo` was in effect for
+ broad swaths of the file including portions outside of any macro
+ definition where comments were used. But comments are expressed
+ using the escape character! So we got warnings about an
+ undefined '\"' macro, and that was just the beginning of a
+ wrecking ball of trouble that smashed through the
+ implementation. Some--but not all--string definitions (and
+ appendments) needed to be bracketed with `eo` and `ec` as well,
+ to delay interpolation of embedded string names that are not
+ defined until macros interpolate them later. I did what
+ appeared necessary to pass our tests and keep -Tutf8 and -Tps
+ renderings of tmac/groff_mdoc.7 from changing from their
+ strip-influenced output. Subtle bugs might linger, but some
+ won't be the fault of the unstripping process. (For instance,
+ try provoking a usage message on the `Hf` macro.)
+
+2021-07-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man pages]: Remove compatibility save register.
+
+ * **/*.man*: Remove page-local compatibility save register after
+ using it.
+
+2021-07-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Simplify `mso` requests.
+
+ * tmac/X.tmac:
+ * tmac/Xps.tmac:
+ * tmac/dvi.tmac:
+ * tmac/html.tmac:
+ * tmac/lbp.tmac:
+ * tmac/lj4.tmac:
+ * tmac/ps.tmac:
+ * tmac/tty-char.tmac:
+ * tmac/tty.tmac:
+ * tmac/www.tmac.in: Move `mso` requests to be inside regions
+ where compatibility mode is turned off. I believe they were
+ placed where they were because things didn't work when the
+ compatibility mode register being saved was .C, rather than the
+ .cp register introduced in commit 6a37bb5f, 17 April 2020. Now
+ the logic is less mysterious. Also, remove the register used to
+ save compatibility mode after we're done with it, to reduce name
+ space clutter.
+
+2021-07-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/it.tmac: Drop sourcing of `latin1.tmac` and set up of
+ hyphenation codes; since the `hyphen.it` file is pure ASCII, we
+ don't need to expect Latin-1-encoded code points in it.
+
+2021-07-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Make localization files work in compatibility mode.
+
+ * tmac/cs.tmac:
+ * tmac/de.tmac:
+ * tmac/en.tmac:
+ * tmac/fr.tmac:
+ * tmac/it.tmac:
+ * tmac/ja.tmac:
+ * tmac/sv.tmac:
+ * tmac/zh.tmac: Save and restore compatibility mode.
+
+ * tmac/den.tmac: Invoke requests with `do`.
+
+ Fixes <https://savannah.gnu.org/bugs/?60874>. Thanks to Bjarni
+ Ingi Gislason for the report.
+
+2021-07-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #60874.
+
+ * src/roff/groff/tests/initialization_is_quiet.sh: Test it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2021-07-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Integrate Italian localization.
+
+ * NEWS: Add item. Update an existing list of localization macro
+ files.
+ * doc/groff.texi (Manipulating Hyphenation): Update table of
+ hyphenation pattern left and right minimums and list of
+ available localization files to include Italian.
+ * man/groff_tmac.5.man: Update list of available localization
+ files to include Italian.
+ * src/roff/groff/tests/localization_works.sh: Test it.
+ * tmac/tmac.am (TMACNORMALFILES): Add `it.tmac` and `hyphen.it`.
+
+ Fixes <https://savannah.gnu.org/bugs/?60828>.
+
+2021-07-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Flesh out Italian localization.
+
+ * tmac/hyphen.it: Add hyphenation patterns from TeX hyph-utf8
+ project.
+ * tmac/it.tmac:
+ - Revise copyright date to just this year (it had been copied
+ from fr.tmac).
+ - Use grave accents instead of acute ones to indicate stress
+ on word-final vowels. Per the University of Wikipedia and a
+ sampling of apparently well-typeset Italian language
+ documents online, this appears to be correct. Yell at me if
+ I'm wrong.
+ - Source latin1.tmac instead of latin9.tmac; Italian doesn't
+ require any letter code points from Latin-9, unlike the
+ French file upon which this one was based, and Latin-1 is
+ less of a pain to work with.
+ - Set the hyphenation mode to 1 instead of 4 for congruence
+ with the requirements of the hyphenation patterns.
+ - Set up hyphenation codes. This (and sourcing latin1.tmac)
+ might not be necessary as the hyphenation pattern file, of a
+ more recent vintage than the others we're using, is pure
+ ASCII. However I don't understand these issues perfectly so
+ I am making the conservative choice. Again per the
+ University of Wikipedia, Italian requires only acute and
+ grave accents, in contrast to the rich French diacritical
+ bouillabaisse.
+ - Set the hyphenation language and load the pattern file.
+ - Add comments in parallel with other localization files and
+ to supply text editors with hints.
+
+2021-07-02 Edmond Orignac <edmond.orignac@wanadoo.fr>
+
+ * tmac/it.tmac: Add Italian localization.
+
+2021-07-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Skip the stripper, part 1/3 ("me").
+
+ * tmac/e.tmac-u: Rename to...
+ * tmac/e.tmac: ...this.
+
+ * tmac/tmac.am (TMACNORMALFILES): Add tmac/e.tmac.
+ (TMACUNSTRIPFILES): Remove tmac/e.tmac-u.
+ (TMACSTRIPFILES): Remove tmac/e.tmac.
+
+ Fixes one third of <https://savannah.gnu.org/bugs/?55091>.
+
+2021-07-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl: Simplify parsing. Dave Kemper pointed
+ out that preprocessors like pic(1) use pretty unsophisticated
+ *roff parsing to determine where to perform their textual
+ replacements. My enhancements to support input line
+ continuation and cope with brace escapes were thus
+ overengineered. Remove them.
+ - Drop scalars `is_continued_line` and `logical_line`.
+ (do_line): Stop performing logical line concatenation and
+ detecting input line continuation. Perform operations on
+ `line` instead of `logical_line`. Stop removing brace
+ escapes.
+ * src/utils/grog/grog.1.man (Limitations): Update discussion.
+
+ Fixes <https://savannah.gnu.org/bugs/?60862>. Thanks, Dave!
+
+2021-06-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/reg.cpp (lookup_number_reg, alias_reg): In
+ diagnostic messages, say simply "register" instead of "number
+ register" (there is no other kind).
+
+2021-06-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Refactor input parsing.
+
+ * src/utils/grog/grog.pl:
+ - Add scalar `use_compatibility_mode` (see below).
+ - Add list `request` to store the names of all requests
+ recognized by groff so that they aren't confused with macro
+ names.
+ - Add scalars `have_seen_first_macro_call` (replaces
+ `before_first_command`, but at global scope),
+ `is_continued_line` and `logical_line`. The latter two
+ enable us to handle *roff input line continuation correctly.
+ (process_arguments): Set `use_compatibility_mode` if `-C`
+ option specified.
+ (process_input): Refactor to greatly simplify, to not attempt
+ to read the first line of an input file as a special case, and
+ to avoid sending `do_line` an undefined argument (when EOF is
+ reached).
+ (do_first_line): Delete.
+ (do_line): Rewrite the early stages of input parsing.
+ - Concatenate continued input lines, setting
+ `is_continued_line` and returning early as each one is seen,
+ storing the accumulating input in `logical_line`.
+ - Check the input line for the form of comment deposited by
+ Perl's Pod::Man, which uses a highly accented dialect of
+ man(7); if it's present, inflate `man_score` to compensate
+ for the page-private `IX` macro it defines but which
+ duplicates the name and function of a 4.2BSD-era ms(7)
+ extension that would otherwise deceive our scoring
+ mechanism, because Pod::Man produces `IX` calls to
+ metastatic excess. (An alternative to this kludge is
+ documented in comments: if a "standard" macro is redefined,
+ we could delete it from the relevant lists and hashes.)
+ - Strip *roff comments from input.
+ - Normalize control lines; convert the no-break control
+ character to the regular one and remove unnecessary
+ white space.
+ - Remove brace escapes.
+ - Recognize two-character macro calls when not followed by
+ white space in compatibility mode.
+ - Drop logic that erroneously attempted to infer soelim(1) use
+ from macro calls and request invocations. The grog(1) and
+ soelim(1) man pages now both explain why such an effort was
+ misguided.
+ - Recognize macro definitions created by .am and .am1 requests
+ {not just .de and .de1}.
+ - Ignore all other *roff requests.
+ - What remains must be a ("standard") macro call, so set
+ `have_seen_first_macro_call`.
+
+ * src/utils/grog/grog.1.man (Limitations): Document a further
+ restriction: don't change the escape character, either.
+
+ * src/utils/grog/tests/smoke-test.sh: Comment out pic-detection
+ test on soelim(1). The pic macro calls are guarded by roff
+ control structures and only worked previously by accident
+ because grog did not recognize *roff input line continuation,
+ now it does and the illusion is dispelled. (A reliable way to
+ fool grog before and after my refactoring is now documented in
+ its man page.)
+
+ Fixes <https://savannah.gnu.org/bugs/?59622>.
+
+2021-06-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #59622.
+
+ * src/utils/grog/tests/recognize-perl-pod.sh: Test it.
+ * src/utils/grog/grog.am (grog_TESTS): Run test.
+
+2021-06-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.1.man (Limitations): Document further
+ restrictions (no changing of control characters, control
+ structures not interpreted).
+
+2021-06-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Refactor command-line argument handling.
+
+ * src/utils/grog/grog.pl:
+ - Drop scalars `groff_opts`, `device`, and `with_warnings`.
+ - Move scalar `pdf_with_ligatures`...
+ (process_arguments): ...here. Recognize all groff options
+ that take an optionally whitespace-separated option argument
+ and apply the existing "delayed option" handling to them.
+ Push any groff option except `-m` as-is onto the constructed
+ groff command's argument list (`-m` handling is unchanged).
+ Match long option names exactly, not sloppily. Stop
+ recognizing `--warnings` option. Emit error diagnostic if
+ unrecognized long option encountered.
+ (infer_device): Delete subroutine and its top-level call site.
+ (help): Undocument `--warnings`.
+
+ * src/utils/grog/grog.1.man:
+ (Synopsis): Use font style macros instead of .OP. Undocument
+ `--warnings`.
+ (Options): Note that the groff arguments produced by the grog
+ `--ligatures` option are supported only by the `pdf` device.
+ Undocument `--warnings`. Undocument groff-incompatible
+ restriction on whitespace before option arguments; grog is
+ compatible now. Simplify discussion in light of simplified
+ grog logic.
+ (Details): Undocument scenario where grog infers multiple
+ main/major/full-service macro packages; this no longer
+ happens.
+ (Examples): Update to no longer illustrate inclusion of `-T
+ ps` option; this no longer happens by default.
+
+ * NEWS: Document removal of grog's `--warnings` option.
+
+ Fixes <https://savannah.gnu.org/bugs/?57873>; groff options are
+ no longer "mangled".
+
+2021-06-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #57873.
+
+ * src/utils/grog/tests/preserve-groff-options.sh: Test it.
+ * src/utils/grog/grog.am (grog_TESTS): Run test.
+
+2021-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Refactor device (`-T` option) handling.
+
+ * src/utils/grog/grog.pl: Redeclare `device` as a scalar instead
+ of a list.
+ (process_arguments): Generalize handling of `-T` and `-m`
+ options to permit optional whitespace. Rename scalar `was_T` to
+ `delayed_option`.
+ (infer_device): Stop unconditionally adding a `-T ps` argument
+ to the generated groff command. Remove logic that validates any
+ given `-T` option argument; instead, let groff fail if a bad one
+ is supplied (its own diagnostics in this scenario were improved
+ in commit 5a721a30, 27 May). This makes grog agnostic about any
+ differently configured default device in groff itself, and about
+ the GROFF_TYPESETTER environment variable.
+
+ Fixes <https://savannah.gnu.org/bugs/?55301> by getting out of
+ the way.
+
+ * src/utils/grog/tests/PF-does-not-start-pic-region.sh:
+ * src/utils/grog/tests/smoke-test.sh: Update expected output.
+
+2021-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.am (grog): Drop sed replacement of unused
+ configuration variables @g@, @BINDIR@, @libdir@, and @EGREP@.
+ * src/utils/grog/grog.pl (process_arguments, construct_command):
+ Tweak warning diagnostics to use a style where an empty argument
+ will be easy to spot.
+ (do_first_line): Stop emitting pseudo-diagnostic (to standard
+ output!) if we see a "groff options line" [it's not] of
+ incorrect form. The preprocessor encoding hint convention of
+ concern here is particular to man pages, disregarded by at least
+ one major implementation thereof (man-db man), and not used by
+ other types of roff documents; at this point, we don't yet know
+ if the document we're processing is a man page.
+ (construct_command): Correct comment and related logic error.
+ Clear the inferred main macro package if _any_ `-m` argument
+ matching any main macro package is given. Warn only if what is
+ specified doesn't match the inference.
+
+2021-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Heavily refactor.
+
+ * src/utils/grog/grog.pl:
+ - Drop import of unused module `Data::Dumper`.
+ - Drop unused scalars `Sp` and `correct_tmac`.
+ - Simplify determination of version number. Drop hash `at_at`
+ which only stored one key, `GROFF_VERSION`. Initialize
+ scalar `groff_version` to "DEVELOPMENT". Rename scalar
+ `before_make` to `in_source_tree` and initialize to zero.
+ Update `groff_version` with Automake-determined version
+ variable if it is defined (i.e., grog is not running outside
+ of, or in an unbuilt, groff source or binary distribution).
+ - Drop unused `Mparams` list. Replace it with new list
+ `requested_package`, which stores the arguments to any grog
+ `-m` options specified by the user.
+ - Rename many objects so that I, and others, can better
+ comprehend their purpose, and for consistent letter casing.
+ . @Command -> @command
+ . @devices -> @device
+ . $Prog -> $program_name
+ . %macros -> %user_macro
+ . $have_any_valid_args -> $have_any_valid_arguments
+ . &handle_args -> &process_arguments
+ . &handle_whole_files -> &process_input
+ . @preprograms -> @preprocessor
+ . &make_groff_device -> &infer_device
+ . &make_groff_preproc -> &infer_preprocessors
+ . &make_groff_tmac_others -> &infer_macro_packages
+ . &make_groff_tmac_man_ms -> &infer_man_or_ms_package
+ . &make_groff_line_rest -> &construct_command
+ - Drop many unused keys in `Groff` hash.
+ - Add new lists, `macro_ms`, `macro_man`, and
+ `macro_man_or_ms` to support new scoring technique to
+ disambiguate input documents between these two packages.
+ - Append the foregoing 3 lists to new list `standard_macro`,
+ and add these as keys to the `Groff` hash.
+ - Add new list `main_package` to keep track of full-service
+ package names.
+ - Add new scalars `man_score`, `ms_score`, and
+ `inside_tbl_table` to aid disambiguation of .TH macro calls
+ and the many macro names shared between man(7) and ms(7).
+ (process_arguments): Strip '-m' off of argument before storing
+ the remainder in `@requested_package`.
+ (do_line): Detect .TH macro call even if white space occurs
+ between the control character and the macro name.
+ (do_line): Inflate `$man_score` by 100 if .TH is the first
+ macro call seen in a document.
+ (do_line): Fix bug; clear `$before_first_command` in correct
+ scope--after any macro call, not just if we saw a .TH as the
+ first macro call.
+ (do_line): Set `$inside_tbl_table` when we see a .TS call.
+ (do_line): Clear `$inside_tbl_table` when we see a .TE call.
+ Also increment `$Groff{'tbl')' again, increasing the "score"
+ of tbl(1) usage evidence.
+ (do_line): Drop a lot of code that manually increments %Groff
+ keys corresponding to man and ms macros. This is now done
+ differently and elsewhere.
+ (do_line): Drop "P" from list of characteristic mm(7) macros.
+ (do_line): Simplify matching of mom(7) macros (match $command,
+ not $line). Extend list of characteristic mom(7) macros.
+ (do_line): Increment $Groff{$key} if $key is in
+ @standard_macro.
+ (infer_man_or_ms_package): Rewrite. Compute a score for each
+ package by counting occurrences of their characteristic
+ macros. If both have a score of zero, assume that the input
+ is a raw roff document. If the scores are equal
+ {doc/webpage.ms, startlingly, comes within 1 point of a tied
+ score}, infer ms(7) if 'TH' was never called, and if it was,
+ issue a diagnostic advising user to supply a disambiguating
+ `-m` option. Otherwise, the scores are unequal: infer the
+ package of the winner. Set scalar `inferred_main_package`
+ instead of pushing `-m` options onto `@m`.
+ (infer_macro_packages): Set scalar `inferred_main_package`
+ instead of pushing `-m` options onto `@m`. Explicitly return
+ 0 if we fall off the end of the function.
+ (construct_command): Rewrite handling of -m options. Add new
+ list `msupp` to store supplementary (non-main) macro package
+ arguments. If a full-service package was explicitly
+ requested, it had better not clash with what we inferred. If
+ it does, explicitly unset `inferred_main_package` so that the
+ -m arguments are placed in the same order that the user gave
+ them; caveat dictator. If `--run` option was given, just
+ print the command; don't preface it with __FILE__ and __LINE__
+ noise.
+ - Remove comments documenting shared variables used by
+ subroutines. These are far from useless but too tedious to
+ keep up to date while the code is in flux.
+ - Note several places for further code review or refactoring
+ with "XXX" comments.
+ - Add Vim modeline.
+
+ grog now passes all its tests and correctly infers arguments for
+ all in-tree groff documents (except for a known, and already
+ documented in grog(1), false positive detection of soelim in
+ soelim(1)). This refactor also obviates or resolves several
+ outstanding Savannah tickets.
+
+ Fixes <https://savannah.gnu.org/bugs/?44707> by obviating it;
+ grog no longer cares about file name extensions on man pages (or
+ any other input).
+
+ Fixes <https://savannah.gnu.org/bugs/?55302>; same. The quality
+ of diagnostic messages has been improved as well.
+
+ Fixes <https://savannah.gnu.org/bugs/?59753>; same.
+
+ Fixes <https://savannah.gnu.org/bugs/?59664>. The attached
+ patch was a less aggressive refactor of &do_line and %Groff.
+ Its author made the following claim for it: "With this patch,
+ all 'man', 'me', 'mom, and 'ms' files in the repository are
+ correctly identified. The only example of a 'mm'-file is
+ "letter.mm", which is not recognized correctly." As noted
+ above, the present refactor achieves correct recognition of all
+ of the files, including letter.mm.
+
+2021-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/tests/smoke-test.sh: Perform whole-line
+ matches. Apply DRY principle to expected output. In
+ anticipation of pending changes to grog.pl, uncomment and add
+ tests for several in-tree documents.
+ doc/meref.me
+ contrib/mom/examples/copyright-chapter.mom
+ contrib/mom/examples/copyright-default.mom
+ contrib/mom/examples/letter.mom
+ contrib/mom/examples/mom-pdf.mom
+ contrib/mom/examples/mon_premier_doc.mom
+ contrib/mom/examples/sample_docs.mom
+ contrib/mom/examples/slide-demo.mom
+ contrib/mom/examples/typesetting.mom
+ doc/webpage.ms
+
+2021-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Refactor. Discard filename extension-based inference.
+
+ * src/utils/grog/grog.pl (do_line): Stop saving the control
+ character in the matched scalar `command` (the request or macro
+ name). We don't need it, and it simplifies much later matching.
+ (handle_file_ext): Delete.
+ (top level): Drop call site.
+
+ * src/utils/grog/grog.pl: Rename `tmac_ext` scalar to
+ `inferred_main_package`.
+
+2021-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.pl (handle_args): Complain less noisily
+ and more comprehensibly when given unrecognized groff options.
+
+2021-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Handle "--" argument as documented.
+
+ * src/utils/grog/grog.pl (handle_args): Rename scalar
+ `double_minus` to `no_more_options` so it actually communicates
+ something. Drop openability check of operand encountered after
+ "--"; since it's on the operand list, it will be checked later
+ {in `handle_whole_files`}. Stop pushing "--" itself onto the
+ `filespec` list.
+
+ Fixes <https://savannah.gnu.org/bugs/?60834>.
+
+2021-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Revise operand handling, diagnostics, and exit status.
+
+ * src/utils/grog/grog.pl: Track more state so that we can
+ process the argument list more intelligently and exit with a
+ meaningful status. Add `had_inference_problem`,
+ `had_processing_problem`, and `have_any_valid_args` Boolean
+ scalars.
+ (fail): Add diagnostic subroutine for serious problems; sets
+ `had_processing_problem`.
+ (handle_args, handle_file_ext): Stop complaining here about
+ unopenable file operands.
+ (handle_whole_files): Complain only here, with `fail` if a file
+ operand cannot be opened.
+ (make_groff_line_rest): Don't exit immediately if there is a
+ macro package inference clash, because there might be more
+ operands to process. Instead, set `had_inference_problem`.
+ Stop exiting from this subroutine.
+ (top level): Only call the inference subroutines if we had a
+ valid operand to work with (including an implicit read from
+ stdin). Exit with a status corresponding to the Booleans
+ declared above.
+
+ * src/utils/grog/grog.1.man (Exit status): Add section; describe
+ semantics of exit status values.
+
+ Fixes <https://savannah.gnu.org/bugs/?60833>.
+
+2021-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Revise diagnostic messages.
+
+ * src/utils/grog/grog.1.man (err): Rename from this...
+ (warn): ...to this. Prefix diagnostic with command name and
+ diagnostic severity level. The subroutine didn't change the
+ exit status and was not used to report serious trouble, so
+ "warning" seems appropriate.
+ (make_groff_tmac_man_ms): Update call sites. Modify diagnostic
+ wording to stop calling macros "requests".
+
+2021-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/grog.1.man (Limitations): Add subsection
+ covering the problem grog has with soelim inference. Undocument
+ groff's -s option as one that can be inferred, because at
+ present it cannot be.
+
+ Prompted by Savannah #60421.
+
+2021-06-26 Dave Kemper <saint.snit@gmail.com>
+
+ [grog]: Fix erroneous detection of pic(1) usage.
+
+ Fixes <https://savannah.gnu.org/bugs/?60772>.
+
+2021-06-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/grog/tests/PF-does-not-start-pic-region.sh:
+ Regression-test Savannah #60772.
+ * src/utils/grog/grog.am (grog_TESTS): Run test.
+
+2021-06-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Add smoke test.
+
+ * src/utils/grog/tests/smoke-test.sh: Add test.
+ * src/utils/grog/grog.am (grog_TESTS): Run it.
+ (TESTS): Add `grog_TESTS`.
+ (EXTRA_DIST): Ship test.
+
+2021-06-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grog]: Relocate in source tree.
+
+ * src/roff/grog: Move from here...
+ * src/utils/grog: ...to here.
+
+ * MANIFEST:
+ * Makefile.am:
+ * src/utils/grog/grog.am: Reflect move.
+
+ Fixes <https://savannah.gnu.org/bugs/?60788>.
+
+2021-06-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Assigning Formats): Revise discussion.
+ Clarify that a format never causes truncation of an interpolated
+ magnitude. Note that non-Arabic number formats cannot be used
+ as operands to arithmetic expressions. Add example of how to
+ work around this.
+
+2021-06-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Clarify diagnostics.
+
+ * src/roff/troff/reg.cpp (reg::set_increment): Update diagnostic
+ to unabbreviate "auto".
+ (reg::alter_format): Update diagnostic to say "assign" instead
+ of "alter", since the documentation consistently uses the former
+ term.
+
+2021-06-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [troff]: Slightly refactor. Make the source code slightly more
+ accessible by using a `bool` type for a member function's
+ default parameter used as a Boolean, and comment it at call
+ sites where the default is overridden.
+
+ * src/roff/troff/token.h (token::get_char): Change type of
+ parameter from `int` to `bool` and default from 0 to `false`.
+ * src/roff/troff/input.cpp (token::get_char): Update definition.
+ * src/roff/troff/env.cpp (hyphen_word):
+ * src/roff/troff/node.cpp (remove_font_special_character):
+ * src/roff/troff/input.cpp (do_overstrike, do_bracket, next)
+ (do_define_character, remove_character, get_line_arg)
+ (encode_char, do_if_request, do_translate, char_flags)
+ (hyphenation_code, define_class): Update call sites. Add
+ comment indicating meaning of parameter.
+
+2021-06-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): When outputting HTML, write the
+ possibly case-transformed (but not yet abbreviated) page title
+ as the `title` element instead of the unaltered first argument
+ to `TH`.
+
+2021-06-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-abbreviate-title): Define with `de`, not
+ `de1`, since it is not intended for call by traps or users.
+
+2021-06-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Tab Stops): Fix erroneous claim; tab stops are
+ not set "every half inch across the page". This is only true in
+ "line tabs mode", which is not enabled by default. The default
+ behavior, to keep compatibility with AT&T troff, measures tab
+ stops relative to the current position on the input line.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-nroff-u: Set the usekeeps register used by tbl
+ to the logical complement of the cR (continuous rendering)
+ register. This prevents blank lines from creeping into tables
+ in that mode.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-blank-line-trap, an-leading-space-trap):
+ We say in a comment, "Macros ... that are called by traps of any
+ kind must be defined with `de1` because they might be called
+ from a context where compatibility mode is enabled." So do it.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-header): Lightly refactor; tighten.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-write-paragraph-tag): Lightly refactor
+ for clarity and to reduce code duplicated in both branches of an
+ `ie`/`el` structure.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Rename `an-HF-remap-I-style` register to
+ `an-remap-I-style-in-headings` for greater clarity.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common-u (doc-header, doc-end-macro): Partially
+ revert bf4b3dde (from 20 May); per Ingo Schwarze, continuous
+ rendering in mdoc(7) documents has always used only one vee
+ between headers, footers, and man page body text.
+
+2021-06-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/en.tmac: Stop using `do` request; it's unnecessary since
+ the file is already loaded with compatibility mode off.
+
+2021-06-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Fix doc omission; .ID can take an argument.
+
+ * doc/groff.texi (ms Document Control Settings) <DI>:
+ Characterize register setting as a _default_.
+ (ms Displays and Keeps): Add optional variable "indent" argument
+ to syntax summary of ".DS I" and ".ID". Note that the given
+ indentation is used if present, and \n[DI] otherwise.
+ * doc/ms.ms (Displays and keeps): Add optional variable "indent"
+ argument to syntax summary of ".ID". Switch fonts more
+ carefully and apply italic corrections.
+ * tmac/groff_ms.7.man (Displays and keeps): Sync with doc/ms.ms.
+
+2021-06-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Properly situate devtag flag-related register
+ names in the package name space. Rename `need_eo_h` to
+ `s@devtag-needs-end-of-heading'. Rename `need_eo_tl` to
+ `s@devtag-needs-end-of-title`.
+ ((initialization), par@reset, @SH, par@finish, @NH): Do it.
+ (par@reset): Test their values more idiomatically.
+
+ Fixes last third of <https://savannah.gnu.org/bugs/?42515>.
+
+2021-06-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac-u (@h): Migrate SCCS revision 2.37 to be idiomatic
+ for groff (and not throw warnings of type 'mac').
+
+2021-06-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Improve diagnostics during documentation
+ generation; none should occur normally, but when they do, seeing
+ troff complain about "<standard input>" is disheartening.
+ (DOC_GROFF_ONLY): Add -b option so we get backtraces (also kill
+ off trailing whitespace).
+ (DOC_GROFF):
+ (doc/pic.html):
+ (doc/webpage.html): Add sed expression to inject `lf` request
+ into the stream to identify the file being processed.
+
+2021-06-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/me-revisions: Supplement history with subsequent BSD work
+ from versions 2.29 (1988-04-22) to 8.1 (1993-06-05).
+
+2021-06-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/me-revisions: Add 'me' macro package revision log, scraped
+ from <https://svnweb.freebsd.org/csrg/share/me/revisions>.
+ * doc/doc.am (DOCFILES): Ship it.
+
+2021-06-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac-u: Rename registers for clarity. Unlike other
+ macro packages supplied by groff, "me" mostly remains within the
+ AT&T 2-character name space, accessing extended names
+ selectively through `do` and `de1` requests. The package
+ therefore has no characteristic name prefix.
+ need_eo_h -> devtag-needs-end-of-heading
+ need_eo_tl -> devtag-needs-end-of-title
+ need_tl -> devtag-needs-title
+ (@html_check_need_title, sh, EQ): The foregoing registers are
+ effectively Booleans, so perform Boolean-style tests on their
+ interpolations.
+
+ Fixes a second third of <https://savannah.gnu.org/bugs/?42515>.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/e.tmac-u: Work in compatibility mode. It seems this was
+ the intention (reasonable, since "me" originates in pre-groff
+ BSD Unix), but there were several problems.
+ (@R): Prefix register existence test with `do`.
+ (@html_check_need_title): Define with `do` since the macro name
+ is long, and also with `de1` so that we can freely use groff
+ extensions within. Drop many `do` requests from macro
+ definition.
+ (@check_need_title): Define with `do`, as above. Add comment
+ explaining why `de1` is not needed for this macro definition.
+ (@S): Prefix macro/string existence test with `do`. Remove
+ spurious space so that the argument string name is truly defined
+ as empty.
+ (nm, n1, n2): Prefix handling of long register names `_#p` and
+ `_#f` with `do` request.
+ (top level): Prefix `mso` request with `do`.
+ ((x-html): Define with `do` and `de1` instead of `de`. Drop
+ now-unnecessary `do` requests from macro body.
+ ()x-html): Define with `do` and `de1` instead of `de` for
+ symmetry.
+ (xp-html): Define with `do` and `de1` instead of `de`. Drop
+ now-unnecessary `do` requests from macro body.
+
+ Fixes <https://savannah.gnu.org/bugs/?60785>.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/devtag.tmac: Work in compatibility mode; define macros
+ with the `de1` instead of the `de` request.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/refer-me.tmac:
+ * tmac/refer.tmac: Add include guards.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/refer-me.tmac: Handle being loaded in compatibility mode.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Properly situate devtag flag-related
+ register names in the package name space. Rename `need_eo_h` to
+ `an-devtag-needs-end-of-heading'. Rename `need_col2` to
+ `an-devtag-needs-second-column`.
+ (an-input-trap, SH, SS, HP, (initialization)): Do it.
+ (an-input-trap): Test their values more idiomatically.
+
+ Fixes one third of <https://savannah.gnu.org/bugs/?42515>.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_if_request): Improve diagnostic
+ message; say "conditional operator", not just "conditional".
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-end, an-header): In continuous rendering
+ mode, use same spacing amount after header and before footer as
+ mdoc in its own continuous rendering mode. Thanks to Ingo
+ Schwarze for the suggestion.
+
+ Fixes <https://savannah.gnu.org/bugs/?60653>.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (P): Define this as the "canonical"
+ paragraphing macro.
+ (LP, PP): Make these aliases of P.
+
+2021-06-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (spring_trap): Tighten lexical
+ discipline; describe macro as "trap-called" rather than
+ "trap-invoked".
+
+2021-06-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Don't spuriously break a page after a paragraph tag when
+ the tag is short enough to fit within the paragraph's
+ indentation.
+
+ * tmac/an-old.tmac (an-write-paragraph-tag): Reserve ("need") 2
+ vees plus 1 basic unit of vertical space regardless of the width
+ of the tag. In the short tag case, we reverse space by one vee
+ after outputting the diversion in which the tag is stored, but
+ it will always contain a break, and by the time we reverse, we
+ might have already hit a page location trap
+ {an-break-body-text}, and by then it's too late to back up.
+
+ * tmac/tests/an-old_no-break-after-short-paragraph-tags.sh: Test
+ it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?60624>.
+
+2021-06-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Rename environments to be more descriptive.
+ an-env -> an-env-header-or-footer
+ an-2 -> an-env-paragraph-tag
+ (an-header, an-footer, an-write-paragraph-tag): Do it.
+
+2021-06-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Add diagnostic error if .EQ used within .TS/.TE.
+ Introduce register `tbl@within-table` to track whether we're
+ inside a table.
+ (@EQ): Check register and issue error if it is true.
+ (@TS): Set register.
+ (@TE): Clear register.
+
+ Prompted by Savannah #55754.
+
+2021-06-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Permit document to start with .PS.
+ (cov*ab-init): Alias PS to @PS.
+ (PS): Call LP, then re-execute (aliased) self as TS does.
+ (TS): Update comment to parallel the one in PS.
+
+2021-06-11 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ Indent an IP paragraph based on the type size of the paragraph
+ text, not a preceding heading. We have to delay evaluating IP's
+ argument until the font size has been reset, which I've
+ attempted to do by simply passing the argument unevaluated down
+ the call hierarchy, instead of saving it in a number register
+ right away, as appears customary in this ms implementation.
+
+ However, par@reset is called from a great number of places, and
+ these usually set the indent registers beforehand. I've left
+ this as it is, so now two ways of setting the indents exist: via
+ register and optionally via argument.
+
+ * tmac/s.tmac (par@reset): Move font-size setting stuff before
+ indent-setting stuff; set registers from optional arguments with
+ default "n" scaling indicator before setting indents.
+ (par*start, par@finish): Don't set registers, but instead pass
+ arguments to par@reset.
+ (@IP): Pass argument unevaluated to par*start.
+
+ Fixes <https://savannah.gnu.org/bugs/?59604>.
+
+2021-06-11 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * tmac/s.tmac (@QP, @XP): Be more scrupulous about using "u"
+ scaling indicator.
+
+2021-06-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #59604.
+
+ * tmac/tests/s_IP-indents-using-paragraph-type-size.sh: Add it.
+ * tmac/tmac.am (tmac_TEST): Run it.
+
+2021-06-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Refactor grog even more aggressively. Make the tedious search
+ for subs.pl unnecessary by inlining it into grog.pl directly.
+ This makes the script stand alone and much more convenient to
+ work with, and doesn't contribute to bloat, in my
+ opinion--subs.pl was 10 times the size of grog.pl, and most of
+ the code in the latter was dedicated to trying to locate
+ subs.pl.
+
+ * Makefile.am: Delete references to $(grog_dir).
+ * configure.ac: Delete call of `GROFF_GROGDIR_DEFAULT` macro.
+ * m4/groff.m4: Delete definition of same.
+ * src/roff/grog/grog.am (GROG, dist_grog_DATA, grogdir): Drop
+ variables.
+ (grog): Remove target's dependency on `$(GROG)`. Remove sed
+ expression replacing `@grog_dir@` with `$(grog_dir)` in grog.pl.
+ * src/roff/grog/grog.pl: Inline most of subs.pl (except for
+ author/license comment banner). Delete sub-hunting logic.
+ * src/roff/grog/subs.pl: Delete.
+
+2021-06-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/pic.ms (Basic PIC Concepts, Decorating Objects/Filled
+ Objects, PIC Reference/Semi-Formal Grammar): Fix error: the
+ keyword "solid" sets a line style, not a fill for a closed
+ figure. Thanks to Dave Kemper and Wim Stockman for reporting
+ and researching this issue.
+
+ Fixes <https://savannah.gnu.org/bugs/?60470>.
+
+2021-06-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * NEWS:
+ * doc/webpage.ms:
+ * man/groff.7.man (Registers/Read-only registers) <.U>:
+ * man/groff_diff.7.man (Language/New number registers) <.U>: Fix
+ error; the sense of this Boolean variable was backwardly
+ documented {perhaps due to an implementation detail from 2004
+ that was reversed in commit 7a0e2f15, 26 February 2008}.
+
+2021-06-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.cpp: Revise usage message.
+ (synopsis): Set primary synopsis on a single output line, for
+ convenience of parsing and also because we have no control over
+ the width of the program name in character cells; it comes from
+ argv[0] and is under user control. There is thus no point in
+ trying to get pretty formatting. Also include separate synopsis
+ lines for short and long help options. Use opposite case from
+ option flags for option arguments.
+ (help): Collate option flags in English lexicographic order.
+ Include space after flag letters for options that take
+ arguments. Consistently use capitals for option arguments
+ because they are space-separated here. Illustrate longer forms
+ of -d and -r options. Update language (some, like "tmac.name",
+ was very old). Add reference to groff(1) man page at end.
+ (usage): Drop appendnment of notice regarding -h option; this is
+ now covered in `synopsis()` unconditionally.
+
+2021-06-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Eliminate "groff_opts_no_arg.txt" and "groff_opts_with_arg.txt"
+ files from distribution. They are not needed by any live code
+ in the tree; possibly only groffer ever used them.
+
+ * src/roff/groff/groff.am (GROFF_OPTS_OUTPUT, groffoptsdir)
+ (groffopts_DATA): Delete variables.
+ (MOSTLYCLEANFILES): Stop adding to target.
+ (groff_opts.tmp, groff_opts_no_arg.txt,
+ groff_opts_with_arg.txt): Delete targets.
+
+2021-06-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/grog/subs.pl (version): Report version information in
+ a format consistent with our other programs.
+
+2021-06-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/grog/grog.pl: Refactor initialization so that the
+ program can be run from a build tree--and tested. Drop much
+ cruft from before Bertrand Garrigues's 2018 work to adopt
+ `git-version-gen`.
+
+2021-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_title-abbreviation-works.sh: Log more
+ accurate messages in test failures.
+
+2021-06-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-abbreviate-title): Add new internal macro
+ to reduce the length of a man page title (i.e., the "ls" in
+ "ls(1)", if it is too wide to fit in the page header (and would
+ overwrite the center header material, usually the title of the
+ manual section). Since the beginning and end of the title might
+ be important for disambiguation, truncation at either end would
+ be unwise; replace the middle of the title with an ellipsis.
+ Define new an-pageref and an-title-abbv strings for use by other
+ macros and user-defined PT and BT traps.
+ (PT, an-footer): Use new an-pageref string for economy.
+ (an-header): Call an-abbreviate-title after setting the title
+ length.
+
+ * tmac/tests/an-old_title-abbreviation-works.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?43532>.
+
+2021-06-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Copy mode): Add new section.
+
+2021-06-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (else_request, while_request)
+ (pipe_source, open_request, opena_request, pipe_output)
+ (system_request): Update diagnostic messages to not presume the
+ identities of the control or escape characters.
+
+2021-06-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Conventions Used in This Manual): Add node.
+
+2021-05-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.1.man: Expand to aid beginners.
+ (initialization): Define `TeX` string.
+ (Usage): Rewrite.
+ (Usage/Getting started): Add "Hello, world!" example using
+ multiple output devices (formats).
+ (Usage/Using groff as a REPL): Add example of likely interest to
+ programmers. Or so I hope. It illustrates the Turing
+ fundamentals; we read, store, test, and branch.
+
+2021-05-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/papersize.tmac: Improve diagnostic message; when
+ complaining about unrecognized input, report back the input we
+ actually received, not what it looks like after we transform it.
+ Also add name of macro package to diagnostic so the user knows
+ who is speaking, continuing the long process of fixing Savannah
+ #52463.
+
+2021-05-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_ms.7.man (Usage/Paragraphs) <QP>: Fix error: .QP
+ paragraphs are indented by \n[QI], not \n[PI].
+
+2021-05-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libdriver/input.cpp (do_file): Make fatal diagnostic
+ from output driver when the device description file "DESC" can't
+ be found more informative by including the name of the device
+ for which the input was prepared. Also makes malformed input of
+ intermediate format more obvious.
+
+2021-05-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/tbl.1.man (Miscellaneous): Add paragraph
+ cautioning users against making tbl(1) tables conditional
+ document content.
+
+2021-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add style warnings for documents with input lines that
+ are blank or have leading spaces, since they can cause
+ surprising rendering; enabled if the CHECKSTYLE register is
+ greater than 2.
+
+ * tmac/an-old.tmac (an-blank-line-trap, an-leading-space-trap):
+ Issue style warning if enabled (and only if fill mode enabled in
+ leading space trap); in any event, recreate the default *roff
+ behavior.
+ (TH): Install traps.
+
+ * doc/andoc.tmac (reload-doc): Remove man(7) traps before
+ loading doc.tmac.
+
+2021-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/andoc.tmac (reload-doc): Fix spurious blank line.
+
+2021-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Operators in Conditionals):
+ * man/groff.7.man (Control structures/Conditional expressions):
+ Fix omission; the conditional operators "F", "m", and "S" also
+ accept optional spaces and/or tabs between themselves and their
+ arguments.
+
+2021-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Requests/Request short reference) <.ta>:
+ Describe the request as tersely as possible without omitting its
+ essential syntax and semantics. (The AT&T troff "+" relative
+ prefix for normally absolute positions ".ta 1i +1i +1i" and
+ alignment-specifying suffixes "L", "R", and "C" had both been
+ omitted.)
+
+2021-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Registers/Writable registers): Fix error:
+ \n[nl] interpolates the current vertical position, not the
+ vertical position of the "last printed text baseline"; the
+ latter is \n[.h].
+
+2021-05-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Filling and Adjustment): Update
+ inter-sentence space example to be more illustrative. Thanks to
+ Dave Kemper and Doug McIlroy for the discussion.
+
+ Fixes <https://savannah.gnu.org/bugs/?60404>.
+
+2021-05-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common-u: Add comment warning source divers that
+ \n[doc-header-space] is re-used for a purpose for which it is
+ not documented.
+ * tmac/mdoc/doc-nroff-u: Initialize doc-{header,footer}-space
+ registers, which define the vertical spacing between body text
+ and the relevant titles (not between the titles and the page
+ margins) to 1v instead of 0.5i. This is what mdoc(7) has always
+ done in practice, per Ingo Schwarze.
+
+2021-05-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grohtml/post-html.cpp (assert_state::add): Avoid
+ potential deallocation of statically-allocated strings. Use
+ strsave() to duplicate them so that they can be safely handed to
+ a_delete(). Also update diagnostic message to report name of
+ complaining program (continuing the long process of fixing
+ Savannah #52463).
+
+ Fixes <https://savannah.gnu.org/bugs/?55693>. Thanks to
+ Petru-Florin Mihancea for the report.
+
+2021-05-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/troffrc-end: Fix transposition error (in commit a248aa33
+ on 15 January) that broke most table image generation in HTML
+ output.
+
+ Fixes <https://savannah.gnu.org/bugs/?60656>.
+
+2021-05-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (UE, ME): Replace calls to HTML-NS macro for
+ emissions of HTML 'A' tags with direct usage of \X device
+ control escapes. Replace .nop requests with text lines since
+ this file is supposed to be maximally portable to other *roffs.
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (main): Call `scanArguments()`
+ earlier, before trying to load a font description, so that -v,
+ --version, and --help work.
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [grohtml]: Add -C and -G options to postprocessor, to suppress
+ output of CreationDate and Creator HTML comments, respectively.
+ These can inject unwanted noise into build artifacts.
+
+ * src/devices/grohtml/post-html.cpp: Add static globals
+ `do_write_creator_comment` and `do_write_date_comment`.
+ (html_printer::{do_file_components,~html_printer}): Write
+ comments per corresponding global variables.
+ (main): Add to `getopt_long()` call parameter and set as needed.
+ (usage): Document them.
+
+ * src/preproc/html/pre-html.cpp (scanArguments): Add to
+ `getopt_long()` parameter, but ignore.
+
+ * src/devices/grohtml/grohtml.1.man (Synopsis, Options):
+ Document them.
+
+ * src/roff/groff/tests/output_driver_C_and_G_options_work.sh:
+ Test them.
+ * tmac/tmac.am (groff_TESTS): Run test.
+
+ Fixes 1/3rd of <https://savannah.gnu.org/bugs/?60655>.
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (usage):
+ * src/devices/grohtml/post-html.cpp (usage): Fix inaccuracies in
+ supported option summary.
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp (scanArguments):
+ * src/devices/grohtml/post-html.cpp (main): Use libgroff's
+ warning() instead of printf() to emit diagnostic about
+ unrecognized parameter to `-x` option. This sends the
+ diagnostic to the standard error stream and continues the long
+ process of fixing Savannah #52463.
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_www.7.man: Stop using the "www" macro package. The
+ macros it exposes are not part of the quasi-standardized man(7)
+ language, and thus should not be used in man(7) documents. See
+ groff_man_style(7) for portability advice. Besides, the
+ extension macros in the permissively-licensed an-ext.tmac are
+ sufficient to support URL and email hyperlinks, and our SH and
+ SS macro implementations already support anchor placement
+ without requiring explicit effort from page authors.
+ (initialization): Stop sourcing www.tmac. Stop calling .LK and
+ .HR; the page-internal navigation links were being placed after
+ the apropos line instead of at the beginning of the page,
+ contradicting the comment that was there (possibly a bug).
+ (Requests) <URL, LK>: Stop calling .TAG.
+ <LK>: Drop paragraph advising reader to format page for groff's
+ HTML output device to observe the navigation links at that point
+ in the test.
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Comments): Fix error in description of parser
+ operation; '.\"' is an effective whole-line comment not because
+ it is a call of an undefined macro named '\"' (no 'mac' warning
+ is emitted when that warning type is enabled), but because the
+ comment escape is recognized normally and what remains is
+ handled as the empty request. Clarify that the optional
+ argument to the .ig request is the name of a macro (which will
+ be called normally _and_ end the ignored region; this is
+ analogous to ".de foo bar").
+
+2021-05-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (UR, UE, MT, ME): Rename environment and
+ diversion for clarity; they apply to the link text, not the URL
+ {or email address}. The latter might not visibly appear,
+ depending on the output driver.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Remove extraneous right-brace escape.
+
+ Fixes <https://savannah.gnu.org/bugs/?60651>. Thanks to Bjarni
+ Ingi Gislason for catching it.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Copy Mode): Fix omissions from list of escape
+ sequences interpreted even in copy mode. Add \g, \V, "\.",
+ '\"', \#, \a, \e and \E (with caveat), and \t. Parallels
+ groff(7) now. Add cross reference to "Character Translations"
+ node.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Escape Sequences): Fix omission; the escape
+ character in an unrecognized escape sequence is not merely
+ ignored; the sequence produces a warning diagnostic, albeit of a
+ type that is disabled by default.
+ (Escape Sequences/Escape short reference): Fix omissions; \# and
+ \V are interpreted even in copy mode.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-header): Fix missing brace escape.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Slightly refactor footer spacing management when
+ continuously rendering.
+
+ * tmac/an-old.tmac (an-end): Increase the page length _after_
+ flushing a pending output line. Do so only by the amount of
+ spacing we actually perform next. Make the scaling indicator on
+ the .sp request explicit. The amount seemed magical because it
+ was accounting for the one line to be consumed by output of the
+ footer title line. Instead, move that further increase of the
+ page length from here...
+ (an-footer): ...to here (~250 lines away), before calling BT.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common-u (doc-end-macro): When continuously
+ rendering and after flushing the last line of the body text of a
+ page, vertically space by 3 vees instead of 1, for consistency
+ with our man(7) implementation. Also increase page length by
+ same amount _after_ flushing a pending output line, for symmetry
+ with other spacing requests (and to prevent nasty surprises
+ analogous to those in Savannah #60611).
+ (doc-header): Put 3 vees of space after the header in continuous
+ rendering mode, not 1 (and increase page length accordingly).
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Add warnings for macros deprecated in groff_man(7),
+ emitted if the CHECKSTYLE register is greater than 1.
+
+ * tmac/an-old.tmac (an-deprecation-warn): New macro emits
+ diagnostic.
+ (DT, PD): Call the foregoing, re-using arguments.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Refactor to move bodies of DT and PD into
+ private macros.
+ (an-reset-tab-stops, an-reset-paragraph-spacing): New names for
+ the former DT and PT.
+ (TH): Call these new macro names.
+ (DT, PD): Wrap the corresponding private macros.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-bp): In continuous rendering mode, draw
+ a horizontal line between a page footer of one man page document
+ and the header of the next, but only if multiple documents are
+ being rendered.
+ (initialization): Use variable to ensure we don't draw this line
+ after finishing the only document we render.
+
+ Fixes other half of <https://savannah.gnu.org/bugs/?60611>.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix stochastic vertical space loss problems in continuous
+ rendering mode by being more scrupulous about extending the page
+ length. As noted in Savannah #60611, sometimes the vertical
+ space between a header line and the first section heading
+ {"Name"} would be reduced or removed altogether, in a way that
+ was highly sensitive to circumstances. As far as I can tell,
+ the problem is that this vertical space disappeared only when we
+ were in double-secret probation no-space mode; this is the
+ special non-spacing mode {not apparent with inspection of
+ \n[.ns]} that happens when the stealth internal page location
+ trap is sprung. This trap does not appear in .ptr output but
+ can be disabled with ".vpt 0", which is an alternative fix for
+ this problem {because continuous rendering mode does not use
+ vertical position traps at all}. Another fix might have been to
+ simply call the moral equivalent of ".pl MAXINT" as soon as
+ continuous rendering mode was decided upon.
+
+ * tmac/an-old.tmac (an-header): In continuous rendering mode,
+ extend the page length by one line before calling PT to output
+ the page header, and afterwards, extend the page length by 3
+ vees and space by that amount (instead of half an inch).
+
+ Fixes half of <https://savannah.gnu.org/bugs/?60611>.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-header, an-footer): Drop no-op .tl
+ requests.
+
+2021-05-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-footer): Improve symmetry with an-header.
+ If rendering to HTML, don't bother setting the
+ an-outer-footer-text, an-extra1, and an-extra2 strings to empty
+ values; instead don't call BT, just as we don't call PT in
+ an-header.
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-end): Drop needless .nr % assignment.
+ Call our (wrapped) bp instead of the .pl request directly.
+ (an-bp): Drop needless .br and (aliased) real .bp request.
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-footer): Refactor complex conditional.
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_X-register-works.sh: Add test for footer
+ creeping into page content.
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (initialization): Ignore P and X rendering
+ parameter registers if specified with continuous rendering
+ enabled (the default in the nroff mode used for terminals), and
+ emit diagnostic.
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_X-register-works.sh: Rewrite. Increase test
+ coverage and stop assuming that -rcR=1 and -rX=anything is a
+ supported combination. (Continuous rendering is supposed to
+ suppress the printing of page numbers anyway.)
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (initialization): Refactor handling of P and
+ X rendering parameter register validation in preparation for
+ disabling them in continuous rendering mode, where they don't
+ make any sense.
+
+2021-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_TH-repairs-ad-damage.sh: Tweak test
+ internals to make troubleshooting easier.
+
+2021-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Relocate some initialization logic to
+ be adjacent to (most of) the rest of it.
+
+2021-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Remove useless .if. Its condition is
+ always true now in the wake of the fix for Savannah #60609.
+
+2021-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Rename many package macros, strings, and
+ registers (and the lone named environment) to be more expressive
+ of their function. "an-footer" is now the proper complement of
+ "an-header" (setting up an environment and calling a
+ user-redefinable trap macro).
+ an-first -> an-is-first-page-of-document
+ an-html -> an-is-output-html
+ an-footer -> an-break-body-text
+ an-p-footer -> an-footer
+ an-set-margin -> an-reset-margin-and-inset-level
+ an-level -> an-inset-level
+ an-tag-sep -> an-tag-separation
+ an-no-space-flag -> an-need-no-space-mode
+ an-break-flag -> an-need-break
+ an-div? -> an-is-in-diversion
+ an-page-string -> an-outer-footer-text
+ an-trap -> an-input-trap
+ an-do-tag -> an-write-paragraph-tag
+ an-1 -> an-env
+
+ * tmac/andoc.tmac (reload-doc): ...as above for the exposed
+ parts of the interface.
+ an-footer -> an-break-body-text
+ an-p-footer -> an-footer
+
+2021-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Rearrange alternating font macros to be in
+ alphabetical order (and the order documented in groff_man(7).
+
+2021-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Refactor alternating font macros. These
+ macros are hard enough to understand without adding gratuitous
+ structural differences to the reader's burden. Make their
+ implementations rigidly parallel. Update comments.
+ (RI, IR, IB, BI, RB, BR): Always define the `an-result` string
+ as empty except for a dummy character '\&' for the sake of
+ compatibility mode.
+ (RI, IR, IB, BI): Defer interpolation of the first argument to
+ the while loop if there are at least two (like the existing RB,
+ BR). This way the style name arguments to the font selection
+ escape sequences in the appendment to `an-result` match the
+ order of the letters in the macro name (useful to make sense of
+ diffs).
+ (RI, IR, IB, BI, RB, BR): Always remove the `an-result` string
+ after interpolating it.
+ (RB, BR): Only do work if there are any arguments.
+
+2021-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Apply italic corrections more consistently.
+
+ * tmac/an-old.tmac (BI, IB, IR, RI): Apply italic corrections
+ more consistently. Add lengthy comment rationalizing approach.
+ (RI, BI): An italic correction is now applied after the last
+ argument if it is of even parity (i.e., the 2nd, 4th, 6th, ...).
+
+ * tmac/groff_man.7.man.in (Description/Font style macros): Note
+ that italic corrections are applied.
+
+ Fixes <https://savannah.gnu.org/bugs/?53541>.
+
+ Thanks to Bjarni Ingi Gislason for the report and a suggested
+ patch.
+
+2021-05-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Ignore FT register when appropriate.
+
+ * tmac/an-old.tmac (initialization): Validate user-specified
+ value of \n[FT]. Continuous rendering ignores FT (page location
+ traps are not used for footers in that mode). Measuring a
+ footer distance from the page top isn't done. A footer distance
+ of over half the page length is unlikely. A footer distance of
+ less than one line height is too. Issue diagnostics in all of
+ these cases.
+
+ * tmac/tests/tmac/tests/\
+ an-old_FT-bad-value-should-not-trash-titles.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?60612>.
+
+2021-05-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Plant the an-footer trap (where we
+ schedule a break in the page text prior to spacing down to the
+ footer) at twice the value of \n[FT], not a hard-coded -1i.
+ This way, the user can't make the an-p-footer trap (planted at
+ \n[FT]) spring before the an-footer trap that should precede it.
+
+ * tmac/groff_man.7.man.in (Options) <-rFT>: Document this.
+
+2021-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_GHOSTSCRIPT_VERSION_CHECK): Add new
+ autoconf macro to check Ghostscript version. Versions 9.00 <= x
+ < 9.54 suffer from a rendering glitch that affects the AT&T
+ troff (and groff) special character \(lh; see
+ <https://bugs.ghostscript.com/show_bug.cgi?id=703187>. Store
+ the result of the check.
+ (GROFF_GHOSTSCRIPT_VERSION_NOTICE): Add new macro to report the
+ problem detected by GROFF_GHOSTSCRIPT_VERSION_CHECK to the user.
+
+ * configure.ac: Call the macros in appropriate places.
+
+ Fixes <https://savannah.gnu.org/bugs/?59531>.
+
+2021-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac (reload-man): Remove removal of RI macro, made
+ unnecessary by commit 551f138 (15 May).
+
+2021-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_HTML_PROGRAMS, GROFF_PDFDOC_PROGRAMS):
+ Tweak autoconf warning messages when Ghostscript (gs) command
+ missing to be more mutually congruent.
+ (GROFF_URW_FONTS_CHECK): Tweak to note that gs is only run to
+ locate the URW fonts if gs is available.
+
+2021-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_AT-and-UC-footer-saved-and-restored.sh:
+ Tweak to be more helpful when troubleshooting exasperating
+ header/footer problems as in Savannah #60609.
+
+2021-05-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Fix missing page footers when continuously rendering
+ multiple documents. Resolving this uncovered entangled header
+ and footer management bugs with batch processing even when _not_
+ continuously rendering.
+
+ * tmac/an-old.tmac (an-start-new-document): New macro clears
+ header trap so it doesn't get called with stale information.
+ {The TH macro already replants a header trap with every man
+ page if not continuously rendering.} This macro also absorbs
+ the break-page and page number incrementation logic from TH.
+ (TH): Adapt semantics of "an-first" register to mean not "first
+ page rendered" (apparently) but "first page of new document".
+ If we are _not_ on the first page of a new document and the TH
+ macro is called, we must be batch processing: force the previous
+ man page to end (call an-end if continuously rendering, or
+ an-start-new-document if not). After all the header and footer
+ strings have been configured for the man page, call an-header if
+ we're on the first page of the document, not (just) if we're
+ continuously rendering. Zero an-first register at end of macro
+ here unconditionally instead of conditionally in .an-header.
+ (an-header): Drop conditional on continuous rendering.
+
+ When I batch-render our 62 man pages to the terminal, I do note
+ one cosmetic regression: the lj4_font(5) page, when continuously
+ rendered in batch processing, has no space between its header
+ line and first section heading ("Name"). Another cosmetic issue
+ in this scenario is that the footers for every rendered page but
+ the last, which had (wrongly) been absent entirely, are set with
+ no space after them and the header of the next.
+
+ * tmac/tests/an-old_page-footers-present.sh:
+ * tmac/tests/an-old_page-header-has-current-data.sh: Add man
+ page header/footer regression tests.
+ * tmac/tmac.am (tmac_TESTS): Run the tests.
+
+ Fixes <https://savannah.gnu.org/bugs/?60609>.
+
+2021-05-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (initialization): Key the reprocessing guard
+ {like a C language #include guard} on the existence of the TH
+ macro instead of RI. The latter seemed kind of random and TH
+ is even more guaranteed to exist; it is the macro name most
+ characteristic of the man(7) language and the andoc.tmac
+ superstructure relies on it. (TH may have been avoided because
+ of its use with tbl(1); however, neither man(7) nor mdoc(7)
+ support tbl's TH feature, and GNU tbl does not supply its own
+ empty fallback definition as it does for TS and TE. If we ever
+ want TH-like functionality in future man pages, I suggest we
+ pick a new, non-colliding name for it.)
+ (initialization): Relocate load of devtag package; we don't
+ need it before entering compatibility mode. Move assignment of
+ format of an-page-letter register from a "loose declaration"
+ amid macro definitions to within existence test of X register.
+ Stop initializing an-extra[123] strings outside of any macro;
+ they need to be reinitialized at every TH call when batch
+ rendering.
+ (TH): Call DT in a less surprising place.
+ (TH): Initialize all header/footer-related strings before
+ calling header macros, even those not needed for the default
+ header configuration.
+ (TH): Add style warnings for underspecified arguments.
+ (an-ne): Rename register from "an-need", which is pretty
+ confusing in context, to "an-amount", since (1) a (vertical)
+ amount is what it is, and (2) it's only used within this macro.
+ Also due to factor (2), remove the register after using it.
+
+2021-05-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_URW_FONTS): Update configure script check
+ for URW fonts to recognize recent releases of the URW Base 35
+ fonts from Artifex Software. Look for the AR (Arial roman
+ equivalent) font under all of the names recognized by
+ fonts/devpdf/Foundry.in.
+ * m4/groff.m4 (GROFF_URW_FONTS_CHECK): Update wording of notice
+ when URW fonts are not found. Replace dead URL with working
+ one. Try to hedge against the future, but the Web is an
+ ephemeral place, as are the file names Artifex gives to its
+ fonts. Thanks to T. Kurt Bond and Thomas Dupond for reporting
+ and investigating the problem.
+
+ Fixes <https://savannah.gnu.org/bugs/?60604>.
+
+2021-05-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (ms Document Control Settings) <DI>:
+ * doc/ms.ms (Document control settings, Displays and keeps)
+ <DI>:
+ * tmac/groff_ms.7.man (Document control settings, Displays and
+ keeps) <DI>: Document this register; it had been mentioned only
+ in passing.
+
+2021-05-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (ms Document Control Settings) <DD>:
+ * doc/ms.ms (Document control settings) <DD>:
+ * tmac/groff_ms.7.man (Document control settings) <DD>: Fix
+ error; changes to \n[DD] take effect at the next display
+ boundary (including the end of the active one), not the next
+ "paragraph" (paragraph macros cannot be called inside a display
+ anyway).
+
+2021-05-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac (reload-man): Delete no-op line that attempts
+ to restore compatibility mode. Individual pages have to do
+ this, and ".do cp \n(.C" is not effective for the reason
+ discussed in the 2020-04-16 ChangeLog entry.
+
+2021-05-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (@RT): Delete definition; make it an alias for
+ par@finish. Until commit 021ba0e7 (1 May), they had identical
+ definitions. I find it difficult to imagine what use it would
+ be to have an undocumented reset macro that resets everything
+ _except_ the deeply internal \n[.ev]:ai.
+
+2021-05-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: Handle HF strings with an embedded font family when
+ applying italic-to-bold-italic remapping; the feature now works
+ on troff devices as well.
+
+ * tmac/an-old.tmac (initialization): Do more validity checking.
+ Store heading family in new string \*[an-heading-family]. Clean
+ up after self.
+ (SH, SS): Include the heading family in the remapping target.
+
+ * tmac/groff_man.7.man.in (Description/Document structure
+ macros) <.SH, .SS>: Document it.
+
+2021-05-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_char.7.man (Glyph tables/Mathematical symbols): Fix
+ errors in special character descriptions; \[sqrt] is a "special"
+ glyph (that is, it uses mathematical metrics on typesetter
+ devices), and \[radicalex) is not (and is thus a "text" glyph).
+ See Werner Lemberg's ChangeLog entry of 2003-01-05. Problem
+ dates to 07a6233ad, 27 May 2014.
+
+ The overloaded use of the word "special" really pinches here.
+
+2021-05-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tty.tmac: Replace fallback glyphs for radical extension
+ and square root extension; use \[rn] instead, which works fine.
+
+ Now the only glyph in the page that doesn't render on a UTF-8
+ terminal (if one's font has adequate coverage) is the Bell
+ System logo.
+
+2021-05-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tty.char: Add fallback characters for \[fm] and \[sd].
+
+2021-05-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [man]: If \*[HF] is a bold style, substitute bold italics for
+ italics in section and subsection headings, keeping the font
+ weight consistent.
+
+ * tmac/an-old.tmac (initialization): Set a flag for this based
+ on the interpolation of \*[HF] matching "B" as its last
+ character.
+ (SH, SS): Apply and reverse font remapping based on this flag.
+
+2021-05-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (EX): Work around Savannah #59522 by changing
+ fonts differently on DVI output, avoiding a font warning.
+
+2021-05-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac: If in nroff mode, remap font CBI to BI.
+ * tmac/dvi.tmac: Remap font CBI to CWI. (Computer Modern
+ Constant Width has no bold styles.)
+
+2021-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (NL, SM, LG): Issue warning diagnostic if macro
+ called with arguments.
+ (par*define-font-macro): Construct font macro with diagnostic to
+ warn if called with excess arguments.
+ (UL, BX): Issue warning diagnostic if macro called with excess
+ arguments.
+
+ Fixes <https://savannah.gnu.org/bugs/?60522>.
+
+2021-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi: Delete redefinition of \putwordAppendix
+ Texinfo macro. This restores the word "Appendix" to the names
+ of all appendices and fixes two bad internal links to Appendix
+ E, the Register Index, in the DVI and PDF output formats. Per
+ consultation with Texinfo maintainer Gavin Smith, it's difficult
+ to get the behavior we want, so give up trying for now.
+
+2021-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (@MC): Actually diagnose and recover when user
+ tries to .MC inside a diversion.
+
+2021-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Differences from AT&T ms):
+ * doc/ms.ms (Differences from AT&T ms):
+ * tmac/groff_ms.7.man (Differences from AT&T ms): Document our
+ different default (empty) for the center footer in nroff mode;
+ this behavior appears to date back to June 1991 or earlier,
+ drawing few complaints.
+
+ Fixes <https://savannah.gnu.org/bugs/?59826>.
+
+2021-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/*: Rename files to use consistent scheme; one
+ underscore to separate the package name from the test objective,
+ dashes to otherwise separate words.
+ * tmac/tmac.am (tmac_TESTS): Use new names.
+
+2021-05-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Restore support for AT&T ms PN register.
+
+ * tmac/s.tmac (pg): Make register PN an alias of %.
+
+ * doc/groff.texi (Differences from AT&T ms):
+ * doc/ms.ms (Differences from AT&T ms):
+ * tmac/groff_ms.7.man (Differences from troff ms): We don't need
+ PN, and it was removed in commit 08291b40 (25 October 2020), but
+ since it is documented in Lesk 1978 we're stuck with it. Advise
+ users to stick with %. Also warn them of the hoop they must
+ jump through if they redefine the page trap macro PT, which Lesk
+ 1978 also encourages.
+
+ * tmac/tests/s_PN-works.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?59823>.
+
+2021-05-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Restore default IP paragraph indentation after an SH call.
+
+ * tmac/s.tmac (par@finish): Set "ai" register for the current
+ environment to the paragraph indent (PI) setting for the current
+ environment.
+
+ * doc/groff.texi (Highlighting in ms) <IP>:
+ * doc/ms.ms (Highlighting) <IP>:
+ * tmac/groff_ms.7.man (Usage/Highlighting) <IP>: Update
+ documentation.
+
+ * tmac/tests/s_SH_resets_IP_indentation_amount: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?60222>.
+
+2021-05-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (DS): Issue diagnostic and attempt recovery if
+ document attempts to start a display within another display.
+
+ Fixes <https://savannah.gnu.org/bugs/?55136>.
+
+2021-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Implement alternative rendering for automatic
+ footnote numbers in nroff mode, inspired by Heirloom Doctools
+ ms; since superscripting is not universally available on
+ terminals, surround number with square brackets instead.
+ (fn@init): New macro finishes initializing footnote module,
+ setting up aliases to par@sup-{start,end} strings in troff mode
+ and otherwise defining fn@sup-{start,end} as brackets. Define *
+ string here, using new strings.
+ (par): Call fn@init after par@sup-{start,end} are defined, and
+ prior to other footnote integration material.
+ (par*fp!0): Migrate from par@sup-{start,end} to
+ fn@sup-{start,end}.
+
+ * doc/groff.texi (ms Document Control Settings) <FF>:
+ * doc/ms.ms (Footnotes) <FF>:
+ * tmac/groff_ms.7.man (Usage/Footnotes) <FF>: Document it.
+
+ Fixes <https://savannah.gnu.org/bugs/?60228>.
+
+2021-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * test-groff.in: Stop passing the built groff executable -b and
+ -ww options by default. This reverses a change from 2017. Dave
+ Kemper has convincingly argued that there's no way to override
+ -b and turn backtraces on warnings/errors back off, and that the
+ built groff should behave as much like a "normal" one as
+ possible. The latter factor is of added importance now that we
+ are using test-groff for generation of documents.
+
+ * src/roff/groff/tests/regression_savannah_58153.sh: Adapt.
+
+2021-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (BX): Add alternative implementation for terminal
+ {nroff} devices. Store width of boxed text, adding .4m only on
+ troff devices (to make room for the vertical box lines). Break
+ long input line in troff implementation. If not in troff mode,
+ use ISO 6429 color escapes to render boxed text in black on
+ white. Use the \Z escape to match breaking semantics of macro
+ in troff mode.
+
+ * doc/groff.texi (Highlighting in ms) <BX>:
+ * doc/ms.ms (Highlighting) <BX>:
+ * tmac/groff_ms.7.man (Usage/Highlighting) <BX>: Document it.
+
+ Fixes <https://savannah.gnu.org/bugs/?60477>.
+
+2021-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Make $(PROCESSEDDOCFILES) depend on all the same
+ targets as $(PROCESSEDEXAMPLEFILES); this way the me, ms, and
+ pic.ms manuals are all regenerated upon changes to their
+ underlying macro packages.
+
+2021-04-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * INSTALL.extra: Update.
+ (Evaluation): New section updates material on "test-groff"
+ script. Also tell people how to preview our Texinfo manual (in
+ info, text, DVI, PDF, and HTML formats).
+ (In Case of Trouble): New section updates bug reporting URL.
+
+ Fixes <https://savannah.gnu.org/bugs/?57863>.
+
+2021-04-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Make the FAM string work more sensibly; it now
+ applies to headers, footers, and footnotes only if set
+ before the first call of a sectioning, paragraphing, or
+ {non-date} document description macro.
+ (PT, BT): Set the font family to that saved for titles.
+ (fn*do-FS): Set the font family to that saved for footnotes.
+ (par@init): Copy the document font family to independent strings
+ for titles and footnotes.
+ (par@reset): If in a footnote environment, set the font family
+ to that saved for footnotes; otherwise use \*[FAM].
+
+ * tmac/groff_ms.7.man (Differences from troff ms/Text settings):
+ Describe placement-dependent effect of FAM string setting.
+
+ * doc/groff.texi (Highlighting in ms):
+ * doc/ms.ms (Highlighting): As above, and suggest different
+ occasions in which ".ds FAM C" and "CW" are convenient.
+
+ Fixes <https://savannah.gnu.org/bugs/?60422>.
+
+2021-04-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (source, source_quietly)
+ (macro_source, macro_source_quietly): Use idiomatic Boolean
+ literals.
+
+2021-04-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi: Drop workarounds for Texinfo pre-5.0 versions;
+ our local macros produced many warnings during generation of our
+ Texinfo manual.
+ (Langlemacro):
+ (Ranglemacro):
+ (Lparenmacro):
+ (Rparenmacro):
+ (Lbrackmacro):
+ (Rbrackmacro): Delete. Replace call sites with literals.
+ (Lbracemacro):
+ (Rbracemacro): Delete. Replace call sites with @lbracechar{}
+ and @rbracechar{}.
+ (angles): Reimplement in terms of @guilsinglleft{} and
+ @guilsinglright{}. Flesh out comment.
+
+ Fixes remainder of <https://savannah.gnu.org/bugs/?59524>.
+
+2021-04-17 Dave Kemper <saint.snit@gmail.com>
+
+ * doc/meintro.me:
+ * doc/meref.me: Correct and make consistent usage of the term
+ "point size".
+
+ Fixes <https://savannah.gnu.org/bugs/?60403>.
+
+2021-04-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (SS): Add devtags support. Set a subsection
+ title as a second-level heading and add it to a table of
+ contents, if any. Prompted by a query from Hans Unzner to the
+ groff mailing list. Thanks, Hans!
+
+2021-04-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (SH): Fix apparent thinko. Pass the devtags
+ macro a literal "1" argument. Passing it \n[an-level] wasn't
+ correct (it stores the relative inset level, not a sectioning
+ level), and was useless anyway: SH has already called
+ .an-set-margin by this point, which resets \n[an-level] to 1.
+ man(7) does not support nesting of SH macros. Also call
+ .DEVTAG-NH by its alias .DEVTAG-SH since section headings are
+ not numbered in man(7).
+
+2021-04-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tmac]: Adjust editor file encoding hints.
+
+ * tmac/cs.tmac: Tell Vim the file is "iso-8859-2" (ISO Latin-2).
+ * tmac/en.tmac: Stop telling Emacs the file is "latin-1"; it's
+ ASCII.
+ * tmac/fr.tmac: Tell Vim file is "iso-8859-15" (ISO Latin-9).
+
+ Vim users may need to use ":e ++enc=iso-8859-2", for instance,
+ to see correct glyphs.
+
+2021-04-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ The first-order determinant of hyphenation points is language,
+ not territory. Use ISO 639 2-letter language codes for
+ hyphenation and exception patterns instead of ISO 3166 2-letter
+ territory codes.
+
+ * tmac/*.us: Rename *.us files to *.en.
+ * tmac/troffrc: Change hyphenation language "us" to "en".
+ * tmac/en.tmac: Add English localization file. Set hyphenation
+ mode to 4.
+ * tmac/troffrc: Derive groff locale from system.
+
+ * doc/groff.texi (Manipulating Hyphenation):
+ * man/groff.7.man (Hyphenation):
+ * man/groff_diff.7.man (Implementation differences): Refer to
+ "U.S. English" hyphenation patterns as simply "English"; they
+ will be mostly correct for Commonwealth English as well, and no
+ alternative English hyphenation patterns for other territories
+ are available.
+
+ * doc/groff.texi (Manipulating Hyphenation):
+ * man/groff_diff.7.man (New requests): Note that default
+ hyphenation mode depends on the language used on the system.
+ Add concept index entry for localization. Add file index
+ entries for the locale macro files (cs.tmac, etc.). Update to
+ reflect rename of English hyphenation patterns and .hla
+ identifier from "us" to "en".
+
+ * src/roff/groff/tests/localization_works.sh: Add 10 test cases.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ * tmac/LOCALIZATION: Rewrite.
+
+ Fixes <https://savannah.gnu.org/bugs/?59814>.
+
+2021-04-12 Dave Kemper <saint.snit@gmail.com>
+
+ * doc/meref.me: Correct various small issues.
+
+ Fixes <https://savannah.gnu.org/bugs/?60379>.
+
+2021-04-12 Dave Kemper <saint.snit@gmail.com>
+
+ * man/groff.7.man (Registers/Writable registers) <year, yr>:
+ Drop discussion of Y2K issues.
+
+ Fixes <https://savannah.gnu.org/bugs/?60372>.
+
+2021-04-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Setting Registers) <rnn>: Fix error: the
+ request is not ignored if the second argument (the new name)
+ does not exist. Problem dates back to 52a6d12a (11 May 2000).
+
+2021-04-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Implement new .soquiet and .msoquiet requests.
+
+ Needed for two planned developments: {1} the i18n patch in
+ Savannah #59814 can use this to quietly attempt to open a
+ localization file. groff only supports a few locales, so people
+ with LANG=es_ES, for instance, would ordinarily see warning
+ diagnostics on every groff startup; and {2} system- or
+ site-configurable support of per-user {.,}troffrc or man.local
+ files, gracefully failing if they don't exist.
+
+ * src/roff/troff/input.cpp:
+ (do_source): Add new function, taking boolean "quietly"
+ parameter and absorbing function of source(), with added
+ conditional.
+ (source): Convert into a wrapper to call do_source() unquietly.
+ (source_quietly): Wrap do_source(), quietly.
+ (do_macro_source, macro_source, macro_source_quietly): Analogous
+ to the foregoing.
+ (init_requests): Hook "msoquiet" to macro_source_quietly() and
+ "soquiet" to "source_quietly().
+
+ * doc/groff.texi (I/O):
+ * man/groff.7.man (Requests/Request short reference):
+ * man/groff_diff.7.man (Language/New requests): Document them.
+
+ * src/roff/groff/tests/msoquiet_works.sh:
+ * src/roff/groff/tests/soquiet_works.sh: Test them.
+
+ * src/roff/groff/groff.am (groff_TESTS): Add tests.
+
+ Fixes <https://savannah.gnu.org/bugs/?59973>.
+
+2021-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (ms Document Control Settings) <FF>: Update
+ description to cover application of footnote format to footnote
+ markers in general, not just numbers. Clarify different
+ behavior of format 1 with respect to automatic numbers and other
+ markers.
+ (ms Footnotes) <*>: Describe string operation in more detail.
+ <FS>: Describe more precisely how the optional argument is
+ handled.
+
+ * doc/ms.ms (Footnotes): Synchronize with doc/groff.texi. Add
+ example using document's own text as a model.
+
+ * tmac/groff_ms.7.man (Usage/Footnotes): Resync relevant
+ portions with doc/ms.ms.
+
+ Fixes <https://savannah.gnu.org/bugs/?60227>.
+
+2021-04-06 Dave Kemper <saint.snit@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Recognize -k and -K options and pass
+ them through to troff. Document them in usage message.
+ * src/roff/nroff/nroff.1.man: Document new -k and -K options.
+
+ Fixes <https://savannah.gnu.org/bugs/?60349>.
+
+2021-04-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Hyphenation):
+ Recast introductory paragraph to better distinguish the
+ automatic breaking of words and placement of hyphens at
+ user-specified hyphenation points (done with the \% escape) and
+ automatic determination of hyphenation points within words (what
+ the pattern files and most of the hyphenation mode parameters
+ are for). Clarify that what our manual calls "automatic
+ hyphenation" pertains only to the latter.
+ <hw> Correct over-general claim; hyphenation exceptions defined
+ with the .hw request _do_ honor .hy value 2 (don't break a word
+ at the bottom of a page), but none of the others.
+ <\%> Recast description of escape to emphasize independence of
+ its two uses (e.g., "\%pseudo\%unununium" is hyphenated only
+ after "pseudo-", if at all).
+ <\:> Clarify that escape is an input word boundary.
+ <shc> Clarify that the soft hyphen glyph is applied to manual as
+ well as automatically-determined hyphenation points.
+ <hy> Recharacterize as setting the _automatic_ hyphenation mode.
+ Note that restrictions apart from value 2 are not applied to
+ words with manually-assigned hyphenation points.
+ <nh> Note that request affects only automatic hyphenation.
+
+ * man/groff.7.man (Requests/Request short reference) <.hy,.nh>:
+ Clarify that requests deal with _automatic_ hyphenation.
+ (Registers/Read-only registers) <.hy>:
+ Clarify that register applies to _automatic_ hyphenation.
+ (Hyphenation): Add new introductory paragraph summarizing manual
+ hyphenation support and features, including notice that breaking
+ at explicit hyphens is performed in fill mode, i.e., even if
+ _automatic_ hyphenation is disabled.
+
+ Thanks to Peter Schaffter for the report.
+
+ Fixes <https://savannah.gnu.org/bugs/?60332>.
+
+2021-03-27 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Changes to the ghostscript fontnames (9.53.3).
+
+ * font/devpdf/Foundry.in: HI and HBI switch to using
+ Italic rather than Oblique.
+
+2021-03-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Filling and Adjustment):
+ * man/groff_diff.7.man (Language/Extended requests): Fix
+ incorrect claim that additional inter-sentence space is applied
+ only in fill mode. Drop word "parameter" from description of
+ unit used in .ss request arguments; it is a needlessly specific
+ reference to the font file format. Tighten wording.
+
+ * man/groff.7.man (Control Characters): Fix incorrect claim that
+ end-of-sentence detection is attempted only in fill mode. Note
+ that .ss request also affects inter-word spacing.
+
+ * man/groff_diff.7.man (Language/Extended requests):
+ - Drop example.
+ - Move discussion of AT&T vs. GNU troff difference in .ss
+ handling from here...
+ (Implementation Differences): ...to here.
+
+ Thanks to Dave Kemper for his continued scrutiny!
+
+2021-03-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (ms Cover Page Macros):
+ * doc/ms.ms (Cover page macros):
+ * tmac/groff_ms.7.man (Usage/Cover page macros): Revise and
+ rename (sub)sections to "Document description macros".
+
+2021-03-15 Dave Kemper <saint.snit@gmail.com>
+
+ * Makefile.am: Fix typos. Thanks to Bjarni Ingi Gislason for
+ the report.
+
+ Fixes <https://savannah.gnu.org/bugs/?59457>.
+
+2021-03-14 Dave Kemper <saint.snit@gmail.com>
+
+ * man/groff_tmac.5.man: Correct erroneous reference to PSPIC
+ where PDFPIC was intended. Fix numerous smaller style and
+ content problems.
+
+ Fixes <https://savannah.gnu.org/bugs/?60229>.
+
+2021-03-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Optional man extensions) <CW, EX, PN, Pn>:
+ (Highlighting in ms) <CW>:
+ (Additional ms macros) <CW>: Use "monospaced" to refer to font
+ selected, retaining "constant-width" term only where it explains
+ the macro mnemonic. Thanks to Dave Kemper for pointing out the
+ issue. Also fix error: .CW in the ms package seems to have
+ originated with Research Unix, not Berkeley.
+
+ * doc/ms.ms (Highlighting) <CW>: Sync with our Texinfo manual.
+ * tmac/groff_ms.7.man: Sync with ms.ms, omitting FAM advice.
+
+ Fixes <https://savannah.gnu.org/bugs/?60037>.
+
+2021-03-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Identifiers, Strings, Writing Macros)
+ (Diversions): Improve cross-linkage of documentation regarding
+ shared name space of macros, strings, diversions, and boxes.
+
+ Fixes <https://savannah.gnu.org/bugs/?58995>.
+
+2021-03-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Improve diagnostic messages.
+ (@diag): New macro wraps .tm request, always prefixing it with
+ the name of the macro package, as well as file and line
+ indicators only if these are set to non-empty or non-zero
+ values, respectively.
+ (@error, @warning): Call @diag instead of .tm directly.
+ (@fatal): Retire; it had only one call site and it would have
+ greatly complicated @diag to support calling .ab instead of .tm.
+ An ugly alternative would have been to call .ab with a redundant
+ message after calling @diag.
+ (@divert): New macro wraps .di request, remembering the name of
+ the current file (\n[.F]) when a diversion is started.
+ (@error-recover): Call .ab instead of (deleted) @fatal.
+ (pg@super-eject): Tell user what the last file name seen was
+ when recovering from an unfinished diversion when processing
+ ends.
+
+ Fixes <https://savannah.gnu.org/bugs/?55099>.
+
+2021-02-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Fix bug where having line numbering off but the output line
+ number register \n[ln] set to a positive value would cause
+ tbl(1) table rows to spontaneously become numbered. Use new
+ \n[.nm] register to determine whether line numbering is enabled.
+
+ * src/preproc/tbl/table.cpp (table::init_output, table::do_row)
+ (table::do_bottom): Predicate all conditions on \n[ln]
+ additionally on \n[.nm].
+
+ Thanks to Olle Lögdahl for the report. Problem appears to date
+ back to commit b69062693d3360efce9d4d63fac337be21e07db7, 20 July
+ 2011.
+
+ Fixes <https://savannah.gnu.org/bugs/?59812>.
+
+2021-02-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #59812.
+
+ * src/preproc/tbl/tests/cooperate-with-nm-request.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TEST): Run test.
+
+2021-02-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Implement new read-only register ".nm". It reports the
+ enablement status of output line numbering (caused by the .nm
+ request) irrespective of the temporary suspension of numbering
+ with the .nn request. Needed because there was no way to
+ introspect its state, tbl(1) needs to do so, and the writable
+ line number register \n[ln] is not a reliable proxy for it.
+
+ * src/roff/troff/env.h: Add get_numbering_nodes(), returning
+ `int`, to public interface of `environment` class.
+ * src/roff/troff/env.cpp: Implement get_numbering_nodes().
+
+ * src/roff/groff/tests/dot-nm_register_works.sh: Test it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ * doc/groff.texi (Miscellaneous):
+ * man/groff_diff.7.man (Language/New number registers):
+ * man/groff.7.man (Registers/Read-only registers): Document it.
+
+ * NEWS: Add item.
+
+2021-02-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Emit warning diagnostic when using a multi-page
+ table with a repeating header (".TS H").
+ (KS): Rename diversion from "kp*div" to "kp@div" since the name
+ is now referenced outside the keep module.
+ (KF): ...similarly for kp@fdiv.
+ (generally): Update diversion dereference sites and derived
+ names.
+ (@TS): When handling "H" argument, check identity of current
+ diversion and emit appropriately worded warning.
+
+2021-02-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * FOR-RELEASE: Add more procedures and information related to
+ incrementing groff's version number.
+
+2021-02-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/searchpath.cpp (search_path::open_file)
+ (search_path::open_file_cautious): Save errno before calling
+ free() and restore it afterwards. A future version of POSIX
+ will require that free() not change errno if it succeeds[1];
+ some C library implementations, including recent versions of
+ glibc[2], lack this property. free() is called in these
+ libgroff functions to clean up after an unsuccessful fopen() of
+ a heap-allocated file name string, and because the errno from
+ fopen() may be passed to strerror() in a diagnostic message, it
+ needs to be accurate. I checked the rest of groff's codebase
+ and found no other instances of free() being used to clean up
+ after fopen() failure.
+
+ [1] https://www.austingroupbugs.net/view.php?id=385
+ [2] https://sourceware.org/bugzilla/attachment.cgi?id=13073
+
+2021-02-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Address build failure on macOS.
+
+ Follow the advice of the gnulib manual ("Changing your source
+ for use with gnulib") more scrupulously; include config.h in
+ more files.
+
+ * src/libs/libgroff/curtime.cpp [HAVE_CONFIG_H]:
+ * src/libs/libgroff/device.cpp [HAVE_CONFIG_H]:
+ * src/libs/libgroff/fatal.cpp [HAVE_CONFIG_H]:
+ * src/libs/libgroff/string.cpp [HAVE_CONFIG_H]:
+ * src/libs/libgroff/strsave.cpp [HAVE_CONFIG_H]:
+ * src/preproc/eqn/other.cpp [HAVE_CONFIG_H]:
+ * src/preproc/eqn/text.cpp [HAVE_CONFIG_H]:
+ * src/preproc/pic/object.cpp [HAVE_CONFIG_H]: Do it.
+
+ * src/libs/libgroff/assert.cpp [HAVE_CONFIG_H]:
+ * src/libs/libgroff/errarg.cpp [HAVE_CONFIG_H]:
+ * src/libs/libgroff/error.cpp [HAVE_CONFIG_H]: #include
+ config.h using angle brackets instead of quotation marks.
+
+ Fixes <https://savannah.gnu.org/bugs/?60035>.
+
+2021-02-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #60025.
+
+ * tmac/tests/doc_Mt-works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2021-02-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Demote definition of \[yogh] special character escape from
+ unconditional availability to be defined only if the output
+ device defines it or if .AM macro is called to enable support
+ for Berkeley-style accent marks.
+
+ See
+ https://lists.gnu.org/archive/html/groff/2021-01/msg00000.html
+ and follow-ups for discussion.
+
+ * tmac/s.tmac (initialization): Move definition of \[yogh] (only
+ if the output device doesn't already define it) from here...
+ (AM): ...to here.
+
+2021-02-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/ms.ms: Use \[ps] special character instead of local
+ character definition using numeric code point escape, which is
+ less portable.
+
+ Fixes <https://savannah.gnu.org/bugs/?59528>. Thanks to Bjarni
+ Ingi Gislason for the report and a suggested patch.
+
+2021-02-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (initialization): Call par*define-font-macro with
+ arguments "CW" and "R" in nroff mode to silence font warnings
+ from documents using .CW macro in nroff mode.
+
+2021-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::init_output): Save value of
+ hyphenation maximum consecutive line count register (\n[.hlm])
+ more carefully to keep it from being incorrectly parsed as a
+ decrement, because negative values of \n[.hlm] are valid (in
+ fact, "-1" is the default). In documents with a large number of
+ tables, this can lead to a Persian chessboard problem and an
+ integer overflow (at the groff language level, caught and
+ handled by src/roff/troff/number.cpp:parse_term()).
+
+ It is wise to wrap a non-literal second argument to the .nr
+ request in parentheses if assignment is desired and its value
+ can be negative. See section 5.6.1 ("Setting Registers") of the
+ groff Texinfo manual.
+
+ Fixes <https://savannah.gnu.org/bugs/?59993>.
+
+2021-02-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * test-groff.in: Add support for rfc1345.tmac.
+
+2021-02-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Integrate rfc1345.tmac into build system.
+
+ * contrib/rfc1345/rfc1345.am: Do it.
+ * Makefile.am: Include contrib/rfc1345/rfc1345.am.
+
+2021-02-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (open_mac_file): Report problem when
+ attempting to open macro files (-m arguments) and the error is
+ something other than ENOENT.
+ (process_macro_file): Update diagnostic to be more precise; the
+ file couldn't be _opened_, not necessarily _found_, and clarify
+ that the string being reported back to the user is the argument
+ to the -m option, not a file name.
+ (macro_source): Update diagnostic to report that the file
+ couldn't be _opened_, not necessarily _found_, and include the
+ nature of the problem.
+
+2021-01-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [tbl]: Save and restore hyphenation parameters.
+
+ * src/preproc/tbl/table.cpp (table::init_output): When starting
+ a table, save the hyphenation parameters (\n[.hy], \n[.hla],
+ \n[.hlm], \n[.hym], \n[.hys]). Restore them in the table reset
+ macro (confusingly called "3init"), which is called before
+ performing each diversion and before exiting a table.
+
+ This enables people to, e.g., turn off hyphenation in a table
+ text block with .nh, just as they can turn off adjustment with
+ .na, without having to manually reset it. The next text block,
+ and the material after the table, will not be affected.
+
+ Fixes <https://savannah.gnu.org/bugs/?59971>.
+
+2021-01-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #59971.
+
+ * src/preproc/tbl/tests/\
+ save-and-restore-hyphenation-parameters.sh: Do it.
+ * src/preproc/tbl/tbl.am (tbl_TEST): Run test.
+
+2021-01-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am ($(TMACSTRIPFILES)):
+ ($(TMACMDOCSTRIPFILES)): Remove unidiomatic for loop which
+ frustrated parallel make operation.
+
+ Thanks to an anonymous contributor for the report and patch.
+
+ Fixes <https://savannah.gnu.org/bugs/?59958>.
+
+2021-01-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/ms.ms (Document control settings): Document old FAM string
+ and new FR string.
+
+2021-01-29 T. Kurt Bond <tkurtbond@gmail.com>
+
+ [ms]: Add new string FR to hold an expression for computing the
+ footnote length relative to the line length, consistently for
+ single- and multi-column modes, which \n[FL] has never done.
+
+ * tmac/s.tmac: Initialize FR string to "11/12".
+ (@MC): Compute footnote column width using \*[FR] instead of a
+ hard-coded "11/12" expression.
+ (par@init): Compute default \n[FL] using \*[FR] instead of a
+ hard-coded "11/12" expression.
+
+ * doc/groff.texi (Macro Packages/ms/Document control settings):
+ * tmac/groff_ms.7.man (Usage/Document control registers):
+ Document it.
+
+ Fixes <https://savannah.gnu.org/bugs/?59605>.
+
+2021-01-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp: Add ADJUST_MAX enumeration constant to
+ record maximum valid numerical adjustment mode.
+ (adjust): Verify numeric argument against ADJUST_MAX instead of
+ a numeric literal. Ignore excessively large values instead of
+ setting adjustment mode to "right". Update warning diagnostic.
+
+2021-01-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for .ad and .na requests.
+
+ * src/roff/groff/tests/adjustment_works.sh: Do it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2021-01-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Filling and Adjustment):
+ * man/groff.7 (Requests/Request short reference): Clarify
+ behavior of ".na" and ".ad l".
+
+ Thanks to Bjarni Ingi Gislason for pointing out the potential
+ for confusion and for his careful review of the new text.
+
+ Fixes <https://savannah.gnu.org/bugs/?59795>.
+
+2021-01-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/grog/grog.pl: Report program name in fatal error
+ diagnostics. Also drop sentence-ending punctuation since Perl
+ supplies additional information.
+
+ Continues the long process of fixing Savannah #52463.
+
+2021-01-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (RE): Style-warn if macro arguments are out
+ of range or redundant.
+
+ Fixes <https://savannah.gnu.org/bugs/?55320>.
+
+2021-01-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Improve style of troffrc{,-end} files. Follow established
+ idioms and make them consistent with each other.
+
+ * tmac/troffrc:
+ * tmac/troffrc-end:
+ - Identify files in header comments as part of GNU troff.
+
+ * tmac/troffrc:
+ - Clarify purpose of .do request.
+ - Identify .X (set by groff -X) as a register, not a string.
+ - Remove temporary registers one per line to make
+ synchronization with foregoing logic easier. Fixes name
+ space management nits: an undefined string troffrc!Xps was
+ being removed, and troffrc!{ascii,latin1,utf8,cp1047} were
+ not being removed despite being defined.
+
+ * tmac/troffrc-end:
+ - Clarify that file is read after -m file arguments (not "all
+ macro sets", which can be loaded with .mso after this file
+ is processed).
+ - Advise usage of .do for groff extensions.
+ - Line-break one-off conditionals as troffrc does.
+ - Add empty string comment to empty string definitions.
+
+2021-01-14 Dave Kemper <saint.snit@gmail.com>
+
+ Commit 87edb525, from 2003, added character U+2026 (HORIZONTAL
+ ELLIPSIS) to most base groff fonts, but there has been no
+ kerning information for this character. To produce consistent
+ typography, it should be kerned the same way as the period,
+ which is in 818 kern pairs across all the devps fonts.
+
+ Apply the following shell command to the groff description files
+ of the PostScript fonts.
+
+ for file in font/devps/*[A-Z]
+ do sed -Ei\~ 's/(.*)(^| )\. (.*)/&\n\1\2u2026 \3/' $file
+ done
+
+ * font/devps/AB:
+ * font/devps/ABI:
+ * font/devps/AI:
+ * font/devps/AR:
+ * font/devps/BMB:
+ * font/devps/BMBI:
+ * font/devps/BMI:
+ * font/devps/BMR:
+ * font/devps/HB:
+ * font/devps/HBI:
+ * font/devps/HI:
+ * font/devps/HNB:
+ * font/devps/HNBI:
+ * font/devps/HNI:
+ * font/devps/HNR:
+ * font/devps/HR:
+ * font/devps/NB:
+ * font/devps/NBI:
+ * font/devps/NI:
+ * font/devps/NR:
+ * font/devps/PB:
+ * font/devps/PBI:
+ * font/devps/PI:
+ * font/devps/PR:
+ * font/devps/TB:
+ * font/devps/TBI:
+ * font/devps/TI:
+ * font/devps/TR:
+ * font/devps/ZCMI: Apply above script.
+
+ Fixes <https://savannah.gnu.org/bugs/?58897>. However, this
+ will need to be done again if afmtodit is used to regenerate the
+ above files, or afmtodit will need to be modified to add this
+ kerning information itself.
+
+2021-01-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/relocate.cpp (set_current_prefix) [_WIN32]:
+ Move declaration of `pathextstr` to lie within preprocessor
+ conditional, since it is dereferenced only there.
+
+2021-01-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add support for strsignal().
+
+ POSIX.1-2008 added strsignal() to the C library and recommended
+ its use over sys_siglist[], but groff's pipeline management
+ hadn't been updated in that respect since that time.
+
+ * configure.ac: Check for strsignal().
+ * src/roff/groff/pipeline.c (xstrsignal): Return strsignal() if
+ it is defined.
+
+ Thanks to an anonymous contributor for the report and the patch.
+
+ Fixes <https://savannah.gnu.org/bugs/?59835>.
+
+2021-01-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/relocate.cpp (relocatep): Add assertion to
+ identify logic error if `curr_prefix` is unexpectedly a null
+ pointer.
+ (set_current_prefix) [_WIN32]: Allocate memory from heap for
+ `curr_prefix` only on Windows; on other systems, this file's
+ searchpath() is used to populate `curr_prefix`, and that
+ function (except on Windows) performs its own allocation. Fixes
+ memory leak noted by Ingo Schwarze.
+ (set_current_prefix) [!_WIN32]: Move logic attempting to set
+ `curr_prefix` by calling searchpathext() from here...
+ [WIN32]: ...to here. The PATHEXT environment variable has
+ semantics only under Windows, not POSIX systems, so the
+ placement of this code seemed erroneous.
+
+ See <https://savannah.gnu.org/bugs/?55475>.
+
+2021-01-06 Colin Watson <cjwatson@debian.org>
+
+ * contrib/glilypond/glilypond.pl:
+ * contrib/gperl/gperl.pl:
+ * contrib/gpinyin/gpinyin.pl:
+ * tmac/hyphenex.pl: Avoid Perl's unsafe "<>" operator.
+
+ The "<>" operator is implemented using the two-argument form of
+ "open", which interprets magic such as pipe characters, allowing
+ execution of arbitrary commands which is unlikely to be
+ expected. Perl >= 5.22 has a "<<>>" operator which avoids this,
+ but also forbids the use of "-" to mean the standard input,
+ which is a facility that the affected groff programs document.
+
+ ARGV::readonly would probably also fix this, but I fundamentally
+ dislike the approach of escaping data in preparation for a
+ language facility to unescape it, especially when the required
+ escaping is as non-obvious as it is here. (For the same reason,
+ I prefer to use subprocess invocation facilities that allow
+ passing the argument list as a list rather than as a string to
+ be interpreted by the shell.) So I've abandoned this dubious
+ convenience and changed the affected programs to iterate over
+ command-line arguments manually using the three-argument form of
+ open.
+
+ glilypond doesn't need the initial unshift since that's already
+ handled in contrib/glilypond/args.pl.
+
+ Fixes <https://savannah.gnu.org/bugs/?55557>.
+
+2021-01-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Set footnote line length in multi-column
+ environments to 11/12ths of the text line length for consistency
+ with earlier change to FL register default.
+
+ Thanks to T. Kurt Bond for bringing this issue to my attention.
+
+2021-01-04 John Gardner <gardnerjohng@gmail.com>
+
+ * tmac/strip.sed: Escape '.' wildcard when matching lines using
+ .as and .ds requests.
+
+ Fixes <https://savannah.gnu.org/bugs/?59498>.
+
+2021-01-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Document use of SOURCE_DATE_EPOCH and TZ.
+
+ The semantics of SOURCE_DATE_EPOCH to groff were not established
+ with respect to time zone selection, prompting divergent
+ interpretations; Debian and distributions derived from it have
+ for several years patched groff to implicitly use UTC as the
+ time zone when interpreting the current time (or
+ SOURCE_DATE_EPOCH) as a local time. While a convenient and
+ defensible choice for reproducible build efforts[1], it runs
+ against the grain of user expectations. Systems programmers
+ like monotonically increasing clocks; the broader user base
+ usually prefers a clock that follows an applicable civil
+ calendar. To the latter audience, a difference between
+ $ date "+%Y-%M-%d %H:%m:%S"
+ and
+ $ groff <<EOF
+ .af year 0000
+ .af mo 00
+ .af dy 00
+ .af hours 00
+ .af minutes 00
+ .af seconds 00
+ .tm \n[year]-\n[mo]-\n[dy] \n[hours]:\n[minutes]:\n[seconds]
+ EOF
+ is difficult to explain.
+
+ * doc/groff.texi (Environment):
+ * src/devices/grohtml/grohtml.1.man (Environment):
+ * src/devices/gropdf/gropdf.1.man (Environment):
+ * src/devices/grops/grops.1.man (Environment):
+ * src/roff/groff/groff.1.man (Environment):
+ * src/roff/troff/troff.1.man (Environment): Expand description
+ of use of SOURCE_DATE_EPOCH to note that it converts the time
+ {as seconds since the Epoch} to local time, which motivates
+ documentation of the TZ environment variable. Explain what the
+ time stamps are used for: troff merely stores the human-readable
+ time components in registers; the grohtml, gropdf, and grops
+ output drivers write the information to the output in comments.
+
+ Fixes <https://savannah.gnu.org/bugs/?57218>.
+
+ [1] https://reproducible-builds.org/docs/source-date-epoch/
+
+2020-12-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am (.texi.dvi): Call texi2dvi with FORCE_SOURCE_DATE=1
+ in the environment, avoiding an embedded timestamp in the
+ generated groff.dvi file, which frustrated reproducible builds.
+ Thanks to Werner Lemberg for the suggestion.
+
+ * src/roff/groff/tests/string_case_xform_unicode_escape.sh: Fix
+ test to no longer use Bash process substitution, resulting in
+ nondeterministic file descriptor numbers appearing in test logs,
+ frustrating reproducible builds.
+
+ * contrib/pdfmark/pdfmark.am (PDFROFF): Call pdfroff without
+ `--keep-temporary-files` option. Temporary directories are
+ created with mktemp(1) and files with an embedded process
+ identifier, which frustrates reproducible builds.
+
+ See <https://savannah.gnu.org/bugs/?57218>.
+
+2020-12-21 Dorai Sitaram <ds26gte@yahoo.com>
+
+ * tmac/s.tmac (@IP): Handle inter-sentence space correctly in
+ paragraph tags by copying \n[.sss] from the enclosing
+ environment to that used to format the paragraph tag.
+
+ Fixes <https://savannah.gnu.org/bugs/?59742>.
+
+2020-12-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #59742.
+
+ * tmac/tests/s_IP_respects_inter-sentence_space_in_tags.sh: Do
+ it.
+ * tmac/tmac.am (tmac_TESTS): Run it.
+
+2020-12-21 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * src/utils/addftinfo/addftinfo.cpp (usage): Use size_t for loop
+ index when iterating over a count of size_t items. Quiets
+ signedness mismatch compiler warning.
+
+ Fixes <https://savannah.gnu.org/bugs/?59583>.
+
+2020-12-20 Colin Watson <cjwatson@debian.org>
+
+ * src/devices/gropdf/gropdf.pl:
+ * src/utils/afmtodit/afmtodit.pl: Sort Perl hash keys. Hash
+ iteration order may differ between runs, which makes builds
+ harder to reproduce. Sort hash keys in gropdf and afmtodit
+ output to avoid this.
+
+2020-12-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/ms.ms (Basic Information): Tweak unit definitions. groff
+ defines a typesetter's point as precisely 1/72 inches. Also use
+ the correct symbol for inch units--strictly, it's the same as
+ that for "seconds" as in subdivisions of the degree, and not a
+ typographical quote of any sort.
+
+ Fixes <https://savannah.gnu.org/bugs/?59463>.
+
+2020-12-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ [ms]: Set footnote line length to AT&T default.
+
+ groff ms has since its initial implementation used a default
+ footnote line length of 5/6ths of the text line length; this may
+ correspond to an early AT&T ms default (perhaps documented in
+ the 1974 version of the M. E. Lesk paper, "Typing Documents on
+ the UNIX System"[1]). However, as early as V6 Unix (1975), AT&T
+ ms actually used a footnote line length of 11/12ths of the text
+ line length instead[2].
+
+ Heirloom Doctools and neatroff ms also use this default.
+
+ * tmac/s.tmac: Set default footnote line length to 11/12ths of
+ the text line length.
+
+ * doc/groff.texi (ms Document Control Settings):
+ * doc/ms.ms (Document control registers): Document new default.
+
+ [1] https://www.troff.org/using-ms.pdf
+ [2] https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/lib/tmac.s
+
+2020-12-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Lower new unplanted trap error to 'mac' warning.
+
+ * src/roff/troff/div.cpp (top_level_diversion::change_trap):
+ Change error upon invalid attempt to move an unplanted trap into
+ a warning of type 'mac'.
+
+ * doc/groff.texi (Warnings):
+ * src/roff/troff/troff.1.man (Warnings): Recast description of
+ 'mac' warning type to include the above scenario.
+
+ Thanks to Bjarni Ingi Gislason for reporting the diagnostic
+ arising in real life, and to Peter Schaffter for the discussion
+ and recommendation. Some bike sheds get painted quickly!
+
+ Fixes <https://savannah.gnu.org/bugs/?59573>.
+
+2020-12-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_mdoc.7.man: Tweak mandatory macro explanations.
+
+ Update descriptions and template of .Dd, .Dt, .Os usage to
+ reflect recent changes and recommended conventions.
+
+ Thanks to Ingo Schwarze, Colin Watson, and Alan D. Salewski for
+ the discussion, and Florent Rougon and Robert Bihlmeyer (many
+ years ago) for the original report.
+
+ Fixes <https://bugs.debian.org/284002>.
+
+2020-12-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/xtotroff/xtotroff.c (MapFont): Avoid writing past
+ the end of a static buffer. Problem found and patch supplied by
+ Bjarni Ingi Gislason. I tweaked it to comment it differently
+ {in case the buffer ever needs to grow, but the prospects of
+ future X11 server-side font rendering development seem dim} and
+ use snprintf() instead of retaining the existing sprintf().
+
+ Fixes <https://savannah.gnu.org/bugs/?55257>.
+
+2020-12-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/xtotroff/xtotroff.c (CanonicalizeFontName)
+ (FontNamesAmbiguous, MapFont, main): Format diagnostic messages
+ more consistently with GNU Coding Standards. Prefix with name
+ of complaining command. Put argument literals in quotation
+ marks. Put each message on one line only.
+
+2020-11-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Parameters): Fix error in example. Arguments
+ to .als were in the wrong order (.als is not ln(1)). Also mark
+ output to the standard error stream using the @error Texinfo
+ command instead of @result.
+
+ Thanks to Dorai Sitaram for finding this error.
+
+ Fixes <https://savannah.gnu.org/bugs/?59566>.
+
+2020-11-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Debugging): Update with a more helpful
+ introduction, summarizing available procedures. Mention
+ backtracing since it is much more useful now (post-groff
+ 1.22.4.)
+
+ * man/groff.7 (Debugging): Add new section summarizing
+ material added to our Texinfo manual.
+
+ * man/groff_diff.7.man (Debugging): Add new section describing
+ groff extensions.
+
+2020-11-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Traps): Update. Organize subsubsections "Page
+ Location Traps" and "Diversion Traps" under new subsection node
+ "Vertical Position Traps" to make the conceptual organization
+ more clear. Define and discuss trap visibility earlier.
+ Document unit used for page location trap reporting. Introduce
+ analogy of .wh and .ch requests as queue operations. Document
+ what happens when the same macro is planted as a trap in
+ multiple locations; supply example. Supply example of .itc
+ usage. Consistently refer to an end-of-input macro as such, to
+ contrast it with the "end macro" that can be used with, e.g.,
+ .de and .ig requests.
+
+ * man/groff.7 (Traps): Add new section summarizing
+ language feature.
+
+2020-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common-u (doc-footer): When performing
+ double-sided page layout, set page number on outside of _recto_
+ {odd-numbered} pages, as is conventional and for consistency
+ with man(7).
+
+ * tmac/groff_mdoc.7.man
+ (Formatting with groff, troff, and nroff): Document what
+ double-sided layout (not "printing") means. Also correct
+ description of continuous rendering, which implied that page
+ headers and footers were not written at all, and used an
+ incorrect groff driver name.
+
+ Fixes <https://bugs.debian.org/919890>. Also see:
+ https://lists.gnu.org/archive/html/groff/2019-01/msg00021.html
+ Thanks to Ralph Corderoy for the discussion.
+
+ * tmac/tests/doc-D_places_page_numbers_correctly.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2020-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common-u (doc-header): Fix infinite loop when
+ attempting to trim header string (like "FTP(1)") to fit when the
+ available title length won't allow even extreme shortening.
+ Measure the string before and after calling .substring on it,
+ and break out of loop if it didn't get shorter.
+
+ Problem dates back to at least
+ ed63b0ae76a611b581601a1afc192f6a7367be6f (7 July 2002), possibly
+ as far as the Great Mdoc Rewrite of
+ 058f72af832fc68488d33cd09ec819e5c560fa09 (23 March 2001).
+
+ One can never check loop invariants too many times...
+
+ Fixes <https://bugs.debian.org/411227>.
+
+ * tmac/tests/\
+ doc-do_not_loop_infinitely_when_shortening_headers.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2020-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Recognize -b and -z options and pass
+ them through to troff. Document them in usage message.
+ * src/roff/nroff/nroff.1.man: Document new -b and -z options.
+
+2020-11-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/div.cpp (top_level_diversion::change_trap):
+ Emit error diagnostic if an attempt is made to move an unplanted
+ macro. This could have been a warning, as it's pretty harmless
+ {though possibly a big surprise to anyone who was wondering why
+ their .ch was a no-op}, but there's no good warning category for
+ this kind of problem and I am not about to start a bike shed
+ discussion about it right now.
+
+2020-11-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi: Update. Add introductory material. Rewrite
+ the first section of the "gtroff Reference" chapter of our
+ Texinfo manual. It is written as an introduction for readers
+ who want to go straight to "raw" troff without knowing much or
+ anything about existing macro packages. Thanks to Dave Kemper
+ and John Gardner for feedback and support.
+
+ Clarify whitespace usage. "Whitespace" is defined in this
+ manual as "spaces, tabs, and newlines". Say only "spaces and
+ tabs" when newlines should not be included.
+
+ Rename "Font Files" to "Device and Font Files".
+
+ Rename "Manipulating Filling and Adjusting" to "Manipulating
+ Filling and Adjustment".
+
+ Update discussion of "copy mode". Rename from "copy-in mode",
+ which I don't think eludicdated anything; is there a "copy-out
+ mode"? Rename nodes accordingly. Attempt to explain more
+ clearly. Recast to shift emphasis to what _isn't_ merely copied
+ in copy mode, since that is what seems to cause confusion among
+ the inexperienced.
+
+ Update "Conditionals and Loops". Add introductory paragraph.
+ Add nodes/subsections "if-then" and "Conditional Blocks". Add
+ subsection "Conditional Blocks" to explain the behavior of the
+ \{ and \} escapes much more precisely. I don't think this
+ syntactical area is well understood. Supply examples.
+
+2020-11-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add style checks to man(7) macro package.
+
+ Not otherwise documented yet; experimental--subject to change.
+
+ * tmac/an-old.tmac: Initialize CHECKSTYLE to false if not
+ already set.
+ (an-style-warn): New macro emits diagnostic of type "style" when
+ called if CHECKSTYLE register is true.
+ (TH): Call an-style-warn if fewer than two or more than five
+ arguments are seen.
+ (RI, IR, IB, BI, RB, BR): Call an-style-warn if fewer than two
+ arguments are seen.
+
+2020-11-11 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update copyright.
+
+ * update-copyright.sh: use gnulib's 'update-copyright' script.
+ Pass this script in directories 'arch', 'contrib', 'font',
+ 'man', 'tmac', 'src' and on a list of extra files.
+
+ * FOR-RELEASE: mention this point.
+
+2020-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/preconv.1.man (Description): Fix error:
+ groff's -K option, not -k, specifies a character econding (and
+ overrides GROFF_ENCODING in the environment). Also explain how
+ valid encoding strings are determined.
+
+ Thanks to Bjarni Ingi Gislason for the report.
+
+ Fixes <https://savannah.gnu.org/bugs/?59445>.
+
+2020-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::compute_separation_factor):
+ Add word "table" to diagnostic message to better cue the user
+ that it is produced by roff that has been injected into the
+ document by the tbl(1) preprocessor. The other 3 such possible
+ diagnostic messages already do this. Thanks to Bjarni Ingi
+ Gislason for bringing the inconsistency to light.
+
+ Fixes <https://savannah.gnu.org/bugs/?59443>.
+
+2020-11-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_mdoc.7.man (Predefined strings): Ensure the table
+ fits even on ASCII and Latin-1 terminals. Thanks to Bjarni Ingi
+ Gislason for the report.
+
+ Fixes <https://savannah.gnu.org/bugs/?59424>.
+
+2020-11-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_mdoc.7.man (General text domain/Enclosure and
+ Quoting Macros): Fix errors in macro descriptions.
+ <.Dq>: Encloses its arguments in directional double quotes where
+ available.
+ <.Eq>: Misrendered example; say "XstringY" rather than
+ "XXstring".
+ <.Sq>: Encloses its arguments in directional single quotes where
+ available.
+
+2020-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add support for CS and CT registers to mdoc(7), just like in
+ man(7), from a year ago.
+
+ * tmac/doc.tmac-u (doc-print-recursive): Call .stringup on each
+ argument if register doc-do-capitalize is true.
+ * tmac/mdoc/doc-common-u (Dt): Call .stringup on
+ doc-document-title if \n[CT] is true.
+ (Sh): Set doc-do-capitalize to value of \n[CS]. Set
+ doc-do-capitalize false before returning.
+ * tmac/mdoc/doc-ditroff-u:
+ * tmac/mdoc/doc-nroff-u: Set CS and CT registers to 0 (false)
+ if the user has not defined them.
+
+ * tmac/groff_mdoc.7.man \
+ (Formatting with groff, troff, and nroff): Document it.
+
+ * tmac/tests/doc-CS_works.sh:
+ * tmac/tests/doc-CT_works.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2020-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_overstrike, do_bracket)
+ (do_name_test, do_expr_test, do_zero_width, do_width)
+ (do_special, do_if_request, read_color_draw_node): Improve
+ diagnostic messages for missing closing delimiters by describing
+ the incomplete structure and the problem token.
+ (read_rgb, read_cmy, read_cmyk, read_gray): Improve English
+ syntax of diagnostic message when color definition missing.
+
+2020-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-ditroff-u:
+ * tmac/mdoc/doc-nroff-u: Recognize but ignore the groff_man(7)
+ string HF and registers FT, IN, P, SN, and X (by initializing
+ them empty or zero if they are not set). This reserves them so
+ that they don't become used for divergent purposes. man(1)
+ programs set these and other parameters already handled (like
+ LL) to configure page rendering, and it would break the
+ macro-package agnosticism afforded by andoc.tmac to expose
+ different externally-programmable registers and strings.
+ * tmac/groff_mdoc.7.man \
+ (Formatting with groff, troff, and nroff): Document this.
+
+2020-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Implement \*< and \*> strings for subscripting.
+ groff ms has had (extension) strings for superscripting since
+ 1991 at the latest, and the asymmetry possessed me of a madness.
+ Both pairs of string names follow similar usage in Eric Allman's
+ "me" macros.
+
+ * NEWS:
+ * doc/groff.texi:
+ * tmac/groff_ms.7.man: Document it.
+
+2020-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_mdoc.7.man (Predefined strings): Fix error: the
+ \*[Lq] and \*[Rq] strings degrade to neutral double quotes (")
+ on "nroff" devices (-Tascii and -Tlatin1), not "``" and "''".
+
+2020-10-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac (ds*end!0): Improve diagnostic to mention .RD.
+
+2020-10-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/s.tmac: Revise diagnostic messages. Define a common
+ prefix string, starting all such messages with "s.tmac".
+ Continues the long process of fixing Savannah #52463. Drop the
+ word "macro" from diagnostic since this will now be clear from
+ the prefix. Prefix every macro name in a diagnostic message
+ with a leading dot; this was already done in four cases.
+ (cov*first-page-init): Use temporary string to avoid multi-line
+ diagnostic message.
+ (@NH): Use temporary string to prevent overlength line.
+
+ A further benefit of this revision is that index information
+ produced by ms's .IX macro (which writes to the standard error
+ stream) will now be trivially easy to extract even for documents
+ that cause diagnostic messages. One can simply filter them with
+ grep -v '^s\.tmac:'
+ or similar.
+
+2020-10-28 Ingo Schwarze <schwarze@openbsd.org>
+
+ * man/roff.7.man, tmac/groff_man.7.man.in: Correct man(7)
+ history.
+
+2020-10-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Fix ms .R macro to work as documented, by handling its arguments
+ instead of ignoring them.
+
+ * tmac/s.tmac (R): Delete. During set up, call
+ par*define-font-macro for R font just as we do for B, I, and BI.
+
+ Problem dates back at least to groff 1.02, June 1991.
+
+ * tmac/tests/s_R-handles-its-arguments.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?59348>.
+
+2020-10-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Fix ms .TC macro by allowing it to actually use lowercase Roman
+ numerals for the page(s) of the table of contents when a custom
+ title (header or footer) is defined containing '%'.
+
+ As a side effect, eliminate the PN register, which was
+ apparently misused because it was undocumented and had a name
+ just long enough to be both suggestive and ambiguous. Another
+ pin goes into my Ken Thompson voodoo doll.
+
+ * tmac/s.tmac (IX): Write out page number of index term(s) using
+ the % register (instead of PN), obtaining whatever format is
+ assigned to the register at that time.
+ (CH): Similarly, output %, not PN, in the center of the default
+ heading.
+ (PT): Save the format of %, set it to decimal, copy its value to
+ a new register, pg*page-number-in-decimal, then restore %'s
+ previous format. Compare the new register, not %, to 1 to
+ determine whether special page one behavior should be used.
+ (pg*end-page): Assign pg*next-format to %, not PN.
+ (XA): Define toc*num with the interpolation of %, not PN.
+
+ * tmac/tests/s_TC-works-with-percent-in-custom-titles.sh: Test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Problem appears to be very old; as I read it, Larry Kollar was
+ complaining of it in his ms.ms document over 20 years ago.
+
+ Fixes <https://savannah.gnu.org/bugs/?59345>.
+
+2020-10-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7 (Requests/Request short reference) <.af>: Fix
+ error; "l" is not a valid register format. Explain what the
+ request does, and the default format, as tersely as possible.
+
+2020-10-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Use only `malloc()` and `free()` to manage memory of paths
+ opened by the parser instead of mixing in C++ new/delete
+ management under some runtime-dependent circumstances.
+
+ * src/libs/libgroff/relocate.cpp (relocatep): Use `malloc()`,
+ not new.
+ * src/roff/troff/input.cpp (process_macro_file)
+ (process_startup_file, macro_source): Use `free()`, not
+ `{a_,}delete()`.
+
+ Thanks to an anonymous contributor for the report and patch.
+
+ Fixes <https://savannah.gnu.org/bugs/?56694>.
+
+2020-10-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_char.7.man (Description/Special character escape
+ forms): Clarify discussion of Unicode Normalization Form D and
+ its applicability to code points acceptable in Unicode numeric
+ special character escapes. Also document that these escapes
+ must use uppercase hexadecimal digits.
+
+ Attempts once again to slay the unkillable beast that is
+ <https://savannah.gnu.org/bugs/?57618>.
+
+2020-10-21 Ingo Schwarze <schwarze@openbsd.org>
+
+ On systems without NAME_MAX, use FILENAME_MAX as a last resort.
+
+ Problem reported by Eli Zaretskii <eliz at gnu dot org>
+ on MS Windows in https://savannah.gnu.org/bugs/?55449
+
+2020-10-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (environment::possibly_break_line):
+ Emit break warning and return if the output width is not
+ positive. The code assumes that it will be and loops infinitely
+ if it isn't. I _think_ this is because we're not able to get
+ width data for (some?) CJK glyphs. Based on a patch by Osamu
+ Sayama.
+
+ * src/roff/groff/tests/\
+ do_not_loop_infinitely_when_breaking_cjk.sh: Test it.
+ * src/roff/groff/groff.am: Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?44018>.
+
+2020-10-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::init_output): Save the value
+ of \n[.tabs] when starting a table. In the reset macro, restore
+ the saved value.
+
+ Based on a patch by Bjarni Ingi Gislason (tweaked to use a more
+ normative preprocessor symbol; "REG"s aren't "NAME"s).
+
+ * src/preproc/tbl/tests/save-and-restore-tab-stops.sh: Test it.
+ * src/preproc/tbl/tbl.am (tbl_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?42978>.
+
+2020-10-20 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/nroff/nroff.sh: Recognize -E option and pass it
+ through to troff. Document it in usage message.
+ * src/roff/nroff/nroff.1.man: Document new -E option.
+
+ Based on a patch by Ingo Schwarze.
+
+ Fixes <https://savannah.gnu.org/bugs/?44289>.
+
+2020-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Stop remapping ` and '. Our own pages now
+ appear to be clear of wrong-quote problems, so let's make them
+ visible if they recur. Those who don't want to fix bad man
+ pages (distributors, site admins) can restore the mappings in
+ their man.local files.
+
+2020-10-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-warn): New; emits warning diagnostic.
+ (R): Use new macro instead of .tm* requests directly.
+
+2020-10-18 Ingo Schwarze <schwarze@openbsd.org>
+
+ #include "config.h" before <stdio.h>
+
+ Required with e.g. gcc 4.2.1 because gnulib/lib/stdio.in.h
+ uses the "restrict" keyword since this gnulib commit:
+ commit 182afcba2635cbff91240656c7fb3742dd23ab6f
+ Author: Bruno Haible <bruno@clisp.org>
+ Date: Sat Feb 22 20:57:30 2020 +0100
+
+ Otherwise, the build may die from the declaration of
+ various printf-like functions with messages like:
+ ./lib/stdio.h:851: error: expected ',' or '...' before 'fp'
+
+ * src/libs/libgroff/assert.cpp, src/libs/libgroff/errarg.cpp,
+ src/libs/libgroff/error.cpp, src/preproc/eqn/eqn.ypp:
+ #include "config.h".
+
+2020-10-18 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ hpftodit: incorrect 'delete' after new[]
+
+ * src/utils/hpftodit/hpftodit.cpp (output_font_name): use
+ 'delete[]'.
+
+ Fixes bug #55331. Found by David Binderman, fixed by Ingo
+ Schwarze.
+
+2020-10-18 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ preconv: don't use libuchardet if input is stdin
+
+ * src/preproc/preconv/preconv.cpp (do_file): don't call
+ detect_file_encoding if input file is "-"
+
+ This fixes the failure on MS-Windows described #55334, however
+ this does not fix the encoding detection with uchardet if the
+ input is stdin (the user would have to pass with -D the correct
+ encoding as explained in the man page).
+
+2020-10-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/lex.cpp (troff_defs): Set the "..." token on
+ the baseline, not vertically centered, aligning the actual
+ behavior with what our eqn(1) man page has claimed since 2007.
+
+ Fixes <https://savannah.gnu.org/bugs/?59285>.
+
+2020-10-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grops/grops.1.man
+ (Usage/TrueType and other font formats): Remove dead URL to
+ ttftot42 utility. Update URL to fontforge tool. Replace much
+ of the discussion with an example, motivated by Jordan Torbiak's
+ "groff-install-font" script on GitHub Gist, of how to add the
+ Roboto Slab Regular font to a user-local groff font directory
+ {and how to test it, too}.
+
+ Fixes <https://savannah.gnu.org/bugs/?58077>.
+
+2020-10-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Report program name in warning
+ diagnostics.
+
+ Continues the long process of fixing Savannah #52463.
+
+2020-10-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Add fallback for lq, rq strings.
+
+ Define \*(lq and \*(rq as '"' if the output device has no \(lq
+ or \(rq special character escapes defined (respectively).
+
+ This is a bit belt-and-suspenders for groff since our output
+ devices all guarantee availability of these glyphs, but if this
+ macro file gets used with other implementations (and if they
+ support the 'c' conditional), it should prevent the strings from
+ producing empty output.
+
+ Man page writers should simply use \(lq and \(rq unless they are
+ aiming for pathological levels of portability (e.g., composing
+ man pages today for consumption on simulators of 1980s Unix
+ systems).
+
+2020-10-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Define an-end with .de1. We need to define
+ an-end with de1 (execute macro with compatibility mode off)
+ because, as of 37b4180a27a6eeaea429e40ec278abefcda7f3a7 (11
+ October), it can now be called from a trap executing in a
+ context whence compatibility mode might be on (namely,
+ "reload-doc" in andoc.tmac).
+
+2020-10-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/eqn/main.cpp (main):
+ * src/preproc/pic/main.cpp (main):
+ * src/preproc/tbl/main.cpp (main):
+ * tmac/eqnrc:
+ * tmac/troffrc: Perform checks of register and macro definitions
+ with a .do request, since we might be in compatibility mode.
+
+2020-10-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (do_if_request): Emit warning of type
+ "syntax" if a groff conditional expression extension is used
+ when compatibility mode is active.
+
+ * doc/groff.texi:
+ * src/roff/troff/troff.1.man: Update description of "syntax"
+ warning type to be more general. It was inaccurate, referring
+ only to "dubious syntax in numeric expressions", which was not
+ the case. Instead it was being used only for poor construction
+ of character classes with the .class request.
+
+2020-10-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (main): Stop ignoring -T. GNU tbl
+ was undocumentedly ignoring the -T option; apparently IRIX tbl
+ implemented it, something on the system called tbl with that
+ option (I'm guessing IRIX's man(1)) and its users spammed James
+ Clark with bug reports. We can probably weather the volume of
+ such spurious reports from IRIX users today.
+
+2020-10-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/main.cpp (main): Clarify fatal diagnostic in
+ generated document by informing the user that the program is
+ aborting, and also that it is groff extensions that are required
+ rather than GNU troff per se (since Heirloom Doctools troff
+ claims groff extension support via the .g register).
+
+2020-10-14 Ingo Schwarze <schwarze@openbsd.org>
+
+ In groff(1), fix the combination of -v with -k, -j, and -J.
+
+ * src/roff/groff/groff.cpp: Pass the -v option through to the
+ preconv, chem, and ideal preprocessors, just like for all
+ other preprocessors, to print the version of the preprocessor
+ and to avoid garbage output.
+
+ Bugfix patch from Eli Zaretskii <eliz at gnu dot org>
+ submitted in: https://savannah.gnu.org/bugs/?55297
+
+2020-10-12 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update 'gnulib' submodule.
+
+ * gnulib: now points on d60a35e94c4f5b8f09f15828242418f5073d46e7
+ from 'gnulib' repository.
+
+ * configure.ac: minimum autoconf version is now 2.64 due to
+ gnulib upgrade.
+
+ * FOR-RELEASE: add the gnulib update to the checklist.
+
+2020-10-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac: When switching between macro packages in
+ andoc and using continuous-rendering mode, flush any partially
+ collected output line and write page footer.
+ (reload-doc): Call an-end if it is defined.
+ (reload-man): Call doc-end-macro if it is defined.
+ * tmac/tests/andoc-flush-between-packages.sh: Add regression
+ test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?59106>.
+
+2020-10-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac: Remove traps set by mdoc package by the names
+ they actually use.
+ * tmac/tests/andoc-clear-doc-traps.sh: Add regression test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Fixes <https://savannah.gnu.org/bugs/?59246>.
+
+2020-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::init_output): In the release
+ macro written to the output, reword the warning diagnostic that
+ is emitted when a table row is to be output without enough room
+ before the next page location trap. The former wording said
+ that a "text block" would not fit on the page, and that is
+ normally how table rows grow longer than one line in the first
+ place. However, there are other ways the conditional can be
+ satisfied, as witnessed in Savannah #57665, so simply say what
+ is known; that the table _row_ overruns the space to the next
+ trap (we say the row won't "fit on [the] page").
+
+ Fixes <https://savannah.gnu.org/bugs/?59233>.
+
+2020-10-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp
+ (double_line_entry::double_line_entry):
+ (double_line_entry::simple_print): Remove garbage lines
+ inadvertently added in previous commit.
+
+2020-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Stop tbl from injecting spurious blank lines (and emitting
+ spurious warnings about tables and "text blocks" not "fitting on
+ a page") into long tables in man pages when continuous rendering
+ is used (the default for nroff output devices).
+
+ * src/preproc/tbl/table.cpp (USE_KEEPS_REG): New preprocessor
+ symbol stores name of groff register for dynamic determination
+ of keep usage.
+ (table::init_output): If the NOKEEP flag is not set, then in
+ generated groff output, see if the usekeeps register is defined;
+ if not, define it and enable usage of keeps.
+ (table::do_row): In groff output, check usekeeps register before
+ calling keep and release macros.
+ (table::do_bottom): In groff output, check usekeeps register
+ before calling release macro.
+
+ * tmac/an-old.tmac (TS): Set the usekeeps register used by tbl
+ to the logical complement of the man(7) cR (continuous
+ rendering) register.
+
+ * tmac/tests/an-old_TS_do_not_keep_tables_when_cR_set.sh: Add
+ regression test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+ Problem appears to date back to the introduction of continuous
+ rendering in groff 1.17 (3 May 2001).
+
+ Fixes <https://savannah.gnu.org/bugs/?57665>.
+
+2020-10-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (simple_entry::position_vertically):
+ (block_entry::position_vertically):
+ (table::determine_row_type):
+ (printfs): Update assertions to indicate what actually went
+ wrong.
+
+2020-10-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/node.cpp: Make diagnostics slightly more
+ informative in unusual error cases.
+ (real_output_file::~real_output_file): If ferror() reports error
+ status on a stream say that, instead of "error writing". If it
+ does not, but fflush() fails on the stream, describe the flush
+ as failing, and use strerror() since fflush() sets errno. If
+ pclose() fails, say that we were unable to close a pipe instead
+ of repeating the name of the C library function to the user, who
+ might not be a C programmer. Report strerror() in this case and
+ for a failing fclose().
+ (real_output_file::flush): Repeat updated fflush() logic from
+ previous function.
+
+2020-09-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (register setup): Make interaction of \n[C]
+ register and HTML output more clear in code and comments.
+
+2020-09-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/regression_savannah_59202.sh: Reduce test
+ case.
+
+2020-09-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Fix SEGV arising from recursing destructor.
+
+ * src/roff/troff/node.h (output_file): Add class member
+ `is_dying` to track whether destructor has already been entered;
+ initialize false.
+ * src/roff/troff/node.cpp (real_output_file::~real_output_file):
+ Set `is_dying` true when destructor entered.
+ * src/roff/troff/div.cpp (cleanup_and_exit): Only delete
+ `the_output` object if it is not already being destroyed.
+ * src/roff/groff/tests/regression_savannah_59202.sh: Add test.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ Thanks to "hackerb9" for reporting the problem. Problem appears
+ to date back to groff 1.02 (June 1991) or earlier.
+
+ Fixes <https://savannah.gnu.org/bugs/?59202>.
+
+2020-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (register setup): Condition decisions on
+ \n[an-html] rather than a string comparison using \*[.T]; that
+ is what the register is there for.
+
+2020-09-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/andoc.tmac: Save alias to .ne request.
+ (reload-doc): Restore .ne request, which an-old.tmac meddles
+ with if continuous rendering is used. (The meddling ultimately
+ dates back to 777e2d262862621966c18d685a000cc88f432bc6, 26
+ January 2002, which simply redefined .ne as empty on nroff
+ devices.)
+
+2020-09-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Ship tests in distribution archive.
+
+ * src/preproc/preconv/preconv.am (EXTRA_DIST):
+ * src/roff/groff/groff.am (EXTRA_DIST):
+ * src/roff/nroff/nroff.am (EXTRA_DIST):
+ * tmac/tmac.am (EXTRA_DIST): Add
+ $({preconv,groff,nroff,tmac}_TESTS), as appropriate.
+
+ * src/roff/nroff/nroff.am (MOSTLYCLEANFILES): Stop adding
+ $(nroff_TESTS), which can only have unhappy consequences.
+
+2020-09-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am: Fix problem with recently-relocated mdoc macro
+ files not ending up in the right place in the distribution
+ archive.
+ (dist_tmac_DATA): Also include $(TMACUNSTRIPFILES).
+ (TMACMDOCSTRIPFILES): Rename from $(TMACMDOCFILES). Update
+ interpolation sites.
+ (TMACMDOCUNSTRIPFILES): New variable holds mdoc macro files in
+ the tmac/mdoc subdirectory. Stop adding these files to
+ $(TMACUNSTRIPFILES) since those reside in tmac/ directly.
+ (EXTRA_DIST): Add $(TMACMDOCUNSTRIPFILES).
+ ($(TMACSTRIPFILES)): Depend only on $(TMACUNSTRIPFILES).
+ ($(TMACMDOCSTRIPFILES)): Add new rule, much like the foregoing.
+ Depend on $(TMACMDOCUNSTRIPFILES) and copy files into tmac/mdoc.
+ (dist-hook, tmac-dist-hook): Remove; they no longer do any
+ distinct work.
+
+ Fixes <https://savannah.gnu.org/bugs/?59186>.
+
+2020-09-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/tbl/table.cpp (table::init_output):
+ (table::compute_expand_width):
+ (table::compute_separation_factor): Use consistent format for
+ diagnostic messages.
+ - Do not spread a single diagnostic across multiple lines.
+ - Report messages in GNU Coding Standards format, that is:
+ - Report the name of the file the problem is in...
+ - ...then the line number...
+ - ...then the diagnostic severity level...
+ - ...then the specific problem.
+
+2020-09-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Emit warnings when configuration registers
+ are ignored when producing output for HTML.
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (an-p-footer): Define \*[an-page-string] if
+ (1) the output device is not HTML; (2) \n[X] has been defined;
+ and (3) the page number has not yet reached the threshold
+ defined by \n[X].
+
+ Fixes <https://savannah.gnu.org/bugs/?59179>.
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for Savannah #59179.
+
+ * tmac/tests/an-old_X_register_works.sh: Do it.
+ * tmac/tmac.am (tmac_TESTS): Run it.
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac:
+ * tmac/doc.tmac-u: Emit more informative fatal diagnostic when
+ installed version of groff is too old. Report the version found
+ and explicitly note consequent abort.
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am: Regenerate stripped macro files upon changes to
+ any of their unstripped counterparts. This is crude, but they
+ weren't being regenerated at _all_. Defeating a central
+ function of Make is bad.
+ (TMACUNSTRIPFILES): New variable. Populate with -u files.
+ ($(TMACMDOCFILES) $(TMACSTRIPFILES)): Depend on
+ $(TMACUNSTRIPFILES).
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac:
+ * tmac/andoc.tmac:
+ * tmac/doc.tmac-u:
+ * tmac/s.tmac: Clarify fatal diagnostics by informing the user
+ that the program is aborting.
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/www.tmac.in: Revise diagnostic message handling.
+ (www:fatal): New macro handles fatal macro usage errors.
+ (www:lenstr): Use www:fatal instead of writing to standard error
+ with .tm (rather than www:error) and then calling .ab without
+ arguments, which produces an unsightly "User Abort." message.
+ (www:lenstr):
+ (www:splitstr):
+ (www:url_breaks):
+ (www:url_breaks_split):
+ (LINKSTYLE): Report expected number of arguments in diagnostics.
+ (www:fontstyle): Shorten diagnostic message.
+
+2020-09-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/div.cpp
+ (top_level_diversion::clear_diversion_trap): Fix copy and paste
+ error in diagnostic, which wrongly reported that a top-level
+ diversion trap couldn't be "set" when "clear"ed was meant.
+
+2020-09-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/grn/main.cpp (conv):
+ * src/roff/troff/node.cpp (suppress_node::tprint): Remove
+ embedded newlines from diagnostic messages.
+
+2020-09-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Move setup of remaining rendering option
+ parameters (registers C, D, P, and X) to end of file.
+
+2020-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Move setup of rendering parameter
+ registers IN and SN from here to the end of the file. Update
+ comments.
+
+2020-09-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Drop \*[an-empty] string. This string is
+ documented as preventing "looping" (presumably infinitely) if
+ someone calls a two-font macro with an inconvenient parameter;
+ the example shown is ".RB ( \\ )". This string was being
+ interpolated at the end of each argument pair to the two-font
+ macros BI, BR, IB, RB, and RI. This code dates back to groff
+ 1.10 (dc5351364982f78f8c630f1e856d692d4a82666f, 26 November
+ 1995). Did you notice a two-font macro missing? It was: IR.
+ Using it with the proscribed input fails to cause a problem; the
+ others similarly operate just fine when the empty string
+ interpolation is removed. Presumably at some point in the past
+ 25 years, this workaround became unnecessary.
+ (BI, BR, IB, RB, RI): Remove interpolations of string.
+
+ * tmac/tests/an-old_avoid_two-font_denial_of_service.sh: Add
+ regression test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2020-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Refactor continuous rendering handling.
+ Relocate set up of \n[cR] to end of file in parallel with other
+ rendering parameter management. Instead of conditionally
+ defining the an-ne and an-bp macros, define them
+ unconditionally. Also define them with .de instead of .de1,
+ since they will only be called within the contexts of macros
+ that are already running with compatibility mode off (i.e., the
+ public interface macros). Relocate definition of an-end to sit
+ alongside these other continuous-rendering-mode specific macros
+ and avoid a forward reference and scattering of \n[cR]
+ conditionals around the file.
+ (an-set-up-continuous-rendering): Define new macro to move
+ macros (and end macro) into place. Call it at the end of the
+ file only if cR eventually winds up being true.
+
+2020-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Improve name space management. Rename .ne
+ request to .an-ne instead of outright clobbering it (and in
+ parallel with .an-bp). Rename 'an-ne' register to 'an-need' to
+ prevent confusion with renamed request.
+
+2020-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Drop .ll hack for LL register.
+
+ Drop the .ll hack for setting the line length on nroff devices.
+
+ Once upon a time, the only way to get man pages to render on a
+ terminal at any width other than the nroff default of 65n was to
+ put an .ll request into the page--a mortal sin against
+ portability--or your man(1) program could sneak such a request
+ into nroff's input stream.
+
+ Also, long ago, John Eaton of UT Austin wrote a man(1) program.
+ In a few years this implementation branched into two lines of
+ development, which I'll call man-db man (Wilford/Polacco/Watson)
+ and another, Brouwer/Lucifredi man, which as of this writing saw
+ its last release in 2011 (1.6g).
+
+ The man and mdoc macros of groff 1.18 (July 2002) introduced an
+ LL register to configure the line length, respecting an -rLL
+ command-line option. The source change was made by Werner
+ Lemberg on 3 May 2002 and Colin Watson updated man-db man(1)--on
+ the same day!--to synthesize the option when calling groff.
+
+ Later, in August 2005, Keith Marshall, a user of version 1.5m of
+ Brouwer/Lucifredi man(1), which did not set the LL register,
+ suggested that the existing .ll setting (technically, the value
+ of \n[.l], the only way the result of an .ll request could be
+ introspected) be honored in the absence of the LL register.
+ However, it is impossible to distinguish a user-supplied ".ll
+ 65n" request from nroff's default setting, which was in that
+ case overridden to the modern default of 78n.
+
+ And so, in what is now git commit
+ f9d5df4aebd3d834b4084ffefa52a115e00dce38 (1 September 2005), it
+ was done.
+
+ This led to (1) surprising behavior for users accustomed to old
+ methods and desirous of the nroff default and (2) lengthy
+ apologia in groff source code comments and the groff_man(7) man
+ page.
+
+ Ironically, Brouwer/Lucifredi man(1) had already added support
+ for the LL register by the time of its 1.6 release two months
+ earlier (20 June 2005). (Curiously, it did so similarly to the
+ old .ll hack, by injecting an '.nr LL' request into groff's
+ input stream, rather than using the -r command-line option.)
+ Moreover, Marshall and the groff list were already aware of
+ this, but the change was accepted anyway because version 1.6
+ was "too new"! (Distributions are slow sometimes, true...)
+
+ Let us survey the field in 2020. man-db man(1) has supported
+ the LL register for eighteen years, and Brouwer/Lucifredi man(1)
+ for fifteen. Heirloom Doctools's man macros set the line length
+ to 78n on nroff devices unconditionally. mandoc(1) similarly
+ also always formats for 78 columns on terminals. groff's
+ mdoc(7) macros grew support for LL in parallel with man(7) in
+ 2002 and never added the \n[.l] introspection at all.
+
+ There no longer seems to be any reason to preserve this hack.
+
+ * tmac/an-old.tmac (initialization): Drop complex setup of LL
+ register.
+ (TH): Relocate line length reset; no behavior change.
+ (after .mso man.local): Initialize LL only if the user hasn't;
+ use device default in troff mode, and 78n in nroff mode.
+
+ * tmac/groff_man.7.man.in (Options) <-rLL>: Stop documenting .ll
+ hack.
+
+ Fixes <https://savannah.gnu.org/bugs/?58992>.
+
+2020-09-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_LL_init_sanely.sh: Add test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2020-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/xditview/GXditview.ad: Widen the default geometry
+ to accommodate the width of a page rendered using the X100-12
+ device. Display devices these days have much greater horizontal
+ resolution than they did 20 years ago.
+
+2020-09-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Use correct point size default for
+ X{75,100}-12 devices.
+
+2020-09-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/mdoc/doc-common-u (doc-prepare-section-heading): New
+ macro defines new string doc-sec-head to enable recognition of
+ mixed-case section headings in mdoc man pages. For example,
+ "Name" and "Description" are now recognized in addition to
+ "NAME" and "DESCRIPTION".
+ (doc-section-{name,synopsis,library,description,see-also,files,
+ authors}): Redefine strings to be mixed-case. Add trailing
+ comment guard per recommended best practice.
+ (Sh): Call doc-prepare-section-heading instead of
+ doc-first-parameter, and compare predefined section strings to
+ doc-sec-head instead of doc-str-dfp.
+
+ * tmac/tests/doc-accept-mixed-case-section-headings.sh: Test it.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+ * tmac/tests/doc-smoke-test.sh: Use mixed-case section headings.
+
+2020-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * makevarescape.sed: Use \[] form of special character escapes.
+
+ The only man page we have that doesn't turn compatibility mode
+ off (neqn) also doesn't use any sed-substituted patterns where
+ characters replaced by a \[] special character escape form are
+ likely to be used.
+
+ The @g@ command prefix is the main avenue for intrusion of such
+ escapes, but I think it improbable that many people are going to
+ include apostrophes, double quotes, carets, grave accents, or
+ tildes in the command prefix; some or all of these will pick
+ fights with the shell and require quoting that we don't
+ represent in man page text anyway.
+
+ On top of that, neqn is largely a stub page.
+
+ If it's a problem, a better fix than reverting this is to make
+ neqn switch out of compatibility mode like our other man pages.
+
+2020-09-03 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * FOR-RELEASE: Start a release checklist. We probably should
+ have done the afmtodit.tables update for 1.22.4. There were no
+ AGL changes and the Unicode decomposition changes were limited
+ to additions for Balinese (11), CJK compatibility ideographs
+ (5), and 13 code points outside the Basic Multilingual Plane.
+
+2020-09-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.tables: Regenerate using Unicode
+ 13.0.0.
+
+2020-09-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ make-afmtodit-tables: Automate AGL reassignments.
+
+ Automate the procedure done manually in
+ b72b91e85e80a69304e6569db535bcca0e0ecab5 (9 April 2007), so that
+ it doesn't regress when we regenerate afmtodit.tables.
+
+ * src/utils/afmtodit/make-afmtodit-tables: Do it.
+ * src/utils/afmtodit/afmtodit.tables: Regenerate it.
+
+2020-09-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/groff.1.man (Options) <-E>:
+ * src/roff/troff/troff.1.man (Options) <-E>: Document that -E
+ implies -Ww.
+
+ Fixes <https://savannah.gnu.org/bugs/?59030>.
+
+2020-09-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_char.7.man: Revise glyph descriptions.
+
+ Fixes <https://savannah.gnu.org/bugs/?59031>.
+
+2020-09-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tty.tmac: Define fallback glyphs for Bell System logo
+ {non-breaking adjustable space} and radical extension and square
+ root extension (both dummy characters '\&') to suppress warnings
+ from groff_char(7). As none of these are encoded in Unicode it
+ seems unlikely they will become supported soon.
+
+2020-08-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/troff.1.man (Options) <-I>: The current working
+ directory is searched _last_, not first, unless the order is
+ altered with "-I .".
+
+ * src/roff/groff/groff.1.man (Options) <-I>: Rearrange
+ description.
+
+2020-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Update mdoc package to honor HY register as man does now, per
+ suggestion from Colin Watson. Recognize but ignore AD string
+ for man package compatibility (essentially "reserving" it),
+ though mdoc intentionally does not permit configuration of
+ adjustment.
+
+ * tmac/mdoc/doc-ditroff-u:
+ * tmac/mdoc/doc-nroff-u: Do it.
+
+ * tmac/mdoc/doc-common-u: Initialize \n[doc-hyphen-flags] from
+ \n[HY].
+
+ * tmac/groff_mdoc.7.man \
+ (FORMATTING WITH GROFF, TROFF, AND NROFF): Document it.
+
+2020-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Reset inter-word and inter-sentence
+ spacing to default with each new page rendered.
+
+ {To observe the problem prior to this change,
+ $ groff -mandoc groff_mmse.7 $any_other_man_page
+ groff_mmse(7) loads sv.tmac, which changes the sentence
+ spacing.}
+
+2020-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * PROBLEMS: Undocument the problem with test-groff and mdoc.
+ It's resolved.
+
+ Fixes <https://savannah.gnu.org/bugs/?51073>.
+
+2020-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am (NORMALFILES, MDOCFILES): Drop unused variables.
+ ($(TMACMDOCFILES) $(TMACSTRIPFILES)): Scrub trailing whitespace.
+ Wrap long line.
+
+2020-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ mdoc: Relocate within build tree.
+
+ The (modern) mdoc macro package has not been usable within the
+ build tree, unlike the others. This makes it more troublesome
+ to test changes, and frustrates deploying our test
+ infrastructure against it. Re-arrange the build tree to
+ resemble an installation tree closely enough for the macro
+ package to load.
+
+ * tmac/doc-common-u:
+ * tmac/doc-ditroff-u:
+ * tmac/doc-nroff-u:
+ * tmac/doc-syms-u: Rename to...
+ * tmac/mdoc/doc-common-u:
+ * tmac/mdoc/doc-ditroff-u:
+ * tmac/mdoc/doc-nroff-u:
+ * tmac/mdoc/doc-syms-u: ...these.
+
+ * tmac/tmac.am (TMACMDOCFILES): Look for files in tmac/mdoc.
+ ($(TMACMDOCFILES)): Create tmac/mdoc in build tree.
+
+ Fixes <https://savannah.gnu.org/bugs/?51003>.
+
+2020-08-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test for usable in-tree mdoc.
+
+ * tmac/tests/doc-smoke-test.sh: Add test.
+ * tmac/tmac.am (tmac_TESTS): Run test.
+
+2020-08-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_TH_repairs_ad_damage.sh:
+ * tmac/tests/an-old_TH_repairs_hy_damage.sh: Add tests.
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2020-08-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Set hyphenation mode to user preference
+ with each new page rendered, in case a hostile page meddled with
+ '.hy' or '.nh'.
+ (after .mso man.local): Relocate setting of default hyphenation
+ mode here (instead of just before .mso man.local). Eliminate
+ conditional on \n[an-html]; this doesn't matter because
+ grohtml(1) doesn't support hyphenation anyway. If it does learn
+ to hyphenate, we should treat it the same as other output
+ devices in any case. Add comment explaining why we fall back to
+ different defaults depending on \n[cR].
+
+2020-08-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (TH): Set adjustment to user preference with
+ each new page rendered, in case a hostile page meddled with
+ '.ad' or '.na'.
+ (after .mso man.local): Set the default adjustment mode only if
+ a -d option or man.local did not. Also do the same for the HF
+ string; relocate its definition here and make it similarly
+ conditional. Also update comment on setting of CS and CT
+ registers and style their conditionals consistently with the
+ rest of the package.
+
+ * tmac/groff_man.7.man.in (Strings) <\*(AD>: Document it.
+ (Strings) <\*(HF>: Parallelize language with new \*(AD.
+ (Options) Expand introductory sentence to discuss -d and -r
+ options.
+ (Options) <-dAD>: Document default and likely values. Nobody
+ right-justifies or centers man page text; send the curious to
+ groff(7) for '.ad' request documentation.
+ (Options) <-dHF>: Document default and steer people to groff(7)
+ for '.ft' request documentation.
+
+2020-08-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac (set-an-margin): Rename...
+ (an-set-margin): ...to this. It was the only package-internal
+ register, macro, string, or diversion that wasn't named using
+ the "an-*" schema.
+ (TH, SH, SS): Update call sites.
+
+2020-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (.ME, .UE): Restore hyphenation after
+ "punctuation" arguments have been output. The next token will
+ always be a space node, the end of the document, or similar.
+
+ * tmac/tmac.am (tmac_XFAIL_TESTS): Mark the punctuation
+ hyphenation tests as expected to fail, because they now do.
+
+2020-08-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/ps.tmac: Define ordinary hyphen-minus as fallback
+ character for U+2011 (non-breaking hyphen). Prompted by
+ discussion with Dave Kemper in Savannah #58390.
+
+2020-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Fix hyphenation bug. The UR/UE and MT/ME macros were much too
+ aggressive about turning hyphenation off. Disable it only when
+ writing the actual URL or email address.
+
+ * tmac/an-ext.tmac (.MT, .UR): Stop disabling hyphenation here.
+ (.ME, .UE): Disable hyphenation right before output of
+ URL/address; restore it right before output of supplementary
+ arguments ("punctuation").
+
+ * tmac/tests/an-ext_ME_punct_hyphenates.sh:
+ * tmac/tests/an-ext_MT_body_hyphenates.sh:
+ * tmac/tests/an-ext_UE_punct_hyphenates.sh:
+ * tmac/tests/an-ext_UR_body_hyphenates.sh: Test behavior.
+
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2020-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Adapt to the fact that \: reënables hyphenation. Rename
+ "hyphenless [discretionary] break" to "non-printing break point"
+ in documentation.
+
+ * doc/groff.texi (Manipulating Hyphenation): Rename "hyphenless
+ break" to "non-printing break point". Clarify that it is the
+ soft hyphen glyph, not necessarily a hyphen, that is ordinarily
+ written to the output on hyphenation breaks. Note that the
+ remainder of a word after \: is subject to hyphenation as
+ normal. Note (new) '\:\%' idiom for getting what people will
+ want at least some of the time. Update example to use it.
+ * makevarescape.sed: Insert \% after we insert \: to rewrite
+ slashes in filenames, to protect later portions of the filename
+ from hyphenation.
+ * man/groff.7.man (Escape Sequences/Escape short reference):
+ Rename "hyphenless break" to "non-printing break point".
+ * man/groff_diff.7.man (Language/Escape sequences): Resync with
+ our Texinfo manual.
+ * tmac/groff_man.7.man.in (Description/Hyperlink and email
+ macros): Rename "hyphenless break" to "non-printing break
+ point".
+
+2020-08-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ documentation: Re-christen 'ESCAPE_AMPERSAND'.
+
+ s/zero[- ]width space character/non-printing input break/
+
+ * doc/groff.texi (Requests): Rename. Update conceptual index
+ entries; retain old name (with an appended "[sic]") to aid
+ readers accustomed to it.
+ (Ligatures and kerning): Update conceptual index entries.
+ Supply context ("effect on kerning").
+ (Drawing requests): Update conceptual index entries. Supply
+ context ("effect on '\l'").
+ * man/groff.7.man (Description): Rename in macro-advice-writing
+ shorthand.
+ (Escape Sequences/Escape short reference): Rename.
+ * tmac/groff_man.7.man.in (Description/Command synopsis macros
+ [style]: Rename.
+ (Description/Portability) [style]: Rename.
+ * tmac/groff_mdoc.7.man (TROFF IDIOSYNCRASIES/Macro Usage):
+ Rename.
+ (TROFF IDIOSYNCRASIES/Other Possible Pitfalls): Rename.
+
+2020-08-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man.in (Description/{Document structure
+ macros <.TH>, Horizontal and vertical spacing}): Fix erroneous
+ use of "flush left". The current uses were introduced by me,
+ but the page has borne incorrect uses of it as far back as 1999
+ {in the description of .TP}. Simply say "with no indentation"
+ instead.
+
+2020-08-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man.in (Description/Number registers): Inform
+ reader that registers can be set in man.local file and
+ cross-reference it.
+ (Files/*/man.local): [style] Supply example of man.local
+ customizations, prompted by recent discussions on groff,
+ linux-man, and man-db mailing lists.
+
+2020-08-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tmac.am: Use a stamp file for m4 keyword check.
+ (M4CHECK): Add stamp file variable.
+ ($(M4CHECK)): Create stamp file if check succeeds.
+
+2020-08-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Split groff_man(7) into two pages; one a (relatively) terse
+ reference and the other a tutorial and style guide. Both are
+ generated from the same source, which is processed by m4 into
+ two man page sources.
+
+ * tmac/groff_man.7.man: Rename...
+ * tmac/groff_man.7.man.in: ...to this.
+
+ * tmac/groff_man.7.man.in: Add m4 directives and define macros.
+ Protect m4 keywords in English from unintended expansion (this
+ affected the word "include"). Add new .TH and apropos lines for
+ style guide. Convert marker comments into m4 macros for content
+ control. Uncomment material intended only for basic reference
+ page.
+
+ * tmac/tmac.am (man7_MANS): Add groff_man_style.7.
+ (EXTRADIST) Add groff_man.7.man.in.
+ (MOSTLYCLEANFILES): Add m4-generated man page sources
+ tmac/groff_man{,_style}.7.man.
+ Add targets to generate those same two pages from the renamed
+ file. Add target to grep the page for unprotected English m4
+ keywords and halt the build if they are found. Make generation
+ of those pages depend on this new target.
+
+2020-08-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man: Add material on hooks and encoding.
+ (Description, ./Deprecated features): Stop identifying .PT and
+ .BT as "deprecated"; they shouldn't ever be called in man pages,
+ but that has never been their intention.
+ (Description): Identify character encoding and line-ending
+ requirements (tutorial/style-guide material).
+ (Description/Hooks): Add new subsection to house descriptions of
+ .PT and .BT. Add mnemonic expansions for both.
+
+2020-07-31 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Control Characters): Incorrect claims were
+ made. Double quotes can indeed be used to enclose arguments to
+ string interpolations. The statement about a leading " in a
+ string definition (or appendment with .as) was stated too
+ generally. The leading quote is not necessary to include
+ leading tab characters, which can be input as-is, even in
+ compatibility mode.
+
+2020-07-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Requests/Request short reference/.ft): Fix
+ some outright damage in the description of the request; the
+ escape sequences that are synonymous with a nullary .ft had been
+ wrongly removed.
+
+2020-07-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meintro.me:
+ * doc/meref.me:
+ * tmac/e.tmac-u: Remove postal address for Eric Allman. It's
+ probably decades out of date. Adjust footnote symbols. Thanks
+ to Dave Kemper for the bug report and the patch. Fixes
+ <https://savannah.gnu.org/bugs/?58726>.
+
+2020-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Migrate macro packages from font CW to CR. The font name "CW"
+ {"constant-width"} is a legacy item we can dispose of (except
+ for the DVI device, which also has CWI for "constant-width
+ italic"), and much of the groff codebase already did starting
+ with commit 0de1d6d79cdb959ffa7dac3af77c2a36ef31873f {October
+ 2017}. Courier is available in the usual four styles {roman,
+ bold, italic, bold+italic}.
+
+ * tmac/an-ext.tmac (.EX): Set font to R, not CW. The existing
+ .ft request was somewhat redundant with the '.do fam C'
+ immediately before, which set the font family to Courier.
+ * tmac/s.tmac (.UC): Use font CR, not CW.
+
+2020-07-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tty.tmac: Stop suppressing nonexistent font warning.
+ Prompted by a 2017 suggestion and patch from Bjarni Ingi
+ Gislason. Documents and macro packages that want to change the
+ font family should do so in awareness that this is meaningless
+ on terminal (nroff) devices (and -Thtml as well).
+
+ Fixes <https://savannah.gnu.org/bugs/?51364>.
+
+2020-07-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man (.PP, .LP, .P): Fix error: these macros
+ do not reset the left margin.
+
+2020-07-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Strings): Document behavior of .ds request
+ when only one argument is supplied. (The string is defined as
+ empty.) Thanks to Dave Kemper for the report and the patch.
+
+ Fixes <https://savannah.gnu.org/bugs/?58746>.
+
+2020-07-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Using Symbols): Fix error in .rfschar
+ description, which should refer to "font f" rather than "glyph
+ f". Thanks to Dave Kemper for the report and the patch.
+
+ Fixes <https://savannah.gnu.org/bugs/?58767>.
+
+2020-07-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man (.EE, .YS): Fix error: refer to "initial
+ hyphenation setting" instead of "previous hyphenation mode".
+ Incidentally, this fact points out why putting ".hy 0" or ".nh"
+ in your man page is futile.
+
+2020-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Requests/Request short reference): Fix error
+ in description of .hc; it changes the hyphenation character
+ rather than supplying an additional one.
+
+2020-06-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Groff Options): Remove editorial comment about
+ '-a' option being "useless". It isn't. Update example for
+ contemporary systems (like Debian) and to reflect the fact that
+ the GNU troff(1) man page needs to be preprocessed with tbl(1).
+ (Invoking grotty): Recast discussion of -c option, importing
+ much language from grotty(1) page rewrite from a year ago. Add
+ program index entries for col, more, and ul. Fix transposition
+ error in ISO document number.
+
+ * src/devices/grotty/grotty.1.man (Description/Legacy output
+ format): Make slight wording changes prompted by content of
+ parallel section in our Texinfo manual.
+
+ * src/roff/groff/groff.1.man (Options/-a): Parallelize with
+ first sentence of corresponding material in our Texinfo
+ manual.
+
+ * src/roff/troff/troff.1.man (Options/-a): Parallelize with
+ our Texinfo manual.
+
+ Fixes the rest of
+ <https://savannah.gnu.org/bugs/?55278>.
+
+2020-06-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff_diff.7.man (Language/Long names): Fix error: groff
+ adds three new requests with short names, not two. List them in
+ an adjacent comment.
+
+2020-06-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-ext.tmac (.ME, .UE): Fix portability issue. While
+ widely supported, the \$* escape is not documented in CSTR #54.
+ If groff is not the typesetter, append macro arguments using
+ \$1, \$2, ..., \$9 instead.
+
+2020-05-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * man/groff.7.man (Numerical Expressions): Fix error: negative
+ expressions evaluate false, not true as was implied.
+ Parallelize descriptions with our Texinfo manual and
+ groff_diff(7) (in abbreviated form).
+
+2020-05-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Manipulating Filling and Adjusting): Fix error
+ in code sample: missing 'n' in number register interpolation.
+
+2020-05-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/preconv/tests/smoke-test.sh: Make BOM detection
+ override less hinky (i.e., use more normative input). Add tests
+ for all five detected BOMs.
+
+2020-05-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/env.cpp (space_size): Prevent assertion
+ failure. If an argument to the .ss request is negative, throw a
+ range warning and ignore it.
+ * src/roff/groff/tests/regression_savannah_58337.sh: Add test.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ Fixes https://savannah.gnu.org/bugs/?58337.
+
+2020-05-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Update documentation of .ss request.
+
+ * doc/groff.texi (Manipulating Filling and Adjusting): Rewrite
+ documentation of .ss request and \n[.ss] and \n[.sss] escapes.
+ Note that negative values are not permitted in either argument
+ to .ss. Use new terminology, "minimal inter-word spacing" and
+ "additional inter-sentence spacing" for clarity. Clarify that
+ additional inter-sentence spacing is only used when the output
+ line is not full when the end of a sentence occurs. Add index
+ nodes to help readers find discussion of details of spacing
+ between words and sentences. Move discussion of differences
+ from AT&T troff to section "Implementation Differences". Update
+ example to more closely resemble a real-world case, use second
+ argument to .ss request, and eliminate hackish use of .nop
+ request.
+
+ * man/groff_diff.7.man (New number registers): Recast in
+ parallel with the foregoing.
+
+ * man/groff.7.man (Read-only registers): Use new terminology and
+ describe \n[.ss] and \n[.sss] in meaningful terms, not by
+ reference to arguments to the .ss request (which wasn't even
+ accurate, because these registers have default values).
+
+ Fixes https://savannah.gnu.org/bugs/?54101.
+
+2020-05-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Undocument plans to support end-of-file GNU Emacs coding tags.
+
+ * src/preproc/preconv/preconv.cpp (check_coding_tag): Update
+ comments.
+ (detect_file_encoding): Alter debugging output so it's easier to
+ grep and verify Emacs coding tag detection.
+
+ * src/preproc/preconv/preconv.1.man (Bugs): Delete; its sole
+ concern was the absence of this feature.
+ (Usage): Document detection algorithm in more detail. Note
+ which detection methods don't work on unseekable input (pipes).
+ Offer recommendations for those struggling with encoding
+ detection.
+ (Usage/Coding Tags): Stop manipulating line adjustment. Use
+ hyphen-minus (\- escape) characters in coding tag names, since
+ they are literals that one might copy and paste. Stop
+ referencing XEmacs, whose development appears moribund.
+ (See Also): Add cross-references to iconv(3) and locale(7) man
+ pages.
+
+ * src/preproc/preconv/tests/smoke-test.sh: Test each of the
+ steps in the detection algorithm.
+ * src/preproc/preconv/preconv.am: Run test.
+ (preconv_TESTS): Add new variable.
+ (TESTS): Append $(preconv_TESTS).
+
+2020-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Format usage message with
+ full capitals for parameters, and break out -v option in a
+ separate "synopsis".
+
+2020-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/util/BuildFoundries.pl: Stop throwing away
+ diagnostics from afmtodit. This results in only one extra line
+ of build output:
+
+ both Upsilon1 and Upsilon map to *U at .../afmtodit line
+ 6413.
+
+2020-05-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Correct documentation of .pm request.
+
+ * man/groff.7.man (Requests/Request short reference): The .pm
+ request's classical behavior was described instead of groff's,
+ and omitted mention of strings and diversions; correct it.
+
+ * man/groff_diff.7.man (Implementation Differences): Document
+ this difference between AT&T troff and groff.
+
+ * doc/groff.texi (Debugging): Relocate description of .pm
+ behavioral difference...
+ (Implementation Differences): ...hither.
+
+2020-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/addftinfo/addftinfo.cpp (usage):
+ * src/utils/tfmtodit/tfmtodit.cpp (usage): Add "usage:" prefix
+ to messages documenting auxiliary modes of invoking the program.
+ The output doesn't look right without one, and it feels
+ dishonest to not document the relevant options (-v, --version)
+ disjunctively. I'm trying to strike a balance between the
+ ultra-terse BSD approach and the ultra-garrulous GNU one (see,
+ e.g., ls(1)). Likely both camps will be unhappy. :-/
+
+2020-04-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/tfmtodit/tfmtodit.cpp (read_map): Report invalid
+ character code from map file in diagnostic.
+ (main): Report invalid skew character position in diagnostic.
+ Explicitly report insufficient arguments in addition to usage
+ message. Lift invariant computed expressions out of loops (more
+ to shorten long lines than because I think the compiler won't
+ figure it out). Give content to "impossible assertion".
+ (tfm::load): Capitalize TFM initialism in diagnostics.
+ (usage): Use full capitals for parameters as is conventional.
+ Document disjunction of -v/--version flag from other
+ invocations.
+
+2020-04-29 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/addftinfo/addftinfo.cpp (usage): Add overloaded
+ version that accepts a constant string argument, which emits the
+ argument as a diagnostic and then calls usage().
+ (main): Add diagnostics to usage message where the problem is
+ clear. Add comment explaining why it sometimes isn't.
+ (usage): Refactor main usage message (which prints the summary)
+ to report the actual names of the accepted option arguments
+ instead of just "-param", which is not literally accepted.
+
+ Sort param_table alphabetically for use by the usage message.
+
+2020-04-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Delete groffer.
+
+ Per discussion on the groff development mailing list, there is
+ no desire to retain the maintenance of this portion of the groff
+ distribution.
+
+ See
+ <https://lists.gnu.org/archive/html/groff/2020-04/msg00051.html>
+ et seq.
+
+ * contrib/groffer: Recursively delete.
+
+ * Makefile.am:
+ * arch/mingw/mingw.am: Stop building groffer.
+
+ * m4/groff.m4 (GROFF_GROFFERDIR_DEFAULT):
+ (GROFF_GROFFERDIR_OPTION): Delete; remove "--with-grofferdir"
+ configuration option.
+ * configure.ac: Stop calling these macros.
+
+ * MANIFEST:
+ * NEWS:
+ * PROJECTS:
+ * TODO:
+ * contrib/chem/chem.1.man:
+ * contrib/chem/examples/122/README.txt:
+ * contrib/chem/examples/README.txt:
+ * contrib/glilypond/glilypond.1.man:
+ * contrib/gperl/gperl.1.man:
+ * contrib/gpinyin/gpinyin.1.man:
+ * contrib/groff_filenames/groff_filenames.5.man:
+ * man/groff_font.5.man:
+ * man/roff.7.man:
+ * src/roff/groff/groff.1.man:
+ * src/roff/grog/grog.1.man:
+ * src/utils/addftinfo/addftinfo.1.man:
+ * tmac/groff_trace.7.man: Delete references to groffer.
+
+2020-04-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/include/curtime.h: #include <time.h> if we're returning
+ a time_t from current_time().
+
+ * src/libs/libgroff/curtime.cpp (current_time): Quote
+ $SOURCE_DATE_EPOCH variable content in diagnostics produced due
+ to bad input since it's under user control and could have all
+ kinds of bogosity in it (like whitespace).
+
+2020-04-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * **/*.{man,tmac}: Save compatibility mode robustly.
+
+ Use new \n[.cp] register to save compatibility mode.
+
+ Use register names based on the filename (at the source
+ maintenance level) to avoid clobbering other files' saved
+ compatibility modes.
+
+ * tmac/html.tmac: Eliminate test of saved-compatibility
+ register by moving its body inside the block where compatibility
+ mode is off. This is the only part of this changeset that was
+ not automated.
+
+ Fixes <https://savannah.gnu.org/bugs/?58162>.
+
+2020-04-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Implement new read-only .cp register.
+
+ Within a .do request, \n[.cp] holds the saved value of
+ compatibility mode.
+
+ The register \n[.cp] is specialized and may require a statement
+ of rationale. When writing macro packages or documents that use
+ groff features and which may be mixed with other packages or
+ documents that do not—common scenarios include serial processing
+ of man pages or use of the .so or .mso requests—you may desire
+ correct operation regardless of compatibility mode in the
+ surrounding context. It may occur to you to save the existing
+ value of \n(.C into a register, say, _C, at the beginning of
+ your file, turn compatibility mode off with “.cp 0”, then
+ restore it from that register at the end with “.cp \n(_C”. At
+ the same time, a modular design of a document or macro package
+ may lead you to multiple layers of inclusion. You cannot use
+ the same register name everywhere or you risk “clobbering” the
+ value from a preceding or enclosing context. The two‐character
+ register namespace of AT&T troff is confining and mnemonically
+ challenging; you may wish to use groff's more capacious
+ namespace. However, attempting “.nr _my_saved_C \n(.C” will not
+ work in compatibility mode; the register name is too long.
+ “This is exactly what .do is for,” you think, “.do nr
+ _my_saved_C \n(.C”. The foregoing will always save zero to your
+ register, because .do turns compatibility mode off while it
+ interprets its argument list. What you need is:
+ .do nr _my_saved_C \n[.cp]
+ .cp 0
+ at the beginning of your file, followed by
+ .cp \n[_my_saved_C]
+ at the end. As in the C language, we all have to share one big
+ namespace, so choose a register name that is unlikely to collide
+ with other uses.
+
+ * src/roff/troff/input.cpp (do_request, init_input_requests):
+ Implement it.
+
+ * doc/groff.texi:
+ * man/groff.7.man:
+ * man/groff_diff.7.man: Document it.
+
+ * src/roff/groff/tests/dot-cp_register_works.sh: Test it.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ Enables a fix for
+ <https://savannah.gnu.org/bugs/?58162>.
+
+ Thanks to John Gardner and Ingo Schwarze for the discussion.
+
+2020-04-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Implementation Differences):
+ * man/groff_diff.7.man (New requests): Rewrite description of
+ .do request, and replace example with a more illustrative one.
+
+ * man/groff.7.man (Request short reference): Rewrite description
+ of .do request briefly.
+
+2020-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Implementation Differences): Remove incorrect
+ claim. The .C register cannot be manipulated manually.
+
+2020-04-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/smoke-test_html_device.sh: Simplify
+ charmap test.
+
+2020-04-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ It's too easy for the nroff version to get desynced from the
+ groff version when we're running test cases, leading to spurious
+ results. Make it easier to see a discrepancy.
+
+ * src/roff/nroff/nroff.sh: Call groff with -v or --version when
+ we are called that way. Let test cases tell us to use
+ test-groff as groff with an environment variable.
+
+ * src/roff/nroff/tests/verbose_option_works.sh.in: Rename to...
+ * src/roff/nroff/tests/verbose_option_works.sh: ...this. Check
+ the nroff version being tested against the groff version being
+ wrapped. This exposes a bug; the system groff rather than the
+ build tree groff was being invoked. Refactor. Stop messing
+ with @GROFF_BIN_PATH_SETUP@ (enabling the rename); instead, let
+ test-groff handle that for us. Locate it and export the
+ variable GROFF_TEST_GROFF so nroff can find it. Because we
+ manipulate $PATH to run the tests, the $PATH of an installed
+ groff system will _always_ differ from that used by a build
+ tree; ignore it in the test cases. Dispose of bashisms and set
+ shebang to /bin/sh.
+
+ * src/roff/nroff/nroff.am: Stop generating the above test
+ script. It can now be run as it ships.
+
+2020-04-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Make our assert() C99-conformant.
+
+ groff has its own implementation of the standard C library's
+ assert() macro. It hasn't been updated since C89. C99 requires
+ that the diagnostic emitted by assert() contain the failing
+ expression and name of the function in scope.
+
+ * src/include/assert.h: Add additional pointer to const char
+ arguments to do_assert() and assertion_failed() for function
+ name and stringified expression.
+ (assertion_failed): Update prototype.
+ (do_assert): Accept 'func' and 'msg' parameters and pass them to
+ assertion_failed().
+ (assert): Update macro to collect '__func__' and stringify the
+ expr parameter (as 'msg') and pass them do do_assert().
+ * src/libs/libgroff/assert.cpp (assertion_failed): Rewrite
+ diagnostic to more closely match GNU Coding Style format and
+ also report function and failing expression.
+
+ Example output:
+ troff: ../src/roff/troff/input.cpp:2644: do_request():
+ assertion failed: '0 == "But first, here's a rotten old
+ BBC programme."'
+
+ We have no excuse to assert(0) ever again. Express the
+ invariant that has been violated.
+
+2020-04-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/smoke-test_html_device.sh: Set
+ LC_CTYPE=C.UTF-8 so that byte sequences in the pipelines are
+ handled correctly. Skip the test if the environment doesn't
+ support UTF-8. Thanks to Bjarni Ingi Gislason for the trouble
+ report.
+
+ Fixes <https://savannah.gnu.org/bugs/?58164>.
+
+2020-04-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/html.tmac: Use .do so we correctly load unicode.tmac in
+ compatibility mode.
+
+ Fixes the following problem (wrapped, filenames abbreviated):
+
+ $ echo | ./build/test-groff -C -Thtml >/dev/null
+ troff: backtrace: file '.../groff/build/../tmac/html.tmac':546
+ troff: backtrace: file '.../groff/build/../tmac/troffrc':30
+ troff: .../groff/build/../tmac/html.tmac:546: warning: macro
+ 'ms' not defined
+
+2020-04-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/smoke-test_html_device.sh: Add test.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2020-04-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/regression_savannah_58153.sh:
+ * src/roff/groff/tests/\
+ use_point_size_escape_with_single_digit_arg.sh: Use "set -e" to
+ ensure that multi-test script files don't hide problems. There
+ are arguments against "set -e" (and you can ask Greg Wooledge
+ for all of them), but I'm so used to it from years of writing
+ Debian package maintainer scripts that I feel comfortable with
+ it. It is less verbose than several alternatives (especially
+ having one test script per case).
+
+ * src/roff/groff/tests/string_case_xform_unicode_escape.sh:
+ Update with respect to new failure output (in a comment only,
+ since this is an XFAIL test).
+
+ * tmac/tests/an-old_AT_and_UC_footer_saved_and_restored.sh:
+ Drop unnecessary "|| exit 1" from end of script. Incidentally,
+ this script illustrates an alternative to "set -e".
+
+2020-04-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Rework documentation of .spreadwarn.
+
+ * doc/groff.texi (Debugging):
+ * man/groff.7.man (Request short reference):
+ * man/groff_diff.7.man (New requests): Recast description of
+ .spreadwarn request, some based on suggestions from Dave Kemper.
+ Make more prominent the fact that spreading only applies to
+ adjustment mode 'b'. Document warning type used.
+
+ Fixes half of Savannah #58035.
+
+2020-04-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Require Texinfo 5.0 (February 2013) at a minimum.
+
+ * m4/groff.m4 (GROFF_MAKEINFO): Check for version 5.0 (increased
+ from 4.8). Update diagnostics and comments.
+
+ * INSTALL.extra:
+ * README:
+ * doc/groff.texi:
+ * doc/webpage.ms: Document updated requirement.
+
+ * doc/fixinfo.sh: Delete; it is no longer necessary to work
+ around Texinfo 4.x bugs.
+
+ * doc/doc.am (EXTRA_DIST): Stop shipping fixinfo.sh.
+ (.texi.html): Remove makeinfo < 5.0 version check and consequent
+ execution of fixinfo.sh. Update comment.
+
+2020-04-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Enable backtracing across process/file boundaries when errors or
+ non-ignored warnings are encountered.
+
+ Experimentation reveals that .so, .mso, and .pso requests acted
+ as barriers to backtracing except when explicitly requested with
+ the .backtrace request. Judging by the git history, this
+ behavior dates back to June 1991 or earlier. The intention,
+ according to a source comment, was only to suppress the
+ backtrace output for the line corresponding to the outermost
+ level of the input stack (commonly, a file argument to groff).
+ Unfortunately, that wasn't its only effect.
+
+ This change does result in one additional line of output for
+ each error or (non-ignored) warning when -b is given. However,
+ I regard this as unobjectionable because {1} a backtrace was in
+ fact explicitly requested; and {2} it seems a poor tradeoff to
+ suppress most of the backtrace in some complicated and
+ frustrating cases for the sake of one fewer line of backtrace
+ output in a trivial one.
+
+ Now, backtracing behaves the same no matter what triggers it.
+
+ Fixes Savannah #58153.
+
+ * src/roff/troff/input.cpp (file_iterator::backtrace): Call
+ get_location() for its side effect of rewriting a filename of
+ "-" to "<standard input>", for consistency with other diagnostic
+ messages. (In this class, this member function always returns
+ 1, so ignore the return value. This fact is an essential part
+ of what led to the bug; the conditional
+ p && !p->get_location(0, &f, &n)
+ which appeared in the for loop of input_stack::backtrace() prior
+ to this change would always evaluate to false when a node of the
+ file_iterator class was encountered.)
+ (input_stack::backtrace): Replace member function body with that
+ of input_stack::backtrace_all().
+ (input_stack::backtrace_all): Delete.
+ (backtrace_request): Update the only call site of the above.
+
+ * src/roff/groff/tests/regression_savannah_58153.sh: Add test.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+ * src/roff/groff/tests/string_case_xform_errors.sh: Update
+ regression test to not be confounded by additional line of
+ backtrace output. Remove bashism along the way.
+
+ * doc/groff.texi:
+ * man/groff.7.man:
+ * man/groff_diff.7.man: Update documentation.
+
+2020-04-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Reorganize backtrace output.
+
+ * src/roff/troff/input.cpp (string_iterator::backtrace):
+ Prefix the output with the program name if it is known. In a
+ deviation from the GNU Coding Standards, put the string
+ "backtrace:" immediately next instead of the file and line
+ number; this is because, particularly in cases where the
+ backtrace is most interesting or needed, it will produce
+ multiple lines of output and the common prefix aids visual
+ understanding.
+ (file_iterator::backtrace): As above; also, change prefix for
+ popened nodes in the iterator from "process" to "pipe". This
+ seemed preferable to omitting the information entirely or using
+ an inscrutable sigil like 'f' or 'p'. The advantage is that the
+ output is better aligned--better ergonomics for those who have
+ to cope with a lot of it. Furthermore, output the filename only
+ once.
+
+ Example of old and new output:
+
+ /tmp/inner:2: backtrace: file '/tmp/inner'
+ echo .so /tmp/inner:1: backtrace: process 'echo .so /tmp/inner'
+ /tmp/outer:1: backtrace: file '/tmp/outer'
+
+ troff: backtrace: file '/tmp/inner':2
+ troff: backtrace: pipe 'echo .so /tmp/inner':1
+ troff: backtrace: file '/tmp/outer':1
+
+2020-04-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_size): Add units to diagnostic.
+ This function works only with device-specific basic units
+ internally; users likely think in terms of point size, so add
+ the basic unit suffix "u" to offer a hint about what's going on.
+
+ Example:
+ $ groff -ww >/dev/null
+ \s[10]A\s[-12]B
+ troff: <standard input>:1: warning: point-size escape results in
+ non-positive size -2000u; set to 1u
+
+ On a PostScript device with 1000 basic units to the point, the
+ difference is important and would be confusing without the unit
+ indication.
+
+2020-04-08 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Correct and clarify point size documentation.
+
+ Our Texinfo manual has long documented the request '.ps 0' as
+ restoring the previous point size (just as '\s0' or '.ps' with
+ no argument does), but this is incorrect; since groff 1.02 or
+ earlier (June 1991), the request has not actually worked this
+ way. Instead, '.ps 0' sets the point size to 1 basic unit
+ {though output drivers may clamp this to a higher value}. This
+ behavior is consistent with AT&T troff, Hierloom Doctools troff
+ and, per Ingo Schwarze, Plan 9 troff. (It is, however, not
+ consistent with neatroff.)
+
+ * doc/groff.texi (Changing Type Sizes): Stop claiming that '.ps
+ 0' works like '\s0'. Note that the resulting (computed) point
+ size, not the argument, is clamped. Note that it is
+ non-positive, not negative, point sizes that are clamped to 1u.
+ Add (forward) cross-reference to section where \n[.ps] is
+ defined since it is mentioned here. Move explanation of special
+ handling of zero argument to \s escape description.
+
+ * man/groff.7.man (Request short reference): Explain .ps N
+ independently of \s. Note clamping behavior.
+
+2020-04-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_size): Correctly brace 'else'
+ block.
+
+ * src/roff/groff/tests/\
+ use_point_size_escape_with_single_digit_arg.sh:
+ Check that we get a diagnostic when relying on ambiguous form.
+
+2020-04-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp (read_size): Move special-case
+ interpretation of the '\sN' form of point-size escapes when 'N'
+ is 1, 2, or 3 to compatibility mode (groff -C) only, and throw
+ error diagnostic with suggestion for remedy if encountered.
+
+ Traditionally, '\s36A' is interpreted as "set point size to 36,
+ then emit 'A'". However, only values in the range 10-39 are
+ handled specially; '\s40A' is interpreted as a four-point "0A".
+ This is unlike anything else in *roff grammar; see \*, \$, \f,
+ \F, \g, \k, \m, \M, \n, \V, \Y, and \z.
+
+ To anticipate objections: Why not throw only a warning? Because
+ there isn't a warning category for supported but ambiguous
+ syntax (this behavior of AT&T troff dates back to the mid-1970s
+ but was not documented in the Troff User's Manual until 1992).
+ Why not throw the error outside of compatibility mode too?
+ Because outside of compatibility mode we (now) have an
+ unambiguous parse.
+
+ Background: The Graphic Systems C/A/T phototypesetter (the
+ original device target for AT&T troff) only supported a few
+ discrete point sizes in the range 6..36, so Ossanna
+ special-cased the parser to do what the user must have meant.
+ Kernighan warned of this in the 1992 revision of CSTR #54
+ {§2.3}, and more recently, McIlroy referred to it as a "living
+ fossil".
+
+ See:
+ https://lists.gnu.org/archive/html/groff/2020-03/msg00054.html
+ https://lists.gnu.org/archive/html/groff/2020-04/msg00002.html
+ https://lists.gnu.org/archive/html/groff/2020-04/msg00015.html
+ and follow-ups for discussion.
+
+ * NEWS: Advise users of behavior change and offer guidance.
+
+ * doc/groff.texi:
+ * man/groff.7.man: Document the restriction of special handling
+ of point-size arguments to '\s' to compatibility mode.
+
+ * src/roff/groff/tests/\
+ use_point_size_escape_with_single_digit_arg.sh: Add regression
+ test.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2020-04-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Improve point-size escape diagnostics.
+
+ * src/roff/troff/input.cpp (read_size): Disclose context
+ {point-size escape interpretation} in diagnostic messages. When
+ a "bad digit" is encountered, describe it if possible. When a
+ relative adjustment results in a negative point size, report the
+ computed value. Also rename a variable for slightly more
+ clarity ("bad" does not refer to all bad parses, just some cases
+ of bad digits), and update an insufficiently generalized comment
+ {"\s(00" is also an acceptable expression for point-size zero}.
+
+ Based on suggestions by Ingo Schwarze and Bjarni Ingi Gislason.
+
+2020-04-01 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Align diagnostic message format.
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ * src/roff/troff/input.cpp (do_error):
+ Display the diagnostic level when it is "error", instead of
+ leaving it implicit.
+
+ * src/roff/troff/input.cpp (error_with_file_and_line): Include
+ the program name in the diagnostic message if it is known.
+
+ * src/roff/groff/tests/string_case_xform_errors.sh: Update
+ diagnostic message expectation.
+
+2020-02-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi (Page Motions):
+ * man/groff.7.man (Single-character escapes): Document
+ non-breaking spaces as such.
+
+ Report and patch by Dave Kemper <saint.snit@gmail.com>.
+ Fixes <https://savannah.gnu.org/bugs/?55954>.
+
+2020-02-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ nroff: Implement -P and -V options.
+
+ * src/roff/nroff/nroff.sh: Recognize -P option (with argument)
+ and pass it through to groff. Recognize -V option; if given,
+ display constructed groff command instead of executing it.
+ Update usage message to document new options. Tidy up shell
+ style and indentation. Add comments.
+ * src/roff/nroff/nroff.1.man: Document new -P and -V options.
+ * src/roff/nroff/tests/verbose_option_works.sh.in: Test -V
+ option.
+ * src/roff/nroff/nroff.am: Generate test and run it.
+
+2020-02-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Stop ms macro package from manipulating warnings.
+
+ * tmac/s.tmac: Remove code block that attempted to enable all
+ warnings "only if none are given on the command line". It did
+ this by simply comparing the value of the warn register
+ {\n[.warn]} against the default value; but of course, a user
+ could specify -w options that exactly matched the default and
+ the test would not be able to tell, causing puzzling and
+ undesired behavior. Furthermore, the hard-coded default was out
+ of date and did not correspond to recent releases of groff. If
+ you want all warnings on, use the ".warn" request with no
+ arguments in your ms document or pass "-w w" to groff (see
+ troff(1) or our Texinfo manual for more on warnings).
+
+ Thanks to Bjarni Ingi Gislason for bringing this issue to our
+ attention.
+
+ Resolves <https://savannah.gnu.org/bugs/?57583>.
+
+2020-01-21 George HELFFRICH <ghfbsd@gmail.com>
+
+ [me]: Fix regression of '.nm' (#57638).
+
+ * tmac/e.tmac-u (nm): Use saved point size and font position
+ for line numbering only if those registers exist.
+
+ Fixes <https://savannah.gnu.org/bugs/?57638>.
+
+2020-01-18 Ingo Schwarze <schwarze@openbsd.org>
+
+ Accept any number of arguments for .Dd in the groff_mdoc(7)
+ macros.
+
+ * tmac/doc-common-u: The .Dd macro behaved in a weird way:
+ Without arguments, it printed the string "Epoch".
+ With one, two, four, or more arguments, it ignored all arguments
+ and used the current date instead.
+ Only for exactly three arguments, it printed the arguments.
+ None of this made sense. Giving the date as "Epoch" is
+ absurd, and printing the current date is just misleading:
+ why should a document be considered up-to-date when the author
+ did not even bother to state the date of the last change?
+ Admittedly, the behaviour for 0 and 4 or more arguments
+ already appeared 4.3BSD-Reno, and the behaviour for 2 or 3
+ arguments in 4.4BSD. But it was already wrong even in those
+ days: several manual pages in 4.4BSD gave .Dd a single, quoted
+ argument, e.g. .Dd "June 9, 1993": cap_mkdb(1), id(1), sed(1),
+ err(3), getcap(3), sysctl(3), amd(8), disklabel(8), and others.
+ Consequently, simply print all the arguments, no matter how
+ many there are.
+
+ This bug was found by Jonathan Gray <jsg@openbsd.org>
+ while he looked at 4.xBSD manual pages.
+
+2020-01-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi: Document initial empty set membership of
+ characters with cflags values of 128, 256, or 512 in parallel
+ with preceding paragraphs regarding smaller powers of two.
+
+ Report and patch by Dave Kemper <saint.snit@gmail.com>.
+ Fixes <https://savannah.gnu.org/bugs/?57549>.
+
+2020-01-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/*.sh: Rename some tests so their
+ filenames are more self-descriptive.
+ * src/roff/groff/groff.am (groff_TESTS): Update.
+
+2020-01-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/groff/tests/transparent_end-of-sentence_chars.sh: Add
+ test for end-of-sentence recognition.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2020-01-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp: Mark \[dd] character (double dagger)
+ as transparent for purposes of end-of-sentence recognition.
+
+ * doc/groff.texi (Sentences):
+ * man/groff_diff.7.man (New requests/.cflags): Document this.
+
+ Report and patch by Dave Kemper <saint.snit@gmail.com>.
+ Fixes <https://savannah.gnu.org/bugs/?57546>.
+
+2020-01-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.1.man (See Also):
+ * src/utils/indxbib/indxbib.1.man (See Also):
+ * src/utils/lkbib/lkbib.1.man (See Also):
+ * src/utils/lookbib/lookbib.1.man (See Also): Add bibliographic
+ reference to the original Bell Labs "refer" paper by Mike Lesk.
+
+2020-01-17 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_AT_and_UC_footer_saved_and_restored.sh: Add
+ regression test for Ingo's change below.
+
+2020-01-16 Ingo Schwarze <schwarze@openbsd.org>
+
+ Repair .AT and .UC in the groff_man(7) macros.
+
+ * tmac/an-old.tmac: Setting user-defined strings in a macro that
+ will later be called indirectly from page location traps is
+ excessively complicated. Besides, the implementation doesn't
+ work: when the trap is finally sprung, the defaults from the
+ an-init macro clobber what the author specified with .AT or .UC.
+ Instead, all that is needed is setting the strings for the
+ header before triggering the page break, such that they appear
+ right away, while setting the strings for the footer after the
+ page break, such that they don't appear on the previous page.
+
+ This bug was found by Jonathan Gray <jsg@openbsd.org> while he
+ looked at 4.xBSD manual pages.
+
+2020-01-16 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man (Document structure macros/.SH): Fix
+ errors in footer description.
+
+2020-01-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/tests/an-old_CS_register_on.sh: Tweak flags; all the
+ other tests in this group pass "-Tascii -P-cbou" instead of
+ "-Tutf8". (This is so that output is easy to grep from a shell
+ script.) Bring this test into line. Does not regress anything.
+
+2019-12-30 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Certain pdfmark destination names caused gropdf to fail.
+
+ * src/devices/gropdf/gropdf.pl: Look for pdfmark types, (i.e.
+ DEST, OUT, ANN), only preceding 'pdfmark' at end of line, not
+ anywhere else.
+
+2019-12-30 Ingo Schwarze <schwarze@openbsd.org>
+
+ Correct output of sprintf("%%") in pic(1).
+
+ * src/preproc/pic/pic.ypp: Print "%" rather than "%%".
+
+ Bug reported by Doug McIlroy <doug at cs dot dartmouth dot edu>.
+ Patch using feedback from Larry McVoy <lm at mcvoy dot com>.
+
+2019-12-29 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Update man page of gropdf to document \X calls.
+
+ * src/devices/gropdf/gropdf.1.man: The calls 'pagename' and
+ 'switchtopage' (used by mom to relocate TOC) are documented,
+ together with their convenience commands '.pdfpagename' and
+ '.pdfswitchtopage'.
+
+2019-12-29 Ingo Schwarze <schwarze@openbsd.org>
+
+ Improve documentation of pic(1) regarding printf.
+
+ * src/preproc/pic/pic.1.man:
+ Document which conversion specifications are supported.
+ * doc/pic.ms:
+ Correct the list of supported conversion specifications.
+
+2019-12-21 Ingo Schwarze <schwarze@openbsd.org>
+
+ Update NetBSD, OpenBSD, FreeBSD, Darwin, and DragonFly version
+ strings.
+
+ * tmac/doc-common-u: Update.
+ * tmac/groff_mdoc.7.man: Synchronize.
+
+ Based on a patch from Guillem Jover <guillem@debian.org>
+ via Colin Watson <cjwatson@debian.org>, tweaked by me.
+ Fixes: https://bugs.debian.org/867123
+
+2019-09-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Use a vertical spacing of 1v between paragraphs in man page
+ examples. This looks better (on typesetter devices like
+ PostScript and PDF) with the Courier font family also used in
+ examples. Typewriter devices (like the terminal) already used
+ an inter-paragraph spacing of 1v.
+
+ * tmac/an-ext.tmac (EX): Save the value of the PD number
+ register (inter-paragraph distance), and set it to 1v.
+ (EE): Restore previous value of the PD register.
+
+2019-09-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Changes to allow configure to check for URW fonts
+
+ * font/devpdf/util/BuildFoundries.pl: Call the program with
+ --dirURW with path provided to ./configure, and --check to do
+ a dry-run just checking if the fonts are available. (bug #56748)
+
+2019-09-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Add new ghostscript font names (bug #56748)
+
+ * font/devpdf/Foundry.in: Add changed font names
+
+2019-09-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Prevent gropdf executing arbitrary commands
+
+ * src/devices/gropdf/gropdf.pl: See bug #55557
+
+2019-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: Move test for definitions of CS and CT
+ registers to after man.local is sourced; this way we can both
+ respect any setting of those registers in that file (which is
+ intended for customization by the site administrator) and ensure
+ that the registers are defined when dereferenced later.
+
+2019-09-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * **/*.man: Put section headings in title case.
+
+2019-09-13 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp: Lift invariant out of loop.
+
+2019-09-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/refer/refer.1.man: Add mention of man and mm
+ packages as supporting the "refer" preprocessor (GNU mm grew
+ this support back in groff 1.22.1).
+
+2019-09-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Mark expected-to-fail test as XFAIL.
+
+ Automake supports XFAIL and XPASS, so actually use the
+ infrastructure as intended.
+
+ * Makefile.am: Declare XFAIL_TESTS variable.
+ * src/roff/groff/groff.am (groff_XFAIL_TESTS): Add
+ string_case_xform_unicode_escape.sh.
+ * src/roff/groff/tests/string_case_xform_unicode_escape.sh: Set
+ the expected output to what it would be if string case
+ transforms worked on groff Unicode escapes.
+
+2019-09-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Retire '@G@' build system macro.
+
+ It existed only for forcibly-capitalized man page titles; it was
+ the uppercase-transformed counterpart of @g@.
+
+ * Makefile.am: Delete sed transformation of @G@.
+ * src/preproc/tbl/tbl.1.man: Replace '@G@EQN' in section heading
+ with '@g@eqn'.
+
+2019-09-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * **/*.man: Downcase man page titles, except for glilypond and
+ roff2*, which did not require it.
+
+ Here's a sed script for the aid of those who have a corpus of
+ man pages to migrate.
+
+ # Downcase man page titles.
+ #
+ # Use the first line to skip any .TH lines that require
+ # special handling, perhaps because the name of the
+ # command gets externally macro-expanded. In groff, the
+ # "roff2.1.man" page is an example.
+ #
+ # This script operates _only_ on .TH lines.
+ #
+ # usage: sed -i -f this_script.sed your_man_page.1 ...
+ /@ROFF2MODE@/b
+ /^\.\s*TH/{
+ h
+ s/^\.\s*TH \+\([^ ]\+\) .*/\1/
+ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+ G
+ s/\([^ ]\+\)\n\(^\.\s*TH \+\)[^ ]\+\( .*\)/\2\1\3/
+ }
+
+2019-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ The an (man) macro package supports new CS and CT number
+ registers to control rendering of man page section headings and
+ titles, respectively, in full capitals. These default off (with
+ no visible effect on pages which already fully capitalize these
+ strings in man page sources). The rationale is to encourage man
+ page authors to preserve case distinction information in (or
+ restore it to) their titles and section headings, while giving
+ users (including system administrators, distributors,
+ integrators, and maintainers of man(1) implementations) a way to
+ view the rendered page elements in full capitals if desired.
+
+ * tmac/an-old.tmac (TH/an-init): If number register CT is
+ defined and nonzero, call .stringup on \*[an-title].
+ (SH): Store macro argument list to \*[an-section-heading]. If
+ number register CS is defined and nonzero, call .stringup on it.
+ * tmac/groff_man.7.man (OPTIONS): Document the CS and CT number
+ registers.
+ * tmac/tests/an-old_CS_register_off.sh:
+ * tmac/tests/an-old_CS_register_on.sh:
+ * tmac/tests/an-old_CS_register_unspecified.sh:
+ * tmac/tests/an-old_CT_register_off.sh:
+ * tmac/tests/an-old_CT_register_on.sh:
+ * tmac/tests/an-old_CT_register_unspecified.sh: Add tests.
+ * tmac/tmac.am (tmac_TESTS): Run tests.
+
+2019-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Add regression test to check behavior of case transformation
+ request on a string containing a Unicode character escape.
+ Right now, this is not supported, so it is an XFAIL test in the
+ parlance of DejaGNU/POSIX 1003.3.
+
+ * src/roff/groff/tests/string_case_xform_unicode_escape.sh: New
+ test.
+ * src/roff/groff/groff.am (groff_TESTS): Run test.
+
+2019-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Implement .stringdown and .stringup requests.
+
+ * src/roff/troff/input.cpp: Add .stringdown and .stringup
+ requests.
+ * doc/groff.texi: Document them, including example.
+ * man/groff_diff.7.man: Same.
+ * man/groff.7.man: Document them briefly.
+
+2019-09-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Regression-test string case transform feature.
+
+ * src/roff/groff/tests/string_case_xform_errors.sh: New test.
+ * src/roff/groff/tests/string_case_xform_requests.sh: New test.
+ * src/roff/groff/groff.am (groff_TESTS): Run tests.
+
+2019-06-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/devices/grotty/grotty.1.man (Options/-i): Note support of
+ recent versions of xterm for italic (oblique) styles.
+
+ Fixes part of <https://savannah.gnu.org/bugs/?55278>.
+
+2019-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ devlatin1: Map \(oq to ' on output.
+
+ * font/devlatin1/R.proto: Render the output glyph \[oq]
+ {opening quote} as 0x27 (apostrophe) instead of 0x60 (grave
+ accent). A grave accent is just flat wrong for the Latin-1
+ character set, a.k.a. ISO 8859-1. The defining document ECMA-94
+ {June 1986} is freely available for perusal. The ECMA-94 Latin
+ character sets do not define any glyphs for directional
+ {"typographer's"} quotation marks, but the apostrophe is
+ depicted as a neutral (vertical) glyph, whereas the grave accent
+ 0x60 and acute accent 0xB4 are mirror-symmetric diacritical
+ marks.
+
+ Note that this change has no effect on _input_ conventions for
+ roff source documents. You can still get directional single
+ quotes on UTF-8, PostScript, PDF, and other output devices
+ supporting them by typing sequences like `this' in the input
+ {character remapping with ".char" requests and similar
+ notwithstanding}.
+
+ Patch and idea from Ingo Schwarze, who originally proposed it
+ for ASCII as well, and included Latin-1 for parallelism.
+ The groff developers could reach no consensus about the wisdom
+ of such a change for ASCII (which was designed to support
+ ambiguity for some code points, requiring the development of
+ supplementary interpretation conventions between parties).
+ ECMA-94/ISO-8859 is more strongly prescriptive.
+
+ See https://savannah.gnu.org/bugs/?55616 and the groff mailing
+ list archives for 31 January to 23 February 2019 at
+ https://lists.gnu.org/archive/html/groff for lengthy discussion.
+
+ * src/roff/groff/tests/on-latin1-device-oq-is-0x27.sh: Check for
+ correct output glyph.
+
+ * src/roff/groff/groff.am: Add test.
+
+2019-06-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/unicode.tmac: Save and restore compatibility mode since
+ the script uses a GNU extension (.char).
+
+2019-06-27 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ libdriver: Fix SEGV (Savannah #56555).
+
+ * src/libs/libdriver/printer.cpp: Check result of
+ set_char_and_width() for error condition before relying on it.
+
+ * src/roff/groff/tests/regression-56555.sh: Provoke segfault
+ with five bytes of input using transparent line indicator.
+
+ * src/roff/groff/groff.am: Add test.
+
+ Fixes <https://savannah.gnu.org/bugs/?55278>.
+
+2019-01-12 Ingo Schwarze <schwarze@openbsd.org>
+
+ Correctly handle groff_mdoc(7) .Lk arguments starting with a
+ dot.
+
+ * tmac/doc.tmac-u: Each argument to the .Lk macro is printed
+ on its own roff input line. If it happens to start with a dot
+ or apostroph, it was misinterpreted as a request or macro.
+ Force it to be treated as text by adding "\&" in front of it.
+
+2018-12-31 Ingo Schwarze <schwarze@openbsd.org>
+
+ * man/groff_diff.7.man: remove two stray .RE macros
+
+
+________________________________________________________________________
+
+##### License
+
+Copyright 2018-2021 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.
+
+
+##### Editor settings
+Local Variables:
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.115 b/ChangeLog.115
new file mode 100644
index 0000000..6f8b17b
--- /dev/null
+++ b/ChangeLog.115
@@ -0,0 +1,6156 @@
+
+Version 1.15 released
+=====================
+
+1999-12-28 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, VERSION: Changed to 1.15
+
+1999-12-27 Paul Eggert <eggert@twinsun.com>
+
+ * nroff/nroff.man: -S is safer, not safe.
+
+ * groff/groff.cc (main): Use `safer', not `safe', in variable
+ names. This does not change the behavior.
+
+ * troff/input.cc (main): Likewise.
+
+ * nroff/nroff.sh: Likewise.
+
+ * troff/input.cc (prepend_string): New function.
+ (main): Prepend -msafer, so that we check macro libraries for
+ safety.
+
+ * PROBLEMS: Report problem with Sun C++ 5.0 and 5.1.
+
+Version 1.14 released
+=====================
+
+1999-12-26 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, VERSION: Changed to 1.14.
+
+1999-12-24 Werner LEMBERG <wl@gnu.org>
+
+ * refer/refer.cc: Fixing the last fix.
+
+Version 1.13 released
+=====================
+
+1999-12-23 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.an: A typo (`.if' instead of `.ie') made the page
+ number disappear.
+
+ * NEWS: Updated.
+
+ * tmac/tmac.safer: Forgot to remove `so' from the `rm' request.
+
+ * VERSION: Changed to 1.13 -- to be compliant with the Adobe 3.0
+ document conventions, the version number must be a real.
+
+Version 1.12.1 released
+=======================
+
+1999-12-22 Werner LEMBERG <wl@gnu.org>
+
+ * VERSION: Changed to 1.12.1.
+
+1999-12-22 Alan Rooks <arooks@istar.ca>
+
+ * refer/refer.cc (do_file): Slight modification to satisfy the
+ `Standard system CC - C++ Compilation System 3.1 03/03/99' on SCO
+ UnixWare 7.1.
+
+1999-12-20 Werner LEMBERG <wl@gnu.org>
+
+ * changed prep.ai.mit.edu -> ftp.gnu.org; updated copyright
+ notices.
+
+ * tmac/tmac.safer, tmac/groff_msafer.man: Remove `so' (again) from
+ list of unsafe requests.
+
+ * pic/pic.man: Fixed a typo.
+
+ * man/groff_out.man: Fixed a typo.
+
+1999-12-18 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in: Doc fixes.
+
+1999-12-17 Fabrizio Polacco <fab@prosa.it>
+
+ * groff/groff.cc: Missing `U' option added to getopt().
+
+ * troff/troff.man: Missing `U' option added to synopsis.
+
+Version 1.12 released
+=====================
+
+1999-12-14 Werner LEMBERG <wl@gnu.org>
+
+ * troff/input.cc (usage), groff/groff.cc (synopsis): Added -U flag
+ to the synopsis.
+
+ * nroff/nroff.sh, nroff/nroff.man: Replaced `secure', `unsecure'
+ with the more appropriate terms `safer' and `unsafe'.
+
+ * libgroff/strerror.c, aclocal.m4, configure.in: Added checks for
+ sys_nerr and sys_errlist[].
+
+ * pic/pic.h, aclocal.m4, configure.in: Added check for hypot().
+
+ * pic/pic.y, pic/pic.cc: Added check for fmod().
+
+1999-12-13 Werner LEMBERG <wl@gnu.org>
+
+ * VERSION: Changed to 1.12.
+
+ Here some patches from various sources; most of them taken from
+ the Debian distribution.
+
+ * tmac/groff_mdoc.man, tmac/groff_mdoc.samples.man,
+ tmac/Makefile.sub: New files copied directly from the NetBSD
+ distribution. Probably, some additional adaptation later on is
+ necessary...
+
+ * tmac/tmac.safer, tmac/groff_msafer.man: Added `so' to the list
+ of unsafe requests.
+
+ * groff/groff.cc, groff/groff.man, nroff/nroff.sh,
+ nroff/nroff.man, pic/main.cc, pic/pic.man, troff/input.cc,
+ troff/troff.man: Added option `-U' for unsafe mode. Safe mode
+ (`-S') is now the default.
+
+ * README, NEWS: Updated.
+
+1999-12-09 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Regenerated nodes and menus with emacs.
+
+ * doc/Makefile (clean): Added cleaning commands for groff.texinfo.
+
+1999-12-06 Werner LEMBERG <wl@gnu.org>
+
+ * configure.in: Removed AC_PREFIX_PROGRAM since it causes more
+ grief than relief today. Additionally, it is against the GNU
+ coding standards.
+
+ * configure: Recreated.
+
+1999-12-05 Werner LEMBERG <wl@gnu.org>
+
+ * configure.in: Added GROFF_LIBM.
+
+ * configure: Recreated.
+
+ * aclocal.m4 (GROFF_LIBM): New function which tests whether -lm is
+ necessary.
+
+ * Makefile.in: Added definition of $(LIBM).
+
+ * Makefile.comm (LIBM): Removed.
+
+ * pfbtops/Makefile.sub: On AIX, -lm is needed also.
+
+1999-12-03 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/Makefile: Added rule for generation pic.html.
+
+ (clean): Files produced by grohtml will be removed also.
+
+ * doc/pic.ms: Small fix.
+
+ * tmac/tmac.html: Fixed suppression of headers.
+
+1999-11-16 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/tmac.html: Fixing horizontal arrows.
+
+ Turning off hyphenation.
+
+ * tmac/tmac.an: Improved support for grohtml; better indentation,
+ no footers/headers.
+
+1999-10-31 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/tmac.arkup: Added CDFTP macro
+
+ * tmac/tmac.html: All headers are turned off for ms, me, and mm
+ macros.
+
+ * tmac/troffrc: Some additions for HTML stuff.
+
+1999-10-06 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/tmac.html: Small changes.
+
+1999-09-26 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Minor fixes.
+
+1999-09-26 Gaius Mulley <gaius@glam.ac.uk>
+
+ * devhtml/TR: Changed spacewidth to 3.
+
+ * tmac/Makefile.sub (NORMALFILES): Added tmac.arkup.
+
+ * tmac/tmac.html: Moved markup macros to tmap.arkup.
+
+ * tmac/tmac.arkup: New file.
+
+ * grohtml/ChangeLog: New file.
+
+1999-09-16 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Common Features): Added Copying chapter.
+ Changed format to @smallbook.
+
+1999-09-15 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Added info about groff.texinfo.
+
+ * doc/groff.texinfo: Will now compile (using texi2dvi) without
+ warning messages.
+
+1999-09-14 Werner LEMBERG <wl@gnu.org>
+
+ * groff/groff.man: More updates.
+
+1999-09-13 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: New file. This manual is still very
+ rudimentary. It has been originally contributed by Trent
+ A. Fisher <trent@gnurd.portland.or.us> with first corrections and
+ additions by me.
+
+ * INSTALL: Added information about the `doc' subdir
+
+ * troff/troff.man: Minor fixes.
+
+ * groff/groff.man: Added missing `-L arg' to SYNOPSIS section;
+ reordered options.
+
+ * troff/input.cc (usage): Added missing `-ffam' to usage message.
+
+ * Makefile.in (dist): groff-$(version).tar.gz must be removed
+ also, otherwise it is included itself in another call of `make
+ dist'.
+
+ * groff/groff.cc (synopsis): Removed superfluous space.
+
+ * PROJECTS, PROBLEMS, NEWS: Updated.
+
+ * VERSION: Updated to 1.12beta.
+
+ * BUG-REPORT: Some cosmetic fixes. Corrected email address.
+
+ * README: Updated: Included documentation about CVS repository,
+ mailing lists, and daily snapshots.
+
+ * tmac/Makefile.sub: Fixed $(tmap_wrap) finally.
+
+1999-09-12 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * tmac/tmac.an: If the tag didn't fit into the space that the
+ macro `TP' specifies, the rest of the tag went into the space for
+ the next line.
+
+1999-09-12 Jeffrey Copeland <jeff@opennt.com>
+
+ * grolj4/lj4.cc: Added duplex printing (option `-d').
+
+ * grolj4/grolj4.man: Document duplex printing.
+
+1999-09-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile (pic.ps): Fixed rule which caused problems with
+ non-GNUish sed programs.
+
+ * tmac/doc-syms: Removed extra space from -iso8802-3 macro
+ definition.
+
+ * configure.in (LIBS): Added `-lc'
+
+ * Makefile.comm (.man.n): Added substitution for @TMAC_AN_PREFIX@.
+
+ * pic/tex.cc (solid_arc): Casting M_PI to double.
+
+ * libgroff/putenv.c (putenv): Changed function header to ANSI C.
+
+ * groff/groff.man, tmac/Makefile.sub (MAN7), tmac/groff_msafer.man
+ (new file), tmac/msafer.man (deleted), tmac/groff_me.man (new
+ file), tmac/me.man (deleted): {me,msafer} -> groff_{me,msafer}.
+
+ * groff/groff_man.man: New file. This manual page was originally
+ written for the Debian GNU/Linux system by Susan G. Kleinmann
+ <sgk@debian.org>.
+
+ * eqn/list.cc (list_box::compute_metrics,
+ list_box::compute_sublist_width): Removed variable declaration to
+ avoid shadowing warnings.
+
+ * grops/psrm.cc (resource_manager::process_file): Ditto.
+
+ * tfmtodit/tfmtodit.cc (main): Ditto.
+
+ * libgroff/font.cc (font::load_desc): Renamed auxiliary variable
+ to avoid shadowing warnings.
+
+ * tbl/table.cc (block_entry::do_divert, table::do_row): Renamed
+ shadowing loop variable.
+
+ * groff/groff.man, troff/troff.man: Added doc about grohtml.
+
+1999-09-12 Gaius Mulley <gaius@glam.ac.uk>
+
+ New grohtml frontend to convert groff input to html.
+
+ * Makefile.in (CCPROGDIRS, DEVDIRS): Added html device.
+
+ * tmac/Makefile.sub (NORMALFILES): Added tmac.html.
+
+ * tmac/eqnrc: Added html device.
+
+ * tmac/tmac.html: New file.
+
+ * eqn/main.cc (do_file, inline_equation), pic/troff.cc
+ (troff_output::start_picture, troff_output::finish_picture),
+ tbl/main.cc (process_input_file):
+ Surrounded output with `graphics_start' and `graphics_end' so that
+ the html driver can identify non-text portions.
+
+ * grodvi/dvi.cc (dvi_printer::set_char), grolj4/lj4.cc
+ (lj4_printer::set_char), grops/ps.cc (ps_printer::set_char),
+ grotty/tty.ps (tty_printer::set_char): Additional parameter
+ `name'.
+
+ * include/printer.h: Class printer: New function
+ set_char_and_width; new variables (is_char_named, is_named_set,
+ named_command, named_char_s, named_char_n) to hold information
+ about named characters -- needed by the html driver.
+
+ * libdriver/printer.cc (printer::set_ascii_char,
+ printer::set_special_char): Use set_char_and_width.
+
+ * devhtml/*: New device files for html driver.
+
+ * grohtml/*: New driver grohtml.
+
+1999-09-11 Wilfredo Sanchez <wsanchez@apple.com>
+
+ * tmac/doc-common, tmac/tmac.an: Removed the word `UNIX' in
+ default strings.
+
+1999-09-11 Luke Mewburn <lukem@netbsd.org>
+
+ * libgroff/string.cc (search): Small fix to test against NULL
+ pointer.
+
+1999-09-11 Jeff Conrad <jeff_conrad@msn.com>
+
+ * troff/node.cc (copy): The characters in a bracket escape (e.g.,
+ \b'abc') were stacked in reverse order when processed in a
+ diversion.
+
+ * troff/node.h: Added `*last' to struct `node' to make the above
+ fix work.
+
+ * troff/input.cc (read_draw_node), libdriver/input.cc (do_file):
+ The default scale for the 'f' and 't' graphics functions were 'm'
+ rather than 'u' (i.e., no scaling).
+
+1999-09-11 Peter Miller <peterm@jna.com.au>
+
+ * groff/groff.cc (main), groff.man, soelim/soelim.cc (main,
+ do_file), soelim/soelim.man: Added `-I file' option to soelim,
+ defining include paths.
+
+ * soelim/soelim.cc (include_path_append): New function.
+
+1999-09-11 Larry Jones <larry.jones@sdrc.com>
+
+ * tbl/main.cc (process_options): Unix (at least Documenter's
+ Workbench) tbl allows arbitrary non-alpha characters between
+ options.
+
+1999-09-11 Paul Eggert <eggert@twinsun.com>
+
+ Y2k fixes. Don't assume that the current year precedes 2000.
+
+ * doc/meref.me: Add \n(y2, \n(y4.
+
+ * tmac/doc-common (Yr): New number register.
+ (Dd): Don't assume current year precedes 2000.
+
+ * tmac/tmac.e (td): Likewise.
+ (y2, y4): New number registers.
+
+ * pic/pic.man: Update reference for pic paper to May, 1991
+ version.
+
+1999-09-11 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
+ Removed quotation marks which prevented correct expansion of
+ $(tmac_wrap).
+
+ * devlj4/Makefile.sub (LJ4RES): Fixed value (600 instead of 300).
+
+1999-09-10 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.sub (DISTCLEANFILES): Added `config.log' and
+ `config.cache'.
+
+ * Removed configure.old.
+
+1999-08-31 Werner LEMBERG <wl@gnu.org>
+
+ * VERSION: Updated to 1.11.1
+
+1999-05-27 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile: changed `.PS' postfix to `.ps' for consistency.
+
+ * tmac/Makefile.sub (install_data, stamp-wrap, uninstall_sub):
+ added quotations around $(tmac_wrap) to avoid syntax error if
+ variable is empty.
+
+ * configure: Newly generated using autoconf 2.13.
+
+ * Makefile.in (LDFLAGS): Set variable to @LDFLAGS@.
+
+Fri Aug 15 08:51:47 1997 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * README, PROJECTS, NEWS, INSTALL, VERSION,
+ doc/Makefile. doc/pic.ms, groff/groff.man:
+ Prepare for 1.11 release. No code changes.
+ Documentation for pic added (doc/pic.ms).
+
+Sun Nov 26 11:45:13 1995 James Clark <jjc@jclark.com>
+
+ * Version 1.10 released.
+
+Fri Nov 24 09:56:16 1995 James Clark <jjc@jclark.com>
+
+ * afmtodit/afmtodit.pl: Avoid comment on first line.
+
+Mon Nov 20 11:13:49 1995 James Clark <jjc@jclark.com>
+
+ * aclocal.m4 (GROFF_INSTALL_SH): New macro.
+ * configure.in: Call it.
+
+ * Makefile.sub (configure): Depends on aclocal.m4 not acgroff.m4.
+ (distfiles): Doesn't depend on config.log or config.cache.
+
+Sun Oct 1 08:45:36 1995 James Clark <jjc@jclark.com>
+
+ * grog/grog.sh: Use print "" rather than print in END rule.
+
+Wed Aug 23 13:30:52 1995 James Clark <jjc@jclark.com>
+
+ * tbl/main.cc (process_data): Don't give error for excess data
+ entries that are comments.
+
+Fri Jul 28 11:00:27 1995 James Clark <jjc@jclark.com>
+
+ * tbl/main.cc (process_data): Fix case where new for-scope rules
+ silently change meaning of code.
+
+Tue Jul 4 23:39:51 1995 James Clark <jjc@jclark.com>
+
+ * troff/env.cc (hyphenate): Loop over all consecutive sequences
+ of non-zero hyphenation codes.
+
+Sat Jul 1 00:42:15 1995 James Clark <jjc@jclark.com>
+
+ * aclocal.m4 (GROFF_POSIX): Use conflicting declaration technique.
+
+Thu Jun 29 13:58:36 1995 James Clark <jjc@jclark.com>
+
+ * tmac/tmac.e (ip): Divert the tag so as to freeze the spaces.
+
+Tue Jun 27 12:30:16 1995 James Clark <jjc@jclark.com>
+
+ * tmac/tmac.andoc: Make it work in compatibility mode.
+
+ * refer/token.h (token_info::is_range_sep): New function.
+ * refer/token.cc (init_special_chars): Make \(en a RANGE_SEP.
+ * refer/ref.cc (reference::output): More sophisticated check for
+ multiple pages.
+
+ * devps/prologue.ps (MANUAL): New procedure.
+ * grops/ps.cc (main): New -m option.
+ (usage): Include -m.
+ (ps_printer::~ps_printer): Implement -m.
+
+ * aclocal.m4 (GROFF_G): New macro.
+ * configure.in: Call it.
+ * Makefile.in (g): Provided by configure.
+
+ * hpftodit/hpftodit.cc (basename): Rename to xbasename.
+
+ * tmac/tmac.tty: Disable warning about bad fonts. Remove font
+ translations.
+
+ * Makefile.in (tmacpath): Don't include /usr/lib/tmac.
+ (tmac_m, tmac_s): Deleted.
+ (sys_tmac_prefix, tmac_wrap, tmac_prefix, tmac_an_prefix,
+ tmac_s_prefix): New variables.
+ (MDEFINES): Change accordingly.
+ * Makefile.comm (.man.n): Use new TMAC_* variables.
+ * configure.in (GROFF_TMAC): Call.
+ * aclocal.m4 (GROFF_TMAC): Define.
+ * tmac/Makefile.sub (stamp_wrap): New target.
+ (install_data, uninstall_sub): Handle macro wrapping.
+
+Mon Jun 26 14:54:39 1995 James Clark <jjc@jclark.com>
+
+ * tbl/main.cc (main): Ignore -T option.
+
+Thu Jun 22 09:08:06 1995 James Clark <jjc@jclark.com>
+
+ * devlj4/generate/special.map: Add definition of \(nb.
+
+ * tmac/tmac.dvi: Add definition of \(nb.
+
+ * troff/dictionary.c (dictionary::dictionary): association::v gets
+ initialized by association::association.
+
+ * tmac/Makefile.sub: Avoid using temporary files when installing.
+
+ * troff/env.cc (environment::set_font): Make bad font number a
+ warning.
+
+ * Makefile.in (fontpath): Remove $(prefix)/lib/font from fontpath.
+
+ * Makefile.in (datadir): Use share rather than lib.
+
+ * groff/groff.cc (basename): Rename to xbasename.
+
+Wed Jun 21 16:59:46 1995 James Clark <jjc@jclark.com>
+
+ * Makefile (CCLIBS): Don't use.
+ * Makefile.ccpg: Likewise.
+
+ * acgroff.m4: Rename to...
+ * aclocal.m4: Modify extensively for autoconf 2.
+ * configure.in: Likewise.
+ * Makefile.in: Likewise.
+
+ * groff/pipeline.c (const): Declare as empty if __STDC__ not
+ defined.
+ (xstrsignal): Check for definition of NSIG. Conditionalize
+ on SYS_SIGLIST_DECLARED. Make return type const.
+
+Sat Jun 10 12:28:16 1995 James Clark <jjc@jclark.com>
+
+ * troff/input.cc (interpolate_macro): Rephrase missing space
+ warning.
+
+Thu May 11 01:07:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
+
+ * addftinfo/addftinfo.cc, eqn/delim.cc, eqn/lex.cc, eqn/list.cc,
+ grodvi/dvi.cc, groff/groff.cc, grops/ps.cc, grops/psrm.cc,
+ grotty/tty.cc, include/ptable.h indxbib/indxbib.cc,
+ libbib/index.cc, libbib/linear.cc, libbib/search.cc,
+ libdriver/input.cc, libdriver/printer.cc, libgroff/font.cc,
+ libgroff/lf.cc, libgroff/nametoindex.cc, libgroff/ptable.cc,
+ libgroff/string.cc, lkbib/lkbib.cc, lookbib/lookbib.cc,
+ pic/lex.cc, pic/object.cc, pic/pic.y refer/label.y refer/ref.cc,
+ refer/refer.cc, refer/token.cc, tbl/main.cc, tbl/table.cc,
+ tfmtodit/tfmtodit.cc, troff/dictionary.cc, troff/div.cc,
+ troff/env.cc, troff/input.cc, troff/node.cc, troff/symbol.cc:
+ Fix 'for' scoping.
+
+Wed Apr 19 21:15:11 1995 James Clark <jjc@jclark.com>
+
+ * troff/input.cc (spring_trap): Push a macro_iterator rather than a
+ string_iterator.
+ (spring_trap, postpone_traps, unpostpone_traps): Move to later in
+ file.
+ (macro_iterator::macro_iterator): Add additional argument.
+
+Mon Apr 10 12:06:02 1995 James Clark <jjc@jclark.com>
+
+ * troff/div.cc (vertical_size::vertical_size): In place of integer
+ specifying line spacing use cunits specifying post vertical
+ space.
+ (macro_diversion::output, top_level_diversion::output): Likewise.
+ * troff/div.h: Change declarations accordingly.
+ * troff/env.cc (pending_output_line): Replace ls field by post_vs
+ field.
+ (pending_output_line::pending_output_line,
+ pending_output_line::output, environment::output,
+ environment::output_line, environment::output_title,
+ environment::hyphenate_line): In place of
+ integer specifying line spacing use cunits specifying post vertical
+ space.
+ (environment::environment): Add post_vertical_spacing and
+ prev_post_vertical_spacing arguments.
+ (environment::get_post_vertical_spacing): New function.
+ (environment::total_post_vertical_spacing): New function.
+ (environment::post_vertical_spacing): New function.
+ (init_env_requests): Initialize pvs request and .pvs register.
+ * troff/env.h: Change declarations.
+
+Tue Mar 28 09:52:07 1995 James Clark <jjc@jclark.com>
+
+ * tmac/tmac.pspic: Immediately remove the temporary file.
+
+Sat Mar 25 10:43:11 1995 James Clark <jjc@jclark.com>
+
+ * tmac/tmac.pspic (PSPIC): Scale graphic uniformly even when
+ height is specified.
+
+Thu Jan 26 16:20:13 1995 James Clark <jjc@jclark.com>
+
+ * tbl/table.c (struct vertical rule, class table_entry): Use int
+ not short for start_row and end_row.
+
+Fri Jan 13 13:53:05 1995 James Clark <jjc@jclark.com>
+
+ * troff/input.cc (trapping_blank_line, blank_line_macro): New
+ functions.
+ (diverted_space_node::reread, process_input_stack): Call
+ trapping_blank_line() rather than blank_line().
+ (init_input_requests): Bind "blm" to blank_line_macro().
+
+ * tmac/tmac.s (XA): Use .br and par@reset rather than XA.
+
+Tue Jan 10 11:40:35 1995 James Clark <jjc@jclark.com>
+
+ * troff/env.cc (environment::possibly_break_line): Require that
+ width total excluding width of final space node be greater than
+ the target text length.
+
+Tue Jan 3 09:13:37 1995 James Clark <jjc@jclark.com>
+
+ * troff/node.cc (kern_pair_node::vertical_extent): New function.
+
+Sun Dec 4 13:19:07 1994 James Clark <jjc@jclark.com>
+
+ * troff/node.cc (charinfo_node): New class.
+ (glyph_node, composite_node): Derive from charinfo_node. Change
+ member functions accordingly.
+
+Wed Nov 30 10:29:29 1994 James Clark <jjc@jclark.com>
+
+ * nroff/nroff.sh: Use -Tlatin1 not -TLatin1.
+
+Mon Aug 8 10:17:59 1994 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.tty-char: Add definitions for \(ab and \[arrowvertex].
+
+ * devps/generate/textmap (notsubset): Add.
+
+ * tmac/tmac.a4: New file.
+
+Sun Jul 24 20:08:42 1994 James Clark (jjc@jclark.com)
+
+ * pic/main.cc (had_parse_error): New variable.
+ (do_picture, do_whole_file): Set had_parse_error if yyparse()
+ returns non-zero.
+ (main): Return 1 if had_parse_error is true.
+
+Tue Jul 19 13:40:31 1994 James Clark (jjc@jclark.com)
+
+ * grolj4/lj4.cc (main): Avoid use of strtoul.
+
+Mon Jul 18 15:03:02 1994 James Clark (jjc@jclark.com)
+
+ * nroff/nroff.sh: Default device is -Tlatin1 if $LC_CTYPE is
+ iso_8859_1 or $LESSCHARSET is latin1.
+
+Sun Jul 10 13:38:35 1994 James Clark (jjc@jclark.com)
+
+ * hpftodit: New directory.
+ * Makefile.in (CCPROGDIRS): Add hpftodit.
+ * devlj4/generate: New directory.
+
+Thu Jul 7 23:49:48 1994 James Clark (jjc@jclark.com)
+
+ * configure.in: Don't use AC_VFORK.
+ * groff/pipeline.c (run_pipeline): Use fork() always.
+
+Wed Jul 6 11:13:17 1994 James Clark (jjc@jclark.com)
+
+ * grops/ps.cc (main): Use %1 not %s in error message for -w.
+
+ * Makefile.in (CCPROGDIRS): Add grolj4.
+ (DEVDIRS): Add devlj4.
+ * grolj4, devlj4: New directories.
+ * tmac/troffrc: Handle lj4.
+ * tmac/tmac.lj4: New file.
+
+Fri Jun 17 18:02:53 1994 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.e (@n): Set indent to 0 before calling |h.
+
+Wed Jun 1 07:33:47 1994 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (do_if_request): At end of second string, switch
+ environments before getting next token.
+
+Fri May 20 07:39:18 1994 James Clark (jjc@jclark.com)
+
+ * devps/psstrip.sed: Split rule that strips whitespace on either
+ side of delimiters.
+
+Wed May 18 08:13:47 1994 James Clark (jjc@jclark.com)
+
+ * troff/node.h (font_family::make_definition): Add return value to
+ declaration. * troff/symbol.h (symbol::operator==,
+ symbol::operator!=): Likewise.
+
+Tue May 17 20:46:06 1994 James Clark (jjc@jclark.com)
+
+ * groff/groff.cc (main, help, synopsis): Handle -S.
+ (possible_command::insert_arg): New function.
+
+ * tmac/tmac.safer: New file.
+ * tmac/msafer.man: New file.
+ * tmac/Makefile.sub (FILES): Add tmac.safer and msafer.man.
+
+Thu Mar 10 01:58:30 1994 Paul Eggert (eggert@twinsun.com)
+
+ * pic/pic.h, pic/main.cc (safer_flag): New variable.
+ * pic/pic.y (placeless_element): Avoid unsafe operations if
+ `safer_flag' is set.
+ * pic/main.cc (main): Add -S option, which sets `safer_flag'.
+
+Tue May 10 13:02:31 1994 James Clark (jjc@jclark.com)
+
+ * eqn/lex.cc (get_token): Put call to add_context() in block to
+ work around Sun C++ 4.0 bug.
+
+ * include/stringclass.h (operator +): Use ?: instead of `if' to
+ work around Sun C++ 4.0 bug.
+
+Thu May 5 11:18:03 1994 James Clark (jjc@jclark.com)
+
+ * tbl/main.cc (process_format): Accept - as a synonym for the _
+ key letter.
+
+ * libbib/index.cc (minus_one): Don't declare as const.
+
+Fri Apr 29 09:32:48 1994 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (get_char_for_escape_name): Push back a newline.
+
+Wed Apr 27 21:14:18 1994 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (write_macro_request): New function.
+ (init_input_requests): Bind write_macro_request to writem.
+
+Sun Apr 17 11:15:38 1994 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.s (@EN): Turn filling back on even if there was no
+ equation.
+
+ * eqn/lex.cc (do_space): Supply missing argument to lex_error.
+
+ * tmac/tmac.s (@TS): Renamed from TS.
+ (TS): Call LP then TS again.
+ (cov*ab-init): Alias @TS to TS.
+
+ * tmac/tmac.s: Allow QP or RS to initialize.
+
+ * tmac/tmac.s (par@load-init): New macro. Call at end of file.
+ Move initializations of PS and LL here.
+ (par@init): Don't initialize HY. Avoid changing environment 0.
+ (par*env-init): Don't all par@reset.
+
+Thu Apr 14 19:15:45 1994 James Clark (jjc@jclark.com)
+
+ * include/posix.h: Include <fcntl.h> only if not using <osfcn.h>.
+
+Sun Apr 10 09:54:44 1994 James Clark (jjc@jclark.com)
+
+ * Makefile.in (MDEFINES): Add LDFLAGS.
+ (LDFLAGS): Add definition line.
+
+Thu Apr 7 22:22:22 1994 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (get_optional_char): Split off error check into...
+ (check_missing_character): New function.
+ * troff/token.h: Declare it.
+ * troff/env.cc (margin_character): Don't call get_optional_char.
+ Only call tok.next() after making the node.
+
+ * include/lib.h (getopt): Make 2nd argument char *const *.
+
+Fri Mar 11 07:28:03 1994 James Clark (jjc@jclark.com)
+
+ * nroff/conftest.sh: Deleted.
+
+Fri Mar 4 10:51:36 1994 James Clark (jjc@jclark.com)
+
+ * pic/make-dos-dist: Deleted.
+
+Wed Mar 2 20:59:16 1994 James Clark (jjc@jclark.com)
+
+ * devps/psstrip.sed: Strip comments before stripping trailing
+ white space.
+
+Sat Feb 19 13:07:16 1994 James Clark (jjc@jclark.com)
+
+ * Version 1.09 released.
+
+Wed Feb 16 16:53:49 1994 James Clark (jjc@jclark.com)
+
+ * tmac/doc-ditroff (hK): Don't reset page number if \nC is > 0.
+
+Mon Feb 14 08:26:40 1994 James Clark (jjc@jclark.com)
+
+ * libgroff/font.cc (font::load_desc): Fix typo in error message.
+
+Sun Feb 13 09:37:38 1994 James Clark (jjc@jclark.com)
+
+ * libgroff/new.cc (operator new): Rewrite so as to avoid warning
+ about returning without a value.
+
+ * troff/charinfo.h (charinfo::get_special_translation): Cast
+ TRANSLATE_NONE to int.
+
+ * refer/token.cc (lookup_token, store_token): Remove bogus loop
+ test. Fix test so that it works with n unsigned.
+
+ * pic/pic.y (defaults_table): Fully bracket initializer.
+ * pic/lex.cc (lookup_keyword): Likewise.
+ * eqn/lex.cc (token_table, def_table): Likewise.
+ * eqn/box.cc (param_table): Likewise.
+ * troff/input.cc (warning_table): Likewise.
+ * libgroff/font.cc (table): Likewise.
+ * grops/ps.cc (ps_printer::special): Likewise.
+ * grops/psrm.cc (resource_manager::process_file): Likewise.
+ * tfmtodit/tfmtodit.cc (lig_chars, lig_table): Likewise.
+ * refer/command.cc (command_table): Likewise.
+ * addftinfo/addftinfo.cc (param_table): Likewise.
+
+ * troff/symbol.cc (symbol::symbol): Prevent compiler warnings
+ about temp's being unused.
+ (unused): New function.
+
+ * groff/pipeline.cc: Declare c_fatal.
+
+ * libbib/linear.cc (bmpattern::search): Cast patterrn[--j] to
+ uchar.
+
+ * libbib/index.cc (index_search_item::load): Prevent compiler
+ warnings about fd_closer's being unused.
+ (unused): New function.
+
+Sat Feb 12 10:31:59 1994 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (copy_mode_error): Make `prefix' static.
+ Fix typo.
+
+ * include/posix.h: Include <osfcn.h> is HAVE_CC_OSFCN_H is
+ defined.
+ * acgroff.m4, configure.in, Makefile: Rename HAVE_CC_UNISTD_H to
+ HAVE_CC_OSFCN_H and modify accordingly.
+
+ * troff/input.cc (init_charset_table): radicalex overlaps
+ horizontally.
+
+ * groff/acgroff.m4 (GROFF_ISC_SYSV3): New macro (from
+ udodo!hans@relay.NL.net).
+ * groff/configure.in: Call it.
+
+ * groff/acgroff.m4 (GROFF_PCLOSE): New macro.
+ * groff/configure.in: Call it.
+ * include/lib.h: Conditionalize declaration of pclose.
+
+ * troff/div.cc (last_page_number): New global variable.
+ (top_level_diversion::begin_page): Exit if we just printed the
+ last page.
+ * troff/div.h (last_page_number): Declare it.
+ * troff/input.cc (parse_output_page_list): Set last_page_number.
+
+ * eqn/sqrt.cc: Rename \(rn to \[radicalex].
+ * devps/S, devps/textmap, tmac/tmac.ps, tmac/tmac.dvi,
+ tmac/tmac.X: Likewise.
+ * tmac/tmac.ps, tmac/tmac.X, tmac.dvi: Add definitions of \(rn.
+ * tmac.dvi: Make \(ru and \(ul extend beyond their width by .04m.
+
+Fri Feb 11 11:45:40 1994 James Clark (jjc@jclark.com)
+
+ * tmac/doc-ditroff (hK): Remove groff specific code which
+ prevented page-breaks between separate manual entries. If this is
+ the first page, don't set the page number to 1.
+
+ * acgroff.m4 (GROFF_POSIX): New macro.
+ * configure.in: Use it.
+
+ * troff/node.cc (class real_output_file,
+ real_output_file::real_output_file,
+ real_output_file::~real_output_file): Conditionalize use of
+ popen/pclose on POPEN_MISSING.
+ * troff/node.h: Conditionalize pipe_command on POPEN_MISSING.
+ * troff/input.cc (pipe_command): Give an error if POPEN_MISSING.
+ (pipe_source): Similarly.
+
+ * acgroff.m4 (GROFF_PROG_CCC): Update message about libg++.
+
+ * acgroff.m4 (GROFF_GETOPT, GROFF_PUTENV, GROFF_POPEN): Detect
+ presence of declarations by trying to compile example with
+ conflicting declarations. (gcc only gives a warning for missing
+ declarations.)
+
+Wed Feb 9 09:12:23 1994 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.pspic (PSPIC): Allow options to specify alignment
+ (from Ulrich Lauther).
+
+Tue Feb 8 03:56:40 1994 James Clark (jjc@jclark.com)
+
+ * libbib/linear.cc (file_buffer::load): Use S_ISREG macro.
+
+Thu Feb 3 09:34:35 1994 James Clark (jjc@jclark.com)
+
+ * indxbib/indxbib.cc (write_hash_table): Add code for case where
+ pointers and ints have different sizes.
+
+Sun Jan 9 16:17:51 1994 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.s (par*env-init): Call par@reset.
+
+Fri Jan 7 10:24:27 1994 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.s (@IP): Switch to a new environment when diverting
+ tag.
+ (par*push-tag-env, par*pop-tag-env): New macros.
+
+Wed Jan 5 21:18:34 1994 James Clark (jjc@jclark.com)
+
+ * grops/ps.cc (ps_printer::ps_printer): Use MAX_LINE_LENGTH for
+ initializing `out'. Reduce MAX_LINE_LENGTH from 79 to 72.
+
+ * grops/ps.cc (ps_printer::~ps_printer): Output %%CreationDate
+ comment. Include <time.h>.
+
+Wed Dec 15 14:14:00 1993 James Clark (jjc@jclark.com)
+
+ * grops/ps.cc (is_small_h, is_small_v): Deleted.
+ (ps_printer::flush_sbuf): Use absolute motion only at beginning of
+ lines.
+
+Tue Dec 14 10:06:34 1993 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (read_request): Only print a prompt if reading
+ from the terminal. Also clearerr on EOF if reading from the
+ terminal. Declare isatty.
+
+Mon Nov 29 08:38:15 1993 James Clark (jjc@jclark.com)
+
+ * refer/label.y: Rename map_t to map_func and extractor_t to
+ extractor_func.
+
+Sat Oct 30 06:38:12 1993 James Clark (jjc@jclark.com)
+
+ * include/assert.h: Don't use volatile.
+ * libgroff/assert.cc: Likewise.
+
+Fri Oct 29 15:00:23 1993 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (abort_request): Look at character in tok before
+ calling get_copy().
+
+Thu Oct 28 14:09:48 1993 James Clark (jjc@jclark.com)
+
+ * troff/troff.h (NO_RETURN): Deleted.
+ * troff/div.cc (cleanup_and_exit): Don't declare aas NO_RETURN.
+ * troff/input.cc (exit_troff): Likewise
+
+ * Makefile.in: Remove `Making ...' messages since GNU make now
+ gives these.
+
+ * configure.in: Use AC_HAVE_HEADERS(unistd.h) instead of AC_UNISTD_H.
+
+Wed Oct 27 11:12:51 1993 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.s (@init): Initialize PO to \n(.o here, rather than
+ to constant 1 inch.
+
+Sat Oct 23 10:03:52 1993 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.e (hl): Use \n[.in] rather than \n(.i.
+
+Thu Oct 14 12:09:45 1993 James Clark (jjc@jclark.com)
+
+ * eqn/delim.cc (delim_box::compute_metrics): Don't increase
+ MARK_REG if there was no left delimiter.
+
+Sat Oct 2 19:54:47 1993 James Clark (jjc@jclark.com)
+
+ * pic/troff.cc (troff_output::text): Set line thickness to
+ relative before outputting text.
+
+ * tmac/tmac.e (@k): Don't zero ?T.
+ ((z): Likewise.
+
+Sat Sep 25 11:08:43 1993 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.e ($p): Handle possibility that $3 is empty.
+
+Wed Aug 18 08:51:41 1993 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (decode_args): Warn about unquoted tabs (from
+ Paul Eggert).
+
+Tue Aug 10 08:38:32 1993 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (ignoring): New variable.
+ (ignore): Set ignoring during call to do_define_macro.
+ (do_define_macro): Clear ignoring before interpolating terminating
+ macro.
+ (copy_mode_error): New function.
+ (get_char_for_escape_name, read_long_escape_name,
+ interpolate_arg): Use copy_mode_error.
+ (warning_table): Add WARN_IG.
+ * troff/troff.h (WARN_IG): Declare.
+ (WARN_TOTAL): Change accordingly.
+
+ * groff/pipeline.c (strsignal): Rename to xstrsignal.
+ * groff/groff.cc (strsignal): Delete declaration.
+
+Fri Jul 16 01:43:12 1993 James Clark (jjc@jclark.com)
+
+ * troff/div.cc (page_offset): Use 'm' as default scaling.
+
+Sat Jul 3 09:11:38 1993 James Clark (jjc@jclark.com)
+
+ * nroff/nroff.sh: Ignore -u.
+
+Wed Jun 9 12:17:27 1993 James Clark (jjc@jclark.com)
+
+ * Makefile.in (MDEFINES): Pass down MAKEOVERRIDES.
+
+Fri Jun 4 17:35:47 1993 James Clark (jjc@jclark.com)
+
+ * tmac/tmac.s (par*box-draw): Set adjustment mode to l while
+ drawing box.
+ (B2): With -Tascii, leave additional vertical space before
+ and after. Ensure that the left and right indent is restored to
+ what it was even if the point size changes. Don't call
+ par@finish. Change the indent, line length and title length
+ directly. With -Tascii, make the width of the box 1n less.
+ (B1): Remember 1n at the current point size. Don't call
+ par@reset. Change the indent, line length and title length
+ directly. Ensure that the temporary indent is preserved.
+ (par*box-mark-top): Turn off no spacing mode.
+
+Thu Jun 3 17:47:14 1993 James Clark (jjc@jclark.com)
+
+ * Makefile.in (dist): Use .gz suffix.
+
+Thu May 27 20:04:59 1993 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (main): Add return 0.
+ * pic/main.cc (main): Use return instead of exit.
+ * tbl/main.cc (main): Likewise.
+ * eqn/main.cc (main): Likewise.
+ * grops/ps.cc (main): Likewise.
+ * grotty/tty.cc (main): Likewise.
+ * groff/groff.cc (main): Likewise.
+ * grodvi/dvi.cc (main): Likewise.
+ * refer/refer.cc (main): Likewise.
+ * indxbib/indxbib.cc (main): Likewise.
+ * lkbib/lkbib.cc (main): Likewise.
+ * soelim/soelim.cc (main): Likewise.
+ * addftinfo/addftinfo.cc (main): Likewise.
+ * acgroff.m4 (GROFF_PROG_CCC, GROFF_CC_COMPILE_CHECK,
+ GROFF_COOKIE_BUG, GROFF_CC_ANSI_BUG): Likewise.
+
+ * troff/token.h (process_input_stack): Don't declare as static.
+ * troff/input.cc: Likewise.
+
+ * troff/node.c (invalidate_fontno): Make it a static member of
+ class font_family. Change callers.
+ * troff/node.c: Change declaration.
+
+ * tbl/main.cc (struct input_entry_format): Add explicit public
+ specifier.
+ * tbl/table.cc (struct text_stuff, struct single_hline_stuff,
+ struct double_hline_stuff): Likewise.
+ * tbl/table.h (struct entry_format): Likewise.
+ * pic/object.h (struct saved_state): Likewise.
+
+ * include/stringclass.h: Add forward declarations of friend
+ functions that are later declared as inline. Don't include inline
+ specifier in friend declaration.
+
+ * libgroff/lib.h: Declare popen and pclose.
+ * acgroff.m4 (GROFF_POPEN): New macro.
+ * configure.in: Call it.
+
+ * include/lib.h (PI): New constant. Undef first if necessary.
+ * tfmtodit/tfmtodit.cc (main): Use PI rather than M_PI.
+ * grops/ps.cc (degrees, radians): Likewise.
+ * libgroff/font.cc (font::get_skew): Likewise.
+
+ * grops/ps.cc (is_ascii): New function.
+ (ps_output::put_string): Use is_ascii. Use csprint rather than
+ isprint.
+ (ps_printer::define_encoding): Use csspace.
+ * libgroff/strtol.c (ISASCII): New macro.
+ (strtol): Cast arguments to is*() and tolower() to unsigned char.
+ Use ISASCII rather than isascii.
+ * libgroff/cmap.cc: Use isascii() only if <ctype.h> defines it.
+ * libgroff/cset.cc: Likewise.
+ * libdriver/input.cc: Include cset.h.
+ (do_file, get_integer, possibly_get_integer): Use csdigit() rather
+ than isdigit().
+
+ * refer/refer.cc (main): Use %ld rather than %d for longs.
+
+ * libbib/index.cc (index_search_item_iterator::get_tag): Use
+ S_ISREG macro.
+
+ * addftinfo/addftinfo.cc (param_t): Add explicit `int'.
+
+Mon May 24 08:51:37 1993 James Clark (jjc@jclark.com)
+
+ * troff/input.cc (hyphenation_code): Skip white space between
+ char/code pairs.
+
+Sun May 16 08:15:52 1993 James Clark (jjc at jclark.com)
+
+ * tbl/table.h (table::entry_list_tailp): New member.
+ (table::table): Initialize it.
+ (table::add_entry): Use entry_list_tailp to avoid O(n^2)
+ behaviour.
+
+Sat May 15 17:26:00 1993 James Clark (jjc at jclark.com)
+
+ * grotty/tty.cc (tty_printer::add_char): Don't discard characters
+ with negative horizontal positions. Remove casts of glyph::hpos to
+ int.
+ (USHRT_MAX): Delete definition.
+ (SHRT_MAX, SHRT_MIN): New definitions.
+ (glyph::hpos): Change type to short.
+ (tty_printer::end_page): Output multiple backspaces if necessary.
+ Remove casts of glyph::hpos to int.
+
+Fri May 7 12:14:37 1993 James Clark (jjc at jclark.com)
+
+ * tmac/tmac.s (@RT): New definition.
+
+Thu May 6 21:36:54 1993 James Clark (jjc at jclark.com)
+
+ * refer/refer.cc (do_file): Make sure current_filename is set when
+ filename is "-".
+
+ * pic/common.cc (common_output::dot_line): Handle zero length
+ lines.
+
+Sun May 2 19:54:16 1993 James Clark (jjc at jclark.com)
+
+ * tmac/tmac.s (par@reset): Get value for .hy for \n[HY].
+ (par@init): Initialize \n[HY].
+
+Mon Apr 26 11:43:16 1993 James Clark (jjc at jclark.com)
+
+ * troff/dictionary.cc (dictionary::remove): Continue when
+ r < j < i.
+
+Sun Apr 25 11:03:00 1993 James Clark (jjc at jclark.com)
+
+ * Makefile.com (.y.cc): Avoid ending up with two versions of
+ $(YTABH).
+
+Thu Apr 22 21:03:45 1993 James Clark (jjc at jclark.com)
+
+ * tmac/tmac.dvi (\(,c): Define only if it does not exist.
+ (\(,C): Likewise. Also fix typo.
+
+Wed Apr 21 08:47:32 1993 James Clark (jjc at jclark.com)
+
+ * lib.h: Delete extraneous semi-colon.
+
+ * Add pso request: `so' from a pipe.
+ * troff/input.c (file_iterator::file_iterator): Add 3rd argument.
+ (file_iterator::close): New function.
+ (file_iterator::~file_iterator, file_iterator::next_file): Use
+ file_iterator::close.
+ (file_iterator::backtrace): Say `process' rather than `file' when
+ the stream is popened.
+ (pipe_source): New function.
+ (init_input_requests): Bind ".pso" to pipe_source.
+
+Tue Apr 20 00:02:26 1993 James Clark (jjc at jclark.com)
+
+ * afmtodit/afmtodit.pl: Avoid single quotes in comments.
+
+ * pfbtops/pfbtops.c: Output 64 characters per line. Output hex
+ digits in lower case.
+
+Mon Apr 19 09:55:57 1993 James Clark (jjc at jclark)
+
+ * Version 1.08 released.
+
+ * Makefile.in (dist): Insert || true after ln -s commands that
+ might fail.
+
+ * mm: Update to mm 1.16.
+
+ * acgroff.m4 (GROFF_CSH_HACK): New macro.
+ * configure.in: Call GROFF_CSH_HACK. Substitute for
+ SH_SCRIPT_SED_CMD.
+ * Makefile.in (SH_SCRIPT_SED_CMD): New variable. Include in
+ MDEFINES.
+ * nroff/Makefile.sub (nroff): New target.
+ (install_data): Install nroff.
+ * eqn/Makefile.sub (neqn): Sed with SH_SCRIPT_SED_CMD.
+ * grog/Makefile.sub (grog): Sed grog.sh with SH_SCRIPT_SED_CMD.
+
+Sat Apr 17 08:24:28 1993 James Clark (jjc at jclark)
+
+ * eqn/Makefile.sub (neqn): Add chmod +x.
+
+ * grog/Makefile.sub (grog): Remove spurious semi-colon.
+
+Fri Apr 16 22:41:57 1993 James Clark (jjc at jclark)
+
+ * troff/input.cc (string_iterator::string_iterator()): Initialize
+ lineno and count.
+
+Tue Apr 13 10:22:28 1993 James Clark (jjc at jclark)
+
+ * troff/div.cc (macro_diversion::space,
+ top_level_diversion::space): Don't set high_water_mark.
+ (macro_diversion::output, top_level_diversion::output): Don't
+ include post line space in high water mark.
+
+Wed Apr 7 12:48:18 1993 James Clark (jjc at jclark)
+
+ * eqn/eqn.y: Don't define YYDEBUG.
+ * pic/pic.y: Likewise.
+
+Mon Apr 5 10:15:15 1993 James Clark (jjc at jclark)
+
+ * tmac/tmac.e ([3): Add space after comma following editors.
+ Change double spaces to single spaces.
+ ([4): Change double spaces to single spaces.
+
+ * grops/ps.h (USE_PS_ADOBE_2_0): New flag for broken_flags.
+ * grops/ps.cc (ps_printer::~ps_printer): If the USE_PS_ADOBE_2_0
+ bit is set in broken_flags, use 2.0 rather than 3.0 as the version
+ after %!PS-Adobe- (for Newsprint).
+
+ * troff/div.cc (top_level_diversion::begin_page): When
+ before_first_page is 1, set page_number to 1.
+
+Sun Apr 4 14:28:53 1993 James Clark (jjc at jclark)
+
+ * eqn/box.cc (box::top_level): Protect equation with \&.
+
+Sat Apr 3 23:27:25 1993 James Clark (jjc at jclark)
+
+ * groff/groff.cc (possible_command::set_name): Delete old name.
+
+ * groff/groff.cc (possible_command::~possible_command): Use
+ a_delete.
+
+ * troff/node.cc (troff_output_file::begun_page): New member.
+ (troff_output_file::troff_output_file): Initialize it.
+ (troff_output_file::really_begin_page): Only output V command if a
+ page has been begun.
+
+ * pic/pic.y (placeless_element): Delete argument to PRINT after
+ use.
+
+Fri Apr 2 11:31:02 1993 James Clark (jjc at jclark)
+
+ * Make wrapman work.
+ * troff/div.h (class top_level_diversion): Replace
+ first_page_begun by before_first_page (with opposite sense).
+ * Change first_page_begun to before_first_page inverting sense.
+ * troff/div.cc (class nl_reg): New class.
+ (init_div_requests): Use class nl_reg for \n(nl.
+ (top_level_diversion::begin_page): Don't call
+ output_file::begin_page if before_first_page is 2;
+ reset before_first_page afterwards. If have_next_page_number is
+ false, then always increment page_number.
+ * tmac/tmac.an: Set traps within TH rather than at the top-level.
+ Restore compatibility mode after loading, and then disable
+ compatibility mode in TH.
+
+Thu Apr 1 11:09:34 1993 James Clark (jjc at jclark)
+
+ * grotty/tty.cc (tty_printer::end_page): Don't discard characters
+ past last line.
+ * troff/node.h (output_file::trailer): Declare.
+ * troff/div.cc (cleanup_and_exit): Call output_file::trailer().
+ * troff/node.cc (output_file::trailer): New function.
+ (troff_output_file::~troff_output_file): Move most code into...
+ (troff_output_file::trailer): New function.
+ (class troff_output_file): Delete page_length member. Declare
+ trailer().
+ (troff_output_file::really_begin_page): Use current page length
+ for final V command.
+
+ * tbl/main.cc (struct options): New decimal_point_char member.
+ (options::options): Initialize this.
+ (process_options): Implement decimalpoint option.
+ (process_data): Pass decimal_point_char option to table::table.
+ * tbl/table.h (class table): New decimal_point_char member.
+ (table::table): Add additional argument.
+ * tbl/table.cc (find_dot): Rename to find_decimal_point. Add
+ second argument specifying decimal point character. Use this
+ instead of '.'.
+ (table::table): Initialize decimal_point_char.
+ (table::add_entry): Change call to find_dot.
+
+ * troff/input.cc (get_copy, token::next): Implement \V.
+ (interpolate_environment_variable): New function.
+
+Tue Mar 30 14:41:39 1993 James Clark (jjc at jclark)
+
+ * pic/lex.cc (lookup_keyword): Rename MIN to K_MIN, MAX to K_MAX.
+ * pic/pic.y: Likewise.
+
+ * grotty/tty.cc (tty_printer::add_char, tty_printer::end_page):
+ Add casts to int.
+ * refer/ref.cc (reference::insert_field, reference::delete_field):
+ Likewise.
+ * troff/number.cc (parse_term): Likewise.
+
+ * acgroff.m4 (GROFF_PROG_YACC): New macro.
+ * configure.in: Use GROFF_PROG_YACC.
+
+ * acgroff.m4 (GROFF_PROG_CCC): Don't add -O automatically for gcc
+ and g++.
+ * Makefile.in (OPTIMIZE): New define.
+ (DEBUG): Empty by default.
+ (CCFLAGS, CFLAGS): Include $(OPTIMIZE).
+
+ * acgroff.m4 (GROFF_SYS_SIGLIST): Don't quote program.
+ (GROFF_ARRAY_DELETE): Likewise.
+ (GROFF_CC_COMPILE_CHECK): Quote use of $2 and $3.
+
+ * troff/env.cc (trie::~trie): Make virtual to shut up g++.
+
+ * devps/psstrip.sed: Use different delimiter on last line (so that
+ it works with BSD 4.4 sed.)
+
+Mon Mar 29 17:07:14 1993 James Clark (jjc at jclark)
+
+ * devps/psstrip.sed: Delete comments.
+
+ * acgroff.m4 (AC_GETOPT): Don't test whether <unistd.h> declares
+ optind, opterr, optarg.
+ * lib.h: When UNISTD_H_DECLARES_GETOPT is defined, declare optind,
+ opterr, optarg.
+
+Sun Mar 28 17:44:25 1993 James Clark (jjc at jclark)
+
+ * Makefile.in (check): Dummy target.
+
+Wed Mar 3 04:53:38 1993 James Clark (jjc at jclark)
+
+ * Version 1.07 released.
+
+ * Integrate mm 1.11.
+
+ * tbl/table.cc (alphabetic_block_entry::print): start_row was used
+ where start_col was meant.
+
+Thu Feb 25 07:55:36 1993 James Clark (jjc at jclark)
+
+ * grog/grog.sh, grog/grog.pl: Recognize PH and SA as -mm macros.
+
+Wed Feb 24 10:15:34 1993 James Clark (jjc at jclark)
+
+ * troff/input.cc (token::next): Make \z\o'...' and similar things
+ work.
+
+ * env.h (MARGIN_CHARACTER_ON, MARGIN_CHARACTER_NEXT): New
+ constants.
+ (environment): Add margin_character_flags member.
+ * env.cc (environment::environment(symbol),
+ environment::environment(const environment *): Initialize
+ margin_character_flags.
+ (margin_character): Rewrite.
+ (environment::output_line): Add a margin character if
+ margin_character_flags is non-zero. Turn off the
+ MARGIN_CHARACTER_NEXT bit. If that makes margin_character_flags
+ zero, use margin_character_node without copying and then set
+ margin_character_node to 0.
+
+ * devps/DESC.in: Change minimum size to 1000.
+
+Tue Feb 23 14:57:49 1993 James Clark (jjc at jclark)
+
+ * troff/symbol.h (symbol::hash): Change return type to unsigned
+ long.
+ * troff/dictionary.cc (dictionary::lookup, dictionary::remove):
+ Add casts to int.
+
+ * test-groff: Use -r rather than -x.
+
+ * grops/psfig.diff: Include in distribution again.
+
+Mon Feb 22 09:10:44 1993 James Clark (jjc at jclark)
+
+ * Makefile.in (dist): Use gzip.
+
+Sun Feb 21 11:12:53 1993 James Clark (jjc at jclark)
+
+ * acgroff.m4 (GROFF_GETOPT): Check for declaration of getopt() in
+ unistd.h as well as in stdlib.h.
+ * include/lib.h: Include <stdlib.h> is STDLIB_H_DECLARES_GETOPT is
+ defined; otherwise include <sys/types.h> and <unistd.h> if
+ UNISTD_H_DECLARES_GETOPT is defined.
+
+ * configure.in: use builtin(include, ... rather than include(...
+ * configure: Regenerate with autoconf 1.3.
+
+ * libdriver/print.cc (printer::adjust_arc_center): Use new
+ algorithm suggested by Andy Fyfe.
+
+ * libdriver/printer.cc (printer::adjust_arc_center): New function.
+ * include/printer.h: Declare this.
+ * grops/ps.cc (ps_printer::draw): Use it.
+ * grodvi/dvi.cc (dvi_printer::draw): Use it.
+
+Fri Feb 19 23:13:51 1993 James Clark (jjc at jclark)
+
+ * Makefile.comm (.man.n): Replace macrodir by tmacdir.
+
+Thu Feb 11 16:46:59 1993 James Clark (jjc at jclark)
+
+ * eqn/main.cc (main): Handle "eqn -".
+
+Mon Jan 4 20:29:56 1993 James Clark (jjc at jclark)
+
+ * tmac/tmac.e (++): Install fix from comp.bugs.4sd.
+
+ * mm: Integrate version 1.08.
+
+ * pic/troff.cc (troff_output::finish_picture): Set
+ EQN_NO_EXTRA_SPACE reg to 0 rather than removing it.
+ * eqn/box.cc (box::extra_space): Set EQN_NO_EXTRA_SPACE_REG to 0
+ if it's not defined. Check whether the register is non-zero rather
+ than whether it's not defined.
+ * tmac.e ({, <): Make argument to \x zero if \n(0x is non-zero.
+
+ * indxbib/indxbib.cc: Move all signal handling into...
+ * indxbib/signal.c: New file.
+ * configure.in: Call AC_RETSIGTYPE.
+
+ * acgroff.m4 (GROFF_STRUCT_EXCEPTION): New macro.
+ * configure.in: Call GROFF_STRUCT_EXCEPTION.
+ * libgroff/matherr.c: Protect with ifdef HAVE_STRUCT_EXCEPTION.
+
+ * troff/input.cc (token::token, token::operator=): Work round SGI
+ C++ bug.
+ * pic/object.cc (position::position): Likewise.
+
+Mon Dec 28 21:50:21 1992 James Clark (jjc at jclark)
+
+ * pic/pic.h: Move declaration of hypot().
+
+Wed Dec 16 12:28:29 1992 James Clark (jjc at jclark)
+
+ * pic/pic.h: Declare hypot().
+
+ * pic/pic.h: Define M_PI if necessary.
+
+Thu Dec 10 12:03:29 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.e (re): Add alternative version that doesn't use groff
+ `.ta T' feature.
+
+ * devps/prologue.ps (RE): Handle the possibility that the old font
+ doesn't have a FontName entry.
+
+Wed Dec 2 10:25:29 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.e (fam): Redefine to set family in environment 2.
+ (@C): Use @fam not fam.
+
+Thu Nov 26 16:01:25 1992 James Clark (jjc at jclark)
+
+ * lookbib/lookbib.cc (main): Change type of start to const char *.
+ * lkbib/lkbib.cc (main): Likewise.
+
+ * eqn/lex.cc (definition::definition): Don't use member
+ initializer syntax for members of anonymous unions.
+
+ * troff/input.cc (input_stack::backtrace): Change type of to const
+ char *.
+
+Wed Nov 25 13:43:09 1992 James Clark (jjc at jclark)
+
+ * include/stringclass.h (class string): Declare inline friend
+ functions as inline in class declaration.
+ * troff/hvunits.h (class hunits, class vunits): Likewise.
+ * include/refid.h (class reference_id): Likewise
+ * troff/troff.h (points_to_units(units), scale(units, double)):
+ Delete declarations.
+ * libdriver/input.cc (get_char): Delete declaration.
+ * include/lib.h: Change 2nd argument of getopt from const char **
+ to char **.
+ * troff/symbol.cc (symbol::symbol): Cast `new char *[n]' to `const
+ char **' before assigning to a `const char **'.
+ * tbl/table.cc: Delete extra declarations of prints().
+
+Tue Nov 24 14:33:13 1992 James Clark (jjc at jclark)
+
+ * libgroff/font.cc (font::load_desc): Cast `new char *[n]' to `const
+ char **' before assigning to a `const char **'.
+
+ * libgroff/errarg.cc (errarg::errarg): Don't use member
+ initializer syntax for members of anonymous unions.
+
+Sat Nov 21 05:02:23 1992 James Clark (jjc at jclark)
+
+ * mm: Integrate version 1.07.
+
+Tue Nov 17 16:44:27 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (translate2): Rename to
+ (translate_no_transparent).
+ (init_input_requests): Rename tr2 to trnt.
+
+Mon Nov 16 09:49:32 1992 James Clark (jjc at jclark)
+
+ * troff/charinfo.h (class charinfo): Add transparent_translate field.
+ (charinfo::set_translation, charinfo::set_special_translation):
+ Add second argument that specifies value for
+ transparent_translate.
+ (charinfo::get_translation, charinfo::get_special_translation):
+ Add optional second argument that specifies whether translation is
+ being used for transparent throughput.
+ * troff/input.cc (charinfo::set_translation,
+ charinfo::set_special_translation): Handle second argument.
+ (charinfo::charinfo): Initialize transparent_translate.
+ (translate): Split main part off into
+ (do_translate): New function. Pass argument saying whether
+ translation applies to transparent throughput.
+ (translate2): New request.
+ (init_input_requests): Bind translate2 to `tr2'.
+
+Wed Nov 11 11:43:20 1992 James Clark (jjc at jclark)
+
+ * tbl/table.h (class table): Add `nokeep' flag.
+ * tbl/main.cc (process_options): Handle `nokeep' option.
+ * tbl/table.cc (table::init_output, table::do_row, table::do_top,
+ table::do_bottom): Don't output keep/release macro definitions or
+ calls when `nokeep' option has been specified.
+
+Sat Nov 7 01:28:33 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.Xps (Xps-char): Use " as delimiter for \Z.
+
+Wed Nov 4 16:29:04 1992 James Clark (jjc at jclark)
+
+ * tbl/table.cc (table_entry::divert, block_entry::do_divert,
+ block_entry::divert, alphabetic_block_entry::divert): Add extra
+ argument giving column separation.
+ (table::compute_widths): Pass column separation to
+ table_entry::divert().
+ (block_entry::do_divert): If an entry spans multiple columns and a
+ minimumum width has been specified for each column, then set the
+ line length to the sum of the widths (plus possibly the column
+ separations).
+
+ * troff/input.cc (set_escape_char): Don't set the escape_char
+ until after calling has_arg().
+
+Tue Nov 3 11:23:27 1992 James Clark (jjc at jclark)
+
+ * tbl/table.cc (table::do_top): Add missing \s0 for double box
+ case.
+
+ * tbl/table.cc (table::print_double_hline): Avoid extra new line
+ in case where r > nrows - 1.
+
+ * tbl/table.cc (BODY_HEIGHT): Deleted.
+ (LINE_SEP): New definition.
+ (table::print_single_hline, table::print_double_hline,
+ table::compute_vrule_top_adjust, table::compute_vrule_bot_adjust,
+ table::do_row, table::do_top): Use LINE_SEP space before a line
+ instead of \n[.v]-BODY_HEIGHT-BODY_DEPTH.
+
+ * tbl/table.cc (text_entry::print_contents): New function.
+ (text_string_name, right_text_string_name): Deleted.
+ (TEXT_STRING, RIGHT_TEXT_STRING): Deleted.
+ (simple_text_entry::do_width, numeric_text_entry::do_width,
+ alphabetic_text_entry::do_width): Don't store the contents of the
+ entry in a string.
+ (left_text_entry::simple_print, right_text_entry::simple_print,
+ center_text_entry::simple_print,
+ alphabetic_text_entry::simple_print,
+ numeric_text_entry::simple_print): Print the entry directly
+ instead of using the stored string.
+
+Fri Oct 30 10:39:32 1992 James Clark (jjc at jclark)
+
+ * devps/Makefile: Strip PostScript files.
+ * devps/prologue: Rename to...
+ * devps/prologue.ps.
+ * devps/psstrip.sed: New file.
+ * devps/download: Use .pfa rather than .ps for installed versions
+ of fonts.
+
+Thu Oct 29 09:14:43 1992 James Clark (jjc at jclark)
+
+ * troff/env.cc (input_trap): Give a warning if the argument is out
+ of range.
+
+ * troff/env.cc (adjust): Treat negative argument as missing. Round
+ argument > 5 down to 5.
+
+ * troff/env.cc (center, right_justify): Make negative argument zero.
+
+ * troff/div.cc (page_offset, vertical_position_traps): Treat
+ invalid argument as missing.
+ * troff/env.cc (line_spacing, line_length, title_length, indent,
+ underline, hyphen_line_max_request, control_char,
+ no_break_control_char, widow_control_request, adjust, input_trap,
+ point_size): Likewise.
+ * troff/node.cc (ligature, kern_request, bold_font, track_kern,
+ constant_space): Likewise.
+ * troff/input.cc (compatible, shift, warn_request,
+ set_escape_char): Likewise.
+
+ * tbl/main.cc (format::format): Avoid doing `new int[0]'.
+ * tbl/table.cc (table::table): Likewise.
+
+ * Makefile.dev (install_dev): depends on $(DEVFILES).
+
+Wed Oct 28 08:30:57 1992 James Clark (jjc at jclark)
+
+ * devX75, devX75-12, devX100, devX100-12: New directories.
+ * Makefile.in: Add these to DEVDIRS.
+
+ * troff/Makefile.sub, eqn/Makefile.sub, indxbib/Makefile.sub,
+ afmtodit/Makefile.sub, tmac/Makefile.sub, nroff/Makefile.sub,
+ grog/Makefile.sub, mm/Makefile.sub (uninstall_sub): New target.
+ * Makefile.in (uninstall, uninstall_sub, uninstall_dirs): New
+ targets.
+ * Makefile.ccpg, Makefile.cpg, Makefile.dev, Makefile.man
+ (uninstall): New target.
+ * Makefile.comm (uninstall, uninstall_sub, uninstall_man,
+ uninstall_prog, uninstall_dev): New targets.
+
+ * troff/div.cc (return_request): Treat an invalid argument as
+ missing.
+
+Mon Oct 26 11:33:47 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.e ((f): Set up the environment even when there's a
+ current diversion. Transparently throughput a call to @N.
+ (@N): New macro.
+
+Thu Oct 22 05:05:59 1992 James Clark (jjc at jclark)
+
+ * tbl/table.cc (table::compute_vrule_top_adjust): Round adjustment
+ up to vertical resolution.
+
+ * tbl/table.cc (table::do_row): Change row number after printing
+ stuff list.
+
+ * pic/lex.cc (get_token_after_dot): Make .left and .right work.
+
+Wed Oct 21 14:46:45 1992 James Clark (jjc at jclark)
+
+ * Rename CHANGES to NEWS.
+
+Tue Oct 20 23:25:21 1992 James Clark (jjc at jclark)
+
+ * libgroff/new.cc (operator new): Avoid calling malloc(0).
+
+Mon Oct 19 09:10:13 1992 James Clark (jjc at jclark)
+
+ * man.ultrix: Removed.
+
+Sun Oct 18 06:35:15 1992 James Clark (jjc at jclark)
+
+ * Makefile.comm (extraclean): Delete files whose names begin with
+ `='.
+
+ * pic/troff.cc (troff_output::text): Fix typo in implementation of
+ aligned text.
+
+Sat Oct 10 09:32:29 1992 James Clark (jjc at jclark)
+
+ * troff/env.cc (hyphenate_request, vertical_spacing, no_number):
+ * troff/div.cc (page_length, need_space, space_request): Treat
+ invalid optional argument as missing.
+ * troff/env.cc (number_lines): If the first argument is present
+ but not a number, turn on line numbering, don't change the next
+ line number and parse the remaining arguments.
+
+ * tmac/tmac.e (@q): Do the `ne' before changing to environment 2.
+
+Thu Oct 8 10:24:40 1992 James Clark (jjc at jclark)
+
+ * eqn/box.h: Change declaration accordingly.
+ * eqn/box.cc (set_gsize): Change return type to int. Return 0 if
+ the specified size was bad but don't give an error. Check for
+ overflow.
+ * eqn/main.cc (main): Change caller. Leave validation to set_gsize.
+ * eqn/lex (do_size): Likewise.
+
+Wed Oct 7 09:48:59 1992 James Clark (jjc at jclark)
+
+ * acgroff.m4 (GROFF_PROG_CCC): Use fopen when checking for C++
+ compatible headers.
+
+Sun Oct 4 18:24:02 1992 James Clark (jjc at jclark)
+
+ * tbl/table.cc (table::init_output): Improve error message when
+ table won't fit on one page.
+
+Fri Oct 2 10:41:40 1992 James Clark (jjc at jclark)
+
+ * pic/troff.cc (troff_output::start_picture): Generate line
+ containing a horizontal motion equal to the width of the picture.
+
+ * groff/groff.cc (main): Allow PROG_PREFIX to be set at runtime
+ using GROFF_COMMAND_PREFIX environment variable.
+
+Fri Sep 25 11:40:40 1992 James Clark (jjc at jclark)
+
+ * mdate.sh: Use $NF rather than $(NF).
+
+Tue Sep 22 09:47:24 1992 James Clark (jjc at jclark)
+
+ * pic/main.cc (main): Use %1 not %c in argument to warning.
+
+ * eqn/main.cc (main): Output code to check that geqn was given the
+ correct -T option.
+
+Mon Sep 21 10:59:16 1992 James Clark (jjc at jclark)
+
+ * Makefile.in (dist): Instead of doing `make -f ../Makefile', do
+ `ln -s ../Makefile .; make; rm -f Makefile'.
+
+ * troff/hyphen: Rename to...
+ * troff/hyphen.us:
+ * troff/input.cc (main): Delete -H option. Don't call
+ read_hyphen_file().
+ * troff/env.cc: Include searchpath.h and macropath.h.
+ (exception_dictionary): Deleted.
+ (ht): Deleted.
+ (read_hyphen_file): Deleted.
+ (hyphenation_language): New struct.
+ (class trie, class hyphen_trie): Move declarations up.
+ (trie_node::~trie_node): Deleted.
+ (trie::delete_trie_node): New function.
+ (trie::do_delete): New pure virtual function.
+ (hyphen_trie::do_delete): New function.
+ (trie::~trie): New function.
+ (hyphen_trie::~hyphen_trie): New function.
+ (trie::clear): No need to check that tp is not 0.
+ (current_language, language_dictionary): New variables.
+ (hyphen_word): Give an error if no current language. Use
+ exceptions dictionary in current language.
+ (hyphen_trie::read_patterns_file): Find file using macro_path.
+ Allow comments (starting with %) in patterns file. Don't make it
+ a fatal error if the file can't be found.
+ (hyphenate): Return if no current language. Get the exceptions
+ dictionary and the hyphenation patterns from the current language.
+ (set_hyphenation_language): New variable.
+ (hyphenation_patterns_file): New function.
+ (hyphenation_language_reg): New class.
+ (hyphenation_language_reg::get_string): New function.
+ (init_hyphen_requests): Bind "hla" to set_hyphenation_language and
+ "hpf" to hyphenation_patterns_file. Initialize `.hla' number
+ register.
+ * groff/groff.cc (main, help, synopsis): Delete -H option.
+ * include/Makefile.sub: Don't define HYPHENFILE.
+ * Makefile.in: Delete hyphenfile variable and remove from MDEFINES.
+ * Makefile.comm (.man.n): Don't substitute for HYPHENFILE.
+ * tmac/troffrc: Set hyphenation language to `us'. Load `hyphen.us'
+ hyphenation patterns.
+
+Sun Sep 20 09:33:02 1992 James Clark (jjc at jclark)
+
+ * eqn/neqn.sh: New file.
+ * eqn/Makefile.sub: Handle neqn.sh.
+
+ * eqn/eqn.h: Declare `nroff' variable.
+ * eqn/box.cc (param_table): Add `nroff' param.
+ (nroff): Define it.
+ * eqn/lex.cc (yylex): Handle TDEFINE and NDEFINE using `nroff'
+ variable.
+ * tmac/eqnrc: Set `nroff' to 1 for -Tascii or -Tlatin1.
+
+ * troff/troff.h (WARN_FONT): New warning.
+ (WARN_TOTAL): Change accordingly.
+ * troff/input.cc (DEFAULT_WARNING_MASK): Include WARN_FONT.
+ (warning_table): Add WARN_FONT.
+ * troff/node.cc (mount_font_no_translate): Pass argument to
+ font::load_font. If this is non-zero, give a warning.
+ Don't give an error message when accessing a font that has already
+ been found to be invalid.
+ * include/font.h (font::load, font::load_font): Add additional
+ optional argument which suppresses error message if the font is
+ not found.
+ * libgroff/font.cc (font::load_font): Handle additional argument.
+ (font::load): Add additional argument. If this is non-null, set it
+ to 1 and don't give error message.
+
+ * include/printer.h (printer::end_page): Add argument giving
+ length of page.
+ * libdriver/input.cc (do_file): Pass this.
+ * grops/ps.cc (ps_printer::end_page): Add argument.
+ * grodvi/dvi.cc (dvi_printer::end_page,
+ draw_dvi_printer::end_page): Add argument.
+ * grotty/tty.cc (class tty_printer): Remove lines_per_page and
+ columns_per_page members. New member nlines.
+ (DEFAULT_LINES_PER_PAGE): Deleted.
+ (tty_printer::tty_printer): Don't compute lines_per_page from
+ font::paperlength. Don't compute columns_per_page from
+ font::paperwidth.
+ (tty_printer::add_char): Don't check horizontal position against
+ columns_per_page. Grow glyphs vector if necessary.
+ (tty_printer::end_page): Add argument giving page_length in units.
+ Discard lines past end of page.
+
+Wed Sep 16 06:29:52 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.tty-char: Fix definition of \(/l.
+
+ * tmac/tmac.X: Define \(en.
+
+Tue Sep 15 10:37:13 1992 James Clark (jjc at jclark)
+
+ * acgroff.m4 (GROFF_PRINT): If a system has lpr and lp but not
+ lpq, then use lp rather than lpr.
+
+ * tmac/tmac.s (par@reset): Don't call `ad'.
+ (par*env-init): Call `ad'.
+
+Sun Sep 13 18:48:20 1992 James Clark (jjc at jclark)
+
+ * mdate.sh: Use $(NF) instead of $6 to extract year from output of
+ date.
+
+ * troff/symbol.cc: #undef BLOCK_SIZE if it's defined.
+ * indxbib/indxbib.cc: Likewise.
+
+Sun Sep 6 09:44:46 1992 James Clark (jjc at jclark)
+
+ * libgroff/putenv.c: New file.
+ * libgroff/Makefile.sub: Add putenv.c to CSRCS.
+ * Makefile.in: Say that putenv.o can be one of LIBOBJS.
+ * configure.in: Test for putenv with AC_REPLACE_FUNCS. Test for
+ stdlib.h with AC_HAVE_HEADERS.
+
+Sat Sep 5 18:11:52 1992 James Clark (jjc at jclark)
+
+ * indxbib/dirnamemax.c: Include <sys/dir.h> only if <dirent.h>
+ does not exist.
+
+Fri Sep 4 09:43:26 1992 James Clark (jjc at jclark)
+
+ * eqn/box.cc (gsize): Make it an int.
+ (set_gsize): Parse argument handling increment or decrement.
+ (box::top_level): Convert gsize to a string.
+
+ * troff/input.cc (exit_troff): Make buf unsigned char [].
+ Call to make_temp_iterator casts buf to char*.
+
+ * Makefile.in ($(TARGETS), dot): Pass $(MDEFINES) to recursive makes.
+
+ * Makefile.ccpg (depend.temp): Depends on $(YTABC).
+ * Makefile.cpg (depend.temp): Likewise.
+
+ * Makefile.dep: Remove Makefile.dep from $(REALCLEANFILES).
+
+ * Makefile.comm: Add y.output to MOSTLYCLEANFILES.
+
+Thu Sep 3 08:01:55 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.s (B, I, BI, CW): Rewrite avoiding aliases.
+
+Tue Sep 1 18:24:53 1992 James Clark (jjc at jclark)
+
+ * Version 1.06 released.
+
+ * Integrate mm 1.04.
+
+Fri Aug 28 11:28:19 1992 James Clark (jjc at jclark)
+
+ * Makefile.comm, Makefile.ccpg, Makefile.cpg: Fix TAGS target.
+
+Thu Aug 27 11:03:33 1992 James Clark (jjc at jclark)
+
+ * afmtodit/afmtodit.pl: Add -n option that disables generation of
+ ligatures command.
+ * devps/generate/Makefile (CR, CB, CI, CBI): Pass -n flag to
+ afmtodit. Regenerate.
+
+ * tmac/tmac.e ()z): Adjust _b if necessary so as to avoid moving
+ @f back past the current position.
+
+ * tmac/tmac.e: Change calls to @R so that comments are not part of
+ arguments.
+
+Tue Aug 25 10:42:07 1992 James Clark (jjc at jclark)
+
+ * configure.in: Check for mkstemp with AC_HAVE_FUNCS.
+
+ * acgroff.m4 (GROFF_PROG_CCC): Don't check for <osfcn.h>. Instead
+ check that we can link a call to a function declared in <stdio.h>.
+ (GROFF_UNISTD_H): New macro.
+ * configure.in: Call it.
+ * Makefile.in: Document it.
+ * include/posix.h: New file.
+ * troff/troff.h: Don't include <osfcn.h>
+ * troff/input.cc: Include posix.h.
+ * libgroff/new.cc, libgroff/tmpfile.cc: Include posix.h rather than
+ osfcn.h.
+ * indxbib/indxbib.cc, libbib/{search.cc,linear.cc,index.cc}:
+ Include posix.h rather <sys/types.h>, <sys/stat.h>, <osfcn.h>,
+ <fcntl.h>.
+ * indxbib/indxbib.cc (S_IRUSR, S_IRGRP, S_IROTH): Delete definitions.
+ * libbib/index.cc (S_ISREG, O_RDONLY): Delete definitions.
+ * libbib/search.cc (O_RDONLY): Delete definition.
+ * refer/refer.cc, include/driver.h, pic/pic.h, groff/groff.cc:
+ Don't include <osfcn.h>.
+
+ * acgroff.m4 (GROFF_TIME_T): New macro.
+ * configure.in: Call it.
+ * Makefile.in: Document it.
+
+ * acgroff.m4 (GROFF_TRADITIONAL_CPP): New macro.
+ * configure.in: Call it.
+ * Makefile.in: Document -DTRADITIONAL_CPP.
+ * include/ptable.h: Don't include generic.h.
+ (name2): Define it.
+
+ * tmac/tmac.s (][): Make [T1 and [T2 aliases for [T.
+ Afterwards remove [T1 and [T2.
+ (ref*spec!0, ref*spec!2): Use T1 rather than T.
+ (ref*spec!1, ref*spec!4, ref*spec!4): Use T2 rather than T.
+ (ref*add-T2): Renamed from ref*add-T.
+ (ref*add-T1): New macro.
+
+Mon Aug 24 11:11:11 1992 James Clark (jjc at jclark)
+
+ * acgroff.m4 (AC_PROG_CCC): Use GROFF_EXIT rather than exit 1.
+
+ * libbib/index.cc: Include <fcntl.h>.
+ (O_RDONLY): Define if necessary.
+ (make_index_search_item, index_search_item_iterator::get_tag,
+ index_search_item::check_files): Use O_RDONLY.
+ * libbib/search.cc: Include <fcntl.h>, <sys/types.h>, <sys/stat.h>.
+ (O_RDONLY): Define if necessary.
+ (search_list::add_file): Use O_RDONLY.
+ * indxbib/indxbib.cc: Include <fcntl.h>, <sys/types.h>,
+ <sys/stat.h>.
+ (S_IRUSR, S_IRGRP, S_IROTH): Define if necessary.
+ (main): Use these.
+
+ * libbib/index.cc (S_ISREG): Define it if necessary.
+ (index_search_item::load): Use S_ISREG.
+
+ * include/driver.h: Include <errno.h>.
+
+Sun Aug 23 11:32:18 1992 James Clark (jjc at jclark)
+
+ * eqn/box.cc (body_height): Increase default value to 85.
+ (body_depth): Increase default value to 35.
+
+Fri Aug 21 05:34:42 1992 James Clark (jjc at jclark)
+
+ * eqn/pbox.h (SAVE_FONT_STRING): Define it.
+ * eqn/box.cc (box::top_level): Hide use of \R in a string that is
+ protected from expansion with \E.
+
+ * acgroff.m4 (GROFF_PAGE): Use `case' to test domain.
+
+ * Makefile (Makefile): New target.
+
+ * Makefile.sub (configure, distfiles): New targets.
+
+ * acgroff.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Avoid using ${var:-val}
+ construct.
+
+Thu Aug 20 12:27:26 1992 James Clark (jjc at jclark)
+
+ * eqn/box.cc (param_table): Add body_height and body_depth.
+
+ * eqn/lex.cc (def_table): Make circumflex in hat_def roman.
+
+Tue Aug 18 16:24:25 1992 James Clark (jjc at jclark)
+
+ * psbb/Makefile.sub: Don't link with libgroff.a.
+
+ * acgroff.m4 (GROFF_PUTENV): New macro.
+ * configure.in: Call GROFF_PUTENV.
+ * Makefile.in: Document STDLIB_H_DECLARES_PUTENV.
+ * groff/groff.cc: Don't declare putenv if STDLIB_H_DECLARES_PUTENV
+ is defined.
+
+ * troff/env.cc (distribute_space): Rename force_forward argument
+ to force_reverse. Reverse the list if force_reverse is true.
+
+Mon Aug 17 17:49:05 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.an: Don't define a string `T'. Just define Tm.
+
+ * eqn/pile.cc (matrix_box::compute_metrics): Don't allow computed
+ height or depth to be negative. Guard against SUP_RAISE quantity
+ being negative.
+
+Sat Aug 15 08:18:54 1992 James Clark (jjc at jclark)
+
+ * devps/generate/textmap: Add `an' (arrowhorizex).
+ * tmac/tmac.ps: \(an overlaps horizontally.
+ * tmac/tmac.dvi, tmac/tmac.tty: Add `an'.
+
+ * devps/symbolchars: Add arrowverttp, arrowvertbt.
+ * devps/textmap: Add arrowvertex.
+ * eqn/delim.cc (delim_table): Add uparrow, downarrow and
+ updownarrow delimiters.
+ * tmac/tmac.ps, tmac/tmac.X: Add definition of \(va.
+
+ * tbl/table.cc (simple_entry::position_vertically,
+ block_entry::position_vertically): For a centered entry, perform
+ the motion in two stages.
+
+ * refer/refer.cc (split_punct): Don't call lookup_token if there
+ is no token.
+
+Fri Aug 14 11:14:58 1992 James Clark (jjc at jclark)
+
+ * troff/input.cc (token::next): Delete token_node after copying
+ token.
+
+ * grodvi/grodvi.cc (dvi_printer::dvi_printer): Initialize
+ cur_point_size.
+
+ * libdriver/printer.cc (printer::load_font): Delete old_font_table.
+
+ * grops/ps.cc (ps_printer::define_encoding): Delete elements of vec.
+
+Tue Aug 11 13:50:38 1992 James Clark (jjc at jclark)
+
+ * grops/ps.cc (usage): -b option takes an argument.
+
+ * devps/prologue (PLG): New procedure.
+ * grops/ps.cc (main, usage): New -g option.
+ (ps_printer::~ps_printer): If guess_flag is set, guess the paper
+ length using PLG.
+
+Mon Aug 10 11:17:53 1992 James Clark (jjc at jclark)
+
+ * include/cset.h: Include <limits.h> if we have it.
+
+ * libgroff/illegal.cc: New file.
+ * include/lib.h (illegal_input_char): Use table.
+ * troff/input.cc (ESCAPE_RIGHT_PARENTHESIS): Renumber to 0206.
+ * pic/lex.cc (ARG1): Renumber to 14.
+ * eqn/lex.cc (ARG1): Likewise.
+
+ * troff/Makefile.sub (majorminor.cc): Handle 3 part versions
+ (eg 1.05.90) correctly.
+
+Sun Aug 9 13:35:43 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.e (sr): Deleted. Set $r and $R directly.
+ Rename $r and $R registers to $v and $V.
+ ($r, $R): Initialize to 0.
+ (@v, @V): New macros.
+ (sz): Call @v.
+ (@M): Call @V.
+
+ * troff/input.cc (main, usage): Add -R option that says not to
+ load troffrc.
+ * eqn/main.cc (main, usage): Rename -n to -R.
+
+Sat Aug 8 00:16:00 1992 James Clark (jjc at jclark)
+
+ * devps/DESC.in: Leave font positions 5-9 blank.
+ * devdvi/DESC.in: Likewise.
+
+ * grog/grog.pl: Handle `.PS <file' correctly.
+
+ * troff/input.cc (input_stack::push): Improve error message when
+ input stack limit exceeded.
+
+Fri Aug 7 13:08:16 1992 James Clark (jjc at jclark)
+
+ * refer/refer.cc (main): Fix typo in handling of `a' option.
+
+ * refer/refer.cc (do_bib): In state START after a newline remain
+ in state START.
+
+ * groff/groff.sh: Deleted.
+ * groff/Makefile.sub: Delete handling of groff.sh.
+
+ * pic/troff.cc (troff_output::text): Test \n(0p rather than \*(.T
+ to determine whether to use \X'ps:...'.
+ * tmac/troffrc: Set 0p register to 0.
+ * tmac/tmac.ps: Set 0p register to 1.
+
+ * groff/groff.cc: Support -X option. Give warning for -TXps and
+ transform to -X -Tps. Pass troff a -r.X=1 option if -X is used.
+ * tmac/troffrc: Support -r.X=1.
+
+ * pic/troff.cc (troff_output::dot): Don't test
+ zero_length_line_flag.
+
+Thu Aug 6 13:32:08 1992 James Clark (jjc at jclark)
+
+ * include/lib.h: Declare getopt() and friends unless
+ STDLIB_H_DECLARES_GETOPT is defined.
+
+ * doc/chars.tr: Delete.
+ * man/groff_char.man: New file.
+
+Wed Aug 5 00:38:58 1992 James Clark (jjc at jclark)
+
+ * tmac/tmac.e (np, bu): Test \n($p with string expression in case
+ user has changed register format.
+
+Mon Aug 3 11:22:18 1992 James Clark (jjc at jclark)
+
+ * groff/groff.cc: Get rid of device_table. Get postprocessor from
+ `postpro' command in DESC file. Get spooler command from `print'
+ command in DESC file. Execute spooler command with /bin/sh.
+
+ * groff/groff.cc: Split Unix-specific parts into...
+ * groff/pipeline.c: New file.
+
+ * LICENSE: Delete.
+ * COPYING: New file.
+ * all files: Update copyright notices.
+
+ * Rearrange files. Redo Makefiles. Use autoconf.
+
+Sat Aug 1 09:36:50 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (charinfo_to_node_list): Interpret character
+ definition with escape_char of `\'.
+
+Tue Jul 28 12:20:12 1992 James Clark (jjc at jclark)
+
+ * lib/strerror.c, lib/iftoa.c, lib/itoa.c: Don't include lib.h.
+ Define INT_DIGITS as big enough for 64-bit integer.
+ * lib/strtol.c: Don't include lib.h.
+ * lib/lib.h: Delete ifdef __cplusplus stuff.
+
+Mon Jul 27 11:08:50 1992 James Clark (jjc at jclark)
+
+ * ps/devps/Makefile: Add DESC to DEVICEFILES. Separate out rule
+ for making DESC. Make $(FONTS) depend on DESC. afmtodit should
+ get DESC from current directory.
+
+Sun Jul 26 15:38:26 1992 James Clark (jjc at jclark)
+
+ * tbl/main.c (main): Always reset the line number when reading
+ from stdin.
+
+ * tbl/table.c (table::print_single_hline, table::print_double_hline,
+ table::define_bottom_macro, table::do_row, table::do_top): Round
+ vertical spacing up to vertical resolution.
+
+Fri Jul 24 14:32:07 1992 James Clark (jjc at jclark)
+
+ * ps/ps.h (enum resource_type): Avoid comma at end of
+ enumerator-list.
+ * dvi/dvi.c (class dvi_printer): Likewise.
+ * dvi/tfmtodit.c (gf::load): Likewise.
+ * refer/label.y (struct expression): Likewise.
+ * refer/refer.c (class label_processing_state): Likewise.
+ * refer/indxbib.c (do_file): Likewise.
+ * troff/troff.c (enum warning_type): Likewise.
+ * tbl/main.c (process_data): Likewise.
+ * troff/charinfo.h (class charinfo):
+
+Wed Jul 22 09:17:58 1992 James Clark (jjc at jclark)
+
+ * dvi/devdvi/textt.map: Add entry for `-'. Regenerate fonts.
+
+Tue Jul 21 11:39:26 1992 James Clark (jjc at jclark)
+
+ * groff.c: Move to new groff subdirectory.
+ * groff/Makefile: New file.
+ * Makefile: Remove handling of groff.c. Add groff to SUBDIRS.
+
+ * man/mdate.sh: Use ls -L if supported.
+
+ * Consolidate all header files produced by gendef into lib/defs.h.
+ * lib/macropath.c, lib/fontfile.c, lib/device.c: Include defs.h.
+ Don't include path.h.
+ * lib/Makefile (path.h): Don't generate.
+ * troff/input.c: Include defs.h. Don't include config.h.
+ * troff/Makefile (config.h): Don't generate.
+ * refer/index.h: Don't include suffix.h.
+ * refer/index.c: Include defs.h.
+ * refer/indxbib.c: Include defs.h.
+ * refer/refer.h, refer/lkbib.h: Don't include path.h. Include
+ defs.h.
+ * refer/Makefile (suffix.h, path.h): Don't generate.
+ * groff.c: Don't include config.h. Include defs.h.
+ * Makefile (config.h): Don't generate.
+ (lib/defs.h): Generate.
+ (topclean): Remove lib/defs.h.
+
+Mon Jul 20 10:12:57 1992 James Clark (jjc at jclark)
+
+ * lib/malloc.c, lib/getpagesize.h: Deleted.
+ * Makefile: Add COOKIE_BUG configuration option. Delete malloc
+ related stuff.
+ * lib/Makefile: Delete malloc-related stuff.
+ * lib/new.c: Workaround COOKIE_BUG if necessary.
+
+ * refer/lkbib.c, refer/indxbib.c: Don't include refer.h. Include
+ needed header files directly.
+ * refer/refer.h: Omit definition of DEFAULT_INDEX.
+ * Makefile: Include definition of DEFAULT_INDEX in path.h.
+
+Sun Jul 19 10:19:22 1992 James Clark (jjc at jclark)
+
+ * lib/font.c (FONT_COMMAND_HANDLER): Pass command name and single
+ argument.
+ * lib/font (font::load_desc, font::load): Don't split argument of
+ unknown command.
+ (font::handle_unknown_font_command): Change type.
+ * ps/ps.c (ps_font::handle_unknown_font_command,
+ handle_unknown_desc_command): Change type.
+ * dvi/dvi.c (dvi_font::handle_unknown_font_command): Change type.
+
+Fri Jul 17 11:12:49 1992 James Clark (jjc at jclark)
+
+ * lib/font.h (font::handle_unknown_font_command): Add file and
+ line arguments.
+ * lib/font.c (font::handle_unknown_font_command):
+ * ps/ps.c (ps_font::handle_unknown_font_command):
+ * dvi/dvi.c (dvi_font::handle_unknown_font_command): Add file and
+ lineno arguments. Use _with_file_and_line functions for error
+ reporting.
+
+ * lib/fontfile.c (font::unknown_desc_command_handler): New static
+ data member.
+ * lib/font.c (font::set_unknown_desc_command_handler): New
+ function.
+ (font::load_desc): For unknown commands, call
+ unknown_desc_command_handler if not null.
+ * lib/font.h (class font): Declare them.
+ (FONT_COMMAND_HANDLER): New typedef.
+ * ps/ps.c (handle_unknown_desc_command): New function.
+ (main): Set bflag if we had a -b option. Call
+ font::set_unknown_desc_command_handler.
+ (broken.h): Don't include.
+ * ps/Makefile: No need for broken.h. Pass BROKEN_SPOOLER_FLAGS to
+ submake
+ * ps/devps/Makefile: Add `broken' command to DESC file using
+ BROKEN_SPOOLER_FLAGS.
+
+ * macros/tmac.e ([, ]): Add as synonyms for { and }.
+
+ * macros/tmac.e ($p): Only exdent if \$3 > 0.
+
+ * macros/tmac.e (@R, @S): New macros.
+ Declare @, po, $0, $i, $p, df, so, fu, bt, *, ?a, ?b, ?C, ?e, ?H,
+ ?I, ?n, ?o, ?R, ?s, ?T, ?W, ?w registers with @R.
+ Declare $H, $[0-9], .. macros with @S.
+ Declare |0, |1, |2, |3 strings with @S.
+
+ * macros/tmac.e (@S): Rename to @U.
+
+ * macros/tmac.e (@z): Define @b and bp as empty instead of
+ deleting them,
+
+ * macros/tmac.e (@m): Deleted.
+ (@h): Don't call @m.
+ (@z): Don't set @m trap.
+
+ * macros/tmac.e ($h, $f): Define |z as empty string.
+
+ * macros/tmac.e (@D): Rework to avoid unbalanced .el requests.
+ (@q): Likewise.
+
+ * macros/tmac.e (@h): Set ?H, ?C , ?s registers to 0 rather than
+ removing them.
+ ()f): Likewise for * register.
+
+ * macros/tmac.e (sr): Don't ever scale the arguments. If the third
+ argument is missing, don't change $R. Call sr with three
+ arguments when initializing.
+
+Thu Jul 16 12:17:12 1992 James Clark (jjc at jclark)
+
+ * macros/tmac.e (sr): New macro.
+ Initialize $r and $R using sr.
+
+ * macros/tmac.e (,): Delete \*(#[.
+
+ * troff/env.c (set_tabs): Read the tab type even if the position
+ is bad. Allow the position of the first tab stop to be negative.
+
+Wed Jul 15 13:14:37 1992 James Clark (jjc at jclark)
+
+ * refer/dirnamemax.c: Use pathconf() if <unistd.h> defines
+ _POSIX_VERSION.
+ * refer/Makefile: Compile dirnamemax.c using -DHAVE_UNISTD_H
+ rather than -DPATHCONF_MISSING.
+ * Makefile: Get rid of PATHCONF_MISSING.
+
+ * refer/map.c: New file.
+ * refer/index.c: Interface to mmap through map.c. Rename map_size
+ to map_len.
+ * refer/Makefile: Handle map.c.
+ * Makefile: Include -DHAVE_MMAP in OLDCFLAGS rather than CFLAGS.
+
+Tue Jul 14 14:15:20 1992 James Clark (jjc at jclark)
+
+ * Makefile: RANLIB should be `true' if there is no ranlib.
+ * lib/Makefile (libgroff.a): Simplify.
+ * driver/Makefile (libdriver.a): Simplify.
+
+ * Makefile: Change -DWAIT_COREDUMP_0200 to -DWCOREFLAG=0200.
+ * groff.c (WCOREDUMP): Use WCOREFLAG. Define only if not already
+ defined.
+
+Sat Jul 11 09:19:17 1992 James Clark (jjc at jclark)
+
+ * troff/env.c (compare_ranges): Declare as extern "C".
+
+ * troff/input.c (init_registers): Use `struct tm' instead of `tm'.
+
+ * macros/tmac.s, macros/tmac.e: Change .nx /dev/null to .nx.
+
+Wed Jul 8 11:52:27 1992 James Clark (jjc at jclark)
+
+ * pic/troff.c (troff_output::text): Merge in grops_output::text,
+ but conditionalize use of \X based on \*(.T.
+ (grops_output::*): Deleted.
+ * pic/output.h: Delete declaration of make_grops_output.
+ * pic/main.c (main): Ignore -p and -x. driver_extension_flag is 1
+ by default. -n sets it to 0.
+ (usage): Corresponding changes.
+ * groff.c (main): Don't pass -x or -p to pic.
+ * groff.sh: Likewise.
+
+ * ps/ps.c (ps_printer::do_exec, ps_printer::do_file): Force ndefs
+ to be non-zero.
+
+ * ps/devps/afmtodit: Change calculation of asc_boundary and
+ desc_boundary. Make these bounds inclusive.
+ * ps/devps: Regenerate font files.
+
+Tue Jul 7 13:14:15 1992 James Clark (jjc at jclark)
+
+ * macros/tmac.latin1: New file.
+ * macros/tmac.tty-char: Use tmac.latin1.
+ (tmac.tty-tr): Deleted.
+ * macros/Makefile: Install tmac.latin1.
+ * macros/tmac.dvi: Use tmac.latin1.
+ * macros/troffrc: Translate \[char160] onto no-break space here.
+ * macros/{tmac.dvi,tmac.ps,tmac.tty,tmac.X75}: Don't do it here.
+
+Mon Jul 6 11:06:52 1992 James Clark (jjc at jclark)
+
+ * macros/tmac.Xps: Use `do' request.
+
+ * macros/tmac.ps: Use `do' request.
+
+ * macros/tmac.e (@C): Use `do' request.
+
+ * macros/tmac.X, macros/tmac.Xps: Moved from xditview.
+ * macros/Makefile: Install tmac.X*.
+
+ * tty/tmac.tty, tty/tmac.tty-char: Move to macros.
+ * tty/Makefile: Don't install tmac.tty*.
+ * macros/Makefile: Install tmac.tty*.
+
+ * dvi/tmac.dvi: Move to macros.
+ * dvi/Makefile: Don't install tmac.dvi.
+ * macros/Makefile: Install tmac.dvi.
+
+ * ps/tmac.ps*: Move to macros.
+ * ps/Makefile: Don't install tmac.ps*.
+ * macros/Makefile: Install tmac.ps*.
+
+ * eqn/box.c: Provide draw_lines parameter corresponding to -D
+ option.
+ * macros/eqnrc: Set draw_lines parameter based on device.
+ * groff.c: Don't pass -D flag to eqn.
+ * groff.sh: Likewise.
+ * eqn/main.c: Warn about use of -D.
+
+ * troff/input.c (process_startup_file): New function.
+ (main): Call process_startup_file().
+ * macros/troffrc: New file.
+ * macros/Makefile: Install troffrc.
+ * groff.c (main): Don't pass extra -m option to troff. For a
+ pseudo device pass the name of the pseudo device to troff using
+ -d.
+ * groff.sh: Likewise.
+ * groff.c (possible_command::prepend_arg): Deleted.
+
+ * troff/input.c (do_request): New function.
+ (init_input_requests): Bind "do" to do_request.
+
+ * eqn/main.c (main): Instead of loading eqnchar from device directory,
+ load eqnrc from macro directory.
+ * macros/eqnrc: New file.
+ * macros/Makefile: Install eqnrc.
+ * ps/devps/eqnchar: Deleted.
+ * ps/devps/Makefile: Don't install eqnchar.
+ * dvi/devdvi/eqnchar: Deleted.
+ * dvi/devdvi/Makefile: Don't install eqnchar.
+ * groff.c (main): Pass -M to eqn. Don't pass -F to eqn. New
+ variable optM.
+
+ * lib/device.[ch]: New files.
+ * lib/font.h (font::set_device_name, font::get_device_name):
+ Deleted.
+ * lib/fontfile.c: Use device.h.
+ * lib/Makefile: Handle device.[ch]. Make paths.h define DEVICE.
+ * troff/input.c: Delete definition of `device'.
+ (main): Don't initialize device.
+ * troff/troff.h: Include device.h rather than declaring device.
+ * troff/Makefile: No need to handle DEVICE.
+ * driver/input.c: Include device.h. Don't use
+ font::{set,get}_device_name.
+ * groff.c, Makefile: Rename device.h to config.h.
+ * groff.c: Use library device variable.
+ * eqn/main.c: Use library device variable.
+ * eqn/Makefile: No need to handle DEVICE.
+
+ * lib/searchpath.[ch]: New files.
+ * lib/Makefile: Handle searchpath.[ch].
+ * troff/input.c (open_file, init_dirs): Deleted.
+ (macro_dirs): Deleted.
+ (open_mac_file, macro_source): Use class search_path.
+ (add_string, struct string_list): Move definition.
+ (main): Change -M option to use macro_path. Delete call to
+ init_dirs().
+ * lib/fontfile.c (font::command_line_font_dir, font::open_file):
+ Rewrite to use class search_path.
+ * lib/font.h, lib/fontfile.c (font::cl_font_dirs): Deleted.
+ * lib/Makefile: fontfile.c depends on searchpath.h.
+ * lib/Makefile: Rename fontpath.h to paths.h. Make paths.h define
+ MACROPATH.
+ * lib/macropath.[ch]: New files.
+ * troff/Makefile: No need to handle MACROPATH.
+
+ * troff/input.c: Delete DUMP code.
+ * lib/fontfile.c, lib/font.h: Delete
+ font::forget_command_line_font_dirs.
+
+ * troff/input.c (push_token): New function.
+ (handle_first_page_transition): Use push_token().
+ (process_input_stack): Change handling of a space at the beginning
+ of the line.
+
+Sun Jul 5 17:11:09 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (font_dirs): Delete unused variable.
+
+ * eqn/lex.c (do_set): Correct error messages.
+
+Sat Jul 4 10:20:55 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (do_define_string): Allow the string name to be
+ followed immediately by a tab.
+ (define_character): Likewise.
+
+Thu Jul 2 10:59:15 1992 James Clark (jjc at jclark)
+
+ * ps/ps.c (ps_printer::draw): When drawing an arc, don't allow k to
+ be negative.
+
+ * troff/input.c (input_iterator::is_file): New virtual function.
+ (file_iterator::is_file): New function.
+ (input_stack::end_file): New function.
+ (input_stack::next_file): Handle the situation where there is no
+ file on the input stack correctly. Avoid making two passes over
+ the input stack.
+ (next_file): Make the filename optional; in this case call
+ input_stack::end_file().
+
+Wed Jul 1 10:17:25 1992 James Clark (jjc at jclark)
+
+ * dvi/tmac.dvi: Change the definitions of \(ul and _ so that they
+ produce a real _ character when the current font is CW and _
+ otherwise.
+
+ * lib/errarg.c (errarg::errarg(const char *)): Invert conditional
+ expression to work around gcc 2.2 bug.
+
+Wed Jun 24 08:12:24 1992 James Clark (jjc at jclark)
+
+ * eqn/main.c (main): Don't give an error if we can't find eqnchar.
+
+ * troff/env.c (environment::add_padding): New function.
+ (environment::add_char): Use add_padding().
+ (environment::space): Likewise.
+ (environment::wrap_up_field): Add some padding if there is none
+ and there's no current tab.
+ * troff/env.h: Declare environment::add_padding.
+
+Mon Jun 22 08:37:45 1992 James Clark (jjc@jclark)
+
+ * pic/pic.y: undef fmod and rand before declaring them.
+
+Sun Jun 14 11:40:18 1992 James Clark (jjc@jclark)
+
+ * troff/input.c (main): If the DESC file specifies a font name of
+ 0, then leave the corresponding font position empty.
+
+ * nroff.sh: New file.
+ * Makefile (install.nobin): Install nroff.sh.
+
+ * tty/devlatin1/R.proto: Add ao as synonym for de.
+ * tty/tmac.tty-char: Define ao as o.
+
+ * tty/dev{ascii,latin1}/R.proto: Add aq.
+ * tty/tmac.tty-char: Delete definition of aq.
+
+Mon Jun 8 11:43:20 1992 James Clark (jjc@jclark)
+
+ * troff/input.c (init_charset_table): Don't translate 0240.
+ * ps/tmac.ps: Translate char160 to space.
+ * dvi/tmac.dvi: Likewise.
+ * tty/tmac.tty: Likewise.
+
+Sun Jun 7 10:52:35 1992 James Clark (jjc@jclark)
+
+ * dvi/tmac.dvi: Add support for all Latin-1 characters.
+
+ * macros/tmac.s: Delete definitions of \(rg, \(ah, \(ad, \(a-,
+ \(ao, \(ac, \(ho, \(-D, \(Sd, \(TP, \(Tp, \(ss, \(AE, \(ae, \(OE,
+ \(oe, \(r?, \(r!.
+
+ * tty/tmac.tty-char: Add \(ah.
+
+ * dvi/tmac.dvi: Add definitions of Tp, TP, Sd, -D, ho.
+ No need to define \(FM and \(!/. Conditionalize all character
+ definitions.
+
+ * ps/devps/lgreekmap: Add +h, +f, +p.
+
+ * ps/tmac.psnew: New file.
+ * ps/Makefile: Install tmac.psnew.
+
+ * troff/input.c (charinfo_to_node_list): Don't ever interpret
+ character definitions in compatible mode.
+
+ * troff/input.c (remove_character): New function.
+ (init_input_requests): Bind remove_character to "rchar".
+
+ * ps/tmac.psold: New file.
+ * ps/Makefile: Install tmac.psold.
+ * ps/tmac.ps: Load tmac.psold. Move definitions of ISO Latin-1
+ characters into tmac.psold. Make these definitions unconditional.
+
+ * tty/tmac.tty-char: Define \n(_C only if it is not already defined.
+
+ * ps/tmac.ps: Don't define \('c and \('C.
+
+ * ps/devps/textmap: Move Greek characters to...
+ * ps/devps/symbolchars:
+
+Sat Jun 6 16:41:17 1992 James Clark (jjc@jclark)
+
+ * ps/devps/text.enc: Add quotesingle.
+ * ps/devps/textmap: Add +h, +f, +p, Fn, Bq, bq, aq, lz.
+ * tty/tmac.tty-char: Likewise.
+ * dvi/devdvi/texmi.map: Add +h, +f, +p.
+ * dvi/devdvi/texi.map: Add Fn.
+ * dvi/devdvi/msam.map: Add lz.
+ * dvi/tmac.dvi: Handle Bq, bq, aq.
+
+ * pic/lex.c (get_token): Recognize 'th.
+ * pic/map.y: Allow `expr'th in contexts where ORDINAL was allowed.
+
+Fri Jun 5 11:20:46 1992 James Clark (jjc@jclark)
+
+ * ps/devps/textmap: Move di, mu, +- to...
+ * ps/devps/symbolchars:
+
+ * macros/tmac.s (@XS): Don't call par@reset or fi.
+ (XA): Call LP. Turn off adjustment. Reduce line length.
+
+ * macros/tmac.s: Initially alias XS to LP.
+ (XS): Rename to @XS.
+ (cov*ab-init): Alias XS to @XS.
+
+Thu Jun 4 09:12:05 1992 James Clark (jjc@jclark)
+
+ * troff/token.h: Delete TOKEN_CHAR_HEIGHT, TOKEN_CHAR_SLANT,
+ TOKEN_FONT_NAME, TOKEN_FONT_POSITION, TOKEN_SIZE tokens.
+ (token::is_size, token::changes_env): Deleted.
+ * troff/number.c (parse_term): No need to process \s explicitly.
+ Call tok.next() only after scale indicator has been processed.
+ * troff/input.c (do_overstrike, do_bracket): No need to process \s,
+ \f etc explicitly.
+ (token::next): Handle \s, \f, \S, \H immediately rather than
+ returning them as tokens.
+ (token::operator==, token::description, token::add_to_node_list,
+ token::process): Remove handling of deleted tokens.
+
+ * troff/env.c (environment::add_char): When adding padding
+ indicator character, call start_line() if necessary.
+
+Wed Jun 3 09:55:50 1992 James Clark (jjc@jclark)
+
+ * ps/devps/afmtodit: Don't output 0 kerns.
+
+ * ps/devps/afmtodit: Remove directory from name of encoding in
+ font description file.
+
+ * ps/devps/afmtodit: Improve error messages.
+
+ * ps/devps/afmtodit: Allow DESC file to be specified with -d.
+
+ * ps/devps/Makefile: Incorporate FontMakefile. Rework.
+ * ps/devps/FontMakefile: Deleted.
+ * ps/devps/afmname: New file.
+
+ * ps/devps/symbol.sed: New file.
+ * ps/devps/symbol.diff: Deleted.
+ * ps/devps/FontMakefile: Generate symbol.afm using symbol.sed.
+ Generate zapfdr.afm from zapfd.afm.
+
+ * tty/tmac.tty (tty-char): Prefix definition with ".
+
+ * macros/tmac.an (TP): Don't start a diversion if one has already
+ been started.
+
+ * tty/tmac.tty-char: Add Latin-1 characters.
+
+ * tty/tmac.tty-char: Incorporate suggestions from Paul Eggert.
+
+Tue Jun 2 00:54:34 1992 James Clark (jjc@jclark)
+
+ * tbl/table.c (table::allocate): Delete old_vline, old_entry.
+ Move declaration of struct horizontal_span.
+
+ * tbl/table.c (table::table): Initialize span_list.
+ (table::~table): Delete span_list.
+
+ * lib/ptable.h (PTABLE(T)::~PTABLE(T)): Delete v.
+
+ * ps/devps/Makefile: Avoid dependency on GNU make.
+
+ * ps/tmac.ps: Check that character does not already exist before
+ defining it.
+
+ * tty/tmac.tty: Add definitions of \(ff, \(!=, \(==, \(~=, \(sq,
+ \(OE, \(oe, \(AE, \(ae, \(lh, \(rh. Delete definitions of \(en,
+ \(ru, \(ul, \(br, \(bv, \(sl which are in the font description
+ files.
+
+ * tty/tmac.tty-char: New file.
+ * tty/Makefile: Install tmac.tty-char.
+ * tty/tmac.tty: Move definitions of \(ua, \(da, \(uA, \(dA into
+ tmac.tty-char.
+
+ * tty/tmac.tty: Fix definition of \(34.
+
+ * tty/dev{ascii,latin1}/R.proto: Add ha and ti. Map
+ bracket-drawing characters onto |. Add *o.
+
+ * troff/env.c (environment::wrap_up_tab): Increment field_spaces
+ only if current_field.
+
+ * troff/dictionary.c (dictionary::lookup): Free old_table after
+ rehashing.
+
+Mon Jun 1 10:15:22 1992 James Clark (jjc@jclark)
+
+ * tty/dev{ascii,latin1}/R.proto: Add uppercase Greek characters
+ whose glyphs are identical to glyphs of some Roman character.
+
+ * tty/devlatin1/R.proto (bu): Deleted.
+ * tty/devascii/R.proto (bu): Deleted.
+ * tty/tmac.tty: Add definition of \(bu.
+
+ * eqn/main.c (do_file): Pass FILE as argument.
+ (main): Automatically load eqnchar. New options -F and -n.
+ Pass do_file an opened FILE.
+ * groff.c: Don't pass eqnchar to eqn. Pass -F options onto eqn.
+ No need to include font.h.
+ * groff.sh: Likewise. Don't need to use - for standard input.
+ Prefix files with -- if first file starts with -.
+
+ * macros/tmac.e: Conditionalize use of \$* on \n(.g.
+
+ * troff/env.c (environment::possibly_break_line): Don't set line
+ to 0 across call to output_line(). Don't call output_line() until
+ after discarding nodes after break.
+
+Sun May 31 10:45:29 1992 James Clark (jjc@jclark)
+
+ * request.h (macro::empty): Declare it.
+ * input.c (macro::empty): New method.
+ (interpolate_macro): Don't give a WARN_SPACE if the two-character
+ macro is empty.
+
+Sat May 30 10:27:15 1992 James Clark (jjc@jclark)
+
+ * troff/env.c (environment::start_field): Decrement space_total
+ when a space is frozen.
+
+Fri May 22 14:34:38 1992 James Clark (jjc@jclark)
+
+ * macros/tmac.an (R): Delete macro.
+
+ * troff/input.c (get_copy, token::next): Support \# (like \" but
+ newline is ignored).
+
+ * troff/input.c (token::next): Fix error message in 'Y' case.
+
+Thu May 21 09:26:24 1992 James Clark (jjc@jclark)
+
+ * eqn/delim.c (define_extensible_string): Recognize any prefix of
+ a delimiter name.
+
+Fri May 15 10:20:41 1992 James Clark (jjc at jclark)
+
+ * c++test.c: Include <osfcn.h>.
+
+ * lib/strtol.c, lib/getcwd.c, ps/psbb.c: Declare errno in case
+ <errno.h> doesn't.
+
+Fri May 8 09:37:19 1992 James Clark (jjc at jclark)
+
+ * tbl/table.c (table::divide_span): Don't count column separation
+ if expand was specified.
+
+ * tbl/main.c (process_format): Don't ignore width specs in
+ continued format. Give warning for changing equal widths or
+ column separation in continued format.
+ (process_data): Set column separation, minimum width, equal
+ columns at end of table.
+
+Thu May 7 08:50:40 1992 James Clark (jjc at jclark)
+
+ * troff/node.c (kern_pair_node::add_discretionary_hyphen,
+ node::add_discretionary_hyphen): Use soft_hyphen_char.
+ (set_soft_hyphen_char): New function.
+ (init_node_requests): Bind to shc. Initialize soft_hyphen_char.
+
+ * Makefile (c++tested): Give more helpful message if test fails.
+
+Tue May 5 10:58:39 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (init_charset_table): Translate 0240 to
+ an unbreakable space.
+
+ * troff/token.h (token::hyphen_indicator): New function.
+ * troff/charinfo.h (TRANSLATE_HYPHEN_INDICATOR): New special
+ translation.
+ * troff/input.c (translate): Allow translation to \%.
+ * troff/node.c (node::add_char): Handle
+ TRANSLATE_HYPHEN_INDICATOR.
+ (make_node): Don't allow TRANSLATE_HYPHEN_INDICATOR here.
+
+ * troff/input.c (init_charset_table): Don't set BREAK_AFTER flag
+ for \(hy.
+
+ * tty/devlatin1/R.proto: \(hy and - should print as 055.
+
+Tue Apr 21 09:24:42 1992 James Clark (jjc at jclark)
+
+ * groff.c (run_commands): If the last command gets a SIGPIPE send
+ a SIGPIPE to all children than haven't yet terminated. When
+ command terminates, set pid field to -1.
+
+Fri Apr 17 11:20:48 1992 James Clark (jjc at jclark)
+
+ * groff.c (main): Pass an appropriate -filename option to gxditview.
+
+Thu Apr 16 15:11:40 1992 James Clark (jjc at jclark)
+
+ * Makefile.bd (install): Remove existing program before copying.
+
+ * Makefile, */Makefile, Makefile.bd, groff.sh, groff.c: Allow
+ programs which have Unix counterparts to be installed with
+ user-specified prefix.
+
+ * troff/input.c (exit_troff): Don't check if exit_started.
+ (exit_request): Don't call exit_troff if exit_started.
+
+ * Makefile.bd (install.mm): Rename to install.dwbmm.
+
+Tue Apr 14 10:05:10 1992 James Clark (jjc at jclark)
+
+ * driver/input.c (do_file): Add missing break for '#' case.
+
+Mon Apr 13 10:11:02 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (input_stack::clear): Clear past any boundaries and
+ then add the boundaries back.
+
+ * troff/input.c (exit_troff): Return immediately if already
+ exiting.
+
+ * macros/tmac.s (pg@end-text): New macro. Use pg@end-text for the
+ end macro.
+ (pg*end-page): If the text has ended and there are no more
+ footnotes or keeps, exit.
+
+ * macros/doc-ditroff (Lq, Rq): Define as \(lq and \(rq.
+
+ * troff/input.c (init_charset_table): Make \(rq transparent by
+ default.
+
+ * macros/tmac.an: Define lq and rq strings.
+
+ * macros/tmac.s (Q, U): Define as \(lq and \(rq.
+
+Sun Apr 12 12:54:37 1992 James Clark (jjc at jclark)
+
+ * troff/env.c (environment::final_break): New function.
+ (environment::newline): Set prev_line_interrupted to 2 if
+ exit_started.
+ * troff/env.h: Declare environment::final_break.
+ * troff/input.c (exit_troff): Call environment::final_break()
+ instead of environment::do_break().
+
+ * macros/Makefile: Install man.local if $(MACRODIR)/man.local
+ doesn't already exist.
+ * macros/man.local: New file.
+ * macros/tmac.an: Load man.local.
+ * macros/man.ultrix: New file.
+
+Sat Apr 11 17:32:04 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (exit_groff): Rename to...
+ (exit_troff): New function.
+
+ * troff/div.c (exit_started, done_end_macro,
+ seen_last_page_ejector): New global variables.
+ (began_page_in_end_macro): New static variable.
+ (exit_flag): Deleted.
+ (top_level_diversion::top_level_diversion): Initialize
+ last_page_count.
+ (top_level_diversion): More elaborate test for whether
+ cleanup_and_exit() should be called.
+ Set began_page_in_end_macro if the end macro isn't yet finished.
+ * troff/div.h (top_level_diversion::last_page_count): New data
+ member.
+ (top_level_diversion::set_last_page): New function.
+ (exit_started, done_end_macro, seen_last_page_ejector): Declare.
+ * troff/env.c (do_break): Zero prev_line_interrupted.
+ * troff/input.c (exit_flag): Delete declaration.
+ (LAST_PAGE_EJECTOR): New magic cookie.
+ (token::next): Handle LAST_PAGE_EJECTOR.
+ (exit_groff): Set exit_started and done_end_macro instead of
+ exit_flag. Call top_level_diversion::set_last_page. Push a
+ LAST_PAGE_EJECTOR instead of calling push_page_ejector(). Do
+ another ejection after setting seen_last_page_ejector.
+
+Thu Apr 9 04:37:11 1992 James Clark (jjc at jclark)
+
+ * etc/grog.sh, etc/grog.sh: Recognize -me sh macro.
+
+ * macros/tmac.e (TH): Make sure there's room for the initial
+ header.
+
+ * macros/tmac.s (par@init): Make PD and DD at least \n(.V.
+ Set FVS in points rather than units.
+
+Mon Apr 6 11:21:32 1992 James Clark (jjc at jclark)
+
+ * troff/div.c (top_level_diversion::add_trap): Don't consider the
+ position of empty slots.
+
+Fri Apr 3 10:46:45 1992 James Clark (jjc at jclark)
+
+ * ps/devps/S: Fix height and depth of parenrightex.
+ * ps/devps/symbol.diff: Regenerate.
+
+Sat Mar 28 21:17:52 1992 James Clark (jjc at jclark)
+
+ * tmac.e (u): Do underlining as in -mgs.
+
+Fri Mar 27 09:23:44 1992 James Clark (jjc at jclark)
+
+ * tty/tty.c (tty_printer::end_page): If overstriking is
+ suppressed, still turn overstruck horizontal and vertical lines
+ into +.
+
+ * lib/new.c: Back out Feb 24 change; no longer needed with gcc
+ 2.1.
+
+ * refer/label.y (format_expr::evaluate): Avoid use of %0*d.
+
+Wed Mar 18 09:29:10 1992 James Clark (jjc at jclark)
+
+ * Version 1.05 released.
+
+Tue Mar 17 16:50:45 1992 James Clark (jjc at jclark)
+
+ * tty/tty.c: Instead of keeping an array of glyphs and then
+ sorting it, keep a ordered linked list of glyphs for each line.
+
+ * driver/driver.h: Include stddef.h.
+
+ * tty/tty.c (compare_glyph):
+ * refer/refer.c (rcompare):
+ * troff/env.c (compare_ranges): Arguments of qsort comparison
+ function should be const void *.
+
+ * troff/number.c (parse_term):
+ * dvi/dvi.c (draw_dvi_printer::draw): Avoid initialization in
+ switch statement.
+
+ * refer/label.y (consider_authors): Don't access variables
+ constructed under a condition outside that condition: put braces
+ round for statement containing declaration; redeclare use of same
+ variable later.
+
+ * pic/pic.y (text_expr): Delete production that allows
+ parenthesised text_expr.
+ (expr): Allow a conditional_expr to appear in parentheses.
+ (conditional_expr): Rename to any_expr.
+
+ * mm: Install new version 1.01 from jh.
+
+ * lib/font.c (font::get_width): Cache scaled widths.
+ (font::font): Initialize widths_cache.
+ (font::~font): Destroy widths_cache.
+ * lib/font.h: Add font::widths_cache. Declare font_widths_cache.
+
+Mon Mar 16 10:16:10 1992 James Clark (jjc at jclark)
+
+ * c++test.c, c++test.ref: New files.
+ * Makefile: Check that the C++ compiler works.
+
+ * ps/tmac.pspic (PSPIC): Do a break.
+
+ * ps/tmac.ps: Move definition of PSPIC into...
+ * ps/tmac.pspic: New file.
+ (PSPIC): Draw box around picture, but make it invisible to grops.
+ * ps/tmac.ps: Load tmac.pspic.
+ * ps/Makefile: Install tmac.pspic.
+
+Sun Mar 15 14:18:08 1992 James Clark (jjc at jclark)
+
+ * lib/font.c (scale_round): If n is negative,
+ subtract .5 before truncating floating point result.
+
+ * lib/fontfile.c: Include <errno.h>.
+
+Tue Mar 10 14:17:03 1992 James Clark (jjc at jclark)
+
+ * driver/input.c (get_char): Inline. Don't update current_lineno.
+ Change callers to up date current_lineno if necessary.
+ Use get_char() instead of getc(current_file).
+
+Sun Mar 8 18:05:28 1992 James Clark (jjc at jclark)
+
+ * ps/tmac.ps: Fix up spacing of \(mo and \(nm.
+
+Fri Mar 6 19:38:58 1992 James Clark (jjc at jclark)
+
+ * tty/tty.c (tmac.tty): Define \(rg as (R).
+
+Tue Mar 3 10:11:25 1992 James Clark (jjc at jclark)
+
+ * lib/lib.h: New define a_delete.
+ * Use a_delete instead of delete when deleting an array of objects
+ without destructors.
+
+ * lib/lib.h: Rename adelete to ad_delete.
+ * Change uses of adelete.
+
+Mon Mar 2 12:41:05 1992 James Clark (jjc at jclark)
+
+ * eqn/eqn.y: Include lib.h.
+
+ * troff/node.c (grow_font_table): Delete old_font_table.
+
+ * mm: Install new version from jh.
+
+Fri Feb 28 10:42:23 1992 James Clark (jjc at jclark)
+
+ * tbl/table.h (format_type): Make global instead of local to class
+ entry_format. Prefix enumerators with FORMAT_.
+ * tbl/table.c, tbl/main.c: Corresponding changes.
+ * refer/token.h (token_type): Make global. Prefix enumerators
+ with TOKEN_.
+ * refer/token.[ch]: Corresponding changes.
+ * Makefile: Get rid of -DNO_NESTED_TYPES configuration option.
+
+ * troff/div.c (node::set_vertical_size): Don't name argument.
+
+Thu Feb 27 10:29:19 1992 James Clark (jjc at jclark)
+
+ * Makefile: New configuration option ARRAY_DELETE_NEEDS_SIZE.
+ * lib/lib.h: Define adelete accordingly.
+ * pic/object.c (graphic_object::graphic_object):
+ * tbl/main.c (format::~format):
+ * tbl/table.c (table::~table):
+ * refer/ref.c (reference::~reference, reference::merge,
+ reference::insert_field, reference::delete_field): Use adelete.
+
+ * Makefile: Change NESTED_TYPES to NO_NESTED_TYPES.
+ * refer/token.h:
+ * tbl/table.h: Corresponding changes.
+
+ * common.c (common_output::dashed_arc, common_output::dotted_arc):
+ Ensure total_angle is positive.
+
+Wed Feb 26 08:49:26 1992 James Clark (jjc at jclark)
+
+ * refer/ref.c (reference::merge, reference::insert_field,
+ reference::delete_field): Avoid delete[0].
+
+ * refer/token.c (init_special_chars): Move calls to cmupper
+ outside calls to init_two_char_letter to work around bug in gcc
+ 2.0.
+
+Mon Feb 24 14:20:00 1992 James Clark (jjc at jclark)
+
+ * lib/new.c (operator new): Use __builtin_new for g++.
+
+ * pic/object.c (graphic_object::~graphic_object): Don't use
+ delete [] on 0.
+
+ * pic/object.c (output::compute_scale): Initialize max_width and
+ max_height.
+
+Sat Feb 15 09:55:20 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (write_request): Call fflush.
+
+ * troff/node.h (class composite_node): Move declaration to node.c
+ * troff/input.c (charinfo_to_node): Rename to ...
+ (charinfo_to_node_list): Return node list rather than composite
+ node.
+ * troff/node.c (make_composite_node): New function.
+ (make_node, add_char): Call make_composite_node instead of
+ charinfo_to_node.
+ (class composite_node): Add a tfont * member. Delete font_size
+ member.
+ (composite_node::composite_node, composite_node::copy,
+ composite_node::size): Corresponding changes.
+ (composite_node::tprint): Provide constant spacing, emboldening
+ and track kerning as specified in tfont.
+ (composite_node::width): Change width calculation accordingly.
+ * troff/env.h (environment::composite): New member.
+ (environment::is_composite, environment::set_composite): New
+ functions.
+ * troff/env.c (environment::environment): Initialize composite.
+ * troff/input.c (charinfo_to_node): Call
+ environment::set_composite.
+ * troff/node.c (make_composite_node, make_glyph_node): Use the
+ plain version of the tfont if the environment is composite.
+
+ * troff/node.c (font_info::get_space_width): Additional argument
+ giving space_size. Handle constant space correctly. Scale by
+ space_size unless constant spaced.
+ (env_sentence_space_width): New function.
+ * troff/node.h: Declare it.
+ * troff/env.h (environment::get_space_size,
+ environment::get_sentence_space_size,
+ environment::get_narrow_space_width,
+ environment::get_half_narrow_space_width): Make inline.
+ (environment::get_space_width): Make inline. Just call
+ env_space_width.
+ * troff/env.c: Delete definitions for functions made inline.
+ (environment::space_newline, environment::space): Use
+ env_sentence_space_width(). Don't scale by space_size.
+ * troff/node.h: Move declarations of env*space_width() functions
+ into env.h.
+
+Sat Feb 8 09:30:22 1992 James Clark (jjc at jclark)
+
+ * macros/tmac.s (PS): Don't try to set negative indent.
+
+Thu Feb 6 09:00:35 1992 James Clark (jjc at jclark)
+
+ * pic/pic.y: Fix min function.
+
+Tue Jan 28 07:52:29 1992 James Clark (jjc at jclark)
+
+ * man/mdate.sh: Clear LANGUAGE.
+
+Sun Jan 19 13:02:41 1992 James Clark (jjc at jclark)
+
+ * pic/pic.y, pic/lex.c: Rename COMMAND token to COMMAND_LINE.
+ * pic/lex.c: New COMMAND keyword.
+ * pic/pic.y (print_args, print_arg): New rules.
+ (placeless_element): Use print_args for PRINT.
+ New COMMAND element.
+
+Tue Jan 7 13:14:31 1992 James Clark (jjc at jclark)
+
+ * troff/input.c (terminal): Handle missing argument correctly.
+
+ * pic/pic.y (text_expr): New rule.
+
+ * pic/pic.y: Implement := operator.
+
+Sun Jan 5 10:23:02 1992 James Clark (jjc at jclark)
+
+ * etc/grog.pl, etc/grog.sh: Distinguish old and new versions of
+ mdoc.
+
+Sat Jan 4 14:42:26 1992 James Clark (jjc at jclark)
+
+ * ps/devps/dingbatsrmap: Include this in the distribution.
+
+ * macros/tmac.doc: Replace with new version from 2nd Networking
+ Release. Fix loading of doc-* files.
+ * macros/{doc-common,doc-ditroff,doc-nroff,doc-syms}: New files.
+ * macros/tmac.doc.old: New file. Apply fixes that had been
+ applied to old tmac.doc.
+ * macros/tmac.andoc: Check that we're running under groff.
+ * macros/Makefile: Rework.
+
+Fri Jan 3 13:27:51 1992 James Clark (jjc at jclark)
+
+ * tbl/table.h (format_type):
+ * refer/token.h (token_type): If NESTED_TYPES is defined, use
+ typedef to make these types visible at file scope.
+ * Makefile: Add NESTED_TYPES configuration option.
+
+ * troff/div.c (mark): At the top level use the value of
+ nl_reg_contents rather than the current vertical position.
+
+Thu Jan 2 10:34:51 1992 James Clark (jjc at jclark)
+
+ * tty/tty.c: Implement \D for horizontal or vertical lines.
+ (tty_printer::set_char): Use vec_used+2 as serial number.
+ Don't allow size of vector to exceed USHRT_MAX-2.
+ Split off part into...
+ (tty_printer::add_char): New function.
+ (tty_printer::draw): New function.
+ (compare_glyph): Handle equal serial numbers.
+ (tty_printer::end_page): Handle overstruck characters from \D.
+ (main, usage): Implement -d option.
+
+Mon Dec 23 10:37:51 1991 James Clark (jjc at jclark)
+
+ * tbl/main.c (process_format):
+ * eqn/text.c (split_text):
+ * troff/input.c (token::next): Use inner block for declarations
+ with initializers in switch statement.
+
+Mon Dec 16 20:52:03 1991 James Clark (jjc at jclark)
+
+ * pic/common.c (common_output::dash_line): Cope with zero-length
+ lines.
+
+Sun Nov 17 12:04:08 1991 James Clark (jjc at jclark)
+
+ * Version 1.04 released.
+
+Wed Nov 13 05:27:21 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.an (TH): Define a macro an-init to define variables
+ based on command line arguments.
+ (an-header): Call it.
+
+Sun Nov 3 12:07:34 1991 James Clark (jjc at jclark)
+
+ * Makefile (install.mm): Rename to install.dwbmm.
+
+ * Makefile: Integrate mm.
+ * mm: New directory.
+
+Wed Oct 30 10:11:34 1991 James Clark (jjc at jclark)
+
+ * refer/dirnamemax.c: If PATHCONF_MISSING is defined, include
+ <sys/types.h>.
+
+ * pic/troff.c (troff_output::simple_spline,
+ troff_output::simple_polygon): Rename variable `v' to `d' to avoid
+ shadowing parameter.
+
+ * lib/tmpfile.c (xtmpfile): Declare dir as const char *.
+
+ * lib/ptable.h: Add explicit casts when converting from unsigned
+ long to unsigned.
+
+ * dvi/devdvi/{SA,SB,msam.map,msbm.map}: New files.
+ * dvi/devdvi/Makefile: Install SA, SB.
+
+ * refer/indxbib.c: Add declaration of mktemp.
+
+ * refer/lookbib.c: Add declaration of isatty.
+
+Fri Oct 25 09:00:17 1991 James Clark (jjc at jclark)
+
+ * pic/lex.c (interpolate_macro_with_args): While collecting
+ arguments, keep track of whether we're in a string.
+
+Wed Oct 23 08:42:48 1991 James Clark (jjc at jclark)
+
+ * ps/tmac.ps (PSPIC): Do the .sp after the \X, and move the \X
+ down with \v, so as to avoid problems with top of page trap
+ setting no space mode.
+
+Tue Oct 22 17:38:49 1991 James Clark (jjc at jclark)
+
+ * eqn/lex.c (get_delimited_text): Allow tab before macro body.
+
+Tue Oct 15 17:24:53 1991 James Clark (jjc at jclark)
+
+ * ps/psrm.c (ps_get_line): Fix bug when lines longer than 255.
+ Improve error message.
+
+Fri Oct 11 11:09:38 1991 James Clark (jjc at jclark)
+
+ * ps/psrm.c (print_ps_string): Don't pass negative numbers to
+ printf("%03o");
+
+Wed Oct 9 17:50:14 1991 James Clark (jjc at jclark)
+
+ * groff.c (possible_command::execp): Always use _exit() after a
+ failed exec.
+
+ * Makefile: Add HAVE_UNION_WAIT, HAVE_PID_T, WAIT_COREDUMP_0200,
+ NO_SYS_WAIT_H configuration options.
+ * groff.c: Use these options. Use POSIX-style macros to extract
+ fields from the status returned by wait().
+
+Fri Oct 4 12:12:27 1991 James Clark (jjc at jclark)
+
+ * tbl/table.c (table::compute_separation_factor): Allow the
+ separation factor to drop to 0.
+
+Tue Oct 1 18:12:38 1991 James Clark (jjc at jclark)
+
+ * refer/search.c: Include <errno.h>.
+
+Sun Sep 29 08:40:57 1991 James Clark (jjc at jclark)
+
+ * pic/pic.y (YYDEBUG): Don't define for Borland C++.
+
+ * lib/lib.h: #ifdef out declarations of itoa and iftoa for Borland
+ C++.
+
+ * pic/lex.c (input_stack::bol): Move definition out of class body.
+
+ * pic/main.c: On MS-DOS munge argv[0].
+
+ * lib/ptable.h: Define name2 as _Paste2 for Borland C++.
+
+ * lib/ptable.c (hash_string): Use unsigned long rather than
+ unsigned.
+ (next_ptable_size): Use unsigned rather than int. Give an error
+ message if we've hit the largest table size.
+ * lib/ptable.c: Corresponding changes. Also use unsigneds for the
+ table size.
+
+ * pic/object.h (object_spec): Make flags unsigned long. Declare
+ flags as const unisgned long rather than as enums.
+
+ * pic/output.c: Deleted.
+
+ * pic/troff.c (troff_output::simple_ellipse): Remove spurious %.
+
+ * tbl/table.c (simple_entry::note_double_vrule_on_{left,right}):
+ Add additional argument.
+ (line_entry::note_double_vrule_on_{left,right}): Set value of
+ douvle_vrule_on_{right,left} flag according to argument.
+ (simple_line_entry::simple_print,
+ simple_line_entry::double_line_print): If adjacent to double vrule
+ on a corner extend rather than shorten the rule by half the double
+ vrule sep.
+
+ * troff/number.c (parse_term): In checking for overflow, handle the
+ case where the current horizontal position is negative.
+
+Thu Sep 12 08:26:09 1991 James Clark (jjc at jclark)
+
+ * pic/object.c (draw_arrow): Check for object having zero length.
+
+Wed Sep 11 10:32:38 1991 James Clark (jjc at jclark)
+
+ * eqn/main.c (do_file): Split off inline equation handling into...
+ (inline_equation): New function. Search for starting delimiter
+ using...
+ (delim_search): New function. Don't recognize a delimiter that
+ occurs in the name of an escape sequence, number register, string
+ etc.
+
+Tue Sep 10 04:01:11 1991 James Clark (jjc at jclark)
+
+ * eqn/delim.c (delim_box::compute_metrics): Don't call
+ define_extensible_string if left is 0.
+ (delim_box::output): Don't print the left delimiter if left is 0.
+ (delim_box::debug_print): Check for left == 0 before calling printf.
+
+Fri Aug 23 13:02:30 1991 James Clark (jjc at jclark)
+
+ * troff/Makefile (majorminor.c): Include only digits in
+ minor_version.
+
+Thu Aug 22 09:35:37 1991 James Clark (jjc at jclark)
+
+ * refer/dirnamemax.c: new file.
+ * refer/genlimits.c: Deleted.
+ * refer/indxbib.c (main): Use dir_name_max() instead of NAME_MAX.
+ Don't check path length.
+ * refer/Makefile: Add dir_name_max.o; delete genlimits.
+ * Makefile: Add PATHCONF_MISSING option.
+
+ * refer/indxbib.c (get_cwd): New function.
+ (main): Use get_cwd().
+ * lib/getcwd.c: New file.
+ * Makefile: Delete -DHAVE_GETWD. Include GETCWD variable. Pass
+ GETCWD in SUBFLAGS.
+ * lib/Makefile: Compile getcwd.o.
+
+ * ps/tmac.psatk (psatk-defs): Define showpage after pushing
+ userdict.
+
+ * refer/indxbib.c (main): Check success of mktemp.
+
+ * lib/tmpfile.c: New file.
+ * lib/Makefile: Add tmpfile.c.
+ * lib/lib.h: Declare xtmpfile(); include <stdio.h>.
+ * ps/ps.h: Delete declaration of mktemp().
+ * ps/ps.c (ps_printer::ps_printer): Use xtmpfile().
+ * refer/refer.c (divert_to_temporary_file): Use xtmpfile().
+ * driver/driver.h: No need now to include errno.h.
+
+ * everywhere: Set errno to 0 before calling fopen().
+
+ * eqn/eqn.h, etc/soelim.c, driver/driver.h, etc/addftinfo.c,
+ dvi/tfmtodit.c, groff.c, refer/index.c, refer/linear.c,
+ refer/lookbib.c, refer/refer.h, ps/psbb.c: Include <errno.h>.
+
+Mon Aug 19 10:52:18 1991 James Clark (jjc at jclark)
+
+ * troff/env.h (translate_space_to_dummy): Declare it.
+ * troff/env.c (environment::space_newline, environment::space):
+ If translate_space_to_dummy is set then make the width of spaces 0.
+ * troff/input.c (translate): If the second character of a
+ translation is a space, translate to unbreakable space. If the
+ first character is a space, set or clear translate_space_to_dummy
+ according to whether the second character is \&. Weird!
+
+Tue Jul 30 10:03:56 1991 James Clark (jjc at jclark)
+
+ * groff.c (run_commands): Don't use non-zero exit code because a
+ command gets SIGPIPE.
+
+ * groff.c, groff.sh: Use -mXps with -TXps.
+
+ * ps/ps.c (ps_printer::special): Move call to flush_sbuf() into...
+ (ps_printer::do_exec, ps_printer::do_file, ps_printer::do_def,
+ ps_printer::do_mdef, ps_printer::do_import): Call flush_sbuf().
+ (ps_printer::special): New specials invis and endinvis.
+ (ps_printer::do_invis, ps_printer::do_endinvis): New functions.
+ (ps_printer::set_char, ps_printer::draw): Return if invis_count>0.
+ (ps_printer::end_page): Check that invis_count == 0.
+ (ps_printer::invis_count): New member.
+ (ps_printer::ps_printer): Initialize invis_count to 0.
+
+ * troff/env.c (environment::hyphenate_line): Hyphenation
+ indicator at beginning of word inhibits splitting after -, \(em
+ etc.
+
+ * pic/pic.y (element): Allow another element to follow } without
+ any intervening separator.
+
+Mon Jul 22 12:27:37 1991 James Clark (jjc at jclark)
+
+ * pic/lex.c (get_delimited): Allow tabs before delimiter.
+
+Wed Jul 17 10:59:08 1991 James Clark (jjc at jclark)
+
+ * groff.c: Get rid of HAVE_UNION_WAIT stuff. Instead suppress
+ declaration of wait() in header files.
+ * Makefile: Get rid of -DHAVE_UNION_WAIT.
+
+ * tbl/table.c (alphabetic_text_entry::add_tab): New function.
+
+ * lib/lib.h: Declare return type of strerror as char *.
+
+ * man/Makefile: Add g flag to sed substitutions.
+ * Makefile (shgroff, bindist): Likewise.
+
+Sun Jul 14 11:57:02 1991 James Clark (jjc at jclark)
+
+ * ps/ps.c (ps_printer::do_import): Move push of userdict into...
+ * ps/devps/prologue (PBEGIN): Define showpage after pushing
+ userdict.
+
+Sat Jul 13 20:53:04 1991 James Clark (jjc at jclark)
+
+ * ps/devps/prologue (PBEGIN): Zap any definition of showpage in
+ userdict.
+
+Fri Jul 12 07:10:09 1991 James Clark (jjc at jclark)
+
+ * man/mdate.sh: Handle the fact that BSD ls -l does not print the
+ group.
+
+Sun Jul 7 08:00:23 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (define_number_reg): If currently undefined,
+ don't define it if the argument is an invalid expression.
+
+ * Makefile: Ignore return value of `if' commands without `else'
+ parts.
+
+ * Makefile: Split up CPPDEFINES into a series of separate
+ configuration options.
+
+ * troff/input.c (init_registers): Use time_t instead of long
+ unless LONG_FOR_TIME_T is defined. Use returned result rather
+ than passing pointer.
+ * Makefile: Document LONG_FOR_TIME_T as a CPPDEFINE.
+
+ * lib/Makefile (fontpath.h): Use gendef.
+
+Thu Jul 4 09:48:05 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (input_iterator::shift): Delete argument name.
+ * troff/node.c (suppress_output_file::really_begin_page,
+ suppress_output_file::really_transparent_char, node::ascii_print,
+ node::tprint): Delete names of unused arguments.
+
+Wed Jul 3 17:34:57 1991 James Clark (jjc at jclark)
+
+ * refer/label.y (string): Pass $4 to command_error.
+
+Tue Jul 2 15:06:01 1991 James Clark (jjc at jclark)
+
+ * Version 1.03 released.
+
+Sat Jun 29 08:14:01 1991 James Clark (jjc at jclark)
+
+ * Makefile: Pass definition of SHELL in SUBFLAGS.
+
+ * gendef: New file.
+ * Makefile, eqn/Makefile, refer/Makefile, troff/Makefile,
+ ps/Makefile: Use gendef to construct header files that are
+ constructed from the Makefile.
+
+ * macros/Makefile: make all should build stripped version of tmac.e.
+
+ * refer/Makefile (clean): Remove y.output.
+
+Fri Jun 28 09:44:36 1991 James Clark (jjc at jclark)
+
+ * ps/pfbtops.c (main): Add -v option which prints out a version
+ number.
+ * ps/Makefile (pfbtops): Link with libgroff.a.
+
+Fri Jun 21 07:43:23 1991 James Clark (jjc at jclark)
+
+ * refer/search.h (linear_searcher::get_nkeys): Delete declaration.
+ * refer/linear.c (linear_searcher::get_nkeys): Delete definition.
+
+ * refer/lkbib.c (main): Always terminate reference with blank
+ line.
+ * refer/lookbib.c (main): Likewise.
+
+ * refer/linear.c (file_buffer::load): Check that the file is not a
+ binary file.
+
+ * refer/Makefile (genlimits): Possibly add -DHAVE_SYS_DIR_H.
+ (genlimits.c): Include <sys/dir.h> if HAVE_SYS_DIR_H is defined.
+ Delete second inclusion of <sys/param.h>.
+
+Tue Jun 18 01:32:26 1991 James Clark (jjc at jclark)
+
+ * troff/token.h (token::special): Deleted.
+
+ * tbl/main.c (process_format): Rework so that opt->tab_char is
+ recognized only when appropriate.
+
+ * ps/Makefile (clean): Remove pfbtops.
+
+Sun Jun 16 09:37:19 1991 James Clark (jjc at jclark)
+
+ * lib/font.c (text_file::next): Don't return if we have got a
+ blank line.
+
+Fri Jun 14 09:52:26 1991 James Clark (jjc at jclark)
+
+ * refer/refer.c (store_reference): Get hash code from old_table[i]
+ when rehashing the table.
+
+Thu Jun 13 01:26:43 1991 James Clark (jjc at jclark)
+
+ * eqn/box.c (box::top_level): Save size and prev size using \R and
+ restore it afterwards. Set the size to the size at the beginning
+ of the line.
+ * eqn/pbox.h: Declare SAVED_INLINE_PREV_SIZE_REG,
+ SAVED_INLINE_SIZE_REG, and SAVED_SIZE_REG.
+
+ * refer/Makefile (limits.h): Use ./genlimits.
+
+Wed Jun 12 16:05:34 1991 James Clark (jjc at jclark)
+
+ * refer/index.c: Delete declarations of stat() and fstat().
+
+Tue Jun 11 14:52:49 1991 James Clark (jjc at jclark)
+
+ * tty/tmac.tty: Add character definitions for \(>= and \(<=.
+
+Mon Jun 10 22:49:48 1991 James Clark (jjc at jclark)
+
+ * etc/grog.sh, etc/grog.pl: Change regex for .PS.
+
+Fri Jun 7 09:13:06 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (token::get_char): Handle \e.
+
+ * refer/linear.c: Delete declarations of fstat() and stat().
+
+Wed Jun 5 09:11:59 1991 James Clark (jjc at jclark)
+
+ * troff/node.c, troff/env.c, troff/input.c, Makefile: Remove
+ OP_DELETE_BROKEN stuff, since we now have a fix for g++.
+
+Mon Jun 3 13:41:32 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (do_define_macro): Improve error handling for end
+ of file while defining macro.
+
+Sun Jun 2 10:20:24 1991 James Clark (jjc at jclark)
+
+ * eqn/box.h: Fix declaration of set_gsize.
+ * eqn/box.c (set_gsize): Make argument const char *.
+ (gsize): Declare as char *.
+ * eqn/main.c (main): Don't convert gsize to int.
+ * eqn/lex.c (do_gsize): Pass char * to set_gsize.
+
+ * Version 1.02 released.
+
+Sat Jun 1 12:19:46 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.andoc: New file.
+ * macros/Makefile: Install tmac.andoc.
+
+ * troff/node.c, troff/env.c, troff/input.c: Conditionalize use of
+ operator new and delete on OP_DELETE_BROKEN not being defined.
+ * Makefile: Mention OP_DELETE_BROKEN.
+
+Mon May 27 13:49:07 1991 James Clark (jjc at jclark)
+
+ * Makefile (bindist): Pass SUBFLAGS.
+
+Sun May 26 14:13:22 1991 James Clark (jjc at jclark)
+
+ * Makefile, groff.c: Pass definitions to groff.c via device.h.
+
+ * tty/tty.c (tty_font::load_tty_font): Avoid shadowing
+ parameter.
+
+ * ps/Makefile, ps.c: Pass BROKEN_SPOOLER_FLAGS via broken.h.
+
+ * ps/ps.h, ps/psrm.c: Make comment_table and
+ header_comment_table local to resource_manager::process_file.
+
+ * groff.sh: With -TXps pass -printCommand option to gxditview.
+
+ * groff.c (possible_command::print): Implement using
+ append_arg_to_string.
+
+ * xditview: Merge in new implementation with own ChangeLog.
+
+Sat May 25 18:33:20 1991 James Clark (jjc at jclark)
+
+ * groff.c (main): Implement PRINT_OPTION.
+ (append_arg_to_string): New command.
+ (device_table): Set PRINT_OPTION flag for Xps.
+
+Fri May 24 09:48:58 1991 James Clark (jjc at jclark)
+
+ * troff/groff.h: Rename to troff.h.
+
+ * pic/lex.c (lookup_keyword, docmp): New functions.
+ (get_token): Use new lookup_keyword.
+ Don't include key.h.
+ * pic/key.[ch], pic/pic.gperf: Deleted.
+ * pic/Makefile: Remove gperf stuff.
+
+ * pic/Makefile, pic/output.h: Move definition of TEX_SUPPORT
+ into output.h.
+ * pic/tex.c: Move include of pic.h before test of TEX_SUPPORT.
+
+ * troff/Makefile, troff/node.c: Move definition of
+ STORE_WIDTH into node.c.
+
+ * etc/grog.pl, etc/grog.sh: Support -mdoc.
+
+Thu May 23 12:30:49 1991 James Clark (jjc at jclark)
+
+ * dvi/devdvi/texr.map, dvi.devdvi/texi.map,
+ dvi/devdvi/texb.map: Add lq and rq.
+ dvi/devdvi: Regenerate fonts.
+ * ps/devps/textmap: Add lq and rq.
+ * ps/devps: Regenerate fonts.
+ * tty/devascii/R.proto, tty/devlatin1/R.proto: Add lq and rq.
+ * macros/tmac.e: Define \*(lq and \*(rq to be \(lq and \(rq.
+
+ * pic/object.c (position_rectangle): When checking radius
+ cope with possibility that width or height is negative.
+ (box_object::box_object): Have separate xrad and yrad with
+ signs matching signs of dim components.
+ (box_object::{north,south}_{east,west}): Use xrad and yrad.
+ (box_object::print): With rounded boxes use absolute values
+ for dim and rad arguments.
+
+ * lib/Makefile, lib/fontfile.o: Pass definition of FONTPATH
+ in fontpath.h.
+
+ * eqn/Makefile, eqn/main.c: Pass definition of DEVICE in device.h.
+
+ * various files: Add explicit destructors to keep Saber CC +d
+ happy.
+
+Wed May 22 11:37:11 1991 James Clark (jjc at jclark)
+
+ * eqn/box.c (box::top_level): Restore fonts correctly after
+ font changes in line containing inline equation. Also
+ restore previous font as well as current font.
+ * eqn/pbox.h: Define necessary string and register names.
+
+ * troff/input.c (token::next): Case 'R' calls do_register.
+ (do_register): New function.
+
+Tue May 21 11:28:23 1991 James Clark (jjc at jclark)
+
+ * groff.c, groff.sh: Support Xps device. Allow each device
+ to have a pseudo_name and a real_name.
+
+ * groff.c (run_commands): Don't print `Broken pipe' messages.
+
+ * ps/pfbtops.c: New file.
+ * ps/Makefile: Add pfbtops.
+
+ * troff/number.c (parse_term): Improved error message.
+
+Mon May 20 11:22:14 1991 James Clark (jjc at jclark)
+
+ * groff.c, groff.sh, etc/grog.sh, etc/grog.pl: Support grefer.
+
+ * Makefile: Integrate refer.
+ * refer: New directory.
+ * man/grefer.man, man/glookbib.man, man/gindxbib.man,
+ man/lkbib.man: New files.
+ * man/Makefile: Support refer man pages.
+
+ * lib/lib.h: Declare is_prime.
+ * lib/prime.c: New file.
+
+ * troff/input.c (macro_source): New function.
+ (init_input_requests): Bind "mso" to macro_source.
+
+ * troff/env.c (environment::possibly_break_line): Maintain
+ pointer to pointer to node to be split in ndp so as to avoid
+ using address of freed node.
+
+ * troff/env.c (environment::hyphenate_line): Maintain pointer to
+ pointer to first node to be hyphenated in startp so as to
+ avoid using address of freed node.
+
+ * troff/env.c (class trie, class hyphen_trie): Make the
+ elements of the trie be of type char not unsigned char.
+ Declare arguments to be const char* instead of unsigned char *.
+
+ * troff/env.c (hyphenate): Initialize hbuf[0].
+
+ * troff/input.c (set_string): Declare p to be char * and cast
+ *p to unsigned char when necessary.
+
+ * troff/input.c (do_define_macro): Declare s to be const
+ char*. Cast element to unisgned char when necessary, Declare
+ d to be an int. Handle EOF better.
+
+ * troff/Makefile, troff/input.c: Different scheme for passing
+ definitions of MACROPATH, HYPHENFILE and DEVICE.
+
+Tue May 14 13:41:36 1991 James Clark (jjc at jclark)
+
+ * tty/devascii/R.proto: Delete entry for em.
+ * tty/devlatin1/R.proto: Likewise.
+
+Sat May 11 11:13:28 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (translate): Stop when we get a space. Treat eof
+ like newline.
+
+ * macros/tmac.an (IP): Only pass quoted argument to TP when \n(.$>1.
+
+Wed Apr 24 19:24:33 1991 James Clark (jjc at jclark)
+
+ * tbl/main.c (process_format): A font name following a `f'
+ modifier that starts with a digit can be only one character long.
+ Also deal with EOF on the second character of the font name.
+
+Wed Apr 17 11:23:43 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (token::next): Turn \~ into an
+ unbreakable_space_node.
+ * troff/node.c (unbreakable_space_node): New class.
+ * troff/node.h: Declare it.
+
+Tue Apr 16 10:47:12 1991 James Clark (jjc at jclark)
+
+ * dvi/dvi.c (dvi_printer::set_char): Make code an int. Check that
+ it's >= 0, before outputting it as a single byte.
+
+Mon Apr 15 11:20:23 1991 James Clark (jjc at jclark)
+
+ * lib/font.c: Make font_char_metric::code an int.
+ (font::get_code): Change return type to int.
+ (font::load): Allow code to be arbitrary integer.
+ * lib/font.h (font::get_code): Change return type to int.
+ (font::number_to_index): Change argument type to int.
+ * troff/input.c (token::next): In case 'N', allow any value.
+ Store value in token::val.
+ (token::operator==): For TOKEN_NUMBERED_CHAR test equality of val.
+ (token::get_char, token::add_to_node_list, token::process): Get
+ number from val.
+ (charinfo::set_number): Change argument to int.
+ (charinfo::get_number): Require that NUMBERED flag be set.
+ (get_charinfo_by_number): Store numbered characters not between 0
+ and 255 in a dictionary.
+ * troff/charinfo.h (get_charinfo_by_number): Change argument type
+ to int.
+ (charinfo::number): Change type to int.
+ (charinfo::set_number): Change type of set_number to int.
+ * troff/node.c (troff_output_file::put_char_width,
+ troff_output_file::put_char): Test whether character is numbered
+ using charinfo::numbered().
+ * driver/printer.c (printer::set_numbered_char): Allow arbitrary
+ values of num.
+ * lib/nametoindex.c: New implementation to cope with arbitrary
+ number characters.
+
+ * troff/input.c (token::operator==): Test val for
+ TOKEN_CHAR_HEIGHT, TOKEN_CHAR_SLANT, TOKEN_FONT_POSITION, and
+ TOKEN_SIZE.
+
+ * man/Makefile: Add definition of BROKEN_SPOOLER_FLAGS.
+ (.man.n): sed out @BROKEN_SPOOLER_FLAGS@.
+
+Sun Apr 14 12:57:00 1991 James Clark (jjc at jclark)
+
+ * ps/devps/zapfdr.ps: Don't copy UniqueID. Avoid use of newdict
+ variable.
+
+ * all Makefiles: rm targets of cp and >.
+
+ * xditview/xtotroff.c (MapFont): Unlink troff_name before opening
+ it.
+
+ * eqn/lex.c (def_table): Add dollar.
+
+Sat Apr 13 13:02:44 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (do_width): Push back newline before closing delim
+ like do_bracket.
+
+Fri Apr 12 15:16:03 1991 James Clark (jjc at jclark)
+
+ * groff.c (possible_command::prepend_arg): New function.
+ (main): Prepend device -m option.
+ * groff.sh: Put device -m options before command-line options.
+
+Tue Apr 9 10:24:43 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.an (IP): Quote argument to TP.
+
+ * ps/ps.c (main): New option -b, which sets...
+ (broken_flags): New variable.
+ (ps_printer::~ps_printer): Incorporate the setup section in the
+ prolog if (broken_flags & NO_SETUP_SECTION).
+ (ps_printer::begin_page): Generate {Begin,End}PageSetup comments.
+ (ps_printer::merge_download_fonts, ps_printer::merge_import_fonts,
+ ps_printer::merge_ps_fonts, ps_printer::print_font_comment,
+ ps_printer::print_needed_font_comment,
+ ps_printer::print_supplied_font_comment,
+ ps_printer::print_include_font_comments,
+ ps_printer::lookup_doc_font, ps_printer::download_fonts,
+ ps_printer::read_download_file, read_document_fonts, add_font,
+ skip_line, parse_fonts_arg, document_font::document_font,
+ document_font::~document_font, document_font::download,
+ ps_output::include_file): Deleted.
+ (ps_printer::~ps_printer): Generate %%EOF. Generate %!PS-Adobe-3.0
+ rather than %!PS-Adobe-2.0. Make calls to
+ resource_manager::need_font for each font that we used. Replace
+ calls to merge_ps_fonts, merge_download_fonts, print_font_comment,
+ print_supplied_font_comment, print_needed_font_comment by call to
+ resource_manager::print_header_comments. Output %%Orientation
+ comment. Output %%Requirements: numcopies comment if ncopies > 1.
+ Don't output the prolog directly. Instead call
+ resource_manager::output_prolog. Only define #copies when ncopies
+ > 1. Delete calls to print_include_font_comments and
+ download_fonts. Add call to resource_manager::document_setup.
+ (ps_printer::do_file): Call resource_manager::import_file instead
+ of including it ourselves.
+ (ps_printer::do_import): Likewise. Also don't call
+ merge_import_fonts. Push userdict on the dictionary stack before
+ and pop it afterwards.
+ Move declaration of ps_output into ps.h.
+ * ps/psrm.c: New file implementing resource_manager class.
+ * ps/ps.h: New file declaring ps_output and resource_manager
+ classes.
+ * ps/devps/zapfdr.ps:
+ * ps/devps/symbolsl.ps:
+ * ps/devps/prologue: Use 3.0 conventions.
+ * ps/Makefile: Pass definition of BROKEN_SPOOLER_FLAGS in DEFINES.
+ Add default definition of BROKEN_SPOOLER_FLAGS.
+ * Makefile: New variable BROKEN_SPOOLER_FLAGS. Add
+ BROKEN_SPOOLER_FLAGS to SUBFLAGS.
+
+Mon Apr 8 09:26:54 1991 James Clark (jjc at jclark)
+
+ * etc/grog.pl: New file.
+ * Makefile (GROG): New variable.
+ Add GROG to SUBFLAGS.
+ * etc/Makefile (GROG): New variable.
+ (install.nobin): Install $(GROG) rather than grog.sh.
+
+Thu Apr 4 11:36:45 1991 James Clark (jjc at jclark)
+
+ * eqn/special.c (special_box::compute_metrics): Make the input and
+ output strings the same. Get the new height and depth from the
+ predefined height and depth registers. Also make subscript kern
+ and skew available.
+ (special_box::compute_subscript_kern, special_box::compute_skew):
+ New functions.
+
+ * eqn/box.c (pointer_box::compute_skew,
+ simple_box::compute_metrics, box::top_level)
+ * eqn/text.c (prime_box::compute_metrics,
+ prime_box::comput_subscript_kern)
+ * eqn/limit.c (limit_box::compute_metrics):
+ * eqn/delim.c (build_extensible, delim_box::compute_metrics):
+ * eqn/sqrt.c (sqrt_box::compute_metrics): Protect possibly
+ negative numbers in `nr' requests with a leading 0.
+
+Wed Apr 3 15:58:23 1991 James Clark (jjc at jclark)
+
+ * eqn/special.c: New file.
+ * eqn/eqn.y: Declare token SPECIAL. Make it right associative.
+ Add new rule for simple.
+ * eqn/lex.c (token_table): Add SPECIAL.
+ * eqn/box.h: Declare make_special_box.
+ * eqn/Makefile: Add special.[co].
+
+Sat Mar 30 10:57:53 1991 James Clark (jjc at jclark)
+
+ * ps/devps/prologue: Possibly set packing to true while defining.
+ Create grops dictionary here. Initialize local variables before
+ defining procedures.
+ (PICTURE): Rename to PBEGIN. Also do save, noop showpage, count
+ the dictionary stack. Set strokeadjust and overprint to false if
+ the relevant operators are defined.
+ (PEND): New procedure.
+ * ps/ps.c (ps_printer::~ps_printer): In the prolog just include
+ prologue. Do everything else in the setup section.
+ (ps_printer::do_import): Just call PBEGIN and PEND around the
+ picture. Also push userdict before, and pop it afterwards.
+
+Wed Mar 27 07:59:50 1991 James Clark (jjc at jclark)
+
+ * troff/node.c (bracket_node::tprint): Brackets were being printed
+ 1m too low.
+
+ * macros/tmac.an (SH, SS): Set fill mode.
+
+Tue Mar 26 07:46:31 1991 James Clark (jjc at jclark)
+
+ * troff/div.c (top_level_diversion::begin_page): Set
+ high_water_mark to 0.
+
+Fri Mar 22 09:19:46 1991 James Clark (jjc at jclark)
+
+ * man/mdate.sh: New file.
+ * man/mdate.c: Deleted.
+ * man/Makefile: Use mdate.sh instead of mdate.
+ (mdate): Deleted.
+
+ * eqn/lex.c (do_gsize): Supply missing argument to error message.
+
+Tue Mar 19 11:06:50 1991 James Clark (jjc at jclark)
+
+ * man/mdate.c: New file.
+ * man/*.man: Replace modification date by @MDATE@.
+ * man/Makefile (.man.n): Replace @MDATE@ by `mdate $<`.
+ (mdate): New target.
+
+ * lib/font.c (text_file::next): Deal with arbitrarily long lines.
+ Remove invalid input characters.
+
+Mon Mar 18 08:32:25 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (pg*start-col): Do .ns *after* running the hooks.
+
+Sat Mar 16 03:52:25 1991 James Clark (jjc at jclark)
+
+ * troff/div.c (begin_page): Change behaviour when
+ !first_page_begun and !break_flag.
+
+ * troff/input.c (do_name_test): Return 0 if argument is empty.
+
+ * troff/input.c (read_long_escape_name): Require closing ] to be
+ at same input level as opening [.
+
+ * troff/input.c (read_increment_and_escape_name): New function.
+ (get_copy, process_input_stack): Use this for \n.
+
+Fri Mar 15 00:31:48 1991 James Clark (jjc at jclark)
+
+ * troff/div.c (top_level_diversion::begin_page): Ignore the
+ current value of page_number if !first_page_begun.
+
+ * groff.c (main): Fix declaration of buf.
+
+ * troff/input.c (do_name_test): New function.
+ (token::next): Implement \A.
+ (token::next): Implement \e by turning it into a TOKEN_ESCAPE.
+ (token::description, token::add_to_node_list, token::process):
+ Handle TOKEN_ESCAPE.
+ * troff/token.h: New token TOKEN_ESCAPE.
+
+Thu Mar 14 10:22:26 1991 James Clark (jjc at jclark)
+
+ * pic/main.c (do_picture): Allow space before and after filename
+ following `<'. Check that the filename is not empty.
+
+Wed Mar 13 12:49:40 1991 James Clark (jjc at jclark)
+
+ * Version 1.01 released.
+
+ * dvi/devdvi/CompileFonts: Add cm*ss10 fonts.
+
+ * dvi/tmac.dvi: ftr HR to H.
+
+ * macros/tmac.e: Round up computation of $r.
+
+ * xditview/tmac.X: Don't give up completely in compatibility mode.
+ Use \n(.s instead of \n[.s].
+
+ * dvi/tmac.dvi: Don't give up completely in compatibility mode.
+ Use \(ci instead of \[ci]. Use \n(.s instead of \n[.s].
+ Add u to factors inside \s[...]. Rename frac to dvi-frac.
+ Translate \(FM onto \[prime] and \(!/ onto \[slashnot]; use these
+ short names in the char definitions.
+
+ * ps/tmac.ps: Don't give up completely in compatibility mode.
+ Fix the fraction definitions to use \n(.s and \(f/. Add an extra
+ quote in front of \n(.s. Add u to factors inside \s[...].
+
+Mon Mar 11 12:01:20 1991 James Clark (jjc at jclark)
+
+ * tty/tmac.tty: Call the nroff request.
+
+ * macros/tmac.e ((x, )x): Better definitions that work properly
+ in a diversion.
+ (@0, @1): Helper macros for (x.
+
+ * macros/tmac.e ($s, hl): Use \l rather than \D.
+
+ * tty/tmac.tty: Make it work better in compatibility mode.
+ (pchar): Rename to tty-char.
+
+ * macros/tmac.e (@E): New macro.
+ (r, i, b, rb, bi): Use @E.
+
+ * macros/tmac.e (@F): Don't use (;...) syntax.
+
+ * macros/tmac.e: Remove mention of \*(||/revisions. Mention that
+ it was modified for groff.
+
+ * macros/tmac.e: Make sure \n(ps and \n(es are >= \n(.V.
+
+ * macros/tmac.e (<., .>): Removed.
+ ([., .]): If \n(.V>=1v, use [] instead of superscripting.
+
+ * macros/tmac.e: Remove check that groff is being used.
+
+ * macros/tmac.e (@C): Change families only if using groff; turn
+ compatibility mode off while changing families. Save
+ compatibility mode before changing families and restore it
+ afterwards.
+
+ * macros/tmac.e (@h): Remove test for offset + line length.
+
+ * macros/tmac.e (sorry): Rename to @S. Use \$1 instead of \$0
+ (lo, th, ac): Define to call @S instead of using als.
+
+ * macros/tmac.e: Make $r and $R now contain \n(.v*100/\n(.sp, ie
+ the ratio of the vertical spacing to the point size in units
+ expressed as a percentage. Use these instead of $10r and $10R,
+ Delete $10r and $10R.
+
+ * lib/font.c (font::load): In default computation of space_width,
+ divide by sizescale. Use scale_round.
+
+ * macros/tmac.an (TP): Don't call `nf'.
+ (an-do-tag): Don't call `fi'.
+
+Sun Mar 10 09:52:35 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (process_input_stack): Handle the case where
+ spaces at the beginning of an input line are followed by a
+ newline.
+
+Thu Mar 7 20:18:07 1991 James Clark (jjc at jclark)
+
+ * groff.c (device_table): Add PIC_X_OPTION for dvi device.
+ * groff.sh: Use pic -x with the dvi device.
+
+ * dvi/devdvi/FontMakefile (H): Don't use -s.
+
+ * dvi/devdvi/HI, dvi/devdvi/HB: New files.
+ * dvi/devdvi/Makefile: Add HI and HB to FONTS.
+ * dvi/devdvi/FontMakefile: Add rules for HI and HB. Include these
+ in FONTS.
+
+Mon Mar 4 13:20:14 1991 James Clark (jjc at jclark)
+
+ * ps/psfig.diff: New file.
+ * ps/tmac.psfig: New file.
+
+Sat Mar 2 00:15:09 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (]=, ref*do-tl, ref*bib-print): Deleted.
+ (]-): Don't call ref*do-tl.
+
+ * macros/tmac.s (ref*end-print): Use XP if [F not defined.
+
+ * macros/tmac.s (ref*normal-print): Call FS rather than fn@do-FS.
+ (fn@do-FS): Rename to fn*do-FS.
+
+ * troff/input.c (transparent_translate): New function.
+ (process_input_stack): Apply transparent_translate before calling
+ diversion::transparent_output(unsigned char).
+
+Wed Feb 27 00:13:25 1991 James Clark (jjc at jclark)
+
+ * troff/input.c (do_define_macro): Define the macro before calling
+ skip_line.
+
+ * xditview/Makefile: Add DEVICES variable. Change install target
+ to use this.
+
+Tue Feb 26 10:46:22 1991 James Clark (jjc at jclark)
+
+ * groff.c (run_commands): Handle the possibility that there are
+ child processes other than those forked by us.
+
+Sun Feb 24 21:32:30 1991 James Clark (jjc at jclark)
+
+ * lib/string.c (string::append): New function.
+ * lib/stringclass.h: Declare it.
+
+Thu Feb 21 11:49:26 1991 James Clark (jjc at jclark)
+
+ * eqn/main.c (main): New option -N which sets
+ no_newline_in_delim_flag.
+ (do_file): If no_newline_in_delim_flag is set don't allow newlines
+ in delimiters.
+ * groff.c (main): Pass -N on to eqn.
+ (help, synopsis): Mention -N.
+ * groff.sh: Implement -N.
+
+Wed Feb 20 15:16:10 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (]=, ref*bib-print, ref*do-tl): New macros.
+ (]-): Call ref*do-tl if ref*need-tl is non-zero.
+ (XP): Allow as initializer.
+
+Tue Feb 19 14:09:06 1991 James Clark (jjc at jclark)
+
+ * troff/env.c (environment::wrap_up_field): If field_spaces are
+ non-zero and we have a current_tab, subtract padding from
+ tab_distance. If this makes tab_distance <= 0, use the next tab
+ stop instead. If there isn't any next tab or it's a left tab,
+ wrap up the current tab.
+ (environment::start_field): Initialize tab_precedes_field.
+ (environment::wrap_up_tab): If there's a current field, update
+ pre_field_width, field_distance and tab_precedes_field.
+ * troff/env.h (environment::tab_precedes_field): New member.
+
+Fri Feb 15 01:24:00 1991 James Clark (jjc at jclark)
+
+ * ps/ps.c (ps_printer::do_file): New function.
+ (ps_printer::special): Bind to `file' special.
+ (ps_printer::do_exec): Set ndefined_styles to 0.
+
+Sat Feb 9 03:03:04 1991 James Clark (jjc at jclark)
+
+ * eqn/text.c (split_text): Grok \* and similar escapes sequences.
+ Avoid stripping first character from the start of unrecognized
+ escapes. Use lex_error instead of error to report errors.
+ * eqn/lex.c (get_token): Rework handling of escapes.
+ (lex_error): Move declaration into...
+ * eqn/eqn.h.
+
+ * xditview/xditview.c (main): Make -page option work.
+
+ * Makefile: Correct comment about -DBROKEN_SPOOLER and pageview.
+
+Wed Feb 6 12:28:43 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (B2): Correct size of box.
+
+Tue Feb 5 00:37:35 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (B2): Postpone drawing the box until in the
+ top-level diversion.
+
+ * tty/tmac.tty: Add font translations for C, CR, CW.
+
+ * groff.c (synopsis, help): Document -i.
+ * groff.sh: Implement -i.
+
+ * macros/tmac.s (@NH): Put a `.' after multi-part numbers.
+ Simplify the construction of SN.
+
+ * troff/number.c (parse_term): Give `|' a higher precedence.
+ * tbl/table.c (numeric_text_entry::simple_print): Parenthesise
+ accordingly.
+
+ * macros/tmac.s (B2): Use par@finish instead of par@reset.
+
+Mon Feb 4 12:36:09 1991 James Clark (jjc at jclark)
+
+ * lib/string.c (string::move): New function.
+ * lib/stringclass.h: Declare it.
+
+Sat Feb 2 16:02:16 1991 James Clark (jjc at jclark)
+
+ * troff/env.c (distribute_space): Add optional argument
+ `force_forward'.
+ (environment::wrap_up_field): Call distribute_space with
+ `force_forward' argument of 1.
+
+Fri Feb 1 19:36:33 1991 James Clark (jjc at jclark)
+
+ * lib/string.c, lib/stringclass.h (string::operator+=(char)):
+ Inline it. Move reallocation into...
+ (string::grow1): New function.
+ * pic/Makefile, tbl/Makefile, eqn/Makefile, ps/Makefile: Redo
+ dependencies to include library header files.
+ * lib/Makefile: Make string.c and lf.c depend on stringclass.h.
+
+Thu Jan 31 15:02:27 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (@NH): Use the same number registers than -ms does
+ for the heading level counters. Use the same string that -ms does
+ for the number for this heading.
+
+Wed Jan 30 14:25:40 1991 James Clark (jjc at jclark)
+
+ * lib/new.c (operator new): Cast result of malloc to char *.
+
+ * troff/input.c (spring_trap, lookup_request): Add assert that nm
+ is not null.
+
+Tue Jan 29 18:08:05 1991 James Clark (jjc at jclark)
+
+ * groff.c (main): Support -i.
+
+Sun Jan 27 13:23:17 1991 James Clark (jjc at jclark)
+
+ * pic/pic.h: Include <osfcn.h>.
+
+ * ps/ps.c: Add declaration of mktemp.
+
+ * Makefile: Add -DHAVE_UNION_WAIT option for CPPDEFINES.
+ * groff.c: If HAVE_UNION_WAIT is defined, declare wait()'s
+ argument as union wait *.
+ (run_commands): If HAVE_UNION_WAIT is defined cast wait()'s
+ argument to union wait *.
+
+Sat Jan 26 12:04:52 1991 James Clark (jjc at jclark)
+
+ * tty/tmac.tty: Add definition of \(co.
+
+ * pic/object.c (make_arc): Only increase radius when radius
+ strictly less than d.
+ (arc_object::update_bounding_box): May need to add 4.0 to end_quad
+ more than once.
+
+ * troff/env.c (environment::environment(symbol),
+ environment::environment(const environment *)): Initialize
+ input_trap_count.
+
+Sat Jan 19 08:18:35 1991 James Clark (jjc at jclark)
+
+ * tbl/main.c (main): Add exit(0).
+
+ * ps/ps.c (ps_printer::~ps_printer): Use fseek instead of rewind.
+
+ * pic/main.c (main):
+ * eqn/main.c (main):
+ * tbl/main.c (main):
+ * etc/soelim.c (main):
+ * driver/printer.c (printer::~printer):
+ * troff/node.c (real_output_file::~real_output_file,
+ real_output_file::flush): Check for errors on stdout.
+
+ * most files: Add 1991 to copyright notice.
+
+ * macros/tmac.s: Don't test \n(.x and \n(.y.
+
+ * troff/input.c (token::next): Rename `escape_char' label to
+ `handle_escape_char' and `normal_char' label to
+ `handle_normal_char'.
+
+Thu Jan 17 15:46:35 1991 James Clark (jjc at jclark)
+
+ * groff.c (main, synopsis, help): Support -a option.
+ * groff.sh: Likewise. Also eliminate Zflag variable by adding -z
+ to trflags while parsing options.
+
+Tue Jan 15 13:07:27 1991 James Clark (jjc at jclark)
+
+ * troff/number.c (parse_term): With `m', `M' and `n' scale
+ indicators, convert scale factor to hunits before scaling.
+
+Mon Jan 14 12:39:12 1991 James Clark (jjc at jclark)
+
+ * lib/font.c (scale_round): Better test for overflow when n is
+ negative.
+
+Thu Jan 10 11:10:56 1991 James Clark (jjc at jclark)
+
+ * tbl/main.c (process_format): Add second argument of type
+ options*. Change callers. Allow opt->tab_char as well as '\t'
+ between format items.
+
+Mon Jan 7 12:30:18 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.an (PD): With no arguments, make sure register PD is
+ at least \n[.V].
+ (TH): Call PD with no argument, instead of setting register PD
+ directly.
+
+Sun Jan 6 11:18:39 1991 James Clark (jjc at jclark)
+
+ * Version 1.00 released.
+
+Sat Jan 5 08:44:30 1991 James Clark (jjc at jclark)
+
+ * ps/tmac.ps, xditview/tmac.X: Add font translation of C to CR.
+
+ * dvi/devdvi/DESC: Mount CW instead of CR.
+
+ * dvi/tmac.dvi: Add definition of \(tm.
+
+ * dvi/devdvi/texsy.map: Add lh, and rh.
+ * dvi/devdvi/texex.map: Add lt, rt, lb, rb, lk, rk.
+ * dvi/devdvi/texmi.map: Add *o. Regenerate fonts.
+
+ * dvi/devdvi/FontMakefile: Generate H from cmss10.
+ * dvi/devdvi/Makefile: Install H.
+ * dvi/devdvi/H: New file.
+
+Fri Jan 4 15:04:57 1991 James Clark (jjc at jclark)
+
+ * troff/env.c (vertical_spacing): Don't allow vertical spacing to
+ be 0.
+
+Thu Jan 3 13:41:19 1991 James Clark (jjc at jclark)
+
+ * macros/tmac.s (@EN): Add \n(.V to the argument to ds@need.
+
+ * macros/tmac.pic (PS): Avoid attempting to set negative indent.
+
+ * macros/tmac.s (@EN): Handle the case where the equation is empty
+ but the label is not.
+
+Wed Jan 2 10:31:44 1991 James Clark (jjc at jclark)
+
+ * troff/groff.h: New warning category WARN_SPACE.
+ * troff/input.c: Add WARN_SPACE to DEFAULT_WARNING_MASK. Add
+ WARN_SPACE to warning_table.
+ (interpolate_macro): Give a warning of type WARN_SPACE if the name
+ is longer than two characters and is not defined, but the first
+ two characters do make a defined name.
+
+ * PROBLEMS: New file.
+
+ * CHANGES: New file.
+ * README-0.6, README-1.00: Deleted.
+
+ * groff.c, groff.sh: Add X75-12 and X100-12 devices.
+ * xditview/devX75/Makefile: Make devX75-12.
+ * xditview/devX100/Makefile: Make devX100-12.
+
+ * xditview/devX100/eqnchar, xditview/devX75/eqnchar,
+ dvi/devdvi/eqnchar, ps/devps/eqnchar: Remove use of \R.
+
+Tue Jan 1 19:24:01 1991 James Clark (jjc at jclark)
+
+ * README-0.7: Rename to README-1.00.
+
+ * macros/tmac.pic: New file.
+ * macros/Makefile (install.nobin): Install tmac.pic.
+
+Mon Dec 31 10:40:53 1990 James Clark (jjc at jclark)
+
+ * troff/env.c (hyphen_word): Correct the test for whether the
+ token is a hyphen. Reset npos to 0.
+
+ * macros/tmac.s (par@sup-start, par@sup-end): New implementations.
+
+Sun Dec 30 15:53:13 1990 James Clark (jjc at jclark)
+
+ * macros/tmac.s (ds*common-end): Call par*reset.
+ (PE): Likewise.
+ (par@reset-indent): Deleted.
+
+ * macros/tmac.s (@IP): Divert the label.
+
+Sat Dec 29 14:33:32 1990 James Clark (jjc at jclark)
+
+ * xditview/draw.c (setGC): Use a line width of .1m rather than
+ .04m by default; round rather than truncate value.
+
+ * tbl/table.c (class empty_entry): New class.
+ (empty_entry::empty_entry, empty_entry::line_type): New functions.
+ (table::add_entry): Represent empty entries by objects of type
+ empty_entry.
+ (table_entry::line_type): Return -1.
+ (table::determine_row_type): Ignore entries with line_type 0.
+ Treat type -1 as non-lines.
+
+Fri Dec 28 15:04:41 1990 James Clark (jjc at jclark)
+
+ * ps/devps/textmap, xditview/libXdvi/DviChar.c, tty/devlatin1/R.proto,
+ macros/tmac.s: Rename \(-d to \(Sd.
+
+Thu Dec 27 12:35:47 1990 James Clark (jjc at jclark)
+
+ * ps/devps/textmap: Add `sd', `/_' and `3d' characters.
+ * xditview/libXdvi/DviChar.c: Likewise.
+ * dvi/devdvi/texsy.map: Add `<<', `>>'.
+
+Wed Dec 26 13:33:23 1990 James Clark (jjc at jclark)
+
+ * troff/div.c (top_level_diversion::begin_page): Call
+ init_output() if the_output is 0.
+
+Sat Dec 22 12:35:29 1990 James Clark (jjc at jclark)
+
+ * troff/input.c: Replace ESCAPE_E by ESCAPE_e and ESCAPE_C by
+ ESCAPE_c.
+ (get_copy): Turn \E into ESCAPE_E.
+ (token::process, asciify): Handle ESCAPE_E.
+
+ * macros/tmac.s (ds*common-end, par@reset): Add `.rj 0'.
+ (RD): New macro.
+ (DS): Implement `.DS R'.
+
+Fri Dec 21 11:41:53 1990 James Clark (jjc at jclark)
+
+ * macros/tmac.s (FS): New macro.
+
+ * macros/tmac.s (fn@do-FS): Use @LP instead of LP.
+
+ * macros/tmac.s (cov*tl-init): Remove after first execution
+ instead of aliasing to @nop. Call top of page macro explicitly
+ instead of setting trap; call @init first. Set pg@top as top of
+ page macro.
+ (cov*auto-init): Deleted. Set cov*tl-init instead of
+ cov*auto-init as top of page trap.
+ (TL, LP): Do a break instead of calling cov*tl-init.
+ (cov*print): With RP format but no TL, alias FS and FE to @FS and
+ @FE; in this case also give a warning and always start another
+ page. No need to set pg@top here.
+ (cov*tl-init): Rename to cov*first-page-init.
+
+ * macros/tmac.s (RP): Do `.pn 0'.
+ (cov*tl-init): With RP format don't do `.pn 0'.
+
+ * macros/tmac.s (pg@cs-top): Set no space mode.
+
+ * macros/tmac.s (par@TL, par@AU, par@AI): New macros.
+ (cov*ab-init): Alias TL, AU and AI to these.
+
+Thu Dec 20 10:10:50 1990 James Clark (jjc at jclark)
+
+ * macros/tmac.s (@EQ): Move the space before the equation into @EN
+ (@EN): Do nothing unless \n[dl] is > 0.
+
+Tue Dec 18 12:20:47 1990 James Clark (jjc at jclark)
+
+ * pic/object.c (ellipse_object::radius): New function.
+
+ * VERSION: Change version to 0.7.
+
+ * tbl/table.c (block_entry::do_divert): Declare return type as
+ void.
+ (block_entry::divert, alphabetic_block_entry::divert): Return 1.
+
+Mon Dec 17 12:30:34 1990 James Clark (jjc at jclark)
+
+ * troff/column.c: New file.
+ * troff/Makefile: Corresponding changes.
+
+ * troff/hvunits.c (scale(vunits, vunits, vunits)): New function.
+ Friend of vunits.
+
+ * troff/div.c (top_level_diversion::space): If the space causes
+ the first-page transition and springs a trap, truncate the space
+ to 0.
+
+Fri Dec 14 12:30:02 1990 James Clark (jjc at jclark)
+
+ * ps/ps.c (ps_printer::do_import): Add a `clear' after including
+ the document.
+
+ * pic/troff.c (troff_output::line_thickness,
+ troff_output::set_fill): Do a horizontal motion to compensate for
+ the width of the \D escape sequence.
+
+Thu Dec 13 10:17:14 1990 James Clark (jjc at jclark)
+
+ * xditview/tmac.X: Reinstate definition of \(rn, but only for X100
+ (not X75).
+
+ * eqn/sqrt.c (sqrt_box::compute_metrics): Supply missing argument
+ to printf.
+
+ * tbl/table.c (simple_entry::simply_print): Don't declare as pure.
+ Supply empty definition.
+ (text_entry::simple_print, simple_text_entry::simple_print):
+ Delete declarations.
+ (table::add_entry): Represent empty entries by objects of type
+ `simple_entry'.
+
+Wed Dec 12 08:50:48 1990 James Clark (jjc at jclark)
+
+ * troff/Makefile: Remove -DHYPHEN_CONTROL from DEFINES.
+
+ * tbl/table.c (left_text_entry::add_tab): New function.
+
+ * macros/tmac.s: Make @RT an alias for par@reset. Make RT
+ initialize like LP.
+
+Mon Dec 10 11:19:55 1990 James Clark (jjc at jclark)
+
+ * troff/env.c (environment::start_field): Give an error message if
+ there is no next tab.
+
+Sun Dec 9 11:46:40 1990 James Clark (jjc at jclark)
+
+ * troff/env.c (hyphenate): Skip initial elements with zero
+ hyphenation code.
+
+ * macros/tmac.s (par@init): Keep VS in points rather than units.
+
+Sat Dec 8 23:00:27 1990 James Clark (jjc at jclark)
+
+ * pic/main.c (main): Implement `-c' option.
+ * pic/output.h: Declare make_tpic_output().
+ * pic/tex.c (tex_output::set_pen_size): Make it virtual and
+ protected.
+ (tpic_output): New class.
+ (tpic_output::tpic_output, tpic_output::set_pen_size,
+ tpic_output::command, make_tpic_output): New functions.
+
+Fri Dec 7 11:57:41 1990 James Clark (jjc at jclark)
+
+ * tbl/main.c (main): Call `.ab' if \n(.g is false. Define TS/TE
+ if they're not already defined.
+ * tbl/table.c (init_output): Don't test \n(.g.
+
+ * troff/input.c (do_if_request): Delete `g' condition. Recognize
+ `d', `r' and `c' conditions even in compatibility mode.
+
+Tue Dec 4 09:13:47 1990 James Clark (jjc at jclark)
+
+ * ps/tmac.ps (ps-bb): Protect against negative numbers in bounding
+ box.
+
+Mon Dec 3 07:18:26 1990 James Clark (jjc at jclark)
+
+ * troff/env.h (environment::prev_line_interrupted): New member.
+ (environment::get_prev_line_interrupted): New function.
+ * troff/env.c (environment::newline): Set prev_line_interrupted.
+ (environment::environment(const environment *),
+ environment::environment(symbol)): Initialize
+ prev_line_interrupted.
+ * troff/input.c (process_input_stack): Don't give special
+ treatment to space and newline at the beginning of the line if the
+ previous line was interrupted.
+
+Sat Dec 1 15:48:37 1990 James Clark (jjc at jclark)
+
+ * eqn/eqn.y: Disallow PRIME by itself.
+ * eqn/lex.c (token_table): Bind `opprime' instead of `prime' to
+ PRIME.
+ (def_table): Remove definition of '. Define prime to be `.
+
+ * eqn/eqn.y: Split off part of rule `script' into a new rule
+ `nonsup'.
+
+Fri Nov 30 10:23:44 1990 James Clark (jjc at jclark)
+
+ * macros/tmac.s ({, }): New string aliases.
+
+Thu Nov 29 11:34:40 1990 James Clark (jjc at jclark)
+
+ * README-0.7: New file.
+
+Wed Nov 28 10:09:57 1990 James Clark (jjc at jclark)
+
+ * macros/tmac.s: New file.
+ * man/groff_ms.man: New file.
+ * Makefile: Add definition of TMAC_S. Pass TMAC_S in SUBFLAGS.
+ * Makefile.bd: Similarly.
+ * man/Makefile: Add groff_ms.n to MAN7PAGES. Replace @TMAC_S@. Add
+ definition of TMAC_S.
+ * macros/Makefile: Add definition of TMAC_S. Install tmac.s.
+ * macros/TODO: New file.
+
+Sat Nov 24 20:04:54 1990 James Clark (jjc at jclark)
+
+ * troff/env.c (right_justify): New function.
+ (init_env_requests): Bind this to request "rj".
+ (center_lines): Set right_justify_lines to 0. If we get a bad
+ integer, center 1 line.
+ (environment::environment(symbol), environment::environment(const
+ environment *)): Initialize right_justify_lines.
+ (environment::get_right_justify_lines): New function.
+ (init_env_requests): Bind this to number_register ".rj".
+
+ * troff/env.c (environment::choose_breakpoint): Implement
+ hyphenation_margin and hyphenation_space.
+ (environment::get_hyphenation_space,
+ environment::get_hyphenation_margin): New functions.
+ (init_env_requests): Bind these to .hys and .hym.
+ (hyphenation_space_request, hyphenation_margin_request): New
+ functions
+ (init_env_requests): Bind these to hys and hym.
+ (environment::environment(symbol), environment::environment(const
+ environment *)): Initialize hyphenation_margin and
+ hyphenation_space.
+ * troff/env.h: Corresponding changes to class environment.
+
+Fri Nov 23 09:08:16 1990 James Clark (jjc at jclark)
+
+ * troff/div.c (blank_line): Always do a break.
+
+ * eqn/box.c (do_text): Turn off escapes while appending text to
+ string.
+
+Thu Nov 22 10:58:59 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (while_break_request, while_continue_request): New
+ functions.
+ (init_input_requests): Bind these to "break" and "continue".
+ (while_depth, while_break_flag): New variables.
+ (while_request): Update while_depth. Break out of loop if
+ while_break_flag is set.
+
+Wed Nov 21 10:54:40 1990 James Clark (jjc at jclark)
+
+ * tbl/table.c (init_span_reg): Initialize span_width_reg to \n(.H
+ rather than 0.
+
+Mon Nov 19 00:45:03 1990 James Clark (jjc at jclark)
+
+ * Makefile: Include -DBROKEN_SPOOLER by default. Expand comment.
+
+ * stringify: New file.
+ * Makefile (groff.o): Use stringify.
+
+ * xditview/tmac.X: Remove definition of \(rn.
+ * xditview/libXdvi/DviChar.c: Remove radicalex from
+ Adobe_symbol_map.
+
+Sat Nov 17 10:44:58 1990 James Clark (jjc at jclark)
+
+ * tbl/table.c (table::add_entry): Allow alphabetic text blocks.
+ (alphabetic_block_entry::alphabetic_block_entry,
+ alphabetic_block_entry::divert, alphabetic_block_entry::print):
+ New functions.
+ (block_entry::divert): Split off body into ...
+ (block_entry::do_divert): If the block is alphabetic, subtract 2n
+ from the line length; also update the span width to dl+2n, and the
+ alphabetic span width to dl.
+
+ * driver/input.c (do_file): While reading argument to D command,
+ when expanding buffer, multiply szp by sizeof(int) rather than 2
+ in the argument to memcpy.
+
+ * tbl/table.c (compute_span_width): Add 2n rather than 1n to the
+ width of alphabetic columns.
+
+Fri Nov 16 06:34:27 1990 James Clark (jjc at jclark)
+
+ * troff/node.c (lookup_family): Supply second argument to lookup.
+
+ * troff/dictionary.c (dictionary::lookup): After an unsuccessful
+ search, return immediately if v is 0.
+
+ * pic/troff.c: Define EQN_NO_EXTRA_SPACE_REG.
+ (troff_output::start_picture): Set this reg.
+ (troff_output::end_picture): Remove this reg
+ * eqn/box.c (box::extra_space): Don't produce `\x's if
+ EQN_NO_EXTRA_SPACE_REG is defined.
+
+ * eqn/eqn.y: Allow just a PRIME to be a `simple'.
+ * eqn/text.c (split_text): Map ' to \(fm when it's the first
+ character.
+
+Thu Nov 15 10:35:06 1990 James Clark (jjc at jclark)
+
+ * macros/tmac.e: Use font 3 instead of B in $c. Remove `bd'
+ requests.
+
+ * troff/div.c (top_level_diversion::top_level_diversion):
+ Initialize page_number to 0.
+
+Wed Nov 14 21:41:58 1990 James Clark (jjc at jclark)
+
+ * groff/troff (environment::environment(const environment *)):
+ Initialize name to e->name, rather than "anonymous".
+
+Sat Nov 10 01:59:37 1990 James Clark (jjc at jclark)
+
+ * xditview/libXdvi/Dvi.c (ShowDvi): If eof is encountered, reset
+ requested_page. Split middle part into ...
+ (FindPage): New function.
+ (SetValues): If we don't yet know the last page, and the requested
+ page is greater than the current page, call FindPage.
+ Update the font_map_string before doing this.
+
+ * xditview/tmac.X: Add definitions of \(sq, \(ga, \(dg and \(dd.
+ Translate \(lh and \(rh into left and right double arrows.
+
+ * troff/node.c (class hyphen_inhibitor_node): New class.
+ (hyphen_inhibitor_node::hyphen_inhibitor_node,
+ hyphen_inhibitor_node::copy, hyphen_inhibitor_node::same,
+ hyphen_inhibitor_node::type,
+ hyphen_inhibitor_node::get_hyphenation_type): New functions.
+ (node::add_discretionary_hyphen): Use hyphen_inhibitor_node rather
+ than dbreak_node(0, 0) to represent a `\%' at the beginning of a
+ word.
+
+Fri Nov 9 16:05:38 1990 James Clark (jjc at jclark)
+
+ * troff/node.h (dummy_node::get_hyphenation_type,
+ transparent_dummy_node::get_hyphenation_type): Declare them.
+ * troff/node.c: (dummy_node::get_hyphenation_type,
+ transparent_dummy_node::get_hyphenation_type): New functions.
+
+Wed Nov 7 10:09:06 1990 James Clark (jjc at jclark)
+
+ * xditview/libXdvi/draw.c: If M_PI not defined after including
+ math.h, then define it.
+
+ * xditview/Makefile: Add definition of AR. Pass it to the submake
+ in libXdvi.
+ * xditview/libXdvi/Makefile: Add definitions of AR and RANLIB.
+
+Tue Nov 6 10:14:27 1990 James Clark (jjc at jclark)
+
+ * troff/dictionary.h (object_dictionary::alias): Declare return
+ value as int.
+ * troff/dictionary.c (object_dictionary::alias): Return non-zero
+ if the old name was defined.
+ * troff/input.c (alias_macro): Give a warning if the old name was
+ not defined.
+ * troff/reg.c (alias_reg): Likewise.
+
+Mon Nov 5 00:31:39 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (token::next): Delete implementation of \R.
+
+ * macros/Makefile: Strip comments from tmac.e while installing it.
+
+ * troff/input.c: New variable `nroff_mode'.
+ (troff_request, nroff_request): New functions.
+ (init_input_requests): Bind `troff' and `nroff' to troff_request
+ and nroff_request.
+ (do_if_request): Compute results of t and n conditions from
+ nroff_mode.
+
+ * text/text.c (split_text): Fix typo in >=.
+
+ * eqn/lex.c: Add definition of `==' to def_table.
+
+Fri Nov 2 02:49:09 1990 James Clark (jjc at jclark)
+
+ * pic/tex.c (tex_output::start_picture): Change the definitions of
+ \graph and \graphtemp so that they work properly with Plain TeX.
+
+ * pic/tex.c (tex_output::solid_arc): Ensure that the second angle
+ argument to `ar' is not less than the first.
+
+ * pic/pic.y: Allow a comma between elements of the variable list
+ in the argument to `reset'.
+
+ * pic/object.c (arc_object::arc_object): Fix computation of
+ radius.
+
+ * eqn/main.c (main): Add exit(0).
+
+Thu Nov 1 02:03:50 1990 James Clark (jjc at jclark)
+
+ * troff/div.c (begin_page): Test no_space_mode after doing the
+ break, but still push the page ejector cookie before doing the
+ break. Also set the next page number after doing the break.
+
+ * xditview/xditview.c (NewFile): Don't set the title and icon name
+ if this is the first file and its name is `-'.
+ * groff/groff.c: Define a new device flag XT_OPTION. Set it for
+ the X75 and X100 devices.
+ (main): If a device has the XT_OPTION flag set and there's exactly
+ one file argument, pass the driver -xrm and -title options to set
+ the icon name and window title to the name of the file.
+
+ * troff/env.c (environment_switch): If there was an argument but
+ it wasn't a valid number or name, then pop an environment but
+ don't give an error message on underflow.
+
+ * troff/number.c (start_number): Correct spelling in error message.
+
+ * troff/input.c (token::delimiter): Don't print an error message
+ if err is false.
+
+ * xditview/libXdvi/parse.c (ParseInput): In case 'D', only call
+ ParseDrawFunction if dw->display_enable is true.
+
+Wed Oct 31 05:49:50 1990 James Clark (jjc at jclark)
+
+ * pic/pic.y: Parse text positioning like normal attributes, so as
+ to allow `"text" at 0,0 ljust'. Don't allow `center' as a
+ positioning attribute.
+
+Mon Oct 29 22:50:38 1990 James Clark (jjc at jclark)
+
+ * tbl/main.c (process_data): When in state START while reading a
+ text block, don't change to state MIDDLE if c is a newline.
+
+Sun Oct 28 21:59:56 1990 James Clark (jjc at jclark)
+
+ * dvi/dvi.c (dvi_printer::begin_page): Rename `i' variable to `j'
+ so as to avoid shadowing parameter.
+
+Wed Oct 24 18:35:39 1990 James Clark (jjc at jclark)
+
+ * tbl/table.c (trim_space): Deleted.
+ (table::add_entry): Don't call trim_space.
+
+Mon Oct 22 03:48:39 1990 James Clark (jjc at jclark)
+
+ * VERSION: Change version to 0.6.
+
+ * troff/number.c (parse_expr): Make == work.
+
+Sat Oct 20 11:28:17 1990 James Clark (jjc at jclark)
+
+ * man/grog.man: New file.
+ * man/Makefile: Add grog.n to MAN1PAGES.
+ * etc/grog.sh: New file.
+ * etc/Makefile: Install grog.sh as grog.
+
+Fri Oct 19 11:17:15 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (token::next): Implement \E.
+
+Thu Oct 18 11:56:24 1990 James Clark (jjc at jclark)
+
+ * xditview/tmac.X: Change font translations to match tmac.ps.
+
+ * troff/input.c (non_empty_name_warning): Don't give a warning if
+ `\{' terminates the name.
+
+Tue Oct 16 10:04:23 1990 James Clark (jjc at jclark)
+
+ * ps/devps/symbol.diff: New file.
+ * ps/devps/FontMakefile: Mention symbol.diff.
+
+Sun Oct 14 11:46:46 1990 James Clark (jjc at jclark)
+
+ * troff/node.c (font_position): Use get_long_name to read the
+ external_name.
+
+ * troff/env.c (environment_switch): If we get a number that's < 0
+ or >= NENVIRONMENTS, treat it like a name.
+ Change NENVIRONMENTS to 10.
+
+ * troff/groff.h: Remove definition of FONTS_MAX.
+ * troff/node.h (class font_family): Make map a pointer instead of
+ an array. Add a map_size member. Make it a class. Make nm const
+ and public. Make invalidate_fontno a friend.
+ * troff/node.c: Define font_table_size. Make font_info a pointer
+ rather than an array.
+ (class troff_output_file): Allocate font_position dynamically. Add
+ nfont_positions member.
+ (troff_output_file::set_font): Grow font_position if necessary.
+ (troff_output_file::~troff_output_file): Delete font_position.
+ (troff_output_file::troff_output_file): Allocate font_position.
+ (grow_font_table): New function.
+ (troff_output_file::really_begin_page,
+ troff_output_file:really_copy_page): Use nfont_positions rather
+ than FONTS_MAX.
+ (mount_font_no_translate, mount_style): Call grow_font_table if
+ necessary.
+ (font_family::font_family): Allocate map.
+ (font_family::make_definite): Grow map if necessary. Use
+ font_table_size instead of FONTS_MAX.
+ (font_family::~font_family): New function.
+ (invalidate_fontno): Use font_family::map_size.
+ (get_fontno, env_space_width, env_half_narrow_space_width,
+ env_narrow_space_width, symbol_fotno, is_good_fontno,
+ get_bold_fontno, make_glyph_node): Use font_table_size rather than
+ FONTS_MAX.
+ (next_available_font_position): Never return 0.
+
+Fri Oct 12 10:17:52 1990 James Clark (jjc at jclark)
+
+ * ps/tmac.ps: Add font translations for compatibility with dpost.
+
+Thu Oct 11 12:09:03 1990 James Clark (jjc at jclark)
+
+ * eqn/pile.c: Rename default_baseline_sep to baseline_sep.
+ Move BASELINE_SEP_FORMAT and COLUMN_WIDTH_FORMAT into pbox.h.
+ Move definitions baseline_sep, shift_down, column_sep,
+ matrix_side_sep into...
+ * eqn/box.c: Add them to param_table.
+ * eqn/pbox.h: Add declarations to pbox.h.
+
+ * troff/input.c (set_string): Cast value to unsigned char *.
+
+ * troff/token.h (process_input_stack): Declare it static before
+ declaring it a friend.
+
+Wed Oct 10 09:59:13 1990 James Clark (jjc at jclark)
+
+ * dvi/devdvi/texex.map: Fix positions of extensible brace middle
+ and bottom.
+ * dvi/devdvi/EX: Regenerate.
+
+ * troff/input.c (init_charset_table): Make ", ', ), ], *, \(dg
+ transparent.
+
+Tue Oct 9 08:34:02 1990 James Clark (jjc at jclark)
+
+ * eqn/lex.c: In defaults_table, make definition of `dot' call
+ `dot_def'. Don't explicitly make it roman. Similarly for other
+ accents.
+
+ * pic/lex.c (for_input::for_input): Add by_is_multiplicative
+ argument.
+ (for_input::get, for_input::peek): Use this.
+ (do_for): Add by_is_multiplicative argument.
+ * pic/pic.y: Change optional_by clause to allow '*' after `by'.
+ Change semantic value of optional_by to be a double plus a flag
+ saying whethet the by clause is multiplicative.
+
+ * eqn/lex.c (get_delimited_text): Remember location of start of
+ definition. Improve error handling when EOF is encountered.
+
+ * lib/font.h: Rename handle_x_command to
+ handle_unknown_font_command.
+ * lib/font.c (font::load): Call handle_unknown_font_command for
+ any unknown command in the font description file. Don't call
+ handle_x_command. Include the name of the command in the argv.
+ Improve message for unknown command after kernpairs or charset
+ command.
+ * ps/ps.c (ps_font::handle_x_command): Rename to
+ handle_unknown_font_command. Remove message about `x download'
+ command. Give error message for wrong number of arguments.
+ * ps/devps/afmtodit: Generate `encoding' instead of `x encoding'.
+ * dvi/dvi.c (dvi_font::handle_x_command): Rename to
+ handle_unknown_font_command. Give an error message for wrong
+ number of arguments. Rename design_size to designsize.
+ * dvi/tfmtodit.c (main): Generate `checksum' instead of `x
+ checksum', `designsize' instead of `design_size'.
+
+Mon Oct 8 00:38:55 1990 James Clark (jjc at jclark)
+
+ * eqn/*.[chy]: Change underaccent to uaccent.
+
+ * eqn/eqn.y: Add rule for underaccent. Declare UNDERACCENT token;
+ give it the same precedence as ACCENT.
+ * eqn/other.c (make_underaccent_box): New function.
+ * eqn/box.h: Declare it.
+ * eqn/lex.c: Add UNDERACCENT to token_table. Add utilde to
+ def_table.
+
+Sun Oct 7 11:25:16 1990 James Clark (jjc at jclark)
+
+ * pic/pic.y (reset_all): New function. Called in rule for RESET.
+ (parse_init): Call reset_all.
+ (define_variable): When defining scale reset only those
+ pre-defined variables that are scaled.
+ (defaults_table): Add `scale' as non-scaled value.
+
+ * pic/pic.y: Redo parsing of text adjustments: parse adjustments
+ together with the text; allow any number of positioning words;
+ allow center as a positioning word.
+
+ * pic/object.c (output::compute_scale): Get picture maximum height
+ and width from variables called maxpswid and maxpsht.
+ * pic/pic.y: Add maxpswid and maxpsht to defaults_table.
+
+Sat Oct 6 10:16:56 1990 James Clark (jjc at jclark)
+
+ * pic/object.c (object_spec::make_text): Multiply textht by number
+ of text items.
+
+ * pic/pic.y: Allow `sprintf("string", expr,...)' wherever text can
+ occur.
+ (do_sprintf): New function.
+ (pic.gperf): Add sprintf token.
+ (text, sprintf): New rules.
+
+ * pic/pic.y: `rand()' with no arguments returns a random number
+ in the range [0,1).
+
+ * pic/pic.y: Allow a bare expression to be an attribute: change
+ precedences to support this. Change optional_ordinal rule to
+ optional_ordinal_last to avoid reduce/reduce conflict.
+ * pic/object.c (object_spec::object_spec): Initialize direction.
+
+ * pic/pic.y: Implement ^ operator meaning exponentiation.
+
+ * troff/node.h: Add default argument to mount_font.
+ * troff/node.c (font_position): Read an optional third argument
+ giving the external_name.
+ (mount_font): Add optional argument giving the external_name.
+ (mount_font_not_translate): Have additional argument giving
+ external name. Use this name to load the font. Pass both names
+ to font_info::font_info.
+ (font_info::font_info): Have additional argument giving
+ external_name.
+ (class tfont): New member external_name.
+ (font_info::get_tfont): Use external name to construct tfont_spec.
+
+Fri Oct 5 04:03:13 1990 James Clark (jjc at jclark)
+
+ * eqn/lex.c (init_table): Add argument giving device. Define
+ name of device to be "1".
+ (do_ifdef): Counts as true if the argument has been defined with
+ `define'.
+ * eqn/main.c (main): Call init_table with device argument. Make
+ device local to main.
+ * eqn/eqn.h: Change declaration of init_table. Remove declaration
+ of device.
+
+ * pic/lex.c (get_delimited): Allow text to be delimited by
+ matching {}s. Don't recognize ending delimiter within a string.
+
+ * troff/input.c (get_delim_name): New function.
+ (token::next): Implement \C.
+
+ * lib/font.c (font::load): Grok ---. Add an alias for each
+ character based on its code.
+ (font::get_code_width): Deleted.
+ * lib/font.h (class font): Declare font::number_to_index().
+ Remove declaration of font::get_code_width.
+ * lib/nametoindex.c (font::name_to_index): Add 512 rather than 256
+ to indices of named characters.
+ (font::number_to_index): New function.
+ * troff/input.c (font::number_to_index): New function.
+ (get_charinfo_by_number, charinfo::get_number,
+ charinfo::set_number): New functions.
+ (token::next): Turn \N into a TOKEN_NUMBERED_CHAR.
+ (token::process, token::description, token::get_char,
+ token::add_to_node_list, token::operator==): Handle
+ TOKEN_NUMBERED_CHAR.
+ * troff/charinfo.h: Declare get_charinfo_by_number,
+ charinfo::get_number, charinfo::set_number. Add NUMBERED flag to
+ charinfo class.
+ (charinfo::numbered): New function.
+ * troff/token.h: Add TOKEN_NUMBERED_CHAR.
+ * troff/env.h (class environment): Remove declaration of ...
+ * troff/env.c (environment::make_numbered_char_node): Deleted.
+ * troff/node.c (make_numbered_node): Deleted.
+ (class numbered_glyph_node): Remove.
+ (troff_output_file::put_char_width, troff_output_file::put_char):
+ Handle numbered chars.
+ (troff_output_file::numbered_char): Removed.
+ (tfont::get_code_width): Removed.
+ (make_glyph_node): Don't search special fonts for numbered
+ characters.
+ * troff/node.h: Remove declaration of make_numbered_node.
+ * driver/input.c (do_file): Handle N command.
+ * driver/printer.h: Add declaration of ...
+ * driver/printer.c (printer::set_numbered_char): New function.
+ * dvi/tfmtodit.c (main): Generate unnamed entries.
+ * ps/devps/afmtodit: Likewise.
+ * xditview/xtotroff.c (MapFont): Likewise.
+ * xditview/libXdvi/parse.c (ParseInput): Grok N command.
+
+ * tbl/main.c (process_format): If multiple widths are specified
+ for a column but all the widths are the same, don't give an error
+ message.
+
+ * tbl/table.c (table::do_row): If the current row is all lines and
+ the stuff doesn't contains a line, mark the top of the row after
+ printing stuff before the row. If the current row is not all
+ lines and the stuff doesn't contain a line, don't unnecessarily
+ mark the top of the row before printing the stuff.
+
+Mon Oct 1 11:42:00 1990 James Clark (jjc at jclark)
+
+ * troff/groff.h: Remove MAX_PATH.
+ * troff/input.c (open_file): Dynamically allocate space for the
+ path.
+ (open_mac_file, process_macro_file): Corresponding changes.
+
+Sun Sep 23 18:56:26 1990 James Clark (jjc at jclark)
+
+ * troff/node.h (class output_file): Make copy_file pure. Add
+ vspace method ifdef COLUMN. Add is_printing method.
+ * troff/node.c: Add class printing_reg. Add class
+ real_output_file. Derive other output_file classes from
+ real_output_file; in these classes rename begin_page to
+ really_begin_page, print_line to really_print_line, copy_file to
+ really_copy_file, transparent_char to really_transparent_char.
+ Move output_file::flush to real_output_file. Add printing member
+ to class output_file.
+ * troff/div.h: Remove printing member from top_level_diversion.
+ Add vspace member function to class diversion ifdef COLUMN. Add
+ some declarations ifdef COLUMN.
+ * troff/div.c (top_level_diversion::copy_file,
+ top_level_diversion::transparent_output,
+ top_level_diversion::output): Don't test printing member before
+ output.
+ * troff/input.c: Handle initial variable_space_request ifdef
+ COLUMN.
+ * troff/Makefile: Add column.c but comment it out. Add -DCOLUMN
+ but comment it out.
+
+Sat Sep 22 11:32:22 1990 James Clark (jjc at jclark)
+
+ * troff/div.c (diversion::need): Make any space forced. If we
+ sprung a trap, set truncated_space to minus the distance to the
+ trap and set needed_space to the amount that was needed.
+ (top_level_diversion::space): A forced space turns no_space_mode
+ off.
+ (class constant_vunits_reg): New class.
+ (init_div_requests): Implement number registers .trunc and .ne
+ using constant_vunits_reg.
+ (class truncated_space_reg): Deleted.
+
+ * troff/div.h: Don't have a no_space_mode member in diversion.
+ Instead have it in top_level_diversion.
+ * troff/div.c (diversion::diversion): Don't initialize
+ no_space_mode.
+ (top_level_diversion::top_level_diversion): Initialize
+ no_space_mode.
+ (no_space, restore_spacing): Do nothing if curdiv != topdiv.
+ (macro_diversion::output): Don't clear no_space_mode.
+
+ * troff/input.c (diverted_space_node::reread): Don't call
+ environment::do_break. In fill mode, act like a blank line.
+ (diverted_copy_file_node::reread): Don't call
+ environment::do_break.
+
+ * troff/div.c (blank_line): New function.
+ * troff/div.h: Declare it.
+ * troff/input.c (process_input_stack): Call it.
+
+ * troff/div.c (truncated_space_reg::get_string): New function.
+ (init_div_requests): Bind to .trunc.
+ (space_request, top_level_diversion::space,
+ top_level_diversion::output, macro_diversion::space,
+ macro_diversion::output): Update truncated_space.
+ (macro_diversion::output): Redo calculations when trap sprung.
+ (macro_diversion::output, macro_diversion::space): No need for
+ trap_flag.
+
+ * troff/div.c (top_level_diversion::output): Set nl_reg_contents
+ after truncating post line spacing.
+
+Fri Sep 21 11:27:25 1990 James Clark (jjc at jclark)
+
+ * ps/devps/prologue (MF, SF): Make them work even if setfont is
+ defined as a procedure rather than as an operator.
+
+Thu Sep 20 12:55:05 1990 James Clark (jjc at jclark)
+
+ * troff/div.c (macro_diversion::space): Ignore no_space_mode.
+
+Wed Sep 19 10:54:37 1990 James Clark (jjc at jclark)
+
+ * troff/div.c (top_level_diversion::output): Merge
+ output_file::print_line and output_file::end_of_line member
+ functions.
+ * troff/div.h (class output_file):
+ * troff/node.c (troff_output_file::print_line,
+ troff_output_file::end_of_line, output_file::end_of_line,
+ ascii_output_file::print_line, suppress_output_file::print_line):
+ Corresponding changes.
+
+Tue Sep 18 11:31:47 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (token::next): Don't give a warning for `\.'.
+
+ * troff/env.c (environment::get_center_lines): New function.
+ (init_env_requests): Bind number register .ce to it.
+ * troff/env.h: Declare it.
+ * tbl/table.c (table::init_output): Define reset macro to restore
+ .ce. If center option not given, store .ce in SAVED_CENTER_REG.
+ Then do .ce 0.
+ (table::print): If center option not given, then imply center
+ option if SAVED_CENTER_REG > 0.
+
+Mon Sep 17 09:19:19 1990 James Clark (jjc at jclark)
+
+ * ps/devps/Makefile: Remove T from FONTS. Remove TSymbol.ps and
+ Troff.ps from DOWNLOAD.
+
+ * troff/Makefile: Change comment in DEFINES to avoid confusing
+ System V make.
+
+ * ps/ps.c (ps_printer::do_exec): Allow newlines within PostScript
+ code. Don't try to catch errors with stopped.
+ (check_line_lengths): New function.
+ * ps/devps/prologue (EXEC): Deleted.
+ (EBEGIN, EEND): New procedures.
+
+Sun Sep 16 14:51:15 1990 James Clark (jjc at jclark)
+
+ * troff/input.c: Include request.h before node.h.
+ * troff/node.c: Likewise.
+ * troff/env.c: Likewise.
+ * troff/div.c: Likewise.
+ * troff/node.h (class special_node): Store argument as a macro
+ rather than a char *.
+ * troff/node.c (special_node::special_node, special_node::copy):
+ Grok this.
+ (special_node::~special_node): Deleted.
+ (special_node::tprint): Deleted.
+ (special_node::tprint_start, special_node::tprint_end,
+ special_node::tprint_char): New functions.
+ (troff_output_file::special): Deleted.
+ (troff_output_file::start_special, troff_output_file::end_special,
+ troff_output_file::special_char): New functions.
+ * troff/input.c (special_node::tprint): New function.
+ (do_special): Use macro not char *.
+ (do_transparent_macro): Deleted.
+ (token::next): Don't call do_transparent_macro.
+
+ * troff/input.c (token::next): Add 'Y' case.
+ (do_transparent_macro): New function.
+ * troff/node.c (troff_output_file::special): Handle newlines with
+ argument using new continuation convention.
+ * driver/input.c (get_string): Cope with continuation convention.
+ (do_file): Don't call skip_line after calling get_string(1).
+ * ps/ps.c (ps_printer::special, ps_printer::do_import,
+ ps_printer::do_def, ps_printer::do_exec): Cope with newlines in
+ arg.
+ * xditview/libXdvi/parse.c (ParseInput): Ignore lines starting
+ with +.
+
+Sat Sep 15 19:00:10 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (asciify): By default, invalid input characters
+ should return empty string.
+
+ * troff/input.c (copy_file): Handle first page transition like title.
+ (token::next, process_input_stack): Grok COPY_FILE_REQUEST.
+
+ * troff/input.c (token::next): Improve error message for EOF after
+ escape character.
+ (input_char_description): New function.
+ (get_char_for_escape_name): Use input_char_description.
+ (token::next): Warn about unrecognized escape sequences.
+ (warning_table): Add WARN_ESCAPE.
+ * troff/groff.h: Declare WARN_ESCAPE. Change WARN_TOTAL
+ accordingly.
+
+ * troff/token.h: Remove declaration of process_input_stack.
+
+ * troff/input.c: Remove declaration of init_hyphen_requests.
+ * troff/request.h: Correct spelling in declaration of same.
+
+ * troff/input.c (token::next): Check whether escape_char is 0.
+
+Fri Sep 14 12:09:25 1990 James Clark (jjc at jclark)
+
+ * groff.c (main, usage, help): Implement -P and -L options.
+ * groff.sh: Likewise.
+
+ * troff/input.c (token::next): Use some gotos to avoid code
+ duplication.
+
+ * troff/input.c (get_long_name, get_name, read_long_ecsape_name):
+ Avoid calling symbol::symbol if name empty.
+
+Thu Sep 13 06:21:45 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (init_input_requests): Make \n(.x return the major
+ version number and \n(.y return the minor version number.
+ * troff/Makefile: Construct file majorminor.c defining
+ major_version and minor_version automatically from ../VERSION.
+
+ * troff/node.c (class glyph_node): Make operator new and operator
+ delete public.
+ (class ligature_node): Similarly.
+
+ * troff/input.c (operator==(const macro &, const macro &)): New
+ function.
+ (non_interpreted_node::same): Use this.
+ (string_iterator::string_iterator): Make macro& argument const.
+
+ * troff/input.c (input_iterator::get): New function. Don't make
+ asciify_macro or class non_interpreted_node friends of class
+ input_iterator.
+ (non_interpreted_node::interpret): Use input_iterator::get.
+ (asciify_macro): Likewise.
+
+ * troff/input.c (~token_node, ~string_iterator, ~arg_list,
+ ~non_interpreted_node): Deleted.
+ * troff/node.c: (~suppress_output_file, ~ascii_output_file):
+ Deleted.
+
+ * troff/symbol.h: Make all symbol member functions const.
+
+ * lib/strtol.c: New file.
+ * lib/Makefile: Add strtol.c.
+ * Makefile: Define STRTOL as strtol.o to include strtol in
+ libgroff.a.
+
+Wed Sep 12 10:00:49 1990 James Clark (jjc at jclark)
+
+ * pic/troff.c (troff_output::simple_circle): Divide by scale.
+
+Tue Sep 11 14:17:16 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (do_special): Use input_level.
+
+ * troff/token.h (TOKEN_BACKSPACE): New token.
+ (token::backspace): New function.
+ * troff/input.c (token::description, token::next, token::process):
+ Grok TOKEN_BACKSPACE.
+ (do_special): Turn TOKEN_BACKSPACE back into \b.
+
+ * troff/token.h (token::leader): New function.
+ * troff/input.c (do_special): Turn TOKEN_LEADER back into \001.
+
+ * troff/input.c (do_special): Turn TOKEN_TAB back into \t.
+
+ * troff/input.c (do_special): Use token::description in error
+ message.
+
+Mon Sep 10 11:06:27 1990 James Clark (jjc at jclark)
+
+ * troff/input.c (decode_args): Combine quoted and
+ quote_input_level variables. Make it a for (;;) loop.
+
+ * troff/input.c (get_char_for_escape_name): Check for \001 and \b.
+
+ * troff/input.c (read_long_escape_name): The test for whether to
+ expand buffer was off by 1.
+ (read_string): Similarly.
+
+Fri Sep 7 11:45:50 1990 James Clark (jjc at jclark)
+
+ * troff/input.c: Use `const int' rather than `static const int'.
+
+ * troff/div.h (diversion::copy_file): Declare as pure virtual.
+ (macro_diversion::copy_file): New function.
+ * troff/node.h: New class diverted_copy_file_node.
+ * troff/node.c: Implement it.
+ * troff/input.c (copy_file): Use diversion::copy_file. Handle
+ first page transition by pushing a diverted_copy_file_node.
+ * troff/input.c (token::next, process_input_stack): Don't handle
+ COPY_FILE_REQUEST.
+
+Thu Sep 6 13:29:10 1990 James Clark (jjc at jclark)
+
+ * ps/ps.c (flush_sbuf): Remember to add sbuf_kern when checking
+ whether space widths need adjusting.
+
+ * troff/charinfo.h: Generalize translated_to_space to
+ special_translation so as to allow translation to \&.
+ * troff/input.c (translate): Allow translation to \&.
+ (charinfo::*): Corresponding changes.
+ * troff/node.c (make_node, node::add_char): Corresponding changes.
+ * troff/node.h (dummy_node::dummy_node): Allow optional first
+ argument.
+
+ * lib/lib.h: Make codes 0200 to 0237 invalid input characters.
+ * troff/token.h: Remove TOKEN_TITLE. Remove token::title. Add
+ TOKEN_REQUEST.
+ * troff/input.c (token::next): Turn a TITLE_REQUEST into a
+ TOKEN_REQUEST with an argument of TITLE_REQUEST.
+ (token::process): Grok that.
+ * troff/input.c (copy_file): Handle first page transition like
+ title by pushing a COPY_FILE_REQUEST cookie.
+ (token::next, process_input_stack): Grok that.
+ * troff/node.h (output_file::copy_file): Add x and y arguments.
+ Make it non-pure.
+ * troff/div.c (top_level_diversion::copy_file): Supply them.
+ * troff/node.c (troff_output_file::copy_file): Add x and y
+ arguments; moveto specified position. Invalidate font_position
+ array after copying file.
+ (output_file::copy_file): New function.
+ (suppressed_output_file::copy_file, ascii_output::copy_file):
+ Removed.
+ * troff/input.c (transparent_file): New function.
+ (init_input_requests): Bind to "trf".
+ (token::next): Handle TRANSPARENT_FILE_REQUEST cookie.
+ (process_input_stack): Likewise.
+
+ * troff/Makefile: Add ../lib/lib.h to GROFF_H.
+
+ * troff/node.c (init_node_requests): New number registers .kern
+ pointing to global_kern_mode, and .lg pointing to
+ global_ligature_mode.
+
+ * troff/node.c (ligature): Don't change it if we get a bad
+ integer.
+
+ * troff/input.c (do_define_string): Don't strip tabs.
+
+ * troff/input.c (asciify_macro): Make the string_iterator auto.
+
+ * troff/node.c (init_font_requests): Rename to...
+ (init_node_requests):
+ * troff/node.h: Change declaration.
+ * troff/input.c (main): Change call.
+
+ * troff/input.c (node::reread, diverted_space_node::reread): New
+ methods.
+ (process_input_stack): Call reread rather than
+ get_diverted_space_node.
+ * troff/node.c (node::get_diverted_space_node,
+ diverted_space_node::get_diverted_space_node): Removed.
+ * troff/node.h: Declare reread methods instead of
+ get_diverted_space_node methods. Make `n' member private.
+ * troff/input.c: (token::diverted_space): Removed.
+ * troff/token.h: Removed declaration.
+
+
+Tue Sep 4 00:48:04 1990 James Clark (jjc at jclark)
+
+ * eqn/script.c (script_box::compute_metrics): Don't let
+ SUP_RAISE_FORMAT become negative.
+
+ * tbl/table.c (table::do_row): Entries that don't end in the
+ this row shouldn't make the row non-blank.
+
+ * tbl/table.c (table::make_columns_equal): Only set the width of
+ columns which are marked as equal.
+
+ * tbl/main.c (process_data): Before issuing excess data error,
+ if last character was a newline unget it; then get it again after
+ the error. Also include the contents of the entry in the message.
+
+ * groff.c: New file.
+ * Makefile: Build groff from groff.c. Make it possible to use
+ either groff.sh or groff.c as groff.
+ * Makefile.bd: Similarly.
+
+Mon Sep 3 09:39:49 1990 James Clark (jjc at jclark)
+
+ * groff.sh: Don't delay expansion of $@ in assignment to files.
+ Remove occurrences of \".
+
+Sun Sep 2 09:56:59 1990 James Clark (jjc at jclark)
+
+ * all Makefiles: Simplify and rearrange.
+
+ * Makefile: Handle fmod like malloc.
+ * lib/Makefile: Similarly.
+ * lib/fmod.c: Remove #ifdef NEED_FMOD.
+
+ * Makefile: Rename OPTIMISE to OPTIMIZE.
+
+ * groff.sh: Remove assignment to PATH.
+ * Makefile: Remove SHPATH variable.
+ * Makefile.bd: Similarly.
+
+ * groff.sh: Add -V option to print the pipeline instead of
+ executing it.
+
+Fri Aug 31 00:56:46 1990 James Clark (jjc at jclark)
+
+ * lib/font.c: Split off file searching into ...
+ * lib/fontfile.c: New file.
+
+ * lib/strerror.c (strerror): Use `Error %d' for unknown errors.
+
+Thu Aug 30 13:13:55 1990 James Clark (jjc at jclark)
+
+ * tbl/table.c (table::do_hspan): Delete assertion that e != 0.
+ Also change misleading comment.
+ (table::do_vspan): Change similarly misleading comment.
+ * tbl/main.c (process_data): A format row with an explicit `s'
+ uses up a data line, even if all the other columns are `_' or `='.
+
+ * troff/input.c (token::description): Fix description of
+ TOKEN_DUMMY and TOKEN_EMPTY.
+
+Wed Aug 29 04:12:08 1990 James Clark (jjc at jclark)
+
+ * groff.sh: Fix description of -Z in help message.
+
+Tue Aug 28 07:28:33 1990 James Clark (jjc at jclark)
+
+ * pic/object.c (object_spec::make_object): Allow negative and zero
+ line thicknesses.
+ * pic/pic.y: Give linethick default value of -1.0.
+ * pic/troff.c (troff_output::troff_output): Initialize
+ last_line_thickness to BAD_THICKNESS.
+ (troff_output::finish_picture): Set thickness to BAD_THICKNESS.
+ (troff_output::line_thickness): Canonicalize negative thicknesses
+ to RELATIVE_THICKNESS.
+ * pic/tex.c (tex_output::set_pen_size): Silently map negative line
+ thicknesses to DEFAULT_PEN_SIZE. Canonicalize negative pen sizes
+ to -1.0.
+ (tex_output::start_picture): Set pen_size to -2.0.
+
+ * ps/ps.c (ps_printer::set_line_thickness): If line_thickness is
+ 0, then use 0 linewidth.
+ (ps_printer::ps_printer): Initialize line_thickness to -1.
+
+ * pic/troff.c (troff_output::simple_ellipse): Divide by scale.
+
+ * ps/devps/symbolchars: Remove `or'.
+ * ps/tmac.ps: Implement \(or with .char.
+
+ * ps/devps/symbolchars: Move most characters into textmap.
+ * ps/devps/textmap: Add names for troff bracket characters. Remove
+ ul, ru, br, bv.
+
+ * ps/devps/TSymbol.ps: Removed.
+ * ps/devps/FontMakefile: Make S from Symbol not TSymbol.
+ * ps/tmac.ps: Do with .char what TSymbol did.
+ * ps/devps/download: Remove TSymbol.
+
+ * ps/devps/T: Removed.
+ * ps/devps/Troff.ps: Removed.
+ * ps/devps/Troff.afm: Removed.
+ * ps/tmac.ps: Implement \(ru, \(ul, and \(br with .char.
+ * ps/devps/download: Remove Troff.
+ * ps/devps/FontMakefile: Remove T target.
+ * ps/devps/DESC-A4: Remove T from font list.
+ * ps/devps/DESC-letter: Likewise.
+
+ * troff/input.c (macro_to_node): Rename to ...
+ (charinfo_to_node): Don't pass mac argument. Temporarily remove the
+ character's definition while processing it.
+ * troff/node.c (node::add_char, make_node): Change calls to
+ macro_to_node accordingly.
+
+ * troff/input.c (token::next): Translate \_ to \(ul.
+
+ * tty/devascii/R.proto: Add `|'.
+ * tty/devlatin1/R.proto: Likewise.
+
+Mon Aug 27 11:25:41 1990 James Clark (jjc at jclark)
+
+ * man: Put the version number in all the man pages.
+
+Sun Aug 26 11:40:05 1990 James Clark (jjc at jclark)
+
+ * Makefile.bd: New file.
+ * README.bd: New file.
+
+ * VERSION: New file.
+ * lib/version.c: Removed.
+ * lib/Makefile: Create version.c from ../VERSION. Remove version.c
+ in clean target.
+
+ * troff/input.c (main): Get hyphen_file from GROFF_HYPHEN
+ environment variable.
+
+ * all Makefiles: Split install target into install.bin for
+ binaries, and install.nobin for everything else.
+ * Makefile: Add bindist target.
+
+ * man/afmtodit.man: New file.
+ * man/Makefile: Add afmtodit.n to MAN1PAGES.
+ * ps/devps/Makefile: Add textmap to DEVICEFILES. Install afmtodit
+ in BINDIR.
+ * ps/Makefile: Pass BINDIR to make install in devps.
+
+ * ps/ps.c (ps_printer::set_char): Do nothing if the character is
+ the space character.
+
+ * ps/devps/FontMakefile: Rename symbol.afm to tsymbol.afm.
+
+Sat Aug 25 15:39:03 1990 James Clark (jjc at jclark)
+
+ * ps/ps.c: Redo font downloading.
+ * ps/devps/download: New file.
+ * ps/devps/Makefile: Add download to DEVICEFILES.
+ * ps/devps/afmtodit: Remove -d option.
+ * ps/devps/FontMakefile: Don't use -d option with afmtodit.
+ * ps/devps/symbosl.ps: Add %%DocumentFonts comment.
+ * ps/devps/zapfdr.ps: Likewise.
+ * ps/devps/TSymbol.ps: Likewise.
+
+Fri Aug 24 20:10:30 1990 James Clark (jjc at jclark)
+
+ * groff.sh: Initialize dev to ${GROFF_TYPESETTER:-@DEVICE@}.
+
+Thu Aug 23 10:03:47 1990 James Clark (jjc at yquem)
+
+ * ps/ps.c (ps_output::include_file): If BROKEN_SPOOLER is defined,
+ then strip the first line if it starts with %.
+ * Makefile: Add a comment about this.
+
+ * man/tfmtodit.man: New file.
+ * man/Makefile: Add tfmtodit.n to MAN1PAGES.
+ * dvi/Makefile: Install tfmtodit in BINDIR.
+
+ * dvi/tfmtodit.c (usage): Mention -v option.
+
+Wed Aug 22 09:56:36 1990 James Clark (jjc at yquem)
+
+ * troff/node.c (troff_output_file::end_of_line): Call do_motion.
+ * troff/node.c (troff_output_file::transparent_char): Don't call
+ flush_tbuf.
+
+ * eqn: Add check_tabs method to most box classes.
+ * eqn/box.c (box::top_level): Call check_tabs.
+
+ * eqn/script.c (script_box::output): Use \Z.
+ * eqn/limit.c (limit_box::output): Use \Z.
+
+ * eqn/box.c (box::top_level): Use itoa.
+
+Tue Aug 21 09:29:28 1990 James Clark (jjc at yquem)
+
+ * dvi/tmac.dvi: Add font translations for CR, C, TT.
+ * dvi/devdvi/Makefile: Don't make links to CW.
+
+ * ps/tmac.ps: Add font translations for C, CW, CO, CX, CD, H, HO,
+ HX, HD.
+ * xditview/tmac.X: Likewise.
+
+ * troff/node.c: Add font translation feature.
+ (get_font_translation): New function.
+ (symbol_fontno): Translate the font name.
+ (mount_font_no_translate): Rename to mount_font to this.
+ (mount_font): New function.
+ (font_family::make_definite): Call mount_font_no_translate instead
+ of mount_font.
+ (mount_style): Translate the font name.
+ (font_translate): New function.
+ (init_font_requests): Bind "ftr" to font_translate.
+
+ * ps/devps/prologue (SN): New procedure that rounds a position to
+ the nearest (pixel + (.25,.25)).
+ (DL): Use SN to round endpoints.
+
+ * lib/version.c: Changed version to 0.5.
+
+Sat Aug 18 04:43:21 1990 James Clark (jjc at yquem)
+
+ * Makefile: Move definition of PAGE to the very beginning, so that
+ people are less likely to miss it.
+
+Fri Aug 17 02:15:11 1990 James Clark (jjc at yquem)
+
+ * man/Makefile: Don't need to sed out @UPCASE_PROG_PREFIX@.
+
+ * troff/env.c (environment::choose_breakpoint): Make `can't find
+ breakpoint' error a warning of type WARN_BREAK. Change message to
+ `can't break line'.
+ * troff/groff.h: Declare WARN_BREAK with code 4; change WARN_INPUT to
+ code 040000.
+ * troff/input.c: Add WARN_BREAK to warning_table. Include
+ WARN_BREAK in DEFAULT_WARNING_MASK.
+
+ * tty/tmac.tty: Add definition of \(+-.
+
+ * groff.sh: Remove `--' option to set command.
+
+ * dvi/devdvi/texsy.map: Remove duplicate md entry.
+
+ * ps/devps/eqnchar: Better definition of cdot using md.
+ * dvi/devdvi/eqnchar: Likewise.
+ * xditview/devX100/eqnchar: Likewise.
+ * xditview/devX75/eqnchar: Likewise.
+ * eqn/lex.c: Add definition of cdot.
+
+Thu Aug 16 09:33:57 1990 James Clark (jjc at yquem)
+
+ * troff/input.c (get_optional_char): New function.
+ * troff/input.c (set_page_character): Use get_optional_char(),
+ rather than has_arg() and tok.get_char(1).
+ * troff/env.c (tab_character, leader_character, hyphen_char,
+ field_characters): Likewise.
+ (margin_character): Likewise. Also always delete the
+ margin_character_node.
+
+ * troff/input.c (token::get_char): Use token::description.
+
+ * troff/input.c (has_arg): Don't skip over tab and \}.
+ * troff/number.c (start_number): Give a warning if the number
+ starts with \} (WARN_RIGHT_BRACE) or tab (WARN_TAB).
+
+Wed Aug 15 10:04:37 1990 James Clark (jjc at yquem)
+
+ * troff/input.c (empty_name_warning, non_empty_name_warning): New
+ functions.
+ (get_name, get_long_name): Use these. Rename `warn' argument to
+ `required'.
+
+ * troff/node.c (get_fontno): Test that the symbol is not null.
+
+ * troff/input.c (token::description): New function.
+ * troff/number.c (parse_term): Use token::description in `numeric
+ expression expected' message.
+ * troff/groff.h: Add WARN_MISSING.
+ * troff/number.c (start_number): New function.
+ * troff/number.c (get_vunits, get_hunits, get_number, get_integer,
+ get_incr_number): Use start_number().
+ * troff/input.c (DEFAULT_WARNING_MASK): Enable WARN_NUMBER by
+ default.
+ * troff/input.c (get_name, get_long_name): Use WARN_MISSING.
+ * troff/reg.c (alter_format): Use WARN_MISSING. Also use
+ token::descripion.
+ * troff/input.c (token::get_char): Use WARN_MISSING.
+ * troff/input.c (token::delimiter): Use token::description.
+ * troff/env.c (environment_switch): Back out Aug 3 change.
+ * troff/input.c (has_arg): Skip over \}s and tabs but give a
+ warning.
+ * troff/token.h (token::tab): New function.
+ * troff/node.c (get_fontno): Use tok.skip() rather than has_arg().
+ * troff/reg.c (alter_format): Likewise.
+ * troff/node.c (bold_font): Use has_arg() rather than tok.skip().
+
+Tue Aug 14 10:11:21 1990 James Clark (jjc at yquem)
+
+ * troff (most files): Redo warnings. Divide warnings into various
+ categories; warning() has an additional first argument indicating
+ the category it falls into.
+ * troff/input.c (main): -w now takes an argument. New option -W.
+ (enable_warning, disable_warning): New functions.
+
+ * ps/devps/afmtodit: Add -a option to lie about the italic angle.
+ * ps/devps/FontMakefile: Pretend TI has an angle of 7.
+
+Mon Aug 13 10:11:16 1990 James Clark (jjc at yquem)
+
+ * ps/devps/eqnchar: Better definitions of dotdot, vec, dyad, inf.
+ * xditview/devX100/eqnchar: Likewise. Remove definition of dot.
+ * xditview/devX75/eqnchar: Likewise.
+ * dvi/devdvi/eqnchar: Better definitions of vec, dyad, dotdot.
+
+ * eqn/other.c: When bar or over applies to a single character
+ don't produce an overline_box or an underline_box. Instead produce
+ an accent_box or an underaccent_box, with the accent a line
+ whose width is accent_width. New classes underaccent_box,
+ overline_char_box and underline_char_box.
+ * eqn/box.h: Move overline_box, underline_box, accent_box class
+ declarations into eqn/other.c. Add declarations of
+ make_underline_box, make_overline_box, make_accent_box.
+ * eqn/eqn.y: Call make_overline_box, make_underline_box
+ make_accent_box instead of constructors.
+ * eqn/pbox.h, eqn/box.c: Add accent_width parameter.
+
+ * eqn/other.c: Add accent_box::~accent_box.
+ * eqn/box.h: Declare it.
+
+ * groff.sh: With -Tps, use eqn -D.
+
+ * eqn/other.c (overline_box::output): Use \Z. If draw_flag use \D
+ rather than \l.
+ (underline_box::output): Similarly.
+ (accent_box::output): Use \Z.
+
+ * xditview/tmac.X: Add definitions of ~ and ^ (so that they are a
+ bit smaller.)
+
+Sun Aug 12 09:41:15 1990 James Clark (jjc at yquem)
+
+ * troff/div.c (top_level_diversion::transparent_output(unsigned
+ char)): Use asciify.
+ * troff/input.c (asciify): Don't make it static.
+ * troff/token.h (asciify): Declare it.
+
+ * troff/input.c (get_name, get_long_name, token::get_char,
+ token::delimiter): Add an extra default argument which says
+ whether a warning should be printed.
+ * troff: Pass a non-zero argument to one of these rather than
+ printing a warning directly.
+
+Sat Aug 11 09:02:21 1990 James Clark (jjc at yquem)
+
+ * troff: Consistently use symbol::is_null.
+
+ * troff/dictionary.h: Move some inline functions into
+ dictionary.c.
+
+ * troff/request.h: Move inline functions into input.c.
+ (request_or_macro::invoke): Make it pure.
+
+ * troff/input.c, troff/reg.h: New class `constant_int_reg'.
+ * troff/input.c (init_input_requests): Use class constant_int_reg.
+ (class compatible_reg): Deleted.
+ * troff/div.c (init_div_requests): Use class constant_int_reg.
+ (class last_post_line_extra_space_reg): Deleted.
+
+ * troff/env.c (tab_character): Don't change the tab character if
+ we get an invalid argument.
+ (hyphen_char): Similarly.
+
+ * troff/reg.c (alter_format): Check that nm is not null.
+
+ * Makefile, groff.sh: Make it possible to customize the commands
+ used for printing PostScript and dvi files. Also make it possible
+ to customize the path used by groff.sh.
+
+ * eqn/eqn.y: Make `left' right associative.
+
+Fri Aug 10 18:20:39 1990 James Clark (jjc at yquem)
+
+ * pic/pic.h: Added definition of M_SQRT2 for those systems that
+ don't have it.
+
+ * pic/pic.h: Removed definition of INT_MAX.
+
+ * troff/node.c (italic_corrected_node::vertical_extent): Omit
+ `return'.
+
+ * troff/input.c (token::next): Handle \R like \n.
+
+Tue Aug 7 09:46:33 1990 James Clark (jjc at yquem)
+
+ * ps/tmac.pc (PSPIC): Simplify.
+
+ * troff/env.c (tab_stops::to_string):
+ * pic/pic.y (object_type_name):
+ * pic/troff.c (simple_output::line):
+ * pic/tex.c (tex_output::spline):
+ * pic/object.c (object_spec::make_object):
+ * tbl/main.c (process_data): Add cases to switch statements to
+ avoid cfront warnings. (Some of these are spurious, since the
+ switch already has a default case.)
+
+ * ps/tmac.ps (PSPIC): Reformatted. Prefix all local names with
+ `ps-'. Don't test systat; instead check number of arguments to
+ ps-bb.
+
+Mon Aug 6 00:13:07 1990 James Clark (jjc at yquem)
+
+ * macros/tmac.e: Do not decrease the page offset by 0.5i.
+
+ * ps/ps.c (ps_printer::ps_printer): Use mktemp instead of tempnam.
+ Unlink the file as soon as we have opened it, so that we don't
+ have to bother with signal handlers.
+ (handler): Deleted.
+ (fatal_error_exit): Deleted.
+ (main): Don't call signal.
+
+ * dvi/tfmtodit.c: Add -k option so that kerns with the skewchar
+ can be ignored.
+ * dvi/devdvi/Makefile: Use the -k option with S and MI.
+
+ * pic/pic.y: If there is a label, or an nth construction before
+ the first `.' in the argument to `with', ignore it and generate a
+ warning.
+ * pic/lex.c (lex_warning): New function.
+
+ * tbl/table.c (table::init_output): In section keep and release
+ macro, use 0 indent when diverting and the correct indent when
+ rereading.
+
+ * troff/input.c (interpolate_number_format): Do not interpolate
+ anything if the number register is not defined.
+
+ * tbl/main.c (process_data): Don't add entry when col >= ncolumns.
+
+Sat Aug 4 08:12:05 1990 James Clark (jjc at yquem)
+
+ * ps/devps/prologue (PICTURE): Set components of graphics state to
+ their default values.
+
+ * ps/devps/text.enc: Add trademark
+ * ps/devps/textmap: Add names for club, spade, heart, diamond,
+ carriagereturn, suchthat. Use Upsilon1 rather than Upsilon.
+ * ps/devps/symbolchars: Add names for summation and product.
+
+ * dvi/devdvi/texsy.map: Add names for club, spade, heart, diamond,
+ suchthat. Add pp. Add upper-case letters.
+
+ * xditview/libXdvi/DviChar.c: Add names for club, spade, heart,
+ diamond, carriagereturn, suchthat. Use Upsilon1 rather than
+ Upsilon.
+
+ * dvi/devdvi/texsy.map: Rename lA (left angle bracket) to la, and
+ rA (right angle bracket) to ra. Introduce names for double-headed
+ arrows and double-barred arrows: <>, va, lA, rA, hA, uA, dA, vA.
+ * ps/devps/textmap: Likewise for ps device.
+ * xditview/libXdvi/DviChar.c: Likewise for X100 and X75 devices.
+ * tty/devascii/R.proto: Rename lA to la and rA to ra.
+ * tty/devascii/R.proto: Likewise.
+ * tty/tmac.tty: Provide definitions for \(<>, \(lA, \(rA, \(hA,
+ \(uA, \(dA.
+ * eqn/delim.c: In delim_table, rename \(lA to \(la and \(rA to \(ra.
+
+ * xditview/tmac.X: Add definitions for \(fi \(fl \(ff \(Fi \(Fl.
+
+ * eqn/lex.c: Added definitions of `approx', `grad' and `del' to
+ def_table.
+
+Fri Aug 3 09:59:27 1990 James Clark (jjc at yquem)
+
+ * troff/div.c (when_request): Use symbol::is_null rather than
+ has_arg to determine whether we have an argument.
+ (change_trap): Remove the trap if we get an invalid number. Give
+ an error if we don't get at least the macro name.
+ (diversion_trap): Remove trap if we get an invalid name or number.
+
+ * troff/env.c (environment_switch): Pop if we get an invalid
+ symbol or numeric expression.
+
+ * troff/input.c (do_define_macro): If EOF is encountered while
+ defining the macro, do tok.next() before returning.
+
+ * troff/token.h (has_arg): Move definition from here, to ...
+ * troff/input.c (has_arg): ... here
+
+ * troff/env.c (space_size): Do nothing if we get an invalid argument.
+ * troff/input.c (shift): Likewise.
+
+ * pic/lex.c (get_token_after_dot): Accept `.center' as a synonym
+ for `.c'.
+
+ * pic/troff.c (troff_output::start_picture): Comment out calls to
+ `..'.
+
+ * eqn/main.c (do_file): Subtract 1 from current_lineno if
+ interpret_lf_args succeeds.
+
+ * eqn/main.c (do_file): Don't recognize delimiter if preceded by
+ \\. This avoids problems with \$N.
+
+ * groff.sh: Pass -C to preprocessors.
+
+ * lib/lf.c (interpret_lf_args): Be more flexible.
+
+ * tbl/main.c (main): Add -C option.
+ (table_input::get): Do not recognize TE if followed by character
+ other than a space or newline unless -C option given.
+ (process_input_file): Likewise for lf, TS.
+ (process_data): Likewise for lf in text blocks.
+
+ * eqn/main.c (main): Add -C option.
+ (do_file): Don't recognize EQ, EN or lf if followed by character
+ other than space or newline unless -C option given.
+ * eqn/lex.c (file_input::read_line): Similarly.
+ * eqn/eqn.h: Declare compatible_flag.
+
+ * etc/soelim.c (main): Add -C option.
+ (interpret_lf_args): Use version in libgroff.
+ (do_file):
+
+ * pic/main.c (main): Add -C option, which sets compatible_flag.
+ (top_input::get), (top_input::peek): If -C option not given,
+ do not recognize .PS/.PE/.PF/.lf if followed by a character
+ other than space or newline.
+ * pic/lex.c (file_input::read_line): Similarly.
+ * pic/pic.h: Add declaration of compatible_flag.
+
+Thu Aug 2 11:11:27 1990 James Clark (jjc at yquem)
+
+ * ps/tmac.ps (PSPIC): Avoid use of `echo -n'.
+
+ * troff/node.c, troff/node.h: Add `asciify' methods to classes
+ derived from node. New class space_char_hmotion_node.
+ * troff/input.c (asciify_macro): New function.
+ * troff/input.c (init_input_requests): New request `asciify' bound
+ to asciify_macro.
+ * macros/mm.diff: New file.
+ * Makefile: In install.mm target use `patch' to apply
+ macros/mm.diff.
+
+ * troff/input.c (macro::print_size): Just print the size in bytes.
+
+ * troff/div.c (return_request): Correct the argument
+ interpretation.
+
+Wed Aug 1 12:38:36 1990 James Clark (jjc at yquem)
+
+ * troff/node.h (class composite_node): Add sz member.
+ * troff/node.c (composite_node::size): Return sz.
+ * troff/input.c (macro_to_node): Use the initial size in the
+ environment as the size of the composite_node.
+
+ * troff/node.c (node::zero_width_tprint): Provide a reasonable
+ default.
+
+Tue Jul 31 10:07:10 1990 James Clark (jjc at yquem)
+
+ * troff/div.c (change_trap): If we get a bad number expression,
+ do nothing.
+
+Mon Jul 30 10:30:49 1990 James Clark (jjc at yquem)
+
+ * lib/matherr.c (matherr): Define this only if math.h defines
+ TLOSS.
+
+Sun Jul 29 10:34:27 1990 James Clark (jjc at yquem)
+
+ * troff/div.c (macro_diversion::distance_to_next_trap): If there
+ no diversion trap return vunits(INT_MAX - vresolution).
+
+Sat Jul 28 14:28:14 1990 James Clark (jjc at yquem)
+
+ * troff/input.c (do_zero_width): New implementation that doesn't
+ use a temporary environment. Use instead:
+ (token::add_to_node_list): New function.
+ * troff/env.c (environment::get_prev_char_height),
+ (environment::get_prev_char_height),
+ (environment::get_prev_char_skew): New functions.
+ (environment::get_prev_char): New function.
+ (environment::get_prev_char_width): Change to use get_prev_char.
+ (init_env_request): Implement new registers .cht, .cdp, .csk.
+ * eqn/sqrt.c (sqrt_box::output): Don't rely upon the argument to
+ \Z being processed in a separate environment.
+
+Fri Jul 27 10:21:25 1990 James Clark (jjc at yquem)
+
+ * tbl/table.c: Removed TABLE_BOTTOM_REG.
+
+ * tbl/table.c (table::init_output): In the section release macro,
+ give a warning message if the section won't fit on one page.
+
+ * tbl/table.c (table::do_top): Emit table keep only if table is
+ boxed.
+ (table::do_bottom): Likewise for table release.
+ (table::table), (table::add_vertical_rule): Remove reference to
+ keep member.
+ * tbl/table.h: Remove keep member.
+
+ * tbl/table.c: New register SUPPRESS_BOTTOM_REG. In
+ SECTION_RELEASE_MACRO, if there's not enough space before the next
+ trap to output the diversion, call T# ourselves, set
+ SUPPRESS_BOTTOM_REG to 1, spring the trap, then set
+ SUPPRESS_BOTTOM_REG back to 0. In T#, do nothing if
+ SUPPRESS_BOTTOM_REG is non-zero. In T#, always mark the current
+ vertical position and return to it before turning traps on again.
+
+Thu Jul 26 02:54:32 1990 James Clark (jjc at yquem)
+
+ * troff/node.c, troff/node.h: In classes derived from node,
+ replace prev_char_width method by last_char_node method.
+ * troff/env.c (environment::get_prev_char_width): Use
+ node::last_char_node rather than node::get_prev_char_width.
+
+ * Makefile: Added comment about -fno-inline on 68030-based
+ Apollos.
+
+ * troff/reg.c (number_format_to_ascii), eqn/delim.c (DELIM_TABLE_SIZE),
+ tty/tty.c (tty_font::load_tty_font), dvi/tfmtodit.c (main): Cast
+ expressions using sizeof to int.
+ * dvi/dvi.c (dvi_font::handle_x_command): Avoid long->int warnings.
+
+ * macros/tmac.e (TS): Don't move @f back past the current
+ position.
+
+Wed Jul 25 09:11:08 1990 James Clark (jjc at yquem)
+
+ * ps/ps.c (main): Buffer stderr.
+ * dvi/dvi.c (main): Likewise.
+ * tty/tty.c (main): Likewise.
+
+ * ps/ps.c (ps_printer::do_import): Improve error handling.
+
+ * troff/input.c (abort_request): Use asciify.
+
+ * driver/printer.h (printer::draw), driver/printer.c (printer::draw),
+ ps/ps.c (ps_printer::draw), dvi/dvi.c (dvi_printer::draw): Make
+ type of first argument int rather than char. This works around a
+ bug on the 68030 based Apollo using g++ 1.37.1.
+
+ * tbl/table.h (class table): Add `keep' member.
+ * tbl/table.c (table::table): Initialize `keep'.
+ (table::add_vertical_rule): Set `keep' to 1.
+ (table::do_top): Only emit table keep macro is `keep' is non-zero.
+ (table::do_bottom): Likewise for table release macro.
+ (table::do_row): Emit section keep macro even if the row is 0.
+
+Tue Jul 24 08:35:07 1990 James Clark (jjc at yquem)
+
+ * macros/tmac.e (@C): Preserve the font family across the change
+ in environments.
+
+Mon Jul 23 10:15:23 1990 James Clark (jjc at yquem)
+
+ * lib/font.c: Initialize font::hor and font::vert to 1.
+ (font::load_desc): Check the values of font::hor and font::vert.
+
+ * lib/lib.h: Added definition of INT_DIGITS. Fix it so that it can
+ be included in a C compilation.
+ (iftoa): Use INT_DIGITS. Include lib.h.
+ (itoa): Likewise.
+ (as_string): Likewise.
+ * tbl/table.c: Removed definition of INT_DIGITS.
+ * eqn/box.c (box::top_level): Use INT_DIGITS + 1 instead of 12.
+ * troff/input.c (input_input_requests): Likewise.
+ * ps/ps.c (make_encoding_name): Likewise.
+ (ps_printer::set_style): Likewise.
+ (ps_output::put_number): Use 1 + INT_DIGITS + 1 instead of 12.
+
+ * tty/devascii/R.proto: Map fm onto '.
+ * tty/devlatin1/R.proto: Likewise.
+
+Sat Jul 21 12:45:07 1990 James Clark (jjc at yquem)
+
+ * tbl/table.c: Use ' instead of DELIMITER_CHAR in places where the
+ argument to \w is at a different input level.
+
+ * tbl/table.c (table::init_output): Define a new macro
+ REPEATED_VPT_MACRO, like vpt but if in a diversion also
+ transparently outputs itself.
+ (table::define_bottom_macro): Use REPEATED_VPT_MACRO instead of
+ vpt.
+ (table::do_row): Likewise.
+
+ * tbl/table.c (vertical_rule::print): Prefix the .sp -1 line with
+ TRANSPARENT_STRING_NAME.
+
+ * tbl/table.c (table::init_output): In the table release macro
+ print an error message and don't produce any output if after
+ issuing the need request the table still will not fit. Also
+ remove the diversion after bringing it back.
+
+ * tbl/table.c (table::init_output): Define a new macro
+ REPEATED_MARK_MACRO, like mk but if in a diversion also
+ transparently outputs itself.
+ (table::do_row): Mark row_top_reg using REPEATED_MARK_MACRO. This
+ is necessary because .TH might not call .T#.
+ (table::do_top): Likewise TOP_REG.
+ (table::define_bottom_macro): If TOP_REG is no longer valid, use
+ #T - DOUBLE_LINE_SEP rather than #T. This is necessary because the
+ table header might contain just the two top rules.
+
+Fri Jul 20 10:51:42 1990 James Clark (jjc at yquem)
+
+ * troff/div.c: Implement new request `ptr' to print all traps.
+
+ * troff/env.c (init_env_requests): Implement `.tabs' reg with
+ init_string_env_reg.
+ * troff/env.c (class tab_reg): Deleted.
+
+Thu Jul 19 12:07:16 1990 James Clark (jjc at yquem)
+
+ * troff/div.c: New number register .pn returns the number of the
+ next page as set by the pn request.
+
+ * macros/tmac.an: Redid headers and footers. Number each manual
+ entry starting from 1 unless \nC is > 0, like Sun. Added an
+ optional 5th argument to .TH which specifies the manual name and
+ appears in the center of the header. Understand the X, P and D
+ registers like Sun.
+
+Wed Jul 18 10:23:31 1990 James Clark (jjc at yquem)
+
+ * troff/env.c (init_env_requests): New number register `.lt' to
+ return the title length.
+
+ * troff/node.h (class transparent_dummy_node): New class.
+ * troff/node.c (class transparent_dummy_node): Provide member
+ functions.
+ * troff/env.c (interrupt): Add a transparent_dummy_node, rather
+ than a dummy_node.
+
+ * troff/input.c (token::next): New escape sequence \).
+ * troff/input.c (get_copy): Recognize \) in copy mode.
+
+ * troff/input.c (input_stack::clear): New function.
+ * troff/input.c (exit_request): Use input_stack::clear.
+
+ * troff/token.h: Removed TOKEN_NO_PRINT_CHAR.
+ * troff/input.c (token::process): Removed case TOKEN_NO_PRINT_CHAR.
+
+ * troff/env.c: Move set_page_character to input.c. Move
+ page_character to input.c also.
+ * troff/env.c (title): Split off the reading of the parts of the
+ title into read_title_parts.
+ * troff/input.c (read_title_parts): New function. Check the
+ input_level when testing whether a token matches the delimiter.
+
+ * troff/input.c (exit_request): New function.
+ * troff/input.c (init_input_requests): Bind ex request to
+ exit_request rather than exit_groff.
+
+ * troff/input.c (exit_groff): Call tok.next() before
+ process_input_stack().
+
+Mon Jul 16 09:47:23 1990 James Clark (jjc at yquem)
+
+ * troff/env.c: ifdef widow control support on WIDOW_CONTROL.
+ * troff/env.h: ditto.
+ * troff/input.c: ditto.
+
+ * troff/env.c (environment::is_empty): Test pending_lines.
+
+ * troff/env.c (environment::have_pending_lines): Removed.
+
+ * troff/input.c: Add request to flush pending lines from the
+ environment.
+
+ * troff/env.c, troff/env.h: Add automatic widow control feature.
+
+ * troff/input.c (exit_groff): Do process_input_stack() after
+ do_break() but before setting exit_flag to 2.
+
+ * troff/input.c: Remove FLUSH_PENDING_LINES and
+ TOKEN_FLUSH_PENDING_LINES. Instead, flush pending lines from
+ environment after END_TRAP token seen, but only if there aren't
+ any more traps still unfinished.
+ * troff/token.h: Remove TOKEN_FLUSH_PENDING_LINES.
+
+Sun Jul 15 10:50:08 1990 James Clark (jjc at yquem)
+
+ * troff/env.c: Rename the `retain_size' member of class
+ pending_output_line to `no_fill'.
+
+ * troff/env.c (title): When the line is output, make the
+ retain_size argument !fill.
+
+ * troff/node.h: Add `hyphenated' member to struct breakpoint.
+ * troff/node.c (space_node::get_breakpoints),
+ (dbreak_node::get_breakpoints): Fill this in.
+ * troff/env.c: Allow specification of maximum number of
+ consecutive hyphenated lines.
+
+ * troff/env.c (environment::is_empty): Add test for !current_tab.
+
+Sat Jul 14 11:23:01 1990 James Clark (jjc at yquem)
+
+ * troff/env.c (environment::hyphenate_line): Don't completely give
+ up if the word is not to be hyphenated; continue so that breaks
+ can be made at break_char_node's.
+
+ * lib/lib.h: Only define INT_MAX if it's not already defined;
+ undef INT_MIN if it's already defined.
+
+ * Makefile: Make it easy to define CFRONT_ANSI_BUG.
+
+ * lib/lib.h: If CFRONT_ANSI_BUG is defined, cast INT_MIN to long.
+ This works around a bug in AT&T C++ 2.0 used with an ANSI C
+ compiler.
+
+ * macros/tmac.an (an-header): Set no-space mode.
+
+ * macros/tmac.an (TH): Start a new page if necessary.
+
+ * Started using ChangeLog at version 0.4.
+
+Copyright 1990-1999 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:
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.116 b/ChangeLog.116
new file mode 100644
index 0000000..85f26b7
--- /dev/null
+++ b/ChangeLog.116
@@ -0,0 +1,1397 @@
+
+Version 1.16.1 released
+=======================
+
+2000-07-31 Werner LEMBERG <wl@gnu.org>
+
+ Preparing release 1.16.1.
+
+ * REVISION: Revision number set to 1.
+ * MORE.STUFF: Added info about port to DOS.
+ * NEWS, win32-diffs: Updated.
+
+ * src/include/nonposix.h: Remove first line -- this file is used
+ in C also.
+
+ * Makefile.in (dist): Delete Imakefile earlier to avoid a soft
+ link to it.
+
+2000-07-30 Werner LEMBERG <wl@gnu.org>
+
+ * doc/texinfo.tex: Update to latest version.
+
+2000-06-28 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.in (ENVSETUP): Don't assume POSIX make semantics for
+ commands that fail. Don't assume that "export a=b" is valid shell
+ syntax. This is needed for Solaris 2.5.1.
+
+ * src/libs/libgroff/tmpfile.cc, src/utils/indxbib/indxbib.cc: Fix
+ comment about missing Solaris headers.
+
+ * PROBLEMS: Add section about problems with Sun Make and VPATH.
+
+2000-06-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/devics/grodvi/dvi.cc: Replace _setmode() (for MSC) with
+ SET_BINARY().
+
+ * src/include/posix.h: Use HAVE_UNISTD instead of _MSC_VER.
+
+ * win32-diffs: Updated.
+ * README.WIN32: Added CRs to make all Windows editors happy.
+
+ * src/roff/troff/node.cc: Added WIFSIGNALED() macro (copied from
+ src/roff/groff/pipeline.c).
+
+2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * src/roff/grog/Makefile.sub (grog): Prepend `-e' to
+ $(SH_SCRIPT_SED_CMD), for the case where its value is empty.
+
+2000-06-17 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * src/utils/tfmtodit/tfmtodit.cc: #include nonposix.h.
+ (tfm::load, gf::load): Open tfm and gf files in binary mode: these
+ are binary files.
+ (main): Support non-Posix systems with several different styles of
+ slash characters in file names.
+
+ * src/utils/pfbtops/pfbtops.c: #include nonposix.h.
+ (main) [SET_BINARY]: Switch stdin into binary mode.
+
+ * src/utils/indxbib/indxbib.cc: #include nonposix.h.
+ (main): Support file names with several possible slash-type
+ characters, as given by DIR_SEPS[] in nonposix.h.
+ (main) [__MSDOS__]: If renaming the temporary index file fails
+ because it has more than one dot in its trunk, replace the dot
+ with an underscore and try again.
+ (do_file): Use FOPEN_RB instead of "r". Skip every CR before a
+ Newline.
+ [__MSDOS__ || _MSC_VER]: Stop at the first ^Z character.
+
+ * src/utils/hpftodit/hpftodit.cc: #include nonposix.h.
+ (File::File): Open the input file in binary mode. Strip CR
+ characters from each CR-LF pair.
+ (xbasename): Support file names with several possible slash-type
+ characters, as given by DIR_SEPS[] in nonposix.h.
+
+ * src/include/Makefile.sub (HDRS): Add nonposix.h.
+
+ * src/roff/troff/node.cc [HAVE_UNISTD_H]: Include <unistd.h>.
+ (WIFEXITED, WEXITSTATUS, WTERMSIG, WIFSTOPPED, WSTOPSIG)
+ [!_POSIX_VERSION]: Define for traditional Unix systems.
+ (real_output_file::real_output_file): Remove the MSVC-specific
+ call to popen, use instead POPEN_WT, appropriately defined on
+ nonposix.h. #include nonposix.h.
+ (real_output_file::~real_output_file): Remove the MSVC-specific
+ call to pclose, a suitable macro is now defined on nonposix.h.
+ Use the portable macros WIFEXITED, WIFSIGNALED, WTERMSIG, WSTOPSIG
+ and WEXITSTATUS instead of assuming traditional Unix
+ interpretation of the status returned by pclose.
+
+ * src/roff/troff/input.cc (pipe_source): Remove the MSVC-specific
+ call to popen, use POPEN_RT instead (appropriately defined on
+ nonposix.h). #include nonposix.h.
+ (ps_bbox_request): Open the PostScript file in binary mode.
+ Close the file after processing it.
+ (getpid) [_MSC_VER]: Remove; a suitable macro is now defined on
+ nonposix.h.
+
+ * src/roff/groff/pipeline.c (run_pipeline) [__MSDOS__ || _WIN32]:
+ A version of run_pipeline that doesn't use `fork'.
+ (signal_catcher) [__MSDOS__ || _WIN32]: New function.
+ (system_shell_name, system_shell_dash_c)
+ (is_system_shell) [__MSDOS__ || _WIN32]: New functions, to hide
+ the ugliness of testing DOS/Windows file names for equality, and
+ support both stock shells and ports of Unix shells.
+
+ * src/roff/groff/groff.cc: #include nonposix.h.
+ (BSHELL): Definition moved to nonposix.h.
+ (main): Use PATH_SEP[0] instead of literal ':'. Use BSHELL_DASH_C
+ instead of a literal "-c".
+ (xbasename): Support file names with several possible slash-type
+ characters, as given by DIR_SEPS[] in nonposix.h.
+ (possible_command::print): Use BSHELL_DASH_C and IS_BSHELL instead
+ of literal strings.
+
+ * src/preproc/soelim/soelim.cc: #include nonposix.h.
+ (do_file): Use IS_ABSOLUTE instead of testing for a literal '/'.
+
+ * src/preproc/pic/Makefile.sub (YTABH): Change pic.tab.h to
+ pic_tab.h.
+
+ * src/preproc/pic/lex.cc: Change pic.tab.h to pic_tab.h.
+
+ * src/preproc/eqn/Makefile.sub (YTABH): Rename eqn.tab.h to
+ eqn_tab.h.
+
+ * src/preproc/eqn/lex.cc: #include eqn_tab.h, not eqn.tab.h.
+
+ * src/libs/libgroff/tmpfile.cc (DEFAULT_TMPDIR) [P_tmpdir]: If
+ P_tmpdir is defined, use it instead of the literal "/tmp".
+ (remove_tmp_files, add_tmp_file): New functions.
+ (xtmpfile): Record temporary files and register an atexit function
+ to delete them explicitly, instead of relying on the OS to do
+ that, which doesn't work on non-Unix systems.
+
+ * src/libs/libgroff/searchpath.cc: #include nonposix.h.
+ (search_path::search_path): Use PATH_SEP instead of a literal
+ colon.
+ (search_path::command_line_dir): Ditto.
+ (search_path::open_file): Use IS_ABSOLUTE, PATH_SEP and DIR_SEPS,
+ to support non-Posix systems.
+
+ * src/libs/libbib/search.cc: #include nonposix.h.
+ (search_list::add_file): Open the file in binary mode.
+
+ * src/libs/libbib/linear.cc: #include nonposix.h.
+ (file_buffer::load): Remove \r characters preceding \n from the
+ loaded buffer.
+
+ * src/libs/libbib/index.cc: #include nonposix.h.
+ (make_index_search_item): Open index_filename in O_BINARY mode.
+ (index_search_item_iterator::get_tag): Ditto. Remove \r
+ characters before \n characters.
+ (index_search_item::check_files): Open files in binary mode.
+ (index_search_item::munge_filename): Support DOS-style file names
+ with backslashes and drive letters, use IS_ABSOLUTE.
+
+ * src/devices/grops/ps.cc: #include nonposix.h.
+ (main) [SET_BINARY]: Switch stdout to binary mode.
+
+ * src/devices/grolj4/lj4.cc: #include nonposix.h.
+ (main) [SET_BINARY]: Switch stdout to binary mode.
+
+ * src/devices/grolbp/lbp.cc: #include nonposix.h
+ (fill_pattern) [SET_BINARY]: Switch stdout to binary mode.
+
+ * src/devices/grodvi/dvi.cc: #include nonposix.h.
+ [_MSC_VER]: Remove inclusion of Windows-specific headers (done by
+ nonposix.h).
+ (main) [SET_BINARY]: Switch stdout to binary mode.
+ [_MSC_VER]: Remove an explicit call to _setmode.
+
+ * src/include/nonposix.h: New file.
+
+ * Makefile.in (ENVSETUP): New variable, to set up case-sensitive
+ operation when building with DJGPP.
+ ($(TARGETS), dot, $(LIBDIRS), $(CPROGDIRS), $(CCPROGDIRS))
+ ($(DEVDIRS), $(TTYDEVDIRS), $(INCDIRS), $(OTHERDIRS)): Use
+ ENVSETUP.
+
+ * Makefile.comm: mv y.tab.[ch] to y_tab.[ch], to make it work on
+ MS-DOS.
+ (.man.n): Replace `;' with `|', since FONTPATH, MACROPATH,
+ etc. can include a semi-colon on DOS/Windows.
+ (depend.temp): Use depend1.temp instead of depend.temp1, to
+ prevent files from overerwiting each other on 8+3 filesystems.
+
+ * gendef.sh (t): Change definition to work with DOS/Windows.
+
+ doc/groff.texinfo: Apart of some typo corrections, I also changed
+ some index entris, to make them more non-ambiguous, and also put
+ @ignore around some parts that are not yet written, to allow the
+ Info output be readable.
+
+2000-06-10 Gael Queri <gqueri@mail.dotcom.fr>
+
+ Replaced specific checks for function declarations with a generic
+ routine taken from GNU bfd.
+
+ * aclocal.m4 (GROFF_NEED_DECLARATION): New function.
+ GROFF_PUTENV, GROFF_POPEN, GROFF_PCLOSE, GROFF_HYPOT: Removed.
+ * configure.in: Use it.
+ * src/devices/grolbp/lbp.cc, src/include/lib.h,
+ src/preproc/grn/hgraph.cc, src/preproc/pic/pic.h,
+ src/roff/groff/groff.cc: Use it.
+ * Makefile.in, configure: Updated.
+
+2000-06-07 Paco Andrs Verd <pandres@dragonet.es>
+
+ * src/devices/grolbp/lbp.h: Removed unused variables.
+
+2000-05-31 Keith Thompson <kst@sdsc.edu>
+
+ * src/devices/grolbp/lbp.cc (set_papersizes): Add declaration of
+ strncasecmp().
+
+2000-05-31 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_SRAND): New function to test the return value
+ of srand() -- at least SunOS 4.1.3 uses `int' instead of `void'.
+ * configure.in: Use it.
+ * src/preproc/pic/pic.y, src/preproc/pic/pic.cc: Use it.
+ * configure, Makefile.in: Updated.
+
+ * configure.in: Add test for strncasecmp().
+ * src/include/lib.h: Use it.
+
+2000-05-29 Andrej Borsenkow <Andrej.Borsenkow@mow.siemens.ru>
+
+ * src/preproc/grn/Makefile.sub: Add MLIB.
+
+2000-05-29 Nix <nix@esperi.demon.co.uk>
+
+ * Makefile.in: Use @datadir@ and @mandir@ appropriately.
+
+2000-05-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/grog/Makefile.sub, src/roff/grog/grog.sh: Add `@g@'.
+
+ * PROBLEMS: Small update.
+
+ * src/devices/grolbp/lbp.cc: Various small fixes.
+
+2000-05-28 Keith Thompson <kst@sdsc.edu>
+
+ * src/roff/nroff/nroff.sh: Fix main loop syntax.
+
+ * src/utils/indxbib/indxbib.cc: Add declaration of mkstemp().
+
+2000-05-25 Werner LEMBERG <wl@gnu.org>
+
+ * man/roff.man: Removed unused macro.
+
+2000-05-24 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (dist): Remove src/xditview/Imakefile explicitly.
+ This is needed e.g. if you do
+ `make distclean; ./configure; make dist'.
+
+Version 1.16 released
+=====================
+
+2000-05-23 Werner LEMBERG <wl@gnu.org>
+
+ Adding font CWI (constant width italic) to devdvi.
+
+ * font/devdvi/CWI: New file.
+ * font/devdvi/generate/Makefile: Add generating rule.
+ * font/devdvi/DESC.in, font/devdvi/Makefile.sub, win32-diffs,
+ tmac/tmac.dvi: Use it.
+ * NEWS: Announce it.
+
+ * font/devlj4/*: Regenerated (only adding kernings for `cq' glyph).
+ * font/devlj4/generate/Makefile: Cosmetic changes only.
+
+ * man/groff.man: Removed most of the redundant description of
+ special characters (which is in groff_char.man). Added font
+ translation CB->CR for devdvi. Other minor fixes.
+
+ * tmac/tmac.dvi: Improved appearance of \(co (copyright) and \(rg
+ (registered) symbols.
+
+2000-05-22 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile: Added rule for creating info files.
+
+ * font/devdvi/*: Added kernings for `cq' glyph. Updated to latest
+ AMS font metrics.
+ * font/devdvi/generate/Makefile: Fixed dependencies.
+
+ * font/devps/*: Regenerated. Heavy changes for Bookman and
+ NewCentury Schoolbook!
+ * font/devps/generate/afmname: Will now run with GNU awk.
+ * font/devps/generate/textmap: Added forgotten `cq' glyph name.
+ * font/devps/generate/Makefile: Cosmetic changes only.
+
+2000-05-21 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.an: Added a new command line option `-rSxx' (`xx' can be
+ 10, 11, or 12) to support output with 11pt and 12pt base font sizes.
+ `.SS' now produces a heading with a smaller size than `.SH'.
+ Completely formatted.
+ * doc/groff.texinfo, tmac/groff_man.man, NEWS: Document it.
+
+ * man/groff.man: Improved table appearance. Use of `eo' request
+ to reduce number of doubled backslashes in macro definitions.
+ Replacing `\e' with `\(rs'. Other minor fixes.
+
+ * src/preproc/tbl/main.cc: Insert HTML table end tag before `lf'
+ to have correct line number.
+
+ * INSTALL: Small improvement.
+
+2000-05-20 Bernd Warken <bwarken@mayn.de>
+
+ * man/roff.man, tmac/groff_tmac.man: Updates (with corrections by
+ WL).
+
+2000-05-19 Bernd Warken <bwarken@mayn.de>
+
+ * man/groff.man: Complete update (with a lot of corrections by WL).
+
+2000-05-18 Werner LEMBERG <wl@gnu.org>
+
+ Adding `cq' (PS name `quoteright') glyph name as an alias for "'".
+
+ * font/*/*: Implement it.
+ * man/groff_char.man, NEWS: Document it.
+
+ * src/include/unix.h: Removed. It isn't used.
+
+ * doc/groff.texinfo: Slight improvements.
+
+2000-05-17 Werner LEMBERG <wl@gnu.org>
+
+ * README, win32-diffs: Small fixes and improvements.
+
+2000-05-16 Werner LEMBERG <wl@gnu.org>
+
+ * FDL: New file (the Free Documentation License version 1.1).
+
+ * doc/groff.texinfo: Added many start-up values for gtroff.
+ Some structural improvements of the source code.
+
+2000-05-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc: Added small comment about troffrc-end.
+ * src/roff/troff/troff.man: Added info about troffrc-end.
+
+2000-05-14 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (EXTRADIRS): Fix typos.
+ (dist): Handle deletion of old .tar.gz file correctly.
+ (DISTDIRS): Include all tty output devices.
+
+ * doc/groff.texinfo: Adding more cross references; countless other
+ fixes.
+
+2000-05-13 Werner LEMBERG <wl@gnu.org>
+
+ * MORE.STUFF: Added Robert Marks's utilities.
+
+2000-05-12 Werner LEMBERG <wl@gnu.org>
+
+ Added win32 port contributed by Blake McBride
+ <blake@florida-software.com>.
+
+ * README.WIN32, win32-diffs: New files.
+ * NEWS: Updated.
+
+ * src/preproc/grn/hgraph.cc (HGSetBrush): Replace `%lf' with `%f'.
+ (tmove, tmove2): Added parentheses to avoid compiler warnings.
+ (change): Removed unused variables.
+
+ * src/preproc/grn/main.cc (main, conv): Removed unused variables.
+ (savebounds): Changed return value from `int' to `void'.
+ * src/preproc/grn/hdb.cc: Ditto.
+
+ * src/devices/grolbp/lbp.cc (lbp_printer::draw): Removed superfluous
+ final backslash in comment to avoid compiler warning.
+
+ * src/utils/pfbtops/pfbtops.c: Added `getopt.h'.
+
+ * doc/groff.texinfo: More fixes.
+
+2000-05-11 OKAZAKI Tetsurou <okazaki@be.to>
+
+ * tmac/tmac.doc: Documentation fix.
+
+2000-05-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Reading the source code shows up a lot of
+ omissions and incorrect data... More conversion to @Deffn macros.
+
+2000-05-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/reg.cc (number_value_to_ascii): Remove ASCII
+ dependency.
+
+ * src/roff/troff/request.h: Removing unused `no_break_flag'.
+
+2000-05-09 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff.man, man/roff.man, tmac/groff_tmac.man: Minor
+ improvements.
+
+ * doc/groff.texinfo: Extended history section. More conversion to
+ @Deffn macros. More .tr documentation.
+
+2000-05-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Completed tab section. Added info about
+ fields.
+
+2000-05-06 Mike MacIsaac <mikemac@us.ibm.com>
+
+ * PROBLEMS: Describe configure script fix for OS/390 Unix.
+
+2000-05-05 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/DESC.in: Change size 11pt to 10.95pt (as used in
+ LaTeX 2e).
+ * NEWS: Document it.
+
+ * man/troff.man: Minor optical improvements.
+
+2000-05-03 Werner LEMBERG <wl@gnu.org>
+
+ Adding `dq' (PS name `quotedbl') glyph name as an alias for `"'.
+
+ * font/*/*: Implement it.
+ * man/groff_char.man, NEWS: Document it.
+
+2000-05-02 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_tmac.man, man/groff.man, man/roff.man: Fixing @MANxEXT@
+ expansion.
+ * NEWS: Document the three new man pages.
+
+ * aclocal.m4 (GROFF_CXX_CHECK): Removing obsolete AC_C_CROSS call.
+ * configure: Updated.
+
+ * font/devcp1047/R.proto: Fixing fatal bug (a missing `"' character).
+
+2000-05-01 Werner LEMBERG <wl@gnu.org>
+
+ Added grap support to grog.
+
+ * src/roff/grog/grog.sh, src/roff/grog/grog.pl: Implement it.
+ * src/roff/grog/grog.man: Document it.
+
+ * doc/groff.texinfo, NEWS: Add info about grap support.
+
+ Add new man pages comptributed by Bernd Warken <bwarken@mayn.de>
+ (with slight fixes by me).
+
+ * tmac/groff_tmac.man: New file documenting tmac mechanism.
+ * tmac/Makefile.sub: Add groff_tmac.man.
+ * man/roff.man: New file giving overview of roff system.
+ * man/troff.man: A short reference of troff.
+ * man/Makefile.sub: Add roff.man and troff.man.
+
+2000-04-30 Werner LEMBERG <wl@gnu.org>
+
+ Added grap support to groff.
+
+ * src/roff/groff/groff.cc: Implement it.
+ * src/roff/groff/groff.man: Document it.
+
+ * src/devices/grotty/grotty.man: Add cp1047 device.
+ * src/preproc/eqn/eqn.man, src/preproc/eqn/neqn.sh, tmac/eqnrc:
+ Ditto.
+ * src/roff/groff/groff.man: Ditto.
+ * src/roff/nroff/nroff.sh, src/roff/nroff/nroff.man: Ditto.
+ * doc/groff.texinfo: Ditto.
+
+ * tmac/troffrc: Fix mapping of latin-1 char 160 (non-breakable space)
+ for cp1047.
+
+2000-04-29 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man: Add `pc' glyph.
+ * tmac/tmac.latin1: Replacing `md' glyph with `pc'.
+ * tmac/tmac.tty: Add `pc' glyph.
+ * tmac/tmac.tty-char: Use/add `pc' glyph. Don't call tmac.latin1 if
+ we use cp1047 output device.
+
+ * Makefile.in, aclocal.m4: Don't build utf8 on EBCDIC hosts since
+ there are still hardcoded latin1->unicode values in utf8's font
+ definition files.
+ * configure: Updated.
+ * NEWS: Minor clarification. Updated.
+
+ * PROBLEMS: Formatted. Added info about C++ fix pack for OS/390
+ Unix.
+
+2000-04-28 Werner LEMBERG <wl@gnu.org>
+
+ Adding EBCDIC code page 1047.
+
+ * font/devcp1047/R.proto, font/devcp1047/Makefile.sub,
+ font/devcp1047/DESC.proto: New files.
+
+ * aclocal.m4 (GROFF_EBCDIC): Introduce TTYDEVDIRS which can be
+ either ascii/latin1 or cp1047.
+ * Makefile.in: Use it.
+ * configure: Updated.
+
+ Replacing and/or adding `md' (mathdot) glyph with `pc'
+ (periodcentered) in all text fonts.
+
+ * font/*/*: Change it.
+
+2000-04-27 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_OS390): Fixing compiler flags.
+
+ * configure.in: Add check for strings.h.
+ * src/include/driver.h: Use HAVE_STRINGS_H.
+ * src/devices/grolbp/lpb.cc: Remove string.h.
+
+ * src/include/groff-getopt.h: New file. It will be used instead of
+ getopt.h (to be included in lib.h) to avoid endless problems with
+ picky C++ compilers.
+ * src/include/lib.h: Use groff-getopt.h.
+ * src/include/Makefile.sub: Updated.
+
+ * configure: Updated.
+ * Makefile.in: Updated.
+
+ * NEWS: Mention EBCDIC support.
+
+2000-04-26 Werner LEMBERG <wl@gnu.org>
+
+ * TODO: Some additions.
+
+2000-04-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man, doc/groff.texinfo: Fixing documentation
+ of mso request.
+
+2000-04-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man: Minor fixes.
+
+2000-04-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man, doc/groff.texinfo, NEWS: Document the
+ `.T' string register and the incompatible definition of the `.T'
+ number register (compared to Unix troff).
+
+ * man/groff_char.man: Add some missing characters.
+ * font/devutf8/NOTES: Update.
+
+2000-04-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/htmlindicate.h, src/include/lib.h,
+ src/include/posix.h: Fix copyright.
+
+ * src/include/Makefile.sub: Update.
+
+2000-04-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (input_char_description): Removing
+ superfluous space char.
+
+ * tmac/tmac.X: Fix typo \(bq -> \(Bq.
+
+ * doc/groff.texinfo: Document EBCDIC.
+
+2000-04-19 Werner LEMBERG <wl@gnu.org>
+
+ Introducing `shc' as the glyph name for the soft hyphen character.
+
+ * tmac/tmac.tty, tmac/tmac.latin1, tmac/tmac.html,
+ font/devlatin1/R.proto: Use it.
+
+ * NEWS: Updated.
+
+2000-04-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cc (ps_printer::flush_sbuf): Removing
+ dependency on ASCII order.
+
+2000-04-16 Sandor BARANY <S.Barany@infosys.tuwien.ac.at>
+
+ * src/libs/libgroff/illegal.c: Added EBCDIC table.
+ * src/roff/troff/input.cc: Added adaptation to EBCDIC.
+
+ * src/preproc/refer/refer.cc, src/roff/troff/env.cc: Minor changes
+ to increase portability.
+
+2000-04-15 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4: Added GROFF_EBCDIC and GROFF_OS390 tests.
+ Redefined AC_OUTPUT_MAKE_DEFS to replace ASCII character `012' with
+ the generic `\n' if under OS/390 Unix.
+
+ * configure.in: Call GROFF_EBCDIC and GROFF_OS390.
+
+ * configure: Regenerated.
+
+2000-04-14 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: More conversions to @Deffn.
+
+2000-04-12 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.psfig: Fix incorrect use of `&' operator by replacing it
+ with `:'.
+
+ * src/roff/nroff/nroff.man: Add note about tmac.tty-char.
+
+2000-04-10 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: More conversions to @Deffn.
+
+2000-04-08 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/{getopt.c,getopt1.c}, src/include/getopt.h:
+ Updated to latest version (glibc 2.1.3).
+
+2000-04-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile (clean): Include more index files.
+ Add rule texinfo->dvi.
+
+2000-04-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added new index `op' for operators. More
+ info on end of sentence characters. More use of @Deffn.
+
+2000-03-30 Werner LEMBERG <wl@gnu.org>
+
+ * */*.man: Adding a note that a whitespace can be inserted between
+ a command line option and its parameter -- we are using GNU getopt.
+
+ * src/roff/groff/groff.man: Add example of `-m mandoc'.
+
+2000-03-28 Werner LEMBERG <wl@gnu.org>
+
+ Correct anachronism of calling the man macro file with `-man'
+ instead of `-m man' etc.
+
+ * tmac/tmac.man, tmac/tmac.mandoc, tmac/tmac.markup, tmac/tmac.mdoc,
+ tmac/tmac.me, tmac/tmac.ms: New files tmac.m<package> which simply
+ load tmac.<package>.
+
+ * tmac/Makefile.sub: Updated. Take care of $(tmac_an_prefix) etc.
+
+ * NEWS: Updated.
+
+ * doc/groff.texinfo: Updated.
+
+ * tmac/groff_man.man: Copyright added.
+
+2000-03-27 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Introducing macros `Deffn' and `Defmac' to
+ typeset the request resp. escape name with a tt font -- due to a
+ bug in texinfo.tex it is necessary to use the `-e' switch with
+ texi2dvi.
+
+ Improving info about usage of groff units.
+
+ Other minor fixes.
+
+2000-03-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added section about man macro package
+ (I've basically taken groff_man.man). Introducing new indices `ma'
+ for macros/strings and `gl' for glyph names. Other minor fixes.
+
+ * tmac/groff_man.man: Fixed some typos.
+
+2000-03-19 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Removed all occurrences of `you', `we', etc.
+ Other minor fixes.
+
+ * doc/texinfo.tex: New file.
+
+2000-03-18 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improved section on number registers. Other
+ minor updates.
+
+2000-03-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man: Added info about grolbp. Make nicer
+ synopsis.
+
+ * src/devices/grolbp/grolbp.man, src/roff/nroff/nroff.man,
+ src/devices/grolj4/grlj4.man, src/devices/grops/grops.man,
+ src/preproc/eqn/eqn.man, src/utils/afmtodit/afmtodit.man,
+ src/utils/tfmtodit/tfmtodit.man: Make nicer synopsis.
+
+ * src/preproc/grn/grn.man: Better synopsis; added copyright.
+
+ * src/roff/grog/grog.man: Updated copyright date.
+
+2000-03-14 Francisco Andrs Verd <pandres@dragonet.es>
+
+ * configure.in: Added test for strdup.
+
+ * src/devices/grolbp/lbp.cc: Added a strdup() version in case none
+ is available.
+
+ Replaced dynamic allocation of arrays `[...]' with `new' operator.
+
+ Other minor fixes.
+
+2000-03-12 OKAZAKI Tetsurou <okazaki@be.to>
+
+ * Makefile.comm: Add $(INCLUDES) to $(ALL_CFLAGS).
+
+2000-03-11 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/hdb.cc (DBGetType): Added return value to make
+ compilers silent.
+ * src/preproc/grn/hgraph.cc: Add #ifdef for hypot().
+ * src/include/lib.h: Remove some spaces.
+
+2000-03-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/tmpfile.cc (xtmptemplate, xtmpfile): Removing
+ initializers from arguments (some compilers don't like this).
+
+2000-03-09 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/libs/libgroff/htmlindicate.cc: Added library file which is now
+ used by pic and eqn to tell grohtml where the graphic regions start
+ and end.
+ * src/libs/libgroff/Makefile.sub: Use it.
+ * src/preproc/eqn/main.cc, src/preproc/pic/troff.cc: Altered to use
+ graphic_start() and graphic_end() from htmlindicate.cc.
+
+2000-03-09 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.safer: Will now work correctly in compatibility mode.
+ * tmac/groff_man.man: More fixes.
+
+2000-03-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile: Added texput.log to the `clean' target.
+ * doc/groff.texinfo: Added info about delimiters for escapes.
+
+2000-03-08 Bernd Warken <bwarken@mayn.de>
+
+ * src/preproc/pic/pic.man: Add info on conversion of pic images to
+ other graphic formats.
+
+2000-03-07 OKAZAKI Tetsurou <okazaki@be.to>
+
+ * Makefile.in, Makefile.sub, src/preproc/eqn/Makefile.sub,
+ src/roff/groff/Makefile.sub, src/roff/nroff/Makefile.sub,
+ src/utils/afmtodit/Makefile.sub: Use $(INSTALL_SCRIPT) for script
+ files.
+
+2000-03-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Spelling fixes.
+
+2000-03-06 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_man.man: Completely revised to cover everything in
+ tmac.an.
+
+ * doc/groff.texinfo, src/roff/troff/troff.man: Document evc request.
+ Other minor fixings.
+ * src/roff/troff/env.cc (environment_copy): Improve error message and
+ fix itoa->i_to_a.
+ * src/roff/troff/TODO: Updated.
+
+ * doc/Makefile: Bug fixes -- this is still provisional, though...
+
+ * tmac/eqnrc: Small fixes.
+
+2000-03-05 Abramo Bagnara <abramo@alsa-project.org>
+
+ Adding a request `evc' to copy environments.
+
+ * src/roff/troff/env.cc (environment::copy, environment_copy):
+ Implement it.
+ * src/roff/troff/env.h: Add prototype.
+
+2000-03-05 Francisco Andrs Verd <pandres@dragonet.es>
+
+ Adding strsep() -- Solaris 8 doesn't have it.
+
+ * configure.in: Test it.
+ * src/devices/grolbp/lbp.cc: Add code.
+
+2000-03-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/div.cc (macro_diversion::output,
+ top_level_diversion::output): Fixing an incompatibility with
+ original troff: \x'0' updates the .a register also. Thanks to
+ <Andries.Brouwer@cwi.nl> for pointing this out.
+ * doc/groff.texinfo: Document it.
+
+ * Makefile.in: Create Makefile.dep if necessary before calling the
+ submake process to avoid warning about nonexistent file.
+
+ * NEWS, PROJECTS: Updated.
+
+2000-03-04 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/troffrc: Add tmac.lbp.
+
+2000-03-03 Francisco Andrs Verd <pandres@dragonet.es>
+
+ * tmac/tmac.lbp: New file.
+ * src/devices/grolbp/grolbp.man: Add documentation of `lbpname'
+ command.
+
+2000-03-03 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in: Fixing $(subdir).
+
+ * README, NEWS: Small fixes.
+
+ * test-groff: Adding path to grolbp.
+
+ * configure.in: The (new) file src/xditview/Imakefile.in will be
+ also configured -- it is now possible to build gxditview in a
+ directory different from $srcdir.
+
+2000-03-02 Blake McBride <blake@florida-software.com>
+
+ * src/libs/libgroff/searchpath.cc (open_file): Adapting to WinNT.
+
+ * MORE.STUFF: Added website of bell labs and info about plot2dev.
+
+2000-03-01 Colin Phipps <crp22@cam.ac.uk>
+
+ * src/utils/indxbib/indxbib.cc (main): Use mkstemp() for temporary
+ files.
+
+2000-02-29 Werner LEMBERG <wl@gnu.org>
+
+ Adding GNU getopt to the groff distribution.
+
+ * src/include/getopt.h, src/libs/libgroff/{getopt.c,getopt1.c}:
+ New files.
+ * src/include/Makefile.sub, src/libs/libgroff/Makefile.sub: Update.
+ * aclocal.a4: Remove GROFF_GETOPT function.
+ * configure.in, Makefile.in, PROBLEMS: Update.
+ * src/include/lib.h: Replace getopt tests with getopt.h.
+ * src/devices/grolbp/lpb.cc: Remove inclusion of getopt.h.
+
+ * doc/groff.texinfo: Further checking/updating. Adding more index
+ entries.
+
+ * man/groff_out.man: Fix nroff mode activation (for emacs).
+ * man/groff_font.man: Add missing ligature.
+
+2000-02-28 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Further checking/updating. Adding more index
+ entries.
+
+ * src/devices/grolbp/grolbp.man: Added a comment line at the
+ beginning of the file (similar to shell scripts) which indicates
+ that `tbl' should be used as a preprocessor.
+
+2000-02-27 Blake McBride <blake@florida-software.com>
+
+ Adapting groff to MS Visual C++ 6.0 compiler (tested with
+ Windows NT 4.0). Uses _MSC_VER define where necessary.
+
+ * src/devices/grodvi/dvi.cc: Making stdout a binary stream.
+ * src/devices/grolj4/lj4.cc: Making getopt variables `extern "C"'.
+ * src/devices/grohtml/html.cc, src/devices/grops/ps.cc,
+ src/include/lib.h, src/libs/libgroff/errarg.cc,
+ src/libs/libgroff/itoa.c, src/libs/libgroff/nametoindex.cc,
+ src/preproc/refer/label.y, src/preproc/refer/label.cc,
+ src/roff/groff/pipeline.c, src/roff/troff/column.cc,
+ src/roff/troff/div.cc, src/roff/troff/env.cc,
+ src/roff/troff/input.cc, src/roff/troff/node.cc,
+ src/roff/troff/reg.cc: Renaming itoa() to i_to_a() and iftoa() to
+ if_to_a() to avoid name clashes.
+ * src/include/posix.h: Don't use unistd.h.
+ * src/libs/libgroff/tmpfile.cc: Use `#ifndef...#else...#endif'
+ clause for integrating non-Unix xtmpfile() code.
+ * src/roff/troff/input.cc: Adding `public' keyword to macro_header
+ structure; use "rt" for popen() in pipe_source(); add getpid()
+ dummy function.
+ * src/roff/troff/node.cc: Use special versions of popen() in
+ real_output_file() and pclose() in ~real_output_file().
+
+2000-02-27 Werner LEMBERG <wl@gnu.org>
+
+ Adding a new driver, grolbp, for Canon CAPSL printers (LBP-4 and
+ LBP-8 series laser printers). This code has been contributed by
+ Francisco Andrs Verd <pandres@dragonet.es>.
+
+ * src/devices/grolbp/*: The grolbp output device.
+ * font/devlpb/*: The font description files.
+ * Makefile.in: Add grolpb and devlbp subdirectories.
+
+ * src/devices/grodvi/grodvi.man, src/devices/grolj4/grolj4.man,
+ src/devices/grotty/grotty.man,src/roff/troff/troff.man: Minor
+ typographic fixes.
+
+ * doc/groff.texinfo: Further checking/updating. Adding more index
+ entries.
+
+ * NEWS: Updated.
+
+ * src/devices/grolbp/Makefile.sub: Adding $(srcdir).
+
+ * man/groff_font.man: Adding info about obsolete DESC keywords.
+ * src/devices/grolj4/grolj4.man: Documenting additional DESC
+ keywords.
+
+2000-02-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/grn.man: Added info about the gremlin file format
+ (contributed by Daniel Senderowicz <daniel@synchrods.com>).
+
+2000-02-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/main.cc: Allow values of `narrow' parameter and
+ friends to be non-integer.
+
+ * src/preproc/grn/grn.man: Document it.
+
+ * doc/groff.texinfo: Further checking/updating. Adding more index
+ entries.
+
+2000-02-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/main.cc: Introduce BASE_THICKNESS, defining
+ line thicknesses to be integer multiples of this value.
+
+ * src/preproc/grn/grn.man: Commenting out the -s option -- the
+ corresponding code doesn't work (yet).
+
+ * doc/groff.texinfo: Further checking/updating. Adding more index
+ entries.
+
+2000-02-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/{main.cc, hgraph.cc}: Using point units to
+ specify line thickness instead of base units. The new default
+ values are now 0.15,pt 0.45pt, and 0.75pt for thin, middle, and
+ thick lines respectively.
+
+ Removed unused variable `prevval'.
+
+ * src/preproc/grn/grn.man: Updated.
+
+2000-02-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/main.cc: Slight formatting.
+
+ * src/roff/groff/groff.man: Formatting fix.
+ * src/preproc/grn/grn.man: Ditto.
+
+ * src/roff/grog/grog.pl: Fixing two embarrassing bugs.
+
+ * doc/groff.texinfo: Further checking/updating.
+
+2000-02-21 Werner LEMBERG <wl@gnu.org>
+
+ * README, INSTALL, PROJECT, PROBLEMS, BUGREPORT: Updated.
+
+ * test-groff: Added grn subdir to path.
+
+ * doc/groff.texinfo: Some restructing and other small improvements.
+
+ * src/roff/groff/groff.cc (help): Fixed info string.
+
+2000-02-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/meref.me: Fix description of .GS request.
+
+ * src/roff/troff/troff.man: Fixing typo.
+
+ Adding the `grn' preprocessor for gremlin graphic files.
+
+ * src/preproc/grn/*: This is the Berkeley distribution written by
+ David Slattengren and Barry Roitblat, adapted to groff by Daniel
+ Senderowicz and Werner Lemberg.
+
+ * doc/grnexampl.{me,g}: A sample for grn.
+
+ * Makefile.in: Added subdirectory entry for grn.
+
+ * src/roff/groff/groff.cc: Added support for grn. It can be now
+ called with the switch `-g'.
+
+ * src/roff/groff/groff.man: Updated.
+
+ * src/roff/grog/grog.{man,pl,sh}: Updated.
+
+ * NEWS: Updated.
+
+2000-02-11 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/include/lib.h: Added xtmptemplate and made xtmpfile
+ parametrically polymorphic.
+
+ * src/libs/libgroff/tmpfile.cc: Implemented xtmptemplate
+ and the alterations to xtmpfile.
+ xtmpfile can be requested to return the filename created
+ and asked not to unlink the temp file. The default behaviour
+ if parameters are absent is exactly the same as before.
+
+2000-02-11 Abramo Bagnara <abramo@alsa-project.org>
+
+ A new request `length' is available which returns the length of a
+ string in a number register:
+
+ * src/roff/troff/input.cc (length_macro): Implement it.
+ * src/roff/troff/input.cc (init_input_requests): Register it.
+
+2000-02-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo, src/roff/troff/troff.man: Add documentation
+ of the `substring' request.
+
+ * src/roff/troff/troff.man, doc/groff.texinfo: Document `length'
+ request.
+
+ * src/roff/troff/TODO, NEWS: Updated.
+
+2000-02-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man: Added an example.
+
+2000-02-06 Werner LEMBERG <wl@gnu.org>
+
+ I've considerably modified the directory structure of the
+ distribution to get a more vertical layout. For example, the number
+ of top level directories has been reduced from 42 to 6.
+
+ As a consequence, many changes, especially to the makefiles, were
+ necessary:
+
+ * The makefile variables `top_builddir' and `top_srcdir' have been
+ introduced. Virtually all relative paths have been replaced with
+ absolute ones using these two variables.
+
+ * Dependencies (in the files `Makefile.dep') are no longer part of
+ the distribution. Instead, they are created during a `make install'
+ in the build directory.
+
+ * aclocal.m4 (GROFF_SRCDIR, GROFF_BUILDDIR): Two new functions to
+ make `top_srcdir' and `top_builddir' absolute.
+
+ Some other changes:
+
+ * Man pages now depend on the files `VERSION' and `REVISION'.
+
+ * The added shell script `mkinstalldirs' will replace `mkdir' in
+ almost all cases.
+
+ * VERSION: Version number increased to 1.16.
+
+2000-02-04 Werner LEMBERG <wl@gnu.org>
+
+ * grops/psrm.cc (read_one_of): Fixed pointer incrementation.
+
+ * Makefile.in: Removed $(tmac_m) since it is no longer needed
+ (after an update of the mm stuff).
+
+ * troff/Makefile.sub (majorminor.cc): Fix dependencies.
+
+2000-02-03 Werner LEMBERG <wl@gnu.org>
+
+ The .psbb request will now also accept Mac PS images (i.e. using LF
+ as the EOL character).
+
+ * troff/input.cc (ps_get_line): New function, taken from psrm.cc
+ (with slight modifications).
+ * troff/input.cc (do_ps_file): Use it.
+
+ * test-groff: Add grohtml and grolj4 output devices to PATH.
+
+2000-01-30 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, MORE.STUFF: Updated.
+
+2000-01-30 Cary D. Renzema <caryr@dollar.mxim.com>
+
+ Add the `srand' command to pic.
+
+ * pic/lex.cc, pic/pic.y: Implement it.
+ * pic/pic.man: Document it.
+ * pic/pic.cc, pic/pic.tab.h: Regenerated (with yacc).
+
+2000-01-30 Werner LEMBERG <wl@gnu.org>
+
+ Add a new request `.psbb'. This does exactly what the external
+ program psbb did. It scans a PostScript image file for a
+ %%BoundingBox comment and extracts the bounding box values (in
+ PostScript units) which are then stored in the four new (read-only)
+ number registers `llx', `lly', `urx', and `ury'.
+
+ This will allow the usage of the .PSPIC macro without worrying
+ about unsafe behaviour of groff, i.e., it will work without the
+ `-U' switch of groff.
+
+ * troff/input.cc: Implement it.
+ * tmac/tmac.pspic: Use it.
+ * troff/troff.man, grops/grops.man, NEWS: Document it.
+ * psbb/*, Makefile.in: Remove it since it is no longer needed.
+
+ This is bloody C code simply adapted from psbb.c! Any improvements
+ welcome.
+
+2000-01-29 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Minor clarifications.
+
+ * NEWS: Updated.
+
+2000-01-28 Werner LEMBERG <wl@gnu.org>
+
+ * afmtodit/afmtodit.pl: Use new `--' comment delimiter.
+
+2000-01-28 Gaius Mulley <gaius@glam.ac.uk>
+
+ * man/groff_font.man: Brought up to date regarding tcommand
+ extensions.
+ * libgroff/font.cc: Handle everything after `--' as a comment
+ in the font files.
+ * devps/*: Added comment delimiter inside devps font files.
+
+2000-01-28 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.arkup, tmac/groff_markup.man: Replace \fC...\fR with
+ \fC...\fP (which now works as expected).
+
+ * troff/troff.man: Fix typo.
+
+2000-01-27 Gaius Mulley <gaius@glam.ac.uk>
+
+ Completed the pass_filenames implementation in troff.
+
+ * libdriver/input.cc: Will read the new `F' tcommand.
+ * troff/node.cc, troff/node.h: Will issue the new `F' tcommand.
+ * troff/input.cc: Use it.
+
+2000-01-26 Werner LEMBERG <wl@gnu.org>
+
+ * troff/env.cc (set_font): Fix the behaviour of \fP. The previous
+ font will now be updated even if an invalid font is selected.
+
+2000-01-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/homepage.ms: Updated for new tmac.arkup.
+
+ * tmac/tmac.html: Disable line breaks after hyphen-like characters.
+
+ * tmac/tmac.arkup: Cleanup.
+
+ Added `\&' to .HTML macro to `leave vertical mode', so to say.
+
+ Removed obsolete .LINK macro completely.
+
+ The macros .URL, .FTP, and .MAILTO now accept a third argument which
+ will be immediately appended to the second argument (to be used with
+ punctuation, for example).
+
+ Disabled .CDFTP macro temporarily for security reasons.
+
+ * tmac/groff_markup.man: Complete revision for latest changes in
+ tmac.arkup -- note that it does not yet format correctly with
+ grohtml :-(
+
+2000-01-23 Bruno Haible <haible@clisp.cons.org>
+
+ * nroff/nroff.sh: Accept -Tutf8 option and pass it through.
+ * devutf8/R.proto: Add mappings for wp, lh, rh.
+ * devutf8/NOTES: Updated.
+
+2000-01-23 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Updated version/copyright info.
+
+2000-01-21 Gaius Mulley <gaius@glam.ac.uk>
+
+ Added support for two new directives in device descriptions:
+ `pass_filenames' (to pass the input file name to the output device)
+ and `use_charnames_in_special' (to support e.g. accented characters
+ in the `X' request).
+
+ * include/font.h, troff/charinfo.h: Declare it.
+
+ * libgroff/font.cc, libgroff/fontfile.cc: Set it.
+
+ * devhtml/DESC: Use it.
+
+ * troff/input.cc: New function encoded_char.
+
+ * troff/token.h: Add test for `specialness'.
+
+2000-01-21 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/Makefile.sub: tmac.a4 and tmac.trace have been removed by
+ mistake from the list of files to be installed.
+
+2000-01-18 Werner LEMBERG <wl@gnu.org>
+
+ * README: Added info how to apply patches.
+
+2000-01-15 Jan Echternach <echter@informatik.uni-rostock.de>
+
+ * troff/node.cc (ligature_note::operator delete): Fix g++ warning.
+
+2000-01-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ * troff/input.cc: Add support for troffrc-end.
+
+ * tbl/main.cc: Altered to issue table-start and table-end special
+ characters if using the html device.
+
+ * devhtml/*: Modified font files to incorporate html encoding of
+ characters.
+
+ * tmac/groff_markup.man: New file documenting tmac.arkup.
+
+ * tmac/troffrc-end: New file. This is invoked after all user
+ specified macros. Currently used by the html device to include
+ tmac.html. Thus no need for users to specify -mhtml anymore.
+
+ * tmac/Makefile.sub (NORMALFILES): Add troffrc-end.
+ (MAN7): Add groff_markup.man.
+
+ * tmac/tmac.an, tmac/tmac.html: Small html updates.
+
+ * tmac/troffrc: tmac.arkup will now be called for the html device.
+
+ * libgroff/font.cc, libgroff/font.h: Altered to include reading of
+ extra device specific information about fonts.
+
+ * doc/homepage.ms: New file. It is an example how an HTML home page
+ could look like with grohtml.
+
+ * doc/Makefile: Add homepage.ms. Remove rule for pic.html.
+
+2000-01-12 Bruno Haible <haible@clisp.cons.org>
+
+ * devutf8/R.proto: Add mappings for ti, Fn, st, an. Change mappings
+ of Im, Re.
+
+ * devutf8/NOTES: Updated.
+
+2000-01-08 Bruno Haible <haible@clisp.cons.org>
+
+ * eqn/box.cc, eqn/lex.cc, eqn/other.cc, eqn/over.cc, eqn/special.cc,
+ eqn/text.cc, grodvi/dvi.cc, grops/ps.cc, grops/psrm.cc,
+ libbib/index.cc, libbib/linear.cc, libbib/search.cc,
+ libdriver/printer.cc, libgroff/font.cc, libgroff/string.cc,
+ pic/lex.cc, pic/object.cc, refer/label.y, refer/ref.cc, tbl/main.cc,
+ tbl/table.cc, tfmtodit/tfmtodit.cc, troff/dictionary.cc,
+ troff/div.cc, troff/env.cc, troff/input.cc, troff/node.cc,
+ troff/node.h, troff/reg.cc: Avoid most "g++ -Wall -Wno-sign-compare"
+ warnings.
+
+ * troff/node.cc (bracket_node::copy): Initialize last to NULL.
+
+2000-01-12 Fabrizio Polacco <fab@prosa.it>
+
+ grolj4: Paper size will be searched case-insensitively.
+
+ * include/lib.h: Add check for strcasecmp().
+ * grolj4/li4.cc (lookup_paper_size): Use strcasecmp().
+ * configure.in: Check for strcasecmp().
+
+2000-01-11 Werner LEMBERG <wl@gnu.org>
+
+ * troff/Makefile.sub (majorminor.cc): Fix incorrect path to
+ `REVISION'.
+
+2000-01-10 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm, Makefile.in, doc/Makefile: More fixes for the
+ revision scheme.
+
+ Add a new read-only register, `.Y', which contains the groff
+ revision.
+
+ * troff/input.cc (init_input_requests): Define it.
+ * troff/Makefile.sub (majorminor.cc): Define `revision' string.
+ * doc/groff.texinfo, troff/troff.man: Document it.
+
+ * libgroff/Makefile.sub (version.cc): Add definition of
+ `Version_string[]', consisting of `<major>.<minor>.<revision>'
+ * eqn/main.cc, grodvi/dvi.cc, grolj4/lj4.cc, grops/ps.cc,
+ grotty/tty.cc, hpftodit/hpftodit.cc, indxbib/indxbib.cc, pic/main.cc,
+ refer/refer.cc, soelim/soelim.cc, tbl/main.cc, tfmtodit/tfmtodit.cc,
+ troff/input.cc, pfbtops/pfbtops.c: Use it.
+
+2000-01-10 Fabrizio Polacco <fab@prosa.it>
+
+ Add a revision scheme to the groff package.
+
+ * REVISION: New file.
+ * libgroff/Makefile.sub (version.cc): Use it to define
+ `revision_string[]'.
+ * grops/psrm.cc: Use revision_string (converted to an unsigned
+ integer) in constructor of resource_manager.
+
+2000-01-10 Bruno Haible <haible@clisp.cons.org>
+
+ * devutf8/Makefile.sub, devutf8/DESC.proto, devutf8/R.proto: New
+ files.
+ * Makefile.in (DEVDIRS): Add devutf8.
+ * grotty/tty.cc: Include device.h.
+ (glyph): Change type of `code' to `unsigned int'.
+ (tty_printer): New field is_utf8. Constructor takes device argument.
+ (tty_printer::tty_printer): If device if `utf8', set is_utf8.
+ (tty_printer::add_char): Change type of first arg to `unsigned int'.
+ (tty_printer::put_char): New function.
+ (tty_printer::end_page): Use put_char() instead of ::putchar().
+ (make_printer): Pass device to tty_printer constructor.
+ * nroff.sh: Determine default device by calling 'locale'. As a
+ fallback, look at all of $LC_ALL, $LC_CTYPE, $LANG, $LESSCHARSET.
+ Recognize UTF-8 locales.
+ * tmac/eqnrc: Recognize utf8 like latin1.
+ * tmac/troffrc: Device utf8 needs tmac.tty.
+
+2000-01-07 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/Makefile.sub: tmac.a4 and tmac.trace will now be installed.
+
+2000-01-07 Paul Eggert <eggert@twinsun.com>
+
+ Add a new predefined writeable number register, `year',
+ which contains the current year.
+
+ * doc/groff.texinfo, PROBLEMS, troff/troff.man: Document it.
+ * tmac/tmac.s: Use it.
+ * troff/input.cc (init_registers): Initialize it.
+
+2000-01-06 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Fixed typo.
+
+2000-01-04 Paul Eggert <eggert@twinsun.com>
+
+ * PROBLEMS: Add Y2k advice for the yr number register.
+
+2000-01-03 Paul Eggert <eggert@twinsun.com>
+
+ * doc/groff.texinfo: Fix Y2k bug in documentation of \n(yr.
+
+2000-01-02 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.arkup: Slight modification of macros to provide better
+ appearance for non-HTML formats.
+
+2000-01-01 Charles Levert <charles@comm.polymtl.ca>
+
+ * soelim/soelim.cc (include_path_append): realloc(NULL, n)
+ does not automatically translate to malloc(n) on all OSes
+ (e.g., SunOS) so do it explicitly. Also, check the returned
+ value.
+
+2000-01-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.arkup: Added .LINE macro. Some formatting.
+
+ * Makefile.in: Added $(tmac_m) again since the Makefile in `mm'
+ expects this variable
+
+2000-01-01 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/Makefile: Added instructions to create HTML and text
+ versions of some files.
+
+1999-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * Updated INSTALL.gen.
+
+ * tmac/tmac.arkup: Added fixes so that .FTP and .MAILTO works
+ better resp. correctly with non-HTML devices.
+
+Copyright 1999-2000 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:
+coding: latin-1
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.117 b/ChangeLog.117
new file mode 100644
index 0000000..5724952
--- /dev/null
+++ b/ChangeLog.117
@@ -0,0 +1,2199 @@
+
+Version 1.17.2 released
+=======================
+
+2001-07-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/indxbib/indxbib.cc (main): Change type of `name_max'
+ to size_t.
+
+2001-07-06 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (Rv): Make `Rv' really not parseable.
+ Fix synopsis.
+ * tmac/groff_mdoc.man: Fix synopsis.
+
+2001-07-05 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (doc-inset-list, doc-hang-list, doc-ohang-list):
+ Restore `doc-Pa-font'.
+
+2001-07-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/indxbib/dirnamemax.c: Moved to ...
+ * src/libs/libgroff/maxfilename.cc: Here.
+ s/dir_name_max/file_name_max/.
+ Add copyright.
+ * src/include/lib.h: Add file_name_max.
+ * src/utils/indxbib/indxbib.cc: Updated.
+ * src/utils/indxbib/Makefile.sub, src/libs/libgroff/Makefile.sub:
+ Updated.
+
+ * src/libs/libgroff/tmpfile.cc (TMPFILE_PREFIX) [__MSDOS__]: Define
+ as empty.
+ (xtmpfile) [_MSC_VER]: Removed -- MSVC has mktemp().
+
+ * src/preproc/html/pre-html.cc (PAGE_TEMPLATE, PS_TEMPLATE,
+ REGION_TEMPLATE): New macros.
+ (createAllPages, makeTempFiles): Use them.
+ Include `nonposix.h'.
+ (html_system): New function.
+ (createAllPages, createImage): Use it.
+ Use EXE_EXT.
+
+ * tmac/www.tmac: Fix typos.
+
+2001-07-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac: Disable hyphenation in normal text only if output
+ device is html.
+ (URL, FTP, MAILTO): Disable hyphenation of actual URL with `\%'.
+ * tmac/groff_mwww.man, NEWS: Updated.
+
+2001-07-03 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/www.tmac (.IMAGE): Add fourth parameter to specify vertical
+ image location.
+
+2001-07-02 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common, tmac/doc.tmac (doc-display-ft-stack,
+ doc-display-ps-stack): Implement font and font size stack for
+ displays.
+
+2001-07-02 Werner LEMBERG <wl@gnu.org>
+
+ * REVISION: Increased to 2.
+ * src/roff/troff/input.cc (read_size): Fix special case `\s[0]'.
+
+ * src/groff/grog/grog.pl (process): Handle `Oo' and `Oc' not at the
+ beginning of a line.
+ * src/groff/grog/grog.sh: Ditto.
+
+2001-06-29 Peter Marquardt <wwwutz@molgen.mpg.de>
+
+ * src/preproc/eqn/neqn.sh: Put `export' keyword in a new line to
+ make it portable.
+
+2001-06-27 Werner LEMBERG <wl@gnu.org>
+
+ Fix problems with preprocessor string for `man' program.
+
+ * *.man: Don't use `s' in preprocessor string -- it doesn't exist.
+ Updated/added copyright.
+ Moved Emacs's local variable to identify nroff mode to the end of
+ the file; add local variable if missing.
+
+2001-06-26 Andras Salamon <andras@cs.wits.ac.za>
+
+ * aclocal.m4: Replace AC_LANG_SAVE + AC_LANG_CPLUSPLUS with
+ AC_LANG_PUSH(C++) and AC_LANG_RESTORE with AC_LANG_POP(C++).
+ * configure: Regenerated.
+
+2001-06-25 Andras Salamon <andras@cs.wits.ac.za>
+
+ * aclocal.m4 (GROFF_PAGE): Fix page detection code.
+ * configure: Regenerated.
+
+2001-06-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/homepage.ms: Don't include arkup.tmac (which no longer exists)
+ but www.tmac.
+ * doc/pic.ms: Fix typos.
+
+Version 1.17.1 released
+=======================
+
+2001-06-21 Golubev I. N. <gin@mo.msk.ru>
+
+ * aclocal.m4 (GROFF_NEED_DECLARATION): Fix inclusion of strings.h.
+ * configure: Updated.
+
+2001-06-20 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/preproc/html/pre-html.cc (make_message): Fix incorrect
+ image names.
+ * src/roff/troff/dic.cc (blank_line): Add html tag.
+
+2001-06-19 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/input.cc (do_suppress): Fix typo.
+
+2001-06-18 Gaius Mulley <gaius@glam.ac.uk>
+
+ Added two new options (-D and -I) to specify image names and a
+ subdirectory to place the images in.
+
+ Change syntax from \\Ox to \\O[x].
+
+ * src/devices/grohtml/post-html.cc (main): Add options.
+ (usage): Updated.
+ * src/preproc/html/pre-html.cc: Include `stdarg.h'.
+ Use `NULL' instead of `0' for null string pointers.
+ (MAX_RETRIES): New macro.
+ (lengthOfintToStr, intToStr, make_message): New functions.
+ (makeFileName): Make function static.
+ Implement -D and -I options.
+ (checkImageDir): New function.
+ (write_end_image, write_start_image): Use new syntax of \O.
+ (createAllPages, removeAllPages): Implement -D and -I options. Use
+ make_message().
+ (createImage): Use make_message().
+ (addps4html): Add guard for malloc().
+ (usage, scanArguments): Updated.
+ (makeTempFiles): Use mkstemp().
+ (removeTempFiles): Use unlink().
+ (findPrefix): Add guard for malloc().
+ (main): Updated.
+ * src/roff/troff/input.cc (get_delim_file_name): New function to
+ parse \O.
+ (do_suppress): Updated to parse new syntax.
+ * src/devices/grohtml/grohtml.man: Updated.
+ * tmac/www.tmac: Updated to new syntax.
+
+ * NEWS: Updated.
+
+2001-06-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/grog/Makefile.sub: Remove NAMEPREFIX.
+
+ * src/devices/grohtml/grohtml.man: Minor improvements.
+
+2001-06-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/Makefile.sub: Remove NAMEPREFIX.
+
+2001-06-11 Werner LEMBERG <wl@gnu.org>
+
+ * man/roff.man, mann/groff.man: Use '\" instead of .\" in the first
+ line to specify preprocessor options -- mandb 2.3.1 only recognizes
+ the former.
+ * src/preproc/grn/grn.man: Add proper '\" string.
+
+2001-06-11 OKAZAKI Tetsurou <okazaki@be.to>
+
+ * test-groff: Don't use PATH but GROFF_BIN_PATH.
+
+2001-06-08 Werner LEMBERG <wl@gnu.org>
+
+ Updated to autoconf 2.50.
+
+ * configure.in: Renamed to...
+ * configure.ac: This.
+ * aclocal.m4 (AC_OUTPUT_MAKE_DEFS): Removed.
+ (GROFF_OS390): Updated.
+ * configure: Regenerated.
+
+2001-05-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.c, src/roff/troff/env.h,
+ src/roff/troff/input.cc, src/roff/troff/troff.man: Undo `ss' change
+ from 2000-12-21.
+
+2001-05-17 Jeffrey Friedl <jfriedl@yahoo-inc.com>
+
+ * src/roff/troff/input.cc (read_size): Fix special case `\s0'.
+
+2001-05-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (read_size): Emit warning if value becomes
+ less than or equal zero; set it to 1 then.
+ * src/roff/troff/node.h (node::node): Initialize `last'.
+
+2001-05-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac: Make predefined strings work in compatibility
+ mode.
+ Add troff version guard.
+ * tmac/doc.tmac: Simplify version guard.
+
+2001-05-07 Werner LEMBERG <wl@gnu.org>
+
+ The .ns and .rs requests are now honoured not only in the top-level
+ but in all diversions (similar to UNIX troff).
+
+ This change is based on a patch from Tadziu Hoffmann
+ <hoffmann@usm.uni-muenchen.de>.
+
+ * src/roff/troff/div.h (diversion): Add `no_space_mode' member.
+ (top_level_diversion): Remove `no_space_mode' member.
+ * src/roff/troff/div.cc (diversion::diversion,
+ top_level_diversion::top_level_diversion): Updated.
+ (macro_diversion::output): Reset `no_space_mode'.
+ (no_space, restore_spacing): Use `curdiv' unconditionally.
+ (space_request, blank_line): Check `curdiv->no_space_mode'.
+ (no_space_mode_reg::get_value, no_space_mode_reg::get_string): Use
+ `curdiv' unconditionally.
+ * NEWS, src/roff/troff/troff.man, man/groff.man, doc/groff.texinfo:
+ Updated.
+
+2001-05-06 Werner LEMBERG <wl@gnu.org>
+
+ Added two new requests `de1' and `am1' which are similar to `de' and
+ `am' with the difference that compatibility mode is saved on entry,
+ switched off during macro execution, and restored on exit.
+
+ * src/roff/troff/input.h: Added two new special characters
+ (COMPATIBLE_SAVE, COMPATIBLE_RESTORE).
+ * src/roff/troff/input.cc (input_iterator): Added two member
+ functions `save_compatible_flag' and `get_compatible_flag'.
+ (input_stack): Ditto.
+ (string_iterator): Ditto. Also add private member
+ `saved_compatible_flag'.
+ (token::next): Use COMPATIBLE_SAVE and COMPATIBLE_RESTORE.
+ (calling_mode): New enumeration.
+ (do_define_macro): Use it. Insert COMPATIBLE_SAVE and
+ COMPATIBLE_RESTORE at the beginning and end of macro, respectively.
+ (define_macro, define_indirect_macro, append_macro, ignore): Use
+ `calling_mode'.
+ (define_nocomp_macro, append_nocomp_macro): New functions.
+ (init_input_requests): Updated.
+ (do_request): Rename local variable `saved_compatible_flag' to
+ `old_compatible_flag'.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+ * tmac/an-old.tmac: Use `de1' instead of `de' request for all
+ public and trap-invoked macros. As a consequence, the man macros
+ work in compatibility mode also.
+
+2001-05-06 Solar Designer <solar@openwall.com>
+
+ * Makefile.in: Use $(mandir).
+
+2001-05-06 Alexios Zavras <zvr@pobox.com>
+
+ * src/utils/afmtodit/afmtodit.pl: Fix serious typo.
+
+2001-05-05 Werner LEMBERG <wl@gnu.org>
+
+ Added `.ns' number register: Returns 1 in no-space mode (if in
+ top-level diversion), 0 otherwise.
+
+ * src/roff/troff/div.cc (no_space_mode_reg): New class.
+ (init_div_requests): Updated.
+ * NEWS, src/roff/troff/troff.man, man/groff.man, doc/groff.texinfo:
+ Document it.
+
+2001-05-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/nroff/nroff.man: Improved documentation (especially
+ locales).
+
+2001-05-02 Werner LEMBERG <wl@gnu.org>
+
+ Added `brp' request: This is \p as a request.
+
+ * src/roff/troff/env.cc (environment::do_break): Add parameter
+ `spread'.
+ (do_break_request): New function (was `break_request').
+ (break_request): Calls `do_break_request'.
+ (break_spread_request): New; calls `do_break_request'.
+ (init_env_requests): Updated.
+ * src/roff/troff/env.h: Updated.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+ * REVISION: Increased to 1.
+ * win32-diffs: Updated.
+
+2001-05-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac: Fix minor compatibility mode issue.
+ * tmac/troffrc-end: Make it really work in compatibility mode.
+
+2001-04-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/lkbib/lkbib.cc: Switch inclusion order of stdio.h and
+ stdlib.h.
+
+2001-04-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/getopt.c, src/include/getopt.h: Updating to
+ latest versions from glibc CVS archive.
+
+ * MORE.STUFF: Updated, using a patch from Kees Zeelenberg
+ <c.zeelenberg@hccnet.nl>.
+
+2001-04-21 Werner LEMBERG <wl@gnu.org>
+
+ * configure.in: Move check for mkstemp() to...
+ * aclocal.m4 (GROFF_MKSTEMP): This new function.
+ * configure: Regenerated.
+
+ * src/include/groff-getopt.h: Don't use variable names in
+ declarations.
+
+ * src/devices/grohtml/html-chars.h: Removed. It isn't used.
+ * src/devices/grohtml/Makefile.sub,
+ src/devices/grohtml/post-html.cc: Updated.
+
+2001-04-21 Albert Chin-A-Young <china@thewrittenword.com>
+
+ * configure.in: Add special check for mkstemp().
+ * src/libs/libgroff/tmpfile.cc: Use it.
+ * src/utils/indxbib/indxbib.cc: Ditto.
+ * src/utils/pfbtops/pfbtops.c (main): Don't use C++ comment style.
+ * src/devices/grolbp/lbp.h (lbpprintf, lbpputs, vdmprintf): Use
+ `const'.
+
+2001-04-20 Bruce Lilly <blilly@erols.com>
+
+ `Version_string' as C++ object was not visible to linker from C
+ object files.
+ Add `const' to `Version_string'.
+
+ * src/utils/pfbtops/pfbtops.c (main), src/roff/groff/groff.cc
+ (main), src/roff/troff/input.cc (main), src/preproc/tbl/main.cc
+ (main), src/preproc/pic/main.cc (main), src/preproc/eqn/main.cc
+ (main), src/preproc/grn/main.cc (main), src/preproc/html/pre-html.cc
+ (scanArguments), src/preproc/refer/refer.cc (main),
+ src/preproc/soelim/soelim.cc (main), src/devices/grotty/tty.cc
+ (main), src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
+ (main), src/devices/grohtml/post-html.cc (main),
+ src/devices/grolbp/lbp.cc (main), src/utils/tfmtodit/tfmtodit.cc
+ (main), src/utils/hpftodit/hpftodit.cc (main),
+ src/utils/lookbib/lookbib.cc (main), src/utils/indxbib/indxbib.cc
+ (main), src/utils/lkbib/lkbib.cc (main),
+ src/utils/addftinfo/addftinfo.cc (main): Implement it.
+
+ * src/roff/groff/pipeline.c: Add _UWIN.
+ * src/include/nonposix.h: Ditto.
+
+2001-04-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Use HAVE_STRERROR.
+ * src/roff/groff/pipeline.c: Ditto.
+ * src/preproc/html/pre-html.cc: Remove declaration of `strerror'.
+ * src/libs/libgroff/Makefile.sub (version.cc): Add `extern "C"'.
+ * src/utils/pfbtops/pfbtops.c: Add copyright notice.
+ * win32-diffs: Updated.
+ * src/utils/hpftodit/hpftodit.cc (read_map): Fix compiler warning.
+
+2001-04-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/pre-html.cc (scanArguments): Use `troff_command'
+ instead of hardwired `"troff"'.
+ (char_buffer::read_file): Remove unused variables.
+ (char_buffer::write_file_troff): Ditto.
+ (char_buffer::write_file_html): Ditto.
+ (generateImages): Ditto.
+ (abs): Removed.
+ * src/utils/addftinfo/addftinfo.cc (main): Fix compilation problem.
+
+ * src/include/lib.h: Don't include `groff-getopt.h' for UWIN.
+
+ * src/libs/libgroff/font.cc (font::load_desc): Fix compiler warning.
+ * src/libs/libbib/index.cc (index_search_item_iterator::get_tag,
+ index_search_item::search1): Ditto.
+ * src/roff/troff/node.h (width_list): Reorder members.
+ * src/roff/troff/input.cc (do_define_macro): Fix compiler warning.
+ (lookup_warning): Ditto.
+ (prepend_string): Commented out.
+ * src/roff/troff/dictionary.cc (is_good_size): Fix compiler warning.
+ * src/roff/troff/reg.cc (number_value_to_ascii): Ditto.
+ * src/preproc/tbl/main.cc (process_format): Ditto.
+ * src/preproc/pic/pic.y (define_variable, reset, reset_all): Fix
+ compiler warnings.
+ * src/preproc/pic/pic.cc: Updated.
+ * src/preproc/eqn/lex.cc (init_table): Fix compiler warnings.
+ * src/preproc/eqn/over.cc (over_box::compute_metrics): Ditto.
+ * src/preproc/refer/command.cc (execute_command): Ditto.
+ * src/preproc/refer/ref.cc (sortify_title, find_month): Ditto.
+ * src/preproc/refer/token.cc (lookup_token): Ditto.
+ * src/preproc/soelim/soelim.cc: Ditto.
+ * src/preproc/html/pushbackbuffer.cc (ERROR): Ditto.
+ (isHexDigit): Commented out.
+ (pushBackBuffer::isString): Remove unused variable.
+ * src/devices/grops/ps.cc (ps_printer::special): Fix compiler
+ warning.
+ * src/devices/grops/psrm.cc (resource_manager::lookup_font,
+ resource_manager::read_resource_arg, read_one_of, parse_extensions):
+ Ditto.
+ * src/devices/grodvi/dvi.cc (dvi_printer::draw): Ditto.
+ * src/devices/grolj4/lj4.cc (lj4_font::handle_unknown_font_command,
+ lookup_paper_size): Ditto.
+ * src/devices/grohtml/post-html.cc (is_subsection): Commented out.
+ (text_glob, element_list): Reorder members.
+ * src/devices/grohtml/html-text.cc (html_text::do_pre): Remove
+ compiler warning.
+ * src/devices/grohtml/html-text.h (html_text::emit_space): Change
+ return value to `void'.
+ * src/devices/grohtml/output.cc (word_list::word_list): Fix order
+ of initializers.
+ * src/devices/grohtml/html.h (simple_output::check_newline,
+ simple_output::space_or_newline, simple_output::enable_newlines):
+ Add return value.
+ * src/devices/grolbp/lbp.cc (wp54charset, set_papersize): Remove
+ compiler warnings.
+ * src/utils/tfmtodit/tfmtodit.cc (tfm::load, gf::load, main): Ditto.
+ * src/utils/hpftodit/hpftodit.cc (File::seek, read_symbol_sets,
+ output_ligatures, output_charset, read_map): Ditto.
+ * src/utils/lookbib/lookbib.cc (main): Ditto.
+ * src/utils/indxbib/indxbib.cc (main, fwrite_or_die): Ditto.
+ (do_file): Fix typo (`=' -> `==').
+ * src/utils/lkbib/lkbib.cc (main): Remove compiler warning.
+ * src/utils/addftinfo/addftinfo.cc (main): Ditto.
+
+2001-04-18 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * src/roff/nroff/nroff.sh: Adding -p (pic) and -t (tbl) options.
+ Fix usage of GROFF_BIN_PATH.
+ * src/roff/nroff/nroff.man: Updated.
+
+2001-04-18 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Fixing typos.
+ Updated.
+
+Version 1.17 released
+=====================
+
+2001-04-17 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/Makefile.sub (install-data): mdoc.local-s is in current
+ directory, not in $(srcdir).
+
+2001-04-16 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: More info on conditionals.
+
+2001-04-15 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added some info about groff internals.
+
+ * src/roff/troff/node.cc (make_glyph_node): Emit warning message
+ about missing special character only if the name is non-null.
+
+2001-04-14 Werner LEMBERG <wl@gnu.org>
+
+ Removing the grohtml-old device driver which is now obsolete.
+
+ * src/devices/grohtml-old/*: Removed.
+ * font/devhtml-old/*: Removed.
+ * src/libs/libgroff/htmlindicate.cc (graphic_start, graphic_end):
+ Remove comments.
+ * Makefile.in (CCPROGDIRS, DEVDIRS): Updated.
+ * test-groff (PATH): Updated.
+ * tmac/Makefile.sub (NORMALFILES): Updated.
+ * tmac/an-old.tmac: Remove special code for html-old device.
+ Replace `html-or-html-old' register with `an-html'.
+ * tmac/eqnrc: Updated.
+ * tmac/html-old.tmac: Removed.
+ * tmac/troffrc, tmac/troffrc-end: Updated.
+ * tmac/www.tmac: Remove special code for html-old device.
+ Replace `html-or-html-old' register with `www-html'.
+
+ * src/libs/libgroff/tmpfile.cc (remove_tmp_files),
+ src/libs/libgroff/htmlindicate.cc (graphic_end),
+ include/htmlindicate.h, src/preproc/grn/*.cc,
+ src/roff/groff/env.{cc,h}: Remove `void' parameter if used as a
+ single argument for consistency with rest of source code.
+
+ * aclocal.m4, tmac/an-old.tmac: Fix copyright.
+
+2001-04-13 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * src/roff/troff/troff.man: Fixing typos.
+
+2001-04-13 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Fixing many font switches.
+ * doc/groff.texinfo: Fixes, additions.
+ * MORE.STUFF: Updated.
+
+2001-04-12 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/grohtml.man: Updated manual page regarding
+ simple anchor.
+ * src/preproc/html/pre-html.cc (createImage): Fixed right hand
+ cropping of images.
+ (removeTempFiles): New function to tidy up temporary files.
+ * src/preproc/html/pre-html.cc (main): Calls `removeTempFiles()'.
+ Many fixes to do with the new inline suppress node and image regions
+ are much tighter.
+ * src/devices/grohtml/post-html.cc: New method `is_auto_img'.
+ (generate_img_src): New function.
+ (html_printer::do_auto_image): Utilizes it.
+ (do_heading, do_title): Include inline images within their contents.
+ (html_printer::begin_page): Tidied up comments that are issued to
+ the html output file.
+ (html_printer::do_fill): Fixed so that `.nf' works with fonts other
+ than courier.
+ (text_glob::is_br): New method used by do_heading.
+ * tmac/s.tmac: If -Thtml then emit $1 in .IP rather than its
+ equivalent diversion.
+ * src/include/html-strings.h: Altered image tags to reflect the
+ inline image node.
+ * src/include/htmlindicate.h (html_end_suppress): Added `is_inline'
+ parameter.
+ * src/preproc/eqn/main.cc: Will suppress generation of image tags if
+ it is already inside a pic image. Only emit tags if the argument
+ `-Tps:html' is present.
+ * src/preproc/tbl/main.cc: Changes to reflect additional
+ `html_end_suppress' parameter.
+ * src/roff/troff/env.cc: Only emit eol tag if a node has been
+ emitted since the last eol tag was written.
+ * src/roff/troff/env.h: New boolean `emitted_node'.
+ * src/roff/troff/input.cc (do_suppress): Handles extra suppress
+ nodes \O3, \O4, \O5. No longer use `output_low_mark_miny'.
+ * src/roff/troff/node.cc (check_charinfo): New method.
+ (troff_output_file::determine_line_limits): Alterations to limit
+ checking.
+ * tmac/www.tmac: Changes to reflect new suppress nodes.
+
+2001-04-12 Bruno Haible <haible@clisp.cons.org>
+
+ * src/devices/grohtml/post-html.cc (html_printer::add_to_sbuf):
+ Escape the html_glyph in the buffer.
+ (str_translate_to_html): Output the unescaped escaped_char.
+ * src/devices/grohtml/html-text.cc (issue_table_begin): Set
+ `frame=void', not `frame=none'. Add `border=0'.
+
+2001-04-12 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Add some words on how to avoid wrapper macros.
+
+2001-04-11 Blake McBride <blake@florida-software.com>
+
+ * src/include/nonposix.h (fileno) [_MSC_VER]: Removed.
+
+2001-04-11 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlbp/Makefile.sub (CLEANADD): Set it.
+ * tmac/Makefile.sub (CLEANADD): Add tmac.local-s.
+ * Makefile.in (dist): Don't remove src/xditview/Imakefile, but ...
+ * Makefile.sub (DISTCLEANFILES): Here.
+
+ * libs/libgroff/new.cc: Include `nonposix.h'.
+ * win32-diffs: Updated.
+
+2001-04-10 Ruslan Ermilov <ru@FreeBSD.org>
+
+ Added skeleton macro for defunct macros.
+
+ Updated documentation.
+
+ When inside displays, an empty input line warning should be
+ suppressed. If another macro call is put inside a display,
+ all subsequent empty lines found in that display caused a
+ warning to be emitted.
+
+ * tmac/doc.tmac (doc-defunct-macro): New macro.
+ (Db, Ds, Ex, Or, Sf): Reimplemented using this macro.
+ (doc-restore-global-vars): Fixed typo.
+ (doc-empty-line): Check the `doc-display-depth' register to
+ determine whether we are inside display or not.
+
+ * tmac/doc-common: Removed `Or' and `Sf' registers.
+ Moved obsolete `Ds' macro to doc.tmac.
+
+ * tmac/groff_mdoc.man: Bump document date.
+ Document `.Vt' under ``Variable Types''.
+ Removed documentation for obsolete `.Or' macro.
+
+2001-04-10 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+ * doc/groff.texinfo: Many fixes, additions, clarifications, etc.
+
+2001-04-10 Bruno Haible <haible@clisp.cons.org>
+
+ * src/devices/grodvi/dvi.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/devices/grohtml/post-html.cc (main): Accept --help and --version.
+ Write --version output to stdout, not stderr.
+ (usage): Add stream argument. Don't exit.
+ * src/devices/grohtml-old/html.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/devices/grolbp/lbp.cc (long_options): Use symbolic getopt.h
+ constants.
+ (usage): Add stream argument. Don't exit.
+ (main): Write --help output to stdout, not stderr.
+ * src/devices/grolj4/lj4.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/devices/grops/ps.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/devices/grotty/tty.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/preproc/eqn/main.cc (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/preproc/grn/main.cc (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/preproc/html/pre-html.cc (usage): Add stream argument.
+ (scanArguments): Accept --help and --version.
+ * src/preproc/pic/main.cc (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/preproc/refer/refer.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/preproc/soelim/soelim.cc (usage): Add stream argument. Don't
+ exit.
+ (main): Accept --help and --version.
+ * src/preproc/tbl/main.cc (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/roff/groff/groff.cc (main): Accept --help and --version.
+ (synopsis): Add stream argument.
+ (help): Write --help output to stdout, not stderr.
+ (usage): Add stream argument. Don't exit.
+ * src/roff/grog/grog.pl: Accept --help and --version.
+ (help): New sub.
+ * src/roff/grog/grog.sh: Accept --help and --version.
+ * src/roff/nroff/nroff.sh: Accept --help and --version.
+ * src/roff/troff/input.cc (USAGE_EXIT_CODE): Remove macro.
+ (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/utils/addftinfo/addftinfo.cc (main): Accept --help and --version.
+ (usage): New function with stream argument, doesn't exit.
+ * src/utils/hpftodit/hpftodit.cc (main): Accept --help and --version.
+ (usage): New function with stream argument, doesn't exit.
+ * src/utils/indxbib/indxbib.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+ * src/utils/lkbib/lkbib.cc (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/utils/lookbib/lookbib.cc (usage): Add stream argument. Don't
+ exit.
+ (main): Accept --help and --version.
+ * src/utils/pfbtops/pfbtops.c (usage): Add stream argument. Don't exit.
+ (main): Accept --help and --version.
+ * src/utils/tfmtodit/tfmtodit.cc (main): Accept --help and --version.
+ (usage): Add stream argument. Don't exit.
+
+2001-04-10 Ruslan Ermilov <ru@freebsd.org>
+
+ Fix indentation in SYNOPSIS.
+
+ Updated to include changes of latest BSD mdoc version (basically,
+ the only change is that `.Fn' and `.Fc' put a final semicolon after
+ a function declaration in the SYNOPSIS section).
+
+ * tmac/doc.tmac (doc-in-synopsis-count): Replaced with ...
+ (doc-in-synopsis-section): New variable. Updated all related
+ functions.
+ (doc-indent-synopsis-active): New register.
+ (Nd, Fn, Fo): Use it.
+ (Cd): It requires manipulation of \n[doc-indent-synopsis] so that
+ `.Cd' with long argument line produces indented wrapped lines.
+ Also, the misplaced `.nop \*[doc-Nm-font]\c'' caused extra
+ undesirable line break to be output.
+ (doc-do-func-decl, Nm, Vt, Fn, Fo): Remove extraneous calls to
+ `.rs'.
+ (Fn, Fc): Add final `;' to output.
+ (doc-save-global-vars, doc-restore-global-vars): Updated.
+ * tmac/doc-common: Remove `Ex' register.
+ Updated.
+ * tmac/doc-ditroff, tmac/doc-nroff, tmac/doc-syms: Updated
+ copyright.
+
+2001-04-06 Ruslan Ermilov <ru@freebsd.org>
+
+ * tmac/doc.tmac (Cd): Simplify code.
+ * tmac/groff_mdoc.man: Document some behaviour of `Cd' request.
+
+2001-04-06 Werner LEMBERG <wl@gnu.org>
+
+ Implement continuous underlining for nroff mode. To do that, a new
+ request in the ditroff language has been added: `x u N' (N is 0
+ or 1).
+
+ \X and \Y are now transparent to end-of-sentence recognition.
+
+ * src/include/printer.h (printer): Add `type' parameter to `special'
+ method.
+ * src/libs/libdriver/printer.cc (printer::special): Updated.
+ * src/libs/libdriver/input.cc (do_file): Handle `x u N'.
+
+ * src/devices/dvi/dvi.cc (dvi_printer::special): Handle only
+ specials of type `p'.
+ * src/devices/grohtml/post-html.cc (html_printer::special): Ditto.
+ * src/devices/grohtml-old/html.cc (html_printer::special): Ditto.
+ * src/devices/grops/ps.cc (ps_printer::special): Ditto.
+ * src/devices/grotty/tty.cc: Add new enum CU_MODE.
+ (glyph::order): New method.
+ (tty_printer::add_char): Use it.
+ (tty_printer::special): New method.
+ (tty_printer::end_page): Implement it.
+
+ * src/roff/troff/node.h (special_node): Add `no_init_string' member.
+ * src/roff/troff/node.cc (special_node::special_node): Add parameter
+ to set `no_init_string'.
+ (special_node::tprint_start): Use it.
+ (special_node::same, special_node::copy): Updated.
+ (special_node::ends_sentence): New method.
+ (troff_output_file::start_special): Add parameter to include
+ initialization of special conditionally.
+
+ * src/roff/troff/env.h (environment): New member `underline_spaces'.
+ * src/roff/troff/env.cc (do_underline_special): New function.
+ (environment::set_font): Use it.
+ (do_underline): Use it. This was `underline()'.
+ (underline): Call `do_underline()'.
+ (continuous_underline): New function which calls `do_underline()'.
+ (environment::newline): Use `do_underline_special()'.
+ (init_env_requests): Updated.
+
+ * NEWS, man/troff_out.man: Updated.
+
+2001-04-06 Bruno Haible <haible@clisp.cons.org>
+
+ * font/devutf8/R.proto: Fix code of 'shc'.
+
+2001-04-06 Ruslan Ermilov <ru@freebsd.org>
+
+ Many fixes. Diag lists can now be nested also; additionally,
+ `-compact' and `-offset' are supported.
+
+ * tmac/doc.tmac (doc-have-indent): Replaced with ...
+ (doc-list-have-indent-stackXXX): A new register stack.
+ (doc-have-diag-list): Removed.
+ (Bl): Use `doc-list-have-indent-stackXXX'.
+ (El): Updated.
+ (doc-diag-list): Use `doc-compact-list-stackXXX'.
+ (doc-tag-list): Use `doc-list-have-indent-stackXXX'.
+ (doc-set-vertical-and-indent): Ditto.
+ (doc-next-list-depth): Removed.
+ (doc-increment-list-stack): Updated.
+ (doc-decrement-list-stack): Use `doc-list-depth' instead of
+ `doc-next-list-depth'.
+ (doc-end-list, doc-end-column-list): Don't use
+ `doc-increment-list-stack'.
+ (doc-set-column-tab): Don't use `doc-list-offset-stackXXX'.
+ (doc-save-global-vars, doc-restore-global-vars): Updated.
+ * tmac/doc-common: Updated.
+ * tmac/groff_mdoc.man: Updated.
+ * NEWS: Fix typo.
+
+2001-04-02 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grotty/grotty.man: Fix grammatical error.
+
+2001-03-30 Ruslan Ermilov <ru@freebsd.org>
+
+ Remove .Ld from mdoc package; replace it with special handling of
+ `...'.
+
+ * tmac/doc-common: Remove `Ld' register.
+ Uncomment `doc-volume-ds-*' strings.
+ Remove `doc-operating-system-default'.
+ (Os): Updated.
+ * tmac/doc-syms (Ld): Removed.
+ * tmac/doc.tmac (doc-parse-args, doc-parse-arg-vector): Handle
+ `...' specially.
+ * NEWS: Updated.
+
+ * tmac/groff_mdoc.man: Many fixes and updates.
+
+2001-03-29 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/troffrc-end: Protect data with `.do'. Reported by T. Kurt
+ Bond <tkb@tkb.mpl.com>.
+ * tmac/www.tmac: Save compatibility mode.
+
+2001-03-28 Ruslan Ermilov <ru@freebsd.org>
+
+ * tmac/groff_mdoc.man: Many fixes.
+
+2001-03-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/soelim/soelim.man: Document that `.<whitespace>so'
+ isn't recognized.
+
+2001-03-27 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (TP, an-do-tag): Reduce line length while in
+ diversion. This fixes overlong tags.
+
+2001-03-26 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fixed and improved documentation of fonts.
+ * tmac/doc-syms: Fix error messages.
+ * tmac/an-old.tmac: Remove incorrect double backslashes.
+
+2001-03-24 Ruslan Ermilov <ru@freebsd.org>
+
+ * tmac/Makefile.sub: Strip mdoc.local also
+ * tmac/strip.sed: Fixed.
+
+2001-03-24 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-nroff, tmac/doc-ditroff: Implement -rSxx switch for
+ selecting the font size.
+ * tmac/groff_mdoc.man, NEWS: Document it.
+
+2001-03-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/div.cc (save_vertical_space): Add default argument
+ to `sv' request.
+ * src/roff/troff/env.cc (family_change): Make `.fam' accept no
+ argument to restore previous font family.
+ * src/roff/troff/troff.man, man/groff.man, NEWS: Updated.
+
+ * doc/groff.texinfo: More fixes and additions (mainly for font
+ manipulating commands).
+
+ * tmac/groff_mdoc.reference.man: Small updates and renamed to ...
+ * tmac/groff_mdoc.man: This. The quick reference has been removed.
+ * tmac/Makefile.sub, NEWS: Updated.
+
+2001-03-23 Werner LEMBERG <wl@gnu.org>
+
+ Replaced mdoc implementation. The new version is `state of the
+ art', using almost all new features of groff 1.17 -- it won't run
+ with older versions.
+
+ * tmac/doc.tmac: Completely rewritten.
+ * tmac/doc-common: Ditto.
+ * tmac/doc-nroff: Ditto.
+ * tmac/doc-ditroff: Ditto.
+ * tmac/doc-syms: Ditto.
+ * tmac/mdoc.local: New file.
+ * tmac/groff_mdoc.samples.man: Replaced with ...
+ * tmac/groff_mdoc.reference.man: New file, covering mdoc completely.
+ * tmac/strip.sed: Updated.
+ * tmac/Makefile.sub: Updated.
+ * INSTALL: Updated.
+
+ * tmac/groff_man.man: Add `man.local' to the FILES section.
+
+2001-03-22 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added many @noindent.
+ Replaced @end_Example -> @endExample.
+ Added info whether registers are r/o.
+ Many other additions and fixes.
+
+2001-03-21 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added macro @Var (and some hacks due to bugs
+ in makeinfo of texinfo 4.0) to be used in @Def* macros.
+ Improved @Def* macros: Now the exact syntax of request, register,
+ and escapes is shown.
+ Added macros for parentheses and brackets to be used in @Def*.
+ Many fixes and improvements of the documentation.
+
+2001-03-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added new index: `st' (for strings).
+ Added macros @Defstr(x).
+ Added macro @Example (adding @group).
+ Other minor improvements.
+
+2001-03-19 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added two new indices: `es' (for escapes) and
+ `rq' for requests. `fn' is no longer used.
+ Added macros @Defreq(x), @Defreg(x), and @Defesc(x).
+ Removed @Deffn(x).
+
+ * tmac/an-old.tmac (an-p-footer): If `cR' is set, replace page
+ number with name of man page.
+
+2001-03-19 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: Complete revision. Added many @Deffn to gain
+ consistency.
+
+2001-03-19 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Document `prepro', `postpro', and `print'.
+ * src/roff/groff/groff.man: Improve documentation of `-l' and `-L'.
+ * src/devices/grohtml/grohtml.man: Fixing typos.
+
+2001-03-19 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/s.tmac (@IP): Pass `.ip' html tag.
+ * tmac/groff_mwww.man: Remove .LINE macro
+ * tmac/www.tmac (LINE): Add `.ti'.
+
+ * src/devices/grohtml/post-html.cc (html_printer): New member
+ `indent'.
+ (html_printer::emit_raw): Use it.
+ (html_printer::do_linelength): Ditto.
+ (html_printer::do_pageoffset): Ditto.
+ (html_printer::do_indentation): Ditto.
+ (html_printer::do_tempindent): Ditto.
+ (html_printer::do_break): Ditto.
+ (html_printer::begin_page): Ditto.
+ (html_printer::do_indentedparagraph): New function.
+ (html_printer::troff_tag): Handle `.ip'.
+ * src/devices/grohtml/html-text.cc (html_text::issue_table_begin):
+ Add `<td width=...>' handling.
+ (html_text::do_table): Add parameter.
+ (html_text::do_indent): Updated.
+ * src/devices/grohtml/html-text.h: Updated.
+
+2001-03-16 Gaius Mulley <gaius@glam.ac.uk>
+
+ Introduced simple html tables to implement indentation.
+
+ * src/devices/grohtml/html.h (word, word_list): New structures.
+ (simple_output): Use it.
+ * src/devices/grohtml/post-html.cc: Add `INDENTATION'.
+ (html_printer): Improve indentation handling.
+ (html_printer::emit_raw): Set `in_table' element. Handle
+ indentation if set.
+ (html_printer::write_header): Move conditional downwards.
+ Don't allow whitespace in tags.
+ (html_printer::do_linelength): Handle line length and indentation
+ conditionally.
+ (html_printer::do_pageoffset): Handle indentation conditionally.
+ (html_printer::do_indentation): Ditto.
+ (html_printer::do_tempindent): New function member.
+ (html_printer::do_fill): Take care of indentation.
+ (html_printer::do_flush): Finish table.
+ (html_printer::do_links): Ditto.
+ (html_printer::do_break): New function for handling `.br' and `.ti'.
+ (html_printer::troff_tag): Use it.
+ Handle `.ti'.
+ (html_printer::flush_globs): Fix.
+ (html_printer::flush_page): Finish table.
+ (html_printer::html_printer): Fix error message. Set up
+ `linelength'.
+ (html_printer::add_to_sbuf): Remove special handling of character
+ code 255.
+ (to_unicode): Remove `stop()'.
+ (html_printer::write_title): Cleanup.
+ (html_printer::begin_page): Use `put_string()'. Handle indentation.
+ (html_printer::~html_printer): Flush text and end the line.
+ Use `put_string()'.
+ * src/devices/grohtml/html_text.h: Add more *_TAG enum values.
+ * src/devices/grohtml/html_text.cc (html_text::end_tag): Fix
+ emission of tags.
+ (html_text::start_tag): Disable newlines.
+ (html_text::table_is_void): New function.
+ (html_text::issue_table_begin): Ditto.
+ (html_text::issue_table_end): Ditto.
+ (html_text::push_para): Better table handling.
+ (html_text::do_indent): New function.
+ (html_text::do_table): Ditto.
+ (html_text::done_table): Ditto.
+ (html_text::do_tt): Handle PRE_TAG.
+ (html_text::is_in_table): New function.
+ (html_text::check_emit_text): Handle tables.
+ (html_text::do_emittext): Use `nl()'.
+ (html_text::do_para): Handle table.
+ (html_text::remove_def): New function.
+ * src/devices/grohtml/output.cc (word, word_list): Implement
+ methods.
+ (simple_output::end_line): Flush last word.
+ (simple_output::simple_comment): Ditto.
+ (simple_output::begin_comment): Recoded.
+ (simple_output::end_comment): Ditto.
+ (simple_output::comment_arg): Removed.
+ (simple_output::check_newline): Improve test and flush last word.
+ (simple_output::space_or_newline): Improved.
+ (simple_output::write_newline): Replaced with...
+ (simple_output::nl): This.
+ (simple_output::put_raw_char): Flush last word.
+ (simple_output::check_space): Removed.
+ (simple_output::put_translated_string): Ditto.
+ (simple_output::put_string): Simplified.
+ (simple_output::put_number): Updated.
+ (simple_output::put_float): Ditto.
+ (simple_output::put_symbol): Removed.
+ (simple_output::enable_newlines): Add `check_newline()'.
+ (simple_output::flush_last_word): New function.
+
+ * src/roff/troff/enc.cc (no_fill): Remove call to add_html_tag().
+ * src/roff/troff/div.cc (page_offset): Add call to add_html_tag().
+
+ * tmac/s.tmac (@PP, @IP): Add html conditional code.
+ * tmac/an-old.tmac (TP): Ditto.
+
+2001-03-09 Ruslan Ermilov <ru@freebsd.org>
+
+ * mdate.sh: Make it POSIX compliant.
+
+2001-03-09 Werner LEMBERG <wl@gnu.org>
+
+ Added the `return' request to end a macro immediately. It simply
+ pops iterators from the input stack until a macro iterator is found.
+
+ * src/roff/troff/input.cc (input_iterator::is_macro,
+ macro_iterator::is_macro): New member.
+ (input_return_boundary): New class to signal an immediate return
+ to while_request().
+ (input_stack::add_return_boundary, input_stack::is_return_boundary):
+ New functions.
+ (input_stack::clear): Use it.
+ (input_stack::pop_macro): New function.
+ (while_request): Use `is_return_boundary()'.
+ (return_macro_request): New function.
+ (init_input_requests): Use it.
+
+ * src/roff/troff/TODO: Updated.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+2001-03-08 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (input_iterator::is_boundary): Minor
+ cleanup.
+
+2001-03-07 Werner LEMBERG <wl@gnu.org>
+
+ Make `\B' more rigid.
+
+ * src/roff/troff/number.cc (parse_expr, parse_term): Add `rigid'
+ parameter.
+ (get_number_rigidly): New function.
+ * src/roff/troff/input.cc (do_expr_test): Use it.
+ * src/roff/troff/token.h: Updated.
+
+ * src/roff/troff/request.h: Fix typo (init_html_request ->
+ init_markup_request).
+
+2001-03-04 Gaius Mulley <gaius@glam.ac.uk>
+
+ Fixed grohtml handling of any named glyph for glyph indexes < 0x80.
+ Cosmetic changes to `.html-begin', `.html-end', `.html-image' which
+ are now `.begin', `.end', `.image'.
+
+ * src/devices/grohtml/post-html.cc: Adding UNICODE_DESC_START.
+ (html_printer::add_to_sbuf): Changing type of `code' parameter.
+ Use add_char_to_sbuf().
+ (to_unicode): New function.
+ (char_translate_to_html): Changing type of `ch' parameter.
+ Use `to_unicode()'.
+ (html_printer::~html_printer): Comment out doctype string.
+ * src/preproc/html/pre-html.cc (write_end_image): Use `.end'
+ instead of `.html-end'.
+ (write_start_image): Use `.begin' and `.image' instead of
+ `.html-begin' and `.html-image'.
+ * src/roff/troff/input.cc: Rename `html_level' to `begin_level'.
+ (html_begin): Renamed to ...
+ (begin): This.
+ (html_end): Renamed to ...
+ (end): This.
+ (html_image): Renamed to ...
+ (image): This.
+ (init_html_requests): Renamed to ...
+ (init_markup_requests): This.
+ * tmac/www.tmac: Updated.
+
+2001-02-28 Bram <bram@avontuur.org>
+
+ * src/libs/libgroff/font.cc (font_widths_cache): Fixing syntax of
+ constructor.
+
+2001-02-26 David Leonard <david.leonard@csee.uq.edu.au>
+
+ * doc/meref.me: Fixing some typos.
+
+2001-02-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (space_node::get_hyphenation_type): New
+ method. Return `HYPHEN_MIDDLE' if it was `\:'.
+ * src/roff/troff/node.h: Updated.
+
+2001-02-17 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/groff_tmac.man: Fix typo.
+
+2001-02-16 Werner LEMBERG <wl@gnu.org>
+
+ Fixing a bug which prevented proper end-of-sentence recognition
+ between an `unformatted' box and the following text. As a
+ consequence, vertical line distances are no longer preserved in
+ boxes after a call to `.unformat' -- because boxes aren't
+ line-oriented (contrary to diversions), this doesn't make sense
+ anyway.
+
+ * src/roff/troff/node.cc (*node::set_unformat_flag): Add return
+ value.
+ (vertical_size_node::set_unformat_flag): New method.
+ * src/roff/troff/node.hh: Updated.
+ * src/roff/troff/input.cc (word_space_node::reread,
+ hmotion_node::reread): Reset `unformat' flag after usage.
+ (unformat_macro): Append only if `set_unformat_flag()' returns
+ non-zero.
+ * src/roff/troff/troff.man: Updated.
+
+2001-02-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man, NEWS, man/groff.man: Improved
+ documentation of `asciify' and `unformat' requests.
+
+2001-02-13 Werner LEMBERG <wl@gnu.org>
+
+ Redesigned the `unformat' request. It is no longer connected with
+ `asciify' but rather uses new `reread()' methods if the `unformat'
+ flag is set. Additionally, the handling of space characters after
+ unformatting has been fixed so that they retain their width.
+
+ * src/roff/troff/node.h (width_list): New structure to store
+ original widths of spaces.
+ (node): Added `unformat' member.
+ Replaced `num_spaces' variable with `orig_width' list.
+ * src/roff/troff/node.cc (*node::asciify,
+ asciify_reverse_node_list): Removed `unformat_only' flag and related
+ code.
+ (word_space_node::asciify, word_space_node::word_space_node): Use
+ `orig_width'.
+ (word_space_node::~word_space_node): New destructor.
+ (word_space_node::copy): Updated to handle `orig_width'.
+ (hmotion_node::copy, unbreakable_space_node::copy): Updated.
+ (*node::merge_space): Update `orig_width' list if necessary.
+ (*node::set_unformat_flag): New methods to set the `unformat' flag.
+ * src/roff/troff/enc.cc (environment::space_newline): Use
+ `width_list'.
+ (environment::space): Added method to handle space width and
+ sentence space width as parameters. Use `width_list'.
+ (environment::make_tab_node): Updated.
+ * src/roff/troff/env.h: Updated.
+ * src/roff/troff/input.cc (word_space_node::reread,
+ unbreakable_space_node::reread, hmotion_node::reread): New methods
+ to handle nodes specially if `unformat' flag is set.
+ (do_asciify_macro): Renamed back to ...
+ (asciify_macro): This.
+ (unformat_macro): New implementation to simply set the `unformat'
+ flag.
+
+ * MORE.STUFF: Added more info about deroff.
+
+2001-02-08 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.h (unbreakable_space_node, hmotion_node,
+ space_char_hmotion_node, overstrike_node): Add `get_hyphen_list()'
+ and `add_self()' methods to avoid hyphenation. For example, the
+ hyphen list for `foo\0\0bar' was `foobar', causing insertion of a
+ soft hyphen after `foo'. Now the hyphen list is correctly
+ `foo<ignore><ignore>bar'.
+
+2001-02-05 Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp>
+
+ * tmac/groff_tmac.man: Fix `BIR' macro.
+
+2001-02-04 Werner LEMBERG <wl@gnu.org>
+
+ A new escape sequence `\:', inserting a zero-width break point.
+
+ * src/roff/troff/input.h: Adding `ESCAPE_COLON'.
+ * src/roff/troff/input.cc (get_copy, token::next, asciify):
+ Implement it.
+ * src/roff/troff/node.h (node): Add `is_escape_colon()' virtual
+ method.
+ (space_node): Add `was_escape_colon' member. Add `is_escape_colon()'
+ and `asciify()' methods.
+ * src/roff/troff/node.cc (space_node::space_node): Updated.
+ (space_node::asciify): Handle `was_escape_colon'.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+ Handle `\~' similar to other comparable requests.
+
+ * src/roff/troff/input.cc (process_input_stack): Remove now obsolete
+ label.
+ (token::next): Move creation of an unbreakable_space_node to...
+ (token::add_to_node_list): Here.
+
+ Fix a bug which sometimes prevented hyphenation of words connected
+ with `\~' or `\ ' (and other escape sequences handled as
+ TOKEN_NODE). This also fixes a hyphenation problem with boxes
+ (after a call to the `unformat' request).
+
+ * src/roff/troff/env.h (environment::possibly_break_line,
+ environment::hyphenate_line): Introducing `start_here' parameter.
+ * src/roff/troff/env.cc (environment::space_newline,
+ environment::space): Use it.
+ (environment::possibly_break_line, environment::hyphenate_line):
+ Implement it.
+ * src/roff/troff/input.cc (process_input_stack): Use it.
+ * src/roff/troff/node.h (unbreakable_space_node, hmotion_node,
+ space_char_hmotion_node, overstrike_node): Add
+ `get_hyphenation_type()' method.
+ * src/roff/troff/node.cc (break_char_node::asciify): Don't asciify
+ if `unformat_only' is active.
+
+2001-01-30 Werner LEMBERG <wl@gnu.org>
+
+ Implemented new read-only number register `.linetabs' which
+ returns 1 if in line-tabs mode, 0 otherwise.
+
+ * src/roff/troff/env.h (environment): Add get_line_tabs() member.
+ * src/roff/troff/env.cc (get_line_tabs): New function.
+ (init_env_requests): Use it.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+ * VERSION, REVISION: Changing to 1.17.0.
+
+2001-01-28 Werner LEMBERG <wl@gnu.org>
+
+ Fixed a bug which prevented hyphenation of words which are finished
+ with `\)'.
+
+ * src/roff/troff/token.h (token): Add enum type
+ `TOKEN_TRANSPARENT_DUMMY' and method `transparent_dummy()'.
+ * src/roff/troff/input.cc (token::next, token::description,
+ get_line_arg, token::add_to_node_list, token::process): Use it.
+
+2001-01-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/div.h (diversion): Add `saved_prev_line_interrupted'.
+ * src/roff/troff/div.cc (do_divert): Use it.
+
+ * src/roff/troff/input.cc (asciify): Add ESCAPE_RIGHT_PARENTHESIS.
+
+2001-01-25 Werner LEMBERG <wl@gnu.org>
+
+ Adding the `linetabs' request. If set, tab distances are not
+ computed relative to the input line but relative to the output line.
+
+ * src/roff/troff/env.h (environment): New member `line_tabs'.
+ * src/roff/troff/env.cc (line_tabs_request): Implement request.
+ (environment::environment, environment::copy): Updated.
+ (environment::distance_to_next_tab): Use `line_tabs'.
+ (init_env_requests): Register request.
+ * src/roff/troff/troff.man, man/groff.man, NEWS: Document it. Other
+ fixes.
+
+2001-01-24 Werner LEMBERG <wl@gnu.org>
+
+ Introducing a new read-only register `.int' which is set to a
+ positive value if the last output line is interrupted (i.e., if it
+ contains `\c').
+
+ * src/roff/troff/env.cc (init_env_requests): Add it.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+2001-01-23 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/mwww.tmac: Call `www.tmac', not `arkup.tmac'.
+ * src/preproc/html/pre-html.cc (findPrefix): New function which
+ generates the troff executable name via the system prefix.
+ * src/preproc/eqn/main.cc: Modified warning message.
+
+2001-01-23 Werner LEMBERG <wl@gnu.org>
+
+ troff's `box' and `boxa' requests didn't preserve temporary
+ indentation.
+
+ * src/roff/troff/div.h (diversion): Add `saved_saved_indent' and
+ `saved_target_text_length' members.
+ * src/roff/troff/div.cc (do_divert): Use them.
+
+ Tabs (but not yet leaders and fields) are now handled correctly by
+ `asciify' request.
+
+ * node.h (hmotion_node): Add field `was_tab'.
+ * env.cc (environment::make_tab_node): Set it.
+ * node.cc (hmotion_node::copy, hmotion_node::asciify): Use it.
+
+ Added new request `unformat' which will, contrary to `asciify',
+ preserve font information after unformatting (i.e., only nodes
+ dealing with horizontal space are converted back to input
+ characters).
+
+ * input.cc (asciify_macro): Renamed to ...
+ (do_asciify_macro): this, having a new parameter `unformat_only'.
+ (asciify_macro, unformat_macro): New; using do_asciify_macro.
+ (init_input_requests): Added `unformat'.
+ * node.cc (*_node::asciify), asciify_reverse_node_list: Added
+ parameter to control asciification process.
+ * node.h (*_node::asciify): Ditto.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+2001-01-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Minor improvement of `.in' documentation.
+
+2001-01-18 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/ps.tmac: Remove call of psold.tmac.
+ * tmac/psold.tmac: Comment updated.
+ * tmac/psnew.tmac: Removed since no longer needed.
+ * tmac/Makefile.sub, NEWS, src/devices/grops/grops.man: Updated.
+
+ * font/devutf8/R.proto: Adding `shc' glyph.
+ * font/devutf8/NOTES: Updated.
+
+ * test-groff: Updated.
+
+2001-01-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ First cut of the new html device driver. Changes to pre-html and
+ the new grohtml are too numerous to be documented here.
+
+ Stuff related to `html' has been renamed to `html-old' and `html2'
+ stuff has been renamed to `html' (including directories). The new
+ html device driver is therefore invoked as `-Thtml'.
+
+ Added new `\O' escape to suppress output (needed by html driver).
+
+ Added functions and code to pass info about input-level commands
+ (`.in', `.fl', etc.) to html driver.
+
+ Three new functions (.html-begin, .html-end, and .html-image) for
+ better html handling: `html-begin' will execute the remaining line
+ if at the outermost nesting level, increasing an internal counter.
+ `html-end' does the same but decreases the internal counter.
+ `html_image' puts its arguments into a special node (suppress_node)
+ to define an image region.
+
+ The `output' request has been removed.
+
+ * tmac/html-tags.tmac: Removed.
+ * tmac/arkup.tmac: Updated and renamed to ...
+ * tmac/www.tmac: New file.
+ * tmac/markup.tmac Updated and renamed to ...
+ * tmac/mwww.tmac: New file.
+ * tmac/Makefile.sub: Updated.
+ * tmac/an-old.tmac: Updated.
+ * tmac/eqnrc: Updated.
+ * tmac/groff_man.man
+ * tmac/groff_markup.man: Updated and renamed to ...
+ * tmac/groff_mwww.man: New file.
+ * tmac/groff_tmac.man: Updated.
+ * tmac/html-old.tmac: Updated and Renamed from html.tmac.
+ * tmac/html.tmac: Updated and renamed from html2.tmac.
+ * tmac/pspic.tmac: Updated html support.
+ * tmac/s.tmac: Added html output support.
+ * tmac/troffrc, tmac/troffrc-end: Updated.
+
+ * Makefile.in, doc/Makefile: Updated.
+ * doc/groff.texinfo: Added info about new `\O' escape.
+ * doc/homepage.ms: Use `MAILTO' macro.
+
+ * font/devhtml/DESC.proto: Add `C' font.
+ * font/devhtml/Makefile.sub: Updated.
+ * font/devhtml/R.proto: Minor fixes.
+ * font/devhtml-old/Makefile.sub: Updated.
+
+ * src/devices/grohtml-old/Makefile.sub: Updated.
+
+ * src/libs/libdriver/printer.cc (printer::get_font_from_index): New
+ method.
+ * src/libs/libgroff/htmlindicate.cc (html_begin_suppress,
+ graphic_start): Add `inline' parameter. Update.
+ (html_end_suppress, graphic_end): Update.
+
+ * src/include/html-strings.h: New file.
+ * src/include/htmlindicate.h: Comments updated.
+ * src/include/printer.h: Updated.
+
+ * src/preproc/eqn/main.cc (do_file, main): Updated.
+ * src/preproc/pic/troff.cc (troff_output::start_picture,
+ troff_output::finish_picture): Updated.
+ * src/preproc/tbl/main.cc (process_input_file): Updated.
+
+ * src/roff/groff/groff.cc (main): Updated.
+ Pass device arguments to predrivers also.
+ Use `ps' device for `eqn' preprocessor if `-Thtml' is given.
+ * src/roff/troff/env.h (environment): Updated.
+ New elements `need_eol' and `ignore_next_eol' (for html output).
+ * src/roff/troff/env.cc (environment::environment): Add initializers
+ for `need_eol' and `ignore_next_eol'.
+ (environment::add_html_tag_eol, environment::add_html_tag_tabs): New
+ functions.
+ (point_size, fill, no_fill, center, right_justify, line_length,
+ indent, temporary_indent, break_request, handle_tab): Use
+ `add_html_tag()'.
+ (set_tabs): Use `add_html_tag_tabs()'.
+ (environment::add_html_tag): Updated.
+ (environment::do_break): Updated.
+ * src/roff/troff/div.cc (space_request, flush_output): Use
+ `environment::add_html_tag()'.
+ * src/roff/troff/input.cc: Updated.
+ New variable `html_level' to indicate nested `html-begin' requests.
+ (file_iterator::fill): Use `environment::add_html_tag_eol()'.
+ (non_interpreted_char_node, token_node, non_interpreted_node): Add
+ `force_tprint()' method.
+ (token::next): Handle `\O'.
+ (do_suppress): Implement it.
+ (html_begin, html_end, html_image): New functions.
+ (init_output_requests): Renamed to ...
+ (init_html_requests): this.
+ (main): Use it.
+ (macro::append_str, macro::append_unsigned, macro::append_int): New
+ methods.
+ New variable `output_low_mark_miny' to limit minimal value of y.
+ (reset_output_registers): Use it.
+ (output_request): Removed.
+ (get_output_registers): New function.
+ * src/roff/troff/node.h (node): Make `force_tprint()' virtual.
+ (*_node): Added `force_tprint()' if necessary.
+ (special_node): New elements `tf' and `get_tfont()'.
+ (suppress_node): New class.
+ * src/roff/troff/node.cc:
+ New global variables `image_no' and `suppress_start_page'.
+ (real_output_file): New method `is_on()'.
+ (troff_output_file): New method `start_special(tfont)'.
+ (troff_output_file::really_print_line): Use `tprint' conditionally.
+ (real_output_file::print_line): Updated.
+ (real_output_file::on): Updated.
+ (*_node): Added `force_tprint()'.
+ (special_node::special_node): Initializer updated.
+ (special_node::same, special_node::copy, special_node::tprint_start):
+ Updated.
+ (get_reg_int, get_reg_str): New functions.
+ (suppress_node::*): New methods.
+ New global variables last_position, last_image_filename;
+ (min): New inline function.
+ * src/roff/troff/reg.h, src/roff/troff/request.h,
+ src/roff/troff/troff.h: Updated.
+
+2001-01-13 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, src/roff/troff/troff.man, doc/groff.texinfo: Fix
+ documentation of `asciify' request.
+
+2001-01-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc: Move definition of special characters
+ like `ESCAPE_TILDE' to ...
+ * src/roff/troff/input.h: New file.
+ * src/roff/troff/Makefile.sub (HDRS): Add it.
+
+ Extending the .asciify request to `unformat' space characters also.
+
+ * src/roff/troff/node.h (word_space_node): Add `num_spaces' element
+ to count input space characters.
+ Update constructors to take care of it.
+ * src/roff/troff/node.cc (space_char_hmotion_node::asciify): Use
+ `ESCAPE_SPACE' instead of normal space.
+ (word_space_node::asciify): New method.
+ (unbreakable_space_node::asciify): New method.
+ (word_space_node::merge_space): New method.
+ * src/roff/troff/env.cc (environment::space_newline,
+ environment::space): Add code to initialize `num_spaces' (using the
+ constructor of `word_space_node').
+ * NEWS, src/roff/troff/troff.man, man/groff.man, doc/groff.texinfo:
+ Document it.
+
+2001-01-09 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man: Use table header traps only conditionally.
+
+2001-01-09 Bjarni Ingi Gslason <bjarniig@hi.is>
+
+ * man/groff_char.man: Add `' and `' to the `acute' group.
+
+2001-01-08 Werner LEMBERG <wl@gnu.org>
+
+ Introducing the `box' and `boxa' requests which are similar to
+ `di' resp. `da' but omitting a partially filled line (which is
+ restored after ending the diversion).
+
+ * src/roff/troff/div.h (diversion): Add elements to save partially
+ filled line.
+ * src/roff/troff/div.cc (do_divert): Add parameter `boxing' to save
+ partially filled line.
+ (divert, divert_append): Updated.
+ (box, box_append): New functions.
+ (init_div_requests): Use them.
+ * src/roff/troff/env.h (environment): do_divert() is now a friend.
+ * NEWS, src/roff/troff/troff.man, man/groff.man: Document it.
+
+ * doc/groff.texinfo: Fix documentation of `lf' request.
+
+2000-12-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man, NEWS: Document `writem' request.
+
+2000-12-21 Werner LEMBERG <wl@gnu.org>
+
+ Ignore `ss' request if in compatibility mode.
+
+ * src/roff/troff/input.cc: Make `compatible_flag' non-static.
+ * src/roff/troff/env.h: Added extern `compatible_flag' declaration.
+ * src/roff/troff/env.cc (space_size): Use it.
+
+ * doc/groff.texinfo, src/roff/troff/troff.man: Fix documentation of
+ `ss' request in nroff mode.
+
+ * tmac/an-old.tmac: Fixed some serious bugs introduced with latest
+ changes.
+
+2000-12-15 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/troffrc, tmac/troffrc-end: Convert tmac.* to *.tmac.
+
+2000-12-13 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/Makefile.sub (MAN1): Added neqn.man.
+ * src/preproc/eqn/neqn.man: Small fixes and additions.
+
+2000-12-13 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * src/utils/addftinfo/addftinfo.man, src/devices/grops/grops.man:
+ Fixing typo.
+
+ * src/preproc/eqn/neqn.man: New file.
+
+ * src/preproc/tbl/table.cc (table::print): Fix `indent cannot be
+ negative' warning.
+
+ * tmac/e.tmac: Add `T&' macro.
+ Fix `indent cannot be negative' warning.
+ * tmac/s.tmac: Fix `indent cannot be negative' warning.
+
+2000-12-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Replaced __ALPHA with __alpha symbol.
+
+2000-12-06 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Added info about adding -lPW on HP-UX to satisfy the
+ `alloca' symbol .
+
+ * MORE.STUFF: Added info about deroff for djgpp.
+
+ * tmac/an-old.tmac, tmac/groff_man.man, doc/groff.texinfo, NEWS: Fix
+ documentation of -rcR switch.
+
+2000-12-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac: Implementing the -rcR switch (similar to mdoc);
+ if -rcR=1 (which is now the default in nroff mode), a single, very
+ long page is created instead of multiple pages: All `ne' and `wh'
+ requests are put into conditionals; a new macro `an-end' is added to
+ be called with `em'.
+
+ Some other minor cleanups.
+
+ * NEWS, tmac/groff_man.man, doc/groff.texinfo: Updated.
+
+2000-12-02 Werner LEMBERG <wl@gnu.org>
+
+ Fixing a bug which prevented hyphenation in words followed
+ immediately by a TOKEN_NODE (e.g. `\ ', `\~', etc.).
+
+ * src/roff/troff/input.cc (process_input_stack <token::TOKEN_NODE>):
+ Adding possibly_break_line().
+ * src/roff/troff/env.h (environment): Make possibly_break_line()
+ public.
+
+ Make `\~' usable in .tr request.
+
+ * src/roff/troff/token.h (token_type): Add TOKEN_STRETCHABLE_SPACE.
+ (token): Add stretchable_space().
+ * src/roff/troff/input.cc (token::next, token::delimiter,
+ token::description, process_input_stack, do_translate,
+ add_to_node_list, token::process): Use it.
+ * src/roff/troff/node.h (node): Add fourth parameter to add_char()
+ for adjusting the space.
+ * src/roff/troff/node.cc (node::add_char): Implement it. Add code
+ for stretchable space.
+ * src/roff/troff/input.cc (token::add_to_node_list): Use it.
+ (make_node): Add code for stretchable space.
+ * src/roff/troff/env.cc (environment::add_char): Use it.
+ * src/roff/troff/input.cc: Add ESCAPE_TILDE special character.
+ (get_copy, token::next, transparent_translate, asciify): Use it.
+
+ * NEWS, src/roff/troff/troff.man, src/roff/troff/TODO,
+ doc/groff.texinfo: Updated.
+ * man/groff.man: Small reorderings.
+
+2000-11-23 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Fixes.
+ * src/preproc/eqn/main.cc (main): Use `config_macro_path' for -M
+ option.
+ * src/roff/troff/input.cc (main): Add `config_macro_path' and
+ `safer_macro_path' to -M option.
+ * src/roff/troff/troff.man: Fixes.
+
+2000-11-22 Werner LEMBERG <wl@gnu.org>
+
+ Use safer path (except for config files) if -U isn't specified. Add
+ a special macro path (without home and current directory) for config
+ files. Add home directory to unsafe path for consistency. Don't
+ include the home directory in the font path.
+
+ * src/libs/libgroff/macropath.cc: Add `config_macro_path', change
+ `macro_path'.
+ * src/include/macropath.h: Add `config_macrp_path'.
+ * src/libs/libgroff/fontfile.cc: Fix font path.
+ * src/roff/troff/input.cc (process_startup_file): Use
+ `config_macro_path'.
+ (main): Select unsafe path if -U is given.
+
+ * src/preproc/eqn/main.cc (main): Fixing search path for
+ configuration file.
+ * src/preproc/eqn/eqn.man: Updated.
+
+ * src/roff/troff/troff.man, man/roff.man, tmac/groff_tmac.man:
+ Updated.
+
+ * src/preproc/grn/grn.man, src/devices/grodvi/grodvi.man,
+ src/devices/grohtml/grohtml.man, src/devices/grolbp/grplbp.man,
+ src/devices/grolj4/grolj4.man, src/devices/grops/grops.man,
+ src/devices/grotty/grotty.man: Updated.
+
+ * Makefile.in: Fix comments.
+
+2000-11-17 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/safer.tmac: Empty file added (again) for compatibility
+ reasons.
+ * tmac/Makefile.sub: Updated.
+
+2000-11-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grodvi/dvi.cc (main),
+ src/devices/grohtml2/post-html.cc (main),
+ src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
+ (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
+ (main), src/preproc/eqn/main.cc (main), src/preproc/grn/main.cc
+ (main), src/preproc/html2/pre-html.cc (main),
+ src/preproc/pic/main.cc (main), src/preproc/refer/refer.cc (main),
+ src/preproc/soelim/soelim.cc (main), src/preproc/tbl/main.cc
+ (main), src/roff/groff/groff.cc (main), src/roff/troff/input.cc
+ (main), src/utils/hpftodit/hpftodit.cc (main),
+ src/utils/indxbib/indxbib.cc (main), src/utils/lkbib/lkbib.cc
+ (main), src/utils/lookbib/lookbib.cc (main),
+ src/utils/pfbtops/pfbtops.c (main), src/utils/tfmtodit/tfmtodit.cc
+ (main): Use stdout for -v.
+ * src/roff/groff/groff.cc (run_commands),
+ src/roff/groff/pipeline.c (run_pipeline): New parameter `no_pipe'
+ to make direct printing to stdout possible.
+ * src/roff/groff/pipeline.h: Updated.
+
+ * src/utils/afmtodit/afmtodit.pl: Add -v switch.
+ * src/utils/afmtodit/Makefile.sub (afmtodit): Use @VERSION@.
+ * src/utils/afmtodit/afmtodit.man: Updated.
+
+ * src/utils/addftinfo/addftinfo.cc (main): Add -v switch.
+ (version): New function.
+ (usage): Updated.
+ * src/utils/addftinfo/addftinfo.man: Updated.
+
+ * src/devices/*/*, src/preproc/*/*, src/roff/*/*, src/utils/*/*:
+ Fixing copyright dates.
+
+ * src/preproc/eqn/neqn.sh: Adding GROFF_BIN_PATH to path instead of
+ replacing it.
+
+ * src/devices/grolbp/lbp.cc (main): Use Version_string instead of
+ version_string.
+
+ * src/roff/nroff/Makefile.sub (nroff): Fix use of @VERSION@.
+
+2000-11-15 Werner LEMBERG <wl@gnu.org>
+
+ In all programs, make -v return immediately with exit status 0 to
+ be compliant with the GNU standard.
+
+ * src/devices/grodvi/dvi.cc (main),
+ src/devices/grohtml2/post-html.cc (main),
+ src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
+ (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
+ (main) src/preproc/eqn/main.cc (main), src/preproc/grn/main.cc
+ (main), src/preproc/html2/pre-html.cc (main),
+ src/preproc/pic/main.cc (main), src/preproc/refer/refer.cc (main),
+ src/preproc/soelim/soelim.cc (main), src/preproc/tbl/main.cc
+ (main), src/roff/groff/groff.cc (main), src/roff/troff/input.cc
+ (main): Implement it.
+ * NEWS: Updated.
+
+ * src/roff/groff/groff.cc (main): Add copyright notice. Add refer
+ and postprocessors to the -v option.
+
+ * src/roff/grog/grog.pl: Implement -v.
+ * src/roff/grog/Makefile.sub (grog): Use @VERSION@.
+ * src/roff/grog/grog.man, doc/groff.texinfo: Updated.
+
+ * src/roff/nroff/nroff.sh: Implement -v.
+ * src/roff/nroff/Makefile.sub (nroff): Use @VERSION@.
+ * src/roff/nroff/nroff.man: Updated.
+
+ * src/preproc/eqn/main.cc (main): Fix comment typo.
+
+ * MORE.STUFF: Added info about djgpp port of grap.
+
+2000-11-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/grog/grog.{pl,sh}: Implemented -C switch for compatibility
+ mode (or rather, implemented non-compatibility mode).
+ * NEWS, src/roff/grog/grog.man, doc/groff.texinfo: Updated.
+
+ * src/roff/groff/groff.cc (main): Add BIN_PATH to PATH instead of
+ replacing it -- we don't find gxditview otherwise.
+ * NEWS, src/roff/groff/groff.man, doc/groff.texinfo: Updated.
+
+ * src/preproc/pic/depend: Removed. Unnecessary.
+
+ Implemented dummy keyword `solid' in pic for compatibility with
+ AT&T pic.
+
+ * lex.cc (lookup_keyword): Added `solid'.
+ * pic.y: Added SOLID with dummy rule.
+ * pic.cc, pic_tab.h: Regenerated.
+ * doc/pic.ms: Updated.
+
+2000-11-13 Werner LEMBERG <wl@gnu.org>
+
+ For security reasons, don't use the current directory but the home
+ directory while searching and scanning troffrc and troffrc-end.
+ Similarly, replace the current directory with the home directory
+ in the font path.
+
+ * Makefile.in (fontpath, tmacpath): Remove current directory.
+
+ * src/libs/libgroff/searchpath.cc (search_path::search_path): Add
+ two parameters `add_home' and `add_current'.
+ (search_path::~search_path, search_path::command_line_dir,
+ search_path::open_file): Remove tests for `dirs' being zero.
+ * src/include/searchpath.h: Adjust.
+ * src/libs/libgroff/macropath.cc, src/include/macropath.h: Add
+ `safer_macro_path'.
+ * src/libs/libgroff/fontfile.cc: Adjust `font_path'.
+
+ * src/roff/troff/troff.h: Add `searchpath.h' and `mac_path'.
+ * src/roff/troff/input.cc: Use `mac_path', initialized with
+ `macro_path'.
+ (process_startup_file): Set `mac_path' to `safer_macro_path'.
+ * src/roff/troff/env.cc: Use `mac_path'.
+
+ * src/preproc/eqn/main.cc (main): Use `safer_macro_path'.
+
+ * NEWS, man/roff.man, src/roff/troff/troff.man,
+ src/roff/groff/groff.man, tmac/groff_tmac.man, arch/djgpp/README:
+ Updated.
+
+2000-11-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Don't include groff-getopt.h for OSF/1.
+
+ * aclocal.m4 (GROFF_SYS_ERRLIST): Do test in C, not in C++.
+ * configure.in: Fix typo in comment.
+ * configure: Regenerated.
+
+ * src/libs/libgroff/*, src/include/*, src/roff/troff/*: Fixing
+ copyright dates.
+
+2000-11-08 Werner LEMBERG <wl@gnu.org>
+
+ Add system tmac directory (/usr/local/lib/groff/site-tmac).
+
+ * Makefile.in: Add $(libdir), $(libprogramdir), and $(systemtmacdir).
+ (uninstall_dirs): Add $(libdir), $(libprogramdir), and
+ $(systemtmacdir).
+ Use @libdir@.
+ * Makefile.comm (.man.n): Add @SYSTEMMACRODIR@.
+ * tmac/Makefile.sub (install_data): Create
+ $(systemtmacdir) and $(localtmacdir).
+ (uninstall_sub): Use $(systemtmacdir) for wrapper macros.
+ * man/roff.man, src/roff/troff/troff.man, src/roff/groff/groff.man,
+ NEWS, doc/groff.texinfo: Updated and minor fixes.
+
+ * Makefile.comm, Makefile.in: Added tmac_{s,an}_prefix stuff again.
+ * tmac/Makefile.sub: Added `wrap' stuff again, but installing into
+ $(systemtmacdir) since the wrapper files are platform-dependent.
+
+2000-11-01 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix typo.
+
+2000-10-26 Werner LEMBERG <wl@gnu.org>
+
+ Convert macros `tmac.XXX' to `XXX.tmac'. Special cases:
+ tmac.doc.old -> doc-old.tmac
+ tmac.an.old -> an-old.tmac
+
+ * tmac/tmac.*: Moved to ...
+ * tmac/*.tmac: this.
+ * tmac/man.local: Fix comment.
+ * tmac/groff_man.man, tmac/groff_markup.man, tmac/groff_mdoc.man,
+ tmac/groff_me.man, tmac/groff_ms.man, tmac/groff_tmac.man: Updated.
+ Added some `FILES' sections. More use of @...@ directives. Other
+ minor updates.
+ * arch/djgpp/README, font/devutf8/NOTES: Updated.
+ * doc/homepage.ms, doc/groff.texinfo: Updated.
+ * man/groff.man, man/roff.man: Updated.
+ * src/devices/grodvi/grodvi.man, src/devices/grolbp/grolbp.man,
+ src/devices/grolj4/grolj4.man, src/devices/grops/grops.man,
+ src/devices/grotty/grotty.man: Updated.
+ * src/preproc/pic/pic.man: Updated.
+ * src/roff/grog/grog.pl, src/roff/grog/grog.sh: Use -mdoc-old
+ instead of -mdoc.old.
+ * src/roff/grog/grog.man: Document -mdoc and -mdoc-old.
+ * src/roff/nroff/nroff.man: Updated.
+ * NEWS: Updated.
+
+ * tmac/fixmacros.sed, tmac/strip.sed: Add explanatory comment.
+
+ * tmac/mm.diff: Removed -- it has no use now since the mm package
+ is part of groff.
+
+ * tmac/*: Removed trailing spaces.
+
+ * arch/djgpp/t-groff.bat: Fix GROFF_TMAC_PATH (hyphen.us is now in
+ the tmac subdirectory also).
+
+ * Makefile.comm, Makefile.in: Remove tmac_{s,an}_prefix stuff.
+ * tmac/Makefile.sub: Adapted to new macro names; removed `wrap'
+ stuff since it is no longer needed.
+
+ * README, PROBLEMS: Updated.
+
+2000-10-25 Werner LEMBERG <wl@gnu.org>
+
+ Invert current behaviour: Search first FOOBAR.tmac, then
+ tmac.FOOBAR.
+
+ * src/roff/troff/input.cc: Introduce MACRO_POSTFIX.
+ (open_mac_file, macro_source): Implement it.
+ * src/roff/troff/troff.man, tmac/groff_tmac.man, man/roff.man,
+ doc/groff.texinfo, NEWS: Document it.
+
+ * src/roff/nroff/nroff.man, src/roff/groff/groff.man, man/groff.man:
+ Small documentation improvements.
+
+ * test-groff: Fix GROFF_TMAC_PATH (hyphen.us is now in the tmac
+ subdirectory also).
+
+ * font/devps/Makefile.sub: Fix rules for dingbats.*map.
+
+2000-10-24 Werner LEMBERG <wl@gnu.org>
+
+ Add local tmac directory (groff/site-tmac).
+
+ * Makefile.in: Add $(localtmacdir).
+ (uninstall_dirs): Add $(localtmacdir).
+ * Makefile.comm (.man.n): Add @LOCALMACRODIR@.
+ * tmac/Makefile.sub (install_data, uninstall_sub): Handle man.local
+ in $(localtmacdir). Create $(localtmacdir).
+ * man/roff.man, src/roff/troff/troff.man, NEWS, doc/groff.texinfo:
+ Updated and minor fixes.
+
+ Rename font/devps/generate/dingbats[r]map to dingbats.[r]map.
+
+ * font/devps/generate/Makefile.sub, arch/djgpp/README: Adjust.
+
+2000-10-23 Werner LEMBERG <wl@gnu.org>
+
+ Move hyphen.us to tmac directory.
+
+ * src/roff/troff/hyphen.us: Removed.
+ * src/tmac/hyphen.us: Added.
+ * src/roff/troff/Makefile.sub, tmac/Makefile.sub: Updated.
+
+ Change installation structure for data files from .../groff/... to
+ .../groff/<version><revision>/... to be conform with other GNU
+ programs.
+
+ * Makefile.in, Makefile.comm, src/utils/indxbib/Makefile.sub,
+ doc/Makefile: Implement it.
+ * aclocal.m4 (GROFF_PAGE): Add test for new directory structure.
+ * configure: Updated.
+ * arch/djgpp/README, font/devutf8/NOTES: Use it.
+ * NEWS: Document it.
+ * man/roff.man, tmac/groff_tmac.man: Use @FONTPATH@, @FONTDIR@, and
+ @MACRODIR@ instead of hard-coded directories.
+
+2000-10-22 Werner LEMBERG <wl@gnu.org>
+
+ Implement $GROFF_BIN_PATH environment variable (which defaults to
+ $bindir) used for child programs of groff and similar wrappers.
+
+ * gendefs.sh: Improve documentation.
+ * Makefile.comm (,man.n), src/include/Makefile.sub (defs.h),
+ src/preproc/eqn/Makefile.sub (neqn),
+ src/roff/nroff/Makefile.sub (nroff): Add $(bindir).
+ * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Implement
+ $GROFF_BIN_PATH.
+ * src/roff/groff/groff.cc (main): Implement $GROFF_BIN_PATH and
+ $GROFF_PATH__ (the latter for communication with troff).
+ * src/roff/troff/input.cc (main): Use $GROFF_PATH__ for $PATH if
+ set.
+ * NEWS, src/roff/nroff/nroff.man, src/roff/groff/groff.man,
+ doc/groff.texinfo: Document it.
+
+ * doc/groff.texinfo: Improve documentation of troff's -a option.
+
+2000-10-17 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/node.cc: Fixed calculation of opminx and fixed
+ non-intrusive eol marker.
+ (troff_output_file::determine_line_limits): New function.
+ (troff_output_file::draw): Use it.
+ * src/roff/troff/env.cc (environment::add_html_tag): Use output() +
+ output_pending_lines() instead of output_line().
+ * src/preproc/eqn/main.cc (do_file): Fix graphic_end().
+ * src/preproc/html2/pre-html.cc (char_buffer::write_file_troff,
+ createImage): Small fixes.
+
+2000-10-14 Werner LEMBERG <wl@gnu.org>
+
+ Replace tmac.safer with a real secure solution.
+
+ * src/roff/troff/input.cc (open_request, opena_request, pipe_source,
+ system_request, pipe_output): Disable requests if in safer mode.
+ * src/roff/groff/groff.cc (main): Remove reference to tmac.safer.
+ * tmac/tmac.safer, tmac/groff_msafer.man: Removed.
+ * tmac/Makefile.sub, NEWS, man/roff.man, tmac/groff_tmac.man,
+ doc/groff.texinfo, src/roff/groff/groff.man,
+ src/roff/troff/troff.man, arch/djgpp/README: Updated.
+
+ * src/devices/grops/ps.cc (main), src/devices/grops/psrm.cc
+ (resource_manager::output_prolog): Replace setenv() with putenv().
+
+2000-10-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libbib/map.c, src/libs/libgroff/getcwd.c,
+ src/libs/libgroff/strtol.c, src/preproc/html2/image.cc,
+ src/preproc/html2/pre-html.cc, src/preproc/html2/pushbackbuffer.cc,
+ src/roff/groff/pipeline.c: Removing `#ifndef errno' to avoid
+ compilation errors with some compilers. It seems that this code
+ is no longer necessary -- if yes, it is easy to add some #ifdef's
+ for that particular old-fashioned compiler.
+
+ * MORE.STUFF: Added info about Meta-tbl.
+
+ * doc/groff.texinfo: Added more info about `.if "..."..."'.
+
+2000-10-07 Werner LEMBERG <wl@gnu.org>
+
+ Adding a new escape sequence \B'...': If the string between
+ the delimiters is a valid numeric expression, return the character
+ `1', and `0' otherwise. This is an analogon to \A.
+
+ * src/roff/troff/input.cc (do_expr_test): Implement it.
+ (token::next): Use it.
+ * src/roff/troff/troff.man, NEWS, man/groff.man: Document it.
+
+ * tmac/tmac.trace: Made independent from escape character.
+
+2000-10-06 Werner LEMBERG <wl@gnu.org>
+
+ Adding a new request .dei: define indirect. The first and second
+ parameter of .dei are taken from string registers instead directly;
+ this very special request is needed to make tmac.trace independent
+ from the escape character (which might even be disabled).
+
+ * src/roff/troff/input.cc (do_define_macro): Implement it.
+ (define_macro_indirect): New function.
+ (init_input_requests): Use it.
+
+ Adding two requests .ecs and .ecr: Save and restore the escape
+ character. These two requests are needed to make tmac.trace
+ independent from the escape character (which might even be
+ disabled).
+
+ * src/roff/troff/input.cc (save_escape_char, restore_escape_char):
+ Implement it.
+ (init_input_requests): Use it.
+
+ * src/roff/troff/troff.man, NEWS, man/groff.man: Updated.
+
+2000-09-22 Ricardo Soares Guimares <ricardo@conectiva.com.br>
+
+ Adding a new option -P and new environment variable GROPS_PROLOGUE
+ to grops, selecting a different prologue file (minor modifications
+ by WL).
+
+ * src/devices/grops/psrm.cc (resource_manager::output_prolog),
+ src/devices/grops/ps.cc (main): Implement it.
+ * src/devices/grops/grops.man, NEWS: Document it.
+
+2000-09-22 Werner LEMBERG <wl@gnu.org>
+
+ * INSTALL: Add info about selecting paper format.
+
+2000-09-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (main): Fixing compiler warning.
+ * src/include/{driver.h, lib.h}: Move inclusion of string.h and
+ strings.h from the former to the latter.
+ * src/devices/grolbp/lpb.cc, src/include/lib.h: Move strncasecmp()
+ stuff from the former to the latter.
+
+2000-09-11 Werner LEMBERG <wl@gnu.org>
+
+ Implementing two new requests .tm1 and .tmc: The former is similar
+ to .tm but can output leading spaces; its syntax is similar to
+ defining a string, i.e., a `"' can be used to mark the beginning of
+ the string to be written to stderr: `.tm1 " test'. The latter is
+ similar to .tm1 but doesn't write out a final newline character.
+
+ * src/roff/troff/input.cc (terminal1, terminal_continue,
+ do_terminal): New functions.
+ (init_input_requests): Use them.
+ * src/roff/troff/troff.man, NEWS, man/groff.man: Updated.
+
+2000-09-09 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.samples.man: Small fixes.
+
+2000-09-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man: Fixing typo.
+
+2000-09-02 Werner LEMBERG <wl@gnu.org>
+
+ Implementing a .nop request which does nothing.
+
+ * src/roff/troff/input.cc (nop_request): New function.
+ (init_input_requests): Use it.
+ * src/roff/troff/troff.man, NEWS, man/groff.man: Updated.
+
+2000-09-01 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added some comments.
+
+2000-08-30 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/TODO: Updated.
+
+2000-08-25 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix comment how to compile the DVI file.
+
+2000-08-25 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * font/devps/generate/Makefile (SHELL): Define explicitly to
+ "/bin/sh", for non-Unix platforms.
+ (extraclean): Use a more portable "" quoting instead of a
+ backslash (which doesn't work on DOS/Windows).
+
+ * font/devlj4/generate/Makefile (extraclean): Ditto.
+
+ * font/devdvi/generate/Makefile (extraclean): Ditto.
+
+2000-08-25 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, doc/groff.texinfo, tmac/groff_tmac.man, man/roff.man,
+ src/roff/troff/troff.man: Document Eli's latest changes.
+
+2000-08-25 Eli Zaretskii <eliz@is.elta.co.il>
+
+ * src/roff/troff/input.cc (open_mac_file, macro_source): Support
+ macro file names of the form NAME.tmac as well as tmac.NAME.
+
+2000-08-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/posix.h: Remove definition of FILENAME_MAX.
+
+ * src/preproc/html2/pre-html.h, pre-html.cc: Add return type to
+ `sys_fatal' and `stop' function().
+
+ * test-groff: Updated.
+
+2000-08-24 Gaius Mulley <gaius@glam.ac.uk>
+
+ Added the new troff command .output <arg> to suppress output (while
+ still obeying motion) and also the opminx, opminy, opmaxx, opmaxy
+ registers (for passing the output dimensions to the output device).
+
+ * src/roff/troff/div.cc (top_level_diversion::output): Use `width'
+ parameter.
+ * src/roff/troff/node.h, src/roff/troff/node.cc
+ (troff_output_file::really_print_line,
+ ascii_output_file::really_print_line,
+ supress_output_file::really_print_line): Use `width' parameter.
+ (troff_output_file::really_on, troff_output_file::really_off,
+ output_file::on, output_file::off, real_output_file::on,
+ real_output_file::off, real_output_file::really_on,
+ real_output_file::really_off): New functions.
+ (real_output_file:public output_file): New variable `output_on'.
+ (real_output_file::begin_page, real_output_file::copy_file,
+ real_output_file::transparent_char, real_output_file::print_line):
+ Use it.
+ (real_output_file::print_line): Use check_output_limits.
+ * src/roff/troff/reg.h, src/roff/troff/request.h,
+ src/roff/troff/input.cc (assign_registers): New function to remove
+ two `goto's.
+ (do_ps_file): Use it.
+ (check_output_limits, reset_output_registers, output_request,
+ init_output_requests): New functions.
+ (init_input_requests): Updated.
+
+ Added new grohtml2 device and html2 preprocessor (coding
+ not yet finished) which will eventually replace grohtml.
+
+ * Makefile.in, tmac/Makefile.sub, tmac/eqnrc, tmac/troffrc-end:
+ Updated.
+ * src/include/htmlindicate.h, src/include/htmlindicate
+ (html_begin_suppress, html_end_suppress): New functions.
+ * src/preproc/tbl/main.cc: Use it.
+ * src/roff/groff/groff.cc: Add support for html2 device (which will
+ automatically invoke the html2 preprocessor).
+ * src/roff/troff/input.cc (is_html2): New variable.
+ * src/roff/troff/troff.h, src/roff/troff/env.h,
+ src/roff/troff/env.cc (environment::add_html_tag): New function
+ (uses `is_html2').
+ (environment::do_break): Use it.
+ * font/devhtml2/*: New files.
+ * src/devices/grohtml2: New device.
+ * src/preproc/html2: New preprocessor.
+ * tmac/tmac.html-tags, tmac/tmac.html2: New files.
+
+2000-08-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grolbp/lbp.cc: Same workaround for sinix as for AIX.
+
+2000-08-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Provide a fix for IRIX to not include
+ groff-getopt.h.
+
+2000-08-18 Werner LEMBERG <wl@gnu.org>
+
+ * configure.in: Don't provide an empty value for SH_SCRIPT_SED_CMD
+ since some non-GNU sed programs can't handle null regexps.
+ * configure, src/preproc/eqn/Makefile.sub,
+ src/roff/grog/Makefile.sub, src/roff/nroff/Makefile.sub: Updated.
+
+ * src/devices/grolbp/lbp.cc: Add an AIX workaround for an autoconf
+ bug (string.h and strings.h are both needed according to latest
+ POSIX standard).
+
+ * MORE.STUFF: Added info about unroff and troffcvt.
+
+2000-08-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.a4: Will now work with ms macros also; -ma4 should be
+ used before -ms.
+
+ * tmac/tmac.man.old: Remove unused number register.
+
+ * tmac.doc: Minor documentation fix.
+
+2000-08-07 Paul Eggert <eggert@twinsun.com>
+
+ * src/roff/groff/pipeline.c (is_system_shell):
+ Fix typo: "monocased_shell" no longer exists.
+
+2000-08-07 Paul Eggert <eggert@twinsun.com>
+
+ Remove FILENAME_MAX limits.
+
+ * src/roff/groff/pipeline.c (is_system_shell): Do not assume
+ that the argument length is less than FILENAME_MAX.
+ * src/libs/libgroff/tmpfile.cc (add_tmp_file): Likewise.
+ Use struct hack to allocate and free file name.
+ (struct xtmpfile_list): fname is now part of the structure,
+ not a pointer to another string.
+
+2000-08-07 Tom Schmidt <tschmidt@micron.com>
+
+ * src/include/posix.h: Add a default value for FILENAME_MAX.
+
+2000-08-06 Paul Eggert <eggert@twinsun.com>
+
+ Add support for new BSD-style man pages (with ".Dd" instead of
+ ".TH"), so that "groff -man" understands both styles, even
+ when running "groff -man" on a host whose system man page
+ macros don't support ".Dd".
+
+ * tmac/Makefile.sub (NORMALFILES): Add tmac.an.old.
+ (stamp-wrap): Source tmac.andoc first when wrapping man macros,
+ in case the system man macros don't define Dd or TH.
+
+ * tmac/tmac.an.old: Renamed from tmac/tmac.an.
+ * tmac/tmac.an: New one-line file.
+ * tmac/tmac.andoc (TH): Adjust to the tmac.an.old file renaming.
+
+2000-08-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man: Fixing typos.
+
+Copyright 2000-2001 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:
+coding: latin-1
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.118 b/ChangeLog.118
new file mode 100644
index 0000000..a87d02c
--- /dev/null
+++ b/ChangeLog.118
@@ -0,0 +1,3803 @@
+
+Version 1.18.1 released
+=======================
+
+2002-10-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/webpage.ms, NEWS: Updated.
+
+2002-10-07 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-common (Ss): Add final `.ns' (similar to `.Sh') to
+ suppress additional whitespace after the header.
+
+ * tmac/doc-ditroff, tmac/doc-nroff (Am): New string to be in sync
+ with NetBSD.
+
+ * src/preproc/grn/grn.man, tmac/groff_mdoc.man, NEWS: Updated.
+
+2002-10-07 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common(doc-volume-operating-system-ateol): New flag.
+ (Dt): Use it to improve language localization (especially Russian
+ and French).
+
+2002-10-07 Daniel Senderowicz <daniel@synchrods.com>
+
+ * src/preproc/grn/gprint.h (BSPLINE, BEZIER): New macros.
+ * src/preproc/grn/hdb.cc (DBGetType): Parse spline and bezier
+ drawing commands.
+ * src/preproc/grn/hgraph.cc (drawwig): Add parameter to control
+ curve type.
+ Call `picurve' for BSPLINE.
+ (HGPrintElt): Handle BSPLINE.
+ * src/preproc/grn/README: Document it.
+
+2002-10-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (break_char_node::col): New variable.
+ Updated constructor.
+ (space_node::tprint, word_space_node::tprint): Call `fill_color'
+ unconditionally.
+ (space_node::space_node): Remove assertion.
+ (break_char_node::add_self): Pass color argument to space node.
+ * src/roff/troff/input.cc (token::add_to_node_list, token::process):
+ Ditto.
+ * src/roff/troff/env.cc (environment::do_break,
+ environment::add_padding): Ditto.
+
+2002-10-02 Werner LEMBERG <wl@gnu.org>
+
+ Redesigning color support in troff. Colors are no longer
+ represented as separate nodes but are now part of glyph nodes and
+ friends. This fixes the current formatting misbehaviour due to the
+ changes introduced on 2002-09-20. Some extra code is necessary for
+ proper grotty support: Without adding color variables to
+ space-related nodes, the background color would be changed too late.
+
+ * src/roff/troff/node.h, src/roff/troff/node.cc:
+ s/current_pagecolor/current_fill_color/.
+ s/current_glyphcolor/current_glyph_color/.
+ (glyph_color_node, fill_color_node): Removed.
+ (node::get_glyph_color, node::get_fill_color): New virtual member
+ functions.
+ (space_node::col): New variable.
+ Updated constructors of space_node and derived classes accordingly.
+ (hmotion_node::col): New variable.
+ Updated constructors of hmotion_node and space_char_hmotion_node
+ accordingly.
+ (vmotion_node::col): New variable.
+ Updated constructor accordingly.
+ (draw_node::gcol, draw_node::fcol): New variables.
+ Updated constructor accordingly.
+ (special_node::gcol, special_node::fcol): New variables.
+ Updated constructors accordingly.
+ (troff_output_file::put_char, troff_output_file::put_charwidth,
+ troff_output_file::draw): Set glyph and fill color.
+ (troff_output_file::start_special): Set glyph and fill color.
+ Always set current font.
+ (troff_output_file::fill_color, troff_output_file::glyph_color):
+ Don't call `do_motion'.
+ (glyph_node::gcol, glyph_node::fcol): New variables.
+ Updated constructors of glyph_node and ligature_node accordingly.
+ (glyph_node::get_glyph_color, glyph_node::get_fill_color): New
+ member functions.
+ (glyph_node::merge_glyph_node,
+ kern_pair_node::add_discretionary_hyphen,
+ node::add_discretionary_hyphen): Updated.
+ (break_char_node::merge_self): Updated.
+ (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
+ vmotion_node::tprint): Handle color.
+ (make_glyph_node, make_node, node::add_char): Updated.
+
+ * src/roff/troff/env.cc (environment::space_newline,
+ environment::space, environment::output_line, environment::do_break,
+ environment::make_tab_node, environment::add_padding, title):
+ Updated.
+ (environment_switch, environment_copy): Don't add color nodes.
+
+ * src/roff/troff/input.cc (do_glyph_color, do_fill_color): Return
+ nothing.
+ (token::next): Updated.
+ \m and \M now are as transparent as \s.
+ (process_input_stack, token::add_to_node_list, token::process,
+ read_draw_node): Updated.
+ (charinfo_to_node_list): Don't add color nodes.
+
+ * doc/groff.texinfo: Updated.
+
+2002-09-27 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common (ds-operating-system-FreeBSD-4.*): New version
+ strings.
+
+2002-09-27 Colin Watson <cjwatson@debian.org>
+
+ * src/roff/troff/node.cc (bracket_node::copy): Check `list' != 0.
+
+2002-09-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grolbp/lbp.cc: Replace `300' with `font::res' where
+ appropriate.
+ (DEFAULT_LINEWIDTH_FACTOR): New macro.
+ (linewidth_factor): New global variable.
+ (lbp_printer::set_line_thickness): Fix case for size < 0, using
+ linewidth_factor.
+ (long_options): Add -w/--linewidth option.
+ (usage): Updated.
+ (main): Handle -w option to set linewidth_factor.
+ (lbp_printer::lbp_printer): Initialize req_linethickness, not
+ line_thickness.
+
+ * src/devices/grolbp/grolbp.man, NEWS, doc/webpage.ms: Updated.
+
+2002-09-22 Paco Andrs Verd <pandres@dragonet.es>
+
+ Fixed a bug in the line thickness setting code.
+
+ * src/devices/grolbp/lbp.cc (lbp_printer::req_linethickness): New
+ variable.
+ (lbp_printer::set_line_thickness): Pass environment as second
+ parameter.
+ Implement it actually.
+ (lpb_printer::set_char, lbp_printer::draw): Use `req_linethickness'
+ and `set_line_thickness, depending on the current font size.
+
+2002-09-21 Werner LEMBERG <wl@gnu.org>
+
+ Some Debian patches.
+
+ * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase to 12.
+ * src/roff/troff/node.cc (bracket_node::copy): Initialize
+ `list->last'.
+
+2002-09-20 Werner LEMBERG <wl@gnu.org>
+
+ * configure: Regenerated with autoconf 2.54.
+
+2002-09-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.h (environment): Rename cur_glyph_color to
+ glyph_color.
+ Rename cur_fill_color to fill_color.
+ * src/roff/troff/env.cc: Updated.
+
+2002-09-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cc (title): Copy color status after processing
+ title.
+ * src/roff/troff/input.cc (charinfo_to_node_list): Emit glyph and
+ fill color nodes to reset colors properly.
+
+ * tmac/www.tmac (DC): Fix color handling.
+
+ * src/preproc/pic/pic.man, doc/pic.ms: Document some color issues.
+ * doc/groff.texinfo: Fixing documentation of `tl' request.
+ * doc/webpage.ms: Updated.
+
+2002-09-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cc (environent_switch, environment_copy):
+ Emit glyph and fill color nodes to initialize colors properly.
+
+2002-09-17 Colin Watson <cjwatson@debian.org>
+
+ * src/roff/troff/env.cc (environment::set_glyph_color,
+ environment::set_fill_color): Fix typo which prevented \m[] work
+ correctly.
+
+2002-09-17 Werner LEMBERG <wl@gnu.org>
+
+ Add left and right italic correction to non-slanted PS fonts. This
+ is an experimental feature to improve image rendering of grohtml.
+
+ * font/devps/generate/Makefile (RFLAG): New variable, set to `-i 0'.
+ ({T,H,C,P,N,BM,A,HN}{R,B}, ZD, S, ZDR): Use it.
+ * font/devps/*: All non-slanted fonts regenerated.
+ * NEWS: Updated.
+
+2002-09-16 Werner LEMBERG <wl@gnu.org>
+
+ Add a site-specific font directory.
+
+ * Makefile.in (localfontdir, legacyfontdir): New variables.
+ (fontpath): Use them.
+ (MDEFINES, uninstall_dirs): Updated.
+ * Makefile.comm (.man.n): Add `LOCALFONTDIR' and `LEGACYFONTDIR'.
+ Remove `FONTPATH' and `MACROPATH'.
+
+ * src/roff/troff/troff.man, NEWS: Updated.
+ * doc/groff.texinfo (Font Directories): New section.
+ Other minor fixes.
+
+ * src/devices/grodvi/grodvi.man, src/devices/grohtml/grohtml.man,
+ src/devices/grolbp/grolbp.man, src/devices/grolj4/grolj4.man,
+ src/preproc/grn/grn.man: Minor fixes.
+
+ * src/devices/grohtml/post-html.cc (html_printer::do_tab_ts):
+ Remove unused variable.
+
+2002-09-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo, man/groff_font.man: Clarify argument of \N.
+ * man/groff_out.man: Fix documentation of 'N'.
+
+2002-09-09 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/Makefile.in (webpage.html): Depend on gnu.eps also.
+ * src/roff/troff/env.cc (indent): Emit html tag only if break_flag is
+ set.
+ * src/devices/grohtml/post-html.cc (text_glob::is_br_ni): Removed.
+ (text_glob::is_br, html_printer::lookahead_for_tables): Updated.
+ (html_printer::do_tab_ts): Call `emit_table_header' with `FALSE'.
+ * src/devices/grohtml/html-text.cc (html_text::start_tag) <P_TAG,
+ PRE_TAG>: Call `begin' with `FALSE'.
+
+2002-09-09 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/libs/libgroff/string.cc (string::extract): Fix position of
+ terminating null byte.
+
+2002-09-08 Werner LEMBERG <wl@gnu.org>
+
+ Add global option `nospaces' to tbl so that leading and trailing
+ spaces in data items are ignored.
+
+ * src/libs/libgroff/string.cc (string::remove_spaces): New member
+ function to remove leading and trailing spaces.
+ * src/include/stringclass.h: Updated.
+
+ * src/preproc/tbl/table.h (table): Add flag `NOSPACES'.
+
+ * src/preproc/tbl/main.cc (process_options): Handle `nospaces'
+ option.
+ Fix typo in error messages.
+ (process_data): Implement `nospaces' option.
+ * src/preproc/tbl/tbl.man, NEWS, doc/webpage.ms: Updated.
+
+2002-09-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/config.hin: Add `HAVE_ISATTY'.
+ * src/libs/libgroff/tmpfile.cc (xtmpfile_list): Drop `const' for
+ `fname' member.
+ * src/libs/libgroff/tmpname.cc: Include `time.h'.
+ * src/libs/libdriver/input.cc (Char): Add `operator==' and
+ `operator!=' for `char'.
+ * doc/groff.texinfo: Replace @ifnottex block for top node with
+ @ifhtml block.
+
+2002-09-06 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.in (.texinfo.html): Add -I switch.
+ * doc/groff.texinfo: Add @ifnottex block for top node to make
+ translation to HTML work.
+
+2002-09-05 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/preproc/html/pre-html.cc (LETTER_LENGTH): Removed.
+ (get_papersize, determine_vertical_offset): Removed.
+ (char_buffer::do_image): Always specify letter size.
+ (main): Updated.
+ (imageList::createPage): Use -dDEVICEHEIGHTPOINTS instead of
+ -sPAPERSIZE.
+
+2002-09-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo, tmac/groff_man.man: Improve documentation of
+ default indentation.
+
+2002-09-04 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/preproc/html/pre-html.cc (imageList::createPage): Use
+ -sPAPERSIZE for gs.
+ (generateImages): Clean up push-back buffer.
+
+2002-09-04 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * doc/groff.texinfo: Minor fixes.
+
+2002-08-21 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/preproc/html/pre-html.cc (DEFAULT_LINE_LENGTH): New macro.
+ (MAX_WIDTH, A4_LENGTH, A4_OFFSET, LETTER_OFFSET): Removed.
+ (gsPaper): Removed.
+ (determine_vertical_offset): Use LETTER_LENGTH.
+ (createPage): Moved to ...
+ (imageList::createPage): This.
+ Call gs with -dDEVICEWIDTHPOINTS to avoid cropping.
+ (imageList::getMaxX): New function.
+ (createImage): Moved to ...
+ (imageList::createImage): This.
+ (imageList::createImages): New function.
+ (generateImages): Read `maxx' directly.
+ Updated.
+ (scanArguments): Don't specify `gsPaper' for `-o'.
+ (makeTempFiles): Call `xtmpfile' with the last argument set to
+ `TRUE'.
+
+2002-08-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/nonposix.h (mkdir, WAIT, creat) [_MSC_VER]: Define.
+ (WAIT, _WAIT_CHILD) [!_MSC_VER]: Define.
+ * src/preproc/html/pre-html.cc (waitForChild): Use WAIT.
+ * src/preproc/html/pushback.cc: Include nonposix.h.
+ * src/roff/groff/pipeline.c: Define strcasecmp and strncasecmp
+ conditionally.
+
+2002-08-23 Werner LEMBERG <wl@gnu.org>
+
+ Use $(OBJEXT) for the object file extension.
+
+ * Makefile.comm (.SUFFIXES): Add .obj.
+ (.cc.obj, .c.obj): New implicit rules.
+ * Makefile.in (OBJEXT): New variable, initialized from autoconf.
+ (MDEFINES): Add EXEEXT and OBJEXT.
+ * */Makefile.sub: s/.o/.$(OBJEXT)/.
+
+2002-08-22 Werner LEMBERG <wl@gnu.org>
+
+ * INSTALL: Mention texinfo 4.2 as a prerequisite.
+
+2002-08-21 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cc (colType): Make enum global to
+ the file.
+ (html_printer::update_min_max, html_printer::add_table_end): New
+ methods.
+ (html_printer::lookahead_for_tables): Use them.
+ Reset page offset correctly.
+ (html_printer::~html_printer): Add creation of creator comment up.
+
+2002-08-20 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (T&): New dummy macro to avoid warning.
+ * man/groff_tmac.man: Fix typos.
+ * man/groff_font.man: Minor reordering.
+ * contrib/eqn2graph/eqn2graph.man (Tp): New macro.
+
+2002-08-18 Gaius Mulley <gaius@glam.ac.uk>
+
+ Avoid endless loops while scanning for tables.
+
+ * src/devices/grohtml/post-html.cc (list::insert): Set
+ ptr->right->left.
+ (html_printer::next_horiz_pos): Add `text_glob' argument; update
+ all callers.
+ Return immediately if that argument is NULL.
+ (html_printer::calc_nf): Don't test if `g' is NULL.
+ (html_printer::lookahead_for_tables): Use
+ `glyphs.move_right_get_data'.
+ Don't test if `g' is NULL.
+
+2002-08-18 Gaius Mulley <gaius@glam.ac.uk>
+
+ A better fix, replacing fix 2002-08-15, for increasing SIZE.
+
+ * src/devices/grohtml/post-html.cc (char_block): Make `buffer'
+ a pointer.
+ (char_block::char_block): Allocate `buffer'.
+ (char_buffer::add_string): Use it.
+
+2002-08-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/grops.man, src/devices/grolj4/grolj4.man,
+ src/devices/grodvi/grodvi.man: Document default line thickness.
+
+2002-08-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cc (char_block): Increase SIZE to
+ 8192.
+
+2002-08-14 Werner LEMBERG <wl@gnu.org>
+
+ * doc/webpage.ms: Updated.
+
+2002-08-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (node::add_char): Call `freeze_space' for
+ unbreakable space.
+
+2002-08-08 Aaron Campbell <aaron@monkey.org>
+
+ * src/preproc/pic/object.cc (object_spec::make_move): Fix typo
+ (&& -> &).
+
+2002-08-08 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (read_rgb, read_cmy, read_cmyk): Call
+ tok.next().
+ (read_gray): Ditto.
+ Don't push back a space but a newline onto the stack.
+
+2002-08-07 Gaius Mulley <gaius@glam.ac.uk>
+
+ Add fonts `CI', `CB', and `CBI' to grohtml which have been omitted
+ inadvertently.
+
+ * src/devices/grohtml/post-html.cc (html_printer::end_font,
+ html_printer::start_font): Handle them.
+ * src/devices/grohtml/html-text.cc (html_text::do_italic): Don't
+ reset bold and tt.
+ (html_text::do_bold): Don't reset italic and tt.
+ (html_text::do_tt, html_text::do_pre): Don't reset bold and italic.
+ * font/devhtml/DESC.proto: Add those fonts.
+ * font/devhtml/Makefile.sub (PROTOFONTS): Updated.
+
+2002-08-07 Werner LEMBERG <wl@gnu.org>
+
+ * MORE.STUFF: Added gpresent.
+
+ * tmac/trace.tmac: Show nesting level by a corresponding amount of
+ whitespace before printing the logging message.
+
+2002-07-31 Colin Watson <cjwatson@debian.org>
+
+ * src/devices/grohtml/html-table.cc (html_table::finish_row):
+ Initialize `n' to zero. This fixes a segfault on ARM.
+
+2002-07-30 Werner LEMBERG <wl@gnu.org>
+
+ * doc/grnexmpl.me: Remove calls to .st and .sc which are undefined.
+
+2002-07-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.y (print_arg, relative_path): Add missing
+ final semicolon.
+
+2002-07-28 Colin Watson <cjwatson@debian.org>
+
+ * src/devices/grohtml/post-html (html_printer::troff_tag): Handle
+ `.ps'.
+ (html_printer::html_printer): Initialize `pointsize'.
+
+2002-07-26 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (PROCESSEDEXAMPLEFILES): Remove gnu.eps and
+ gnu.png.
+ (CLEANNOTSRCDIRADD): Add gnu.eps and gnu.png.
+ (gnu.eps): Add -rle switch to pnmtops.
+ (distfiles): Add gnu.eps and gnu.png.
+
+2002-07-25 Petter Reinholdtsen <pere@hungry.com>
+
+ * src/libs/libdriver/input.cc (Char): Add const to `operator=='.
+ Add `operator!='.
+
+2002-07-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.in, doc/Makefile.sub (groff_bin_path): Don't use
+ ' \+' but ' *' for sed.
+ (GROFF): Set GROFF_COMMAND_PREFIX to empty value.
+
+2002-07-23 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Document `papersize' keyword.
+ * NEWS, man/groff_font.man: Updated.
+
+2002-07-23 Colin Watson <cjwatson@debian.org>
+
+ Extend papersize keyword to accept more than a single entry. The
+ first valid will be used.
+
+ * src/libs/libgroff/font.cc (font::load_desc): Implement it.
+ (font::scan_papersize): Really skip final newline.
+ * src/preproc/html/pre-html.cc (get_papersize): Ditto.
+
+2002-07-23 Werner LEMBERG <wl@gnu.org>
+
+ * configure.ac: Test for isatty.
+ * configure: Regenerated.
+ * src/include/posix.h: Check HAVE_ISATTY.
+ * src/roff/troff/input.cc [ISATTY_MISSING]: Removed.
+ * src/utils/lookbib/lookbib.cc: Include posix.h.
+ Don't declare isatty.
+
+2002-07-21 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Add `output' request.
+
+ * REVISION: Increased to 1.
+
+Version 1.18.0 released
+=======================
+
+2002-07-19 Gaius Mulley <gaius@glam.ac.uk>
+
+ Allow internal glyph indices > 0xFF in grohtml for input characters.
+
+ * src/devices/grohtml/post-html.cc (to_unicode): Use `unsigned int'
+ as parameter.
+ (html_printer::add_to_sbuf): Use `unsigned int' as first parameter.
+ Updated all callers.
+ (html_printer::sbuf_continuation, html_printer::overstrike): Ditto.
+ (html_printer): Updated.
+
+2002-07-19 Werner LEMBERG <wl@gnu.org>
+
+ * font/devhtml/R.proto: Updated to HTML 4, adding many glyphs.
+ * font/devutf8/R.proto: Adding some missing glyphs.
+ * font/devutf8/NOTES: Updated.
+
+ * tmac/dvi.tmac: Add more composite glyphs.
+ * tmac/html.tmac: Updated.
+
+ * man/groff_char.man: Add `sum' and `product' entities.
+
+ * NEWS: Updated.
+
+2002-07-18 Gaius Mulley <gaius@glam.ac.uk>
+
+ Improved table, tab, and indenting support.
+
+ * src/roff/troff/input.cc (file_iterator::suppress_newline_flag,
+ string_iterator::suppress_newline_flag): Removed. Updated all
+ function which have used it.
+
+ * src/roff/troff/env.cc: Include `input.h'.
+ (environment::add_node): Accept 0 as parameter.
+ (environment::add_html_tag): Add `force' parameter.
+ Updated all callers.
+ (environment::add_html_tag_tabs): Ditto.
+ For the moment, support left-aligned tabs only.
+ (environment::make_html_tag): New function.
+ (fill, no_fill): Set .br html tag additionally.
+ (environment::newline): Emit `eol.ce' or `eol' tag for html.
+ (environment::add_html_tag_eol): Removed.
+ (tab_stops::distance_to_next_tab): Add variant for handling
+ nextpos'.
+ (environment::distance_to_next_tab): Ditto.
+ Updated all callers.
+ (environment::handle_tab): Handle tabs for html.
+
+ * src/roff/troff/env.h: Updated.
+
+ * src/roff/troff/div.cc: Updated all callers of
+ `environment::add_html_tag'.
+
+ * src/devices/grohtml/html-table.cc,
+ src/devices/grohtml/html-table.h: New files.
+
+ * src/devices/grohtml/html-text.cc (html_text): New members
+ `blank_para' and `start_space'.
+ (html_text::issue_tag): Don't emit TABLE_TAG.
+ Handle indentation for PRE_TAG and P_TAG.
+ (html_text::end_tag): Updated.
+ (html_text::table_is_void, html_text::issue_table_begin,
+ html_text::issue_table_end): Removed.
+ (html_text::do_push): Simplified.
+ [DEBUGGING]: Small fix.
+ (html_text::push_para): Add new parameter for indentation; updated
+ all callers.
+ Handle PRE_TAG.
+ (html_text::do_indent, html_text::do_table, html_text::done_table,
+ html_text::is_in_table): Removed.
+ (html_text::do_pre): Handle P_TAG also.
+ (html_text::shutdown): Handle p->indent.
+ (html_text::check_emit_text): Simplified.
+ (html_text::do_emittext): Reset `blank_para'.
+ (html_text::do_para): Add new parameter for indentation; updated
+ all callers.
+ (html_text::remove_indent): New function.
+ (html_text::do_space): Handle verbatim text properly.
+ (html_text::ever_emitted_text, html_text::starts_with_space,
+ html_text::remove_para_align): New functions.
+ (html_text::dump_stack_element, html_text::dump_stack): Updated.
+
+ * src/devices/grohtml/html_text.h (HTML_TAG): Remove TABLE_TAG.
+ Updated.
+
+ * src/devices/grohtml/post-html.cc: Include html-table.h.
+ (INDENTATION): Removed.
+ (text_glob): Added many `is_<foo>' functions.
+ Added table description `tab'.
+ Added `get_arg',`get_tab_args', `remember_table', and `get_table'
+ member functions.
+ (list): Add `insert' and `move_to' member functions.
+ (page): Add `insert_tag' member function.
+ (page::dump_page) [DEBUG_TABLES]: Improved.
+ (html_printer): Add `table' and `max_linelength' elements.
+ Add many `do_<foo>', `insert_<foo>', `next_horiz_pos',
+ `lookahead_for_tables', `shutdown_table', `calc_nf', `calc_po_in',
+ `remove_tabs', `remove_courier_tabs'.
+ (html_printer::emit_raw): Handle indentation.
+ (html_printer::do_center, html_printer::write_header): Updated.
+ (html_printer::is_courier_until_eol): Check for tag.
+ (html_printer::do_linelength): Handle max_linelength.
+ (html_printer::do_page_offset, html_printer::do_indentation): Handle
+ fill_on.
+ (html_printer::do_tempindent): Updated.
+ (html_printer::do_indentedparagraph): Removed.
+ (html_printer::do_indent): Simplified.
+ (html_printer::do_eol): Use `ever_emitted_text'.
+ (html_printer::do_flush, html_printer::do_links): Don't call
+ done_table.
+ (html_printer::do_break): Handle end_tempindent.
+ (html_printer::troff_tag): Get argument.
+ Don't handle `.ip'.
+ Handle `.tab-ts', `.tab-te', `.col', `tab', and `tab0' tags.
+ (html_printer::flush_page): Call `lookahead_for_tables'.
+ Don't call `done_table'.
+ (html_printer::add_to_sbuf): Always call do_indent.
+
+ * src/devices/grohtml/Makefile.sub: Updated.
+
+ * tmac/an-old.tmac (TP): Don't handle html device specially.
+ (an-do-tag-html): New function which will be used instead of
+ `an-do-tag' if html device is used.
+
+ * tmac/html.tmac: Call .po to pass default page offset to grohtml.
+
+ * tmac/s.tmac (@IP): Don't handle html device specially.
+ (@IP-html): New function which will be used instead of `@IP' if
+ html device is used.
+
+ * tmac/www.tmac (HTML-NS, HTML-TAG-NS): New auxiliary macros -- this
+ is a hack which will eventually vanish again.
+ (PIMG): Handle `-C' option correctly if not html.
+ (HR): Use HTML-NS.
+
+2002-07-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.pl: Don't use `-P-' for invoking perl.
+
+2002-07-14 Eric S. Raymond <esr@thyrsus.com>
+
+ * contrib/pic2graph/pic2graph.*: Use convert(1).
+ * contrib/eqn2graph/eqn2graph.*: Minor fixes.
+
+2002-07-14 Bernd Warken <bwarken@mayn.de>
+
+ * tmac/groff_trace.man: New file.
+ * tmac/Makefile.sub: Updated.
+ * NEWS: Updated.
+
+2002-07-13 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man: Add some cross references.
+
+2002-07-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (substring_request): Add warnings for
+ string indices out of range.
+
+2002-07-11 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/ec.map: Fix typo (`(l' -> `/l').
+ * font/devdvi/*EC: Regenerated.
+
+2002-07-10 Bernd Warken <bwarken@mayn.de>
+
+ * man/groff_char.man: Updated and extended.
+
+2002-07-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (length_macro): Renamed to...
+ (length_request): This.
+ Move call of `tok.next()' to the very end, otherwise the register
+ value hasn't been updated yet.
+ (init_input_requests): Updated.
+
+2002-07-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (substring_macro): Renamed to...
+ (substring_request): This.
+ (init_input_requests): Updated.
+ * src/roff/troff/request.h: Updated.
+
+2002-07-08 Robert D. Goulding <goulding@Princeton.EDU>
+
+ * src/roff/grog/grog.sh: Fix typo.
+
+2002-07-08 Werner LEMBERG <wl@gnu.org>
+
+ * win32-diffs: Updated.
+
+ Handle `papersize' keyword properly in DESC.
+
+ * src/libs/libgroff/font.cc (font::scan_papersize): Fix argument
+ type.
+ Updated all callers.
+ * src/libs/libgroff/paper.cc: Add four more paper formats used by
+ grolj4.
+ * src/include/paper.h: Updated.
+
+ * src/devices/grolbp/lbp.cc: Remove unnecessary semicolons.
+ Other minor C syntax fixes.
+ (papersize, paperlength, paperwidth): Renamed to `user_*'.
+ (lbp_printer): Add `papersize', `paperlength', and `paperwidth'
+ members.
+ (lbp_printer::lbp_printer): Pass three arguments.
+ Set paper dimensions properly.
+ (make_printer, main): Updated.
+ (handle_unknown_desc_command): Fix error messages.
+ (main): Handle papersize keyword in DESC properly.
+
+ * src/devices/grolj4/lj4.cc (paper_size): Renamed to
+ `user_paper_size'.
+ (lbp_printer::lbp_printer): Pass an argument.
+ Set paper_size properly.
+ (handle_unknown_desc_command): Removed.
+ (make_printer, main): Updated.
+ * src/devices/grolj4/grolj4.man: Minor documentation fix.
+
+ * man/groff_font.man, NEWS: Updated.
+
+2002-07-07 Werner LEMBERG <wl@gnu.org>
+
+ Integrated eqn2graph, contributed by Eric S. Raymond.
+
+ * contrib/eqn2graph/{Makefile.sub, eqn2graph.sh, eqn2graph.man}: New
+ files.
+ * Makefile.in, NEWS: Updated.
+
+2002-06-04 Werner LEMBERG <wl@gnu.org>
+
+ Changing the substring request to make it fit better with other
+ string manipulation functions in other programming languages:
+ Index 0 is now the first character in the string, and index -1
+ indicates the last character. Since this request didn't work
+ properly anyway in the last release, it doesn't harm too much to
+ change the syntax.
+
+ * src/roff/troff/input.cc (substring_macro): Use loops to get
+ the real string length (ignoring COMPATIBLE_SAVE and
+ COMPATIBLE_RESTORE) and offsets.
+ Implement change described above.
+
+ * man/groff_char.man, tmac/doc-common (doc-header), tmac/doc.tmac
+ (doc-do-Bd-args, doc-do-Bl-args): Changed accordingly.
+
+ * NEWS, doc/groff.texinfo, man/groff_diff.man: Updated.
+
+2002-06-03 Werner LEMBERG <wl@gnu.org>
+
+ Make .chop work with .de1 and friends. COMPATIBLE_SAVE and
+ COMPATIBLE_RESTORE are completely ignored.
+
+ * src/roff/troff/input.cc (char_list::set, char_list::get): New
+ functions.
+ (macro): `length' field renamed to `len'.
+ Added new field `empty_macro' (1 if macro is empty), to be used
+ instead of checking `len'.
+ Updated all callers.
+ (macro::empty): Updated.
+ (macro::length, macro::set, macro::get): New functions.
+ (macro::append): Ignore COMPATIBLE_SAVE and COMPATIBLE_RESTORE.
+ Set `empty_macro'.
+ (chop_macro): Check and remove trailing COMPATIBLE_SAVE/
+ COMPATIBLE_RESTORE pairs.
+ (asciify): Ignore COMPATIBLE_SAVE and COMPATIBLE_RESTORE.
+ * src/roff/troff/request.h: Updated.
+
+ * doc/groff.texinfo: Document .chop's behaviour better.
+
+2002-06-02 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Fix documentation for the addition of positions.
+
+ * tmac/doc.tmac, tmac/an-old.tmac: Need groff version 1.18.
+
+2002-06-29 Werner LEMBERG <wl@gnu.org>
+
+ Implementation of string arguments of the form \*[foo arg1 arg2 ...]
+
+ * src/roff/troff/input.cc (have_string_arg): New global variable.
+ (read_mode): New enumeration.
+ (read_escape_name): Use it. Update all calls.
+ (read_long_escape_name): Use it. Update all calls.
+ Set have_string_arg if appropriate.
+ (get_char_for_escape_name): Add parameter for handling space
+ character.
+ (interpolate_string_with_args, decode_string_args): New functions.
+ (get_copy, token::next): Call it if necessary.
+ (interpolate_string): Fix error message.
+
+ * NEWS, doc/groff.texinfo, man/groff.man, man/groff_diff.man:
+ Document it.
+
+2002-06-24 Bernd Warken <bwarken@mayn.de>
+
+ * man/groff_tmac.man: Updated and extended.
+
+2002-06-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms, src/preproc/pic/pic.man: Fix description of `:='.
+
+2002-06-23 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Improve documentation of composite block objects.
+
+2002-06-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (init_registers): Add three registers
+ `seconds', `minutes', and `hours' to hold the current time.
+
+ * NEWS, doc/groff.texinfo, man/groff.man, man/groff_diff.man:
+ Updated.
+
+2002-06-20 Werner LEMBERG <wl@gnu.org>
+
+ Make \X accept both `\ ' and `\~', converting them to single space
+ characters.
+
+ * src/roff/troff/token.h (token): Add TOKEN_UNSTRETCHABLE_SPACE.
+ (token::unstretchable_space): New inline function.
+ * src/roff/troff/input.cc (token::next, token::delimiter,
+ token::description, token::add_to_node_list, token::process): Handle
+ TOKEN_UNSTRETCHABLE_NODE.
+ (encode_char): Handle tok.stretchable_space and
+ tok.unstretchable_space.
+
+ * NEWS, doc/groff.texinfo: Document it..
+
+2002-06-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cc (ps_printer::special): Fix error message.
+
+ * src/devices/grotty/tty.cc (tty_printer::special): Add `sgr'
+ keyword to enable/disable SGR output.
+ (tty_printer::change_fill_color): New function.
+ * NEWS, src/devices/grotty/grotty.man: Document `sgr' special.
+
+ * src/roff/troff/input.cc (output_request): Add missing `tok.next()'
+ call.
+
+2002-06-18 Werner LEMBERG <wl@gnu.org>
+
+ Add a `color' request and a `.color' register to control usage of
+ colours.
+
+ * src/roff/troff/input.cc (disable_color_flag): Replaced with...
+ (color_flag): This (which is the inverse).
+ (activate_color): New function.
+ (main, init_input_requests): Updated.
+ * src/roff/troff/troff.h, src/roff/troff/node.cc
+ (troff_output_file::fill_color, troff_output_file::glyph_color):
+ Updated.
+
+ * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
+ Document the changes.
+
+2002-06-17 Colin Watson <cjwatson@debian.org>
+
+ Circumvent bug in autoconf 2.53 regarding top_builddir.
+
+ * aclocal.m4 (GROFF_BUILDDIR): s/top_builddir/groff_top_builddir/.
+ * Makefile.in, doc/Makefile.in:
+ s/@top_builddir@/@groff_top_builddir@/.
+ * configure: Regenerated (with autoconf 2.53).
+
+2002-06-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/font.cc (font::load_desc): Fix computation of
+ `paperwidth' and `paperlength' for the `papersize' keyword.
+
+2002-06-16 P. Alejandro Lopez-Valencia <dradul@007mundo.com>
+
+ * src/devices/grops/grops.man: Add info about Type 42 fonts.
+
+2002-06-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cc (html_printer::emit_raw,
+ html_printer::do_linelength, html_printer::do_pageoffset,
+ html_printer::do_indentation, html_printer::do_tempindent,
+ html_printer::do_break, html_printer::begin_page): Clear indented
+ text.
+ * tmac/html.tmac: Disable hyphenation.
+
+2002-06-15 Werner LEMBERG <wl@gnu.org>
+
+ Don't produce HTML files if utility programs are missing.
+
+ * Makefile.in (make_html, make_install_html): New variables.
+ (MDEFINES): Updated.
+
+ * aclocal.m4 (GROFF_HTML_PROGRAMS): New function to test for HTML
+ utility programs.
+ * configure.ac: Use it.
+ * configure: Regenerated.
+
+ * doc/Makefile.sub (PROCESSEDEXAMPLEFILES): Move webpage.html to...
+ (HTMLEXAMPLESFILES): This new variable.
+ (EXAMPLESIMAGEFILES): Renamed to...
+ (HTMLEXAMPLEIMAGEFILES): This.
+ (CLEANADD): Add HTMLEXAMPLEFILES.
+ (all): Use `make_html'.
+ (html): New target.
+ (install_data): Use `make_install_html'.
+ Move html stuff to...
+ (install_html): This new target.
+ (uninstall_sub): Updated.
+
+2002-06-14 Bernd Warken <bwarken@mayn.de>
+
+ * src/roff/grog/Makefile.sub (grog): Renamed to...
+ (grog.old): This.
+ (grog): New rule to always install grog.sh as grog.
+
+2002-06-08 Bernd Warken <bwarken@mayn.de>
+
+ * src/roff/grog/grog.pl: Fix typo.
+
+2002-06-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Add more info on .tr arguments.
+
+2002-06-05 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, src/roff/grog/grog.man, doc/groff.texinfo: Updated.
+
+ * aclocal.m4 (GROFF_MKSTEMP): Include unistd.h.
+ * configure: Regenerated.
+
+2002-06-05 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/roff/troff/symbol.cc (table_sizes): Add more values.
+
+ * src/roff/grog/grog.pl, src/roff/grog/grog.sh: Recognize mom.
+
+2002-06-04 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_PAGE): Don't use `prefix' directly since it
+ is not initialized at the time we need it in case `--prefix' hasn't
+ been set. Check for `ac_default_prefix' also.
+ Test for `papersize' keyword also and generalize allowed whitespace.
+ * configure: Regenerated.
+
+ * font/devps/Makefile.sub (DESC): Use `papersize' instead of
+ `paperlength'.
+
+ * src/libs/libgroff/Makefile.sub (version, revision): Replaced
+ with...
+ (src_version, src_revision): New variables to avoid overwriting
+ from parent make process.
+ (version.cc): Updated.
+
+ * src/preproc/html/pre-html.cc: Include paper.h and font.h.
+ (linebuf, linebufsize): New global variables.
+ (sys_fatal): Use `fatal' to abort properly.
+ (get_line): New function.
+ (get_resolution): Use it.
+ Improve error messages.
+ (get_papersize): Check `papersize' also.
+ Use `get_line'.
+ Improve error messages.
+
+2002-06-03 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm (CLEANNOTSRCDIRADD): New target for files which
+ should be removed only if builddir is not srcdir.
+ (mostlyclean): Handle `CLEANNOTSRCDIRADD'.
+ (clean): Depend on `mostlyclean'.
+ (distclean): Depend on `clean'.
+ (realclean, extraclean): Depend on `distclean'.
+ (.y.cc, .y.o): Simplified. The output files are no longer written
+ to srcdir but to builddir.
+ * Makefile.in (MDEFINES): Add `version' and `revision'.
+ (uninstall_dirs): Fix order of directories.
+ * doc/Makefile.sub (version, revision): Removed.
+ (CLEANADD): Removed grnexmpl.g, groff, groff-*.
+ Added `HTMLDOCFILES'.
+ (CLEANNOTSRCDIRADD): New target for grnexmpl.h, groff, groff-*.
+ * src/preproc/eqn/Makefile.sub, src/preproc/pic/Makefile.sub,
+ src/preproc/refer/Makefile.sub (YTABC, YTABH): Don't use `srcdir'
+ as prefix.
+
+ * doc/texinfo.tex (\authortt): New macro.
+ (\shortcontt): Define.
+ (\titlepage): Set \tt to \authortt while defining \authorfont.
+ (\appendixbox): New macro.
+ (\chapmacro, \appendixentry): Use \appendixbox to get even
+ indentation for letters.
+ (\summarycontents): Set \tt.
+ (\internalpagesize): Add two arguments for real paper width and
+ height as needed by pdfTeX.
+ (\letterpaper, \smallbook, \afourpaper, \afivepaper, \afourlatex):
+ Updated.
+ (\tempdima, \tempdimb): New temporary dimensions.
+ (\pagesizesyyy): Updated.
+
+2002-06-02 Werner LEMBERG <wl@gnu.org>
+
+ Adding a new keyword `papersize' to the DESC file format (similar
+ but not completely identical to grolbp's extension). grops now has
+ a -p command line option to override `papersize'. Finally, grolbp
+ has been adapted to the new syntax.
+
+ * src/libs/libgroff/paper.cc, src/include/paper.h: New files. It
+ defines and initializes the `papersizes[]' array with NUM_PAPERSIZES
+ elements.
+ * src/libs/libgroff/Makefile.sub (OBJS): Add `paper.o'.
+ (CCSRCS): Add `paper.cc'.
+
+ * src/include/font.h (font): Add `papersize' element.
+ * src/libs/libgroff/font.cc (font::unit_scale): New helper function.
+ (font::scan_papersize): New function.
+ (font::load_desc): Use it for handling `papersize' keyword.
+ * src/libs/libgroff/fontfile.cc: Initialize `font::papersize'.
+
+ * src/devices/grops/ps.cc: Include paper.h.
+ (user_paper_length): New global variable.
+ (ps_printer): Use paper length as initializer.
+ (make_printer): Updated.
+ (main): Handle new `-p' option.
+ * src/devices/grops/grops.man: Updated.
+
+ * src/devices/grolbp/lbp.cc: Include paper.h.
+ s/papersizes/lbp_papersizes/.
+ (set_papersize): Use new `papersizes' array.
+ (handle_unknown_desc_command): Don't handle `papersize'.
+ (main): Use `font::scan_papersize' for handling `-p' option.
+ * src/devices/grolbp/grolbp.man: Updated.
+
+ * man/groff_font.man: Document `papersize'.
+ * NEWS: Updated.
+
+2002-05-30 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/TODO: Updated.
+ * src/devices/grops/grops.man: More info on paper formats.
+ * man/groff_font.man: Document `paperheight' and `paperwidth'.
+
+2002-05-29 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (CLEANADD): Add grnexmpl.g, groff, and groff-*
+ to list only if srcdir != currdir.
+ (distfiles): New target.
+
+ * Makefile.in (EXTRADIRS): Add font/devlj4/generate.
+ (NOMAKEDIRS): New variable.
+ (DISTDIRS): Use it.
+
+2002-05-26 Werner LEMBERG <wl@gnu.org>
+
+ Add .output request, similar to \! at top-level.
+
+ * src/roff/troff/input.cc (transparent): Remove unused declaration.
+ (output_request): New function.
+ (init_input_requests): Add it.
+ Sorted.
+ * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
+ Document it.
+
+ * Makefile.in (MDEFINES): Add INSTALL_INFO.
+ (prepare_examples): Fix typo.
+ * doc/groff.texinfo (@direntry): Fix it.
+
+2002-05-25 Werner LEMBERG <wl@gnu.org>
+
+ Including the doc subdir into groff's Makefile system.
+
+ * aclocal.m4 (GROFF_INSTALL_INFO): New function.
+ * configure.ac: Use it.
+ Generate `doc/Makefile'.
+ * configure: Regenerated.
+
+ * Makefile.in (infodir, INSTALL_INFO): New variables.
+ (MDEFINES, uninstall_dirs): Updated.
+ (OTHERDIRS): Add `doc'.
+ * Makefile.comm (CLEANDIRADD): New variable.
+ (mostlyclean): Use it.
+
+ * doc/Makefile.sub, doc/Makefile.in: New files.
+ * doc/Makefile: Removed.
+
+ * NEWS, INSTALL: Updated.
+
+2002-05-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/homepage.ms: Renamed to ...
+ * doc/webpage.ms: This.
+ Use `.NHR'.
+
+2002-05-23 Werner LEMBERG <wl@gnu.org>
+
+ Integrating the `mom' macro package, contributed by Peter Schaffter
+ <df191@ncf.ca>.
+
+ * contrib/mom/*: New subdirectory tree.
+ * Makefile.in (docdir, exampledir, htmldocdir): New variables to
+ be used for documentation files.
+ (MDEFINES, uninstall_dirs): Use them.
+ (OTHERDIRS): Add contrib/mom.
+ * Makefile.comm (.man.n): Add @DOCDIR@, @EXAMPLEDIR@, and
+ @HTMLDOCDIR@.
+ * MANIFEST, NEWS: Updated.
+
+2002-05-22 Gaius Mulley <gaius@glam.ac.uk>
+
+ Change syntax of \O: \O[0] suppresses output, \O[1] enables output
+ if at outer level; at start-up we are at outer level.
+
+ * src/roff/troff/input.cc (do_suppress): Implement it.
+ Simplify \O[3].
+
+ Add option -p to show progress information.
+ pre-grohtml will now render only one page at a time, reducing the
+ size of needed disk resources enormously.
+
+ * src/preproc/html/pre-html.cc (imagePageStem): Replaced with...
+ (imagePageName): New global variable.
+ (psPageName, show_progress, currentPageNo): New global variables.
+ (html_system): Close saved stderr and stdout handles.
+ (write_end_image): Accept a parameter to control \O escape.
+ (write_start_image): Adapted to new \O meaning.
+ (char_buffer::write_upto_newline): Updated.
+ (createAllPages): Replaced with...
+ (createPage): This new function to create a single page for images.
+ It uses `psselect' from the psutils package.
+ (removeAllPages): Removed.
+ (createImage): Updated.
+ Handle progress display.
+ (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Removed.
+ (scanArguments): Add option -p.
+ (makeTempFiles): Updated to create temp files for psPageName and
+ imagePageName.
+ (removeTempFiles): Removed.
+ (main): Updated.
+
+ * src/devices/grohtml/post-html.cc (header_desc::write_headings,
+ html_printer::write_header): Append `\0' to `buffer'.
+ (html_printer::do_eol): Depend on `current_paragraph->emitted_text'.
+ (main): Handle -p.
+ * src/devices/grohtml/html-text.cc (html_text::dump_stack_element):
+ Handle `text_emitted'.
+ (html_text::table_is_void): Slightly rewritten.
+ (stop): New external symbol.
+ (html_text::do_push) [DEBUGGING]: Use it and simplify.
+ (html_text::shutdown): Call `dump_stack'.
+ (html_text::do_space): Rewritten.
+ * src/devices/grohtml/grohtml.man: Document -p and the need of
+ `psselect'.
+
+ * tmac/www.tmac (DC, HTML-DO-IMAGE, HTML-IMAGE-END): Updated to
+ new \O syntax.
+ Call \O[0] if `ps4html' is active.
+ * tmac/s.tmac (@EQ, @EN): Handle html better.
+ (@TS, TE): Ditto.
+ * tmac/html.tmac: Don't use black for background colour.
+
+ * src/roff/troff/node.cc: Include `div.h'.
+ (troff_output_file::really_print_line): Don't use `is_on'.
+ (troff_output_file::word_marker, troff_output_file::flush_tbuf
+ troff_output_file::check_charinfo,
+ troff_output_file::put_char_width, troff_output_file::put_char,
+ troff_output_file::determine_line_limits, troff_output_file::draw,
+ real_output_file::begin_page, glyph_color_node::tprintf,
+ fill_color_node::tprint, hline_node::tprint, vline_node::tprint):
+ Use `is_on'.
+ (troff_output_file::really_on): Call `do_motion'.
+ (suppress_node::tprint): Use `get_page_number' instead of `%'
+ register.
+ Call `reset_output_registers' conditionally on `is_on'.
+
+ * doc/groff.texinfo: Document new syntax of \O.
+ * NEWS, man/groff_diff.man: Updated.
+
+2002-05-22 Werner LEMBERG <wl@gnu.org>
+
+ * MORE.STUFF: Add info about David Frey's deroff implementation.
+ Mention troff.org.
+
+2002-05-16 Werner LEMBERG <wl@gnu.org>
+
+ Pic's `with' attribute now accepts positions.
+
+ * src/preproc/pic/pic.y: Make `.', BOX, CIRCLE, ELLIPSE, ARC, LINE,
+ ARROW, SPLINE, and `[' left-associative tokens to fix shift/reduce
+ conflicts.
+ (object_spec): Add rule for `WITH' and `position'.
+ (relative_path): Give `corner' the precedence of `CHOP'.
+ * src/preproc/pic/object.h (path): New members `pos' and
+ `is_position'.
+ * src/preproc/pic/object.cc: Updated initializers of `path'.
+ (path::follow): Handle `is_position'.
+
+ * doc/pic.ms: Completely updated grammar description.
+ Many typographical improvements.
+
+2002-05-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cc(hyphen_trie::hpf_getc): Accept ^^x (char
+ code of x in range 0-127) also.
+ * doc/groff.texinfo, man/groff_diff.man: Updated.
+
+ Added keywords `north', `south', `east', and `west' for corners
+ in pic.
+
+ * src/preproc/pic/lex.cc (lookup_keyword): Add NORTH, SOUTH, EAST,
+ and WEST.
+ (yylex): Handle them.
+ * src/preproc/pic/pic.y: Add tokens NORTH, SOUTH, EAST, and WEST.
+ (corner): Handle them.
+
+2002-05-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/grops.man: Clarify handling of `download' file.
+
+2002-05-11 Werner LEMBERG <wl@gnu.org>
+
+ Adding `warnscale' and `spreadwarn' requests, based on a patch from
+ Jeffrey Friedl <jfriedl@yahoo.com>.
+
+ * src/roff/troff/input.cc (spread_limit, warn_scale,
+ warn_scaling_indicator): New global variables.
+ (warnscale_request, spreadwarn_requests): New functions.
+ (main): Initialize `warn_scale' and `warn_scaling_indicator'.
+ (init_input_requests): Updated.
+ (error_type): Add `OUTPUT_WARNING'.
+ (do_error): Handle it.
+ (output_warning): New warning function which shows output location.
+ * src/roff/troff/env.h (spread_limit): New external variable.
+ * src/roff/troff/env.cc (environment::choose_breakpoint): Use
+ `output_warning'.
+ (distribute_space): Emit warning if added space is larger than
+ `spread_limit'.
+ (environment::possibly_break_line): Emit warning if a line can't
+ be adjusted on both sides.
+
+ * doc/groff.texinfo, man/groff_diff.man, man/groff.man: Document it.
+
+2002-05-08 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (special_node::special_node): Use
+ env_definite_font(curenv) instead of curenv->get_font(). Otherwise
+ \X''\% crashes, for example.
+
+ * doc/groff.texinfo: Document \! and \? used at top-level.
+
+2002-05-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.man: Fix some keyword syntax.
+ Other minor typographical fixes.
+
+ * src/roff/groff/groff.man: Fix typos.
+
+2002-05-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man ([ShortOpt]): Renamed to...
+ (ShortOpt[]): This to avoid problems with refer.
+
+ * doc/pic.ms: Fix typo.
+ Fix pic grammar description.
+
+ * tmac/an-old.tmac (ne): Use de1, not de.
+
+2002-05-03 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Finished separation of glyphs and characters.
+ Don't use the string `Appendix' for appendix headers (both in
+ the text and the table of contents).
+ * man/groff_tmac.man, src/roff/troff/troff.man: Fix order of tmac
+ directories.
+
+ Use registers LL and LT (similar to -ms) for controlling the
+ length of title and line, respectively, in the -man and -mdoc
+ macro packages.
+
+ * tmac/doc-ditroff (doc-setup-page-layout), tmac/doc-nroff
+ (doc-setup-page-layout): Use \n[LL] and \n[LT].
+ * tmac/an-old.tmac: Set \n[LL] and \n[LT] if not defined.
+ (TH): Use \n[LL].
+ (an-header, an-p-footer): Use \n[LT].
+ * NEWS, tmac/groff_man.man, tmac/groff_mdoc.man,
+ doc/groff.texinfo: Document it.
+
+2002-05-02 Werner LEMBERG <wl@gnu.org>
+
+ * doc/fdl.texi: New file.
+ * doc/groff.texinfo: Include it.
+ Define and use @copying.
+ Starting with separating glyph, symbol, and character.
+
+2002-04-27 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (EXEEXT): Set it.
+ * src/*/Makefile.sub (PROG): Add $(EXEEXT) for all non-script
+ programs.
+
+ * src/include/nonposix.h: Define GS_NAME.
+ * src/preproc/html/pre-html.cc (createAllPages): Use GS_NAME.
+
+ Some preliminary changes for EMX support under OS/2.
+
+ * src/preproc/pic/main.cc (main), src/roff/groff/pipeline.c: Add
+ __EMX__ similar to __MSDOS__.
+ * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Use `unlink'.
+
+2002-04-25 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Integrated groff_out.man.
+ Some macro fixes.
+
+2002-04-23 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_out.man: Minor fixes.
+
+2002-04-23 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Moving @cindex entries after @Def* to get
+ correct page references.
+ Fixed many index entries.
+
+2002-04-23 Bernd Warken <bwarken@mayn.de>
+
+ * man/roff.man: Enlarged.
+
+2002-04-22 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: More examples, other fixes.
+
+2002-04-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (pipe_output): Multiple calls to `pi'
+ will now form a chain, e.g.
+
+ .pi foo
+ .pi bar
+
+ is now the same as
+
+ .pi foo | bar
+
+ This is for compatibility with plan 9's troff.
+
+ * tmac/tty.tmac: Set default tab values to 0.8i to be compatible
+ with UNIX troff.
+ * NEWS: Updated.
+
+ * doc/groff.texinfo: Add documentation of remaining requests and
+ registers.
+
+2002-04-19 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Add documentation of remaining escapes.
+
+ * font/devdvi/generate/tc.map: Remove entry for `sr'.
+ * font/devdvi/*TC: Regenerated.
+
+2002-04-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (token::next): Make \H behave consistently
+ if not in compatibility mode, i.e., increment relative to the
+ previous height.
+ * doc/groff.texinfo: Updated accordingly.
+
+2002-04-17 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Document \\, \e, \E, \., and \c.
+
+2002-04-16 Bernd Warken <bwarken@mayn.de>
+
+ * src/roff/groff/groff.man: Improve documentation of -P option.
+ Other minor fixes.
+
+2002-04-15 Werner LEMBERG <wl@gnu.org>
+
+ Add new escape \F to switch font family.
+
+ * src/roff/troff/input.cc (token::next): Handle \F.
+ * src/roff/troff/env.cc (environment::set_family): Handle
+ `interrupted' flag.
+ * NEWS, doc/groff.texinfo, man/groff_diff.man, man/groff.man:
+ Document it.
+
+2002-04-14 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (doc-tag-list): Use \Z to avoid stretching of
+ spaces in tags.
+
+2002-04-13 Werner LEMBERG <wl@gnu.org>
+
+ Implement \f[] as an alternative to \fP. Change \mP and \MP to
+ \m[] and \M[], respectively.
+
+ * src/roff/troff/symbol.cc (EMPTY_SYMBOL): New global variable.
+ (symbol::symbol): Handle NULL string and empty string differently.
+ * src/roff/troff/symbol.h (symbol::is_empty): New inline function.
+ * src/roff/troff/input.cc (read_escape_name, read_long_escape_name):
+ Add optional parameter.
+ Updated calling functions.
+ (get_copy, do_glyph_color, do_fill_color, token::next): Use
+ `symbol::is_empty'.
+ * src/roff/troff/env.cc (environment::set_font): Ditto.
+
+ * src/preproc/pic/troff.cc (troff_output::set_fill,
+ troff_output::reset_color: Updated.
+
+ * tmac/www.tmac: Updated.
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo,
+ doc/homepage.ms, src/devices/grotty/grotty.man, tmac/groff_www.man:
+ Updated.
+
+ * tmac/Xps.tmac: Remove some redundant code.
+
+ * tmac/doc-common, tmac/doc-ditroff, tmac/doc-nroff, tmac/doc.tmac,
+ tmac/dvi.tmac, man/roff.man, man/groff_out.man, man/groff.man,
+ man/groff_diff.man, src/roff/groff/groff.man: Replace \f[P] with
+ \f[].
+
+2002-04-13 Bernd Warken <bwarken@mayn.de>
+
+ * src/include/printer.h, src/libs/libdriver/printer.cc
+ (printer::change_fill_color): New member function.
+ * src/libs/libdriver/input.cc (parse_D_command): Use it.
+
+2002-04-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Completed pass on gtroff reference.
+
+2002-04-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: More fixes.
+
+2002-04-11 Bernd Warken <bwarken@mayn.de>
+
+ * src/include/color.h: Decorate with `const'.
+ Use `size_t'.
+ Include `stddef.h'.
+ * src/libs/libgroff.color.cc: Decorate with `const'.
+ Use `size_t'.
+ (color::color): Initialize members.
+ * src/libs/libdriver/input.cc (parse_D_command): Handle `f'
+ command according to the documentation.
+
+ * man/groff_out.man: Updated.
+ Minor fixes.
+
+2002-04-11 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/preproc/html/pre-html.cc (write_start_image): Remove
+ redundant output.
+ * tmac/www.tmac (DC, HTML-DO-IMAGE): Ditto.
+
+ * src/devices/grohtml/post-html.cc (page::add_and_encode): Using
+ \C'hy' caused an assertion failure.
+
+ * src/roff/troff/env.cc (environment::environment): Initialize
+ `emitted_node'.
+ (environment::copy): Handle `ignore_next_eol' and `emitted_node'.
+
+2002-04-10 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
+ Document pvs request and .pvs register.
+
+2002-04-09 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve and fix documentation of diversions
+ and environments.
+
+2002-04-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix documentation of drawing functions.
+ Other minor fixes.
+
+2002-04-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Better documentation of double quotes as
+ arguments.
+ Other minor fixes.
+
+2002-04-06 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Document names of special characters better.
+ * doc/groff.texinfo: Minor improvements.
+
+ * tmac/lbp.tmac: Load latin1.tmac.
+ * tmac/X.tmac, tmac/Xps.tmac: Load latin1.tmac or cp1047.tmac.
+
+ * font/devX*/*: Regenerated (all chars > 0x80 removed).
+
+2002-04-05 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tty.tmac: Don't use shc request.
+ * tmac/latin1.tmac, tmac/cp1047.tmac: Translate soft hyphen to `\%'.
+ * NEWS: Updated.
+
+ * man/groff_diff.man: Minor fixes.
+
+ * font/devlbp/*: Remove all `charXXX' entities.
+
+ * src/libs/libgroff/font.cc (font::~font): Deallocate
+ `special_device_coding'.
+ (font::load): Use `new' for allocating `special_device_coding'.
+ * src/libs/libgroff/nametoindex.cc (character_indexer::lookup_char):
+ Removed unused member.
+
+2002-04-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/drivers/grops/psrm.cc (skip_possible_newline): New function.
+ (resource_manager::do_begin_binary,
+ resource_manager::do_begin_data): Use it.
+
+ * doc/texinfo.tex: Updated to version 4.2.
+
+ * src/roff/troff/token.h: Add TOKEN_ZERO_WIDTH_BREAK for `\:'.
+ (token::zero_width_break): New inline function.
+ * src/roff/troff/input.cc (token::next): Use it.
+ (token::description): Updated.
+ (encode_char): Ignore `\%', `\&', `\)', and `\:'.
+ (token::add_to_node_list, token::process): Use it.
+ * NEWS, doc/groff.texinfo: Updated.
+
+ * src/preproc/eqn/over.cc (over_box::output): Fix typo.
+ * tmac/tty.tmac: Add missing backslash.
+
+2002-04-04 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * src/preproc/eqn/box.cc (set_script_size, box::top_level): Use
+ `.ps' register instead of `.s' to handle fractional point sizes.
+ * src/preproc/eqn/limit.cc (limit_box::compute_metrics,
+ limit_box::output): Ditto.
+ * src/preproc/eqn/other.cc (size_box::compute_metrics,
+ size_box::output): Ditto.
+ * src/preproc/eqn/over.cc (over_box::compute_metrics,
+ over_box::output): Ditto.
+ * src/preproc/eqn/script.cc (script_box::compute_metrics,
+ script_box::output): Ditto.
+ * src/preproc/eqn/sqrt.cc (sqrt_box::compute_metrics,
+ sqrt_box::output): Ditto.
+
+2002-04-03 Michael Selway <mas@ssl.co.uk>
+
+ * src/drivers/grops/psrm.cc (resource_manager::do_begin_binary):
+ Fix typo.
+
+2002-04-03 Werner LEMBERG <wl@gnu.org>
+
+ * doc/homepage.ms: Reduce title size.
+ * doc/groff.texinfo: Fix documentation of .t register.
+ Fix handling of colon.
+ Fix `\' vs. `\\'.
+
+ * src/roff/troff/input.cc (exit_troff): Emit LAST_PAGE_EJECTOR
+ only if page length is positive to avoid a loop.
+
+ * tmac/an-old.tmac (ne): Increase page length to avoid problems with
+ tbl.
+
+2002-04-02 P. Alejandro Lopez-Valencia <dradul@yahoo.com>
+
+ * src/include/nonposix.h, src/roff/groff/pipeline.c:
+ s/__CYGWIN32__/__CYGWIN__/.
+
+2002-03-28 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/gnu.xpm: New image contributed by Emily Mulley.
+ * doc/Makefile (gnu.eps, gnu.png): Use pnmdepth.
+ (homepage.html): Be dependent on gnu.eps.
+ * doc/homepage.ms: Updated to new image.
+
+ * src/devices/grohtml/post-html.cc (html_printer): New member
+ `sbuf_prev_hpos'.
+ (html_printer::flush_sbuf, html_printer::set_char): Set it.
+ (html_printer::sbuf_continuation): Use it.
+
+2002-03-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/getopt.c: Updated to latest version.
+
+ * tmac/README: More on hyphen.tex license.
+
+2002-03-26 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: Add documentation of most missing requests.
+
+2002-03-25 Werner LEMBERG <wl@gnu.org>
+
+ Add three glyphs `t+-', `tmu', and `tdi' which are textual variants
+ of `+-', `mu', and `di', respectively.
+
+ * font/devascii/R.proto, font/devutf8/R.proto,
+ font/devlatin1/R.proto, font/devhtml/R.proto,
+ font/devcp1047/R.proto, font/devlpb/*: Add them.
+ * font/devps/generate/textmap: Ditto.
+ * font/devps/*: Regenerated.
+ * font/devlj4/generate/text.map: Add them.
+ * font/devlj4/*: Regenerated.
+ * font/devdvi/generate/tc.map: Use them.
+ * font/devdvi/generate/texsy.map: Add them.
+ * font/devdvi/*: Regenerated.
+ * font/devX*/*: Regenerated.
+
+ * tmac/latin1.tmac, tmac/cp1047.tmac, tmac/tty.tmac,
+ tmac/tty-char.tmac: Updated.
+
+ * NEWS, man/groff_char.man: Updated.
+
+2002-03-24 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/dvi.tmac, tmac/X.tmac, tmac/ps.tmac, tmac/html.tmac,
+ tmac/lj4.tmac, tmac/tty.tmac: Replace most `.char' with `.fchar'.
+ * tmac/ec.tmac: Remove `.rchar' calls (no longer necessary since
+ we use `.fchar' in dvi.tmac.
+ * tmac/dvi.tmac: Improve definition of \[Fo] and \[Fc].
+ * tmac/Xps.tmac: Simplify some char definitions.
+ Add definition for \[f/].
+ * man/groff_char.man: Updated for new X.tmac.
+
+ * tmac/README: New file.
+
+2002-03-23 Phil Lobbes <phil@perkpartners.com>
+
+ * Makefile.comm (.y.o): New rule for make on Solaris 2.5.1 -- the
+ internal .y.o rule took precedence over the .y.cc rule, compiling
+ the yacc files with gcc instead of g++.
+
+2002-03-23 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/dvi.tmac: Add replacement font for `CB'.
+
+ * tmac/doc.tmac: s/request/macro/ in messages.
+ (doc-generic-macro): Improve error message.
+ * tmac/groff_mdoc.man: Minor improvements.
+
+2002-03-22 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Document possible conflict between `tr' and
+ `char' requests.
+
+2002-03-21 Werner LEMBERG <wl@gnu.org>
+
+ Improve handling of hyphenation patterns. It is now possible to
+ use most of TeX's pattern files unmodified. To make the process
+ more flexible, a new request `hpfcode' has been added which
+ provides a character code mapping for the `hpf' request. See
+ comment before hpf_getc() for more details.
+
+ * src/roff/troff/env.cc (insert_hyphenation, hpf_getc): New
+ functions.
+ (read_patterns_file): Additional parameter for exception dictionary.
+ Extended to recognize \pattern, \hyphenation, and \endinput.
+ (do_hyphenation_patterns_file): Updated.
+ * src/roff/troff/env.h (hpf_code_table): New extern.
+
+ * src/roff/troff/input.cc (hpf_code_table): New array.
+ (init_hpf_code_table, hyphenation_patterns_file_code): New
+ functions.
+ (hyphenation_code): Handle translation from `trin' correctly.
+ (main, init_input_requests): Updated.
+ (charinfo::set_translation): Handle hyphenation code also.
+
+ * src/roff/troff/charinfo.h (charinfo::get_translation_input): New
+ inline function.
+
+ * src/roff/troff/env.cc (WORD_MAX): Reduced to 256 since `unsigned
+ char' is used for offsets in hyphenation exceptions.
+
+ * tmac/hyphen.us: Replace with contents of unmodified `hyphen.tex'.
+
+ * NEWS, man/groff_diff.man, man/groff.man: Document it.
+
+2002-03-20 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: Add documentation for `hpfa' and `trin'
+ requests.
+
+2002-03-18 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/html.tmac: Fix serious typo.
+
+2002-03-17 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: Add documentation for `writec' request.
+
+2002-03-17 Werner LEMBERG <wl@gnu.org>
+
+ Added request `hpfa' to append hyphenation patterns.
+
+ * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
+ parameter `append'.
+ (hyphenation_patterns_file): Renamed to...
+ (do_hyphenation_patterns_file): This.
+ (hyphenation_patterns_file, hyphenation_patterns_file_append): New
+ functions.
+ (init_hyphen_requests): Updated.
+ * NEWS, man/groff.man, man/groff_diff.man: Document it.
+
+2002-03-16 Werner LEMBERG <wl@gnu.org>
+
+ Added request `writec' in analogy to `tmc'.
+
+ * src/roff/troff/input.cc (write_request): Renamed to...
+ (do_write_request): This.
+ Added one parameter.
+ (write_request, write_request_continue): New functions.
+ (init_input_requests): Updated.
+ * NEWS, man/groff.man, man/groff_diff.man: Document it.
+
+ * font/devdvi/DESC.in (sizes): Allow all sizes in the range
+ 5-10000pt.
+ * NEWS: Document it.
+
+2002-03-15 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff.man: Add writem request.
+
+ Add request `trin' (translate input) to make `.asciify' work
+ correctly. This is necessary since `charXXX' entity names are no
+ longer hardcoded in font definition files.
+
+ * src/roff/troff/charinfo.h (charinfo): Add `asciify_code' and
+ `translate_input' members.
+ (charinfo::set_asciify_code, charinfo::get_asciify_code,
+ charinfo::set_translation_input): New methods.
+ (charinfo::set_translation): Add third argument.
+ * src/roff/troff/input.cc (charinfo:set_translation): Set
+ `asciify_code'.
+ (do_translate): Add second argument.
+ (translate_input): New function.
+ (init_input_requests): Updated.
+ * src/roff/troff/node.cc (glyph_node::asciify,
+ composite_node::asciify): Use `get_asciify_code'.
+
+ * tmac/cp1047.tmac, tmac/latin1.tmac: Use `trin'.
+
+ * NEWS, man/groff.man, man/groff_diff.man: Updated.
+
+2002-03-14 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: Improve documentation of .RS and .RE.
+
+2002-03-14 Werner LEMBERG <wl@gnu.org>
+
+ Add a new request `sizes' similar to the `sizes' command in DESC
+ files.
+
+ * src/roff/troff/env.cc (override_sizes): New function.
+ (init_env_requests): Use it.
+ * src/roff/troff/token.h: Export `read_string'.
+ * NEWS, man/groff_diff.man, man/groff.man: Document it.
+
+2002-03-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: More fixes for texinfo 4.1 and higher.
+
+2002-03-10 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/pspic.tmac: Add support for -Tdvi.
+ * tmac/dvi.tmac: Include pspic.tmac.
+ * src/devices/grodvi/grodvi.man: Document it.
+ * NEWS: Updated.
+
+ * font/devlj4/generate/Makefile: Fix URL of metric files.
+
+2002-03-09 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: The static constructor bug has been fixed in z/OS V1R3.
+
+2002-03-09 Larry Kollar <kollar@alltel.net>
+
+ * tmac/groff_ms.man: Add documentation for RS and RE macros.
+
+2002-03-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fixes for texinfo 4.1.
+
+2002-03-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Include getopt.h if groff-getopt.h can't be
+ included.
+ Handle CYGWIN properly.
+
+2002-03-07 Paco Andrs Verd <pandres@dragonet.es>
+
+ * font/devlbp/Makefile.sub (DEVFILES): Add some missing fonts.
+ * tmac/lbp.tmac: Add some font translations.
+
+2002-03-02 Werner LEMBERG <wl@gnu.org>
+
+ * font/devcp1047/R.proto, font/devlatin1/R.proto,
+ font/devhtml/R.proto: Remove `charXXX' entries.
+ * tmac/tty.tmac, tmac/html.tmac: Load latin1.tmac or cp1047.tmac
+ where appropriate.
+
+ * font/devlj4/generate/text.map: Remove `charXXX' entries.
+ * font/devlj4/*: Regenerated all font definition files.
+ * tmac/lj4.tmac: Load latin1.tmac.
+
+ * src/utils/hpftodit/hpftodit.cc (do_file): Partially undo change
+ from 2000-06-17: LJ4 metric files are *not* text files.
+
+ * tmac/troffrc, tmac/dvi.tmac, tmac/ps.tmac: Don't use .T string
+ register to test for EBCDIC.
+
+2002-03-01 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.pl: Skip comment lines in encoding
+ files (as grops already does).
+ * src/utils/afmtodit/afmtodit.man: Document comment lines in map
+ files.
+ * src/devices/grops/grops.man: Document comment lines in encoding
+ files.
+
+ * tmac/cp1047.tmac: New file.
+ * tmac/dvi.tmac, tmac/tty-char.tmac: Use it.
+ * tmac/ps.tmac: Load latin1.tmac or cp1047.tmac.
+ * tmac/Makefile.sub (NORMALFILES): Updated.
+
+ * tmac/ec.tmac: Don't load latin1.tmac again.
+
+ * font/devps/generate/lgreekmap, font/devps/generate/symbolchars,
+ font/devps/generate/dingbats.map,
+ font/devps/generate/dingbats.rmap, font/devps/text.enc,
+ font/devps/generate/Makefile (symbolmap): Add header comment.
+ * font/devps/generate/textmap: Ditto.
+ Remove `charXXX' entries.
+ * font/devps/symbolmap: Regenerated.
+ * font/devps/*: Regenerated all font definition files.
+
+2002-02-28 Werner LEMBERG <wl@gnu.org>
+
+ Add color support to grodvi (for drawing colors are currently
+ translated to gray values).
+
+ * src/devices/grodvi/dvi.cc (FILL_MAX): Removed.
+ (dvi_printer): Add `cur_color' member.
+ (dvi_printer::set_color): New function.
+ (draw_dvi_printer): Remove `fill'.
+ (draw_dvi_printer::fill_next): Pass environment as parameter.
+ Update code for new color support translated to gray.
+ (dvi_printer::set_char): Updated.
+ (dvi_printer::begin_page, dvi_printer::end_page): Handle color
+ changes crossing the page border.
+ (dvi_printer::draw): Updated.
+ Remove cases `f' and `F'.
+ * tmac/dvi.tmac: Add color definitions.
+ * NEWS, src/devices/grodvi/grodvi.man: Updated.
+
+ * tmac/an-old.tmac (R): Make this a macro to emit a warning if
+ used incorrectly.
+
+ * aclocal.m4 (GROFF_NEED_DECLARATION): Use test similar to recent
+ versions of autoconf.
+ * configure: Updated.
+
+ * doc/homepage.ms: Use `.blm'.
+ * tmac/www.tmac (www-depth): New auxiliary variable.
+ (www-pop-level): Don't issue HTML tag.
+ (ULS, ULE, LI): Use absolute indentation.
+
+ * src/devices/grops/ps.cc (ps_printer::begin_page,
+ ps_printer::end_page): Switch forth and back to default color while
+ starting a new page.
+
+2002-02-27 Werner LEMBERG <wl@gnu.org>
+
+ Add EC and TC fonts to devdvi.
+
+ * src/utils/tfmtodit/tfmtodit.man: Document patching of exbase.mf.
+ * font/devdvi/generate/cork.map: Renamed to...
+ * font/devdvi/generate/ec.map: This.
+ Remove entry for `aq'.
+ * font/devdvi/generate/tc.map: New file.
+ * font/devdvi/generate/Makefile (*EC, *TC): New creation rules for
+ EC and TC fonts.
+ (FONTS): Updated.
+ * font/devdvi/*EC, font/devdvi/*TC: New font definition files.
+ * font/devdvi/Makefile.sub (DEVFILES): Updated.
+ * tmac/ec.tmac: New file.
+ * tmac/Makefile.sub (NORMALFILES): Updated.
+ * NEWS, src/devices/grodvi/grodvi.man: Updated.
+ * man/groff_char.man: Check `ECFONTS' register.
+
+ * font/devdvi/{TR,TI,TB,TBI,HR}: Fix `name' field.
+
+2002-02-26 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/*.map: Remove all `charXXX' entries.
+ * font/devdvi/generate/cork.map: Add 'y and 'Y.
+ * font/devdvi/*: Updated.
+ * tmac/dvi.tmac: Formatting.
+
+ Add font `HBI' for the dvi output.
+ Add support for font families `T' and `H'.
+
+ * font/devdvi/HBI: New file.
+ * font/devdvi/B: Renamed to ...
+ * font/devdvi/TB: This.
+ * font/devdvi/BI: Renamed to ...
+ * font/devdvi/TBI: This.
+ * font/devdvi/I: Renamed to ...
+ * font/devdvi/TI: This.
+ * font/devdvi/R: Renamed to ...
+ * font/devdvi/TR: This.
+ * font/devdvi/H: Renamed to ...
+ * font/devdvi/HR: This.
+ * font/devdvi/Makefile.sub (DEVFILES): Updated.
+ * font/devdvi/generate/Makefile (HBI): New rule.
+ (FONTS): Updated.
+ (R, I, B, BI, H): Renamed to ...
+ (TR, TI, TB, TBI, HR): This, respectively.
+ (srcdir): Fixed.
+ * NEWS, src/devices/grodvi/grodvi.man: Updated.
+ * font/devdvi/DESC.in: Don't mount R, I, B, BI, and CWI.
+ Add `styles' and `family' keywords.
+ * tmac/dvi.tmac: Alias `H' to `HR'.
+ Add some fspecial requests for italic fonts.
+ Add TR and TI as special.
+ Add support for `_' with font CWI.
+
+ * src/roff/troff/number.cc (parse_expr): Add missing `break' for
+ operator `:'. Until now, the expression `0:1' would return 2
+ instead of 1.
+
+2002-02-25 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man: Added some missing PS glyph names (from the
+ Adobe Glyph List).
+ * font/devps/generate/textmap, font/devps/symbolmap: Add
+ `arrowupdn'.
+
+ * doc/groff.texinfo: Minor additions and fixes.
+ * man/groff_diff.man: Remove documentation of fp request. This
+ is already covered in the original troff manual.
+ Updated to be consistent with other doc files.
+ * NEWS: Updated.
+
+2002-02-24 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_EBCDIC): Don't include `font/devutf8' in
+ TTYDEVDIRS.
+ Define new variable OTHERDEVDIRS (containing `font/devlj4
+ font/devlbp' if not EBCDIC).
+ * Makefile.in (TTYDEVDIRS): Always include `font/devutf8'.
+ (OTHERDEVDIRS): New variable.
+ (MDEFINES, DEVDIRS, ALLDIRS, DISTDIRS): Updated.
+ * configure: Regenerated.
+
+ * NEWS, src/devices/grotty/grotty.man: Updated.
+
+2002-02-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (do_overstrike, do_bracket,
+ get_line_arg): Honour input level.
+
+ Add new symbol `mc' corresponding to U+00B5 MICRO SIGN.
+
+ * font/*/*: Implement it in all font files.
+ * font/devps/generate/textmap, font/devps/generate/symbolchars,
+ * font/devps/symbolmap: Updated.
+ * font/devlj4/generate/text.map: Updated.
+ * font/devdvi/generate/CompileFonts (sizes): Add LaTeX sizes.
+ * font/devdvi/generate/texmi.map: Updated.
+
+ * font/devutf8/R.proto: Remove all `charXXX' entries.
+ * font/devutf8/NOTES: Updated.
+
+ * font/devX*/*: Regenerated with xtotroff, using fonts from XFree86
+ version 4.1.0.
+
+ * tmac/latin1.tmac, tmac/psold.tmac, tmac/tty-char.tmac: Updated.
+
+ * NEWS, man/groff_char.man: Updated.
+
+2002-02-21 Phil Lobbes <phil@perkpartners.com>
+
+ * src/include/lib.h [HAVE_SNPRINTF]: Include stdarg.h.
+
+2002-02-20 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/roff/grog/grog.pl: Fix computation of $refer.
+
+2002-02-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h [!HAVE_SNPRINTF]: Add declarations for
+ `snprintf' and `vsnprintf'.
+
+ * src/include/htmlindicate.h: Renamed to...
+ * src/include/htmlhint.h: This.
+ * src/include/Makefile.sub: Updated.
+ * src/preproc/eqn/main.cc: Updated.
+
+2002-02-18 Werner LEMBERG <wl@gnu.org>
+
+ * man/roff.man, man/groff_out.man, man/groff.man,
+ man/groff_diff.man, man/ditroff.man, src/roff/groff/groff.man,
+ src/roff/troff/troff.man: Updated to latest changes in www.tmac.
+
+ * win32-diffs: Updated.
+
+2002-02-17 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile (clean): Add *.eps.
+ (MEMACROS): Removed.
+ (TFLAG): New variable.
+ (TROFF): Use it.
+ Add -ww.
+ (GROFF): Use TFLAG, FFLAG, -U, -p, -e, -t, and -ww.
+ (.me.dit): Fixed.
+ (.ms.html, .ms.ascii, .ms.ps, homepage.html): Simplify.
+
+ * tmac/www.tmac: Use dummy diversion while resetting and disabling
+ `.tl'.
+ * tmac/e.tmac: Inserted some more `\"' to remove warnings if used
+ unstripped.
+ * src/roff/troff/troff.man: Fix order of parameter description.
+
+ * NEWS: Updated.
+
+2002-02-16 Gaius Mulley <gaius@glam.ac.uk>
+
+ Simplify image handling for grohtml.
+ Fix <p> bug.
+
+ * src/devices/grohtml/html-text.cc (DEBUGGING): Don't undefine but
+ comment out.
+ (html_text::dump_stack): Don't emit newline while debugging.
+ (html_text::do_push) [DEBUGGING]: Print more info.
+ (html_text::check_emit_text): Fix handling of <p>.
+ * src/devices/grohtml/html.h: Updated.
+ * src/devices/grohtml/output.cc (FPUTC, FPUTS, PUTC): New macros,
+ replacing `fputc', `fputs', `putc'. If DEBUGGING is defined, they
+ send its data to stderr also.
+ Update all callers.
+ (simple_output::space_or_newline) [DEBUGGING]: Removed.
+ * src/devices/grohtml/post-html.cc (html_printer::do_links,
+ html_printer::html_printer): Remove `DEBUGGING' conditionals.
+
+ * src/include/html-strings.h (HTML_IMAGE_{CENTERED,LEFT,RIGHT,END}):
+ Removed.
+ * src/libs/libgroff/htmlhint.cc (is_in_graphic_start,
+ is_inline_image): Removed.
+ (html_begin_suppress, html_end_suppress): Don't take a parameter.
+ (graphic_start, graphic_end): Removed.
+ * src/include/htmlindicate.h: Updated.
+ * src/preproc/html/pre-html.cc (DEBUG_HTML): Removed.
+ (macroset_template): New global variable.
+ (makeFileName): Use `macroset_template'.
+ (write_end_image): Don't take a parameter.
+ Don't emit newline.
+ (write_start_image: Don't emit newline.
+ (char_buffer::write_upto_newline): Updated.
+ (char_buffer::skip_to_newline): Renamed to ...
+ (char_buffer::skip_until_newline): This.
+ Fix code.
+ (char_buffer::write_file_troff, char_buffer::write_file_html):
+ Simplified.
+ (createAllPages, createImage) [DEBUGGING]: Handle `debug' flag.
+ (removeAllPages): Remove `DEBUGGING' conditionals.
+ (addRegDef, dump_args): New functions.
+ (char_buffer::do_html, char_buffer::do_image): Handle
+ `www-image-template' command line variable.
+ Add more debugging code.
+ (addps4html): Removed.
+ (removeTempFiles) [DEBUGGING]: Handle `debug' flag.
+
+ * src/preproc/eqn/main.cc: Include `ctype.h'.
+ (suppress_html): Removed.
+ (do_file): Updated.
+ (inline_equation): Use `html_begin_suppress' and
+ `html_end_suppress'.
+ * src/preproc/pic/troff.cc: Don't include `htmlindicate.h'.
+ (troff_output::start_picture, troff_output::finish_picture):
+ Updated.
+ * src/preproc/tbl/main.cc: Don't include `htmlindicate.h'.
+ (process_input_file): Updated.
+
+ * src/roff/troff/div.cc (page_number): Set page number only if the
+ `ps4html' register isn't defined.
+ * src/roff/troff/input.cc (image_no): New external variable.
+ (do_suppress): Use it.
+ * src/roff/troff/node.h (suppress_node::image_id): New member.
+ * src/roff/troff/node.cc (image_no): Remove `static' keyword.
+ (suppress_node::suppress_node): Initialize `image_id' member.
+ (suppress_node::same): Handle `image_id' also.
+ (suppress_node::copy): Updated.
+ (last_image_id): New global variable.
+ (suppress_node::tprint): Use it.
+
+ * tmac/an-old.tmac (TS, TE, EQ, EN): Use HTML-IMAGE and
+ HTML-IMAGE-END.
+ * tmac/pspic.mac (PSPIC): Fix html support.
+ * tmac/s.tmac (@EQ, @EN, @TS, TE, PS, PE): Ditto.
+ * tmac/www.tmac (www-image-template): Set up.
+ (HTMLINDEX): Renamed to...
+ (HX): This.
+ (BODYCOLOR): Renamed to...
+ (BCL): This.
+ (BACKGROUND): Renamed to...
+ (BGIMG): This.
+ (URL): Change order of parameters for consistency.
+ (MAILTO): Renamed to...
+ (MTO): This.
+ (IMAGE, PNG-IMAGE, MARGIN-PNG-IMAGE): Renamed to...
+ (IMG, PIMG, MPIMG): This.
+ (HTML-H-BEGIN, HTML-H-END): Renamed to...
+ (HnS, HnE): This.
+ (LINKS): Renamed to...
+ (LK): This.
+ (LINE): Renamed to...
+ (HR): This.
+ (NO-AUTO-RULE): Renamed to...
+ (NHR): This.
+ (HTML-TL): Renamed to...
+ (HTL): This.
+ (UL-BEGIN, UL-END): Renamed to...
+ (ULS, ULE): This.
+ (DROPCAP): Renamed to...
+ (DC): This.
+ (TS, TE, EQ, EN): Provide default definitions.
+ (www-make-unique-name): Updated.
+ (HTML-IMAGE-INLINE): Fix typo.
+ * tmac/groff_www.man: Updated.
+
+ * doc/Makefile (homepage.html): Add option -r to grohtml.
+ Use shortened image name.
+ * doc/groff.texinfo: Updated info on grohtml strings and macros.
+ * doc/homepage.ms: Updated and extended.
+
+2002-02-14 Werner LEMBERG <wl@gnu.org>
+
+ Don't use `CSI 39 m' and `CSI 49 m' but `CSI 0 m'.
+
+ * src/devices/grotty/tty.cc (SGR_DEFAULT_COLOR,
+ SGR_BACK_DEFAULT_COLOR): Replaced with ...
+ (tty_printer::put_color): Use it.
+ (ttr_printer::end_page): Simplify.
+
+2002-02-13 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_tmac.man: Moved to...
+ * man/groff_tmac.man: This place.
+ * tmac/Makefile.sub, man/Makefile.sub: Updated.
+
+2002-02-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/Makefile.sub (snprintf.o): Don't use
+ $(COMPILE.c) to not include groff's assert.h.
+
+ * src/drivers/grotty/tty.cc (main): Add GROFF_NO_SGR environment
+ variable.
+ * NEWS, src/drivers/grotty/grotty.man: Document it.
+
+2002-02-11 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/snprintf/snprintf.c: Updated to latest version
+ (2002-02-11).
+
+ * src/roff/grog/grog.pl (process): Fix handling of `.['. We now
+ test whether there is `.]' also.
+ Don't check for spaces after `.['.
+ * src/roff/grog/grog.sh: Do the same.
+
+2002-02-10 Werner LEMBERG <wl@gnu.org>
+
+ Illegal -> Invalid.
+
+ * src/libs/libgroff/illegal.cc: Renamed to ...
+ * src/libs/libgroff/invalid.cc: This.
+ (illegal_char_table): Renamed to ...
+ (invalid_char_table): This.
+ * src/libs/libgroff/Makefile.sub: Updated.
+ * win32-diffs: Updated.
+
+ * doc/groff.texinfo, src/devices/grops/psrm.cc (ps_get_line),
+ src/libs/libdriver/input.cc (fatal_command, parse_color_command,
+ parse_x_command), src/libs/libgroff/font.cc (text_file::next,
+ font::load), src/preproc/eqn/main.cc (read_line, main),
+ src/preproc/eqn/lex.cc (file_input::read_line),
+ src/preproc/pic/lex.cc (file_input::read_line,
+ simple_file_input::get, simple_file_input::peek),
+ src/preproc/pic/main.cc (top_input::get, top_input::peek),
+ src/preproc/pic/pic.man, src/preproc/refer/main.cc
+ (input_stack::push_file), src/preproc/refer/refer.cc (do_file,
+ do_bib), src/preproc/tbl/main.cc (table_input::get),
+ src/preproc/grn/grn.man, src/preproc/grn/main.cc (interpret),
+ src/roff/troff/input.cc (file_iterator::fill, file_iterator::peek,
+ do_zero_width, read_request, encode_char, ps_get_line,
+ transparent_file, get_char_for_escape_name, transparent_translate,
+ asciify, input_char_description, read_string, set_string),
+ src/roff/troff/env.cc (environment::add_html_tag),
+ src/roff/troff/troff.man, tmac/e.tmac (`@(', `(f'): Do it.
+
+ * src/include/lib.h: Updated.
+
+ * src/preproc/eqn/eqn.cc: Removed.
+
+ * NEWS: Updated.
+
+ * src/preproc/grn/hdb.cc (DBRead): Fix fscanf() fields.
+
+2002-02-09 Werner LEMBERG <wl@gnu.org>
+
+ * doc/gnu.xpm: New image.
+ * doc/Makefile (DOCS): Add homepage.ps.
+ Add rules for converting xpm->png and xpm->eps.
+ Use `gnu.{xpm,eps}' as image names.
+ * doc/homepage.ms: Updated.
+
+2002-02-09 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/www.tmac (www-error): New macro, replacing calls to `@error'.
+ (IMAGE): Change image position parameters to `-L', `-R', and `-C'.
+ Remove calls to `B1' and `B2'
+ (PNG-IMAGE): New macro for inclusion of images in PNG format.
+ (www-left-ll-trap, www-left-po-trap, www-right-ll-trap): New
+ auxiliary variables for MARGIN-PNG-IMAGE.
+ (www-finish-left-po, www-finish-right-ll, www-finish-left-ll): New
+ auxiliary macros for MARGIN-PNG-IMAGE.
+ (MARGIN-PNG-IMAGE): New macro to put an image in PNG format into
+ the margin.
+ (www-heading-no): New auxiliary variable for HTML-H-{BEGIN,END}.
+ (HTML-H-BEGIN, HTML-H-END): New macros to begin and end a heading.
+ (DROPCAP): New macro to produce dropcap characters.
+ (www-do-image): Renamed back to...
+ (HTML-DO-IMAGE): This.
+ Updated all callers.
+
+ * doc/Makefile (gnubw.eps): Updated.
+ * doc/homepage.ms: Updated.
+
+2002-02-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Fixed typos (\(*tx -> \*(tx).
+ Added `linethick' to table in section `Style Variables'.
+
+2002-02-08 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/libs/libdriver/input.cc (get_extended_arg): Fix conditional.
+
+2002-02-07 Werner LEMBERG <wl@gnu.org>
+
+ Adding options -C (compatibility mode) and -c (grotty's old output
+ scheme) to nroff.
+
+ * src/roff/nroff/nroff.sh: Implement it.
+ Remove `-Wall'.
+ * NEWS, src/roff/nroff/nroff.man: Updated.
+
+ * PROBLEMS: Document bison 1.32 bug.
+
+ Some fixes to make groff compile on z/OS 1.2 UNIX (was OS/390).
+
+ * src/roff/troff/node.cc (make_tfont): Define it earlier.
+ * src/roff/troff/div.h: Add prototype for `end_diversions'.
+ * src/roff/troff/input.cc: Add prototype for `process_input_stack'.
+ * src/roff/troff/env.h: Add prototype for `title'.
+
+ Adding EBCDIC support to grotty.
+
+ * src/devices/grotty/tty.cc (CSI): New macro.
+ (SGR_*, tty_printer::put_color): Use it.
+
+2002-02-06 Werner LEMBERG <wl@gnu.org>
+
+ Implementing color support in grotty. The new switch -c activates
+ the old drawing scheme, disabling color at the same time. The new
+ switch `-i' selects italic instead of underlining (SGR only).
+
+ * src/devices/grotty/tty.cc (putstring): New define instead of
+ `fputs'. Updated all callers.
+ (old_drawing_scheme): New global variable.
+ (COLOR_CHANGE): New enum value.
+ (SGR_*): New defines containing color handling escape sequences.
+ (TTY_MAX_COLORS, DEFAULT_COLOR_IDX): New defines.
+ (glyph): New members `back_color_idx' and `fore_color_idx'.
+ (glyph::order): Add COLOR_CHANGE.
+ (tty_printer): New members `cur_fore_idx', `curr_back_idx',
+ `is_underline', `is_bold', `cu_flag', `tty_colors'.
+ New methods `make_underline', `make_bold', `color_to_idx',
+ `change_color', `put_color'.
+ (cu_flag): Moved into `tty_printer' class.
+ (tty_printer::tty_printer): Initialize colors.
+ (tty_printer::add_char, tty_printer::set_char, tty_printer::special,
+ tty_printer::draw, tty_printer::end_page): Handle colors also.
+ (main): Add options `-c' and `-i'.
+ (usage): Updated.
+ * NEWS, src/devices/grotty/grotty.man: Updated.
+
+ * src/include/errarg.h (errarg): Add support for `unsigned int'.
+ * src/libs/libgroff/errarg.c: Implement it.
+
+ * src/include/printer.h (printer): Add `change_color' method
+ (currently used by grotty only).
+ * src/libs/libdriver/printer.cc: Implement it.
+ * src/libs/libdriver/input.cc (parse_D_command, do_file): Add
+ call to `pr->change_color'.
+
+ * src/roff/troff/node.cc (troff_output_file::fill_color,
+ troff_output_file::glyph_color): Call `do_motion'.
+
+ * tmac/tty.tmac: Add color definitions.
+
+ * src/roff/groff/groff.man: Minor fixes.
+
+2002-02-05 Bernd Warken <bwarken@mayn.de>
+
+ * src/libs/libdriver/input.cc: Introduce `EnvInt' typedef and use
+ it. This is a preparation for future changes.
+
+2002-02-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (process_input_stack): Fix the case
+ where leading spaces are followed by \f or \s; previously, an
+ incorrect space width has been used.
+
+ * doc/roff.man (quoted_char): Fix argument.
+ (comment): Define string.
+
+2002-02-04 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: More fixes.
+
+2002-02-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/box.cc (output_string): Don't use \\*[...].
+ * src/preproc/eqn/main.cc (do_file, inline_equation): Call
+ `restore_compatibility' before `output_string' -- the LINE_STRING
+ register now already contains proper switches from and to
+ compatibility mode.
+
+ * man/groff_char.man: Add Euro symbol.
+ * man/groff_diff.man: Improve documentation of `.am1' and `.as1'.
+ * tmac/tty.tmac: Add `EUR' as replacement for `eu' and `Eu'.
+ * doc/groff.texinfo (Defstr*): Print strings with full syntax.
+ Other minor fixes.
+
+ * doc/Makefile (.SUFFIXES, .texinfo.pdf, clean): Add support for
+ texinfo->pdf.
+ (.texinfo.html): Add support for texinfo->html.
+
+2002-02-03 Werner LEMBERG <wl@gnu.org>
+
+ Added three new requests `ds1', `as1', and `ami'. The former two
+ are equivalent to `ds' and `as' with the difference that
+ compatibility mode is saved on entry, switched off during string
+ expansion, and restored on exit. The latter is the pendant to `dei'
+ for `am'.
+
+ (do_define_string): Use `define_mode' and `calling mode'.
+ Insert COMPATIBLE_SAVE and COMPATIBLE_RESTORE at the beginning and
+ end of string, respectively.
+ (define_string, append_string): Use `calling_mode'.
+ (define_nocomp_string, append_nocomp_string,
+ define_string_indirect): New functions.
+ (init_input_requests): Updated.
+ * NEWS, man/groff_diff.man, man/groff.man: Document it.
+
+ * src/preproc/eqn/box.cc (box::top_level, box::extra_space): Use
+ `as1' for assigning LINE_STRING (this is `10' usually). Sun's
+ mm macro package accesses this string register directly.
+ * src/preproc/eqn/main.cc (inline_equation): Use `as1'.
+
+ * tmac/trace.tmac: Trace calls to `am' also. Make it work in
+ compatibility mode.
+
+2002-02-02 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo, tmac/groff_ms.man: More fixes.
+
+2002-01-31 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (I): Use \, and \/ to improve spacing.
+
+2002-01-31 Bernd Warken <bwarken@mayn.de>
+
+ * src/devices/grolbp/lbp.cc (main): Delete `pr'.
+ * man/groff_out.man: Revised and updated.
+
+2002-01-30 Bernd Warken <bwarken@mayn.de>
+
+ * src/libs/libdriver/input.cc [USE_ENV_STACK]: New macro to comment
+ out the unused `{' and `}' commands. Undefined by default.
+ (IntArray): Make `data' private.
+ (IntArray::operator[], IntArray::get_data, IntArray::len): Use these
+ new methods instead.
+ (skip_line_D, skip_to_end_of_line): New functions.
+ (get_D_fixed_args): Use `skip_line_D'.
+ Changed to handle dummy odd arguments by ...
+ (get_D_fixed_args_odd_dummy): This new function.
+ (get_D_variable_args): Split some code into ...
+ (get_possibly_integer_args): This new function.
+ (send_draw): Use more `const'.
+ (delete_current_env): New function.
+ (position_to_end_of_args): Use `size_t'.
+ Updated.
+ (send_draw): Updated.
+ (parse_D_command): Handle `c', `C', and `t' better.
+ Updated.
+ (do_file): Updated.
+
+2002-01-29 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Revised.
+ * doc/groff.texinfo: Introduce @Def...List, @Def...Item, and
+ @Def...ListEnd which replaces @Def...x. This is necessary to get
+ proper HTML output -- see the comment in the file for more
+ information.
+ Updated all calls.
+
+2002-01-29 Gaius Mulley <gaius@glam.ac.uk>
+
+ Fixes to make color changes of 2002-01-21 work with grohtml.
+
+ * src/devices/grohtml/post-html.cc (style): Updated.
+ (html_printer): Remove unused methods.
+ (html_printer::do_font, html_printer::draw, html_printer::set_char,
+ html_printer::special): Updated.
+ * src/devices/grohtml/html-text.cc (debugStack, turnDebug,
+ html_text::dump_stack_element, html_text::dump_stack) [DEBUGGING]:
+ Added some debugging code.
+ (html_text::start_tag): Updated.
+ (html_text::do_push): New method.
+ (html_text::push_para): Call it.
+ Add method for handling color.
+ (html_text::do_color): Updated.
+ (html_text::shutdown): Handle color.
+ * src/devices/grohtml/html-text.h (tag_definition): New member
+ `col'.
+ Updated.
+
+2002-01-28 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/ps.tmac, tmac/html.tmac: Fix compatibility mode issues.
+
+2002-01-27 Gaius Mulley <gaius@glam.ac.uk>
+
+ Add two switches -a and -g to control the antialiasing bits for
+ text and graphics, respectively.
+
+ * src/devices/grohtml/post-html.cc (main): Dummy code for `-a' and
+ `-g'.
+ * src/devices/grohtml/grohtml.man: Document them.
+ * src/preproc/html/pre-html.cc (MIN_ALPHA_BITS, MAX_ALPHA_BITS):
+ New macros.
+ (textAlphaBits, graphicAlphaBits, antiAlias): New global variables.
+ (setupAntiAlias): New function.
+ (createAllPages): Updated.
+ (scanArguments): Handle `-a' and `-g'.
+ (main): Call `setupAntiAlias'.
+ * NEWS: Updated.
+
+2002-01-27 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Def*): Call index function after deffn.
+
+ * tmac/html.tmac: Call `nroff' request.
+
+2002-01-26 Larry Kollar <kollar@alltel.net>
+
+ * tmac/groff_ms.man: Add some omissions.
+
+2002-01-25 Larry Kollar <kollar@alltel.net>
+
+ * tmac/groff_ms.man: Typographical improvements.
+
+2002-01-25 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Updated version and copyright.
+ * src/devices/grops/grops.man: Updated.
+
+ * tmac/groff_tmac.man: Fix `ig' macro.
+
+ * tmac/an-old.tmac (ne): Redefine `ne' request to be a no-op in
+ nroff mode.
+ Use `.ne' unconditionally everywhere.
+ (TS): Only insert some vertical space. Doing a page break is no
+ longer necessary due to the redefinition of the `ne' request.
+
+ * src/libs/libdriver/input.cc (parse_D_command): Don't emit a
+ warning for unknown subcommands but parse and pass them to the
+ device driver.
+
+2002-01-24 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_www.man, NEWS: Fix typos.
+
+2002-01-21 Werner LEMBERG <wl@gnu.org>
+
+ Complete revision of color support:
+
+ Adapt programs to the new libdriver/input.cc.
+
+ Color spaces are no longer converted to RGB but transferred as-is
+ in the troff intermediate output format.
+
+ Handle default color gracefully. troff now supports a `default'
+ color (which can't be changed).
+
+ grops will now use the proper color space functions if available.
+
+ Update pic.
+
+ Note that currently grohtml doesn't handle colors properly. This
+ has to be fixed.
+
+ * src/libs/libgroff/itoa.c (UINT_DIGITS): New macro.
+ (ui_to_a): New function.
+ * src/include/lib.h: Updated.
+
+ * src/include/color.h (color_scheme): Replace `NONE' with `DEFAULT'.
+ (color): Simplified; removed all `double' members and methods.
+ A new array `components' now holds the color parameters.
+ (color::is_default, color::get_components): New methods.
+ (color::operator==, color:operator!=): New.
+ (Red, Green, Blue, Cyan, Magenta, Yellow, Black, Gray): New macros
+ to make access to the `components' array more comprehensible.
+ * src/libs/libgroff/color.cc: Implement new color support.
+ (atoh): Small fixes.
+ (color::read_encoding): Simplified for new troff intermediate color
+ output format.
+ (default_color): New global variable.
+
+ * src/roff/troff/input.cc (default_symbol): New global variable.
+ (lookup_color): Use it.
+ (default_black): Removed.
+ (do_glyph_color, do_fill_color): Simplified.
+ (define_color): Handle default color.
+ Improve warnings.
+ (do_if_request): Handle default color.
+ * src/roff/troff/env.cc (environment::environment): Initialize
+ colors with `default_color'.
+ * src/roff/troff/node.cc (troff_output_file::put): Add method
+ for `unsigned int'.
+ (troff_output_file::hex): Removed.
+ (troff_output_file::fill_color, troff_output_file::glyph_color):
+ Updated to include/color.h and libdriver/input.cc.
+
+ * src/preproc/pic/object.cc (draw_arrow): New parameter to set
+ fill color properly (identically to the outline color). \D'f...'
+ doesn't work any more.
+ All function calls to it updated.
+
+ * src/devices/grohtml/post-html.cc (html_printer::do_body, main):
+ Updated.
+ * src/devices/grohtml/html-text.cc (html_text::issue_color_begin):
+ Updated.
+
+ * src/devices/grops/ps.cc (ps_output::put_color): New method.
+ (ps_printer::sbuf_color): Make a real member instead of pointer.
+ (ps_printer::fill_color, ps_printer::output_color): Removed.
+ (ps_printer::ps_printer): Updated.
+ (ps_printer::set_char): Ditto.
+ (ps_printer::set_color): Use various color schemes.
+ Use `put_color' method.
+ (ps_printer::flush_sbuf): Don't set color.
+ (ps_printer::fill_path): Take `environment' as parameter.
+ Simplify color handling.
+ (ps_printer::set_line_thickness): Renamed to ...
+ (ps_printer::set_line_thickness_and_color): This (and updated).
+ (ps_printer::set_color): Change second parameter from `complete'
+ to `fill' which better describes what it does.
+ (ps_printer::draw): Call `flush_sbuf' to output graphic commands
+ and text in the right order.
+ Updated.
+ Remove branches for `f' and `F'; this is handled by
+ libdriver/input.cc.
+ * src/devices/grops/ps.h: Updated.
+ * font/devps/prologue (FL): Redefined.
+ ({F,C}r,k,g: New color functions (with and without filling).
+
+ * doc/pic.ms, src/preproc/pic/pic.man: Small fixes.
+ * man/groff_diff.man, man/groff.man, man/groff_out.man,
+ doc/groff.texinfo, NEWS: Updated.
+
+2002-01-20 Bernd Warken <bwarken@mayn.de>
+
+ * src/libs/libdriver/input.cc: Completely rewritten. See comments
+ in this file for what has been changed.
+
+2002-01-19 Werner LEMBERG <wl@gnu.org>
+
+ * test-groff: Fix GROFF_FONT_PATH.
+ * tmac/andoc.tmac: Add dummy macros for equation support -- eqnrc
+ is read before .TH or .Dd is parsed.
+
+2002-01-18 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/libs/libgroff/geometry.cc (check_output_arc_limits): Fix
+ quadrant boundaries.
+
+2002-01-18 Werner LEMBERG <wl@gnu.org>
+
+ * devices/grops/ps.cc: Aargh! Fix the fix of the incorrectly
+ applied last patch.
+
+2002-01-17 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.common: Initialize %I register for the %I macro to
+ avoid (harmless) warning.
+ * tmac/doc.tmac (Bd): There is no reason to enforce -compact
+ when in the SYNOPSIS section.
+
+2002-01-17 Bruno Haible <haible@clisp.cons.org>
+
+ * src/preproc/pic/lex.cc (get_token): Fix typo.
+
+2002-01-17 Werner LEMBERG <wl@gnu.org>
+
+ * devices/grops/ps.cc: Fix incorrectly applied last patch.
+
+2002-01-17 Larry Kollar <kollar@alltel.net>
+
+ * tmac/groff_ms.man: Completely rewritten.
+
+2002-01-16 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (TS): Force break, inserting some vertical space.
+
+2002-01-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ * devices/grops/ps.cc (ps_printer::fill_path): Fix handling of
+ fill colors.
+ (ps_printer::draw): Ditto.
+
+2002-01-14 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/groff_mdoc.man: Minor fixes.
+
+2002-01-13 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_out.man: Some fixes.
+
+2002-01-13 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/pic.ms: Fix typos.
+
+2002-01-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo, doc/groff.man: More on a printable backslash.
+
+2002-01-10 Werner LEMBERG <wl@gnu.org>
+
+ * font/devutf8/R.proto, font/devhtml/R.prot: Add `Eu' and `eu'
+ symbols.
+ * NEWS: Updated.
+
+2002-01-09 Bernd Warken <bwarken@mayn.de>
+
+ * man/groff_out.man: Revised.
+ * man/roff.man: Minor fixes.
+ * src/roff/troff/troff.man: Some reordering.
+
+2002-01-09 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac: Add dummy macros for equation support.
+
+2002-01-07 Werner LEMBERG <wl@gnu.org>
+
+ doc/groff.texinfo: Fix documentation of glyph searching algorithm.
+
+ * tmac/an-old.tmac: Revert change 2001-12-23. This breaks too many
+ man pages.
+ * tmac/groff_man.man: Small improvements.
+
+2002-01-07 Bernd Warken <bwarken@mayn.de>
+
+ * man/groff_diff.man: Revised.
+
+2002-01-06 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac: Remove extraneous backslash.
+
+2002-01-06 Bernd Warken <bwarken@mayn.de>
+
+ * man/ditroff.man, src/roff/groff/groff.man, man/groff.man: Revised.
+
+2002-01-05 Werner LEMBERG <wl@gnu.org>
+
+ Integrated groffer, contributed by Bernd Warken.
+
+ * contrib/groffer/*: New.
+ * Makefile.in, NEWS: Updated.
+
+2002-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Added macros `@Defmpreg' and `@Defmpregx' for
+ registers defined in macro packages.
+ Revising the ms part.
+
+2002-01-04 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo: Add documentation for ms macros.
+
+2002-01-02 Werner LEMBERG <wl@gnu.org>
+
+ First step in adding PS support for the Euro symbol. `eu' is the
+ official Euro logo, `Eu' is a font-specific glyph variant.
+
+ * font/devps/text.enc: Add `Euro' at position 9.
+ * font/devps/generate/textmap: Add `Euro' as symbol `Eu'.
+ * font/devps/symbolmap: Regenerated.
+
+ * NEWS: Updated.
+
+2002-01-02 Bernd Warken <bwarken@mayn.de>
+
+ * man/roff.man: Revised.
+
+2002-01-01 Bernd Warken <bwarken@mayn.de>
+
+ * src/roff/groff/groff.man: Completely rewritten.
+
+2001-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile: Updated.
+
+2001-12-30 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac: Make all names of internal macros/registers/strings
+ lowercase, and prepend `www-'.
+ Other minor changes.
+ * src/roff/troff/troff.man: Add preprocessor string at BOF.
+
+2001-12-30 Gaius Mulley <gaius@glam.ac.uk>
+
+ Implement option `-b' in grohtml to set the HTML background colour.
+
+ * src/devices/grohtml/post-html.cc (default_background): New global
+ variable.
+ (html_printer::html_printer): Initialize `background' to
+ `default_background'.
+ (main): Implement option `-b'.
+ (usage): Updated.
+ * src/preproc/html/pre-html.cc (scanArguments): Add dummy handling
+ of `-b' option.
+ * src/devices/grohtml/grohtml.man: Updated.
+ * doc/Makefile (.ms.html): Use `-b'.
+ * tmac/html.tmac: Don't set background color.
+
+ Add new grohtml tag `.html-tl'.
+
+ * src/devices/grohtml/post-html.cc (title_desc): Add `with_h1'
+ member variable.
+ (title_desc::title_desc): Updated.
+ (html_printer::troff_tag): Handle `.html-tl'.
+ (html_printer::write_title): Use `with_h1'.
+ * tmac/www.tmac (www-end-nowhere): New auxiliary macro.
+ (HTML-TL): New macro.
+
+ Add support for unordered lists in HTML.
+
+ * tmac/www.tmac (www-level): New auxiliary register.
+ (www-level1, www-level2, www-level3): New auxiliary strings.
+ (www-push-level, www-pop-level): New auxiliary macros
+ (UL-BEGIN, UL-END, LI): User macros for unordered lists.
+
+ Miscellaneous.
+
+ * src/preproc/html/pre-html.cc (DEFAULT_IMAGE_RES): Increase to 100.
+ (DEFAULT_VERTICAL_OFFSET): Removed.
+ (IMAGE_BOARDER_PIXELS): Set to 0.
+ (A4_LENGTH, A4_OFFSET, LETTER_LENGTH, LETTER_OFFSET): New macros.
+ (vertical_offset): Initialize with 0.
+ (gsPaper): New global variable.
+ (get_resolution): Scan for and return unsigned int.
+ (get_papersize): New function to get paper length from devps/DESC.
+ (determine_vertical_offset): New function.
+ (createAllPages): Produce gray-level images and use proper page
+ length.
+ (createImage): Use `-quiet' option of pnmcrop.
+ (addZ): Fix passing of `-Z'.
+ (scanArguments): Fix handling of `-o'.
+ (main): Call `determine_vertical_offset'.
+ * src/devices/grohtml/post-html.cc (html_printer::draw): Comment out
+ code for `l'.
+
+ * src/libs/libgroff/tmpfile.cc (add_tmp_file): Fix buffer length.
+ * src/roff/troff/node.cc (troff_output_file::check_charinfo): Handle
+ glyph descenders properly.
+
+ * doc/homepage.ms: Include `gnubw.eps'.
+ * doc/Makefile (gnubw.eps): New rule.
+ (homepage.html): Depend on `gnubw.eps'.
+
+2001-12-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (default_black): Fix return value.
+
+2001-12-24 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common (Dt): Change output of architecture strings.
+ Do some syntax cleanup.
+ * tmac/groff_mdoc.man: Updated.
+
+2001-12-23 Werner LEMBERG <wl@gnu.org>
+
+ Adding an `itc' request (input line trap accepting \c).
+
+ * src/roff/troff/env.h (environment): New member
+ `continued_input_trap'.
+ Make `do_input_trap' a friend function instead of `input_trap'.
+ * src/roff/troff/env.cc (environment::environment,
+ environment::copy): Updated.
+ (environment::newline): Implement it.
+ (do_input_trap): New function.
+ (input_trap): Call `do_input_trap'.
+ (input_trap_continued): New function.
+ (init_env_requests): Updated.
+ * src/roff/troff/TODO: Updated.
+
+ * tmac/an-old.tmac (SH, SS, B, I, SM, SB, TP): Use `.itc' instead of
+ `.it'.
+
+ * src/preproc/grn/hdb.cc (DBRead): Really chop after 127 characters.
+
+2001-12-22 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common, tmac/doc-syms: Small updates.
+
+2001-12-22 Colin Watson <cjwatson@debian.org>
+
+ * tmac/an-old.tmac (an-p-footer): Set title length in environment 1.
+
+2001-12-22 Bernd Warken <bwarken@mayn.de>
+
+ * MANIFEST: New file.
+
+2001-12-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/grn.man: Updated.
+
+2001-12-22 Solar Designer <solar@openwall.com>
+
+ * src/preproc/grn/hdb.cc (MAXSTRING_S): New macro.
+ (DBRead): Use it.
+
+2001-12-19 Werner LEMBERG <wl@gnu.org>
+
+ Implement a fallback character request `.fchar'.
+
+ * src/roff/troff/charinfo.h (charinfo): New flag `fallback'.
+ (is_fallback): New inline function.
+ * src/roff/troff/input.cc (do_define_character): New function.
+ (define_character): Call `do_define_character'.
+ (define_fallback_character): New function.
+ (init_input_requests): Add `fchar'.
+ (charinfo::charinfo): Updated.
+ (charinfo::set_macro): New argument to set `fallback' flag.
+ * src/roff/troff/node.cc (make_glyph_node, make_node,
+ node::add_char): Check `fallback' flag.
+ * NEWS, man/groff_diff.man, man/groff_man: Updated.
+
+2001-12-16 Werner LEMBERG <wl@gnu.org>
+
+ * groff.texinfo: Document exact search algorithm for glyphs.
+
+2001-12-15 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.cpg, Makefile.ccpg, Makefile.man: Add dummy file to
+ the left side of $(MANPAGES) rule to make it always non-empty.
+
+2001-12-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (default_black): Define default color
+ `black' if not yet defined.
+
+2001-12-13 Werner LEMBERG <wl@gnu.org>
+
+ Implement new string-valued register `.fn' to return the current
+ real (internal) font name.
+
+ * env.cc (environment::get_font_name_string): New function.
+ (init_env_requests): Add `.fn' register.
+ * env.h (environment): Updated.
+ * node.cc (font_info): Make `get_font_name' a friend.
+ (get_font_name): New function.
+ * node.h: Updated.
+
+ * man/groff_diff.man, man/groff.man, NEWS: Updated.
+
+2001-12-12 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/preproc/eqn/main.cc (inline_equation): Fix typos.
+
+2001-12-12 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_man.man, doc/groff.texinfo: There is no .R macro.
+
+2001-12-10 Gaius Mulley <gaius@glam.ac.uk>
+
+ * man/groff_diff.man: Adding documentation for \O.
+
+2001-12-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/pre-html.cc (TROFF_COMMAND): Removed.
+ (scanArguments): Use PROG_PREFIX for the name of the troff binary.
+
+2001-12-09 Werner LEMBERG <wl@gnu.org>
+
+ * man/roff.man: Revised.
+ * src/roff/groff/groff.man: Replace man page references with a
+ pointer to roff.man.
+
+2001-12-09 Bernd Warken <bwarken@mayn.de>
+
+ * man/roff.man: Completely rewritten.
+
+2001-12-06 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/preproc/eqn/main.cc (inline_equation): Improve error message.
+
+2001-12-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (get_delim_file_name): Removed since no
+ longer used.
+ * src/devices/grohtml/post-html.cc (html_printer::html_printer): Fix
+ order of initializers.
+ * NEWS: Updated.
+
+2001-12-05 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/groff.texinfo: Fix documentation of \O.
+
+ * src/devices/grohtml/html-text.cc (html_text::do_indent,
+ html_text::do_table, html_text::do_emittext, html_text::do_para):
+ Use `const' for first argument.
+ (html_text::do_table): Use cast.
+ * src/devices/grohtml/html-text.h: Updated.
+ * src/devices/grohtml/output.cc (simple_output::put_string): Add
+ method for `const string &s'.
+ * src/devices/grohtml/html.h: Updated.
+ * src/devices/grohtml/post-html.cc (MAX_STRING_LENGTH): Removed.
+ (ANCHOR_TEMPLATE): Modified.
+ (manufacture_headings): New global variable to handle `-h' option.
+ (is_subsection): Removed.
+ (char_buffer::add_string): Add `const' to first argument.
+ Protect against invalid string argument.
+ Add method for `const string &s'.
+ (text_glob): Completely redesigned.
+ (page): Use `const' for strings and remove string length variable.
+ (page::add_html): Removed.
+ (page::add_end_encode): New member function.
+ (to_unicode): Moved upwards.
+ (title_desc, header_desc): Updated.
+ (header_desc::write_headings): Updated to new ANCHOR_TEMPLATE
+ definition.
+ (html_printer::is_bold, html_printer::make_bold): New member
+ functions.
+ (html_printer::end_of_line): Updated.
+ (generate_img_src, html_printer::do_auto_image,
+ html_printer::do_title, html_printer::write_header,
+ html_printer::determine_header_level, html_printer::do_heading,
+ html_printer::do_linelength, html_printer::do_pageoffset,
+ html_printer::do_indentation, html_printer::do_tempindent,
+ html_printer::do_indentedparagraph, html_printer::do_break,
+ html_printer::flush_sbuf, get_html_translation,
+ html_printer::begin_page, html_printer::special): Rewritten to get
+ rid of static string length limit.
+ (html_printer::troff_tag): Added `.no-auto-rule'.
+ (html_printer::flush_globs): Small fix.
+ (html_printer::determine_space): Don't compute `space_width'.
+ (html_printer::translate_to_html): Renamed to ...
+ (html_printer::emit_html): This (with updates).
+ (html_printer::write_header): Implement `-h' option.
+ (html_printer::draw): Remove commented-out code. Handle `F'
+ command.
+ (html_printer::add_char_to_sbuf): Removed.
+ (html_printer::add_to_sbuf): Rewritten.
+ (html_printer::sbuf_continuation): Fixed.
+ (html_printer::seen_backwards_escape, reverse,
+ html_printer::remove_last_char_from_sbuf): Removed.
+ (char_translate_to_html, str_translate_to_html): Removed.
+ (html_printer::overstrike): New function member.
+ (html_printer::set_char): Use it.
+ (html_printer::do_body): New function member.
+ (html_printer::~html_printer): Use it.
+ (main): Handle `-h' option.
+ (usage): Updated.
+ * src/devices/grohtml/grohtml.man: Document -h switch.
+
+ * src/preproc/html/pre-html.cc: Include searchpath.h
+ Replace `POSTSCRIPTRES' macro with `postscriptRes' variable.
+ (get_resolution): New function.
+ (checkImageDir): Use `0777' permissions in mkdir()
+ (write_start_image): Rewritten to use `\O[5...]'.
+ (createImage, generateImages): Updated.
+ (main): Handle `F' and `h' options.
+ Use `get_resolution'.
+
+ * src/roff/troff/input.cc (begin, end, image): Removed.
+ (do_suppress): Take parameter.
+ Handle modified syntax of `\O'.
+ (token::next): Updated.
+ (init_markup_requests): Removed.
+ (main): Updated.
+
+ * src/roff/troff/div.h: Add declaration for begin_page().
+
+ * tmac/color-html.tmac: Removed. Contents moved to...
+ * tmac/html.tmac: Here. Set background color.
+ * tmac/color.tmac: Removed. Contents moved to...
+ * tmac/ps.tmac: Here.
+ * tmac/www.tmac: Remove the title command when generating images
+ for html.
+ (NO_AUTO_RULE): New macro.
+ (HTML_DO_IMAGE): Use revised `\O' escapes.
+ * tmac/Makefile.sub, tmac/groff_www.man, tmac/troffrc: Updated.
+
+2001-12-02 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man: Fix typo.
+
+2001-12-01 Colin Watson <cjwatson@debian.org>
+
+ * man/roff.man: Fix typo.
+
+2001-11-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libbib/map.c, src/utils/pfbtops/pfbtops.c: Include
+ stdlib.h.
+
+ * src/roff/troff/input.cc (read_draw_node): Emit error message if
+ more than one argument to \D'f ...'.
+
+ * tmac/Makefile.sub (NORMALFILES): Add lbp.tmac.
+
+2001-11-28 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac, tmac/doc.tmac: Assure that the macro package is
+ loaded only once.
+
+ * tmac/groff_man.man: Minor cosmetic fix.
+
+2001-11-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man, tmac/groff_tmac.man,
+ tmac/groff_www.man: s/mwww/www/.
+
+2001-11-26 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_MKSTEMP): Implement test using C++ linkage.
+ * configure: Regenerated.
+ * win32-diffs: Updated.
+
+ * tmac/groff_mwww.tmac: Renamed to ...
+ * tmac/groff_www.tmac: This.
+ * tmac/mwww.tmac: Removed.
+ * NEWS, tmac/Makefile.sub: Updated.
+
+2001-11-21 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of the `\v' escape.
+ Fix explanation of `\D' and `rt'.
+
+2001-11-20 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (an-header): Set header length equal to page
+ width.
+ * doc/groff.texinfo: Improve documentation of `ne' request. Other
+ minor fixes.
+ * NEWS: Small fix.
+
+2001-11-19 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, man/Makefile.sub: Updated.
+
+2001-11-19 Bernd Warken <bwarken@mayn.de>
+
+ * man/ditroff.man: New file.
+
+2001-11-17 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_differences.man: Renamed to ...
+ * man/groff_diff.man: This. Updated.
+ * man/Makefile.sub, src/roff/troff/troff.man, NEWS: Updated.
+
+ * src/preproc/html/pushbackbuffer.cc: Renamed to ...
+ * src/preproc/html/pushback.cc: This. Updated.
+ * src/preproc/html/pushbackbuffer.h: Renamed to ...
+ * src/preproc/html/pushback.h: This.
+ * src/preproc/html/Makefile.sub, src/preproc/html/pre-html.cc:
+ Updated.
+
+ * src/libs/libgroff/htmlindicate.cc: Renamed to ...
+ * src/libs/libgroff/htmlhint.cc: This.
+ * src/libs/libgroff/Makefile.sub: Updated.
+
+ * tmac/an-old.tmac (an-end): Fix page length.
+
+2001-11-16 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, man/groff_differences.man, doc/groff.texinfo: Updated.
+ * man/Makefile.sub: Include groff_differences.man.
+ * VERSION: Set to 1.18.
+ * REVISION: Set to 0.
+
+2001-11-16 Bernd Warken <bwarken@mayn.de>
+
+ * src/roff/troff/input.cc (do_define_macro): Allow whitespace before
+ the second dot (or ending macro name) to end a macro.
+ * doc/groff.texinfo: Doc fix.
+
+2001-11-16 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common (doc-header): Handle very long document titles
+ better.
+
+2001-11-16 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (doc-do-Bl-args): Fix .substring requests.
+
+2001-11-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man: Revised and split into troff.man and...
+ * man/groff_differences.man: New file.
+ * NEWS: Updated.
+
+2001-11-13 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (TS, TE): New macros for table support.
+
+2001-11-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Provide a fix for emx to not include
+ groff-getopt.h.
+
+2001-10-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (substring_macro): Fix computation of
+ boundary values.
+
+2001-10-20 Werner LEMBERG <wl@gnu.org>
+
+ Undo change from 2001-08-28.
+
+ * src/roff/troff/input.cc (have_input): New global variable.
+ (token::next): Set `have_input' for \f, \H, \R, \s, and \S if not
+ in compatibility mode.
+ (process_input_stack): Use it.
+
+2001-10-19 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (doc-flag-recursion): Protect arguments against
+ being handled as end-of-sentence characters,
+
+2001-10-10 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/input.cc (file_iterator): New members
+ `suppress_newline_flag' and `seen_escape'.
+ (file_iterator::next_file): Updated.
+ (file_iterator::fill): Use it.
+ (string_iterator): New member `suppress_newline_flag'.
+ (string_iterator::fill): Set it.
+ (get_color_element): Use MAX_COLOR_VAL.
+ * src/roff/troff/env.cc (environment): Remove `need_eol'.
+ (no_fill): Don't set `env->ignore_next_eol'.
+ (environment::newline): Handle `eol' tag properly.
+ Emit `eol.ce'.
+ (environment::add_html_tag): Set `env->ignore_next_eol'.
+ Don't handle `.ce'.
+ * src/roff/troff/env.h (environment): Updated.
+
+ * src/devices/grohtml/post-html.cc (text_glob::is_eol_ce): New
+ member function.
+ (html_printer::outstanding_eol): New member function.
+ (html_printer::do_title): Use new functions.
+ (html_printer::troff_tag): Test `id_eol_ce'.
+
+2001-10-10 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/color.tmac, tmac/color-html.tmac: Use `.do' to make those
+ files work with -C also.
+
+2001-10-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Minor fix.
+ * src/preproc/html/pre-html.cc (scanArguments): Don't handle `-?'
+ as a valid command line switch.
+ * src/devices/grohtml/post-html.cc (main): Ditto.
+ (usage): Updated.
+ * src/devices/grohtml/grohtml.man: Updated.
+ * src/roff/groff/groff.cc (main): Pass `-v' to predriver also.
+
+2001-10-04 Werner LEMBERG <wl@gnu.org>
+
+ Implementing color support in troff, pic, grops, and grohtml. These
+ changes are based on a major patch provided by Gaius Mulley
+ <gaius@glam.ac.uk>.
+
+ New request: `defcolor', supporting rgb, cmy, cmyk, and gray
+ definitions with both hex values and fractions.
+
+ New escapes: \m and \M for drawing and background color,
+ respectively. This corresponds to the troff output commands `m'
+ and `DF'.
+
+ groff and troff accept command line switch `-c' to disable color
+ output (which is automatically disabled in compatibility mode).
+
+ New scaling indicator `f' for fractions (1f = 65536u).
+
+ New conditional operator `m' to test for defined colors with `if'
+ and `ie'.
+
+ New keywords `color' (or `colour', `colored', `coloured'), `outline'
+ (or `outlined'), and `shaded' added to pic.
+
+ * src/include/color.h: New file.
+ * src/include/driver.h: Include it.
+ * src/include/printer.h: Include color.h.
+ (environment): New members `col' and `fill'.
+ (printer): Remove `adjust_arc_center' member function.
+ * src/include/Makefile.sub: Updated.
+
+ * src/libs/libdriver/input.cc (do_file): Initialize `env.col' and
+ `env.fill'.
+ Handle `m' and `DF' troff commands.
+ * src/libs/libgroff/color.cc: New file.
+ * src/libs/libgroff/Makefile.sub: Updated.
+
+ * src/preproc/html/pre-html.cc (IMAGE_BORDER_PIXELS): Set to 2.
+ (stop): Removed.
+ (createImage): Fix computation of `y2'.
+ Use `pnmcrop' also.
+ (buffer::write_file_html): Remove calls to `stop'.
+
+ * src/preproc/pic/common.h (common_output): New abstract function
+ members `set_color', `reset_color', `get_last_filled', and
+ `get_outline_color'.
+ * src/preproc/pic/object.h: Add `IS_SHADED' and `IS_OUTLINED'.
+ (object_spec): Add members `shaded' and `outlined'.
+ * src/preproc/pic/output.h (output): `command' is now abstract.
+ New function members `set_color', `reset_color', `get_last_filled',
+ and `get_outline_color'.
+ * src/preproc/pic/lex.cc (lookup_keyword): Recognize `colo[u]r[ed]',
+ `outline[d]', and `shaded'.
+ * src/preproc/pic/object.cc (output::command): Removed.
+ (output::set_location): Moved to output.h.
+ (graphic_object): Add protected members `outline_color' and
+ `color_fill'.
+ Add member functions `set_outline_color', `get_outline_color', and
+ `set_fill_color'.
+ (closed_object): Add member function `set_fill_color'.
+ Add member `color_fill'.
+ (graphic_object::print_text): Use `out->set_color' and
+ `out->reset_color'.
+ (box_object::print, ellipse_object::print, circle_object::print,
+ line_object::print, spline_object::print, arc_object::print): Ditto.
+ (object_spec::make_object): Implement `IS_OUTLINED' and `IS_SHADED'.
+ * src/preproc/pic/pic.y: Add tokens `COLORED', `OUTLINED', and
+ `SHADED', making them `%left'.
+ Add rules `object_spec [SHADED|COLORED|OUTLINED] text'.
+ * src/preproc/pic/tex.cc (tex_output): New dummy function members
+ `set_color', `reset_color', `get_last_filled', and
+ `get_outline_color'.
+ * src/preproc/pic/troff.cc (simple_output): New abstract function
+ members `set_color', `reset_color', and `get_last_filled'.
+ (simple_output::polygon, simple_output::circle,
+ simple_output::ellipse): Use `get_last_filled'.
+ (troff_output): New members `last_filled' and `last_outlined'.
+ New function members `set_color', `reset_color', `get_last_filled',
+ and `get_outline_color'.
+ (troff_output::finish_picture): Use `reset_color'.
+ (troff_output::set_fill): Test `last_filled'.
+ * src/preproc/pic/pic.man: Updated.
+
+ * src/roff/groff/groff.cc (main): Implement `-c' option.
+ (synopsis, help): Updated.
+ src/roff/groff/groff.man: Updated.
+
+ * src/roff/troff/troff.h: Include color.h.
+ (warning_type): Add WARN_COLOR.
+ * src/roff/troff/env.h (environment): New members
+ `{cur,prev}_{glyph,fill}_color'.
+ New member functions `get_{prev_,}{glyph,fill}_color'.
+ * src/roff/troff/env.cc: Initialize and implement them.
+ * src/roff/troff/input.cc: New global variable `disable_color_flag'.
+ Replace `NULL' with `0' everywhere for consistency.
+ (lookup_color, default_black, do_glyph_color, do_fill_color,
+ get_color_element, read_rgb, read_cmy, read_cmyk, read_gray,
+ define_color): New functions.
+ (token::next): Implement \M and \m escapes.
+ (do_if_request): Implement `m' operator.
+ (usage): Updated.
+ (main): Implement `-c' option.
+ (init_markup_requests): Add `defcolor' request.
+ (warning_table): Add `color' warning.
+ * src/roff/troff/node.h (glyph_color_node, fill_color_node): New
+ classes.
+ * src/roff/troff/node.cc (troff_output_file): New members
+ `current_{page,glyph}color'. New member functions `put_hex',
+ `glyph_color', and `fill_color'.
+ (glyph_color_node::*, fill_color_node::*): Implement it.
+ * src/roff/troff/number.cc (SCALE_INDICATOR_CHARS): Add `f'.
+ (parse_term): Add support for `f'.
+ * src/roff/troff/troff.man: Updated.
+
+ * src/devices/grodvi/dvi.cc (draw_dvi_printer::draw): Add dummy
+ entry for `F'.
+ * src/devices/grolbp/lbp.cc (lbp_printer::draw): Ditto.
+ * src/devices/grolj4/lj4.cc (lj4_printer::draw): Ditto.
+
+ * src/devices/grohtml/html-text.h (HTML_TAG): Add COLOR_TAG.
+ (tag_definition): Use `void *' for arg1.
+ (html_text): New member functions `do_color' and `done_color'.
+ Use `void *' for second parameter of `push_para' member function.
+ New `push_para' member function with a single parameter.
+ Use `char *' for parameter of `issue_table_begin' member function.
+ New `issue_color_begin' member function.
+ * src/devices/grohtml/html-text.cc (html_text::end_tag): Handle
+ COLOR_TAG.
+ (html_text::issue_color_begin): New function.
+ (html_text::issue_table_begin): Use `char *' for parameter.
+ (html_text::start_tag, html_text::shutdown,
+ html_text::check_emit_text): Updated.
+ (html_text::push_para): Use `void *' for second parameter.
+ Add same function with only one parameter.
+ (html_text::do_*): Updated.
+ (html_text::do_color, html_text::done_color): New functions.
+ * src/devices/grohtml/post-html.cc (style): New member `col'.
+ Mew member `style' with 6 parameters.
+ (style::style, style::operator==): Updated.
+ (html_printer::do_font): Use it.
+ (html_printer::draw): Add dummy entry for `F'.
+ (html_printer::set_char): Updated.
+ * src/devices/grohtml/grohtml.man: Updated.
+
+ * src/devices/grops/ps.cc (ps_output::put_float): Use `%g' to have
+ trailing zeroes removed.
+ (ps_printer): New members `sbuf_color', `fill_color', and
+ `output_color'.
+ Removed member `fill'.
+ New member function `set_color'.
+ (ps_printer::ps_printer, ps_printer::set_char): Updated.
+ (ps_printer::flush_sbuf, ps_printer::set_line_thickness,
+ ps_printer::fill_path, ps_printer::draw): Use `set_color'.
+
+ * tmac/color-html.tmac, tmac/color.tmac: New files.
+ * tmac/troffrc: Include them.
+ * tmac/www.tmac (URL, FTP, MAILTO): Use blue color.
+ * tmac/Makefile.sub: Updated.
+
+ * NEWS, doc/groff.texinfo, doc/pic.ms, man/groff_out.man,
+ man/groff.man: Updated.
+ * font/devps/prologue.ps: Define FC and CO functions.
+
+2001-10-04 Gaius Mulley <gaius@glam.ac.uk>
+
+ Fix incorrect cropping of images and incorrect handling of special
+ characters. Fix handling of file names in \O.
+
+ * src/include/geometry.h: New file.
+ * src/libs/libgroff/geometry.cc: New file.
+ * src/libs/libdriver/printer.cc (printer::adjust_arc_center): Moved
+ to `geometry.cc'.
+ * src/roff/troff/input.cc (get_delim_file_name): Fixed problem with
+ initial spaces.
+ (do_suppress): Updated.
+ * src/roff/troff/node.cc: Include geometry.h.
+ (troff_output_file::flush_tbuf): Fixed parameters to
+ `check_output_limits'.
+ (troff_output_file::check_charinfo): Ditto.
+ (troff_output_file::determine_line_limits): Add support for `Da'
+ and `Dl' commands.
+
+ * src/devices/grohtml/post-html.cc (str_translate_to_html):
+ Add new parameter `is_special' to decode special characters from
+ escape sequences.
+ (html_printer::do_title, html_printer::do_heading,
+ html_printer::do_indentedparagraph,
+ html_printer::translate_to_html, html_printer::special): Updated.
+
+2001-10-03 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.sub (DISTCLEANFILES): Add stamp-h.
+ Fix entry for config.h.
+ * test-groff (GROFF_BIN_PATH): Add $builddir/roff/groff.
+ * tmac/troffrc: Translate nonbreakable space character to `\~'.
+ * src/preproc/eqn/eqn.man: Document -d command line option.
+
+2001-09-27 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff.man: Use
+
+ .ev xxx
+ .na
+ .nh
+ <table>
+ .ev
+
+ instead of the old code (`.ad .hy' after the table) to suppress
+ incorrect hyphenation for grohtml output.
+
+2001-09-22 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man, man/groff_out.man: Minor fixes.
+
+2001-09-20 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Updated, reordered. Improved EPS section (thanks to
+ Arnold Robbins <arnold@skeeve.com>).
+
+2001-09-09 Werner LEMBERG <wl@gnu.org>
+
+ * configure: Regenerated with autoconf 2.52.
+
+ * doc/groff.texinfo: Complete revision of indices.
+
+2001-09-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile (clean): Updated to delete all indices.
+
+2001-09-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man: Remove superfluous line.
+
+ * tmac/s.tmac: Enable all warnings only if no -W or -w option is
+ given on the command line (or rather, if only the default warnings
+ are set).
+
+2001-09-03 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff.man, src/preproc/eqn/eqn.man, tmac/groff_mdoc.man: Don't
+ use .ne for TTY devices.
+
+2001-08-31 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/token.h, src/roff/troff/input.cc:
+ s/TOKEN_TRANSPARENT_ESCAPE/TOKEN_OPAQUE_ESCAPE/.
+
+2001-08-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/token.h (token_type): Add TOKEN_TRANSPARENT_ESCAPE.
+ * src/roff/troff/input.cc (token::next): Return
+ TOKEN_TRANSPARENT_ESCAPE for \f, \H, \R, \s, and \S if not in
+ compatibility mode.
+ (token::description): Updated.
+ (process_input_stack): Reset `bol' for TOKEN_TRANSPARENT_ESCAPE.
+ (token::add_to_node_list, token::process): Ignore
+ TOKEN_TRANSPARENT_ESCAPE.
+
+2001-08-27 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac: Fix `S' string.
+
+2001-08-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man: Don't use .ne for TTY devices.
+
+2001-08-25 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Replace `\\' with `\e' (and fixing some single
+ backslashes).
+ Many other minor fixes.
+
+ * configure.ac: Add message at end to inform how to compile
+ xditview.
+ * configure: Regenerated.
+
+2001-08-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/getopt.h, src/libs/libgroff/{getopt.c, getopt1.c}:
+ Updated to latest version of libc.
+
+2001-08-23 Werner LEMBERG <wl@gnu.org>
+
+ * configure.ac: Don't create subdirectories before AC_CONFIG_FILES.
+ Autoconf 2.50 and newer can handle this.
+ * configure: Regenerated.
+
+2001-08-21 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Fix typo.
+ * src/preproc/tbl/tbl.man: Document case of global options.
+
+2001-08-21 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cc (html_printer::end_font): Fix
+ handling of `CR' font.
+
+2001-08-20 Werner LEMBERG <wl@gnu.org>
+
+ Use a config.h file.
+
+ * src/include/lib.h: Include config.h.
+ * All C files: Ditto (if necessary).
+ * All C++ source and header files: Include lib.h first (if
+ necessary).
+
+ * src/include/config.hin: New file (autogenerated by autoheader).
+ * stamp-h.in: New file.
+ * configure.ac: Updated.
+ * aclocal.m4: Add third parameters to AC_DEFINE macros.
+ (GROFF_ARRAY_DELETE): Simplified.
+ * Makefile.sub (DISTCLEANFILES): Updated.
+ Added targets for remaking config.status, config.hin, config.h,
+ stamp-h.in, and stamp-h.
+ * configure: Regenerated.
+
+2001-08-19 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+
+2001-08-18 Sebastian Krahmer <krahmer@suse.de>
+
+ * src/preproc/pic/pic.y (format_number): Use do_sprintf().
+ (do_sprintf): Use snprintf().
+
+2001-08-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/snprintf/*: Added an snprintf module written by Mark
+ Martinec.
+ * src/libs/libgroff/Makefile.sub: Updated.
+ * configure.ac: Add test for snprintf().
+ * Makefile.in: Updated.
+ * configure: Regenerated.
+
+ * src/preproc/html/pre-html.cc (make_message): Reactivate code which
+ uses snprintf().
+
+2001-08-14 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (Ex): New implementation.
+ * tmac/doc-common, tmac/groff_tmac.man: Updated.
+
+2001-08-13 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (Rv): Implement support for 0 or more than 1
+ argument.
+ * tmac/groff_tmac.man: Updated.
+
+2001-08-13 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Minor documentation update.
+
+2001-08-13 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * src/libs/libgroff/tmpname.cc: Add prototype for gettimeofday().
+ * configure.ac: Add declaration test for gettimeofday().
+ * Makefile.in: Document NEED_DECLARATION_GETTIMEOFDAY defines.
+ * aclocal.m4: Include sys/time.h for gettimeofday declaration test.
+ * configure: Regenerated.
+
+2001-08-11 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_MKSTEMP): Define HAVE_MKSTEMP.
+ * configure.ac: Add declaration test for strcasecmp().
+ * Makefile.in: Updated.
+ * configure: Regenerated.
+ * src/include/lib.h [!HAVE_MKSTEMP]: Add prototype for mkstemp() --
+ this is necessary because groff's mkstemp.cc is C++.
+ Add declaration conditionally for strcasecmp().
+
+2001-08-10 Werner LEMBERG <wl@gnu.org>
+
+ Integrated pic2graph, contributed by Eric S. Raymond.
+
+ * contrib/pic2graph/{Makefile.sub, pic2graph.sh, pic2graph.man}: New
+ files.
+ * Makefile.in, NEWS: Updated.
+
+ * src/preproc/tbl/tbl.man: Revised.
+
+2001-08-09 Eric S. Raymond <esr@thyrsus.com>
+
+ * src/preproc/tbl/tbl.man: Extended to cover all tbl features.
+
+2001-08-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/main.cc (process_data): Fix recognition of .lf
+ requests.
+
+2001-08-08 Paul Eggert <eggert@twinsun.com>
+
+ * Makefile.sub (configure): Depend on configure.ac, not
+ configure.in.
+ * INSTALL.gen: Upgrade to autoconf 2.52's INSTALL.
+
+2001-08-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.man, src/roff/groff/groff.man: Minor
+ fixes.
+
+2001-08-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.man: Improve documentation of -E option.
+
+2001-07-28 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/preproc/html/pushbackbuffer.cc (pushBackBuffer::readNumber):
+ Simplified.
+
+2001-07-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/refer/refer.cc: Undo last change.
+ * src/devices/grohtml/post-html.cc: Ditto.
+
+2001-07-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/refer/refer.cc: Include `lib.h'.
+ * src/devices/grohtml/post-html.cc: Ditto.
+
+2001-07-25 Gaius Mulley <gaius@glam.ac.uk>
+
+ * aclocal.m4 (GROFF_PAGE): Add `AC_DEFINE(PAGEA4)'.
+ * src/preproc/html/pre-html.cc: Use it for DEFAULT_VERTICAL_OFFSET.
+ * Makefile.in: Comment updated.
+ * configure: Regenerated.
+
+2001-07-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.cc: Removed.
+ * src/preproc/pic/pic_tab.h: Removed.
+ * src/preproc/refer/label.cc: Removed.
+
+ * doc/Makefile (.ms.html): Don't use a file name extension in
+ argument to grohtml's -I option.
+ * Makefile.in (dist): Remove CVS directories.
+ Call `distfiles' target.
+
+ * src/devices/grohtml/grohtml.man: Add information about valid
+ versions of pnmtopng.
+ * src/preproc/html/pre-html.cc (TRANSPARENT): Use `white' as colour
+ name instead of number.
+
+2001-07-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Minor fixes.
+
+2001-07-21 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/Makefile (.ms.html): Put image files into a subdirectory.
+ (clean): Updated.
+
+2001-07-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/tmpname.cc: New file, defining get_tempname().
+ * src/libs/libgroff/mkstemp.cc: New file.
+ * src/libs/libgroff/mksdir.cc: New file.
+ * src/libs/libgroff/tmpfile.cc [HAVE_MKSTEMP_PROTO]: Removed.
+ (xtmpfile) [!HAVE_MKSTEMP]: Removed.
+ * src/libs/libgroff/Makefile.sub: Updated.
+ * src/include/lib.h: Add mksdir() prototype.
+ * src/include/posix.h: Define S_IXUSR if not yet defined.
+
+ * src/preproc/html/pre-html.cc (MAX_RETRIES): Removed.
+ (createAllPages): Use mksdir() instead of current code.
+ * src/utils/indxbib/indxbib.cc [HAVE_MKSTEMP_PROTO]: Removed.
+ (main): [!HAVE_MKSTEMP]: Removed.
+
+ * aclocal.m4 (GROFF_MKSTEMP): Updated to use new mkstemp.cc file.
+ (GROFF_INTTYPES_H, GROFF_UNSIGNED_LONG_LONG, GROFF_UINTMAX_T): New
+ macros.
+ * configure.ac: Add tests for stdint.h, sys/time.h, and
+ gettimeofday().
+ Call new GROFF_xxx macros.
+ * configure: Regenerated.
+ * Makefile.in: Comments updated.
+
+2001-07-20 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/preproc/html/pre-html.cc (scanArguments): Use getopt_long()
+ instead of current code.
+ * src/devices/grohtml/post-html.cc (main): Handle `-d' option.
+ * src/roff/groff/groff.cc (possible_command::insert_args): New
+ function.
+ (main): Use it for predriver handling instead of insert_arg().
+
+2001-07-19 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile: Added GROFF_BIN_PATH to make it work with uninstalled
+ groff also.
+
+ * src/include/posix.h: Define S_IWUSR if not yet defined.
+
+2001-07-18 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+
+2001-07-18 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/groff_mdoc.man: Document new -width and -column syntax.
+ Some other minor fixes.
+ * tmac/an-old.tmac: Add `AT' and `UC' macros.
+
+2001-07-17 Gaius Mulley <gaius@glam.ac.uk>
+
+ Replace call to `troff' with `groff -Z' to make it aware of
+ GROFF_BIN_PATH.
+
+ * src/preproc/html/pre-html.cc (TROFF_COMMAND): New macro.
+ (troff_command, command_prefix): Removed.
+ (alterDeviceTo): Use groff.
+ (addZ): New function.
+ (char_buffer::do_html): Use it.
+ (scanArguments): Use TROFF_COMMAND.
+ (findPrefix): Removed.
+ (main): Updated.
+ * src/roff/groff/groff.cc (main): Handle zflag for preprocessors.
+
+2001-07-17 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * doc/pic.ms: Documentation fixes.
+
+2001-07-17 Werner LEMBERG <wl@gnu.org>
+
+ Replace atexit() with global destructor.
+
+ * src/libs/libgroff/tmpfile.cc (xtmpfile_list): Add constructor.
+ (xtmpfile_list_init): New global structure to deallocate
+ xtmpfile_list on exit. Its destructor inherits most code from
+ remove_tmp_files().
+ (remove_tmp_files): Deleted.
+ (add_tmp_file): Simplified.
+
+2001-07-16 Werner LEMBERG <wl@gnu.org>
+
+ Replace strdup() with strsave().
+
+ * src/devices/grolbp/lbp.cc [!HAVE_STRDUP]: Removed.
+ (set_papersize): Use strsave() and a_delete.
+ (main): Use strsave().
+ * src/preproc/html/pre-html.cc (make_message, createAllPages,
+ removeAllPages): Use strsave() and a_delete.
+
+ * configure.ac: Remove test for strdup.
+ * Makefile.in: Comment updated.
+ * configure: Regenerated.
+
+2001-07-15 Werner LEMBERG <wl@gnu.org>
+
+ * win32-diffs: Updated.
+
+2001-07-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/pre-html.cc (makeTempFiles): Activate new code,
+ removing the old one.
+ * src/utils/indxbib/indxbib.cc (main): Remove compiler warning.
+
+2001-07-14 Ralph Corderoy <ralph@inputplus.demon.co.uk>
+
+ * src/libs/libgroff/tmpfile.cc (xtmpfile): Fix guard for `namep'.
+
+2001-07-12 Ruslan Ermilov <ru@FreeBSD.org>
+
+ Merge -xwidth into -width. Add -xwidth functionality to -column
+ also.
+
+ * tmac/doc.tmac (Bl): Add dummy doc-typeXXX and doc-spaceXXX to
+ avoid warning.
+ (doc-do-Bl-args): Merge -xwidth code with -width. Test whether
+ string immediately following a leading dot starts with a valid mdoc
+ argument.
+ Add similar code to the -column branch.
+ (doc-Bl-usage): Updated.
+ * groff_mdoc.man: s/-xwidth/-width/.
+
+2001-07-12 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cc (text_glob::is_br): Stop titles
+ running into centered or non-formatted text.
+
+2001-07-11 Werner LEMBERG <wl@gnu.org>
+
+ Introduce short and long prefixes to have the selection at run-time
+ whether there is a 8+3 limit for names of temporary files.
+
+ * src/libs/libgroff/tmpfile.cc (TMPFILE_PREFIX): Replaced with...
+ (TMPFILE_PREFIX_SHORT, TMPFILE_PREFIX_LONG): This.
+ (tmpfile_prefix, tmpfile_prefix_len, use_short_prefix): New
+ variables.
+ (temp_init): New global structure to initialize above three
+ variables.
+ (xtmptemplate): Use two parameters for long and short prefix.
+ Simplify code use above three variables.
+ (xtmpfile): Use long and short prefixes as parameters.
+ * src/include/lib.h: Updated.
+
+ * src/preproc/html/pre-html.cc ({PAGE,PS,REGION}_TEMPLATE): Replace
+ with ...
+ ({PAGE,PS,REGION}_TEMPLATE_{SHORT,LONG}): This.
+ (createAllPages, makeTempFiles): Updated.
+
+2001-07-09 Werner LEMBERG <wl@gnu.org>
+
+ * REVISION: Increased to 3.
+
+Copyright 2001-2002 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:
+coding: latin-1
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.119 b/ChangeLog.119
new file mode 100644
index 0000000..2840368
--- /dev/null
+++ b/ChangeLog.119
@@ -0,0 +1,5240 @@
+
+Version 1.19.2 released
+=======================
+
+ * tmac/groff_ms.man, doc/groff.texinfo: Synchronize.
+
+ * doc/webpage.ms: Updated.
+
+ * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
+
+2005-09-04 Jrgen Grahn <jgrahn@algonet.se>
+
+ * tmac/groff_ms.man: Document `PO' better.
+
+2005-09-03 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Document grotty changes.
+
+2005-09-01 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Backward compatibility support for `man' program.
+
+ * tmac/an-old.tmac (LL): Initialize it to respect prior LL register
+ assignment, prior `.ll' request and then package defaults, in this
+ specified order of decreasing priority.
+
+ * tmac/groff_man.man, doc/groff.texinfo (Man options): Document
+ altered `LL' register initialization priorities.
+
+2005-08-29 Gary W. Swearingen <garys@opusnet.com>
+
+ * tmac/groff_mdoc.man: Go into more details how the `AUTHORS'
+ section should look like.
+
+2005-08-29 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man: The month's name in a call to .Dd shouldn't
+ be abbreviated.
+
+2005-08-27 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/groff_man.man: Add man(7) too SEE ALSO and more minor
+ fixes.
+
+2005-08-11 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/www.tmac (URL, MTO): Handle empty \\$1 better.
+
+2005-08-09 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/www.tmac (URL, MTO): Use bold series if color support is
+ deactivated.
+
+2005-08-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * doc/Makefile.sub (uninstall_sub): Use --remove, not --delete
+ as argument to $(INSTALL_INFO). The latter isn't portable.
+ Remove $(HTMLEXAMPLEFILES) too.
+
+ * Makefile.in (uninstall_dirs): Remove $(datadir)/doc/groff and
+ $(datadir)/doc too.
+ Suppress warning messages and return always true.
+
+ * tmac/Makefile.sub (uninstall_sub): Remove www.tmac too.
+
+2005-07-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/xditview/gxditview.man: Change many `.I' to `.B'.
+ * man/groff_out.man: More markup and minor improvements.
+ * src/roff/groff/groff.man: Minor improvements.
+
+2005-06-28 Werner LEMBERG <wl@gnu.org>
+
+ * ChangeLog: Split off older entries into...
+ * ChangeLog.115 ChangeLog.116, ChangeLog.117, ChangeLog.118: New
+ files.
+
+2005-06-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/xditview/gxditview.man: More minor fixes.
+
+2005-06-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/troff.cpp (troff_output::set_fill,
+ troff_output::set_color, troff_output::reset_color): Use .bcolor and
+ .fcolor instead of \m and \M, respectively.
+
+2005-06-23 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/xditview/gxditview.man: More minor fixes.
+ * README: Formatting issues.
+ Mention some problems with Debian.
+
+2005-06-23 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/xditview/gxditview.man: Revised and improved.
+
+2005-06-22 Werner LEMBERG <wl@gnu.org>
+
+ Another round in fixing getopt problems. Hopefully the last one!
+ This time we use the getopt stuff from gnulib and define a prefix
+ unconditionally so that there are no collisions with any other
+ getopt implementations. This is a slight waste of space in case
+ we already use a GNU getopt implementation, but on
+ the other hand it really simplifies life.
+
+ * src/include/getopt.h: Use gnulib version.
+
+ * src/include/getopt_int.h: Use gnulib version.
+
+ * src/include/groff-getopt.h: Removed. Obsolete now.
+
+ * src/include/lib.h: Regarding getopt, don't handle any platform
+ specially; just include getopt.h.
+ (__GETOPT_PREFIX): Define (before getopt.h).
+
+ * src/include/Makefile.sub (HDRS): Updated.
+
+ * src/libs/libgroff/getopt1.c, src/libs/libgroff/getopt.c: Use
+ gnulib version.
+
+ * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Set
+ __GETOPT_PREFIX.
+
+ * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c
+ (__GETOPT_PREFIX): Define (before getopt.h).
+
+2005-06-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h: Provide a fix for Mac OS X to not include
+ groff-getopt.h.
+
+2005-06-20 Denis M. Wilson <dmw@oxytropis.plus.com>
+
+ * font/devps/prologue.ps (EP): Don't use `bind'. Reason: Using
+ `bind' to define a procedure which contains `showpage' means that an
+ invocation of `showpage' may execute wrongly (the exact effect
+ depending on the interpreter). Not usually a problem except under
+ transformations, such as combining pages.
+ (PEND): Don't call `clear'. Reason: Using `clear' in the definition
+ of /PEND means that stack underflow will occur if the stack is
+ deliberately non-empty before document inclusion. If included
+ files are found to be generally badly behaved, we could replace the
+ `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've
+ never found this necessary).
+
+2005-06-20 Jrgen Grahn <jgrahn@algonet.se>
+
+ * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero
+ earlier to get correct error message.
+
+2005-06-16 Bernd Warken <groff-bernd.warken-72@web.de>
+ * src/roff/nroff/nroff.sh: Add support for iso-8859-15.
+
+2005-06-15 Werner LEMBERG <wl@gnu.org>
+
+ Another try to update getopt files. This time we add a dummy
+ gettext.h file to satisfy the dependency.
+
+ * src/include/getopt.h, src/libs/libgroff/getopt.c,
+ src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
+
+ * src/include/getopt_int.h: New file (from GNU libc CVS).
+
+ * src/include/gettext.h: Dummy file which just defines a gettext()
+ macro.
+
+ * src/include/groff-getopt.h: Updated.
+
+ * src/include/Makefile.sub (HDRS): Add getopt_int.h and gettext.h.
+
+
+ * src/libs/libdriver/input.cpp (IntArray): Remove superfluous
+ `const' keywords in return value.
+
+ * src/preproc/html/pushback.cpp (pushBackBuffer::~pushBackBuffer):
+ Remove redundant variable `old'.
+ (pushBackBuffer::skipToNewline): Remove redundant variable `ch'.
+
+ * src/preproc/tbl/main.cpp (process_table): Remove redundant
+ variable `c'.
+
+
+ Fix more friend name injection problems since modern C++ compilers
+ fail otherwise. We simply provide (global) declarations for all
+ functions declared as friends. This is not really necessary but
+ doesn't harm.
+
+ * src/preproc/eqn/lex.cpp: Provide declarations for get_char,
+ peek_char, and get_location.
+
+ * src/preproc/refer/ref.h: Provide declarations for
+ compare_reference, same_reference, same_year, same_date,
+ same_author_last_name, and same_author_name.
+
+ * src/roff/troff/div.h: Provide declarations for do_divert and
+ page_offset.
+
+ * src/roff/troff/env.h: Provide declarations for title_length,
+ space_size, fill, no_fill, adjust, no_adjust, center, right_justify,
+ vertical_spacing, post_vertical_spacing, line_spacing, line_length,
+ indent, temporary_indent, do_underline, do_input_trap, set_tabs,
+ margin_character, no_number, number_lines, leader_character,
+ tab_character, hyphenate_request, no_hyphenate,
+ hyphen_line_max_request, hyphenation_space_request,
+ hyphenation_margin_request, line_width, tabs_save, tabs_restore,
+ line_tabs_request, widow_control_request, and do_divert.
+
+ * src/roff/troff/input.cpp: Provide declaration for chop_macro.
+
+ * src/roff/troff/node.cpp: Provide declarations for class
+ tfont_spec.
+ Provide declaration for make_tfont.
+
+2005-05-29 Werner LEMBERG <wl@gnu.org>
+
+ * doc/fdl.texi: Updated to version 1.2. Reported by
+ Bernd Warken <groff-bernd.warken-72@web.de>.
+
+2005-05-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grolbp/lbp.cpp, src/devices/grolbp/lbp.h: Remove
+ redundant semicolons.
+
+ * src/preproc/eqn/Makefile.sub, src/preproc/html/Makefile.sub,
+ src/preproc/soelim/Makefile.sub, src/preproc/tbl/Makefile.sub:
+ Define `MLIB'. Some compilers need this for linking with libgroff.
+
+2005-05-27 Werner LEMBERG <wl@gnu.org>
+
+ * MANIFEST, README, doc/webpage.ms: Updated.
+
+2005-05-26 Werner LEMBERG <wl@gnu.org>
+
+ * All affected files: Update postal address of FSF.
+
+2005-05-25 Keith Marshall <keith.d.marshall@ntlworld.com>
+ Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * README: More fixes.
+
+ * README.CVS: Removed. Its contents is now part of the README file.
+
+2005-05-21 Werner LEMBERG <wl@gnu.org>
+
+ * README: Updated. Based on a patch from
+ Bernd Warken <groff-bernd.warken-72@web.de>.
+
+2005-05-16 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Miscellaneous script portability enhancements.
+
+ * aclocal.m4: (GROFF_CSH_HACK): Add space in shebang prototype for
+ generated conftest.sh script, conforming to portability
+ recommendation in autoconf docs.
+ * configure: Likewise, for code generated by GROFF_CSH_HACK.
+ * contrib/eqn2graph/eqn2graph.sh: Add space in shebang, conforming
+ to portability recommendation in autoconf docs.
+ * contrib/grap2graph/grap2graph.sh: Likewise.
+ * contrib/pic2graph/pic2graph.sh: Likewise.
+ * font/devps/generate/afmname: Likewise.
+ * src/devices/xditview/ad2c: Likewise.
+ * src/preproc/eqn/neqn.sh: Likewise.
+ * src/roff/grog/grog.pl: Likewise.
+ * src/roff/grog/grog.sh: Likewise.
+ * src/roff/nroff/nroff.sh: Likewise.
+ * PROBLEMS: Likewise, in embedded script examples.
+
+2005-05-16 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Improve portability of `pdfroff' shell script.
+
+ * arch/misc/shdeps.sh: Add space in shebang, conforming to
+ portability guidelines in `autoconf' docs.
+ (PATH_SEARCH_SETUP): New substitution; emits PATH_SEPARATOR
+ initialization code. Used by contrib/pdfmark/pdfroff.sh's
+ `searchpath' function.
+
+2005-05-14 Werner LEMBERG <wl@gnu.org>
+
+ * contrib/pic2graph/pic2graph.sh, contrib/graph2graph.sh,
+ contrib/eqn2graph.sh: Add option `-trim' to `convert' which is
+ needed for newer ImageMagick versions.
+
+2005-05-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/refer/refer.man: Many small typographic fixes.
+
+2005-05-06 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/devices/grohtml/post-html.cpp (assert_state::~assert_state):
+ Use `char *' cast for a_delete.
+
+2005-05-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/maxpathname.cpp: Include stdlib.h.
+ src/libs/libgroff/relocate.cpp: Use path_name_max everywhere.
+
+2005-05-03 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/devices/grohtml/post-html.cpp: Use casts to `char *' if using
+ `a_delete' for `const char *'.
+
+2005-05-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/post-html.cpp,
+ src/devices/grohtml/html-table.cpp,
+ src/devices/grohtml/html-text.cpp, src/devices/grohtml/output.cpp:
+ Replace malloc/free with new/delete/a_delete.
+
+ * src/devices/grolbp/lbp.h: Remove superfluous semicolons which
+ are prohibited with ANSI C++.
+ (lbpprintf, vdmprintf): Remove useless `inline' keyword (since the
+ function has a variable number of arguments).
+
+ * src/preproc/grn/main.cpp (doinput): Change return type to `int'.
+ Simplify function and update all callers.
+
+2005-05-02 Werner LEMBERG <wl@gnu.org>
+
+ Undo getopt changes from 2005-04-30. We don't want a dependency
+ on gettext.
+
+ * src/include/getopt_int.h: Removed.
+
+ * src/include/getopt.h, src/include/groff-getopt.h,
+ src/include/Makefile.sub, src/libs/libgroff/getopt.c,
+ src/libs/libgroff/getopt1.c: Revert to previous version.
+
+
+ * src/include/nonposix.h (access) [_MSC_VER]: New macro.
+
+ * src/include/posix.h (F_OK): Define conditionally.
+
+ * src/devices/grotty/tty.cpp (tty_printer::make_underline): Use
+ different variable name in second `for' loop to avoid MSVC compiler
+ problem.
+
+2005-04-30 Werner LEMBERG <wl@gnu.org>
+
+ AC_TYPE_SIGNAL from current autoconf can fail if CC=g++.
+
+ * aclocal.m4 (GROFF_TYPE_SIGNAL): New function.
+ * configure.ac: Use GROFF_TYPE_SIGNAL, not AC_TYPE_SIGNAL.
+ * configure, src/include/config.hin: Regenerated.
+
+ * PROBLEMS: Updated.
+
+
+ Update getopt files.
+
+ * src/include/getopt.h, src/libs/libgroff/getopt.c,
+ src/libs/libgroff/getopt1.c: Updated from GNU libc CVS.
+
+ * src/include/getopt_int.h: New file (from GNU libc CVS).
+
+ * src/include/groff-getopt.h: Updated.
+
+ * src/include/Makefile.sub (HDRS): Add getopt_int.h.
+
+
+ * font/devutf8/NOTES: Updated.
+
+2005-04-28 Werner LEMBERG <wl@gnu.org>
+
+ Bug fix for Win32 relocatable code. Based on a patch from Keith
+ Marshall.
+
+ * src/libs/libgroff/maxpathname.cpp (PATH_MAX): Test for `_MAX_PATH'
+ also.
+
+ * src/libs/libgroff/relocate.c (DEBUG): Define it conditionally.
+ (searchpath) [_WIN32]: Use `_fullpath', not `realpath'.
+
+2005-04-28 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Correct `gnu.eps' handling for build from distribution tarball, with
+ separate source and build directories.
+
+ * doc/Makefile.sub: (examples.stamp): New target; forces copy of
+ grnexmpl.g, groff.css and gnu.eps from source to build directory;
+ generate gnu.eps from gnu.xpm if required; touch examples.stamp.
+ (prepare_examples): Make it depend on examples.stamp.
+ (CLEANADD): Add examples.stamp.
+
+2005-04-27 Werner LEMBERG <wl@gnu.org>
+
+ Implement the rule
+
+ position: `(' position `)'
+
+ in pic.
+
+ * src/preproc/pic/pic.y (position, position_not_place): Handle
+ additional parentheses.
+
+ * doc/pic.ms: Updated.
+
+2005-04-23 Larry Jones <lawrence.jones@ugs.com>
+
+ * src/utils/xtotroff/xtotroff.c (MapFont): Fix variable declaration.
+
+2005-04-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/pipeline.c: Don't include ctype.h.
+
+2005-04-13 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/nroff/nroff.man: Document option `-M'.
+
+2005-04-13 Bruce Lilly <blilly@erols.com>
+
+ * src/roff/nroff/nroff.sh: Make the script accept option `-M'.
+
+2005-04-01 Kees Zeelenberg <kzlg@users.sourceforge.net>
+ Werner LEMBERG <wl@gnu.org>
+
+ Add binary relocation support for Windows platforms.
+
+ * src/include/Makefile.sub (defs.h): Add `INSTALLPATH'.
+
+ * src/include/relocate.h, src/libs/libgroff/relocate.cpp: New files.
+
+ * src/libs/libgroff/searchpath.cpp: Handle `relocate'.
+ (search_path::search_path, search_path::open_file_cautious): Use
+ `relocate'.
+
+ * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
+ src/include/Makefile.sub (HDRS): Updated.
+
+2005-04-01 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/post-html.cpp: Don't use strdup/free but
+ strsave/a_delete.
+
+ * src/libs/libgroff/font.cpp: Replace strdup with strsave.
+
+ * src/libs/libgroff/maxfilename.cpp: Don't include limits.h since
+ lib.h already does it.
+
+ * src/libs/libgroff/maxpathname.cpp: New file, defining
+ path_name_max.
+
+ * src/include/lib.h: Add prototype for path_name_max.
+
+ * src/libs/libgroff/Makefile.sub (OBJS, CCSRCS): Updated.
+
+ * src/include/nonposix.h (PATH_EXT): New macro.
+
+2005-03-28 Werner LEMBERG <wl@gnu.org>
+
+ Add support for double- and zero-width characters in grotty.
+
+ * src/devices/grotty/tty.cpp (glyph): Add width.
+ (tty_printer::make_underline, tty_printer::make_bold,
+ tty_printer::add_character): Add parameter to pass character width.
+ Update all callers.
+ (tty_printer::end_page): Increase hpos by actual character width.
+
+ * font/devutf8/R.proto: Specify zero width for non-spacing
+ characters.
+
+ * tmac/unicode.tmac: Remove definitions for non-spacing entities.
+
+ * Makefile.comm (extraclean): Remove more junk files.
+
+2005-03-25 Werner LEMBERG <wl@gnu.org>
+
+ * configure.ac: Undo change from 2005-03-24.
+ * configure: Regenerated.
+
+2005-03-24 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (NOMAKEDIRS): Add contrib/gdiffmk/tests.
+ (dist): Search Makefile while descending into $(EXTRADIRS).
+
+ * doc/Makefile.in (.PHONY): Add.
+ (clean): Don't remove *.png and *.eps.
+ Don't handle *.gif.
+ (realclean): Remove *.png and *.eps.
+ (extraclean): Depend on distclean.
+
+ * configure.ac: Add copyright.
+ Handle contrib/pdfmark/Makefile.
+
+ * configure: Regenerated.
+
+2005-03-18 Larry Kollar <kollar@alltel.net>
+
+ Add numbered and definition lists to www.tmac.
+
+ * tmac/www.tmac (www-ul-level1, www-ul-level2, www-ul-level3,
+ www-ol-level1, www-ol-level2, www-ol-level3, www-ol-tmp): New
+ auxiliary string registers.
+ (www-ul-level, www-ol-level, www-dl-level, www-ol-ctr1, www-ol-ctr2,
+ www-ol-ctr3, www-dl-shift): New auxiliary number registers.
+ (www-level): Removed.
+ (www-level1, www-level2, www-level3): Initialize to empty.
+ (www-level0, www-level4, www-level5, www-level6, www-level7,
+ www-level8, www-level9): New string registers.
+ (www-push-li, www-pop-li): New macros.
+ (www-push-level, www-pop-level): Renamed to...
+ (www-push-ul-level, www-pop-ul-level): This.
+ Updated.
+ (www-push-ol-level, www-pop-ol-level): New macros.
+ (ULS, ULE): Updated.
+ (OLS, OLE, DLS, DLE): New user macros.
+ (LI): Removed. It is aliased to one of...
+ (www-li-ul, www-li-ol, www-li-dl): New macros.
+
+ * tmac/groff_www.man: Document new macros.
+
+ * NEWS: Updated.
+
+2005-03-18 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-common (doc-operating-system-NetBSD-2.0.1,
+ doc-operating-system-NetBSD-2.0.2): New strings.
+
+ * tmac/groff_mdoc.man: Updated.
+
+2005-03-17 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (CLEANADD): Add `groff.html'.
+
+2005-03-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/hypot.c: Renamed to...
+ * src/libs/libgroff/hypot.cpp: This. Updated to C++.
+
+ * src/libs/libgroff/Makefile.sub (CCSRCS, CSRCS): Updated.
+
+ * src/include/lib.h: Updated.
+
+2005-03-16 Werner LEMBERG <wl@gnu.org>
+
+ Add workaround for broken hypot() on Interix.
+
+ * src/libs/libgroff/hypot.c: New wrapper file for `hypot'.
+
+ * src/libs/libgroff/Makefile.sub (OBJS): Add `hypot.o'.
+ (CSRCS): Add `hypot.c'.
+
+ * src/include/lib.h: Declare `groff_hypot'.
+
+ * src/preproc/grn/hgraph.cpp: Don't declare `hypot'.
+ Use `groff_hypot'.
+
+ * src/preproc/pic/pic.h: Don't declare `hypot'.
+
+ * src/preproc/pic/object.cpp (hypot): Use `groff_hypot'.
+
+2005-03-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::lookahead_for_tables): End .ce properly to avoid a
+ segfault.
+
+2005-03-15 Werner LEMBERG <wl@gnu.org>
+
+ makeinfo 4.8 doesn't produce good HTML output from groff.texinfo.
+
+ * doc/fixinfo.sh: New script to postprocess makeinfo's HTML output.
+
+ * doc/Makefile.in (.texinfo.html): Call fixinfo.sh.
+
+2005-03-14 Werner LEMBERG <wl@gnu.org>
+
+ Add Cyrillic support to devutf8 and devhtml.
+
+ * font/devutf8/R.proto, font/devhtml/R.proto: Add Cyrillic blocks.
+
+ * tmac/unicode.tmac: New file.
+
+ * tmac/tty.tmac: Include unicode.tmac if device is utf8.
+
+ * tmac/Makefile.sub (NORMALFILES): Add unicode.tmac.
+
+ * NEWS: Updated.
+
+2005-03-02 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/libs/libdriver/printer.cpp (check_for_output_error): New
+ function. It has been introduced to catch peculiar error contexts
+ on MS-Windows platforms.
+
+2005-02-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (string_iterator::fill): Protect against
+ null pointer.
+
+ * tmac/papersize.tmac: Convert `paper' string contents to lowercase.
+
+ * configure: Regenerated.
+
+ * NEWS: Updated.
+
+2005-02-28 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Integrate `pdfmark' into normal groff build system;
+ install macro `pdfmark' packages, build and install `pdfroff',
+ and PDF format documentation.
+
+ * Makefile.comm: Add PDFDOCDIR.
+
+ * Makefile.in: (MDEFINES) ALT_AWK_PROGS, ALT_GHOSTSCRIPT_PROGS,
+ pdfdocdir, make_pdfdoc, make_install_pdfdoc: New variables.
+ (unstall_dirs): Add pdfdocdir.
+
+ * aclocal.m4: (GROFF_GHOSTSCRIPT_PREFS): New function; support
+ `--with-alt-gs' option, set ALT_GHOSTSCRIPT_PROGS.
+ (GROFF_GHOSTSCRIPT_PATH): Support `--with-gs' option, force use of
+ GROFF_GHOSTSCRIPT_PREFS, set GHOSTSCRIPT.
+ (GROFF_HTML_PROGRAMS): Force use of GROFF_GHOSTSCRIPT_PATH; tidy up.
+ (GROFF_AWK_PREFS): New function; support `--with-alt-awk' option,
+ set ALT_AWK_PROGS.
+ (GROFF_AWK_PATH): New function; support `--with-awk' option, force
+ use of GROFF_AWK_PREFS.
+ (GROFF_PDFDOC_PROGRAMS): New function; force use of GROFF_AWK_PATH
+ and GROFF_GHOSTSCRIPT_PATH, set make_pdfdoc and make_install_pdfdoc.
+
+ * configure.ac: Add AC_PREREQ(2.59), GROFF_PDFDOC_PROGRAMS.
+ Remove GROFF_GHOSTSCRIPT_PATH, (forced by GROFF_PDFDOC_PROGRAMS, and
+ also by modified GROFF_HTML_PROGRAMS).
+
+2005-02-27 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/html-text.cpp (html_text::do_pre): Preserve
+ paragraph spacing.
+ (html_text::done_para): Unset `start_space'.
+ (html_text::remove_para_align): Call `retrieve_para_space' for the
+ spacing.
+
+ * src/devices/grohtml/post-html.cpp (html_printer::emit_raw): Unset
+ `seen_space'.
+ (html_printer::do_check_center): Emit vertical space if necessary.
+
+ * src/roff/troff/env.cpp (environment_switch): Preserve
+ `seen_space', `seen_eol', and `suppress_next_eol' while switching
+ environments.
+
+ * src/roff/troff/node.cpp (suppress_node::suppress_node): Set
+ `is_special'.
+
+2005-02-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/eqn.man, NEWS: Document various extensions of
+ eqn.
+
+2005-02-17 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms, man/groff.man: Fix typos.
+
+ * doc/groff.texinfo: Fix typos.
+ (\LEmacro): Get proper mathematical spacing.
+
+2005-02-16 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_APPRESDIR_CHECK): Improve warning message.
+ * configure: Regenerated with autoconf 2.59b.
+
+2005-02-16 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp (html_printer::is_line_start,
+ html_printer::start_font): Fix handling of preformatted text.
+
+2005-02-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ These patches modify the indentation implementation to use `<p
+ style=margin-left: n%>'. Many thanks to Peter and Larry for
+ suggesting this solution. Grohtml only uses tables for `.IP' and
+ related tags when the first operand has a short width.
+
+ Similarly, they modify all vertical space code. By default, grohtml
+ sets up a style sheet which uses no vertical space between `table',
+ `pre', and `p' tags. It forces spaces when it needs them using
+ `style="margin-top: 1em"'.
+
+ * src/devices/grohtml/html-table.cpp: Include `html-text.h'.
+ (html_table::emit_table_header, html_table::emit_new_row):
+ Rewritten.
+ (html_table::set_space): New function.
+ (html_indent::html_indent): Don't set `is_used'.
+ (html_indent::begin): Rewritten.
+ (html_indent::end): Remove code in function.
+
+ * src/devices/grohtml/html-table.h: Updated.
+ (html_table): Make `out' public.
+
+ * src/devices/grohtml/html-text.cpp (html_text::html_text):
+ Initialize `start_space' with FALSE.
+ (html_text::end_tag) <P_TAG, PRE_TAG>: Updated.
+ (html_text::issue_tag): Add argument to handle space style.
+ (html_text::start_tag) <P_TAG, PRE_TAG>: Updated.
+ (html_text::flush_text): Don't set `start_space'.
+ (html_text::push_para): Don't set `p->really_issued'.
+ (html_text::do_emittext): Updated.
+ (html_text::do_para): Add parameter to handle space.
+ Update all callers.
+ (html_text::retrieve_para_space): New function.
+
+ * src/devices/grohtml/html-text.h (STYLE_VERTICAL_SPACE): New macro.
+ (tag_definition): Remove `really_issued'.
+ (html_text): Updated.
+
+ * src/devices/grohtml/post-html.cpp (html_printer): Add variables
+ `current_column' and `row_space'.
+ Update constructor.
+ (html_printer::emit_raw, html_printer::write_header,
+ html_printer::do_indent, html_printer::do_check_center,
+ html_printer::do_tab_ts): Handle vertical space.
+ (html_printer:do_tab_te, html_printer::do_end_para): Call
+ `remove_para_space'.
+ (html_printer::do_col): Rewritten.
+ (html_printer::flush_globs): Remove debugging code.
+ (html_printer::is_line_start): New function.
+ (html_printer::start_font): Use `is_line_start'.
+ (html_printer::writeHeadMetaStyle): New function.
+ (html_printer::do_file_components, html_printer::~html_printer):
+ Call `writeHeadMetaStyle'.
+
+ * tmac/www.tmac (www-handle-percent): New macro.
+ (MPIMG): Handle percent values for width and height parameters.
+ (DC): Updated.
+
+ * tmac/groff_www.man: Updated.
+
+2005-02-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.pl: Remove an incorrect `my' from
+ $psname and $italic_angle.
+ Immediately restart file input loops if `split' returns an empty
+ array.
+
+2005-02-13 Michail Vidiassov <master@iaas.msu.ru>
+ Werner LEMBERG <wl@gnu.org>
+
+ Update afmtodit to better support Unicode (Michail).
+ Update afmtodit to use Perl 5 syntax (Werner).
+
+ * src/utils/afmtodit/afmtodit.pl: Don't use `getopts.pl' but
+ `Getopts::Std'.
+ Decorate variables with `my' where necessary.
+ Use `defined' where necessary to avoid warnings.
+ Don't use `do' for subroutine calls.
+ Other minor syntax updates.
+ Check for both `uXXXX[X[X]]' and `uniXXXX'.
+ Handle glyph variants properly.
+ (%unicode_decomposed, %AGL_to_unicode): Don't use `u' prefix in
+ strings.
+
+ * src/utils/afmtodit/afmtodit.man: Updated.
+
+2005-02-13 Werner LEMBERG <wl@gnu.org>
+
+ Make groff.texinfo work with texinfo 4.8.
+
+ * doc/groff.texinfo (@Var): Use @r and @slanted.
+ (@defdummy, @Def*): Use @c to avoid empty lines.
+ (\angles): Replaced with...
+ (\Langlemacro, \Ranglemacro): New TeX macros.
+ (@Langlemacro, @Ranglemacro): New variables defined with @set.
+ (@angles): Use @Langlemacro and @Ranglemacro.
+ (\LE): Replaced with...
+ (\LEmacro): New TeX macro.
+ (@LEmacro): New variable defined with @set.
+ (@LE): Use @LEmacro.
+ (@Lparenmacro, @Rparenmacro, @Lbrackmacro, @Rbrackmacro): New
+ variables defined with @set.
+ (@lparen, @rparen, @lbrack, @rbrack): Replaced with...
+ (@Lparen, @Rparen, @Lbrack, @Rbrack): New macros.
+ Update all callers.
+
+ Other minor updates.
+
+ * doc/texinfo.tex: Update to texinfo version 4.8.
+
+ * README.CVS: Updated.
+
+2005-02-09 Alejandro Lpez-Valencia <palopez@etb.net.co> (tiny change)
+
+ * doc/groff.texinfo (ms Document Control Registers): Document `HY'
+ and `FAM' registers.
+
+2005-02-05 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man, tmac/doc-common, tmac/doc-ditroff,
+ tmac/doc-nroff, tmac/doc-old.tmac, tmac/doc-syms, tmac/doc.tmac:
+ Update BSD license.
+
+2005-02-01 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man: Add information about paper size.
+
+2005-01-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/nroff/nroff.sh: Handle `*.ISO8859-1' in locale. From
+ NetBSD bin/29114.
+
+2005-01-22 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (Sm): Improved. It didn't work properly in many
+ cases.
+ (Re): Emit a warning if called without `.Rs'.
+ (doc-finish-reference): Use parameter for decreasing
+ `doc-reference-count'.
+ (doc-print-reference): Pass specific count parameters to
+ `doc-finish-reference'.
+
+2005-01-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libdriver/input.cpp (delete_current_env, do_file):
+ Reset pointers to zero after deallocation. This fixes a crash
+ if a driver is called with multiple input files. Reported by
+ Ken Chilton <ken@chiltonfamily.org>.
+
+ * src/devices/grops/grops.man: Add more info on DSC.
+
+2005-01-17 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common (Dd), tmac/doc-ditroff (gX, doc-setup-header):
+ Remove dead code.
+
+2005-01-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/div.cpp (top_level_diversion::space): Protect
+ against division by zero.
+
+2005-01-13 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (Ef): Restore doc-curr-font and doc-curr-size.
+
+2004-12-19 Werner LEMBERG <wl@gnu.org>
+
+ * install-sh: New version; taken from texinfo CVS.
+
+2004-12-17 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/devtag.tmac: Protect against loading twice.
+ Protect against compatibility mode.
+ * tmac/www.tmac: Protect against loading twice.
+ Load `devtag.tmac' before switching off compatibility mode.
+ * tmac/an-old.tmac, tmac/s.tmac: Load `devtag.tmac'.
+
+2004-12-16 Mike Bianchi <mbianchi@Foveal.com>
+
+ * configure.ac: Produce `contrib/gdiffmk/tests/runtests'.
+ * configure: Updated.
+
+2004-12-15 Thomas Klausner <wiz@netbsd.org>
+
+ * tmac/doc-syms, tmac/groff_mdoc.man: Add `libpam' library.
+
+2004-12-15 Werner LEMBERG <wl@gnu.org>
+
+ Make `test-groff' work again -- previously, wrong paths have been
+ used. Additionally, it can now be called from anywhere.
+
+ * test-groff.in: Don't test for groff binary. This is no longer
+ necessary since the proper paths are determined by `configure'.
+ (EXEEXT): Removed. No longer used.
+ (srcdir, builddir): Use values provided by the configure script.
+ (XENVIRONMENT): Updated.
+
+ * INSTALL: Updated.
+
+2004-12-14 Gaius Mulley <gaius@glam.ac.uk>
+
+ Make .tag and .taga work for all devices (but only grohtml actually
+ handles them).
+
+ * src/devices/grohtml/post-html.cpp: s/html-tag/devtag/.
+ (text_glob::is_br, page::add_tag, html_printer::troff_tag,
+ html_printer::handle_assertion): Don't use hard-coded string
+ lengths.
+ (html_printer::lookahead_for_table): Reset `tbl' properly if
+ necessary.
+ (html_printer::devtag): New function, handling `devtag'.
+ (html_printer::special): Don't handle `html-tag'.
+
+ * src/include/printer.h, src/libs/libdriver/printer.cpp
+ (printer::devtag): New virtual function.
+
+ * src/libs/libdriver/input.cpp (parse_x_command) <'X'>: Handle
+ `devtag'.
+
+ * src/roff/troff/env.cpp, src/roff/troff/mtsm.cpp,
+ src/roff/troff/node.cpp: s/html-tag/devtag/.
+
+ * src/roff/troff/input.cpp (tag, taga): Always call
+ curenv->add_node.
+
+ * tmac/an-old.tmac, tmac/s.tmac, tmac/troffrc-end: Use DEVTAG*
+ macros instead of HTML-TAG*.
+
+ * tmac/devtag.tmac: New file, defining the DEVTAG-* macros.
+
+ * tmac/www.tmac: Load devtag.tmac.
+ Replace HTML-TAG* macros with DEVTAG* macros.
+ (HTML, HTML-NS): Changed definitions.
+ (URL): Use HTML-NS.
+ (HTML-TAG, HTML-TAG-NS, HTML-TAG-NEXT): Removed.
+
+ * tmac/Makefile.sub (NORMALFILES): Add devtag.tmac.
+
+2004-12-10 Werner LEMBERG <wl@gnu.org>
+
+ Import Mike's `gdiffmk' package.
+
+ * contrib/gdiffmk/*: New files.
+ * Makefile.in (OTHERDIRS): Add contrib/gdiffmk.
+ * NEWS: Updated.
+
+2004-12-08 Werner LEMBERG <wl@gnu.org>
+
+ Import Keith's `pdfmark' package. Integration is very preliminary.
+
+ * contrib/pdfmark/*: New files.
+ * Makefile.in (OTHERDIRS): Add contrib/pdfmark.
+ * NEWS: Updated.
+
+2004-12-07 Gaius Mulley <gaius@glam.ac.uk>
+
+ Fix a bug with title handling in HTML.
+
+ * src/devices/grohtml/post-html.cpp (text_glob::is_nf,
+ text_glob::is_fi, text_glob::is_ce): Use strlen to compute string
+ length.
+ (html_printer::handle_tag_within_title): New function.
+ (html_printer::do_title): Use it.
+
+ * tmac/s.tmac (TL): Don't set `need_eo_tl'.
+ (cov*tl-au-print): Emit `.eo.tl' tag.
+
+2004-12-05 Alejandro Lpez-Valencia <dradul@etb.net.co>
+
+ * man/groff_char.man: Minor imrovements.
+
+2004-12-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/eqn.man: Revised.
+
+2004-11-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/xtotroff/xtotroff.c: Reformat to be similar to other
+ groff source files.
+ Include config.h.
+ Include limits.h.
+ Remove X_NOT_STDC_ENV conditional.
+ (Version_string, program_name): New global variables.
+ (groff_flag): Removed.
+ (MapFont): Updated.
+ (usage): Take a stream as argument.
+ Use `program_name'.
+ Update all callers.
+ (main): Add `long_options' array for `--help' and `--version'.
+ Make `-g' a dummy option.
+ Handle `-v' and unknown options.
+ Remove unused `position' variable.
+
+ * src/utils/xtotroff/Makefile.sub (MAN1): Define.
+ (XLIBS): Add LIBGROFF.
+
+ * src/utils/xtotroff/xtotroff.man, src/utils/xtotroff/Makefile.in:
+ New files.
+
+ * src/devices/xditview/Dvi.c (default_font_map): Split into three
+ parts to avoid compiler warning.
+ (resources): Don't initialize with `default_font_map'.
+ (ClassInitialize): Initialize first element of `resources'.
+
+ * src/devices/xditview/Makefile.sub (devdir, xtotroff, DPIS, fonts):
+ Removed.
+
+ * src/utils/lkbib/lkbib.man, src/utils/lookbib/lookbib.man,
+ src/utils/pfbtops/pfbtops.man: Revised, updated.
+
+ * configure.ac: Generate src/utils/xtotroff/Makefile.
+ * configure: Regenerated.
+
+2004-11-24 Werner LEMBERG <wl@gnu.org>
+
+ First fixes to get produce HTML.
+
+ * src/devices/grohtml/post-html.cpp (generate_img_src): Add `alt'
+ attribute.
+
+ * tmac/www.tmac (IMG, PIMG, MPIMG): Add `alt' attribute.
+ (HR, LI): Use `HTML</p>', not `HTML'.
+
+ * doc/webpage.ms: Minor updates.
+
+2004-11-23 Larry Kollar <kollar@alltel.net>
+
+ Add option -S grohtml to determine the file split level.
+
+ * src/devices/grohtml/post-html.cpp (split_level): New global
+ variable.
+ (html_header::determine_header_level): Use split_level.
+ (main): Handle `-S' command line option.
+ Sort options.
+
+ * src/preproc/html/pre-html.cpp (scanArguments): Updated.
+
+ * src/devices/grohtml/grohtml.man: Document it.
+ Sort options.
+
+ * NEWS: Document it.
+
+2004-11-23 Y T <doarhop@hotmail.com>
+
+ * tmac/s.tmac (ref*add-V, ref*add-N): New macros for handling
+ the volume and number refer entries.
+
+2004-11-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/html-table.cpp
+ (html_table::emit_table_header): Don't emit `cols' attribute which
+ doesn't exist in HTML 4.0 and is thus invalid.
+
+ * NEWS: More minor fixes and updates.
+
+2004-11-18 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac (HTML-NS, HTML-TAG-NS, HTML-TAG-NEXT): Simplified.
+ (HTML</p>): Minor clean-up.
+
+ * tmac/groff_www.man: Updated.
+
+ * src/devices/grohtml/grohtml.man: Revised and updated.
+
+ * NEWS: Updated.
+
+2004-11-18 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
+ Fix space insertion.
+ (html_printer::do_links): Fix rules generation around automatic
+ heading links.
+
+ * tmac/www.tmac (LK): Use HTML-TAG-NS.
+ (HR): Simplify.
+ No longer emit empty line for non-HTML devices.
+
+2004-11-17 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.in (prepare_examples, webpage.html): Handle
+ `groff.css'.
+
+ * doc/Makefile.sub (EXAMPLEFILES, CLEANNOTSRCDIRADD,
+ prepare_examples, webpage.html): Handle `groff.css'.
+
+2004-11-15 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, README, doc/webpage.ms: Updated.
+
+ * tmac/www.tmac (HTML, HTML-TAG): Minor clean-ups.
+
+2004-10-30 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/include/printer.h (printer): Remove virtual function
+ `round_width'.
+ Update all source files.
+
+ * src/devices/grohtml/post-html.cpp (html_printer): New member
+ function `round_width'.
+
+2004-10-20 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * src/preproc/tbl/table.cpp (table::do_row): Fix handling of the `d'
+ column key letter suffix.
+
+2004-10-14 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (check): Depend on `site.exp' and `docheck'.
+ (docheck): Run dejagnu's `runtest' if it exists.
+ (site.exp): Create dejagnu configuration file.
+
+ * Makefile.sub (DISTCLEANFILES): Add files related to dejagnu.
+
+2004-10-13 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/html-text.cpp (html_text_get_alignment),
+ src/devices/grohtml/post-html.cpp (make_val,
+ html_printer::handle_state_assertion): Fix compiler warnings.
+
+ * src/roff/troff/div.cpp: Include `stringclass.h' and `mtsm.h'.
+ (diversion::diversion): Fix order of initializers.
+
+ * src/roff/troff/div.h: Don't include `mtsm.h'.
+
+ * src/roff/troff/env.cpp: Include `stringclass.h' and `mtsm.h'.
+ (environment::environment): Fix order of initializers.
+ (environment::make_tag, environment::construct_format_state): Fix
+ compiler warnings.
+
+ * src/roff/troff/input.cpp: Include `stringclass.h' and `mtsm.h'.
+ (input_iterator::input_iterator, macro::macro): Fix order of
+ initializers.
+
+ * src/roff/troff/mtsm.cpp: Include only necessary header files.
+ (state_set::add, state_set::val): Fix compiler warnings.
+
+ * src/roff/troff/mtsm.h: Don't include `stringclass.h'.
+ (bool_value_state, int_value_state, units_value_state,
+ string_value_state): Remove comma after last element which causes
+ an error with g++ 3.3.3.
+
+ * src/roff/troff/node.cpp: Include `stringclass.h'.
+ (hline_node::hline_node, vline_node::vline_node,
+ space_char_hmotion_node, left_italic_corrected_node): Fix compiler
+ warnings.
+ (zero_width_node::zero_width_node): Fix order of initializers.
+
+ * src/roff/troff/node.h: Don't include `mtsm.h'.
+ (hmotion_node): Fix compiler warnings.
+
+ * src/roff/troff/number.cpp: Include `stringclass.h' and `mtsm.h'.
+
+2004-10-12 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/groff.css: New file.
+
+ * doc/webpage.ms: Use `groff.css'.
+ Other small fixes.
+
+ * tmac/an-old.tmac (need_eo_h): New number register.
+ (TH): Emit `.eo.tl' tag after title.
+ (SH): Set `need_eo_h'.
+ (an-trap): Handle `need_eo_h'.
+ (an-do-tag): s/HTML-TAG-NS/HTML-TAG-NEXT/.
+
+ * tmac/s.tmac (need_eo_h, need_eo_tl): New number registers.
+ (TL): Always start diversion.
+ Updated.
+ (@AI): Always call `par@reset'.
+ (@AB): Update code for -Thtml.
+ (cov*tl-au-print): Handle -Thtml.
+ (par@reset): Handle `need_eo_tl', `need_eo_h'.
+ (@IP): Simplified.
+ (@IT-html): Removed.
+ (@SH): Set `need_eo_h' for -Thtml.
+ (par@TL): s/HTML-TAG/HTMl-TAG-NS/.
+ Set `need_eo_tl'.
+ (@NH): s/HTML-TAG/HTMl-TAG-NS/.
+ Set `need_eo_h' for -Thtml.
+ (@EQ, @EN): Don't handle -Thtml specially.
+ (par@load-init): Don't handle -Thtml specially.
+
+ * tmac/www.tmac (www:paraspace): New macro.
+ (HTML-NS, HTML-TAG-NS): Use new `tag' request.
+ (HTML</p>, HTML-TAG-NEXT): New macros.
+ (HnE): Emit tag `.eo.h' instead of break.
+ (HR): s/HTML-NS/HTML/.
+ (www-end-nowhere): End diversion only if `www-html' not set.
+ Emit `.eo.tl' tag.
+ (ULS, ULE): s|HTML|HTML</p>|.
+ (LI): Call `www:paraspace'.
+ (HEAD): New macro.
+
+2004-10-11 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/request.h (macro): Make `p' public.
+ New variable `is_a_diversion'.
+ New member function `is_diversion'.
+
+
+ * src/devices/grohtml/html.h (simple_output): New member function
+ `force_nl'.
+
+ * src/devices/grohtml/html-table.cpp (tabs::compatible): Fix
+ computation of `total'.
+ (tabs::check_init): New function.
+ (html_table::emit_table_header): Emit style data.
+ (html_table::insert_column): Improved.
+
+ * src/devices/grohtml/html-table.h: Updated.
+
+ * src/devices/grohtml/html-text.cpp (html_text::html_text):
+ Initialize `start_space' with TRUE.
+ (html_text::end_tag, html_start_tag): Fix `P_TAG' and `PRE_TAG'
+ cases.
+ (html_text::flush_text): Set `start_space' flag.
+ (html_text::uses_indent, html_text::remove_para_space,
+ html_text::get_alignment): New functions.
+ (html_text::push_para): Updated.
+ (html_text::do_para): Check for empty argument.
+ Don't set `space_emitted'.
+ (html_text::do_space, html_text::emit_space): Updated.
+
+ * src/devices/grohtml/html-text.h (tag_definition): New variable
+ `really_issued'.
+ (html_text): New member function `uses_indent', `remove_para_space',
+ `get_alignment'.
+
+ * src/devices/grohtml/output.cpp (simple_output::force_nl): New
+ function.
+ (simple_output:nl): Always emit `\n'.
+
+ * src/devices/grohtml/post-html.cpp: Include `string.h'.
+ (BASE_POINT_SIZE): Removed.
+ (base_point_size, head_info): New global variables.
+ (text_glob): New member functions `is_ll', `is_tl', `is_eo_tl',
+ `is_eo_h'.
+ (text_glob::is_nf, text_glob::is_fi): Handle `.fi 0' and `.fi 1'
+ tags, respectively.
+ (page::add_and_encode): Pass additional parameter for tag flag.
+ (assert_pos): New structure.
+ (assert_state): New class.
+ (html_printer): Remove `indentation', `prev_indent'.
+ Add variables `troff_indent', `device_indent', `temp_indent'.
+ Add variables `seen_indent', `next_indent', `seen_pageoffset',
+ `next_pageoffset', `seen_linelenght', `next_linelength',
+ `seen_center', `next_center', `seen_space', `seen_break', `as'.
+ Add member functions `do_check_center', `do_space', `do_head',
+ `get_troff_indent', `restore_troff_indent', `handle_assertion',
+ `handle_state_assertion', `do_end_para', `set_char_and_width'.
+ Change argument to `do_fill' to `char *'.
+ Update constructor.
+ (html_printer::emit_raw): Call `shutdown_table'.
+ Use new functions.
+ (html_printer::do_center): Simplified.
+ (html_printer::do_title): Improved.
+ (html_printer::write_header): Emit one more newline.
+ Use new functions.
+ (html_printer::do_heading, html_printer::do_indent,
+ html_printer::do_eol, html_printer::do_tab_ts,
+ html_printer::do_tab, html_printer::do_tab0,
+ html_printer::calc_po_in, html_printer::next_horiz_pos,
+ html_printer::remove_courier_tabs,
+ html_printer::insert_tab0_foreach_tab, html_printer::begin_page):
+ Updated.
+ (html_printer::do_linelength, html_printer::do_pageoffset,
+ html_printer::do_indentation, html_printer::do_tempindent,
+ html_printer::do_tab_te): Simplified.
+ (html_printer::do_pointsize): Check whether point size is really
+ associated a `.tl' tag.
+ (html_printer::do_break): Rewritten.
+ (html_printer::troff_tag): Improved.
+ (html_printer::flush_globs): Updated.
+ (html_printer::lookahead_for_tables): Handle `is_br'.
+ Use new functions.
+ (html_printer::set_char): Check `sbuf_style.f'.
+ (html_printer::write_navigation): Use string comparison.
+ (html_printer::~html_printer): Emit `head_info'.
+ (html_printer::special): Rewritten.
+ (get_str, make_val): New functions.
+ (main): New option `s' to set the base point size.
+
+ * src/preproc/html/pre-html.cpp (scanArguments): Handle option `s'.
+
+2004-10-10 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/node.cpp: New extern `debug_state'.
+ Include `stringclass.h' and `mtsm.h'.
+ Implement new classes and class members from `node.h'.
+ (real_output_file): Make `fp' public.
+ (troff_output_file): New variables `cur_div_level' and `tag_list'.
+ Update constructors.
+ (troff_output_file::really_print_line): Check whether we should push
+ the current troff state and use the state at the start of the
+ invocation of this diversion.
+ (troff_output_file::add_to_tag_list): New member function.
+ (node::add_char): Handle `glyph_comp_np'.
+
+ * src/roff/troff/node.h: Include `mtsm.h'.
+ (node): New variables `state', `push_state', `div_nest_level',
+ `is_special'. Update constructors, all descendants.
+ Pass additional argument to `add_char' member function.
+ New virtual member functions `is_tag', `debug_node',
+ `debug_node_list'. Update all descendants.
+ (tag_node): New class for handling tags.
+ (output_file): Add variable `state'.
+
+2004-10-09 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/mtsm.cpp, src/roff/troff/mtsm.h: New files,
+ providing a minimal troff state machine to emit meta tags for the
+ post-grohtml device driver.
+
+ * src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS): Handle new
+ files.
+
+2004-10-09 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trace.tmac: Fix handling of `am' and `am1' calls.
+
+2004-10-06 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/column.cpp (vjustify_node::copy): Updated.
+
+ * src/roff/troff/div.h: Include `mtsm.h'.
+ (diversion): New variables `any_chars_added', `needs_push',
+ `saved_seen_break', `saved_seen_space', `saved_seen_eol',
+ `saved_suppress_next_eol', `modified_tag'.
+ New virtual member function `is_diversion'. Update all descendants.
+
+ * src/roff/troff/div.cpp (diversion::diversion,
+ macro_diversion::macro_diversion): Updated.
+ (do_divert): Handle `seen_break', `seen_space', `seen_eol',
+ `suppress_next_eol'.
+ (top_level_diversion::space): Handle `curenv->seen_space'.
+ (page_offset): Update tag handling.
+ (space_request, blank_line, flush_output): Don't call `add_html_tag'.
+
+ * src/roff/troff/env.h (environment): Make `tabs' public.
+ Remove `ignore_next_eol', `emitted_node'.
+ Update `output_line', `output'.
+ New variables `seen_space', `seen_eol', `suppress_next_eol',
+ `seen_break'.
+ New member functions `construct_state', `make_tag',
+ `construct_format_state, `construct_new_line_state,
+ `dump_troff_state'.
+ Remove `add_html_tag', `make_html_tag'.
+
+ * src/roff/troff/env.cpp: New externs `suppress_push',
+ `get_diversion_state', `global_diverted_space'.
+ (pending_output_line): New variable `was_centered'.
+ Update constructor and all callers.
+ (pending_output_line::output): Call `curenv->construct_format_state'.
+ (environment::environment, environment::copy): Updated.
+ (environment::output): Handle `was_centered'.
+ (environment::add_char): Handle construct and diversion state.
+ (environment::add_node): Handle construct state.
+ (environment::newline): Handle `was_centered'.
+ (environment::output_line): Updated.
+ (environment::possibly_break_line): Updated.
+ Update tag handling.
+ (environment::add_html_tag): Replaced with...
+ (environment::make_tag): New function.
+ (environment::add_html_tag_tabs, environment::make_html_tag): Removed.
+ (environment::dump_troff_state): New debugging function.
+ (environment::construct_state, environment::construct_format_state,
+ environment::construct_new_line_state): New functions.
+ (environment::do_break): Updated.
+ Handle `global_diverted_space'.
+ (environment::handle_tag): Update tag handling.
+ (point_size, fill, do_break_request): Don't call `add_html_tag'.
+ (no_fill): Don't call `add_html_tag'.
+ Set `suppress_next_eol'.
+ (center, right_justify, line_length, indent, temporary_indent,
+ set_tabs):
+ Update tag handling.
+
+ * src/roff/troff/input.cpp: Don't include `stringclass.h'.
+ (input_iterator): New variables `is_diversion', `diversion_state'.
+ Update constructors.
+ (input_stack): New member functions `get_div_level',
+ `get_diversion_state', `check_end_diversion'.
+ New variables `div_level', `diversion_state'. Initialize them.
+ (suppress_push, global_diverted_space): New global variables.
+ (input_stack::finish_get, input_stack::finish_peek,
+ input_stack::remove_boundary, input_stack::end_file,
+ input_stack::clear, input_stack::pop_macro): Call
+ `check_end_diversion'.
+ (input_stack::push): Handle `div_level' and `diversion_state'.
+ (get_diversion_state): New function.
+ (diverted_space_node::reread): Handle `global_diverted_space'.
+ (macro::macro): Update constructors.
+ (macro::is_diversion): New function.
+ (macro::operator=): Set `is_a_diversion'.
+ (string_iterator): New member function `is_diversion'.
+ (string_iterator::string_iterator): Update constructors.
+ (string_iterator::fill): Set `div_nest_level'.
+ (macro_iterator): New member function `is_diversion'.
+ (do_if_request): Handle `suppress_push'.
+ (tag, taga): New functions.
+ (init_input_requests): Add `tag' and `taga' requests.
+
+2004-10-05 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/include/font.h (font): New member function
+ `get_image_generator'.
+ New variables `unscaled_charwidths' and `image_generator'.
+
+ * src/libs/libgroff/font.cpp (font::get_width): Always return the
+ character's unscaled width if `font::unscaled_charwidths' is set.
+ (font::get_image_generator): New function.
+ (font::load_desc): Check the `unscaled_charwidths' and
+ `image_generator' keywords.
+
+ * src/libs/libgroff/fontfile.cpp: Initialize
+ `font::unscaled_charwidths' and `font::image_generator'.
+
+ * font/devhtml/DESC.proto: s/html/unscaled_charwidths/.
+
+ * font/devhtml/Makefile.sub (DESC): Set `image_generator' keyword.
+
+ * man/groff_font.man: Document `unscaled_charwidths' and
+ `image_generator'.
+
+ * src/preproc/html/pre-html.cpp: Include `device.h'.
+ (image_gen): New global variable.
+ (imageList::createPage): Use `image_gen'.
+ (main): Use `image_generator' keyword.
+
+2004-10-04 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/html.tmac: Handle \[sqrtex].
+
+2004-10-04 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/include/printer.h (printer): New virtual method `round_width'.
+
+ * src/devices/grodvi/dvi.cpp, src/devices/grolbp/lbp.cpp,
+ src/devices/grolj4/lj4.cpp, src/devices/grops/ps.cpp,
+ src/devices/grotty/tty.cpp (printer::round_width): New function
+ member.
+
+ * src/devices/grohtml/post-html.cpp (printer::round_width): New
+ function member.
+ (html_printer::set_numbered_char): Use it.
+
+2004-10-03 Gaius Mulley <gaius@glam.ac.uk>
+
+ * aclocal.m4 (GROFF_GHOSTSCRIPT_PATH): New macro.
+
+ * configure.ac: Call GROFF_GHOSTSCRIPT_PATH.
+
+ * configure: Regenerated.
+
+ * Makefile.in (GHOSTSCRIPT): New variable.
+ (MDEFINES): Add GHOSTSCRIPT.
+
+2004-10-03 Werner LEMBERG <wl@gnu.org>
+
+ * INSTALL.gen: Updated (taken from texinfo CVS).
+
+2004-09-28 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+
+2004-09-28 Heinz-Jrgen Oertel <hj.oertel@surfeu.de>
+
+ * tmac/groff_www.man: Revised and updated.
+
+2004-09-26 Werner LEMBERG <wl@gnu.org>
+
+ Fix \$@ and \$* to handle any number of arguments.
+
+ * src/roff/troff/input.h (BEGIN_QUOTE, END_QUOTE): New special
+ characters.
+
+ * src/roff/troff/input.cpp (input_iterator::internal_level):
+ Removed.
+ (input_stack): New member functions `increase_level' and
+ `decrease_level'.
+ (input_stack::get_level): Don't use `internal_level'.
+ (get_copy, token::next): Handle BEGIN_QUOTE and END_QUOTE.
+ (end_quote_iterator): Completely removed.
+ (interpolate_arg): Build string for \$@ and \$* which is then
+ pushed onto the input stack.
+
+2004-09-23 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * tmac/groff_ms.man, doc/groff.texinfo (ms Document Control
+ Registers): Document changes from 2004-09-19.
+
+2004-09-23 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (ne): Using default scaling operator.
+
+2004-09-19 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ This change implements the following features:
+
+ PORPHANS
+ New numeric register: Defines number of lines following LP, PP,
+ QP, IP or XP, which must be kept together, before any automatic
+ page break. If insufficient space remains on the current page, a
+ page break is forced before the new paragraph begins.
+
+ HORPHANS
+ New numeric register: Sets number of lines of following paragraph
+ which must be kept with a heading, defined by NH or SH, before any
+ automatic page break. If insufficient space remains on the
+ current page, a page break is forced before the heading.
+
+ GROWPS
+ (Thanks to Joerg van den Hoff, for this idea).
+
+ New numeric register: Sets the first level of heading (set with
+ NH), which will keep the same point size as body text; e.g. if
+ GROWPS is set to 3, .NH 3, .NH 4, ... will produce headings at the
+ point size specified by \n[PS], but .NH 2 and .NH 1 will have
+ progressively larger point sizes, determined by \n[PSINCR] (see
+ below).
+
+ PSINCR
+ New numeric register: Sets the point size increment for each level
+ of heading, (set with NH), below the threshold level set by
+ GROWPS; e.g. if \n[PS] = 10, \n[GROWPS] = 3 and \n[PSINCR] = 2.0p,
+ then .NH 1 will produce 14pt headings, .NH 2 will produce 12pt,
+ and all other levels will remain at 10pt, (because \n[PS] = 10).
+
+ SH
+ Existing macro now accepts a numeric argument, to make heading
+ size match that of NH with same argument value, when the
+ GROWPS/PSINCR feature is enabled.
+
+ SN-DOT
+ New string, set by NH macro, replaces the existing (undocumented)
+ use of SN, to represent the assigned section number.
+
+ SN-NO-DOT
+ New string, set by NH macro, represents the assigned section
+ number, but omits the terminal period (periods at intermediate
+ levels are retained).
+
+ SN
+ String set by NH macro, originally undocumented, now implemented
+ as an alias for SN-DOT (which reproduces original behaviour).
+
+ * tmac/s.tmac (PORPHANS): New register.
+ (par*start): Use it.
+ (HORPHANS, GROWPS, PSINCR): New registers.
+ (SH-NO-TAG, @SH): Use them.
+ (@NH): Improved.
+
+2004-09-19 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * NEWS, doc/groff.texinfo (ms Display and Keeps), tmac/groff_ms.man:
+ Document the deletion of `Ds' and `De' macros.
+
+2004-09-10 Werner LEMBERG <wl@gnu.org>
+
+ In tbl, handle \a as an interpreted leader character if in
+ compatibility mode.
+
+ * src/preproc/tbl/table.h (PREFIX, PREFIX_CHAR, LEADER,
+ LEADER_CHAR): New macros.
+ (compatible_flag): New declaration.
+
+ * src/preproc/tbl/main.cpp (table_input): Add LEADER_1, LEADER_2,
+ LEADER_3, and LEADER_4 to `state'.
+ (table_input::get): Handle `\a'.
+
+ * src/preproc/tbl/table.cpp (PREFIX): Removed.
+ (LEADER_REG): New macro.
+ (table::init_output): Define LEADER_REG string register if in
+ compatibility mode.
+
+ * src/preproc/tbl/tbl.man: Document it.
+
+2004-08-18 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (An): Fix error message.
+
+2004-08-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/main.cpp (main): Call `fatal' not `error' if a
+ file can't be opened. UNIX tbl has the same behaviour.
+
+2004-08-05 Y T <doarhop@hotmail.com>
+
+ * src/preproc/grn/hdb.cpp (compatibility_flag): Add declaration.
+ (DBRead): If in compatibility mode, take into account the text
+ when computing figure boundaries.
+
+2004-08-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/soelim/soelim.man: Improved. Based on suggestions
+ from Tadziu Hoffmann.
+
+2004-08-03 Werner LEMBERG <wl@gnu.org>
+
+ * doc/meref.me: Document `_M' register.
+
+2004-08-03 Martin Husemann <martin@duskware.de>
+
+ Make hpftodit work correctly on big-endian systems.
+
+ * src/utils/hpftodit/hpftodit.cpp (File): New method
+ `get_uint32(char *)'.
+ (entry): New member `orig_value'.
+ (read_tags): Use new method.
+ (output_font_name, read_and_output_pcltypeface, dump_ascii):
+ Updated.
+
+2004-08-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/s.tmac: Undo change 2003-06-29. The proper macro definitions
+ are already in X11's `macros.t' file.
+
+2004-08-01 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/utils/hpftodit/hfptodit.cpp (output_font_name, dump_ascii):
+ Fix casting bug.
+ (read_and_output_pcltypeface): Handle strings with length <= 4.
+
+2004-07-27 Egil Kvaleberg <egil@kvaleberg.no>
+
+ * tmac/s.tmac (pg@top): Don't save `PO' register.
+ (pg*end-col, pg*end-page): Directly use `PO' register.
+
+2004-07-27 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_tmac.man: Mention `trace' and `pic' macro packages.
+
+ * src/preproc/refer/refer.cpp (output_references): Check for
+ empty hash table.
+ * src/preproc/refer/refer.man: Improve documentation of
+ `bibliography' command.
+
+2004-07-26 Werner LEMBERG <wl@gnu.org>
+
+ Add requests `fcolor' and `gcolor'.
+
+ * src/roff/troff/env.cpp (fill_color_change, glyph_color_change):
+ New functions.
+ (init_env_requests): Add `fcolor' and `gcolor'.
+
+ * src/roff/troff/input.h: Export do_glyph_color and do_fill_color.
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo
+ (Colors): Document new requests.
+
+2004-07-24 Werner LEMBERG <wl@gnu.org>
+
+ Add support for fractional point sizes in ms macros. A value for
+ PS, VS, FPS, and FVS greater than or equal to 1000 is always divided
+ by 1000. For example, `.nr PS 10250' sets the font size to 10.25p.
+
+ * tmac/s.tmac (@AU, @AI, par@load-init, par@init, par@reset, NL,
+ PX): Handle fractional point sizes for PS, VS, FPS, and FVS.
+
+ * tmac/groff_ms.man, docs/groff.texinfo (ms Document Control
+ Registers), NEWS: Document it.
+
+2004-07-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/lex.cpp (for_input): Add member `from'.
+ Update constructor.
+ (do_for, for_input::get, for_input::peek): Handle negative `by'.
+ * src/preproc/pic/pic.man, doc/pic.ms, NEWS: Document it.
+
+2004-07-08 Thomas Klausner <wiz@netbsd.org>
+
+ * tmac/doc-syms (doc-str-St--p1003.1-2004): New string.
+ * tmac/groff_mdoc.man: Updated.
+
+2004-07-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Manipulating Hyphenation): Further improve
+ documentation of `hcode'.
+
+2004-07-04 Sang Dae Yu <sdyu@bh.knu.ac.kr>
+
+ Improve appearance of arrows in pic.
+
+ * src/preproc/pic/object.cpp (draw_arrow): Make outline of filled
+ arrow head thin.
+ Use two line segments for drawing non-filled arrow head.
+ (line_object::print, spline_object::print): Shorten line length to
+ avoid arrow sticking.
+ (arc_object::print): Take arrow direction into account.
+
+2004-07-03 Heinz-Jrgen Oertel <hj.oertel@surfeu.de>
+
+ * tmac/groff_www.man: Update documentation of .MPIMG.
+
+2004-07-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (RI): Always start with font `R'.
+ (RI, IR): Properly end with font `R'.
+
+2004-07-02 Paul Eggert <eggert@cs.ucla.edu>
+
+ * man/ditroff.man, man/groff_font.man, man/groff_out.man,
+ src/devices/grohtml/grohtml.man, src/preproc/grn/grn.man,
+ src/preproc/pic/pic.man, tmac/groff_man.man, tmac/groff_ms.man:
+ Don't pass more than six arguments to .R, .I, .B, etc., for
+ compatibility with traditional troff macros.
+
+2004-07-02 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.h: s/COMPATIBLE_SAVE/PUSH_GROFF_MODE/.
+ s/COMPATIBLE_RESTORE/POP_GROFFCOMP_MODE/.
+ Update all users.
+ (PUSH_COMP_MODE): New internal character constant.
+ Update all users.
+
+ * src/roff/troff/input.cpp (get_copy): Handle PUSH_GROFF_MODE,
+ PUSH_COMP_MODE, and POP_GROFFCOMP_MODE.
+ (token::next, macro::append): Handle PUSH_COMP_MODE.
+ (decode_args): Add PUSH_GROFF_MODE or PUSH_COMP_MODE before and
+ POP_GROFFCOMP after each of the decoded arguments to make them
+ independent from the compatibility mode status.
+ (comp_mode): Add `COMP_ENABLE'.
+ (do_define_string, do_define_macro): Handle COMP_ENABLE.
+ (define_string, append_string, define_macro, define_indirect_macro,
+ append_macro, append_indirect_macro): Handle `compatible_flag'.
+ (chop_macro, substring_request, asciify): Handle PUSH_COMP_MODE.
+
+ * man/groff_diff.man, doc/groff.texinfo: Updated.
+
+2004-07-01 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of `hcode'.
+ Use @documentencoding and convert document to latin-1; to do that
+ make latin characters active and assign proper macros (within a
+ @tex...@end tex environment).
+ * doc/Makefile.in (.texinfo.html, groff): Use --enable-encoding.
+ * doc/Makefile.sub (groff): Ditto.
+
+2004-06-29 Werner LEMBERG <wl@gnu.org>
+
+ Implement two new conditional operators `F <name>' and `S <name>'
+ which check whether <name> is a valid font or style, respectively.
+
+ * src/libs/libgroff/font.cpp (text_file): Add `silent' member.
+ (text_file::text_file): Updated.
+ (text_file::error): Don't emit message if `silent' is set.
+ (font::load_font): Add optional third argument (which is directly
+ passed to `load'.
+ (font::load): Add optional second argument to check the header of
+ a font only, without emitting warning or error messages.
+ * src/include/font.h (font): Updated.
+
+ * src/roff/troff/input.cpp (do_if_request): Implement `S' and `F'
+ conditionals.
+ * src/roff/troff/node.cpp (mount_font_no_translate): Add optional
+ fourth argument to check a font without mounting.
+ (check_font, check_style): New functions.
+ * src/roff/troff/node.h: Updated.
+
+ * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
+ Updated.
+
+2004-06-27 Werner LEMBERG <wl@gnu.org>
+
+ Implement new string-valued register `.sty' to return the current
+ style name.
+
+ * env.cpp (environment::get_style_name_string): New function.
+ (init_env_requests): Add `.sty' register.
+ * env.h (environment): Updated.
+ * node.cpp (font_info): Make `get_style_name' a friend.
+ (get_style_name): New function.
+ * node.h: Updated.
+
+ * man/groff_diff.man, man/groff.man, NEWS, doc/groff.texinfo:
+ Updated.
+
+2004-06-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/main.cpp (process_data) <GOT_RIGHT_BRACE>: Handle
+ `nospaces' option.
+
+2004-06-10 Colin Percival <colin.percival@wadham.ox.ac.uk>
+
+ * doc/meintro.me, doc/meref.me: Don't use \*[td], \n[dy], \*[mo],
+ and \n[mo] to avoid dependency on current date.
+
+2004-06-08 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.sub (install_data): New target.
+
+2004-06-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libxutil/Makefile.sub (EXTRA_CFLAGS): Define.
+
+2004-06-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Fix typo and
+ order of libraries.
+ (install_data): Add $(srcdir).
+
+ * src/utils/xtotroff/Makefile.sub (EXTRA_LDFLAGS): Fix order of
+ libraries.
+
+2004-06-02 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_X11): s/have_no_x/groff_no_x/.
+ Add X11 stuff to CFLAGS, LDFLAGS, and LIBS temporarily.
+ Add test for Xmu library.
+ (GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
+ GROFF_APPRESDIR_DEFAULT): New macros.
+
+ * configure.ac: Call GROFF_APPRESDIR_OPTION, GROFF_APPRESDIR_CHECK,
+ and GROFF_APPRESDIR_DEFAULT.
+
+ * configure: Regenerated.
+
+ * Makefile.in (appresdir): New variable.
+ (MDEFINES): Add appresdir.
+
+ * src/devices/xditview/Makefile.sub (EXTRA_LDFLAGS): Add -Xmu and
+ -Xt.
+ (install_data, uninstall_sub): New targets to handle GXditview.ad.
+
+ * src/utils/indxbib/Makefiles.ub (install_data): Depend on
+ `$(srcdir)/eign', not `eign'.
+
+ * MANIFEST, INSTALL, NEWS, PROBLEMS: Updated.
+
+ * man/groff_out.man, man/roff.man, src/devices/grops/grops.man,
+ src/devices/xditview/gxditview.man, src/roff/groff/groff.man:
+ Protect (g)xditview with `\%' to avoid hyphenation.
+ Other minor formatting.
+
+2004-06-01 Werner LEMBERG <wl@gnu.org>
+
+ Integrate gxditview into groff's standard directory hierarchy.
+
+ * src/xditview/*: Moved to ...
+ * src/devices/xditview/*: Here.
+ Moved DviChar.h and XFontName.h to src/include.
+ Moved DviChar.c and XFontName.c to new directory src/libs/libxutil.
+ Split off `xmalloc' into new file src/libs/libxutil/xmalloc.c.
+ Moved xtotroff.c to new directory src/utils/xtotroff.
+ Provide proper Makefile.sub files (reusing the stuff from
+ Imakefile.in).
+ DESC renamed to DESC.in.
+ Removed GXDitview-ad.h, INSTALL, Imakefile.in.
+ Converted everything from K&R to ANSI C.
+ Decorated with const where appropriate.
+ Cast string constants with `String' and `char *' where appropriate.
+ Made it compile with C++ (used as a C compiler).
+ Removed other minor compiler warnings.
+
+ * src/devices/xditview/device.c: Include config.h, string.h, and
+ defs.h.
+ Don't declare `exit', `strtok', `strchr', and `getenv'.
+ (FONTPATH): Remove.
+
+ * src/devices/xditview/font.c: Don't declare `XParseFontName' and
+ `XFormatFontName'.
+
+ * src/devices/xditview/xditview.c: Include config.h.
+ Include stdio.h earlier.
+ Protect declaration of `popen' and `pclose' with
+ NEED_DECLARATION_POPEN and NEED_DECLARATION_PCLOSE.
+ Replace `caddr_t' with `XtPointer'.
+ (MakePromptFunc): New typedef.
+ (DoPrint): Use RETSIGTYPE.
+ (promptfunction): Change type to MakePromptFunc.
+ (MakePrompt): Use MakePromptFunc for third argument.
+ (xmalloc): Removed.
+
+ * src/devices/xditview/ad2c: Add casts to `String'.
+
+ * src/include/XFontName.h (XFontNameString): Don't use array
+ notation.
+ Add prototypes for `XParseFontName', `XFormatFontName',
+ `XCompareFontName', and `XCopyFontName'.
+
+ * src/include/Makefile.sub (HDRS): Add `DviChar.h' and
+ `XFontName.h'.
+
+ * src/utils/xtotroff/xtotroff.c: Include getopt.h.
+ Don't declare `XParseFontName' and `XFormatFontName'.
+ (xmalloc): Removed.
+ (main): Remove `optind' and `optarg'.
+
+ * Makefile.in (XDEVDIRS, XPROGDIRS, XLIBDIRS): New variables
+ (to select programs which need X).
+ Make XDEVIDIRS depend on `FORCE'.
+ (X_CFLAGS, X_LIBS, X_EXTRA_LIBS, X_PRE_LIBS): New variables (for
+ X support).
+ (MDEFINES): Updated.
+ (LIBDIRS): Use XLIBDIRS.
+ (CPROGDIRS): Use XPROGDIRS.
+ (DEVDIRS): Remove font directories for gxditview.
+ (ALLDIRS, DISTDIRS): Add XDEVDIRS.
+ (EXTRADIRS): Remove src/xditview.
+
+ * Makefile.sub (DISCLEANFILES): Updated.
+
+ * Makefile.comm (LIBXUTIL): New variable.
+ (.cpp.o, .cpp.obj): Handle EXTRA_CCFLAGS.
+ (.c.o, .c.obj, .y.o): Handle EXTRA_CFLAGS.
+
+ * Makefile.cpg, Makefile.ccpg ($PROG): Handle EXTRA_LDFLAGS.
+
+ * aclocal.m4 (GROFF_X11): New function.
+
+ * configure.ac: Call GROFF_X11.
+ Don't create src/xditview/Imakefile.
+ Don't emit notice how to build gxditview.
+
+ * configure: Regenerated.
+
+ * test-groff.in (GROFF_BIN_PATH, XENVIRONMENT): Updated.
+
+2004-05-28 Akihiro Sagawa <sagawa@sohgoh.net>
+
+ * Makefile.in (CPPFLAGS): Define.
+ (MDEFINES): Add CPPFLAGS.
+
+2004-05-27 Werner LEMBERG <wl@gnu.org>
+
+ * arch/misc/Makefile.sub (shdeps.sed): Use $(srcdir).
+
+2004-05-26 Niklas Edmundsson <nikke@acc.umu.se>
+
+ Fix problems with `friend name injections'.
+
+ * src/preproc/eqn/box.h (make_mark_box, make_lineup_box,
+ make_script_box), src/roff/troff/div.h (end_diversions),
+ src/roff/troff/env.h (title), input.cpp (process_input_stack): Undo
+ change 2004-04-08.
+
+2004-05-25 Bernd Warken <bwarken@mayn.de>
+
+ * src/preproc/pic/pic.man, doc/pic.ms: Add example for `command'.
+
+2004-05-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/cset.cpp, src/libs/libgroff/lf.cpp,
+ src/libs/libgroff/color.cpp: Include lib.h.
+
+2004-05-25 Paul Eggert <eggert@cs.ucla.edu>
+
+ * PROBLEMS: Update documentation for problems with Sun C++ 5.0
+ through Forte 6u1, and for how to get GNU make on Solaris.
+
+2004-05-24 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Document problems with gcc 3.4.0 on Sun. Reported
+ by Paul Eggert.
+
+2004-05-15 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * arch/misc/Makefile.sub (shdeps.sed): Don't use `$<' in explicit
+ rule.
+
+2004-05-14 Werner LEMBERG <wl@gnu.org>
+
+ * REVISION: Set to 2.
+
+ * aclocal.m4 (GROFF_STDINT_H): Removed.
+ (GROFF_INTTYPES_H): Define HAVE_CC_INTTYPES_H.
+
+ * configure.ac: Updated.
+ * configure, src/include/config.hin: Regenerated.
+
+ * src/libs/libgroff/tmpname.cpp: Don't include stdint.h but
+ inttypes.h conditionally.
+
+2004-05-13 Werner LEMBERG <wl@gnu.org>
+
+Version 1.19.1 released
+=======================
+
+2004-05-10 Stephen Gildea <http://www.gildea.com/stephen>
+
+ * src/preproc/refer/label.y (same_author_last_name,
+ same_author_name): Handle empty sort keys.
+
+2004-05-10 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, README, TODO, PROJECTS, PROBLEMS, MANIFEST, doc/webpage.ms,
+ tmac/TODO: Updated.
+
+ * tmac/doc-syms (doc-str-Lb-libposix, doc-str-Lb-libpthread,
+ doc-str-Lb-librt): Reset font.
+ (Lb): Rename `doc-str-Lb' to `doc-str-Lb1'.
+ Provide `doc-str-Lb' to reset font.
+ * tmac/groff_mdoc.man: Updated.
+
+2004-05-08 Jan Schaumann <jschauma@netmeister.org>
+
+ * src/preproc/html/pre-html.cpp (make_message): Make it work for
+ snprintf versions which don't conform to ANSI C 99 (this is,
+ counting the string's trailing null byte in the return value).
+
+2004-05-07 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/roff/troff/node.cpp (suppress_node::tprint): Don't expect
+ that all implementations of sprintf handle null pointers correctly.
+
+2004-05-04 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Document `.U' register.
+
+ * src/roff/troff/env.cpp (environment::mark_last_line)
+ [WIDOW_CONTROL]: Fix scope of `p' for new C++ compilers.
+
+2004-05-04 Larry Kollar <kollar@alltel.net>
+
+ New read-only register `.U'; it returns 1 in safer mode and 0
+ otherwise.
+
+ * src/roff/troff/input.cpp (init_input_requests): Implement `.U'
+ register.
+
+2004-05-03 Werner LEMBERG <wl@gnu.org>
+
+ * install-sh, mkinstalldirs: New versions; taken from texinfo CVS.
+
+2004-04-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/font.h (font): Use `int' for ch_index.
+ * src/libs/libgroff/font.cpp (font::alloc_ch_index,
+ font::compact): Updated.
+
+ * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix compiler
+ warnings.
+
+ * src/roff/troff/div.cpp (begin_page), src/roff/troff/env.cpp
+ (hyphen_word): Fix compiler warnings.
+ * src/roff/troff/input.cpp (get_char_for_escape_name): Return
+ `char'.
+ Update all callers.
+ (get_delim_number, get_line_arg): Change second argument type to
+ `unsigned char'.
+ (macro_header::copy, token::next, do_define_string,
+ do_define_character, substring_request, asciify_macro,
+ unformat_macro, read_size, non_interpreted_node::interpret,
+ while_request, main: Fix compiler warnings.
+ (read_color_draw_node): Initialize `col'.
+
+ * src/preproc/tbl/table.cpp (horizontal_span, table_entry): Make
+ `start_col' and `end_col' of type `int'.
+ (vertical_rule): Make `col' of type `int'.
+
+ * src/preproc/grn/hdb.cpp (DBRead): Protect call to getc with check
+ for EOF.
+
+ * src/preproc/refer/label.y (uppercase_array, lowercase_array):
+ New arrays.
+ (format_serial): Use them to remove dependency on ASCII.
+
+ * src/devices/grops/ps.cpp (ps_printer::define_encoding): Fix
+ compiler warning.
+ * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
+ Ditto.
+
+ * src/devices/grotty/tty.cpp (tty_font::load_tty_font): Fix
+ compiler warnings.
+ (glyph): Change type of `hpos' to `int'.
+
+ * src/devices/lbp/lbp.cpp (strsep): Removed. Unused.
+ * src/devices/lbp/lbp.h (splinerel): Fix compiler warnings.
+
+ * src/utils/tfmtodit.cpp (gf::load): Fix compiler warnings.
+
+ * src/utils/pfbtops/pfbtops.c (get_text): Fix compiler warning.
+
+2004-04-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grolbp/lbp.h, src/preproc/grn/gprint.h,
+ src/preproc/grn/hgraph.cpp, src/preproc/grn/hpoint.cpp,
+ src/preproc/html/pushback.cpp, src/preproc/html/pushback.h: Use
+ `double' instead of `float' everywhere.
+ * src/preproc/grn/main.cpp: Use `double' instead of `float'
+ everywhere.
+ (main): Add return value.
+ * src/preproc/grn/hdb.cpp: Use `double' instead of `float'
+ everywhere.
+ Update all user functions.
+
+ * src/include/search.h, src/include/ptable.h, src/include/printer.h,
+ src/preproc/eqn/box.h, src/preproc/pic/object.h,
+ src/preproc/refer/refer.h, src/preproc/tbl/table.h,
+ src/preproc/tbl/table.cpp, src/roff/troff/env.h,
+ src/roff/troff/div.h, src/roff/troff/token.h, src/roff/troff/node.h,
+ src/roff/troff/input.cpp, src/roff/troff/request.h,
+ src/roff/troff/node.cpp: Don't mix `struct' and `class' in forward
+ declarations.
+
+ * src/utils/indxbib/signal.c: Include stdlib.h.
+
+2004-04-14 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * tmac/s.tmac (@init, RP): Allow initialization of the PO register
+ before the first page.
+
+2004-04-14 Thomas Klausner <wiz@netbsd.org>
+
+ * tmac/doc-common (doc-volume-as-*): Use lowercase names.
+ (doc-operating-system-*): Updated.
+ * tmac/doc-syms (doc-str-St-*): Various small fixes.
+ (doc-str-Lb-*): Add more library names.
+
+2004-04-10 Art Haas <ahaas@airmail.net>
+
+ * src/utils/hpftodit/hpuni.cpp (hp_msl_to_unicode_list): Don't
+ use anonymous type.
+
+2004-04-09 Art Haas <ahaas@airmail.net>
+
+ * src/utils/tfmtodit.cpp (lig_chars): Don't use anonymous type.
+
+2004-04-09 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * arch/misc/shdeps.sh: Generate better comment for sed script.
+
+2004-04-08 Art Haas <ahaas@airmail.net>
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
+ src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list),
+ src/libs/libgroff/uniuni.cpp (unicode_decompose_list),
+ src/preproc/eqn/box.cpp (param_table), src/preproc/grn/hgraph.cpp
+ (polyfill), src/preproc/grn/main.cpp (polyfill),
+ src/preproc/refer/command.cpp (command_table),
+ src/utils/tfmtodit.cpp (lig_table): Don't use anonymous types (which
+ gcc 3.5 doesn't like).
+
+2004-04-08 Werner LEMBERG <wl@gnu.org>
+
+ Removing many compiler warnings. groff should now compile with
+ a C++ compiler used for C files also. [Simple variable renamings
+ to avoid shadowing aren't logged in detail.]
+
+ * src/devices/grodvi/dvi.cpp: Some local variable renamings.
+ (draw_dvi_printer::draw) ['c']: Enclose in block.
+
+ * src/devices/grohtml/post-html.cpp: Some local variable renamings.
+ (page::add_line): Fix typos.
+ * src/devices/grohtml/html-text.cpp: Some local variable renamings.
+
+ * src/devices/grolbp/lbp.cpp: Don't define _GNU_SOURCE.
+ Some local variable renamings.
+ * src/devices/grolbp/lbp.h: Some local variable renamings.
+
+ * src/devices/grolj4/lj4.cpp, src/devices/grotty/tty.cpp: Some local
+ variable renamings.
+
+ * src/libs/libbib/index.cpp (index_search_item_iterator::get_tag):
+ Remove redundant local variable declaration.
+ * src/libs/libbib/map.c (mapread, unmap): Don't use K&R style.
+ Don't use `caddr_t' but `void *'.
+ Enclose functions with `extern "C"' for C++.
+
+ * src/libs/libdriver/input.cpp (remember_filename,
+ remember_source_filename): Use cast for string constant.
+
+ * src/libs/libgroff/font.cpp, src/libs/libgroff/fontfile.cpp,
+ src/libs/libgroff/nametoindex.cpp, src/libs/libgroff/paper.cpp,
+ src/libs/libgroff/geometry.cpp: Some local variable renamings.
+ * src/libs/libgroff/iftoa.c, src/libs/libgroff/itoa.c: Don't use K&R
+ style.
+ Enclose functions with `extern "C"' for C++.
+ * src/libs/libgroff/quotearg.c (TRUE,FALSE): Define as macros.
+ (needs_quoting): Return `int'.
+ (quote_arg): Add proper casts to malloc and realloc.
+ * src/libs/libgroff/spawnvp.c: Compile code only for MS-DOS and
+ various MS Windows environments.
+ (spawnvp_wrapper): Add proper cast to malloc.
+
+ * src/preproc/eqn/box.h: Remove redundant declarations of
+ `make_script_box', `make_mark_box' and `make_lineup_box'.
+ * src/preproc/eqn/eqn.y: Remove redundant declaration of `strsave'.
+ * src/preproc/eqn/script.cpp, src/preproc/eqn/pile.cpp: Some local
+ variable renamings.
+
+ * src/preproc/grn/hpoint.cpp: Some local variable renamings.
+ * src/preproc/grn/hgraph.cpp: Some local variable renamings.
+ (dx, dy): Renamed functions to...
+ (deltax, deltay): This.
+ * src/preproc/grn/main.cpp: Some local variable renamings.
+ (deffont): Add `const'.
+ (initpic, conv): Use cast for string constant.
+
+ * src/preproc/html/pre-html.cpp: Some local variable renamings.
+ (makeFileName, alterDeviceTo, addZ): Use cast for string constant.
+ (char_buffer::run_output_filter): Second argument is unused.
+ * src/preproc/html/pushback.cpp: Some local variable renamings.
+
+ * src/preproc/pic/pic.y: Remove redundant declaration of `do_copy'.
+ * src/preproc/pic/object.cpp: Some local variable renamings.
+
+ * src/preproc/refer/label.y (lookup_label): Remove redundant
+ declaration of local variable.
+
+ * src/preproc/soelim.cpp: Remove redundant declaration of
+ `interpret_lf_args'.
+
+ * src/preproc/tbl/main.cpp: Some local variable renamings.
+
+ * src/roff/groff/groff.cpp (main): Use cast for string constant.
+ * src/roff/groff/pipeline.c: Enclose declarations of `error',
+ `c_fatal', and `i_to_a' with `extern "C"' for C++.
+ Don't use C++-style comments.
+
+ * src/roff/troff/env.h: Remove redundant declaration of `title'.
+ * src/roff/troff/node.h, src/roff/troff/env.cpp,
+ src/roff/troff/div.cpp, src/roff/troff/node.cpp: Some local variable
+ renamings.
+ * src/roff/troff/div.h: Remove redundant declaration of
+ `end_diversions'.
+ * src/roff/troff/troff.h: Remove redundant declaration of
+ `cleanup_and_exit'
+ * src/roff/troff/input.cpp: Remove redundant declaration of
+ `handle_first_page_transition' and `process_input_stack'.
+
+ * src/utils/hpftodit.cpp: Some local variable renamings.
+
+ * src/utils/indxbib/signal.c: Enclose functions with `extern "C"'
+ for C++.
+ Don't define RETSIGTYPE.
+ * src/utils/indxbib/indxbib.cpp: Some local variable renamings.
+
+ * src/utils/pfbtops/pfbtops.cpp: Don't use K&R style.
+ (error): Use `const' in argument.
+ (main): Remove redundant declaration of `optind'.
+ Move declaration of `Version_string' to top-level.
+
+ * PROBLEMS: Document difficulties compiling signal.c if a C++
+ compiler is used for C.
+
+2004-04-07 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.sub (DISTCLEANFILES): Add `test-groff'.
+
+2004-04-06 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Make scripts like nroff.sh and neqn.sh portable across various
+ (Unix-like) shell implementations from Cygwin, MSYS, etc., which use
+ non-POSIX path separators. The idea is to extend those scripts to
+ decide at run-time (of the script) which path separator to use.
+
+ * arch/misc/Makefile.sub: New file.
+ * arch/misc/shdeps.sh: New file, generating OS dependency fixups.
+ This script handles @GROFF_BIN_PATH_SETUP@, replacing it with
+ a proper definition of the variable `GROFF_RUNTIME'.
+
+ * Makefile.in (SH_DEPS_SED_SCRIPT): New variable.
+ (MDEFINES): Add SH_DEPS_SED_SCRIPT.
+ (PROGDEPDIRS): New variable.
+ `FORCE' it.
+ (PROGDIRS): Add PROGDEPDIRS.
+
+ * src/preproc/eqn/Makefile.sub (neqn): Call SH_DEPS_SED_SCRIPT.
+ Don't substitute @SEP@ and @BINDIR@.
+ * src/preproc/eqn/neqn.sh: Use @GROFF_BIN_PATH_SETUP@.
+ (PATH): Use GROFF_RUNTIME.
+
+ * src/roff/nroff/Makefile.sub (nroff): Call SH_DEPS_SED_SCRIPT.
+ Don't substitute @SEP@ and @BINDIR@.
+ * src/roff/nroff/nroff.sh: Use @GROFF_BIN_PATH_SETUP@.
+ (PATH): Use GROFF_RUNTIME.
+
+2004-04-05 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/roff/nroff/nroff.sh: Implement work-around for sh.exe from
+ Cygwin which doesn't handle stderr correctly.
+
+2004-03-08 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm (install_dev, uninstall_dev): Protect `for' loops
+ against empty argument. Problem reported by <cgd@broadcom.com>.
+
+2004-03-05 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * Makefile.in (SEP): Replaced with...
+ (RT_SEP, SH_SEP): Separators for the target platform's native path
+ separator and the build environment, respectively.
+ (fontpath, tmacpath): Use RT_SEP.
+ (MDEFINES): Updated.
+
+ * doc/Makefile.sub (GROFF_BIN_PATH): Use SH_SEP.
+ * src/preproc/eqn/Makefile.sub (neqn): Use SH_SEP.
+ * src/roff/nroff/Makefile.sub (nroff): Use SH_SEP.
+
+2004-03-05 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/Makefile.sub (LJ4RES): Set to 1200. This helps to
+ reduce alignment problems with newer printers which use built-in
+ TrueType fonts (instead of the older Intellifonts). The ideal
+ solution is to provide a second set of groff metric files, but this
+ is extremely time-consuming to produce, given that HP's metric
+ files are very rudimentary.
+
+2004-03-01 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grolj4/lj4.cpp (main): Fix argument of getopt_long.
+ s/operand/argument/ in error message.
+
+2004-03-01 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/roff/groff/groff.cpp (main): Don't allow option -o if -Thtml
+ is in use.
+
+2004-03-01 Antti Kantee <pooka@netbsd.org>
+
+ * tmac/s.tmac (XE): Fix error message.
+
+2004-02-27 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/include/nonposix.h (write, dup, dup2, close) [_MSC_VER]:
+ New macros.
+
+ * src/roff/groff/pipeline.c: Declare strcasecmp.
+ (run_pipeline) [_WIN32]: Use function name variants which don't
+ start with `_'.
+ Fix stream handling.
+
+2004-02-27 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/include/nonposix.h: Fix declaration of `system_shell_name'.
+ Declare `spawnvp_wrapper' and macro definitions of spawnvp only
+ for platforms which use the native Win32 runtime libraries.
+ (FLUSH_INPUT_PIPE) [_UWIN]: Provide non-empty version.
+
+ * src/libs/libgroff/quotearg.c (QUOTE_ARG_MALLOC_ERROR,
+ QUOTE_ARG_REALLOC_ERROR): Fix string.
+
+ * src/preproc/html/pre-html.cpp: Remove declaration of
+ `spawnvp_wrapper'.
+ Don't use __MINGW32__.
+ s/DEBUG_FILE/DEBUG_FILE_DIR/.
+ (DEBUG_TEXT, DEBUG_NAME, DEBUG_FILE) [DEBUGGING]: New macros.
+ (OUTPUT_STREAM, PS_OUTPUT_STREAM, REGION_OUTPUT_STREAM): New macros.
+ (char_buffer::run_output_filter) [MAY_FORK_CHILD_PROCESS]: Fix
+ calls to `set_redirection' and `WAIT'.
+ [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Remove unused variable `i' and `j'.
+ Fix calls to `set_redirection' and `save_and_redirect'.
+ (char_buffer::do_html, char_buffer::do_image) [DEBUGGING]: Fix calls
+ to `set_redirection' and `save_and_redirect'.
+ (usage): Fix message.
+ (makeTempFiles, main): Use `DEBUG_FILE'.
+
+2004-02-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/troff.h (WARN_TOTAL): Fix value.
+
+2004-02-21 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/libs/libgroff/quotearg.c: New file, providing proper argument
+ quoting for MSVC's spawn* and exec* functions.
+ * src/libs/libgroff/spawnvp.c: New file, providing a wrapper around
+ spawnvp with proper quoting for MSVC.
+
+ * src/libs/libgroff/assert.cpp (program_name),
+ src/libs/libgroff/new.cpp (program_name): Declare as `extern "C"'.
+ * src/libs/libgroff/Makefile.sub (OBJS, CSRCS): Updated.
+
+ * src/roff/troff/input.cpp (program_name): Declare as `extern "C"'.
+
+ * src/include/error.h (program_name): Declare as `extern "C"'.
+ * src/include/nonposix.h [__MSDOS__ ...]: Handle spawnvp.
+
+2004-02-21 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/preproc/html/pre-html.cpp [__CYGWIN__ ...]: Declare
+ spawnvp_wrapper.
+ [MAY_SPAWN_ASYNCHRONOUS_CHILD]: Declare i and j.
+
+2004-02-20 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/roff/groff/pipeline.c (cmd) [__MSDOS__ || ...]: New global
+ variable.
+ (sbasename) [__MSDOS__ || ...]: New function.
+ (system_shell_name) [__MSDOS__ || ...]: Use a different, more
+ generic algorithm.
+ (system_shell_dash_c, is_system_shell) [__MSDOS__ || ...]: Updated.
+ (run_pipeline) [_WIN32]: Use _XXX variants for some macros instead
+ of XXX.
+ Use STDOUT_FILENO instead of hardcoded file handle.
+ (signal_catcher) [__MSDOS__]: Moved to non-_WIN32 section.
+
+2004-02-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/div.cpp: Include nonposix.h after troff.h to
+ avoid warnings w.r.t. redefinition of P_tmpdir for some compilers.
+
+2004-02-18 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/Makefile.sub (DEVFILES): Updated to contain all
+ new font and mapping files.
+
+2004-02-18 Jeff Conrad <jeff_conrad@msn.com>
+ Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/include/nonposix.h (FLUSH_INPUT_PIPE): New macro to empty
+ an input pipe. This is needed for the MSVC compiler to make troff's
+ `-o' option work.
+
+ * src/roff/troff/div.cpp: Include nonposix.h.
+ (cleanup_and_exit): Call FLUSH_INPUT_PIPE.
+
+2004-02-17 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate/special.awk: New script.
+ * font/devlj4/generate/Makefile (S): Use special.awk.
+ * font/devlj4/*: Regenerated, including the following new files:
+ Arial (AR, AB, AI, ABI), Times New Roman (TNRR, TNRB, TNRI, TNRBI),
+ MS Symbol (SYMBOL), Wingdings (WINGDINGS).
+ * NEWS: Document new lj4 fonts and revised hpftodit.
+
+2004-02-17 Paco Andrs Verd <pandres@dragonet.es>
+
+ * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string.
+
+2004-01-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/progname.cpp: Replaced with...
+ * src/libs/libgroff/progname.c: New file.
+ * src/libs/libgroff/Makefile.sub: Updated accordingly.
+
+2004-01-17 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate/Makefile (SYMBOL): Use 9nb28703.tfm.
+
+2004-01-16 Jeff Conrad <jeff_conrad@msn.com>
+
+ * font/devlj4/generate/wingdings.map,
+ font/devlj4/generate/symbol.map: Include unnamed glyphs.
+ Use groff glyph names where possible.
+ * src/devices/grolj4/lj4_font.man: Minor updates.
+
+2004-01-13 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac (DC): Handle TTY devices.
+
+ * doc/webpage.ms: Document viewCVS from ffii.org.
+ * NEWS, README: Updated.
+
+ * src/roff/groff/groff.man: Mention lj4_font man page.
+
+ * font/devlj4/generate/Makefile (SYMBOLMAP, WINGDINGSMAP): New
+ variables.
+ (FONTS): Add SYMBOL and WINGDINGS.
+ (SYMBOL, WINGDINGS): New targets.
+
+2004-01-13 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/devices/grolj4/lj4_font.man: New man page.
+ * src/devices/grolj4/Makefile.sub (MAN5): New variable.
+ * src/devices/grolj4.man: Mention lj4_font man page.
+
+ * src/utils/hpftodit/hpftodit.cpp (read_map): Handle line comments.
+ * src/utils/hpftodit/hpftodit.man: Document it.
+ (CW): New macro.
+ Remove details about fonts (which are now in lj4_font.man).
+
+ * font/devlj4/generate/symbol.map,
+ font/devlj4/generate/wingdings.map: New files.
+
+2004-01-12 Werner LEMBERG <wl@gnu.org>
+
+ * README: Mention ffii's viewcvs access.
+
+2004-01-09 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate/special.map: Map MSL 228 to U+221F.
+
+2004-01-09 Jeff Conrad <jeff_conrad@msn.com>
+
+ Revert most of the change from 2004-01-03 to better control used
+ symbol sets.
+
+ * src/utils/hpftodit/hpftodit.cpp (symbol_set): New structure.
+ (text_symbol_sets, special_symbol_sets): New arrays.
+ (symbol_set_table): New global variable.
+ (read_symbol_sets): Use search order given in the text_symbol_sets
+ and special_symbol_sets arrays. If command line flag -a is not
+ given, search both arrays.
+ (output_charset): Require x_height_tag only for command line flag -i.
+
+2004-01-06 Werner LEMBERG <wl@gnu.org>
+
+ Implement string-valued registers \n[.m] and \n[.M] to return the
+ name of the current drawing and background color, respectively.
+
+ * src/roff/troff/symbol.h: Moved to...
+ * src/include/symbol.h: Here.
+ Small fixes to make it work outside of the `troff' directory.
+ * src/roff/troff/symbol.cpp: Moved to...
+ * src/libs/libgroff/symbol.cpp: Here.
+ Small fixes to make it work outside of the `troff' directory.
+
+ * src/include/Makefile.sub (HDRS), src/libs/libgroff/Makefile.sub
+ (OBJS, CCSRCS), src/roff/troff/Makefile.sub (OBJS, CCSRCS, HDRS):
+ Updated.
+
+ * src/include/color.h: Include symbol.h.
+ (color): Add new field `nm'.
+ * src/libs/libgroff/color.cpp (color::color): Updated.
+
+ * src/roff/troff/dictionary.cpp, src/roff/troff/div.cpp,
+ src/roff/troff/node.cpp, src/roff/troff/number.cpp,
+ src/roff/troff/reg.cpp: Don't include symbol.h.
+
+ * src/roff/troff/env.cpp: Don't include symbol.h.
+ (environment::get_glyph_color_string,
+ environment_get_fill_color_string): New member functions.
+ (init_env_requests): Handle `.m' and `.M' registers.
+ * src/roff/troff/input.cpp: Don't include symbol.h.
+ (default_symbol): Moved to symbol.cpp/symbol.h.
+ (do_glyph_color, do_fill_color, define_color): Pass symbol name
+ to color constructor.
+ * src/roff/troff/env.h: Updated.
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Document new registers.
+
+2004-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cpp (space_node::get_breakpoints,
+ space_node::nbreaks): Protect against zero `next' field.
+
+2004-01-03 Jeff Conrad <jeff_conrad@msn.com>
+
+ In hpftodit, use the symbol sets offered in the TFM.
+
+ * src/utils/hpftodit/hpftodit.cpp (NO_GLYPH): New constant.
+ (symbol_set, text_symbol_sets, special_symbol_sets,
+ symbol_set_table): Removed.
+ (get_printcode): Removed.
+ (read_symbol_sets): Initialize `symbol_set' field with
+ `NO_SYMBOL_SET'.
+ Simplify code to just use the `kind' value.
+ (output_charset): Improve output formatting.
+ (dump_symbols): Simplified.
+
+2004-01-02 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate/text.map: Add more MSL numbers.
+
+2004-01-02 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/utils/hpftodit/hpftodit.cpp (is_decomposed): New macro.
+ (text_symbol_sets): Add more symbol sets.
+ (debug_flag): New static variable (moved from `main').
+ (get_printcode, show_symset): New functions.
+ (main): Remove `debug_flag'.
+ (output_charset): Use `show_symset'.
+ (dump_symbols): Use `show_symset'.
+ Print symsets for all glyphs.
+ (read_map): Actually call `unicode_to_ucode_make' but this time
+ correctly.
+
+2004-01-01 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate/text.map, font/devlj4/generate/special.map:
+ Fix placement of comments.
+
+2004-01-01 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/utils/hpftodit/hpftodit.cpp (main): Read map file also if
+ option `-d' is given.
+ (output_charset): Improve warning messages to give more information.
+ (dump_symbols): Make information more precise.
+ (usage): Updated.
+ (read_map): Don't call unicode_to_ucode_name; the glyph names must
+ appear as-is and shouldn't be decomposed.
+
+2003-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/hpftodit/hpftodit.cpp (dump_tags): Handle posture_tag.
+ * font/devlj4/generate/Makefile (IFLAG): Updated to new units.
+ (FONTS): Add TrueType font families Arial and Times New Roman.
+ (TNRR, TNRB, TNRI, TNRBI, AR, AB, AI, ABI): New targets.
+ * font/devlj4/generate/text.map: Fix Unicode values of `fi' and
+ `fl'.
+
+2003-12-31 Jeff Conrad <jeff_conrad@msn.com>
+
+ * test-groff.in (SEP): Quote value.
+ * src/roff/troff/node.cpp (suppress_node::tprint): Change type of
+ `tem' to `char*' to avoid deallocation of a pointer to a constant
+ object which some compilers don't like.
+
+2003-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate (text.map, special.map): Rewritten to work
+ with the new hpftodit version.
+
+2003-12-30 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/utils/hpftodit/hpftodit.cpp (output_charset): Emit HP symbol
+ set and 8bit character code for all glyphs also.
+
+2003-12-30 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/strcasecmp.c: Updated from gnulib.
+
+2003-12-29 Werner LEMBERG <wl@gnu.org>
+
+ More fixes for MSVC compiler.
+
+ * doc/Makefile.sub (GROFF_BIN_PATH): Use $(SEP).
+
+ * src/include/nonposix.h (STDIN_FILENO, STDOUT_FILENO,
+ STDERR_FILENO) [_MSC_VER]: Define conditionally.
+ (getpid) [_MSC_VER]: Remove.
+ Include direct.h and process.h conditionally.
+
+ * src/roff/troff/node.cpp (suppress_node::tprint): Don't use
+ parentheses for a_delete.
+
+ * src/utils/lookbib/lookbib.cpp: Include nonposix.h.
+
+ * test-groff: Replaced with...
+ * test-groff.in: This new template to handle path separator
+ properly.
+
+ * configure.ac: Check for direct.h and process.h.
+ Generate test-groff script.
+ * configure, src/include/config.hin: Regenerated.
+
+2003-12-28 Werner LEMBERG <wl@gnu.org>
+
+ Add integral extension glyph.
+ Add new option `-x' to afmtodit to suppress use of built-in AGL.
+
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `u23AE'.
+
+ * font/devps/generate/textmap: Provide entry for `integralex' to
+ override (old) PUA value of the AGL.
+ * font/devps/generate/Makefile (SS): Add afmtodit option `-x'.
+ * font/devps/*: Regenerated.
+
+ * src/utils/afmtodit/afmtodit.pl: Add option `-x'.
+ * src/utils/afmtodit/afmtodit.man, NEWS: Updated.
+
+2003-12-27 Werner LEMBERG <wl@gnu.org>
+
+ Add forgotten `coproduct' symbol (already available for DVI).
+
+ * font/devhtml/R.proto, font/devps/generate/textmap,
+ font/devps/symbolmap, font/devutf8/R.proto, man/groff_char.man,
+ src/libs/libgroff/uniglyph.cc, src/libs/libgroff/glyphuni.cpp: Add
+ U+2210 (\[coproduct]).
+
+2003-12-26 Jeff Conrad <jeff_conrad@msn.com>
+
+ hpftodit has been extended to handle TrueType metric files and
+ more glyphs. See hpftodit.man for more details.
+
+ * src/utils/hpftodit/hpftodit.cpp: Include stdio.h, string.h,
+ ctype.h, and unicode.h.
+ s/msl/charcode/ everywhere since we now handle Unicode values also.
+ (equal, NO, YES, MSL, SYMSET, UNICODE, UNICODE): New macros.
+ Use it where appropriate.
+ (MULTIPLIER): Replaced with...
+ (multiplier): New global static variable.
+ (scale): Updated.
+ (tag_type): Add more TFM tags.
+ (tag_name): New array.
+ (ENUM_TYPE, FLOAT_TYPE): Removed.
+ (BYTE_TYPE): New value assigned.
+ (ASCII_TYPE, RATIONAL_TYPE): New enumeration values.
+ (text_symbol_sets, special_symbol_sets): Extended to cover more
+ sets.
+ (check_type): Add return value.
+ (check_units): Add parameters to get ppi and upem values.
+ Handle TrueType TFM data.
+ (output_font_name): New function.
+ (output_charset): Add parameter to handle TFM type.
+ Handle TrueType TFMs also.
+ (em_fract): New macro.
+ (dump_tags): Be much more verbose and handle more tags.
+ (dump_ascii, dump_symbol_sets, dump_symbols): New functions.
+ (hp_msl_to_ucode_name, unicode_to_ucode_name, is_uname): New
+ functions.
+ (read_map): Add parameter to handle TFM type.
+ Handle both MSL and Unicode mappings.
+ (main): Add two new command line options `-a' and `-q'.
+ Updated to make use of new functions.
+ (usage): Updated.
+
+ * src/utils/hpftodit/hpuni.cpp: New file.
+
+ * src/utils/hpftodit/Makefile.sub, src/utils/hpftodit/hpftodit.man:
+ Updated.
+
+2003-12-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/nonposix.h (read) [_MSC_VER]: Define.
+
+2003-12-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.man: Some reformulations as suggested
+ by Michail Vidiassov <master@iaas.msu.ru>.
+
+2003-12-20 Werner LEMBERG <wl@gnu.org>
+
+ * font/devhtml/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
+ and u0049_0307.
+ Add missing latin-2 glyphs.
+ * font/devutf8/R.proto: Add missing latin-2 glyphs.
+
+ * tmac/troffrc: Load `composite.tmac' earlier.
+
+ * tmac/dvi.tmac, tmac/ps.tmac, tmac/lbp.tmac: Add u00{47,67}_0306,
+ u00{53,73}_0327, and u0049_0307.
+ * tmac/X.tmac: Add u00{47,67}_0306.
+ * tmac/tty-char.tmac: Use composite glyph names for readability.
+
+ * NEWS: Updated.
+
+ * src/include/unicode.h: Remove `extern' keywords.
+
+2003-12-20 Nilgn Belma Bugner <nilgun@superonline.com>
+
+ * tmac/latin5.tmac: New file.
+
+2003-12-19 Werner LEMBERG <wl@gnu.org>
+
+ Add some glyphs needed for Turkish.
+
+ * font/devutf8/R.proto: Add u00{47,67}_0306, u00{53,73}_0327,
+ and u0049_0307.
+
+ * tmac/composite.tmac: Add `,' as a synonym for `ac' accent.
+ * tmac/tty-char.tmac: Add representations for u00{47,67}_0306,
+ u00{53,73}_0327, and u0049_0307.
+
+2003-12-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cc (ps_output::put_float): Revert change
+ from 2001-10-04.
+ Remove trailing zeros.
+
+2003-12-17 Werner LEMBERG <wl@gnu.org>
+
+ Make \? transparent to end-of-sentence recognition.
+
+ * src/roff/troff/input.cc (non_interpreted_node): Add
+ `ends_sentence' member function.
+
+2003-12-16 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Document `dt' request correctly.
+ Other minor typographical improvements.
+
+2003-12-10 Michail Vidiassov <master@iaas.msu.ru>
+
+ * src/utils/afmtodit/Makefile.sub (afmtodit): Fix typo.
+
+2003-12-10 Richard Stallman <rms@gnu.org>
+
+ * LICENSE: Better wording.
+
+2003-12-09 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_BROKEN_SPOOLER_FLAGS): Set default value to 0.
+ * configure, NEWS: Updated.
+
+2003-12-08 Werner LEMBERG <wl@gnu.org>
+
+ * FDL: Updated to version 1.2 (from www.gnu.org/copyleft).
+
+2003-12-07 Bernd Warken <bwarken@mayn.de>
+
+ * LICENSE: Updated.
+
+2003-12-07 Werner LEMBERG <wl@gnu.org>
+
+ * INSTALL: Improved.
+
+2003-12-05 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Use path separator character of target platform for compiled-in
+ default paths.
+
+ * aclocal.m4 (GROFF_TARGET_PATH_SEPARATOR): New macro.
+ * configure.ac: Use GROFF_TARGET_PATH_SEPARATOR.
+ * configure: Regenerated.
+ * Makefile.in (SEP): Use GROFF_PATH_SEPARATOR.
+
+2003-12-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/nonposix.h (PATH_SEP_CHAR): New definition.
+ Replace `PATH_SEP[0]' with `PATH_SEP_CHAR' everywhere.
+
+2003-12-04 Bernd Warken <bwarken@mayn.de>
+
+ * LICENSE: New file.
+
+2003-12-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.pl: Comment out code which handles
+ ligatures present in AFM files since groff currently only
+ understands some standard ligatures and nothing else.
+
+2003-12-03 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/roff/groff/groff.cpp (main): Don't run the spooler if
+ option -v is given.
+
+ * src/roff/groff/pipeline.c (run_pipeline) [_WIN32]: Fix error
+ messages.
+ Close stdout copy.
+ Don't use Unix wait flags.
+
+2003-12-02 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/glyphuni.cpp, src/roff/troff/unicode.cpp,
+ src/roff/troff/unicode.h, src/roff/troff/uniglyph.cpp,
+ src/roff/troff/uniuni.cpp: Moved to...
+ * src/libs/libgroff/glyphuni.cpp, src/libs/libgroff/unicode.cpp,
+ src/libs/libgroff/unicode.h, src/libs/libgroff/uniglyph.cpp,
+ src/libs/libgroff/uniuni.cpp: Here.
+
+ * src/include/Makefile.sub.old (HDRS),
+ src/libs/libgroff/Makefile.sub (OBJS, CCSRCS),
+ src/roff/troff/Makefile.sub (HDRS, PBJS, CCSRCS): Updated.
+
+2003-12-01 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/preproc/htlp/pre-html.cpp (__tmpfile): Renamed to
+ `DEBUG_FILE'.
+ Updated all users.
+
+2003-12-01 Werner LEMBERG <wl@gnu.org>
+
+ * groff.texinfo: Document special behaviour of `.vs 0'.
+ Improve documentation of `cflags' request.
+ * NEWS: Updated.
+
+2003-11-29 Werner LEMBERG <wl@gnu.org>
+
+ * font/devlj4/generate/Makefile (CORONET): Use correct TFM.
+ * font/devlj4/CORONET: Regenerated.
+
+2003-11-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Fix loop
+ if processing hyphenation patterns in traditional mode.
+ Improve error messages.
+
+2003-11-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cpp (troff_output_file::put_char_width,
+ troff_output_file::put_char): Fix type of local variable `c'.
+
+2003-11-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/pipeline.c (P): Removed. Updated all function
+ declarations.
+ (i_to_a): Removed. libgroff already provides this function.
+ (run_pipeline) [_WIN32]: Don't use itoa but i_to_a.
+
+2003-11-18 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/roff/groff/pipeline.c (xstrsignal): Fix usage of
+ HAVE_DECL_SYS_LIST.
+
+2003-11-17 Werner LEMBERG <wl@gnu.org>
+
+ * COPYING: Use correct version.
+
+2003-11-11 Werner LEMBERG <wl@gnu.org>
+
+ LynxOS 4.0.0 doesn't declare vfprintf.
+
+ * configure.ac: Check for vfprintf.
+ * configure: Regenerated.
+ * src/include/lib.h: Handle `NEED_DECLARATION_VFPRINTF'.
+ * src/include/config.hin: Regenerated.
+
+2003-11-10 Werner LEMBERG <wl@gnu.org>
+
+ LynxOS 4.0.0 has snprintf (without declaration) but no vsnprintf.
+
+ * configure.ac: Check for vsnprintf.
+ * configure: Regenerated.
+ * src/include/lib.h: Handle `NEED_DECLARATION_VSNPRINTF' and
+ `HAVE_VSNPRINTF'.
+ * src/include/config.hin: Regenerated.
+
+2003-11-09 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4: Updated syntax to autoconf 2.59.
+ (GROFF_HTML_PROGRAMS): Use AC_FOREACH.
+ Don't check for gsos2.
+ (GROFF_SRCDIR, GROFF_BUILDDIR): Removed. autoconf 2.59 provides
+ working abs_top_srcdir and abs_top_builddir.
+
+ * configure.ac: Updated syntax to autoconf 2.59.
+ Don't call GROFF_SRCDIR and GROFF_BUILDDIR.
+ Replace call to AC_DECL_SYS_SIGLIST with call to AC_CHECK_DECLS.
+ * configure: Regenerated.
+
+ * Makefile.in, doc/Makefile.in: s/@top_srcdir@/@abs_top_srcdir@/,
+ s/@groff_top_builddir@/@abs_top_builddir@/.
+
+ * src/roff/groff/pipeline.c (xstrsignal):
+ s/SYS_SIGLIST_DECLARED/HAVE_DECL_SYS_SIGLIST/.
+
+2003-11-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) ['a']: Always
+ make start angle smaller than end angle to circumvent a bug in tpic
+ handling of some versions of dvipdfm (and dvipdfmx).
+
+2003-10-30 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/grops.man: Improve section on creating EPS.
+
+2003-10-29 Werner LEMBERG <wl@gnu.org>
+
+ * contrib/pic2graph/pic2graph.sh: Fix typo (-P-letter ->
+ -P-pletter).
+
+2003-10-28 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix documentation of `.if'.
+
+2003-10-27 Michail Vidiassov <master@iaas.msu.ru>
+
+ * src/utils/afmtodit/afmtodit.pl: Handle unmapped characters of
+ the form `uniXXXX' also.
+
+2003-10-27 Werner LEMBERG <wl@gnu.org>
+
+ * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2graph.sh,
+ contrib/pic2graph/pic2graph.sh: Implement secure management of
+ temporary files.
+ Pass `-P-pletter' to groff to avoid data outside of the converted
+ area -- some versions of `convert' (for example 5.3.8) don't check
+ the bounding box of the image but always use a fixed image size
+ (letter paper format).
+ * contrib/eqn2graph/eqn2graph.man, contrib/grap2graph/grap2graph.man,
+ contrib/pic2graph/pic2graph.man: Updated.
+
+ * src/roff/groff/groff.man: Document $TMP and $TEMP.
+
+2003-10-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/troff.cpp (troff_output::simple_circle,
+ troff_output::simple_ellipse, troff_output::simple_arc,
+ troff_output::simple_line, troff_output::simple_spline,
+ troff_output::simple_polygon): Insert a space before arguments.
+ (troff_output::set_fill): Emit `\&' before `\D'Fg...' since the
+ latter doesn't produce a node, so the following `.sp -1' would do
+ the wrong thing.
+ Don't emit `.sp -1' after \M. This also doesn't produce a token
+ (and we don't have to care about compatibility mode).
+ (troff_output::set_color, troff_output::reset_color): Don't emit
+ `.sp -1' after \M and \m.
+
+ * src/roff/troff/input.cpp (old_have_input): New global variable.
+ (input_stack::get): Handle `old_have_input'.
+ (process_input_stack) <token::TOKEN_NEWLINE>: Call
+ `trapping_blank_line' depending on `old_have_input', not
+ `have_input'.
+
+2003-10-20 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/libs/libgroff/tmpfile.cpp [__MSDOS__, _Win32]
+ (WIN32_TMPDIR_ENVVAR, MSDOS_TMPDIR_ENVVAR): New macros, providing
+ default directory names for temporary files.
+ [__MSDOS__, _Win32] (temp_init::temp_init): Use them.
+
+ * src/roff/groff/pipeline.c [__MSDOS__]: Include stdlib.h.
+ [__MSDOS__] (run_pipeline): Honour environment variables.
+ Don't use `tmpnam' but `tempnam' to work around messy
+ implementation.
+
+ * README.MinGW: New file.
+
+2003-10-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/pre-html.cpp (write_upto_newline): Don't use
+ `(*t)->next' without testing validity of `*t'.
+ (usage): Make it more readable.
+
+2003-10-16 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Make html device run under both MS-DOS and Win32.
+
+ * src/preproc/html/pre-html.cpp (MAY_FORK_CHILD_PROCESS,
+ MAY_SPAWN_ASYNCHRONOUS_CHILD): New macros to control whether
+ spawn or fork+exec has to be used, and whether parent must sleep
+ until the child process terminates. Used in
+ `char_buffer::run_output_filter'.
+ (copyofstdoutfd): Removed.
+ (char_buffer): Replace `write_file_html' and `write_file_troff'
+ member functions with `emit_troff_output' and `run_output_filter'.
+ (DEVICE_FORMAT, HTML_OUTPUT_FILTER, IMAGE_OUTPUT_FILTER): New
+ macros.
+ (replaceFd): Replaced with...
+ (set_redirection): New auxiliary function.
+ (waitForChild): Replaced with...
+ (save_and_redirect): New auxiliary function for.
+
+ (char_buffer::do_html, char_buffer::do_image): Simplified, using new
+ functions.
+
+2003-10-14 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * aclocal.m4 (GROFF_SYS_NERR): Check stdlib.h also.
+ (GROFF_LIBC): New function.
+ * configure.ac: Call GROFF_LIBC.
+ Check for `kill'.
+ * configure: Regenerated.
+
+ * src/include/lib.h: Handle __MINGW32__.
+ * src/include/nonposix.h [_MSC_VER]: Handle __MINGW32__.
+ Add macro for `pipe'.
+ Define P_tmpdir.
+
+ * src/roff/groff/pipeline.c (run_pipeline): Handle `no_pipe'
+ correctly.
+
+ * src/utils/indxbib/signal.c (handle_fatal_signal) [!HAVE_KILL]:
+ Implement.
+
+2003-10-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.cpp (help), src/devices/grops/ps.cpp (usage),
+ src/roff/troff/input.cc (usage): Updated.
+
+ * NEWS, doc/groff.texinfo: Updated.
+
+2003-10-12 Peter Miller <millerp@canb.auug.org.au>
+
+ * src/libs/libgroff/searchpath.cpp
+ (search_path::open_file_cautious): New function which also handles
+ `-' as stdin and stdout depending on the access mode.
+ * src/include/searchpath.h (search_path): Updated.
+
+ * src/devices/grops/ps.cpp (main): Handle new `-I' switch.
+ * src/devices/grops/ps.h: Include `searchpath.h'.
+ * src/devices/grops/psrm.cpp (resource_manager::supply_resource):
+ Open resource file with `include_search_path.open_file_cautious'.
+ * src/devices/grops/grops.man: Document new `-I' switch.
+
+ * src/devices/grodvi/dvi.cpp (main), src/devices/grolbp/lbp.cpp
+ (main), src/devices/grolj4/lj4.cpp (main),
+ src/devices/grotty/tty.cpp (main): Ignore new `-I' switch.
+
+ * src/preproc/soelim/soelim.cpp (include_list_length, include_list):
+ Replaced with...
+ (include_search_path): New global variable.
+ (include_path_append): Removed.
+ (main): Use `include_search_path.command_line_dir' to handle `-I'.
+ (do_file): Simplify, using new
+ `include_search_path.open_file_cautious'.
+
+ * src/roff/groff/groff.cpp (print_commands): Accept file handle as
+ parameter.
+ (main): Pass arguments to `-I' to both troff and devices.
+ Improve handling of `-V'.
+ * src/roff/groff/groff.man: Document changes to -I and -V.
+
+ * src/roff/troff/input.cpp (include_search_path): New global
+ variable.
+ (next_file, source, ps_bbox_request, transparent_file,
+ process_input_file): Use new
+ `include_search_path.open_file_cautious'.
+ (main) Handle `-I' switch.
+ * src/roff/troff/node.cpp (troff_output_file::really_copy_file):
+ Use new `include_search_path.open_file_cautious'.
+ * src/roff/troff/node.h: New extern symbol `include_search_path'.
+ * src/roff/troff/troff.man: Document new `-I' switch.
+
+2003-09-15 Ruslan Ermilov <ru@FreeBSD.org>
+
+ Support multiple calls of .Lb in LIBRARY section.
+
+ * tmac/doc-common (doc-in-library-section): New register.
+ (doc-section-library): New string.
+ (Sh): Set `doc-in-library-section'.
+ (Rd): Updated.
+ * tmac/doc-syms (Lb): Insert breaks before and after arguments
+ if in LIBRARY section.
+ * tmac/doc.tmac (doc-save-global-vars): Updated.
+ * NEWS, tmac/groff_mdoc.man: Updated.
+
+2003-09-14 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common (doc-default-operating-system): New variable.
+ (Os): Use it.
+
+2003-09-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (doc-reset-reference): Handle data for `%I' also.
+
+2003-08-31 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm: Use `test ... ||' in favor of `if test ...; then'.
+ (install_dev, uninstall_dev): Check whether $(DEVSCRIPTS) and
+ $(DEVFILES) are not empty.
+ * Makefile.in: Use `test ... ||' in favor of `if test ...; then'.
+
+2003-08-23 Stephen Gildea <http://www.gildea.com/stephen>
+
+ * src/preproc/refer/ref.cpp (reference::compute_sort_key): Always
+ insert SORT_SEP. With certain combinations of sort specifications,
+ refer sorted entries in the wrong order. In particular, entries
+ with a missing field should be sorted before all entries that
+ have that field, before refer looks to the next field.
+
+2003-08-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/pfbtops/Makefile.sub (LINK.c): Define it so that the
+ g++ linker is used. Reported by Mark J. Reed
+ <mark.reed@turner.com>.
+
+2003-08-16 Heinz-Jrgen Oertel <hj.oertel@surfeu.de>
+
+ Add key character `x' to tbl which makes tbl call a user-defined
+ macro on a table cell.
+
+ * src/preproc/tbl/table.h (entry_modifier): Add `macro'.
+ * src/preproc/tbl/table.cpp (block_entry::do_divert): Call
+ `set_modifier' after printing the compatibility request.
+ (set_modifier): Print call to `m->macro' if not empty.
+ * src/preproc/tbl/main.cpp (entry_format::debug_print): Handle
+ `macro'.
+ (process_format): Implement cases `x' and `X'.
+ * src/preproc/tbl/tbl.man, NEWS: Updated.
+
+2003-08-15 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Minor fixes.
+
+2003-08-09 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac [cR]: Fix redefinition of `bp'.
+
+2003-08-07 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub: Not all shells expand wildcards in the `for'
+ argument list to nothing if there is no file to match. Use `ls' as
+ a protection, similar to autoconf.
+
+ * Makefile.comm (install_dev, uninstall_dev): Protect `for' against
+ empty argument lists.
+
+ * doc/groff.texinfo: Improve documentation how vertical spacing
+ and line breaks interact.
+ Other minor fixes.
+
+ * tmac/www.tmac: Initialize `www-htmlimage-gap'.
+
+2003-08-03 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, src/devices/grops/grops.man: -b16 is necessary to produce
+ EPS (using eps2eps or similar programs to compute the bounding box).
+
+2003-07-24 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Use the new @/ command to avoid overlong lines.
+ * doc/texinfo.tex: Updated from texinfo 4.6.
+ * README.CVS: From now on we need texinfo 4.6.
+
+2003-07-23 Werner LEMBERG <wl@gnu.org>
+
+ Add requests `dei1' and `ami1' for completeness.
+
+ * src/roff/troff/input.cc (calling_mode): Remove
+ CALLING_DISABLE_COMP.
+ (comp_mode): New enumeration.
+ (do_define_string, define_string, define_nocomp_string,
+ append_string, append_nocomp_string): Updated.
+ (do_define_macro): Add third parameter.
+ (define_macro, define_nocomp_macro, define_indirect_macro,
+ append_macro, append_nocomp_macro, append_indirect_macro): Updated.
+ (define_indirect_nocomp_macro, append_indirect_nocomp_macro): New
+ functions.
+ (ignore): Updated.
+ (init_input_requests): Add `dei1' and `ami1'.
+
+ * tmac/trace.tmac: Handle de1 and am1.
+ (de): Improve tracing message.
+ (am): Add missing `do'.
+ (return): Use de1.
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Document new requests.
+
+2003-07-22 Heinz-Jrgen Oertel <hj.oertel@surfeu.de>
+
+ Add option -G to .MPIMG to insert a gap between text and the image.
+
+ * tmac/www.tmac (www-finish-left-po, www-finish-right-ll,
+ www-finish-left-ll): Updated.
+ (www-image-just, www-image-gap, www-htmlimage-gap): New variables.
+ (MPIMG): Make option -L and -R optional.
+ Implement option -G.
+
+2003-07-22 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::do_file_components): Don't use `stdout' as lvalue
+ since it can be a macro.
+
+2003-07-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/strerror.c: Include errno.h to be in sync with
+ the corresponding test in aclocal.m4.
+
+2003-07-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/pre-html.cpp (TRANSPARENT): Don't use colour
+ names but RGB values directly. Otherwise pnmtopng depends on
+ an external file `rgb.txt' which maps colour names to values.
+
+2003-07-20 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_SYS_ERRLIST): Include stdlib.h for MinGW.
+ * configure, src/include/config.hin: Regenerated.
+
+ * src/libs/libgroff/strerror.c: Include stdlib.h for MinGW.
+
+2003-07-19 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Add solution for UTF-8 problem with hyphens.
+
+2003-07-18 Werner LEMBERG <wl@gnu.org>
+
+ * *.man: Switch to non-compatibility mode temporarily if GNU
+ syntax extensions are used in the particular man page.
+
+ * PROBLEMS: Add solutions for SGR problems.
+
+2003-07-17 Werner LEMBERG <wl@gnu.org>
+
+ Don't ignore grotty's command line options if \X'tty: sgr ...' is
+ used to change the drawing scheme.
+
+ * src/devives/grotty/tty.cpp (bold_flag_option,
+ underline_flag_option, italic_flag_option, reverse_flag_option,
+ bold_underline_mode_option): New global variables.
+ (update_options): New function.
+ (tty_printer::special): Call update_options.
+ (main): Don't set xxx_flag but xxx_flag_option, then call
+ update_options.
+
+2003-07-14 Werner LEMBERG <wl@gnu.org>
+
+ Make grotty emit proper Unicode box drawing characters for -Tutf8.
+
+ * src/devices/grotty/tty.cpp (START_LINE, END_LINE): New enum
+ values.
+ (hline_char, vline_char): New global variables.
+ (tty_printer::tty_printer): Initialize them.
+ (tty_printer::draw): Emit START_LINE and END_LINE flags for both
+ horizontal and vertical lines.
+ (crossings): New global array.
+ (tty_printer::end_page): Use it to determine the proper crossing
+ character for -Tutf8.
+
+2003-07-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefilesub (HTMLDOCFILESALL): New macro.
+ (HTMLDOCFILES): Revert to `pic.html'.
+ (CLEANADD, install_html, uninstall_sub): Use HTMLDOCFILESALL.
+
+2003-07-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Improve documentation of absolute coordinates.
+ Document absolute positioning of pictures.
+
+ * NEWS: Add new pic capability.
+
+2003-07-09 Hartmut Henkel <hartmut_henkel@gmx.de>
+
+ * src/libs/libgroff/geometry.cpp (check_output_arc_limits):
+ Rewritten.
+
+2003-07-07 Werner LEMBERG <wl@gnu.org>
+
+ Implement support for dashed and dotted ellipses in pic. Based on
+ a patch from Hartmut Henkel <hartmut_henkel@gmx.de>.
+
+ * src/preproc/pic/common.cpp (common_output::ellipse_arc,
+ common_output::dashed_ellipse, common_output::dotted_ellipse): New
+ functions. Ellipse arcs are approximated with circle arcs.
+ * src/preproc/pic/common.h (common_output): Updated.
+ * src/preproc/pic/tex.cpp (tex_output::ellipse): Use new ellipse
+ functions.
+ * src/preproc/pic/troff.cpp (simple_output::ellipse): Ditto.
+
+ * src/preproc/pic/TODO, src/preproc/pic/pic.man: Updated.
+
+2003-07-06 Werner LEMBERG <wl@gnu.org>
+
+ Make grotty work on platforms which have unsigned char as the
+ default for char. Based on a patch by Thomas Klausner
+ <wiz@netbsd.org>.
+
+ * src/devices/grotty/tty.cpp (schar): New typedef.
+ Updated calls to declare_ptable and implement_ptable.
+ (glyph): Use schar for back_color_idx and fore_color_idx.
+ (tty_printer): Use schar for curr_fore_idx and curr_back_idx.
+ (tty_printer::tty_color, tty_printer::tty_printer,
+ tty_printer::color_to_idx, tty_printer::put_color): Updated.
+
+2003-07-06 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * src/roff/nroff/nroff.sh: Add option -d for completeness.
+ * src/roff/nroff/nroff.man: Updated.
+
+2003-07-05 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, tmac/groff_www.man: Updated.
+ * doc/Makefile.sub: Updated.
+
+2003-07-05 Gaius Mulley <gaius@glam.ac.uk>
+
+ Implement support for multiple HTML output files.
+
+ * src/preproc/html/pre-html.cpp (scanArguments): Dummy handling for
+ -j command line option.
+
+ * src/devices/grohtml/post-html.cpp (job_name, multiple_files): New
+ global variables.
+ (file): New fields `new_output_file', `require_links',
+ `output_file_name'.
+ (file::file): Updated.
+ (files::set_file_name, files::set_links_required,
+ files::are_links_required, files::is_new_output_file,
+ files::file_name, files::next_file_name): New functions.
+ (header_desc): New fields `no_of_level_one_headings',
+ `header_filename'.
+ (header_desc::header_desc): Updated.
+ (header_desc::write_headings): Handle multiple files.
+ (html_printer::write_header): Save file name in which header occurs.
+ (html_printer::determine_header_level): Possibly split files on
+ level one headings.
+ (html_printer::do_links, html_printer::troff_tag): Updated.
+ (html_printer::insert_split_file, html_printer::do_job_name,
+ html_printer::emit_link, html_printer::write_navigation,
+ html_printer::do_file_components): New functions.
+ (html_printer::~html_printer): Handle multiple files.
+ (main): Handle command line option `-j'.
+
+ * src/devices/grohtml/grohtml.man: Updated.
+
+ * doc/Makefile.sub (pic.html), doc/Makefile.in (pic.html): New rule
+ which splits file.
+
+ * tmac/www.tmac (JOBNAME): New macro.
+ * tmac/s.tmac (SH-NO-TAG): New macro.
+ (@SH): Call SH-NO-TAG.
+ (@NH): Updated.
+
+2003-07-05 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/groff_mdoc.man: Improve documentation of punctuation
+ characters.
+
+2003-07-04 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (Bd): Change to doc-Li-font later.
+
+2003-07-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac [cR]: Redefine `bp' to avoid empty lines.
+
+2003-07-01 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc.tmac (doc-do-func, doc-do-func-args): Don't print a comma
+ after `/*' and `*/'.
+ Fix spacing.
+ (Fn, Fo): Reduce indentation in synopsis.
+
+ * tmac/doc-common (doc-check-depth): New macro.
+ (doc-end-macro, Sh, Ss): Use it.
+ (Cd): Fix behaviour in synopsis.
+ (In): Make it parsed and callable.
+ If not in the synopsis, represent the C header file enclosed in
+ angle brackets.
+ (doc-str-Rv-std-suffix, doc-str-Rv-stds-suffix, doc-str-Rv-std0):
+ Use minus, not hyphen.
+
+ * tmac/groff_mdoc.man: Updated.
+
+2003-07-01 Werner LEMBERG <wl@gnu.org>
+
+ Integrated grap2graph, contributed by Eric S. Raymond.
+
+ * contrib/grap2graph/{Makefile.sub, grap2graph.sh, grap2graph.man}:
+ New files.
+ * Makefile.in, NEWS, MANIFEST, contrib/eqn2graph.man,
+ contrib/pic2graph.man, src/roff/groff/groff.man: Updated.
+
+2003-07-01 Colin Watson <cjwatson@debian.org>
+
+ * src/xditview/*.c: Add prototypes, fix return types, add includes.
+ Based on work by Fumitoshi UKAI <ukai@debian.or.jp>.
+
+2003-06-31 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/tty-char.tmac: Provide `lb', `rb', `lk', `rk', `lt', `rt'.
+
+2003-06-31 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (CLEANADD): Remove all files created by
+ running `make groff.{pdf,dvi}'.
+
+ * Makefile.sub (DISTCLEANFILES): Remove all non-source files from
+ src/xditview also.
+
+2003-06-30 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (SHELL): Define as @SHELL@.
+ (mkinstalldirs): Use $(SHELL).
+ (MDEFINES): Add $(SHELL).
+ * Makefile.comm (SHELL): Removed.
+
+2003-06-29 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/s.tmac (De, Ds): New aliases for .DE and .DS, respectively.
+ The X11 documentation files use them.
+ * tmac/groff_ms.man, doc/groff.texinfo: Document them.
+
+2003-06-15 Robert Goulding <goulding@Princeton.EDU>
+
+ * tmac/e.tmac (@C): Handle .ad also.
+
+2003-06-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Document formatting of text blocks.
+
+ * src/roff/troff/input.cc (token::next) <handle_escape_char>:
+ Assign `n' even here. It is possible to construct a node
+ immediately following an escape character:
+
+ .di xx
+ \?\\\?a
+ .br
+ .di
+ .xx
+
+2003-06-10 Werner LEMBERG <wl@gnu.org>
+
+ * README.WIN32: Removed.
+ * MANIFEST: Updated.
+
+2003-06-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/nroff/nroff.sh: Don't emit SGR for option -u.
+
+2003-06-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.y <sprintf_args>: Implement workaround for bug
+ in Compaq C++ V6.5-033 for Compaq Tru64 UNIX V5.1A (Rev. 1885).
+
+2003-06-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/hdb.cpp (DBRead): Don't close file handle; this
+ is done by the calling function.
+
+2003-05-22 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/X.tmac: Fix definition of `em'.
+
+2003-05-22 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (return_macro_request): Fix detection of
+ argument.
+
+2003-05-18 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (doc-tag-list): Force horizontal mode after tag
+ to make items work which consist only of a tag.
+
+2003-05-17 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc.tmac (doc-tag-list): Don't use \Z to assure that spaces
+ aren't stretched in a tag (this can fail with unformatted boxes).
+ Instead, insert a break and go back one line.
+
+2003-05-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (return_macro_request): If called with
+ argument pop macro twice. We need this to trace `return'.
+
+ * tmac/trace.tmac: Handle `return'.
+ Fix typos.
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Document.
+
+2003-05-15 Larry Kollar <kollar@alltel.net>
+
+ * tmac/groff_ms.man, doc/groff.texinfo: Improve documentation of
+ registers `FPS', `FVS', and `FPD'.
+
+2003-05-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/pfbtops/pfbtops.c (get_text): Handle loop counter
+ correctly.
+
+2003-05-03 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/groff_mdoc.man: Slight improvements.
+
+2003-05-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-common (doc-header): Emit vertical space of 1v instead of
+ `doc-header-space' after header line if register `cR' is set.
+
+2003-05-02 Werner LEMBERG <wl@gnu.org>
+
+ * TODO: Updated.
+
+2003-05-01 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common (Nd): Use \[em].
+
+2003-05-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-ditroff, tmac/doc-nroff (doc-header-space,
+ doc-footer-space): Initialize to 0.5i.
+ (doc-setup-page-layout): Don't set doc-header-space and
+ doc-footer-space.
+
+2003-04-30 Werner LEMBERG <wl@gnu.org>
+
+ * REVISION: Set to 1.
+
+ * doc/pic.ms: Document possible problems with `figname'.
+
+2003-04-29 Werner LEMBERG <wl@gnu.org>
+
+Version 1.19 released
+=====================
+
+ * VERSION: Set to 1.19.
+ * REVISION: Set to 0.
+ * doc/groff.texinfo, doc/webpage.ms, NEWS: Updated.
+
+ * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
+ Define charset as `US-ASCII' in html output.
+
+ * tmac/www.tmac (ULE): Add missing scaling indicator.
+
+ * win32-diffs: Removed.
+
+2003-04-28 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Document `dn' and `dl' registers if used with
+ `.da' and `.boxa'.
+ Document how to insert discardable whitespace with `.ss'.
+
+2003-04-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/tex.cpp (tex_output::start_picture): Make code
+ work with plain TeX also.
+
+ * src/preproc/pic/pic.man, doc/pic.ms: Fix TeX code example.
+
+2003-04-25 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
+ Use a loose DTD.
+
+2003-04-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.man, doc/pic.ms: Explain how to get a
+ vbox with positive height and zero depth if in TeX mode.
+
+ * NEWS: Document glyph name changes for grodvi and grolj4.
+
+2003-04-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/tex.cpp (tex_output::start_picture): Fix TeX code.
+ * doc/pic.ms: Fixed.
+
+2003-04-21 Werner LEMBERG <wl@gnu.org>
+
+ HP-UX 10.20 has `snprintf' but it isn't declared.
+
+ * configure.ac: Add declaration test for snprintf.
+ * configure: Regenerated.
+ * src/include/lib.h: Handle `NEED_DECLARATION_SNPRINTF'.
+ * src/include/config.hin: Regenerated.
+
+2003-04-19 Werner LEMBERG <wl@gnu.org>
+
+ Add keyword `figname' to pic, specifying the name of the picture
+ box in TeX mode. Based on a patch from William J Poser
+ <wjposer@unagi.cis.upenn.edu>.
+
+ * src/preproc/pic/pic.y: New token `FIGNAME'.
+ (macro_name): New rule of type <str>.
+ (placeless_element): Handle `FIGNAME'.
+ * src/preproc/pic/lex.cpp (lookup_keyword): Add `figname'.
+ * src/preproc/pic/main.cpp (graphname): New global variable.
+ (do_picture): Initialize `graphname'.
+ * src/preproc/pic/pic.h: Updated.
+ * src/preproc/pic/tex.cpp (tex_output::start_picture): Use
+ `graphname'.
+ Simplify TeX code.
+ (tex_output::text): Beautify output.
+ * src/preproc/pic/object.cpp (object_spec::~object_spec): Deallocate
+ `shaded' and `outlined' unconditionally.
+ * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Updated.
+ Minor improvements.
+
+ * PROBLEMS, README.CVS: Mention that bison version 1.875b or
+ greater is necessary.
+
+2003-04-17 Hartmut Henkel <hartmut_henkel@gmx.de>
+
+ Add option -r to soelim to avoid emission of `.lf' lines.
+ Add option -t to produces TeX comment lines instead of `.lf' lines.
+
+ * src/preproc/soelim/soelim.cpp: New global variables `raw_flag'
+ and `tex_flag'.
+ (usage): Updated.
+ (main): Handle `-r' and `-t'.
+ (set_location): Handle `raw_flag' and `tex_flag'.
+ * src/preproc/soelim/soelim.man, NEWS: Updated.
+
+2003-04-17 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/hyphenex.sh: Replaced with...
+ * tmac/hyphenex.pl: This perl script to avoid sed compatibility
+ nightmares.
+
+ * aclocal.m4 (GROFF_HTML_PROGRAMS): Emit useful warning message
+ if --quiet is used for the configure script.
+ * configure: Regenerated.
+
+2003-04-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/post-html.cpp (text_glob::text_glob):
+ Add `const' to second argument.
+ (html_printer::add_table_end): Add `const' to argument.
+ * src/devices/grohtml/html-text.cpp (html_text::issue_tag): Add
+ `const' to arguments.
+ * src/devices/grohtml/html-text.h: Updated.
+
+ * src/devices/grolbp/charset.h (symset): Use `unsigned char'.
+ * src/devices/grolbp/lbp.h (lbpputc): Use `unsigned char' for
+ argument.
+
+ * src/devices/grotty/tty.cpp (tty_printer::make_rgb_string): Use
+ cast for integer constant.
+
+ * src/preproc/html/pre-html.cpp (image_device): Use `const'.
+ (writeNbytes): Add `const' to first argument.
+ (writeString): Add `const' to argument.
+ (char_buffer::can_see): Add `const' to third argument.
+ * src/preproc/html/pushback.cpp (pushBackBuffer::isString): Add
+ `const' to argument.
+ * src/preproc/html/pushback.h: Updated.
+
+ * src/preproc/soelim/soelim.cpp (include_list): Add `const'.
+ (include_path_append): Add `const' to argument.
+ (do_file): Updated.
+
+ * src/roff/troff/uniglyph.cpp (unicode_to_glyph_list): Use `const'
+ for `value'.
+ (unicode_to_glyph_init::unicode_to_glyph_init): Updated.
+ * src/roff/troff/uniuni.cpp (unicode_decompose_list): Use `const'
+ for `value'.
+ (unicode_decompose_init::unicode_decompose_init): Updated.
+ * src/roff/troff/glyphuni.cpp (glyph_to_unicode_list): Use `const'
+ for `value'.
+ (glyph_to_unicode_init::glyph_to_unicode_init): Updated.
+ * src/roff/troff/input.cc (process_startup_file): Add `const' to
+ argument.
+
+ * tmac/hyphenex.sh: Make script more portable by using a here
+ document.
+
+2003-04-15 Werner LEMBERG <wl@gnu.org>
+
+ Renamed all `*.cc' files to `*.cpp'.
+ Updated all configuration files, makefiles, and documentation.
+
+2003-04-14 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/hyphenex.sh: Slight improvements.
+
+2003-04-13 Werner LEMBERG <wl@gnu.org>
+
+ * font/devascii/R.proto, font/devcp1037/R.proto,
+ font/devlatin1/R.proto, font/devutf8/R.proto: Fill up remaining
+ character slots with unnamed glyphs.
+
+ * tmac/an-old.tmac: Fix hyphenation value if `cR' is active.
+ (an-first): New global variable.
+ (an-header): Emit vertical space between multiple man pages.
+
+2003-04-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo, man/groff_out.man: \S only accepts integer
+ values.
+
+2003-04-10 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Revised.
+
+2003-04-10 Bernd Warken <bwarken@mayn.de>
+
+ * doc/webpage.ms: Improved.
+
+2003-04-09 Werner LEMBERG <wl@gnu.org>
+
+ Add register \n[.height] which returns the value of \H.
+ Add register \n[.slant] which returns the value of \S.
+
+ * src/roff/troff/env.cc (init_env_requests): Implement.
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Document.
+
+2003-04-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/html.tmac: Move some of the data into html-end.tmac.
+ Remove most of the character translations for eqn since html fonts
+ now cover those characters.
+ Load www.tmac.
+ * tmac/html-end.tmac: New file.
+ * tmac/troffrc: Load html.tmac not www.tmac for -Thtml.
+ * tmac/troffrc-end: Load html-end.tmac not html.tmac for -Thtml.
+ * tmac/Makefile.sub (NORMALFILES): Add html-end.tmac.
+
+2003-04-07 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_out.man: Document negative values of `N' if -Thtml is
+ used.
+
+2003-04-06 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm (depend.temp): Check location of YTABC.
+
+2003-04-05 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
+
+ * doc/Makefile.in (TROFFBIN): New variable for troff
+ binary path.
+ (GROFFBIN): New variable for groff binary path.
+ (groff_bin_path): Rename to GROFF_BIN_PATH.
+ (TROFF): Use TROFFBIN.
+ (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
+ * doc/Makefile.sub (GROFFBIN): New variable for groff
+ binary path.
+ (groff_bin_path): Rename to GROFF_BIN_PATH.
+ (GROFF): Use GROFFBIN and GROFF_BIN_PATH.
+
+ * Makefile.comm (install_dev): Install scripts from DEVSCRIPTS
+ with INSTALL_SCRIPT.
+ (uninstall_dev): Uninstall scripts from DEVSCRIPTS.
+ * Makefile.dev (all): Depend on DEVSCRIPTS.
+ (install_dev): Likewise.
+ * font/devdvi/Makefile.sub (DEVSCRIPTS): New variable to hold
+ scripts.
+ * font/devps/Makefile.sub (DEVSCRIPTS): Likewise.
+ (DEVGENSCRIPTS): New variable to hold generated scripts.
+
+2003-04-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libdriver/input.cc (IntArray::operator[],
+ IntArray::get_data): Remove meaningless `const' in return value.
+
+ * README.CVS: New file.
+
+2003-04-04 Werner LEMBERG <wl@gnu.org>
+
+ Check for stdint.h in C++, not in C.
+
+ * aclocal.m4 (GROFF_STDINT_H): New function,
+ * configure.ac: Check for stdint.h with GROFF_STDINT_H instead of
+ AC_CHECK_HEADERS.
+ * configure, src/include/config.hin: Regenerated.
+ * src/libs/libgroff/tmpname.cc: Use HAVE_CC_STDINT_H.
+
+
+ Fix handling of &nbsp; in grohtml. To do this, troff emits `N'
+ with a negative value, representing the width of the unbreakable
+ space (only for -Thtml). grohtml then converts this back to
+ &nbsp; and uses the value of N as its width.
+
+ * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
+ unbreakable_space_node::tprint): Emit `N-<width>'.
+ * src/include/printer.h (printer::set_numbered_char): Make it
+ virtual.
+ Make members `font_table' and `nfonts' protected instead of private.
+ * src/devices/grohtml/post-html.cc
+ (html_printer::set_numbered_char): New member function.
+
+
+ * src/libs/libgroff/maxfilename.cc:
+ s/HAVE_LIMITS_H/HAVE_CC_LIMITS_H/.
+
+ * src/roff/troff/node.cc (unbreakable_space_node::tprint): Don't
+ emit word marker.
+
+2003-04-03 Sergey A. Osokin <osa@freebsd.org.ru>
+
+ * man/roff.man: Small fixes.
+
+2003-04-03 Werner LEMBERG <wl@gnu.org>
+
+ Make groff independent from locale's numeric settings.
+
+ * configure.ac: Check for `setlocale'.
+ * configure, src/include/config.hin: Regenerated.
+
+ * src/include/lib.h: Handle HAVE_SETLOCALE.
+
+ * src/devices/grodvi/dvi.cc (main), src/devices/grolj4/lj4.cc
+ (main), src/devices/grops/ps.cc (main), src/preproc/grn/main.cc
+ (main), src/preproc/pic/main.cc (main): Call `setlocale'.
+
+
+ * doc/groff.texinfo: Change dir category to `Typesetting'.
+ (Man font macros): Mention that there is no space between arguments
+ of .BI and friends.
+
+ * src/libs/libdriver/printer.cc, src/devices/grotty/tty.cc
+ (*printer::change_color, *printer::change_fill_color): Add missing
+ `const'.
+
+2003-04-02 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/html-table.cc (html_table::emit_col,
+ html_table::is_gap): Compute table widths after converting border
+ positions to avoid rounding errors.
+
+2003-04-01 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/html-text.cc (html_text::do_space): Handle
+ `space_emitted' properly.
+
+2003-03-31 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/html-table.cc: Fix column width calculation.
+ (html_table::set_linelength): Don't add 1.
+ (html_table::add_indent): Don't subtract 1.
+
+ * tmac/html.tmac: Set default page offset to zero.
+
+2003-03-30 Werner LEMBERG <wl@gnu.org>
+
+ Make groff emit `&nbsp;' for `\ ' and `\~' if `-Thtml' is used.
+
+ * src/roff/troff/node.cc (space_char_hmotion_node::tprint,
+ unbreakable_space_node::tprint): New functions.
+ (troff_output_file): Make space_char_hmotion_mode::tprint and
+ unbreakable_space_node::tprint to friends.
+ * src/roff/troff/node.h: Updated.
+
+ * font/devhtml/R.proto: Add `&nbsp' at position 0xA0 (as defined
+ in the HTML standard).
+
+2003-03-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cc (point_size): Fix emission of html tag.
+ Otherwise, the following code
+
+ .di xxx
+ .ps 10
+ a
+ .br
+ .di
+ x\*[xxx]
+
+ produces `x a' instead of `xa'. This is a temporary fix, disabling
+ font changes in diversions for -Thtml.
+
+ * tmac/an-old.tmac (TH, SH): Use `HTML-TAG-NS' instead of
+ `HTML-TAG'.
+ (an-do-tag-html): Merge with ...
+ (an-do-tag): This macro.
+ Change code slightly to circumvent grohtml bug.
+ * tmac/troffrc-end: Define dummy for HTML-TAG-NS.
+
+ * src/devices/grohtml/html-table.cc (html_table::emit_col,
+ html_table::is_gap): Round `width' properly.
+
+ * tmac/html.tmac: Provide some default layout parameters for
+ grohtml.
+
+ * font/devhtml/DESC.proto: Don't use discrete values for `sizes'
+ command.
+
+2003-03-28 Werner LEMBERG <wl@gnu.org>
+
+ src/devices/grops/ps.cc (ps_printer::do_import): Fix error message.
+
+2003-03-27 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (BT): Don't call .tl if register `ps4html' is
+ defined.
+
+2003-03-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cc (vertical_spacing): Allow zero value for
+ `.vs'.
+ * doc/groff.texinfo: Updated.
+
+2003-03-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (process_input_stack) <TOKEN_BEGIN_TRAP,
+ TOKEN_END_TRAP>: Reset `have_input'.
+
+2003-03-18 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.man: Mention groff_trace man page.
+
+2003-03-16 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (LIBEXT): New variable to indicate the file extension
+ of library files. Computed heuristically from $(OBJEXT).
+ (MDEFINES): Add $(LIBEXT).
+ * Makefile.lib, Makefile.comm: Use it.
+
+ * src/utils/pfbtops/pfbtops.c (get_text): New function. Split
+ overlong lines into smaller chunks.
+ (get_binary): New function.
+ (main): Use them.
+ * src/utils/pfbtops/pfbtops.man: Updated.
+
+2003-03-15 Colin Watson <cjwatson@debian.org>
+
+ * src/roff/groff/groff.man: Minor syntax fix.
+
+2003-03-14 Egil Kvaleberg <egil@kvaleberg.no>
+
+ * src/devices/grops/ps.cc (ps_printer::media_set,
+ ps_printer::~ps_printer): Handle zero paper width and length.
+
+2003-03-13 Werner LEMBERG <wl@gnu.org>
+
+ Add options -p and -l to grodvi.
+
+ * src/devices/grodvi/dvi.cc: Include paper.h.
+ (landscape_flag, user_paper_length, user_paper_width): New global
+ variables.
+ (dvi_printer::begin_page): Emit `papersize' special.
+ Set color after initialization of `cur_h' and `cur_v'.
+ (main): Add options `-l' and `-p'.
+ * font/devdvi/Makefile.sub (DESC): Set `papersize'.
+ * src/devices/grodvi/grodvi.man, NEWS: Updated.
+
+ * src/devices/grops/psrm.cc (valid_input_table): Fixed.
+
+2003-03-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/grops.man: Move documentation of .PSPIC to...
+ * man/groff_tmac.man: This man page.
+ * man/groff_font.man: Declare `paperwidth' and `paperlength' as
+ deprecated.
+
+ * tmac/X.tmac: Don't load pspic.tmac.
+
+2003-03-11 Werner LEMBERG <wl@gnu.org>
+
+ Make variable `pr' local to libdriver/input.cc. Based on a patch
+ by Bernd Warken <bwarken@mayn.de>.
+
+ * src/include/driver.h (pr): Removed.
+
+ * src/libs/libdriver/input.cc (pr): New global variable.
+ (do_file): Deallocate `pr'.
+ * src/libs/libdriver/printer.cc (pr): Removed.
+
+ * src/devices/grodvi/dvi.cc (main), src/devices/grohtml/post-html.cc
+ (main), src/devices/grolbp/lbp.cc (main), src/devices/grolj4/lj4.cc
+ (main), src/devices/grops/ps.cc (main), src/devices/grotty/tty.cc
+ (main): Don't delete `pr'.
+
+2003-03-10 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/a4.tmac, tmac/composite.tmac: Use `.do'.
+ * tmac/papersize.tmac: New file.
+ * tmac/troffrc: Include `papersize.tmac'.
+ * tmac/Makefile.sub (NORMALFILES): Add `papersize.tmac'.
+ * tmac/an-old.tmac: Set LT to LL by default.
+
+ * NEWS, MANIFEST, tmac/groff_man.man, man/groff_tmac.man,
+ doc/groff.texinfo: Updated.
+
+ * src/libs/libgroff/paper.cc (add_iso_paper): Fix very embarrassing
+ bug which caused all odd iso papers to have wrong dimensions.
+
+ * src/devices/grops/ps.cc (user_paper_width): New global variable.
+ (main) <'p'>: Set `user_paper_width' also.
+ (ps_printer::media_width, ps_printer::media_height): Use values
+ given with option `-p'.
+
+2003-03-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/nonposix.h: Provide default for SET_BINARY.
+
+ * src/devices/grodvi/dvi.cc, src/devices/grolbp/lbp.cc,
+ src/devices/grolj4/lj4.cc, src/devices/grops/ps.cc: Call SET_BINARY
+ unconditionally.
+
+ * src/utils/pfbtops/pfbtops.c: Call SET_BINARY unconditionally.
+ (main): Treat \r\n as \n.
+
+2003-03-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac: Use register `HY' to control hyphenation.
+ * NEWS, tmac/groff_man.man, doc/groff.texinfo: Document it.
+
+2003-03-07 Werner LEMBERG <wl@gnu.org>
+
+ Added support to access more than 256 glyphs in Type 1 fonts.
+
+ * src/devices/grops/ps.cc (subencoding): New structure.
+ (style): Add `sub' field.
+ Updated all users.
+ (ps_printer): Add `subencodings' and `next_subencoding_index' fields.
+ Add `set_subencoding', `get_subfont' and `encode_subfont' member
+ functions.
+ Updated all users.
+ (ps_printer::set_char): Use `set_subencoding'.
+ (make_subencoding_name): New function.
+ (ps_printer::set_style): Handle case where `sty.sub' is not zero.
+ (ps_printer::~ps_printer): Emit subencoding definitions.
+
+ * src/devices/grops/psrm.cc (valid_input_table): New array to
+ properly support EBCDIC.
+ (white_space): Add `\f'.
+ (ps_get_line): Change first argument to be of type `string &'.
+ Updated all callers.
+ This allows to get lines of arbitrary length.
+ Use `valid_input_table'.
+ Remove warning about non-conforming PS line length. This seems
+ not to be of great importance -- for example, dvips don't emit
+ a warning either.
+ (PS_LINE_MAX): Removed.
+ (matches_comment): Change first argument to be of type `string &'.
+
+ * src/devices/grops/grops.man, src/devices/grops/TODO: Updated.
+
+ * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
+ %AGL_to_unicode, %default_ligatures): New hash tables.
+ Read all map entries.
+ Add unencoded characters.
+ Check for default ligatures if there are no `L' entries.
+ Print all kern entries.
+ Print all characters in charset.
+ * src/utils/afmtodit/afmtodit.man: Updated.
+
+ * font/devps/*: Regerated all fonts.
+
+ * tmac/latin[129].tmac, tmac/cp1047.tmac: Don't test for existence
+ of characters, just use `.trin'. Otherwise the mapping depends
+ on the font encoding.
+ * tmac/ps.tmac: Add `fi' and `fl'.
+ Improve `Fi' and `Fl'.
+ * tmac/X.tmac, tmac/lbp.tmac, tmac/tty.tmac: Improve `Fi' and `Fl'.
+ * tmac/Xps.tmac: Fix `em'.
+
+ * NEWS: Updated.
+
+2003-03-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (charinfo_to_node_list): Reset
+ `have_input'.
+
+2003-03-03 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.sub (DISTCLEANFILES): Add gxditview._man.
+
+ * font/devps/generate/textmap: Remove entry `similarequal'.
+ * font/devps/symbolmap: Updated.
+
+2003-03-02 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/font.cc (font::load): Fix error message for
+ bad character type.
+
+ * src/devices/grops/grops.man: Improve documentation of the -b
+ flag.
+
+ * tmac/tty.tmac: Load latin1.tmac for all TTY devices except
+ `ascii' and `cp1047'.
+
+2003-03-01 Werner LEMBERG <wl@gnu.org>
+
+ Document composite glyphs and the `composite' request.
+
+ * man/groff.man, man/groff_diff.man, doc/groff.texinfo: Do it.
+
+2003-02-28 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/ec.map: Add some more Unicode entities.
+ * font/devdvi/*EC: Updated.
+
+ * tmac/composite.tmac, tmac/latin2.tmac, tmac/latin9.tmac: New files.
+ * tmac/latin1 (latin1-tr): Undo any previous mapping.
+ * tmac/troffrc: Load `composite.tmac'.
+ * tmac/Makefile.sub (NORMALFILES): Updated.
+
+ * doc/groff.texinfo (Input Encodings): New section.
+ * NEWS: Updated.
+
+2003-02-27 Werner LEMBERG <wl@gnu.org>
+
+ * doc/texinfo.tex: New version 2003-02-11.06.
+
+ * tmac/doc-common (Dt): Don't emit warning for unknown section.
+ * tmac/groff_mdoc.man: Fix description of `Dt'.
+
+2003-02-26 Egil Kvaleberg <egil@kvaleberg.no>
+
+ * font/devps/prologue.ps: Fix for included Postscript that does
+ a setpagedevice -- which is now safely ignored.
+
+ * NEWS: Updated.
+
+ * src/devices/grops/ps.cc: Now sets the page size in the generated
+ document. This is done in two ways: Via a %%-comment for gv and
+ the like, and via a PageSize and setpagedevice for programs that
+ understands Postscript proper, like ps2pdf.
+
+ * src/devices/grops/ps.h: New broken-flag to avoid page size
+ definition, if required.
+
+ * src/devices/grops/grops.man: New broken-flag 16 mentioned.
+
+ * doc/Makefile.in: Added -nosetpage flag (via @pnmtops_nosetpage@).
+ Not really necessary due to the fix in prologue.ps, but cleaner:
+ Such information does not belong in an .eps file.
+
+ * doc/Makefile.sub: See doc/Makefile.in.
+
+2003-02-26 Ralph Corderoy <ralph@inputplus.co.uk>
+
+ * aclocal.m4 (GROFF_PNMTOPS_NOSETPAGE): Use P2 format for testing
+ instead of P1 since the latter is broken in some versions of netpbm.
+ * configure: Updated.
+
+2003-02-26 Larry Kollar <kollar@alltel.net>
+
+ Make man pages more customizable.
+
+ * tmac/an-old.tmac (FT): New register holding footer distance from
+ bottom.
+ (HF): New string holding the default heading font.
+ (TH): Handle registers `IN' and `SN' set on the command line.
+ Use `FT'.
+ (PT, BT): New strings to customize header and footer lines.
+ (an-header, an-footer): Use them.
+ (SH, SS): Use `HF'.
+ * tmac/groff_man.man: Document changes.
+
+ * doc/groff.texinfo: Document man changes.
+ Document Ultrix extensions of man.
+
+2003-02-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (do_width, do_if_request): Reset
+ `have_input' after changing back to old environment.
+
+ * src/devices/grolbp/lbp.cc (lbp_printer::set_line_thickness): Move
+ function up to be defined before first call. This is necessary to
+ avoid a compilation problem with Sun's WorkShop 6 C++ compiler.
+
+ * src/utils/afmtodit/afmtodit.pl: Make script search for files in
+ the default font directory also. Based on a patch from James
+ J. Ramsey <jjramsey_6x9eq42@yahoo.com>.
+ * src/utils/afmtodit/Makefile.sub (afmtodit): Handle @FONTDIR@.
+ * src/utils/afmtodit/afmtodit.man: Document it.
+
+ * NEWS: Updated.
+
+ * tmac/groff_man.man, doc/groff.texinfo: Many minor fixes.
+
+2003-02-25 Gaius Mulley <gaius@glam.ac.uk>
+
+ * aclocal.m4 (GROFF_HTML_PROGRAMS): Add test for pnmtops.
+ (GROFF_PNMTOPS_NOSETPAGE): New macro.
+ * configure.ac: Use it.
+ * configure: Regenerated.
+ * Makefile.in: Updated.
+
+ * tmac/Makefile.sub (NORMALFILES): Remove www.tmac.
+ (CLEANADD): Add www.tmac-sed.
+ (pnmtops_nosetpage): Define default.
+ (install_data): Handle www.tmac-sed and substitute
+ @PNMTOPS_NOSETPAGE@.
+ (stamp-sed): Add www.tmac.
+ * tmac/www.tmac: Rewritten, based on a patch by Bernd Warken.
+ It now breaks URLs at suitable places.
+ (www:substring_ok): New register set by...
+ (www:@test_substring): New macro.
+ (www:error): New alias to www-error.
+ (www:lenstr, www:splitstr, www:url_breaks, www:url_breaks_splitted):
+ New macros.
+ (URL): Use www:url_breaks.
+ (PIMG, MPIMG): Use @PNMTOPS_NOSETPAGE@.
+ (CDS, CDE): New macros.
+
+2003-02-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cc (ps_printer::define_encoding): Avoid
+ buffer overflow.
+
+2003-02-24 Werner LEMBERG <wl@gnu.org>
+
+ Contrary to the PCL5 Developer's Guide, the ascenders in TFM files
+ can be negative also.
+
+ * src/utils/hpftodit/hpftodit.cc (char_info): `ascent' must be
+ `int16'.
+ (read_char_table): Avoid negative ascenders.
+ (output_charset): Add cast.
+ * font/devlj4/*: Regenerated.
+
+ Replace unnamed glyphs for DVI fonts with `uXXXX' glyph names where
+ possible.
+
+ * font/devdvi/generate/{tc,texttt,ec,texmi,texsy,textex}.map: Do it.
+ * font/devdvi/generate/textex.map: Map glyph 23 to `u21C6' instead
+ of `<>'.
+ * font/devdvi/*: Regenerated.
+
+ Map `la' and `ra' to U+27E8 and U+27E9. These two characters have
+ normal width, while the previously used characters (U+2329 and
+ U+232A) are classified as wide due to canonical equivalence with the
+ CJK punctuation characters U+3008 and U+3009.
+
+ * font/devutf8/R.proto: Updated.
+ * src/roff/troff/uniglyph.cc, src/roff/troff/glyphuni.cc: Ditto.
+
+ * man/groff_char.man: Simplify handling of table traps by
+ introducing `start block' and `end block' macros.
+ (Ns, Ne, 2s, 2e, Ds, De): New macros.
+ (DL): Make it work with Unix troff also.
+ Fix code values of `la' and `ra'.
+
+ * tmac/dvi.tmac: Define `<>' for CW and CWI.
+
+2003-02-23 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cc (element_list::~element_list):
+ New destructor, fixing a major memory leak.
+
+2003-02-22 Werner LEMBERG <wl@gnu.org>
+
+ * font/devhtml/R.proto, font/devutf8/R.proto: Flip `*f' and `+f'
+ to be in conformance with Unicode 3.0 and newer.
+
+ * font/devlj4/generate/text.map: Add `Eu'.
+ * font/devlj4/generate/special.map: Flip `*e' and `+e'.
+ * font/devlj4/S: Regenerated.
+
+ * man/groff_char.man: Completely rewritten.
+
+ * doc/groff.texinfo: Fix description of request and macro arguments.
+
+2003-02-20 Gaius Mulley <gaius@glam.ac.uk>
+
+ Valgrind fixes.
+
+ * src/devices/grohtml/html-table.cc (html_table::~html_table):
+ Deallocate `columns' list.
+ * src/devices/grohtml/post-html.cc (char_block::~char_block):
+ New destructor.
+ (text_glob::text_glob_html, text_glob::text_glob_special,
+ text_glob::text_glob_line, text_glob::text_glob_auto_image,
+ text_glob::text_glob_tag): Avoid memory leaks.
+ (text_glob::remember_table): Free memory before reassigning.
+
+2003-02-19 Werner LEMBERG <wl@gnu.org>
+
+ Add glyph `+e', greek lunate epsilon symbol, and `-h' (with the
+ alias `hbar'), the Planck constant over two pi.
+
+ * font/devdvi/generate/texmi.map: Use `*e' for position 15 and
+ `+e' for position 34.
+ * font/devdvi/generate/texsy.map: Replace `DI' and `HE' with
+ `u2662' and `u2661'.
+ * font/devdvi/{MI,S}: Regenerated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `+e', `-h', `hbar'.
+ * font/devlbp/*: Add `hbar' alias.
+ * font/devlj4/generate/special.map: Ditto.
+ * font/devlj4/S: Regenerated.
+ * font/devps/generate/symbolchars: Add `+e'.
+ * font/devps/generate/textmap: Fix PS name for `-h'.
+ Add `hbar' alias.
+ * font/devps/symbolmap: Regenerated.
+
+ * src/devices/grops/ps.cc (transform_fill): Removed since unused.
+
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `+e',
+ `-h', `hbar'.
+ * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `+e',
+ `-h'.
+
+ * tmac/X.tmac, tmac/ps.tmac: Provide definitions for `-h' and
+ `hbar'.
+ * tmac/tty-char.tmac: Add `+e'.
+
+2003-02-17 Werner LEMBERG <wl@gnu.org>
+
+ Another round trying to really fix problems with `have_input'.
+
+ * src/roff/troff/input.cc (input_stack::get): Handle `have_input'.
+ (token::next) <'\n'>, <\'\n'>: Don't handle `have_input'.
+
+ * src/devices/grotty/tty.cc (tty_printer::put_color): Fix color
+ handling if both foreground and background colors are default.
+
+ * doc/groff.texinfo (Debugging): Document .lf differences to
+ AT&T troff.
+
+2003-02-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grotty/tty.cc (tty_printer::make_rgb_string): Avoid
+ null-bytes in created string.
+
+ * src/roff/troff/input.cc (lookup_color, interpolate_macro,
+ alias_macro, lookup_request): Improve warning messages.
+
+ * src/roff/troff/node.cc (suppress_node::tprint): Use `strsave',
+ not `strdup'.
+ Free `last_image_filename'.
+
+ * src/preproc/html/pre-html.cc (char_block::char_block): Initialize
+ `buffer'.
+ (imageList::createPage, imageList::createImage): Use `free', not
+ `a_delete'.
+ (imageItem::~imageItem): Free `imageName'.
+ (addRegDef): Use `strsave', not `strdup'.
+ (get_resolution): Free `pathp'.
+
+2003-02-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grotty/tty.cc (tty_printer::tty_printer): Fix pointer
+ to `dummy'.
+
+2003-02-14 Werner LEMBERG <wl@gnu.org>
+
+ Add memory management for colors to deallocate unnamed colors
+ properly.
+
+ * src/include/color.h (color): New members `free_list' and `next'.
+ New member functions `new' and `delete'.
+ Add destructor.
+ * src/libs/libgroff/color.cc: Implement it.
+
+ * src/libs/libgroff/font.cc (font::add_kern): Use integer cast
+ for array size of new operator.
+
+ * src/libs/libdriver/input.cc (IntArray::operator[]): Remove
+ redundant comparison.
+
+ * src/roff/troff/input.cc (word_space_node::reread,
+ hmotion_node::reread): Avoid warning about unused parameter.
+ (reset_output_registers): Remove redundant parameter.
+ (define_color): Undo change 2003-02-12.
+
+ * src/roff/troff/reg.h: Updated.
+
+ * src/roff/troff/node.cc (troff_output_file::really_print_line,
+ output_file::put_filename, real_output_file::really_put_filename,
+ ascii_output_file::really_print_line,
+ break_char_node::get_hyphen_list): Avoid warning about unused
+ parameter.
+ (suppress_node::tprint): Updated.
+
+ * configure.ac: Check declaration for rand() and srand().
+ * configure: Regenerated.
+
+ * src/preproc/pic/pic.h: Declare fmod(), rand(), and srand()
+ conditionally.
+ * src/preproc/pic/pic.y: Remove declaration of fmod(), rand(),
+ and srand().
+
+ * src/preproc/eqn/delim.cc (delim_table): Add missing initializers
+ to avoid compiler warnings.
+
+ * src/preproc/grn/hgraph.cc (HGPrintElt): Second parameter is
+ unused.
+
+ * src/devices/grops/ps.cc (ps_printer::set_char): Last parameter
+ is unused.
+ * src/devices/grops/psrm.cc (skip_possible_newline): Remove first
+ (unused) parameter.
+ Updated all callers.
+
+ * src/devices/grotty/tty.cc (tty_printer::set_char): Last parameter
+ is unused.
+ * src/devices/grodvi/dvi.cc (dvi_printer::set_char): Ditto.
+ * src/devices/grolj4/lj4.cc (lj4_printer::set_char): Ditto.
+
+ * src/devices/grohtml/post-html.cc (html_printer::emit_line):
+ Parameter is unused.
+ (html_printer::add_table_end): Define parameter conditionally.
+ * src/devices/grohtml/output.cc (simple_output::special): Parameter
+ is unused.
+
+ * src/devices/grolbp/lbp.cc: Define _GNU_SOURCE conditionally.
+ (lbp_printer::set_char): Last parameter is unused.
+
+ * src/utils/indxbib/indxbib.cc (main): Remove redundant comparison.
+
+2003-02-13 Werner LEMBERG <wl@gnu.org>
+
+ New commands \D'Fr ...', \D'Fc ...', etc. for orthogonality.
+ Make \D'f ...' move horizontally again for backwards compatibility.
+ Replace it with \D'Fg ...' where appropriate to avoid dependency
+ on horizontal resolution.
+
+ * src/roff/troff/input.cc (do_get_long_name): New function.
+ (get_long_name): Call it.
+
+ (read_draw_node): Handle `\D'Fx ...' by calling ...
+ (read_color_draw_node): New function.
+
+ (read_rgb, read_cmy, read_cmyk, read_gray): New optional argument
+ `end'.
+ Pass it to `do_get_long_name' which is used instead of
+ `get_long_name'.
+
+ * src/libs/libdriver/input.cc (color_from_Df_command): Remove
+ unnecessary value guard.
+ (parse_D_command) <'f'>: Add horizontal shift.
+
+ * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Use \D'Fg ...'.
+ * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
+ (FILL_MAX): Removed.
+
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Updated.
+
+2003-02-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cc (do_name_test, do_expr_test,
+ do_zero_width): Push `\n' if closing delimiter is missing.
+
+ (token::next) <ESCAPE_NEWLINE>, <'\n'>, <\'\n'>: Reset `have_input'.
+ <'F'>: Make \F non-transparent at the beginning of line.
+ (process_input_stack) <token::TOKEN_CHAR, token::TOKEN_NEWLINE,
+ token::TOKEN_REQUEST, token::TOKEN_BEGIN_TRAP>: Don't handle
+ `have_input'.
+
+ (define_color): Free color in case of reassignment.
+
+ * doc/groff.texinfo (@Defesc, @DefescList, @DefescItem,
+ @DefescListEnd): Use @Var, not @var.
+ Fix all calls.
+
+ * src/preproc/grn/hgraph.cc (HGPrintElt): Fix typo.
+
+ * src/preproc/pic/object.cc (object_spec::~object_spec): Free
+ `shaded' and `outlined' arrays.
+ (object_spec::object_spec): Initialize `shaded' and `outlined'.
+ (graphic_object::set_fill_color, graphic_object::set_outline_color):
+ Use strsave.
+ (closed_object::set_fill_color): Ditto.
+ * src/preproc/pic/troff.cc (troff_output::set_color): Use strsave
+ instead of strdup.
+ (troff_output::reset_color): Use a_delete instead of free.
+ * src/preproc/pic/main.cc (do_file): Free `out' in case of error.
+
+2003-02-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of `ad'.
+ Document that \D'f...' is dependent on the horizontal resolution.
+ * man/groff_diff.man: Improve documentation of \D'f...'.
+
+ * src/preproc/grn/hgraph.cc (HGPrintElt) <POLYGON>: Don't emit
+ compensating \h'...' for \D'f ...' since the latter no longer moves
+ current position.
+ * src/preproc/pic/troff.cc (troff_output::set_fill): Ditto.
+
+2003-02-10 Werner LEMBERG <wl@gnu.org>
+
+ Improve error messages for `x F' (and `F') commands.
+
+ * src/include/error.h: Add declaration for
+ `current_source_filename'.
+ * src/libs/libgroff/filename.cc: Add `current_source_filename'.
+ * src/libs/libgroff/error.cc (do_error_with_file_and_line): Add
+ parameter for source file string.
+ Updated all callers.
+
+ * src/libs/libdriver/input.cc: Add `current_source_filename'.
+ (remember_source_filename): New function.
+ (parse_x_command <'F'>, do_file <'F'>): Use it.
+
+2003-02-09 Werner LEMBERG <wl@gnu.org>
+
+ Make grotty not emit warnings about unknown colors more than
+ necessary.
+
+ * src/devices/grotty/tty.cc: Include `ptable.h'.
+ (TTY_MAX_COLORS): Removed.
+ (DEFAULT_COLOR_IDX): Defined to -1.
+ (glyph): Change `back_color_idx' and `fore_color_idx' to `char'.
+ (tty_printer): Change `curr_back_idx' and `curr_fore_idx' to `char'.
+ Change `tty_colors' to be a ptable.
+ First arg of `put_color' is now `char'.
+ New functions `make_rgb_string' and `tty_color'.
+ (tty_printer::tty_printer): Use `tty_color'.
+ (tty_printer::color_to_idx): Return value is now `char'.
+ Use `tty_color'.
+
+ * src/include/color.h (color): Add `print_color' member function.
+ * src/libs/libgroff/color.cc (color::print_color): Implement it.
+
+2003-02-08 Werner LEMBERG <wl@gnu.org>
+
+ Valgrind fixes.
+
+ * src/devices/grops/ps.cc (ps_printer::define_encoding): Close
+ encoding file.
+
+ * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Always
+ assume that value has been allocated with `new[]', thus use
+ `a_delete' for deallocation.
+
+ * src/libs/libdriver/input.cc (get_integer_arg,
+ get_possibly_int_args, parse_x_command, do_file): Use `a_delete'
+ where appropriate.
+
+ * src/libs/libgroff/new.cc (delete) [!COOKIE_BUG]: Define.
+ * src/libs/libgroff/nametoindex.cc
+ (character_indexer::named_char_index): Use `new <type>[1]'.
+
+ * src/preproc/eqn/lex.cc (init_table, do_definition): Use `new
+ <type>[1]'.
+ * src/preproc/eqn/text.cc (set_special_char_type): Ditto.
+ (split_text): Use `a_delete'.
+
+ * src/preproc/pic/pic.y (define_label, define_variable): Use `new
+ <type>[1]'.
+
+ * src/roff/troff/env.cc (environment::choose_breakpoint): Avoid
+ harmless memory leak.
+ (hyphen_trie::read_patterns_file): Initialize `buf'.
+ * src/roff/troff/node.cc (troff_output_file::troff_output_file):
+ Initialize `current_fill_color'and `current_glyph_color'.
+ * src/roff/troff/glyphuni.cc
+ (glyph_to_unicode_init::glyph_to_unicode_init): Use `new <type>[1]'.
+ * src/roff/troff/uniuni.cc
+ (unicode_decompose_init::unicode_decompose_init): Ditto.
+ * src/roff/troff/uniglyph.cc
+ (unicode_to_glyph_init::unicode_to_glyph_init): Ditto.
+
+2003-01-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Check with
+ `access' before calling `unlink'.
+ (do_file): Handle __EMX__.
+
+ * src/include/nonposix.h: Handle __EMX__.
+
+ * Makefile.in (SEP): New variable; set to @PATH_SEPARATOR@.
+ (fontpath,tmacpath): Use it.
+ (MDEFINES): Add it.
+ Sorted alphabetically.
+
+ * src/preproc/eqn/neqn.sh, src/roff/nroff/nroff.sh: Use
+ @SEP@.
+ * src/preproc/eqn/Makefile.sub, src/roff/nroff/Makefile.sub: Handle
+ @SEP@.
+
+2003-01-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/strcasecmp.c, src/libs/libgroff/strncasecmp.c:
+ New files, copied from gnulib.
+ * src/libs/libgroff/Makefile.sub (CSRCS): Add them.
+ * configure.ac: Updated.
+ * configure: Regenerated.
+
+ * src/include/config.hin: Regenerated.
+ * src/include/lib.h [!HAVE_STRCASECMP]: Declare `strcasecmp'.
+ Don't define `strcasecmp' as `strcmp'.
+ [!HAVE_STRNCASECMP]: Declare `strncasecmp'.
+ Dont define `strncasecmp' as `strncmp'.
+
+ * src/roff/groff/pipeline.c [!HAVE_STRCASECMP, !HAVE_STRNCASECMP]:
+ Removed.
+
+2003-01-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/indxbib/indxbib.cc (main) [__EMX__]: Fix typo:
+ s/unline/unlink/.
+
+2003-01-25 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Ligatures and Kerning): Mention limitations.
+
+2003-01-24 Werner LEMBERG <wl@gnu.org>
+
+ Add US-english hyphenation exceptions (converted from Barbara
+ Beeton's hyphenation exception log reports which appear irregularly
+ in TUGBoat).
+
+ * tmac/hyphen.us: Updated to latest version.
+ * tmac/README: Updated.
+ * tmac/hyphenex.us, tmac/hyphenex.sh: New files.
+ * tmac/troffrc: Load `hyphenex.us'.
+ * tmac/Makefile.sub (NORMALFILES): Add `hyphenex.us'.
+ * doc/groff.texinfo: Updated.
+
+2003-01-23 Werner LEMBERG <wl@gnu.org>
+
+ Improve hyphenation slightly. This is a first step in redesigning
+ the hyphenation algorithm to make it more flexible (e.g. allowing
+ kerns and ligatures between the hyphenation character and the
+ following character -- while not used normally in English, other
+ languages like German would benefit).
+
+ * src/roff/troff/env.cc (environment::hyphenate_line): Use
+ assertion instead of if-clause.
+ Let `get_hyphen_list' return the number of involved characters in
+ the hyphenation pattern instead of computing it directly (which
+ often yields too small values).
+ * src/roff/troff/node.h (*::get_hyphen_list): Add second parameter.
+ * src/roff/troff/node.cc (*::get_hyphen_list): Handle new second
+ parameter.
+
+2003-01-22 Werner LEMBERG <wl@gnu.org>
+
+ Fixing a bug which caused groff to hang if the hyphenation exception
+ dictionary tried to grow.
+
+ * src/roff/troff/env.cc (hyphen_trie::insert_hyphenation,
+ hyphen_trie::read_patterns_file, do_hyphenation_patterns_file): Use
+ pointer to dictionary.
+
+2003-01-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/utils/afmtodit/afmtodit.pl: Add switch `-m' to suppress
+ negative left italic correction.
+ * src/utils/afmtodit/afmtodit.man: Document it.
+
+ * font/devps/generate/Makefile (RFLAG): Add `-m'.
+ * font/devps/{AB,AR,BMB,BMR,CB,CR,EURO,HB,HR,HNB,HNR,NB,NR,PB,PR,
+ S,TB,TR,ZD,ZDR}: Regenerated with afmtodit options `-i 0 -m'.
+
+ * NEWS: Updated.
+
+2003-01-16 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+
+2003-01-16 Jrgen Grahn <jgrahn@algonet.se>
+
+ * src/preproc/refer/refer.man: Mention REFER environment variable.
+
+2003-01-05 Werner LEMBERG <wl@gnu.org>
+
+ Similar to \[is], the square root glyph (\[sr]) and the square root
+ extension glyph (\[radicalex]) are now text symbols. The new
+ mathematical versions are called \[sqrt] and \[sqrtex],
+ respectively.
+
+ * font/devX*/S: Regenerated.
+ * font/devdvi/generate/texex.map: Rename `sr[0123]' to `sqrt[0123]'.
+ * font/devdvi/generate/texsy.map: Rename `sr' to `sqrt'.
+ * font/devdvi/EX, font/devdvi/S: Regenerated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `sqrt'.
+ * font/devlj4/generate/special.map: Add `sqrt'.
+ * font/devlj4/S: Regenerated.
+ * font/devps/generate/textmap: Add `sqrt'.
+ * font/devps/S, font/devps/symbolmap: Regenerated.
+
+ * src/preproc/eqn/sqrt.cc (SQRT_CHAR, RADICAL_EXTENSION_CHAR,
+ SQRT_CHAIN, BAR_CHAIN): Use `sqrt*' and `sqrtex*'.
+ * src/roff/troff/input.cc (init_charset_table): Make `sqrtex'
+ overlap horizontally.
+
+ * tmac/X.tmac, tmac/ps.tmac, tmac/lj4.tmac: Add `sqrtex'.
+ * tmac/dvi.tmac: Add `sr', and `sqrtex'.
+ Fix `radicalex'.
+
+ * doc/groff.texinfo, man/groff_diff.man: Document that `radicalex'
+ and `sqrtex' are overlapping glyphs.
+
+2003-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/texsy.map: Add `is'.
+ * font/devps/symbolmap: Regenerated.
+ * font/devdvi/*TC, MI, S: Regenerated.
+
+ * tmac/dvi.tmac: Remove `is'.
+
+2003-01-03 Werner LEMBERG <wl@gnu.org>
+
+ `is' is now a text symbol (only relevant for dvi). The math variant
+ can be accessed with `integral'.
+
+ * font/devX*/S: Regenerated.
+ * font/devdvi/generate/texex.map: Remove `is'.
+ * font/devdvi/EX: Updated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `integral'.
+ * font/devlj4/generate/special.map: Ditto.
+ * font/devlj4/S: Regenerated.
+ * font/devps/generate/textmap: Add `integral'.
+ * font/devps/S: Regenerated.
+
+ * tmac/dvi.tmac: Define `is'.
+
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `integral'.
+
+ * src/preproc/tbl/main.cc (process_format): Fix error message.
+
+2003-01-02 Werner LEMBERG <wl@gnu.org>
+
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `ne' and `nc'.
+ * font/devps/textmap: Fix entries for `ne' and `nc'.
+ * font/devps/symbolmap: Regenerated.
+
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list),
+ src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `18',
+ `38', `58', `78', `-+', `|=', `nc', `ne'.
+
+ * tmac/dvi.tmac: Add `nm', `ne', `nc'.
+ Use `schar' for `aq'.
+ * tmac/ps.tmac, tmac/X.tmac: Add `nc' and `ne'.
+ * tmac/ec.tmac: Add `SC' to special fonts for `CW' and `CWI'.
+ * tmac/tty.tmac: Add `ne'.
+
+ * src/roff/troff/node.cc (make_glyph_node): Test with `get_macro'
+ for fallback glyphs.
+
+2002-12-29 Werner LEMBERG <wl@gnu.org>
+
+ Add glyph `|='.
+
+ * font/devX*/*: Regenerated.
+ * font/devdvi/generate/ec.map: Remove `eq'.
+ * font/devdvi/generate/texsy.map: Make `~=' the same as `~~'.
+ Assign `|=' to position 39.
+ * font/devdvi/*EC, S: Regenerated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `|='.
+ * font/devlj4/generate/special.map: Make `~=' the same as `~~'.
+ Assign `|=' to position 549.
+ * font/devps/generate/textmap, font/devps/enerate/symbolmap: Remove
+ `equalmath'.
+ Add `uni2243' for `|='.
+
+ * tmac/ec.tmac: Add `eq'.
+ * tmac/dvi.tmac: Add `=~'.
+ * tmac/tty-char.tmac, tmac/ps.tmac, tmac/X.tmac, tmac/lbp.tmac: Add
+ `|='.
+
+2002-12-21 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/tc.map: Remove `**'.
+ * font/devdvi/*TC: Regenerated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `18', `38', `58',
+ `78', `<<', `>>'.
+ * font/devutf8/NOTES: Updated.
+
+ * src/roff/troff/charinfo.h (charinfo): Add `setx_macro' function.
+ Don't give default parameter to `set_macro'.
+ * src/roff/troff/input.cc (do_define_character): Use `setx_macro'
+ instead of `set_macro'.
+ (charinfo::setx_macro): Implement it.
+ (charinfo::set_macro): Don't change `mode'.
+
+ * tmac/tty.tmac: Add `18', `38', `58', `78', `<<', `>>'.
+ * tmac/ps.tmac, tmac/X.tmac: Add `<<', `>>'.
+ * tmac/dvi.tmac: Define `!=' with `.schar'.
+
+2002-12-20 Werner LEMBERG <wl@gnu.org>
+
+ * font/devX*/S: Regenerated.
+ * font/devdvi/generate/ec.map: Remove `pl'.
+ * font/devdvi/generate/tc.map: Remove `mi', `14', `12', `34'.
+ * font/devdvi/*{TC,EC}: Regenerated.
+ * font/devhtml/R.proto: Add `-+'.
+ Remove double entries for `rk', `lk', `lt', `rt', `rb', `lb'.
+ * font/devlbp/*: Remove `or'.
+ * font/devlj4/generate/special.map: Remove `or'.
+ * font/devlj4/S: Regenerated.
+ * font/devps/generate/textmap: Add `fiveeighths', `oneeighth',
+ `seveneighths', `threeeighths'.
+ Remove `plusmath'.
+ Replace `minusplus' with `uni2213'.
+ * font/devps/symbolmap: Regenerated.
+ * font/devutf8/R.proto: Replace `shc' with unnamed glyph.
+ Add `-+'.
+
+ * src/roff/troff/charinfo.h (charinfo): Add `is_normal' inline
+ function.
+ * src/roff/troff/node.cc (troff_output_file::put_char_width):
+ Call glyph_color and fill_color even if tcommand_flag isn't set.
+ (make_node, node::add_char): Check not ci->is_fallback but
+ ci->is_normal.
+
+ * tmac/lj4.tmac, tmac/lbp.tmac: Define `or'.
+ * tmac/ec.tmac: Add .rchar entry for `f/'.
+ Don't remove `12', `14', `34'.
+ Define `pl' to be always roman.
+ * tmac/ps.tmac (ps-frac, ps-frac-mono): New macros.
+ Define `18', `38', `58', `78'.
+ * tmac/tty.tmac: Add `-+'.
+ * tmac/dvi.tmac: Define `f/'.
+ (dvi-frac): Use `f/'.
+ * tmac/X.tmac (X-frac, X-frac-mono): New macros.
+ Define `18', `38', `58', `78'.
+
+2002-12-15 Colin Watson <cjwatson@debian.org>
+
+ * contrib/pic2graph/pic2graph.sh: Add missing `;;'.
+
+2002-12-10 Werner LEMBERG <wl@gnu.org>
+
+ Add glyph `tno', a textual variant of `no'.
+
+ * font/devX*/*: Regenerated.
+ * font/{devcp1047,devlatin1,devutf8,devhtml}/R.proto: Add `tno'.
+ * font/devdvi/generate/{tc.map: Replace `no' with `tno'.
+ * font/devdvi/generated/{texsy,textex}.map: Add `tno'.
+ * font/devdvi/*: Regenerated.
+ * font/devlbp/*: Add `tno'.
+ * font/devlj4/generate/tex.map: Replace `no' with `tno'.
+ * font/devlj4/*: Regenerated.
+ * font/devps/generate/textmap: Replace `no' with `tno'.
+ * font/devps/generate/symbolchars: Add `no'.
+ * font/devps/*: Regenerated.
+
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Add `tno'.
+
+ * tmac/cp1047.tmac, tmac/latin1.tmac: Replace `no' with `tno'.
+ * tmac/tty-char.tmac: Add entry for `tno' and `3d'.
+
+ * NEWS: Updated.
+
+ * tmac/dvi.tmac: Replace most `\\' with `\E'.
+ Add definition for `sd'.
+ * tmac/X.tmac, tmac/ps.tmac: Replace most `\\' with `\E'.
+
+ * tmac/eqnrc <dvi>: Use `integral' instead of `is' glyph.
+
+2002-12-08 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (TH): Use integer value for `IN' if in nroff
+ mode to avoid rounding errors.
+ (an-do-tag, an-do-tag-html, RS, RE): Remove redundant `.br'.
+
+ * src/roff/groff/groff.man, src/roff/nroff/nroff.man,
+ src/roff/troff/troff.man: Improve documentation of -T.
+
+2002-12-07 Jeff Conrad <jeff_conrad@msn.com>
+
+ * src/roff/groff/pipeline.c: Don't define `const' for _WIN32.
+ (run_pipeline) [_WIN32]: Provide working function without `fork'.
+
+2002-12-06 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/generate/freeeuro.sfd: Make dimensions of Euro.symbol
+ glyphs compatible to Adobe's Euro fonts (scaling them down a bit).
+ Scaling Euro.sansserif glyphs down to have the same height as
+ digits.
+ Removed unnecessary points; added some extrema.
+
+ * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
+ Regenerated.
+
+2002-12-04 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/generate/freeeuro.sfd: Add glyphs `Euro.symbol.slanted'
+ and `Euro.symbol.bold.slanted'.
+ Improve some glyph offsets and widths.
+ * font/devps/EURO, font/devps/freeeuro.afm, font/devps/freeeuro.pfa:
+ Regenerated.
+ * font/devps/generate/Makefile (freeeuro.afm freeeuro.pfa): Fix
+ typo.
+ * font/devps/generate/sfdtopfa.pe: Generate PFA in current
+ directory.
+
+ * tmac/europs.tmac: Updated to new glyph indices.
+ Use Euro.symbol for font family `A'.
+
+ * doc/groff.texinfo: Minor improvements.
+
+2002-12-02 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate.tc.map: s/%O/%0/.
+ * font/devdvi/*TC: Regenerated.
+
+ * src/roff/troff/div.cc (init_div_requests): Sorted.
+
+ * tmac/dvi.tmac: Remove `Ye'.
+ * tmac/ec.tmac: Remove `Ye'.
+ Add .rchar entry for `de'.
+
+ * man/groff.man, man/groff_diff.man: Document register `.pe'.
+ * doc/groff.texinfo: Document registers `.pe', `.n', and `.w'.
+ * NEWS: Updated.
+
+2002-11-30 Werner LEMBERG <wl@gnu.org>
+
+ Add PS font for various Euro glyphs.
+
+ * font/devps/generate/freeeuro.sfd: New master font file for
+ pfaedit.
+ * font/devps/generate/sfdtopfa.pe: New conversion script for
+ pfaedit.
+ * font/devps/generate/Makefile (FONTS): Add `EURO'.
+ (EURO, freeeuro.afm, freeeuro.pfa): New rules.
+ * font/devps/freeeuro.pfa, font/devps/freeeuro.afm: Generated from
+ `freeeuro.sfd'.
+ * font/devps/EURO: Generated from `freeeuro.afm'.
+ * font/devps/download: Add `freeuro.pfa'.
+ * font/devps/Makefile.sub (NORMALFILES): Adde `EURO' and
+ `freeeuro.pfa'.
+
+ * tmac/europs.tmac: New file.
+ * tmac/ps.tmac: Include `europs.tmac'.
+ * tmac/Makefile.sub (DISTFILES): Add `europs.tmac'.
+
+2002-11-29 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/texsy.map: Remove `lh' and `rh'.
+ * font/devdvi/S: Regenerated.
+ * font/devhtml/R.proto: Fix `CR' and `ci'.
+ Add `OK'.
+ * font/devps/generate/textmap: Fix `lh', `rh', and `sq'.
+ Remove `bs'.
+ * font/devps/symbolmap: Regenerated.
+ * font/devutf8/R.proto: Fix `CR' and `ci'.
+ Add `OK'.
+ * font/devutf8/NOTES: Updated.
+
+ * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Fix `CR' and
+ `ci'.
+ Add `OK'.
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
+
+ * tmac/dvi.tmac: Add `lh' and `rh'.
+ * tmac/Xps.tmac: Fix `lh' and `rh'.
+ * tmac/X.tmac: Add `OK'.
+ * tmac/lj4.tmac: Ditto.
+
+2002-11-24 Werner LEMBERG <wl@gnu.org>
+
+ * font/devX*/S: Regenerated.
+ * font/devascii/R.proto, font/devcp1047/R.proto: Remove glyphs `lb',
+ `lc', `lf', `lk', `lt', `rb', `rc', `rf', `rk', and `rt'.
+ * font/devdvi/generate/texsy.map: Remove `or' glyph.
+ * font/devdvi/S: Regenerated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add/fix glyphs
+ `parenlefttp', `parenleftex', `parenleftbt', `parenrighttp',
+ `parenrightex', `parenrightbt', `bracketlefttp', `bracketleftex',
+ `bracketleftbt', `bracketrighttp', `bracketrightex',
+ `bracketrightbt', `bracelefttp', `braceleftmid', `braceleftbt',
+ `braceex', `braceleftex', `bracerightex', `bracerighttp',
+ `bracerightmid', `bracerightbt', `lt', `lk', `lb', `rt', `rk',
+ `rb', and `bv'.
+ * src/roff/troff/glyphuni.cc, src/roff/troff/uniglyph.cc: Ditto.
+ * font/devutf8/NOTES: Updated.
+ * font/devlj4/generate/special.map: Add glyph `braceex'.
+ * font/devlj4/S: Regenerated.
+
+ * tmac/tty-char.tmac: Add glyphs `lf', `rf', `lc', and `rc'.
+
+2002-11-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Add `va'
+ and `vA'.
+ Fix code for `an'.
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Ditto.
+
+ * doc/texinfo.tex: New version from texinfo 4.3.
+ * doc/groff.texinfo: Updated for texinfo 4.3.
+ Use @tie{} where appropriate.
+ * font/devdvi/generate/ec.map: Don't include `or' and `bv'.
+ * font/devdvi/generate/tc.map: Remove `rn'.
+ * font/devdvi/*TC, font/devdvi/*EC: Regenerated.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `vA'.
+ Fix code for `an'.
+ * font/devX100/*, font/devX100-12/*, font/devX75/*,
+ font/devX75-12/*: Regenerated.
+
+ * tmac/dvi.tmac: Add special fonts `SA' and `SB'.
+ Use .char (again) for `br', `ul', `rn', `or', and `ru'.
+ Improve definition of `an'.
+ * tmac/ps.tmac: Use .char (again) for `br', `ul', `rn', `or', and
+ `ru'.
+ * tmac/lj4.tmac: Use .char (again) for `br', `ul', `rn', and `ru'.
+ * tmac/X.tmac: Add definition for `or'.
+ * tmac/Xps.tmac: Undo change 2002-11-05.
+ * tmac/lbp.tmac: Add definitions for `br', `rn', `ul', and `ru'.
+
+2002-11-11 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (troff_output_file::put_char): Always
+ call flush_tbuf.
+
+2002-11-10 Werner LEMBERG <wl@gnu.org>
+
+ Added three new requests `schar', `fschar', and `rfschar'. `schar'
+ defines a glyph which is searched after the check for fonts declared
+ with `.special' (and before the check for all mounted special
+ fonts). `fschar' defines a glyph for a particular font which is
+ searched after the check for fonts declared with `.fspecial' (and
+ before the check for fonts declared with `.special'). `rfschar'
+ removes glyphs defined with `fschar'.
+
+ * src/roff/troff/token.h (char_mode): New enum.
+ Declare do_define_character.
+ * src/roff/troff/charinfo.h (charinfo): Replace `fallback' with
+ `mode'.
+ (charinfo::is_fallback): Updated.
+ (charinfo::is_special): New method.
+ * src/roff/troff/input.cc (do_define_character): Add and use
+ optional second parameter used as a prefix for font-specific glyph
+ names.
+ (define_character, define_fallback_character): Updated.
+ (define_special_character): New function.
+ (init_input_requests): Add `schar'.
+ (charinfo::charinfo, charinfo::set_macro): Updated.
+ * src/roff/troff/node.cc: Include `stringclass.h'.
+ (make_glyph_node): Handle special glyphs defined with `.schar' and
+ `.fschar'.
+ (define_font_special_character, remove_font_special_character): New
+ functions.
+ (init_node_requests): Sorted.
+ Add `fschar' and `rfschar'.
+ * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo:
+ Document new requests.
+
+ * font/devhtml/R.proto, font/devutf8/R.proto: Add `va'.
+ * tmac/dvi.tmac: Add `va' for CW and CWI (using `.fschar').
+
+2002-11-08 Werner LEMBERG <wl@gnu.org>
+
+ Added new font `SC' (cmtex10) to devdvi.
+
+ * devdvi/generate/Makefile (FONTS): Add `SC'.
+ (SC): New rule.
+ * devdvi/generate/textex.map: New map file for cmtex.
+ * devdvi/SC: New.
+ * devdvi/Makefile.sub (DEVFILES): Updated.
+ * tmac/dvi.tmac: Add fspecial entries for SC.
+ Add `MI', `S' and `CW' to the `special' call. Otherwise, `SC' is
+ found before `S' since the font position of `SC' is lower due to the
+ gaps in DESC's `font' line.
+ * tmac/ec.tmac: Add a `special' call.
+ * NEWS: Updated.
+
+ * font/devhtml/R.proto: Remove double entry for `ti'.
+ * tmac/tty.tmac: Add entries for `IJ', `ij', and `bq'.
+ * tmac/tty-char.tmac: Remove entry for `bq'.
+ * tmac/lbp.tmac: Add entries for `lq', `rq', `fo', `fc', and `em'.
+ * tmac/ec.tmac: Don't remove `aq' glyph.
+ * tmac/X.tmac: Fix entry for `em'.
+ Add entries for `fo' and `fc'.
+ * tmac/dvi.tmac: Add entries for `em', `en', `hy', `fo', and `fc'.
+
+ * doc/groff.texinfo, man/groff.man, man/groff_diff.man: Fix
+ documentation of `special' and `fspecial' requests.
+
+2002-11-05 Werner LEMBERG <wl@gnu.org>
+
+ * font/devascii/R.proto, font/devcp1047/R.proto,
+ font/devlatin1/R.proto: Remove entry for `.i'.
+ * font/devdvi/generate/textt.map: Add entry for `ad'.
+ * font/devdvi/generate/texr.map, font/devdvi/generate/texb.map,
+ font/devdvi/generate/texi.map: Add dummy glyph name `slash@for@l'.
+ We need this for getting kerning values to compose `/l' and `/L'.
+ * font/devdvi: Regenerated font definition files for CM fonts.
+ * font/devhtml/R.proto: Add entries for "'C", "'c", `IJ', and `ij'.
+ * font/devutf8/R.proto: Ditto.
+ Remove double entry for `ti'.
+
+ * src/roff/troff/glyphuni.cc (glyph_to_unicode_list): Fix entries
+ for (groff) ligatures, `la', and `ra'.
+ Add "'C", "'c", `IJ', and `ij'.
+ Remove double entry for `ti'.
+ * src/roff/troff/uniglyph.cc (unicode_to_glyph_list): Remove all
+ double entries.
+ Add "'C", "'c", `IJ', and `ij'.
+ Fix entries for (groff) ligatures, `la', and `ra'.
+
+ * tmac/ps.tmac (ps-achar): New macro.
+ Define "'c" and "'C".
+ * tmac/tty.tmac: Add entry for `.i'.
+ * tmac/X.tmac (X-achar): New macro.
+ Define "'c", "'C", and `:Y'.
+ Add entries for `IJ' and `ij'.
+ * tmac/Xps.tmac (Xps-achar): New macro.
+ Define "'c" and "'C".
+ Add entries for `IJ' and `ij'.
+ * tmac/lbp.tmac (lbp-achar): New macro.
+ Add fallback characters for all groff ligatures and many other
+ glyphs.
+ * tmac/dvi.tmac: Fix definitions of `_' and `ul'.
+ Add entries for `/l' and `/L'.
+ Define "'c" and "'C".
+ Add entries for `IJ' and `ij'.
+
+2002-11-02 Larry Kollar <kollar@alltel.net>
+
+ * PROBLEMS: Document how to solve Mac OS X compilation problems.
+
+2002-11-02 Werner LEMBERG <wl@gnu.org>
+
+ Adding support for composite glyphs: \[xxx yyy ...] and the
+ `composite' request.
+
+ * src/roff/troff/glyphuni.cc: New file for mapping groff glyph names
+ to Unicode-based glyph names.
+ * src/roff/troff/uniglyph.cc: New file for mapping Unicode-based
+ glyph names to groff glyph names.
+ * src/roff/troff/uniuni.cc: New file for canonically decomposing
+ Unicode-based glyph names.
+ * src/roff/troff/unicode.cc, src/roff/troff/unicode.h: New files
+ for handling Unicode glyph names.
+ * src/roff/troff/input.cc: Include unicode.h.
+ (composite_glyph_name): New function.
+ (token::next) <'['>: Handle Unicode glyph names and composite
+ glyphs.
+ (composite_dictionary): New dictionary for the `composite' request.
+ (composite_request): Implement `composite' request.
+ (init_input_requests): Add `composite'.
+ Alphabetically sorted.
+ * src/roff/troff/env.cc (tabs_save, tabs_restore): Removed (already
+ commented out).
+ (init_env_requests): Alphabetically sorted.
+ Removed `tas' and `tar' (already commented out).
+ * src/roff/troff/Makefile.sub: Updated.
+
+2002-10-31 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * src/roff/nroff/nroff.man, src/roff/nroff/nroff.sh: Fix description
+ of options.
+
+2002-10-29 Werner LEMBERG <wl@gnu.org>
+
+ Fix computation of .trunc register. Additionally, its value (and
+ the value of the .ne register) is now always set before entering the
+ trap.
+
+ * src/roff/troff/div.cc (diversion::need): Set `truncated_space' and
+ `needed_space' before calling `space'.
+ (top_level_diversion::space): Remove special code for 'sp before the
+ first page.
+ Call `begin_page' with the discarded space as a parameter.
+ (top_level_diversion::begin_page): Add optional parameter to set
+ `truncated_space'.
+ * src/roff/troff/div.h: Updated.
+
+ * doc/groff.texinfo: Improve documentation of .sp, \n[.trunc], and
+ \n[.ne].
+
+ * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Undo change 2002-10-26.
+ (LP): Remove superfluous call to `br'.
+ * tmac/doc-common (doc-paragraph): Undo change 2002-10-26.
+ * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
+
+2002-10-26 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-ditroff: Remove useless switch/variable -rC.
+ (doc-setup-header): Don't set page register `%'.
+ * tmac/doc-nroff: Remove variable `C'.
+ (doc-setup-page-layout): Set doc-header-space to .5i unconditionally.
+ (doc-setup-header): Don't set page register `%'.
+ Don't call `bp'.
+ * tmac/doc-common (doc-header): Call `ns'.
+ (doc-paragraph): Protect .sp with .br so that it survives traps
+ possibly set by the user.
+ * tmac/doc.tmac (Bd, Bl, doc-set-vertical-and-indent): Ditto.
+
+ * tmac/doc*: Replace ' with . for consistency if no effect.
+
+2002-10-26 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (SH, SS, TP, IP, HP, TS): Protect .sp with .br
+ so that it survives traps possibly set by the user.
+
+ * src/roff/troff/node.cc: Fix the changes from 2002-10-23.
+ (troff_output_file::set_font): Call flush_tbuf if necessary.
+ (troff_output_file::fill_color, troff_output_file::glyph_color): Call
+ flush_tbuf and do_motion only if necessary.
+ (troff_output_file::start_special,
+ troff_output_file::put_char_width, troff_output_file::put_char,
+ troff_output_file::draw): Updated.
+ (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
+ vmotion_node::tprint): Undo change 2002-10-23.
+
+2002-10-25 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac (DC): Fix case of overlapping images.
+
+2002-10-23 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (troff_output_file::fill_color,
+ troff_output_file::glyph_color): Set current color before testing
+ color_flag.
+ (troff_output_file::put_char_width, troff_output_file::put_char,
+ troff_output_file::draw): Don't call flush_tbuf and/or do_motion
+ before glyph_color.
+ (troff_output_file::file_color, troff_output_file::glyph_color):
+ Call do_motion.
+ (word_space_node::tprint, space_node::tprint, hmotion_node::tprint,
+ vmotion_node::tprint): Move first, then call fill_color.
+
+2002-10-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo, man/groff_tmac.man: Document that it is not
+ possible to use multiple main macro packages.
+
+2002-10-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cc (cmyk_flag): New global variable.
+ (ps_printer::set_color): Set `cmyk_flag' for CMY and CMYK colors.
+ (ps_printer::~ps_printer): Emit `%%Extensions: CMYK' if `cmyk_flag'
+ is set.
+ * font/devps/prologue.ps (Fk, Ck): Enclose definitions with a
+ `where' construction since `cmyksetcolor' is a PS Level 2 operator.
+
+2002-10-16 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, doc/webpage.ms: Updated.
+
+2002-10-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cc (troff_output_file::put_char_width,
+ troff_output_file::put_char, troff_output_file::fill_color,
+ troff_output_file::glyph_color): Handle case where color pointer
+ is null.
+
+2002-10-13 Ruslan Ermilov <ru@FreeBSD.org>
+
+ Add the new -r option to grotty. It is similar to the -i option
+ except it tells grotty(1) to use the `reverse video' attribute to
+ render italic fonts.
+
+ * src/devices/grotty/tty.cc (reverse_flag): New global variable.
+ (SGR_REVERSE, SGR_NO_REVERSE): New macros.
+ (tty_printer::make_underline, tty_printer::put_color,
+ tty_printer::end_page): Use it.
+ (main): Add -r switch.
+ (usage): Updated.
+ * src/devices/grotty/grotty.man: Document it.
+
+2002-10-11 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * src/roff/troff/env.cc (hyphen_trie::read_patterns_file): Add
+ cast to `unsigned char' to properly read patterns with 8bit
+ characters.
+
+2002-10-08 Werner LEMBERG <wl@gnu.org>
+
+ * REVISION: Increased to 2.
+
+Copyright 2002-2005 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:
+coding: latin-1
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.120 b/ChangeLog.120
new file mode 100644
index 0000000..0451689
--- /dev/null
+++ b/ChangeLog.120
@@ -0,0 +1,3053 @@
+
+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 Grser.
+
+ (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 <wl@gnu.org>
+
+ * */Makefile.* (CLEANADD, CLEANNOTSRCDIRADD, CLEANDIRADD): Renamed
+ to...
+ (MOSTLYCLEANADD, MOSTLYCLEANNOTSRCDIRADD, MOSTLYCLEANDIRADD): This.
+
+2009-01-06 Werner LEMBERG <wl@gnu.org>
+
+ Remove heuristics for LIBEXT.
+
+ * configure.ac: Provide LIBEXT.
+ * Makefile.in: Use it.
+
+ * configure: Regenerated.
+
+2009-01-05 Werner LEMBERG <wl@gnu.org>
+
+Version 1.20 released
+=====================
+
+2009-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * */*: Update FDL 1.1 to FDL 1.3.
+
+2009-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * */*: Update copyright year.
+
+2009-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * MANIFEST: Updated.
+
+2009-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/texinfo.tex (\key): Fix excessive whitespace.
+ (\texinfoversion): Tag file as patched.
+
+2009-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <http://florus.no>
+
+ * */*: Update GPL2 to GPL3.
+
+2009-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * tmac/de.tmac: Fix German date strings. Reported by Axel Kielhorn.
+
+2009-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * doc/texinfo.tex: Updated from `texinfo' CVS repository.
+ * doc/txi-en.tex: New file from `texinfo' CVS repository.
+
+2009-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * src/roff/troff/TODO: Mention local variables.
+
+2009-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * doc/webpage.ms: Updated.
+
+2009-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, doc/groff.texinfo, font/devps/*, VERSION, REVISION: Prepare
+ for version 1.20.
+
+2009-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * tmac/groff_ms.man: Improve formatting of tables.
+
+2009-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac (www->): Handle XHTML.
+ (HTML</p>): Handle non-HTML devices.
+ (www:url_check_tag): Avoid warnings.
+
+2009-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * NEWS: Mention hdtbl.
+
+2009-01-02 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man: Update OS version string listing.
+
+2009-01-02 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * tmac/ptx.tmac: New file.
+
+ * NEWS, man/groff_tmac: man: Document it.
+
+2008-12-30 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <img> or <hr>. In
+ XHTML mode (not implemented yet), this has to be changed from `>' to
+ `/>'.
+ (IMG): Don't use </img>
+ Use www->.
+ (PIMG, MPIMG): Don't use </img>
+ Use www->.
+ Fix doublequote issues.
+ (HR): Don't use </hr>.
+ Use www->.
+ (LNS): Fix doublequote issues.
+
+2008-12-24 Michail Vidiassov <master@iaas.msu.ru>
+
+ * tmac/doc-common: Add entries for Mac OS X and FreeBSD.
+
+2008-12-22 Alexey Gladkov <legion@altlinux.ru>
+
+ * contrib/groffer/perl/roff2.pl: Fix syntax error.
+
+2008-12-15 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Mention `preconv'.
+
+2008-11-12 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Restructuring.
+ Improve text block documentation.
+
+2008-11-07 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * tmac/doc-common (doc-operating-system-*), tmac/groff_mdoc.man: Add
+ NetBSD 4.0.1.
+
+2008-10-13 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man: Update documentation on BSD-like OS string
+ versions.
+
+2008-10-10 Werner LEMBERG <wl@gnu.org>
+
+ * man/roff.man, doc/groff.texinfo: Improve the history part. This
+ is based on input from Tom Van Vleck <thvv@multicians.org>.
+
+
+ * 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 <http://www.gildea.com/stephen/>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <esr@snark.thyrsus.com>
+
+ * doc/pic.ms: Fold in documentation of pic2plot(1) capabilities.
+ Improve the documentation of text objects.
+
+2008-09-28 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ * tmac/an-old.tmac (FT): Initialize properly. Reported by Tadziu
+ Hoffmann.
+
+2008-09-06 Werner LEMBERG <wl@gnu.org>
+
+ * 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 <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Document computation of element widths.
+
+2008-08-20 Alexey Gladkov <legion@altlinux.ru>
+ Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ * 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 <dmw@oxytropis.plus.com>
+
+ 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 <wl@gnu.org>
+
+ * 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 <lawrence.jones@siemens.com>
+
+ * 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 <lawrence.jones@siemens.com>
+
+ * Makefile.comm (depend.temp): Add `EXTRA_CCFLAGS'.
+
+2008-04-29 Larry Jones <lawrence.jones@siemens.com>
+
+ * src/eqn/script.cpp (script_box::output): Portability fix.
+
+2008-04-05 Dorai Sitaram <ds26gte@yahoo.com>
+
+ Add better support for `.TAG #<label>' in non-HTML documents: In
+ case of a forward reference in a call to .URL, write `(see below)'.
+ In case of a backwards reference use the page number instead. The
+ reference gets stored in a string `TAG_<label>' and can be
+ overridden while calling `.TAG' with its new optional argument --
+ this is useful for a second-pass system which resolves forward
+ references.
+
+ * tmac/www.tmac (www:url_check_tag): New function.
+ (URL): Use it.
+ (TAG): Add optional argument to define string `TAG_<label>'.
+
+2008-03-24 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trace.tmac (so, mso): Added.
+
+ * tmac/www.tmac (PIMG): Replace `.ie' (without `.el') with `.if'.
+ If used with -mtrace, and this clause was active, the macro was
+ executed twice.
+
+ * tmac/pspic.tmac (PSPIC): Accept option `-C' for orthogonality.
+ This makes `.PIMG -C <file>' (from www.tmac) work on non-HTML
+ devices.
+ * man/groff_tmac.man: Document it.
+
+2008-02-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp: s/safer_flag/unsafe_flag/.
+ Update all occurrences so that \n[.U] works as advertised. Bug
+ reported by Dorai Sitaram.
+
+2008-02-17 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of .cf request.
+
+2008-01-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/html/pre-html.cpp (usage): Don't describe options but
+ mention that it should never be called stand-alone.
+
+ * tmac/groff_www.man, doc/groff.texinfo, man/groff_font.man,
+ man/groff_tmac.man, man/groff_out.man, README, README.MinGW,
+ src/roff/groff/groff.man: Mention -Txhtml.
+
+ * man/groff_font.man, man/groff_tmac.man, man/roff.man: Revised.
+
+2008-01-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/font.cpp (font::contains, font::get_code):
+ Handle single-letter names correctly.
+
+ * doc/groff.texinfo, man/groff_diff.man: Extend documentation of \^
+ and \|.
+ * NEWS: Updated.
+
+2008-01-15 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Revised.
+
+2008-01-14 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff.man: Mention glyph and characters.
+ Minor other updates.
+ * man/groff_char.man: Minor updates.
+ * man/groff_diff.man: Better clarification between characters and
+ glyphs.
+
+2008-01-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix top-level structure to make it compilable
+ again with all texinfo modes. Reported by Jrg van den Hoff
+ <j.van_den_hoff@fzd.de>.
+
+2008-01-11 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Mention that compass points of line objects are
+ arbitrarily located.
+
+2008-01-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cpp (left_italic_corrected_node::add_self):
+ Don't remove itself if there is no glyph associated with the node
+ yet. This happens, for example, in this situation:
+
+ .ll 15000u
+ .ft I
+ x x
+ (\,f
+
+2008-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man, man/groff.man: Revised.
+
+ * src/preproc/eqn/lex.cpp (troff_defs): Fix typo.
+
+2008-01-04 Werner LEMBERG <wl@gnu.org>
+ * */*: s/Osanna/Ossanna/.
+
+ * */*.man: Replace .URL with .UR/.UE (except in groff_www.tmac).
+ Replace .MTO with .MT/.ME (except in groff_www.tmac).
+ Insert `\:' in URLs where appropriate.
+ Don't include www.tmac (except in groff_www.tmac).
+
+ * man/groff.man (.ESC[]): Fix font of closing bracket.
+ (.ESCq): Fix font of closing quote character.
+ Many other improvements.
+
+2007-12-30 Bernhard Fisseni <bfi@ikp.uni-bonn.de>
+
+ * src/devices/grohtml/post-html.cc
+ (html_printer::writeHeadMetaStyle): Fix CSS output.
+
+2007-12-29 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/ec.tmac: Add CM fonts to the .fspecial lines; those fonts
+ contain additional glyphs (like some uppercase Greek letters).
+
+2007-12-06 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+
+2007-12-06 Colin Watson <cjwatson@debian.org>
+
+ * src/roff/nroff/nroff.sh: Add options -w and -W.
+ * src/roff/nroff/nroff.man: Document them.
+
+2007-12-06 Karl Berry <karl@freefriends.org>
+
+ * tmac/hyphenex.pl: Update header output.
+
+2007-11-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grotty/tty.cpp (tty_printer::line): Fix line lengths.
+
+2007-11-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: Add Heinz-Jrgen's 3d boxes example.
+
+2007-11-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/nroff/nroff.sh: Handle GROFF_TYPESETTER environment
+ variable. Problem reported by Michael G Schwern
+ <schwern@pobox.com>.
+
+ * src/roff/nroff/nroff.man: Document it.
+ Other minor updates.
+
+2007-11-17 Heinz-Jrgen Oertel <hj.oertel@t-online.de>
+
+ * src/groff/preproc/pic/lex.cpp (table): Add box attributes
+ `xslanted' and `yslanted'.
+
+ * src/groff/preproc/pic/object.cpp (object_spec::object_spec):
+ Initialize `xslanted' and `yslanted'.
+ (graphic_object): Add methods `set_xlanted' and `set_yslanted'.
+ (closed_object): Ditto.
+ Add members `xslanted' and `yslanted'.
+ (box_object::print): Use them.
+ (object_spec::make_object): Handle slant values.
+ * src/groff/preproc/pic/object.h (IS_XSLANTED, IS_YSLANTED): New
+ constants.
+ (object_spec): Add members `xslanted' and `yslanted'.
+ * src/groff/preproc/pic/pic.y (XSLANTED, YSLANTED): New left-valued
+ tokens.
+ Add rules for them.
+
+ * src/groff/preproc/pic/pic.man, NEWS, doc/pic.ms: Document above
+ changes.
+
+2007-11-16 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/hyphenex.pl: Generate copyright notice (this has been
+ approved by Barbara Beeton).
+ * tmac/hyphenex.us: Updated.
+
+2007-11-10 Michail Vidiassov <master@iaas.msu.ru>
+
+ * tmac/doc-syms (doc-str-St--susv3): New string.
+ * tmac/groff_mdoc.man: Document it.
+
+2007-11-08 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/preconv/preconv.cpp (emacs_to_mime): Add `utf-16be',
+ `utf-16le', `utf-16be-with-signature', `utf-16le-with-signature'.
+ (is_comment_line): Handle '\" and '\# also.
+
+ * src/preproc/preconv/preconv.man: Revise and make complete.
+
+2007-10-25 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/cs.tmac: New file holding Czech strings, contributed by
+ Marcela Maslanova <mmaslano@redhat.com>.
+ * tmac/hyphen.cs, tmac/hyphenex.cs: New hyphenation pattern files
+ for Czech, taken from CTAN.
+ * LICENSES: Updated.
+ * tmac/Makefile (NORMALFILES): Add Czech stuff.
+ * doc/groff_tmac.man: Mention cs.tmac.
+
+2007-10-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (do_ps_file): Handle `%X' in header
+ comments correctly. Reported by Frank Jahnke
+ <jahnke@sonatabio.com>.
+
+2007-10-02 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common, tmac/groff_doc.man: Add FreeBSD 6.2, document
+ FreeBSD 5.5 and 7.0.
+
+ * tmac/doc-syms: Give better names for System V releases.
+
+2007-09-25 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/Makefile.in, doc/Makefile.sub (.ms.html): Add -P-V switch to
+ the production of html files.
+ (pic.html): Ditto.
+ Remove background colour switch.
+ (.SUFFIXES, clean): Handle *.xhtml files.
+
+ * src/devices/grohtml/grohtml.man: Document that -V option now
+ generates an HTML-4.01 validator or XHTML validator.
+
+ * src/devices/grohtml/html-text.cpp (html_text::end_tag,
+ html_text::start_tag): Suppress <small>, <big>, and <color> tags if
+ we are inside a <pre> block.
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::handle_valid_flag): Add a parameter to indicate
+ whether it needs to generate a paragraph block.
+ (html_printer::write_navigation): Updated.
+ (html_printer::do_file_components): Generate an HTML-4.01 blue
+ validator button also.
+
+2007-09-23 Axel Kielhorn <A.Kielhorn@web.de>
+
+ * man/groff.man: Fix URL of CSTR 54.
+
+2007-09-23 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man: Normalize character set names as defined
+ by IANA. Based on a patch from Axel Kielhorn.
+
+ * src/preproc/refer/label.y: Undo change from 2007-09-19.
+
+2007-09-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (interpolate_arg): Remove compiler
+ warning.
+
+ * src/preproc/eqn/pile.cpp (pile_box::output, matrix_box::output):
+ Remove compiler warning.
+
+ * src/preproc/refer/label.y: Remove compiler warning.
+
+ * src/preproc/pic/pic.y: Remove doubled token entries.
+
+2007-09-19 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/groff.texinfo: Document new .O register and add cross
+ reference entries.
+
+ * NEWS: Updated.
+
+ * src/devices/grohtml/grohtml.man: Document new -V and -y options.
+
+ * src/devices/grohtml/html-table.cpp: Add support for XHTML 1.1.
+ (html_table:: emit_colspan, html_table::emit_td): New methods.
+ (html_table::emit_col): Use html_table::emit_td.
+ (html_table::emit_table_header): Use html_table::emit_colspan if
+ dialect xhtml is specified.
+ (html_table::finish_row): Updated.
+
+ * src/devices/grohtml/html-table.h (html_table): Declare
+ emit_colspan, emit_td.
+
+ * src/devices/grohtml/html-text.cpp: Modified tags to comply with
+ xhtml if this dialect was requested.
+
+ * src/devices/grohtml/html-text.h (html_dialect): New enumeration.
+ (html_text): Add new variable `dialect'.
+
+ * src/devices/grohtml/post-html.cpp: Modify header tags to be XHTML
+ compliant.
+ (valid_flag, groff_sig, dialect): New global variables.
+ (html_printer::handle_valid_flag, html_printer::do_math,
+ html_printer::write_html_anchor, html_printer::write_xhtml_anchor,
+ html_printer::do_math, html_printer::handle_valid_flag): New
+ methods.
+ (html_printer::emit_line, html_printer::emit_raw,
+ html_printer::do_check_center, html_printer::write_title,
+ write_rule, html_printer::writeHeadMetaStyle, generate_img_src,
+ html_printer::begin_page): Altered to be XHTML compliant.
+ (html_printer::write_header): Updated.
+ (html_printer::troff_tag): Call do_math.
+ (html_printer::insert_split_file, html_printer::do_file_components,
+ html_printer::write_navigation): Create XHTML file components if
+ necessary and also produces a groff signature if requested.
+ (~html_printer): Call writeHeadMetaStyle at appropriate places
+ depending upon html_dialect.
+ (html_printer::special): Handle new tags `html<?p>' and `math<?p>'.
+ (main): Added options -x, -V, and -y.
+ (usage): Updated.
+
+ * src/preproc/eqn/box.cpp: Create a distinction between
+ the MathML device and the XHTML device.
+ (do_text): Issue a newline at the end of the equation if XHTML was
+ specified.
+ (box::top_level): Prefix the output of an equation by the .MATHML
+ macro.
+ (output_string): Suppress \n if XHTML was specified.
+
+ * src/preproc/eqn/main.cpp (xhtml): New global flag.
+ (inline_equation): Skip leading spaces after inline equation for
+ XHTML device.
+ (main): Set `xhtml' flag if `-Tmathml:xhtml' is specified.
+
+ * src/preproc/eqn/eqn.h (xhtml): New external flag.
+
+ * src/preproc/eqn/text.cpp (entity_table): Fix typo.
+
+ * src/preproc/html/pre-html.cpp (html_dialect): New enumeration.
+ (dialect, eqn_flag): New global variables.
+ (html_system): Improve debugging support.
+ (alterDeviceTo): Test for -Txhtml when altering device to the image
+ device and reset to -Txhtml.
+ (addZ): Renamed to...
+ (addArg): This.
+ Introducea a general parameter.
+ (print_args): New debugging function.
+ (char_buffer::run_output_filter): Use print_args and addArg rather
+ than addZ.
+ (char_buffer::do_html, char_buffer::do_image): Add -rxhtml=1 command
+ line parameter as an argument to the html generation of text when
+ xhtml is needed. Include -e on the command line if mathml is
+ required.
+ (scanArguments): Allow -e, -V, -y and -x options.
+ -V, -y are handled by the back end. -e sets `eqn_flag'.
+ -x determines HTML dialect.
+
+ * src/roff/groff/groff.cpp (possible_command): New method
+ `clear_name'.
+ (main): Set eflag if -e is present on command line.
+ Set is_xhtml if -Txhtml is present.
+ Pass `-x x' to the HTML pre and post processors.
+ Pass `-e' to the HTML pre processor if required.
+ Pass `-Tmathml:xhtml' to eqn if XHTML is requested.
+
+ * src/roff/troff/input.cpp (init_input_requests): Introduce new
+ number register `\n[.O]'.
+
+ * tmac/s.tmac: (LP): Use .nop for semantic sugar.
+ (cov*ab-init) reformat.
+ (@EQ): Use EQN-HTML-IMAGE and friends rather than HTML-IMAGE.
+ (CHECK-FOOTER-AND-KEEP): Define FS, FE such that they use
+ <cite></cite> for the html device rather than generate images for
+ footnotes.
+
+ * tmac/troffrc-end: Define EQN-HTML-IMAGE,
+ EQN-HTML-IMAGE-END, EQN-HTML-IMAGE-RIGHT,
+ EQN-HTML-IMAGE-LEFT, EQN-HTML-IMAGE-INLINE,
+ EQN-HTML-DO-IMAGE, EQN-HTML-IMAGE-END as null strings.
+
+ * tmac/www.tmac: (HTML<?p>): New macro.
+ (MATH<?p>): New macro.
+ (IMG, PIMG, MPIMG, HR): Use XHTML compliant syntax.
+ (www-emit-ltag): New macro.
+ (www-push-li): Updated.
+ (ULS): Ensure that tags are balanced in order by use of
+ www-emit-ltag.
+ (ULE): Likewise: Use www-emit-ltag and shut down paragraphs in
+ order.
+ (OLS, OLE, DLS, DLE): Ditto.
+ <global>: Define EQ and EN to EQN-HTML-IMAGE and EQN-HTML-IMAGE-END
+ respectively.
+ (www-li-ul, www-li-ol, www-li-dl): Updated.
+ (EQN-HTML-IMAGE, EQN-HTML-IMAGE-RIGHT, EQN-HTML-IMAGE-LEFT,
+ EQN-HTML-IMAGE-INLINE, EQN-HTML-DO-IMAGE, EQN-HTML-IMAGE-END,
+ MATHML): New macros.
+
+2007-09-17 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Document `unicode' keyword.
+ * doc/groff.texinfo (DESC File Format): Synchronize with
+ groff_font.man.
+
+2007-09-15 Werner LEMBERG <wl@nu.org>
+
+ * man/groff.man: Document `\_'.
+ * doc/groff.texinfo: Ditto.
+ Remove references to `\@' which isn't a valid escape sequence in
+ groff.
+
+
+ * tmac/unicode.tmac: Add ` and '.
+ * tmac/html.tmac: Load unicode.tmac.
+
+2007-09-14 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/unicode.tmac: Make `-' a pure input character by mapping it
+ to `hy'.
+
+ * src/roff/troff/input.cpp (init_charset_table): Handle `hy'.
+
+2007-09-11 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/string.cpp (string::remove_spaces): Fix memory
+ allocation.
+
+ * src/preproc/tbl/table.cpp (table::allocate): Initialize
+ `blockflag' array.
+
+2007-09-10 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * README.MinGW: Add warnings about use of MSYS-RXVT, and about
+ defective GnuWin32 versions of netpbm/libpng.
+
+2007-07-15 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * tmac/s.tmac (cov*first-page-init): Remove invoking trap, to avoid
+ possible recursion.
+
+2007-07-11 Werner LEMBERG <wl@gnu.org>
+
+ * gendef.sh: Add shebang.
+
+2007-07-05 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/papersize.tmac: Fix dimensions of executive paper format.
+ Reported by John Rupley <rupley@u.arizona.edu>.
+
+2007-07-02 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * tmac/s.tmac (cov*first-page-init): Emit error message if not in
+ top-level environment.
+
+2007-06-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/xditview/TODO, NEWS: Updated.
+ * src/devices/xditview/Makefile.sub (install_data, uninstall_sub):
+ Handle `GXditview-color'.
+ * src/devices/xditview/gxditview.man: Updated.
+
+ * m4/groff.m4 (GROFF_APPRESDIR_CHECK): Updated.
+ * m4/codeset.m4, m4/glibc21.m4, m4/iconv.m4, m4/lib-link.m4: Updated
+ from `gnulib' git repository.
+
+ * configure.ac: Updated.
+ * configure: Regenerated (using autoconf 2.61).
+
+ * config.guess, config.sub: Updated from `config' CVS repository.
+ * config.rpath, install-sh, mkinstalldirs: Updated from `gnulib' git
+ repository.
+
+2007-06-12 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * src/devices/xditview/GXditview.ad: Split off color definitions
+ into...
+ * src/devices/xditview/GXditview-color.ad: This new file.
+
+2007-06-08 Fabrice Mnard <menard.fabrice@wanadoo.fr>
+
+ * tmac/fr.tmac: Handle chapter system for `me'.
+
+2007-06-05 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * src/devices/xditview/xditview.c (main): Add support for
+ accelerators.
+
+ * src/devices/xditview/GXditview.ad: Updated.
+ Make widget more colourful.
+
+2007-05-30 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_mdoc.man: Convert `-' to `\-' where appropriate.
+ Recommend `tbl' instead of `-column' lists for more complicated
+ cases.
+
+2007-05-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cpp (ps_printer::set_char): Handle subfonts
+ correctly.
+
+2007-04-10 Werner LEMBERG <wl@gnu.org>
+
+ In pic, make rounded boxes work with colors. Reported by Urs Eggli
+ <Urs.Eggli@zuerich.ch>.
+
+ * src/preproc/pic/common.h (common_output), src/preproc/pix/output.h
+ (output): Add color parameter to `rounded_box' member function.
+
+ * src/preproc/pic/common.cpp (common_output::rounded_box): Use it.
+
+ * src/preproc/pic/object.cpp (box_object::print): Pass `color_fill'
+ to `out->rounded_box'.
+
+2007-04-09 Michail Vidiassov <master@iaas.msu.ru>
+
+ * font/devps/generate/textmap: Add Greek letters and some more.
+
+ * src/utils/afmtodit/afmtodit.tables: Change values of `Delta',
+ `Omega', and `mu' to the ones from aglfn.txt.
+
+2007-04-08 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * tmac/s.tmac (SN): Define unconditionally.
+ (SN-STYLE): New string; define.
+
+ * NEWS, tmac/groff_ms.man, doc/groff.texinfo (SN-STYLE): Document it.
+
+2007-03-22 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/pspic.tmac: Fix harmless numeric overflow warning. Reported
+ by Jrg van den Hoff <j.van_den_hoff@fzd.de>.
+
+2007-03-20 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trace.tmac (rn): Added.
+ (nr, ds, ds1, as, as1, substring): Restore escape character while
+ executing the macro.
+ (nr): Remove dead code.
+
+ * src/preproc/eqn/box.cpp (box::top_level): Use \E in string
+ definitions to make them traceable.
+
+2007-03-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (get_copy): Add third argument to control
+ whether \E shall be expanded.
+ (get_char_for_escape_name): Allow \E.
+
+2007-03-15 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/s.tmac (MO, CH, pg*OH, pg*EH, pg*OF, pg*EF, *, [., .],
+ par*define-font-macro, \[hooko]): Use \E to make it traceable.
+
+ (ref*field): Add argument to control the space between previous and
+ current argument.
+ Update all callers.
+ (ref*add-N): Fix handling of opening parenthesis. Problem reported
+ by Jrg van den Hoff <j.van_den_hoff@fzd.de>.
+
+2007-03-14 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trace.tmac (als): Added.
+ (de, de1, am, am1): Make traced macros aliased with .als work.
+
+2007-02-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/xditview/TODO: Add some more items.
+
+ * Makefile.comm (.man.n): Add @APPRESDIR@.
+ Sort entries.
+
+ * src/devices/xditview/gxditview.man: Document GXditview resource
+ file.
+ Other documentation enhancements based on a patch from Jrg.
+
+2007-02-25 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+ Joerg van den Hoff <j.van_den_hoff@fzd.de>
+
+ * src/devices/xditview/GXditview.ad: Make all keys work regardless
+ of the current mouse position.
+
+2007-02-20 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_man.man: Revised to improve visual appearance.
+ Reduce use of future tense.
+
+ * tmac/groff_trace.man: Revosed to improve visual appearance.
+
+2007-02-19 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ Make groff.man viewer-portable.
+
+ * tmac/groff.man: Eliminate use of .eo/.ec.
+ (.REQ): Surround args 2 through N with quotes. This will enable us
+ not to rely on the shift request, which is nonportable.
+ (ExecFF): Remove. The code is simpler without it.
+
+2007-02-18 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * tmac/groff_www.man: Viewer-portability fixes.
+
+2007-02-16 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * man/groff.man: Remove some unneeded code and a no-longer-used
+ inclusion of the www macros.
+
+2007-02-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/table.cpp (compute_span_width): Fix use of
+ AVAILABLE_REG.
+ (table::compute_widths): Simplify.
+
+2007-02-11 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/table.h: Don't include `stdbool.h'.
+ (table): Replace `bool' type with `char' for orthogonality.
+ Update all users.
+
+ * src/preproc/tbl/table.cpp (block_entry::do_divert): Fix usage of
+ AVAILABLE_REG and COLCOUNT_REG.
+ (table::table): Fix order call of initializers.
+ (table::~table): Deallocate `blockflag'.
+
+2007-02-09 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ A try at the new rule for block column allocation is now enabled by
+ the new `experimental' global option: The horizontal space up to the
+ right margin which is not used by columns without text blocks is
+ evenly distributed to the columns with text blocks.
+
+ It doesn't work right as yet; there appears to be some error in the
+ computation of `3avail', the available line length. The purpose of
+ this patch is (a) to make experimenting with other formulas easy,
+ and (b) leave the infrastructure for flag `experimental' in place
+ for future experiments. Do not document any behavior associated
+ with this flag!
+
+ * src/preproc/tbl/table.h: Include `stdbool.h'.
+ (table): Make `flags' public.
+ Add `count_block_columns' function.
+ Add `blockflag' array.
+ Add `EXPERIMENTAL' enumeration value.
+
+ * src/preproc/tbl/table.cpp (AVAILABLE_REG, COLCOUNT_REG): New
+ macros.
+ (table_entry): New member `parent' so that class and subclass
+ members can set a parent field. Update all users.
+ (block_entry::do_divert): Handle `EXPERIMENTAL' flag.
+ (block_entry::do_width): Set the parent's `blockflag'.
+ (table::allocate): Handle `blockflag'.
+ (table::count_block_columns): New function.
+ (compute_span_width): Adjust AVAILABLE_REG.
+ (table::compute_widths): Handle COLCOUNT_REG and AVAILABLE_REG.
+
+ * src/preproc/tbl/main.cpp (process_options): Handle `experimental'
+ option.
+
+2007-02-08 Zhao, Yu (William) <yzhao2@alcatel-lucent.com>
+
+ * src/devices/grodvi/dvi.cpp (draw_dvi_printer::draw) <'e'>: Set
+ line thickness.
+
+2007-02-08 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_out.man (offset): Make it work reliably.
+
+2007-02-07 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * man/groff_out.man: Simplify some font changes so \fP is less
+ likely to do something surprising.
+
+ * man/groff_out.man: We can simplify the command macros still
+ further if we stop trying to hide structural requests inside them.
+ Also, fix some instances of \} at start of line without a dot, and
+ make some font changes explicit in strings.
+
+ * man/groff_out.man: Cleanup -- remove now-unneeded uses of .do and
+ .cp.
+
+ * man/groff_out.man: Final step: Reduce x-command, get rid of eo/ec
+ calls and fix macros to do without them. File should now be
+ viewer-portable.
+
+ * man/groff_out.man: Fourth step: Eliminate use of eqn in favor of
+ micromotions that produce the same visual result and can be lifted
+ to XML-DocBook.
+
+ * man/groff_out.man: Third step: Reduce Da-comand, fix a
+ call-sequence bug in the original.
+
+ * man/groff_out.man: Second step: Reduce D-commmand and D-command+,
+ move font-change escapes to portable form.
+
+ * man/groff_out.man: First step in macro simplification; eliminate
+ list1..n, simplify .offset and .index_offset so they no longer
+ require groff-specific features or eqn (instead, use troff
+ micromotions for subscripting).
+
+2007-02-06 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * src/preproc/eqn/eqn.man: Minor corrections.
+
+ * tmac/an-ext.tmac: Change .UR/.UE and .MT/.ME so the start macro no
+ longer takes a second argument that is pasted to the end of the
+ generated text. Instead, the end macro takes an argument that does
+ the same thing.
+
+ * man/ditroff.man, man/groff_diff.man, man/groff.man,
+ man/groff_out.man, man/groff_tmac.man, man/roff.man,
+ src/roff/groff/groff.man, src/roff/grog/grog.man,
+ tmac/groff_man.man, tmac/groff_trace.man: Update accordingly.
+
+ * src/roff/troff/troff.man: .SY and .YS are canned macros now,
+ so we can use them here.
+
+2007-02-05 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * src/preproc/eqn/lex.cpp, src/preproc/eqn/eqn.man:
+ By popular demand, make ... set three lower dots again
+ and introduce a new predefined macro 'cdots' to set
+ three centered dots.
+
+2007-02-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/eqn.man: Revised.
+
+ * src/preproc/eqn/text.cpp (map, special_char_boc::output): Use
+ `const'.
+ (spacing_type): Fix typo.
+ (special_to_entity): Use `const'.
+ Remove unused variable.
+ * src/preproc/eqn/other.cpp (font_box::output): Use `const'.
+
+2007-02-05 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * src/devices/grotty/grotty.man: \m[] and \M[] aren't portable,
+ which is a shame as the effect was cute.
+
+2007-02-04 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * man/groff_tmac.man, man/groff_diff.man: Portability conversion;
+ rip out over-elaborate macrology, use .EX/.EE and .UR/.UE where
+ possible, remove preamble declarations and macros that are no
+ longer needed. Conversion checked using the protocol described in
+ tmac/TESTING-HINTS.
+
+2007-02-03 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (LP, IP, HP): Use .ns to suppress additional
+ vertical space.
+
+2007-02-03 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * tmac/groff_man.man: Documented the extension macros, and
+ added portability advice.
+
+ * MORE.STUFF: More-stuff entries for doclifter and pic2plot.
+
+
+ Add support for MathML output to eqn.
+
+ The strategy used is very simple and relies on the fact that the box
+ models of eqn and Presentation MathML differ in only trivial ways.
+ It leaves the grammar and existing internal object structures
+ unchanged. A new global, `output_format', is defined as an
+ enumerated type with values {troff, mathml}. Most of the functions
+ and methods that emit actual output acquire a top-level conditional,
+ dispatching on this global, which has one arm for troff mode and one
+ for MathML mode. In most cases the MathML arm is drastically
+ simpler.
+
+ (This strategy could be easily generalized to support other output
+ formats. TeX is a possibility that leaps to mind.)
+
+ The only even moderately tricky changes are in the lexer. Some of
+ the predefined macros used constructs like `up', `down', `fwd',
+ `back', and `vcenter' that have no equivalents in MathML. I
+ attacked this problem in these ways:
+
+ 1. I eliminated three uses of `back' to compose characters in favor
+ of using equivalent groff specials `\(<<', `\(>>', and `\(<>'
+ that did not exist when these macros were written. (This will be
+ a quality improvement for troff users.)
+
+ 2. I eliminated one use of `vcenter' by using \\(md. (Likewise...)
+
+ 3. I then split the table of pre-definitions in three; one large
+ common table and two small troff-specific and MathML-specific
+ tables. Use of troff-only operations (up, down, back, fwd,
+ vcenter) is now confined to the former. The latter now uses
+ `size big' and drops out the explicit positioning operations,
+ counting on MathML processors to do them.
+
+ POTENTIAL TROUBLE SPOTS:
+
+ Here are notes for reviewers on places I'm not 100% sure I've done
+ the right thing:
+
+ * In the process of preparing the troff table, I translated three
+ definitions (dot_def, dotdot_def, and utilde def) that previously
+ used explicit \v escapes to use `up' and `down' instead. I
+ modeled the new definitions on the way `vec' and `dyad' work, but
+ it's possible I got something subtle wrong.
+
+ * I'm not certain the MathML implementation of font_box::output() is
+ right, because I don't quite get what the switcheroo between
+ `current_roman_font' and `old_roman_font' is supposed to
+ accomplish. It does seem to generare good MathML, though.
+
+ Finally, I made one purely cosmetic change in `text.cpp'; I replaced
+ with an enum some magic numbers for spacing types that I thought
+ were too ugly to live.
+
+ REMAINING ISSUES:
+
+ The entirety of eqn is translated when `-TMathML' is specified,
+ with the following exceptions...
+
+ Limitations that cannot be fixed include non-support for special,
+ up/down/fwd/back, and vcenter.
+
+ Limitations that might be fixable include non-support for mark and
+ lineup. I will investigate further, but if these can be implemented
+ at all it's going to be in a very complicated and nasty way.
+
+ The way character boxes are output means that each digit of a
+ multi-digit number gets its own <mn></mn> tag pair in the MathHTML.
+ While this is not technically wrong for Presentation MathML, it is
+ ugly and inefficient. Fixing this will require implementing a
+ little state machine in the `text.cpp' output method.
+
+ * src/preproc/eqn/box.cpp, src/preproc/eqn/delim.cpp,
+ src/preproc/eqn/eqn.h, src/preproc/eqn/eqn.man,
+ src/preproc/eqn/lex.cpp, src/preproc/eqn/limit.cpp,
+ src/preproc/eqn/list.cpp, src/preproc/eqn/main.cpp,
+ src/preproc/eqn/other.cpp, src/preproc/eqn/over.cpp,
+ src/preproc/eqn/pile.cpp, src/preproc/eqn/script.cpp,
+ src/preproc/eqn/sqrt.cpp, src/preproc/eqn/text.cpp,
+ src/preproc/eqn/eqn.man: MathML output mode.
+
+ * NEWS: Document it.
+
+2007-02-02 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * src/roff/groff/groff.man: Converted to use .SY/.OP/.YS
+ and for cross-viewer portability. Conversion checked
+ using the protocol described in tmac/TESTING-HINTS.
+
+2007-02-02 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-ext.tmac (ME): Don't use `\:'.
+
+ * src/roff/grog/grog.man: Further refinements and normalizations.
+
+2007-02-02 Eric S. Raymond <esr@snark.thyrsus.com>
+
+ * src/roff/grog/grog.man: Converted to use .SY/.OP/.YS and for
+ cross-viewer portability. Conversion checked using the protocol
+ described in tmac/TESTING-HINTS.
+
+2007-02-01 Eric S. Raymond <esr@thyrsus.com>
+
+ * tmac/TESTING-HINTS: Added.
+
+2007-02-01 Eric S. Raymond <esr@thyrsus.com>
+
+ Enable the support for Bell archaisms on .SC, so the `-r bell'
+ switch is no longer needed to format old AT&T papers like
+ the EQN user guide.
+
+ * tmac/s.tmac (.SC, .UC, .P1, .P2): Updated.
+
+ * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Updated.
+
+2007-02-01 Eric S. Raymond <esr@thyrsus.com>
+
+ Add some Bell labs extensions to the -ms macros.
+
+ * tmac/s.tmac (.SC, .UC, .P1, .P2) [bell]: New macros.
+
+ * tmac/groff_ms.man, doc/groff.texinfo, NEWS: Document `-r bell'.
+
+2007-01-30 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-ext.tmac (\n[EX]): Rename to \n[mX].
+ (\n[mH]): New register (set if grohtml is used).
+ (\n[SY]): Rename to \n[mS].
+ (\n[a]): Rename to \n[mA].
+ (\n[i]): Rename to \n[mI].
+ (mU): New auxiliary input trap macro.
+ (UR, UE): Replace stub with real definition.
+ (URL): Remove.
+ (MT, ME): New macros.
+ (MTO): Remove.
+ (EX, EE): Don't insert vertical space.
+ Use a register to store (and restore) the current font.
+
+ * man/ditroff.man, man/groff_diff.man, man/roff.man: Revised, based
+ on patches from Eric Raymond.
+ Fix URL addresses.
+
+2007-01-22 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/an-old.tmac (an-trap, HP): Make `HP' work as expected.
+
+2007-01-22 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-ext.tmac: Protect against being sourced twice.
+ (URL, EE): Use always two backslashes.
+ (MTO): New macro.
+
+2007-01-16 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-ext.tmac: Remove code for grodvi.
+ (SY): Fix typos.
+ Don't insert empty line.
+ (URL, TQ): Fix typos.
+
+2007-01-14 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-ext.tmac: New file, containing extension macros
+ for -man. See discussion on the groff mailing list for
+ background information.
+ * tmac/an-old.tmac: Load an-ext.tmac.
+ Decorate .ds and as with comment escapes where appropriate.
+ * tmac/Makefile.sub (NORMALFILES): Add an-ext.tmac.
+
+2007-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Document .T# and \n[TW].
+
+2007-01-04 Gaius Mulley <gaius@glam.ac.uk>
+
+ Make -me macros ready for grohtml.
+
+ * tmac/e.tmac: Load devtag.tmac.
+ (need_eo_h, need_eo_tl, need_tl): New registers.
+ (check_need_title, (x-html, )x-html, xp-html): New macros.
+ (@h, hl, ip, @p, sh, (b, (l, EQ, EN, TS, TE, PS, PE, GS, GE, r, i,
+ b, rb, bi, bx, (x, )x, xp): Adapt for use with grohtml.
+ (bp): Rename to @b only if output device is not html.
+
+2007-01-01 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Document empty lines.
+
+ * src/utils/afmtodit/afmtodit.pl: Always print a header comment at
+ the very beginning of the output.
+ [!$opt_x]: Fix typo.
+
+ * font/devps/*: Regenerate font definition files.
+
+2007-01-01 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/generate/Makefile (AFMTODIT): Use -c flag.
+
+ * font/devps/*: Regenerate font definition files.
+
+2006-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (oldfontdir): New variable.
+ (MDEFINES): Add $(oldfontdir).
+ (uninstall_dirs): Remove `current' link.
+ Remove $(oldfontdir).
+
+ * Makefile.comm (oldfontsubdir): New variable.
+ (install_dev): Install files collected in $(OLDDEVFILES) into
+ $(oldfontsubdir).
+ (uninstall_dev): Remove data in $(oldfontsubdir).
+ (.man.n): Handle @OLDFONTDIR@.
+
+ * src/devices/grodvi/grodvi.man, src/devices/grohtml/grohtml.man,
+ src/devices/grolbp/grolbp.man, src/devices/grolj4/grolj4.man,
+ src/devices/grotty/grotty.man, src/devices/xditview/gxditview.man:
+ Document GROFF_FONT_PATH.
+
+ * src/devices/grops/grops.man: Document GROFF_FONT_PATH and
+ old font description files.
+
+ * font/devps/Makefile.sub (OLDDISTFILES, OLDDEVFILES): New
+ variables.
+
+ * font/devps/old/*: New directory, holding the previous version
+ of the 35 Adobe core font description files.
+
+ * font/devps/*: Regenerated the 35 Adobe core fonts, using the
+ Adobe-Core35_AFMs-229.tar.bz2 bundle from ftp.dante.de.
+
+ * NEWS: Document font update.
+
+2006-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/generate/Makefile (symbolsl.afm): Use $(srcdir).
+
+ * Makefile.comm (fonts): New (empty) target.
+ * Makefile.in (TARGETS): Add `fonts'.
+
+ * MANIFEST: Add `chem'.
+
+ * doc/groff.texinfo (Changing Fonts): Font translations with .ftr
+ can't be chained.
+
+2006-12-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/grn/hdb.cpp: Include gprint.h later. From NetBSD.
+
+2006-12-19 Werner LEMBERG <wl@gnu.org>
+
+ Add support for German. For activation, simply use -mde or -mden
+ (for traditional and new orthgraphy, respectively) as the last
+ macro package.
+
+ * tmac/de.tmac, tmac/den.tmac, tmac/hyphen.det, tmac/hyphen.den,
+ tmac/hyphenex.det: New files, partly taken from CTAN.
+ * LICENSES: Updated list of hyphenation patterns.
+ * man/groff_tmac.man: Mention de.tmac and den.tmac.
+ * NEWS: Updated.
+
+2006-12-11 Werner LEMBERG <wl@gnu.org>
+
+ Support up to 32 macro arguments in pic (and up to 16 on EBCDIC
+ hosts).
+
+ * src/preproc/pic/lex.cpp (ARG1): Redefine. Update all users.
+ (MAX_ARG): New macro. Use it everywhere to replace hard-coded
+ limit of 9 arguments.
+ (process_body): Handle argument numbers with more than a single
+ digit.
+ (interpolate_macro_with_args): Protect against exceeding number of
+ arguments.
+
+ * NEWS, src/preproc/pic/pic.man, doc/pic.ms: Document it.
+
+2006-12-10 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (site.exp, docheck): Commented out. Not working
+ currently.
+ (check): Just emit dummy message.
+
+2006-12-08 Werner LEMBERG <wl@gnu.org>
+
+ During installation, create soft link from <version> to `current' in
+ <datadir>/groff.
+
+ * Makefile.comm (install): Renamed to...
+ (do_install): This.
+ (prefix_must_exist): Removed. Code moved to Makefile.in.
+
+ * Makefile.in (TARGETS): Remove `install'.
+
+ (install): New target which first creates the directory given by
+ --prefix, then calling `make' to do the installation, and finishing
+ with the creation of the soft link.
+
+2006-11-21 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (uninstall_sub): Fix names for info files.
+
+2006-11-18 Werner LEMBERG <wl@gnu.org>
+
+ * man/roff.man, doc/groff.texinfo: Improve history of roff, based on
+ information from Tom Van Vleck <thvv@multicians.org>.
+
+2006-11-16 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/62bit.tmac: New macro package.
+ * tmac/Makefile.sub (NORMALFILES): Add it.
+ * NEWS: Document it.
+
+ * tmac/trace.tmac: Protect against being loaded again.
+ (nr): Always show result.
+
+ * doc/groff.texinfo (Input Encodings): Document latin-5.
+
+ * man/grof_tmac.man: Document sv, latinX, cp1047, 60bit, ec.
+
+2006-11-13 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Page Location Traps) [.wh]: Give more details
+ on negative trap positions.
+
+2006-11-10 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm (.man.n): Handle @DATASUBDIR@.
+
+2006-11-09 Werner LEMBERG <wl@gnu.org>
+
+ * INSTALL: Move information about external installation from
+ INSTALL.gen into this file.
+ Updated.
+
+ * INSTALL.gen: Update to new version (from texinfo CVS).
+
+2006-11-09 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * INSTALL.gen: Extend the file by information on `external
+ installation'. Reorder the installation instruction as `normal
+ installation'.
+
+2006-11-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (install_data): Take care of proper paths while
+ installing info files. Bug reported by
+ Bernd Warken <groff-bernd.warken-72@web.de>.
+
+2006-11-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Rewrite.
+ - Call by `#! /usr/bin/env perl'. That isn't replaced.
+ - Rename usage() to version().
+ - Use warnings.
+ - For `use strict', start all global variables with an upper case
+ character. Use `my' for all variables. Use several new variables.
+ - Add option `-h'.
+ - Add copyright to GPL and Emacs comment.
+ - Handle several `-m*' options.
+ - Fix handling of `-ms' and `-mm'. Add .TL and .NH.
+ - Allow options after file names.
+ - Allow only one `-' parameter (standard input).
+ - Add option abbreviations.
+ - Expand the usage information.
+ - Add `chem'.
+ - Add single quote "'" as additional first character and allow
+ arbitrary space after the first character.
+
+ * src/roff/grog/grog.sh: Rewrite.
+ - Remove option `-e' of `sed'.
+ - Allow file names with space characters.
+ - Add option `-h'.
+ - Add copyright to GPL.
+ - Handle several `-m*' options.
+ - Fix handling of `-ms' and `-mm'. Add .TL and .NH.
+ - Allow options after file names.
+ - Allow only one `-' parameter (standard input).
+ - Add option abbreviations.
+ - Expand the usage information.
+ - Add `chem'.
+ - Add single quote "'" as additional first character and allow
+ arbitrary space after the first character.
+
+ * src/roff/grog/Makefile.sub:
+ - Add copyright to GPL.
+ - Remove `grog:'. Move `grog.old:' to `grog:' in order to have a
+ fair chance to choose between the shell version and the Perl
+ version of `grog'. This is now again comparable to grog in groff
+ version 1.10.
+
+ * src/roff/grog/grog.man: Rewrite.
+ - Move the license to GPL.
+ - New sections: OPTIONS, DETAILS, EXAMPLES, COPYING.
+ - Take over some setup and macros from `groffer'.
+ - Add information on options.
+
+2006-10-28 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trace.tmac: Improve tracing of `.nr'.
+ Trace `.substring' also.
+
+ * NEWS: Updated.
+
+2006-10-28 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/roff.man, src/roff/groff/groff.man: Add `chem', fix position
+ of groff development site, fix fonts.
+
+ * News: Add information on `chem' and `groffer'.
+
+2006-10-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add `chem' bundle.
+
+2006-10-26 Werner LEMBERG <wl@gnu.org>
+
+ Add `\$^' escape to handle the parameters to a macro as a string
+ argument.
+
+ * src/roff/troff/input.h (DOUBLE_QUOTE): New special character.
+
+ * src/roff/troff/input.cpp (input_iterator, input_stack,
+ macro_iterator): Add `space_follows_arg' member function.
+ (macro_iterator::add_arg): Add parameter to set the `space_follows'
+ flag.
+ (arg_list): Add member `space_follows'.
+ Update constructor and all callers.
+ (decode_args): Store discarded double quotes.
+ (interpolate_args): Handle DOUBLE_QUOTE.
+ Add `\$^' escape.
+ (get_copy, token::next, composite_glyph_name): Handle DOUBLE_QUOTE.
+
+ * tmac/trace.tmac: Trace .nr, .ds, .ds1, .as, .as1.
+
+ * docs/groff.texinfo (Parameters), man/groff.man,
+ man/groff_diff.man, NEWS: Document it.
+
+2006-10-24 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.in (NOMAKEDIRS): Add groffer subdirectories.
+
+2006-10-24 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/groff_trace.man: Mention problem with `\\\\'.
+
+2006-10-23 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Expressions): Improve documentation of `!'.
+
+ * tmac/trace.tmac (return): Don't call `substring'.
+
+2006-09-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (read_size): Revert previous change
+ w.r.t. `\s-[-...]'.
+
+ * doc/groff.texinfo (Fractional Size Types): Clarify syntax of \s.
+
+2006-09-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (read_size): Fix `\s[-\n[.s]]' so that it
+ behave the same as `\s-[\n[.s]]' (this is, emit a warning and set
+ point size to 1). Reported by Gunnar Ritter.
+ Also catch `\s-[-...]' and friends (causing an error).
+
+2006-09-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cpp (environment::do_break): Insert zero-width
+ space only if there is no previous space. This fixes a bug which
+ caused unwanted filling of the last line in a paragraph. Thanks to
+ Gunnar Ritter for an analysis.
+
+2006-09-03 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/groff.cpp (main): Pass -U flag to pic also.
+ Reported by Jennifer Sayers <jenjen@isu.usyd.edu.au>.
+
+2006-09-01 Nick Stoughton <nick@msbit.com>
+ Werner LEMBERG <wl@gnu.org>
+
+ Add a request `pev' to print environment information (similar to
+ `pnr' and `ptr' to print number registers and traps).
+
+ * src/roff/troff/env.h (environment): Add member function print_env.
+
+ * src/roff/troff/env.cpp: (environment::print_env): New function to
+ print a given environment state.
+ (print_env): New global function to iterate through the
+ environments, printing each one.
+ (init_env_requests): Register `pev'.
+
+ * doc/groff.texinfo (Debugging), man/groff.man, man/groff_diff.man,
+ NEWS: Document `pev' request.
+
+2006-09-01 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/soelim/soelim.cpp (usage): Fix option argument of
+ `-I' to `dir'.
+
+2006-09-01 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/main.cpp (usage): Add missing options.
+
+2006-08-25 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/soelim/soelim.man: Document how to insert `\' and ` '
+ in file names.
+
+2006-08-19 Werner LEMBERG <wl@gnu.org>
+
+ * configure: Regenerated.
+
+2006-08-18 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * m4/groff.m4 (GROFF_MAKEINFO): Correct `makeinfo version testing
+ logic; it previously caused an `expr' syntax error, if no version of
+ `makinfo' was present. Also, remove dependency on `makeinfo' in VPATH
+ builds, if an up to date `groff.info' is present in either `builddir'
+ or in `srcdir'.
+
+2006-08-12 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * font/devps/prologue.ps: Add BPhook.
+
+ * src/devices/grops/grops.man: Document BPHook.
+ Reorder some sections for better readability.
+
+2006-08-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/lib.h (getlocale): New macro.
+ (setlocale, LC_ALL, LC_CTYPE) [!HAVE_SETLOCALE]: Define, as
+ suggested by Bruno.
+
+ * src/preproc/preconv/preconv.cpp (main): Use getlocale.
+
+2006-08-11 Werner LEMBERG <wl@gnu.org>
+
+ Add new flag to .cflags to enable hyphenation without looking at
+ hcode values.
+
+ * src/roff/troff/charinfo.h (charinfo): New enumeration value
+ `IGNORE_HCODES'.
+ New member function `ignore_hcodes'.
+
+ * src/roff/troff/node.cpp (break_char_node::add_self,
+ node::add_char): Updated.
+
+ * doc/groff.texinfo, man/groff_diff.man, NEWS: Document it.
+
+2006-08-09 Werner LEMBERG <wl@gnu.org>
+
+ Support composite Unicode characters again. Reported by Colin.
+
+ * font/devhtml/R.proto: Renamed to...
+ * font/devhtml/R.in: This.
+
+ * font/devutf8/R.proto: Renamed to...
+ * font/devutf8/R.in: This.
+ Add `charset' line.
+
+ * font/make-Rproto: New script.
+ * font/devhtml/R.proto, font/devutf8/R.proto: Generated.
+
+2006-07-26 Werner LEMBERG <wl@gnu.org>
+
+ * README: Fix description of CVS access. Reported by Joachim.
+
+2006-07-11 Werner LEMBERG <wl@gnu.org>
+
+ Add a request `.fzoom' and a number register `.zoom' to magnify
+ fonts.
+
+ * src/include/font.h (font): Add member variable `zoom'.
+ Add member functions `set_zoom' and `get_zoom'.
+ Remove `static' attribute from `scale' member function.
+
+ * src/libs/libgroff/font.cpp (font::font): Updated.
+ (scale_round): New version with three parameters to handle zoom
+ factor.
+ (font::scale, font::get_width): Handle zoom factor.
+ (font::set_zoom, font::get_zoom): New functions.
+ (font::load): Handle `zoom' while computing `space_width'.
+
+ * src/roff/troff/env.h: Declare `env_get_zoom'.
+ (environment): Add member function `get_zoom'.
+
+ * src/roff/troff/env.cpp (environment::get_zoom): New function.
+ (init_env_requests): Initialize `.zoom' register.
+
+ * src/roff/troff/node.cpp (font_info): New member functions
+ `set_zoom' and `get_zoom'.
+ (tfont): New member function `get_zoom'.
+ (env_get_zoom): New function.
+ (troff_output_file::set_font): Handle zoom factor.
+ (font_zoom_request): New function.
+ (init_node_requests): Initialize `fzoom' request.
+
+ * docs/groff.texinfo (Changing Fonts), man/groff.man,
+ man/groff_diff.man, NEWS: Document `fzoom' request and `.zoom'
+ register.
+
+ * src/roff/troff/TODO: Updated.
+
+2006-07-10 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Drawing Requests): Improve documentation of
+ \D'P ...'.
+
+2006-07-02 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_tmac.man: Document usage of .PSPIC within diversions.
+
+2006-07-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/pspic.tmac: Make .PSPIC work for all devices.
+ Print image file name for devices which don't support PS image
+ inclusion.
+ Handle multiple inclusions.
+ Add lots of comments.
+
+ * tmac/dvi.tmac, tmac/html.tmac, tmac/ps.tmac: Don't load
+ pspic.tmac.
+
+ * tmac/troffrc: Load pspic.tmac.
+
+ * man/groff_tmac.man: Update .PSPIC documentation.
+
+ * NEWS: Updated.
+
+2006-06-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (interpolate_macro):
+ s/probably/possibly/, as suggested by Keith.
+
+2006-06-28 Werner LEMBERG <wl@gnu.org>
+
+ Add support for \D'p...' to grotty.
+
+ * src/devices/grotty/grotty.cpp (tty_printer::draw): Move most of
+ its code to...
+ (tty_printer::line): This function.
+ (tty_printer::draw): Rewritten; just call either draw_line or
+ draw_polygon.
+ (tty_printer::draw_line, tty_printer::draw_polygon): New functions.
+
+ * src/devices/grotty/grotty.man, NEWS: Document it.
+
+2006-06-27 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/refer/command.h (have_bibliography): New variable
+ declaration.
+
+ * src/preproc/refer/command.cpp (bibliography_command): Set
+ `have_bibliography'.
+
+ * src/preproc/refer/refer.cpp: Initialize `have_bibliography'.
+ (output_references): Emit warning only if `have_bibliography' is
+ set.
+
+2006-06-15 Michail Vidiassov <master@iaas.msu.ru>
+
+ * font/devps/Makefile.sub (DISTFILES): Add freeeuro.afm.
+ * font/devps/generate/Makefile (clean): Don't remove symbolsl.afm
+ and zapfdr.afm.
+
+2006-06-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Document limitations of .TS/.TE within a
+ macro (as suggested by Tadziu Hoffmann).
+
+2006-06-12 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Add example for use of .TS/.TE within a
+ macro (as suggested by Tadziu Hoffmann).
+
+2006-06-05 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/strip.sed: Strip `\#' also.
+
+ * doc/groff.texinfo (Operators in Conditionals): Document usage of
+ \? for string comparison.
+
+2006-06-04 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Add more index entries for copy-in mode.
+ (Changing Fonts) <.ft>: Document that a font definition file must
+ not be called `DESC'.
+
+2006-05-31 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/input.cpp (token::next) <\N>: Catch negative values
+ here.
+
+ * doc/Makefile.sub (EXAMPLEFILES): Move gnu.eps to...
+ (PROCESSEDEXAMPLEFILES): Here.
+
+2006-05-30 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/font.cpp (font::load): Reject fonts called
+ `DESC'.
+ Reduce number of false positives for `.if F ...' conditionals.
+ Improve warning messages.
+
+2006-05-29 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/Makefile.sub: Add copyright notice.
+ (NORMALFILES): Add man.tmac and ms.tmac.
+ (SPECIALFILES): Remove man.tmac and ms.tmac.
+ (CLEANADD): Remove man.tmac-sed and ms.tmac-sed.
+ (install_data, uninstall_sub): Don't handle man.tmac and ms.tmac
+ specially.
+ (stamp-sed): Don't handle man.tmac and ms.tmac.
+ Remove obsolete components in sed's regexp.
+
+ * doc/Makefile.sub (EXAMPLEFILES): Add gnu.eps.
+
+ * Makefile.in (OTHERDIRS, NOMAKEDIRS): Add hdtbl.
+
+2006-05-28 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (History): Correct death circumstances of Joe
+ Ossanna.
+
+2006-05-27 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (an-do-tag): Simplify.
+
+2006-05-26 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-old.tmac (an-do-tag): Make margin characters work.
+ (an-header, an-p-footer): Use named environment.
+
+ * src/roff/troff/env.cpp (environment::copy): Copy margin character
+ node.
+
+2006-05-21 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trace.tmac (de1): Fix serious typo (.di -> .do) and minor
+ omissions.
+
+2006-05-11 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/roff/groff/groff.man: Remove superfluous word `intermediate'.
+
+2006-05-10 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ * src/roff/groff/groff.man: Update copyright notice.
+ Improved wording to describe effect of `-Z' option.
+
+2006-05-06 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/www.tmac: Decorate `.ds' with trailing `\"' where missing.
+ Normalize handling of `"' in arguments.
+ (PIMG): Remove debug message.
+ Simplify code.
+
+2006-05-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/post-html.cpp (page::add_and_encode): Don't
+ swallow character immediately after `\[...]'.
+ Simplify code.
+
+2006-05-02 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/www.tmac (PIMG): Fix the HTML device specific components.
+
+2006-05-02 Larry Kollar <kollar@alltel.net>
+
+ * tmac/www.tmac (PIMG): Really default to `-C' if the alignment
+ option is missing.
+
+2006-04-30 Michail Vidiassov <master@iaas.msu.ru>
+
+ * src/utils/afmtodit/afmtodit.pl: New option `-c' to add font
+ information as a comment in output.
+ * src/utils/afmtodit/afmtodit.man, NEWS: Document it.
+
+2006-04-26 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grohtml/post-html.cpp (html_printer::~html_printer):
+ Handle current_paragraph only if it is non-NULL.
+
+ * src/libs/libdriver/input.cpp (parse_x_command <'F'>, do_file
+ <'F'>): Use `get_extended_arg' to behave as documented. Reported by
+ Bill Ward <william.a.ward.jr@erdc.usace.army.mil>.
+
+
+ Surround the (pseudo) file name for the .pso request with `<' and
+ `>'.
+
+ * src/roff/troff/node.cpp (real_output_file, troff_output_file): Add
+ second parameter to `really_put_filename' and `put_filename'.
+ (troff_output_file::really_put_filename): Emit `<' and `>' around
+ filename if second argument is set.
+ * src/roff/troff/node.h: Updated.
+
+ * src/roff/troff/input.cpp (file_iterator::file_iterator,
+ file_iterator::set_location): Update to changes in node.cpp.
+
+2006-04-25 Tetsurou Okazaki <okazaki@FreeBSD.org>
+
+ * src/preproc/preconv/preconv.cpp (do_file): Fix conditional
+ preprocessor expression (I18N -> HAVE_ICONV).
+ (main): Fix handling of option `-h'.
+ Fix conditional preprocessor expression.
+
+2006-04-04 Werner LEMBERG <wl@gnu.org>
+
+ Implement new number register `.br' which is set to 1 if a macro has
+ been called as .foo and to 0 if called as 'bar. This is useful for
+ -mtrace so that requests can be reliably traced too.
+
+ * src/roff/troff/input.cpp (input_iterator): Add virtual function
+ `get_break_flag'.
+ (macro_iterator): Add `with_break' member and `get_break_flag'
+ function.
+ Update constructors.
+ (input_stack): Add function `get_break_flag'.
+ (break_flag_reg): New number register class.
+ (input_init_requests): Register `.br'.
+
+ * src/roff/troff/TODO: Updated.
+
+ * tmac/trace.tmac: s/!!sp/!!!sp/.
+ Modify definitions of `de', `de1', `am', and `am1' to use \n[.br].
+
+ * docs/groff.texinfo (Requests), man/groff.man, man/groff_diff.man,
+ NEWS: Document it.
+
+2006-03-29 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cpp: s/must not/should not/ in warning
+ messages where appropriate.
+
+2006-03-28 Werner LEMBERG <wl@gnu.org>
+
+ * configure.ac: Call AC_PROG_EGREP.
+ * configure: Regenerated.
+
+ * Makefile.in (EGREP): New variable.
+ (MDEFINES): Add $(EGREP).
+
+ * src/roff/grog/grog.sh: Treat .TH between .TS and .TE properly
+ (bug reported by Robert Goulding <Goulding.2@nd.edu>).
+ Use @EGREP@.
+
+ * src/roff/grog/Makefile.sub (grog, grog.old): Use $(EGREP).
+
+2006-03-27 Werner LEMBERG <wl@gnu.org>
+
+ Add two requests `.device' and `.devicem' which are equivalent to
+ `\X' and `\Y', respectively.
+
+ * src/roff/troff/input.cpp (device_request, device_macro_request):
+ New functions.
+ (init_input_requests): Register them.
+
+ * doc/groff.texinfo (Postprocessor Access), man/groff_diff.man,
+ man/groff.man, NEWS: Document them.
+
+2006-03-27 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/roff/troff/input.cpp (encode_char): Emit special characters
+ for -Thtml as `\[...]'.
+ * src/devices/grohtml/post-html.cpp (page::add_and_encode): Updated.
+
+ * doc/groff.texinfo (Postprocessor Access) <\X>: Updated.
+
+2006-03-27 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/Makefile.sub (NORMALFILES, SPECIALFILES): Add various missing
+ files.
+
+2006-03-26 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Writing Macros): More documentation on
+ end-of-macro symbol of `.de'.
+ (Diversions): Minor addition to `.di' description.
+
+ * src/devices/grops/grops.man: Some clarifications regarding
+ insertion of PostScript snippets.
+
+2006-03-25 Michail Vidiassov <master@iaas.msu.ru>
+
+ Add rules to generate `symbolsl.afm'.
+
+ * font/devps/generate/zapfdr.sed,
+ font/devps/generate/symbolsl.awk: New files.
+
+ * font/devps/generate/Makefile (symbolfont, PRINTAFM): New
+ variables.
+ (SS, clean): Updated.
+ (freeeuro.afm): Use $(srcdir).
+ (symbolsl.afm): New rule.
+ (zapfdr.afm): Use zapfdr.sed.
+
+2006-03-22 Dwight Aplevich <aplevich@uwaterloo.ca>
+
+ * src/preproc/pic/pic.y (expr <INT>): Fix code.
+
+2006-03-22 Jrgen Grahn <jgrahn@algonet.se>
+
+ * tmac/sv.tmac: Add missing translations and activate support for
+ other macro packages.
+
+2006-03-21 Francis GUDIN <fgudin@nerim.net>
+
+ * tmac/doc-syms (Dx): New macro to identify DragonFly.
+ (doc-str-St--ieee1275-94, doc-str-St--isoC-amd1,
+ doc-str-St--isoC-tcor1, doc-str-St--isoC-tcor2): New standard
+ strings.
+ (doc-operating-system-FreeBSD-5.5, doc-operating-system-FreeBSD-7.0,
+ doc-operating-system-NetBSD-1.6.3, doc-operating-system-NetBSD-4.0
+ doc-operating-system-DragonFly-*): New operating system strings.
+
+ * tmac/groff_mdoc.man, NEWS: Document `Dx'.
+
+2006-03-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.y (object_spec THEN): For compatibility with
+ both DWB pic and dpic, make
+
+ right;
+ line then down;
+
+ equal to
+
+ right;
+ line right then down;
+
+ instead of
+
+ right;
+ line 0 then down;
+
+ * doc/pic.ms: Document this.
+
+2006-03-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/pic.ms: With permission of Eric Raymond, put it under the
+ GPL.
+
+ * NEWS: Updated.
+
+2006-03-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/pic/pic.y (expr <INT>): Really return integer part.
+
+ * src/preproc/pic/objects.cpp (object_spec::make_line): Handle `at'
+ attribute in combination with `with'. Bug reported by Jennifer
+ Sayers <jenjen@mail.usyd.edu.au>.
+
+2006-03-19 Miklos Somogyi <msom@netspace.net.au>
+
+ * doc/groff.texinfo (Manipulating Spacing): Improve documentation of
+ `.sp'.
+
+2006-03-18 Werner LEMBERG <wl@gnu.org>
+
+ * LICENSE: Renamed to...
+ * LICENSES: This. Collect all licensing information in this file.
+ * tmac/README, src/libs/snprintf/README: Removed.
+
+ * src/devices/grops/grops.man: Add section how to install fonts.
+
+ * src/utils/xtotroff/xtotroff.c: Add GPL.
+
+2006-03-17 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm (.y.cpp): Fix #line arguments in output.
+
+2006-03-13 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Mention default length of text blocks.
+
+ * tmac/doc-common (Os): Add more Darwin versions.
+ * tmac/groff_mdoc.man: Document them.
+
+ * doc/groff.texinfo (Operators in Conditionals): Mention that `c'
+ works with \N'...' also.
+ * man/groff_diff.man: Ditto. Remove use of future tense where
+ possible.
+
+2006-03-12 Michail Vidiassov <master@iaas.msu.ru>
+
+ * font/devps/generate/make-zapfdr, font/devps/symbolsl.ps,
+ font/devps/zapfdr.ps: Add `%%EndComments' line.
+
+2006-03-10 Larry Kollar <kollar@alltel.net>
+
+ * doc/groff.texinfo (Headers and footers): Document PT, HD, and BT.
+
+2006-03-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cpp (ps_printer::do_exec, ps_printer::do_def,
+ ps_printer::do_mdef): Overlong lines now cause a warning message,
+ not an error.
+
+2006-03-09 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/generate/make-zapfdr: New script for generating
+ `zapfdr.ps'.
+
+2006-03-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.css (pre): Fix `background-color' value.
+
+2006-03-04 Larry Kollar <kollar@alltel.net>
+
+ * tmac/groff_ms.man: Document PT, HD, and BT.
+
+2006-03-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/node.cpp (make_glyph_node): Improve warning message
+ for single-letter glyph names.
+
+2006-03-02 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/sv.tmac: New file; currently holding only the Swedish strings
+ for -mm.
+ * tmac/hyphen.sv: New hyphenation pattern file for Swedish, taken
+ from CTAN.
+ * tmac/README: Updated.
+
+2006-02-27 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/trans.tmac (Liec, Letdate, Letns!14): Add it (for -mm).
+ * tmac/fr.tmac: Add French translations.
+
+ * tmac/composite.tmac: Add entry for `:'.
+
+2006-02-26 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (HTMLEXAMPLEFILESALL): New variable.
+ (CLEANADD): Use it.
+ (install_html, uninstall_sub): Updated.
+
+2006-02-26 Bruno Haible <bruno@clisp.org>
+
+ Introduce Unicode fonts.
+
+ * font/devhtml/DESC.proto: Mark as unicode.
+ * font/devhtml/R.proto: Remove all charset entries that are already
+ in glyphuni.cpp.
+ * font/devutf8/DESC.proto: Mark as unicode.
+ * font/devutf8/R.proto: Remove all charset entries.
+ * src/include/font.h (font): New static field `is_unicode'.
+ Change order of fields.
+ * src/libs/libgroff/font.cpp: Include unicode.h.
+ (font::font): Update for changed order of fields.
+ (font::contains, font::get_width, font::get_height, font::get_depth,
+ font::get_italic_correction, font::get_left_italic_correction,
+ font::get_subscript_correction, font::get_character_type,
+ font::get_code, font::get_special_device_encoding): Handle both the
+ explicitly enumerated glyphs and use general code for Unicode fonts.
+ (font::load): Make the charset section optional when the font is
+ declared unicode.
+ (font::load_desc): Recognize the `unicode' attribute.
+ * src/libs/libgroff/fontfile.cpp (font::is_unicode): New variable.
+
+2006-02-26 Claudio Fontana <claudio@gnu.org>
+
+ * Makefile.in: Add comment about DESTDIR.
+
+ * Makefile.sub: Add DESTDIR to install and uninstall targets
+ to support staged installations.
+ * Makefile.comm: Likewise.
+ * doc/Makefile.sub: Likewise.
+ * contrib/eqn2graph/Makefile.sub: Likewise.
+ * contrib/grap2graph/Makefile.sub: Likewise.
+ * contrib/pic2graph/Makefile.sub: Likewise.
+ * src/devices/xditview/Makefile.sub: Likewise.
+ * src/preproc/eqn/Makefile.sub: Likewise.
+ * src/roff/grog/Makefile.sub: Likewise.
+ * src/roff/nroff/Makefile.sub: Likewise.
+ * src/utils/afmtodit/Makefile.sub: Likewise.
+ * src/utils/indxbib/Makefile.sub: Likewise.
+ * tmac/Makefile.sub: Likewise.
+
+2006-02-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
+ for \-.
+ Remove commented out entries for \' and \` (there are no such glyph
+ names).
+
+ * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
+ commented out entries for \' and \`.
+
+
+ * */*: s/legal/valid/ where appropriate.
+
+2006-06-23 Werner LEMBERG <wl@gnu.org>
+
+ * font/devhtml/R.proto, font/devutf8/R.proto: Remove incorrect \'
+ and \` entries.
+
+2006-02-22 Werner LEMBERG <wl@gnu.org>
+
+ Remove all remaining traces from the `shc' glyph.
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
+ src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
+ entry for `shc'.
+
+ * font/devlatin1/R.proto, font/devcp1046/R.proto: Replace `shc'
+ entry with unnamed glyph.
+
+ * tmac/html/tmac: Remove `shc' entry from call to `.cflags'.
+
+ * src/preproc/preconv/preconv.cpp (unicode_entity): Handle U+00AD
+ specially.
+
+2006-02-22 Bruno Haible <bruno@clisp.org>
+
+ Concretize the `glyph' datatype.
+
+ * src/include/font.h (glyph): Remove class.
+ (glyph): Renamed from struct `glyphinfo'.
+ (glyph_to_index): New inline function.
+ (glyph_to_name): Make extern, not inline.
+ (glyph_to_number): Update.
+ (font): Use `glyph *' instead of `glyph'.
+
+ * src/libs/libgroff/nametoindex.cpp (charinfo): Inherit from class
+ `glyph'. Make `name' field public.
+ (character_indexer, number_to_glyph, name_to_glyph): Use `glyph *'
+ instead of `glyph'.
+ (glyph_to_name): Renamed from `glyph::glyph_name'.
+
+ * src/roff/troff/charinfo.h (charinfo): Inherit from class `glyph'.
+ Use `glyph *' instead of `glyph'.
+
+ * src/roff/troff/input.cpp (name_to_glyph, number_to_glyph): Use
+ `glyph *' instead of `glyph'.
+ (glyph_to_name): Renamed from `glyph::glyph_name'.
+
+ * src/libs/libgroff/font.cpp: Use `glyph *' instead of `glyph',
+ and `glyph_to_index' instead of `glyph::glyph_index'.
+
+ * src/include/printer.h (printer): Use `glyph *' instead of `glyph'.
+ * src/libs/libdriver/printer.cpp: Likewise.
+ * src/devices/grodvi/dvi.cpp: Likewise.
+ * src/devices/grohtml/post-html.cpp: Likewise.
+ * src/devices/grolbp/lbp.cpp: Likewise.
+ * src/devices/grolj4/lj4.cpp: Likewise.
+ * src/devices/grops/ps.cpp: Likewise.
+ * src/devices/grotty/tty.cpp: Likewise.
+
+2006-02-22 Werner LEMBERG <wl@gnu.org>
+
+ * font/devdvi/generate/tc.map: Add `sr' glyph.
+ * font/devdvi/*TC: Regenerated.
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Use entry
+ for `sqrt'.
+
+2006-02-21 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man: Explain `***' marker.
+
+2006-02-17 Bruno Haible <bruno@clisp.org>
+
+ * src/libs/libgroff/nametoindex.cpp (character_indexer): Rename
+ methods and fields from *_index to *_glyph.
+ (character_indexer::named_char_glyph): Test for `charNNN' name
+ here...
+ (name_to_glyph): ... not here.
+
+2006-02-17 Bruno Haible <bruno@clisp.org>
+
+ * src/include/font.h (name_to_glyph): Renamed from
+ font::name_to_index.
+ (number_to_glyph): Renamed from font::number_to_index.
+ (glyph_to_name): Renamed from font::index_to_name.
+ (glyph_to_number): Renamed from font::index_to_number.
+ * src/libs/libgroff/nametoindex.cpp: Likewise.
+ * src/roff/troff/charinfo.h (charinfo::as_glyph): Renamed from
+ charinfo::get_index.
+
+ * src/roff/troff/input.cpp: All callers changed.
+ * src/roff/troff/node.cpp: Likewise.
+ * src/libs/libgroff/font.cpp: Likewise.
+ * src/devices/grops/ps.cpp: Likewise.
+ * src/devices/grohtml/post-html.cpp: Likewise.
+ * src/libs/libdriver/printer.cpp: Likewise.
+
+2006-02-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/ptable.h, src/include/itable.h
+ (NEXT_PTABLE_SIZE_DEFINED): Use it to avoid multiple declaration
+ of external symbol `next_ptable_size' (used by both header files).
+
+2006-02-15 Bruno Haible <bruno@clisp.org>
+
+ * src/include/font.h (glyphinfo): New class.
+ (glyph): Change internal representation.
+ Change constructor signature.
+ New method glyph::glyph_number().
+ (glyph::glyph, glyph glyph::undefined_glyph, glyph::glyph_index,
+ glyph::operator==, glyph::operator!=): Update.
+ (font::index_to_name, font::index_to_number): New functions.
+
+ * src/include/itable.h: New file, based on src/include/ptable.h.
+
+ * src/libs/libgroff/nametoindex.cpp: Include itable.h.
+ (class charinfo): New class.
+ (class character_indexer): Change table result type from `int' to
+ `class charinfo'.
+ Add table with integer key.
+ (character_indexer::character_indexer): Update.
+ (character_indexer::ascii_char_index): Update.
+ (character_indexer::numbered_char_index): Use NULL as name, not a
+ string starting with a space.
+ (character_indexer::named_char_index): Update.
+ (font::number_to_index, font::name_to_index): Remove no-op cast.
+ (glyph::glyph_name): New method.
+ * src/roff/troff/charinfo.h (class charinfo): Inherit from class
+ glyphinfo.
+ (NUMBERED): Remove flag bit.
+ (charinfo::numbered, charinfo::get_index): Update.
+
+ * src/roff/troff/input.cpp (charinfo::charinfo): Update.
+ (charinfo::set_number, charinfo::get_number): Update.
+ (glyph::glyph_name): New method.
+
+2006-02-15 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list): Fix
+ entries for `>>', `<<', `*f', and `+f'. Reported by Bruno.
+
+2006-02-13 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/prologue.ps (RE): Check `UniqueID' also, similar to
+ dvips.
+
+2006-02-11 Werner LEMBERG <wl@gnu.org>
+
+ * src/include/font.h: s/glyph_t/glyph/.
+ Update all callers.
+
+ * src/devices/grotty/tty.cpp: s/glyph/tty_glyph/.
+ s/output_character_t/output_character/.
+
+2006-02-11 Bruno Haible <bruno@clisp.org>
+
+ New accessor method glyph_t::glyph_name().
+
+ * src/include/ptable.h (declare_ptable): Add a return value to the
+ `define' method, and declare a `lookupassoc' method.
+ (implement_ptable): Return the stored key in `define'. Implement
+ lookupassoc.
+ * src/include/font.h (glyph_t): Add `name' field. Add an argument
+ to the constructor.
+ (glyph_t::glyph_name): New method.
+
+ * src/libs/libgroff/nametoindex.cpp (character_indexer): Change
+ return type of methods and field member type to glyph_t.
+ (character_indexer::character_indexer): Update.
+ (character_indexer::ascii_char_index): Allocate a name for the
+ glyph.
+ Return a glyph_t with name.
+ (character_indexer::numbered_char_index): Return a glyph_t without a
+ name.
+ (character_indexer::named_char_index): Return a glyph_t with a name.
+ (font::number_to_index, font::name_to_index): Update.
+
+ * src/roff/troff/input.cpp (charinfo::charinfo): Use the symbol as
+ the glyph's name.
+
+2006-02-11 Bruno Haible <bruno@clisp.org>
+
+ * src/devices/grotty/tty.cpp (output_character_t): New type.
+ (tty_printer::make_bold, tty_printer::add_char,
+ tty_printer::put_char): Change argument type to output_character_t.
+ (crossings): Change element type to output_character_t.
+
+2006-02-11 Bruno Haible <bruno@clisp.org>
+
+ Make the glyph data type abstract.
+
+ * src/include/font.h (glyph_t): New class.
+ (name_to_index, number_to_index): Change return type to glyph_t.
+ (font::contains, font::get_width, font::get_height, font::get_depth,
+ font::get_character_type, font::get_kern, font::get_skew,
+ font::get_italic_correction, font::get_left_italic_correction,
+ font::get_subscript_correction, font::get_code,
+ font::get_special_device_encoding, font::add_entry,
+ font::copy_entry, font::add_kern, font::hash_kern): Change argument
+ type to glyph_t.
+
+ * src/libs/libgroff/font.cpp (font_kern_list): Change members
+ type and constructor argument types to glyph_t.
+ (font::contains, font::get_width, font::get_height, font::get_depth,
+ font::get_character_type, font::get_kern, font::get_skew,
+ font::get_italic_correction, font::get_left_italic_correction,
+ font::get_subscript_correction, font::get_code,
+ font::get_special_device_encoding, font::add_entry,
+ font::copy_entry, font::add_kern, font::hash_kern): Change argument
+ type to glyph_t.
+ (font::load): Use glyph_t variables.
+
+ * src/libs/libgroff/nametoindex.cpp (name_to_index,
+ number_to_index): Change return type to glyph_t.
+
+ * src/roff/troff/charinfo.h (charinfo::index): Change type to
+ glyph_t.
+ (charinfo::get_index): Change return type to glyph_t.
+
+ * src/roff/troff/env.cpp: Include font.h.
+
+ * src/roff/troff/node.cpp: Include font.h before charinfo.h.
+
+ * src/roff/troff/input.cpp: Include font.h before charinfo.h.
+ (charinfo::charinfo): Update.
+ (name_to_index, number_to_index): Change return type to glyph_t.
+
+ * src/include/printer.h (printer::set_char_and_width): Change return
+ type to glyph_t.
+
+ * src/libs/libdriver/printer.cpp (printer::set_char_and_width):
+ Change return type to glyph_t.
+
+ * src/devices/grodvi/dvi.cpp (dvi_printer::set_char): Change
+ argument type to glyph_t.
+
+ * src/devices/grohtml/post-html.cpp (page::add_and_encode): Update.
+ (html_printer::space_glyph): Renamed from space_char_index.
+ (html_printer::add_to_sbuf, html_printer::sbuf_continuation,
+ html_printer::overstrike, html_printer::set_char): Change argument
+ type to glyph_t.
+ (html_printer::set_char_and_width): Change return type to glyph_t.
+
+ * src/devices/grolbp/lbp.cpp (lbp_printer::set_char): Change
+ argument type to glyph_t.
+
+ * src/devices/grolj4/lj4.cpp (lj4_printer::set_char): Change
+ argument type to glyph_t.
+
+ * src/devices/grops/ps.cpp (ps_printer::space_glyph): Renamed from
+ space_char_index.
+ (ps_printer::set_subencoding, ps_printer::set_char): Change argument
+ type to glyph_t.
+
+ * src/devices/grotty/tty.cpp (tty_printer::set_char): Change
+ argument type to glyph_t.
+
+2006-02-11 Bruno Haible <bruno@clisp.org>
+
+ * src/roff/troff/input.cpp (font::name_to_index): Never return a
+ negative value.
+
+ * src/libs/libgroff/font.cpp (font::load): Remove failure tests for
+ font::name_to_index.
+
+2006-02-10 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (Assigning Formats): Number registers are always
+ interpolated.
+ Apply some rephrasing, contributed by Michael Burt.
+
+2006-02-07 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/fr.tmac <ms>: Set `HY' register.
+
+2006-02-07 Werner LEMBERG <wl@gnu.org>
+
+ Add framework for simple adaptation of the main macro packages (mm,
+ me, ms, mom) to different locales. In particular, add support for
+ French. For activation, simply use `-mfr' as the last macro
+ package. This feature has been contributed by Fabrice Mnard
+ <menard.fabrice@wanadoo.fr>.
+
+ * tmac/fr.tmac, tmac/trans.tmac, tmac/hyphen.fr, tmac/LOCALIZATION:
+ New files.
+ * tmac/README: Mention hyphen.fr.
+ * man/groff_tmac.man: Mention fr.tmac.
+ * NEWS: Updated.
+
+2006-01-27 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_font.man: Updated documentation of `entity_name' field.
+ Avoid future tense.
+
+2006-01-27 Bruno Haible <bruno@clisp.org>
+
+ * font/devhtml/R.proto: Remove the entity names from the font's
+ special_encoding_encoding column.
+ * src/devices/grohtml/post-html.cpp (get_html_entity): New function,
+ handling the entity names here.
+ (get_html_translation): Use it. Change return type to `const
+ char *'.
+ (page::add_and_encode): Update, removing a useless cast.
+
+2006-01-26 Werner LEMBERG <wl@gnu.org>
+
+ This change is based on a patch by Bruno Haible <bruno@clisp.org>.
+
+ * src/include/device.h: Add comments.
+ * src/include/font.h: Add comments.
+ * src/include/unicode.h: Likewise.
+ * src/include/ptable.h, src/libs/libgroff/ptable.cpp: Likewise.
+
+2006-01-26 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Suppress `.st' request emission by `grn'.
+
+ * src/preproc/grn/main.cpp (USE_ST_REQUEST): New macro.
+ (conv): Use it.
+
+2006-01-22 Werner LEMBERG <wl@gnu.org>
+
+ * install-sh: New version; taken from texinfo CVS.
+
+2006-01-21 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/preconv/preconv.cpp (main): Set program_name. Bug
+ reported by Alexander E. Patrakov <patrakov@ums.usu.ru>.
+
+2006-01-19 Bruno Haible <bruno@clisp.org>
+
+ Let `make -k install' install more files.
+
+ * Makefile.in (MAKE_K_FLAG): New variable. Use it everywhere where
+ $(MAKE) and $(MDEFINES) are used.
+ (CPROGDIRS): Remove $(XPROGDIRS). Treat $(XPROGDIRS) like
+ $(CPROGDIRS) everywhere.
+ ($(DEVDIRS) $(XDEVDIRS) $(OTHERDEVDIRS) $(TTYDEVDIRS)): Don't depend
+ on $(XPROGDIRS).
+ ($(OTHERDIRS)): Likewise.
+
+
+ * src/devices/grohtml/post-html.cpp (get_html_translation): Remove
+ failure test for font::name_to_index -- it can never fail.
+
+2006-01-19 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/grops.man: Fix section on creating EPS files.
+ Don't use future time in manual.
+ Other minor fixes.
+
+2006-01-15 Gaius Mulley <gaius@glam.ac.uk>
+
+ * tmac/www.tmac: New macro LINKSTYLE which allows users to set
+ various typographical URL attributes for non-HTML devices.
+
+ * tmac/groff_www.man: Document LINKSTYLE.
+
+2006-01-11 Werner LEMBERG <wl@gnu.org>
+
+ * configure.ac: Test for getc_unlocked (needed for localcharset).
+ * configure, src/include/config.hin: Regenerated.
+
+ * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Define
+ ENABLE_RELOCATABLE.
+
+ * src/libs/libgroff/relocatable.h: New dummy header file for
+ localcharset.c.
+
+ * src/libs/libgroff/localcharset.c: Updated to (unchanged) CVS
+ gnulib version.
+
+2006-01-10 Bruno Haible <bruno@clisp.org>
+
+ Work around unportability of nl_langinfo(CODESET).
+
+ * m4/glibc21.m4: New file, from gnulib.
+ * Makefile.sub (M4MACROS): Add m4/glibc21.m4.
+ * configure.ac: Also test for stddef.h, and invoke jm_GLIBC21.
+ * Makefile.in (HOST, GLIBC21): New variables.
+ (MDEFINES): Pass them to subdirectories.
+ * src/include/relocate.h (relocatep): Define with C linkage.
+ * src/include/localcharset.h: New file, from gnulib.
+ * src/libs/libgroff/localcharset.c: New file, from gnulib with a
+ modification for relocate().
+ * src/libs/libgroff/config.charset: New file, from gnulib.
+ * src/libs/libgroff/ref-add.sin: New file, from gnulib.
+ * src/libs/libgroff/ref-del.sin: New file, from gnulib.
+ * src/libs/libgroff/Makefile.sub (EXTRA_CFLAGS): Also define LIBDIR.
+ (OBJS): Add localcharset.o.
+ (CSRCS): Add localcharset.c.
+ (all): Add dependencies to charset.alias, ref-add.sed, ref-del.sed.
+ (charset.alias): New rule.
+ (PACKAGE): New variable.
+ (ref-add.sed, ref-del.sed): New rules.
+ (MKINSTALLDIRS): New variable.
+ (install_data): Depend on install_charset_data.
+ (install_charset_data): New rule for creating or updating
+ charset.alias.
+ (uninstall_sub): Depend on uninstall_charset_data.
+ (uninstall_charset_data): New rule for uninstalling or updating
+ charset.alias.
+ * src/preproc/preconv/preconv.cpp: Include localcharset.h instead
+ of <langinfo.h>.
+ (main): Initialize default_encoding from locale_charset() instead of
+ nl_langinfo(CODESET).
+
+ * aclocal.m4, configure, src/include/config.hin: Regenerated.
+
+2006-01-10 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/preconv/preconv.cpp (conversion_iconv): Use
+ ICONV_CONST in call to iconv. Reported by Robert Goulding.
+
+2006-01-07 Werner LEMBERG <wl@gnu.org>
+
+ * font/devps/generate/freeeuro.sfd: Run auto-hinter with recent
+ fontforge version.
+ Bump font version to 001.001.
+
+ * font/devps/generate/Makefile (freeeuro.afm, freeeuro.pfa):
+ Call fontforge, not pfaedit.
+
+ * font/devps/freeeuro.afm, font/devps/freeeuro.pfa: Regenerated.
+
+2006-01-05 Ruslan Ermilov <ru@FreeBSD.org>
+
+ * tmac/doc-common: Add new FreeBSD and NetBSD versions.
+ * tmac/groff_mdoc.man: Updated.
+
+2006-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/preconv/preconv.cpp: s/debug/debug_flag/.
+ (raw_flag): New global variable.
+ (do_file): Use .lf to set file name (if `raw_flag' isn't set).
+ Don't pass BOM to `conversion_utf8'.
+ (usage): Updated.
+ (main): Handle `-r' command line switch to set `raw_flag'.
+ (get_BOM): Fix encodings in `BOM_table'.
+
+ * src/preproc/preconv/preconv.man: New file. Not complete yet.
+ * src/preproc/proconv/Makefile.sub (MAN1): New variable.
+
+2006-01-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/preconv/preconv.cpp (emacs_to_mime): As suggested by
+ Bruno, comment out most encodings to support only a small set of
+ coding tags, thus reducing potential problems with legacy encodings
+ and character sets in the future.
+ Add many XEmacs coding tags (now commented out).
+ Add `cp1047'.
+ (check_encoding_tag): Renamed to...
+ (check_coding_tag): This.
+ (get_BOM): Return encoding as specified by BOM.
+ Test for UTF32-LE too.
+ (do_file): Don't check for coding tag if a BOM has been found.
+
+2006-01-03 Bruno Haible <bruno@clisp.org>
+
+ * m4/groff.m4: Renamed from aclocal.m4.
+ * m4/codeset.m4: New file, from gnulib.
+ * m4/iconv.m4: New file, from gnulib.
+ * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from
+ gnulib.
+ * config.rpath: New file, from gnulib.
+ * config.guess, config.sub: New files, from gnulib.
+ * Makefile.sub (M4MACROS): New variable.
+ (configure): Fix typo.
+ (aclocal.m4): New rule.
+ (stamp-h.in): Depend on aclocal.m4.
+ * configure.ac: Invoke AM_ICONV and AM_LANGINFO_CODESET.
+ * Makefile.in (LIBICONV): New variable.
+ (MDEFINES): Pass it to recursive makes.
+ * src/preproc/preconv/preconv.cpp: Use HAVE_LANGINFO_CODESET and
+ HAVE_ICONV instead of I18N macro.
+ * src/preproc/preconv/Makefile.sub (EXTRA_LDFLAGS): New variable.
+
+ * aclocal.m4, configure, src/include/config.hin: (Re)generated.
+
+2006-01-03 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.in (webpage.html): Simplify.
+ * doc/Makefile.sub (webpage.html): Synchronize with doc/Makefile.in.
+ * doc/webpage.ms, tmac/groff_www.man, tmac/www.tmac: Minor updates.
+
+2006-01-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-common (Os): Add some Darwin versions.
+ * tmac/groff_mdoc.man: Document them.
+
+2006-01-01 Bruno Haible <bruno@clisp.org>
+
+ * src/preproc/preconv/preconv.cpp (emacs_to_mime): Various
+ corrections:
+ . Don't map ascii to latin-1.
+ . Don't use IBMxxx encodings but cpxxx for portability.
+ . Map cp932, cp936, cp949, cp950 to itself.
+ (emacs2mime): Protect calls to strcasecmp.
+ (conversion_iconv): Add missing call to iconv_close.
+ (do_file): Emit error message in case of unsupported encoding.
+
+2005-12-31 Werner LEMBERG <wl@gnu.org>
+
+ Integrate preconv into the groff binary. Changes based on a patch
+ from Michail Vidiassov.
+
+ * src/roff/groff/pipeline.h (MAX_COMMANDS): Increase by 1.
+
+ * src/roff/groff/groff.cpp (PRECONV_INDEX): New macro.
+ (SOELIM_INDEX): Updated.
+ (help, synopsis): Updated.
+ (main): Add command line options `-k' and `-K enc' to select
+ encoding.
+ Add support for GROFF_ENCODING environment variable.
+
+ * src/roff/groff/groff.man: Updated and revised.
+
+
+ Start with autoconf support for preconv.
+
+ * configure.ac: Call AC_C_BIGENDIAN.
+ * configure, src/include/config.hin: Regenerated.
+
+2005-12-30 Werner LEMBERG <wl@gnu.org>
+
+ New preprocessor `preconv' to convert input encodings to something
+ groff can understand. Not yet integrated within groff. Proper
+ autoconf stuff is missing too.
+
+ Tomohiro Kubota has written a first draft of this program, and some
+ ideas have been reused (while almost no code has been taken
+ actually).
+
+ * src/preproc/preconv/preconv.cpp. src/preproc/preconv/Makefile.sub:
+ New files.
+
+ * MANIFEST, Makefile.in (CCPROGDIRS), test-groff.in
+ (GROFF_BIN_PATH): Add preconv.
+
+2005-12-12 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_MAKEINFO): Fix regexps to be POSIX conformant.
+ In particular, don't use `\+' since it is a GNU sed extension.
+
+ * configure: Regenerated.
+
+2005-12-09 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/make-uniuni: New script to generate uniuni.cpp.
+
+ * src/libs/libgroff/uniuni.cpp: Regenerated, using data from Unicode
+ 4.1.0.
+
+
+ * src/utils/afmtodit/make-afmtodit-tables: New script to generate
+ afmtodit.tables.
+
+ * src/utils/afmtodit/afmtodit.tables: New file, representing Unicode
+ 4.1.0 data.
+
+ * src/utils/afmtodit/afmtodit.pl (%unicode_decomposed,
+ %AGL_to_unicode): Removed. Replace it with a tag.
+
+ * src/utils/afmtodit/Makefile.sub (afmtodit): Adjust sed expression
+ to replace tag with actual file contents.
+
+2005-12-08 Werner LEMBERG <wl@gnu.org>
+
+ The change 2005-06-20 can indeed cause problems, so we follow the
+ advice by using marks.
+
+ * font/devps/prologue.ps (PBEGIN): Use `mark'.
+ (PEND): Use `cleartomark'.
+
+2005-12-07 Michail Vidiassov <master@iaas.msu.ru>
+
+ * src/utils/afmtodit.pl: Fix kerning output to avoid warnings for
+ glyphs which have kern values but aren't handled (glyph variants,
+ for example).
+
+2005-12-02 Werner LEMBERG <wl@gnu.org>
+
+ * src/devices/grops/ps.cpp (ps_printer::get_subfont): Use correct
+ subfont index. Reported by Michail Vidiassov <master@iaas.msu.ru>.
+
+2005-11-28 Gaius Mulley <gaius@glam.ac.uk>
+
+ * doc/Makefile.in: Separate rule for webpage.html so that extra
+ command line options can be passed to grohtml.
+ * doc/groff.css: Change all margins to 0%.
+ * doc/webpage.ms: Now use new macros ALN, LNS, and LNE so that left
+ navigation is exploited. Also update webpage to contain new
+ sections on licenses, mailing lists, cvs/ftp access, groff
+ dependencies, and bug reports.
+ * tmac/groff_www.man: Document the new macros ALN, LNS, and LNE.
+ * tmac/www.tmac: Implement the new macros ALN, LNS, and LNE.
+
+2005-11-25 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::do_file_components): Add fputs calls to emit the
+ head contents and shut down the head tag whenever a new file
+ component is generated.
+
+2005-11-22 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp (html_printer::flush_page): Add
+ call to flush_text to flush any outstanding html tags on the
+ paragraph stack.
+
+2005-11-18 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_MAKEINFO): Use `groff.info' in tests.
+ Announce makeinfo version.
+ * configure: Regenerated.
+
+2005-11-18 Mike Frysinger <vapier@gentoo.org>
+
+ * Makefile.in: Declare proper dependencies between make targets.
+
+ * doc/Makefile.in: Rename groff info page to `groff.info'.
+ * doc/Makefile.sub: Likewise.
+ * doc/groff.texinfo: Likewise.
+
+2005-11-17 Peter O'Gorman <mlists@thewrittenword.com>
+
+ * src/utils/pfbtops/pfbtops.c, src/utils/xtotroff/xtotroff.c: Move
+ definition of __GETOPT_PREFIX to the beginning of file to ensure
+ that it is defined even on platforms where getopt.h is already
+ included by other header files.
+
+2005-11-10 Gaius Mulley <gaius@glam.ac.uk>
+
+ * src/devices/grohtml/post-html.cpp (html_printer::do_heading):
+ Reset font to NULL to ensure that a font block is recreated during
+ the next paragraph.
+
+2005-11-04 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_MAKEINFO): Fix sed expression.
+ * configure: Regenerated.
+
+2005-10-27 Werner LEMBERG <wl@gnu.org>
+
+ * aclocal.m4 (GROFF_MAKEINFO): New function for checking whether
+ makeinfo 4.8 or newer is available.
+ * configure.ac: Call GROFF_MAKEINFO.
+ * configure: Regenerated.
+
+ * Makefile.in (MAKEINFO): Use autoconf variable.
+ (MDEFINES): Add MAKEINFO.
+
+ * doc/Makefile.in (MAKEINFO): Use autoconf variable.
+ * doc/Makefile.sub (MAKEINFO): Remove.
+
+2005-10-26 Werner LEMBERG <wl@gnu.org>
+
+ * REVISION: Set to 3.
+
+2005-10-17 Werner LEMBERG <wl@gnu.org>
+
+ Mention $MANPAGER variable used with some `man' systems.
+
+ * doc/webpage.ms, src/devices/grotty/grotty.man, NEWS: Updated.
+
+2005-09-13 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/hyphenex.us: New version (`ushyphex.tex' from ftp.dante.de).
+
+Copyright 2005-2009 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:
+coding: latin-1
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.121 b/ChangeLog.121
new file mode 100644
index 0000000..80f4197
--- /dev/null
+++ b/ChangeLog.121
@@ -0,0 +1,788 @@
+
+Version 1.21 released
+=====================
+
+ * NEWS, REVISION, VERSION, doc/groff.texinfo, doc/webpage.ms:
+ Updated.
+ * aclocal.m4, configure: Regenerated.
+
+2010-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * doc/webpage.ms: Updated.
+
+2010-12-31 Werner LEMBERG <wl@gnu.org>
+
+ * configure: Regenerate with autoconf 2.67.
+
+2010-12-31 Werner LEMBERG <wl@gnu.org>
+
+ Update various scripts.
+
+ * config.guess, config.sub: Update from `config' repository.
+ * install-sh, mkinstalldirs: Update from `gnulib' repository.
+
+2010-12-31 Werner LEMBERG <wl@gnu.org>
+
+ Update texinfo.tex.
+
+ * doc/texinfo.tex: Update from `texinfo' repository.
+
+2010-12-30 Werner LEMBERG <wl@gnu.org>
+
+ Call texi2dvi with correct makeinfo binary.
+
+ * doc/Makefile.in (.texinfo.dvi, .texinfo.pdf): Use $(MAKEINFO).
+
+2010-12-30 Werner LEMBERG <wl@gnu.org>
+
+ Documentation updates.
+
+ * NEWS, PROBLEMS, MANIFEST: Update.
+
+2010-12-26 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <ueno@unixuser.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ Remove compiler warning.
+
+ * src/libs/libgroff/relocate.cpp (msw2posixpath): Remove redundant
+ dereferencing.
+
+2010-12-16 Daiki Ueno <ueno@unixuser.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <ueno@unixuser.org>
+ Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ `.class' must not emit empty lines.
+
+ * src/roff/troff/input.cpp (define_class): Add missing `skip_line'
+ calls.
+
+2010-12-06 UKAI Fumitoshi <ukai@debian.or.jp>
+ Colin Watson <cjwatson@debian.org>
+
+ Add Japanese localization.
+
+ * tmac/ja.tmac: New file.
+ * tmac/Makefile.sub (NORMALFILES): Updated.
+
+2010-12-06 Colin Watson <cjwatson@debian.org>
+ Daiki Ueno <ueno@unixuser.org>
+
+ 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 <vector> and <utility>.
+ (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 <anton.txt@gmail.com>
+
+ [grohtml]: Improve texinfo documentation.
+
+ * doc/groff.texinfo (grohtml): Insert man page description, slightly
+ extended.
+
+2010-11-11 Werner LEMBERG <wl@gnu.org>
+
+ Fix crash in tbl with option `nospaces'.
+ Reported by Louis Guillaume <louis@zabrico.com>.
+
+ * 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 <uqs@spoerlein.net>
+
+ [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 <uqs@spoerlein.net>
+
+ [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 <anton.txt@gmail.com>
+
+ [grohtml] Improve man page.
+
+ * src/devices/grohtml/grohtml.man: Document two-pass handling of
+ input data.
+
+2010-09-19 Werner LEMBERG <wl@gnu.org>
+
+ [groff] Don't use prefix for preconv.
+ Reported by Dorai Sitaram <ds26gte@yahoo.com>
+
+ * src/roff/groff/groff.cpp (main): Fix it.
+
+2010-07-28 Larry Kollar <kollar@windstream.net>
+
+ * doc/groff.texinfo, man/groff.man: Document `!' operator better.
+
+2010-06-28 Jan Vcelak <jvcelak@redhat.com>
+
+ * 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 <lawrence.jones@siemens.com>
+
+ * man/groff_diff.man: Document \n[.P].
+
+2010-06-04 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS: Updated.
+
+2010-06-04 Denis M. Wilson <dmw@oxytropis.plus.com>
+
+ 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 <lawrence.jones@siemens.com>
+
+ * man/groff_diff.man: Document \n[.O].
+
+2010-05-30 Werner LEMBERG <wl@gnu.org>
+
+ Fix metric files for devps families A, BM, and font ZCMI.
+ Problem reported by Denis M. Wilson <dmw@oxytropis.plus.com>.
+
+ * 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 <wl@gnu.org>
+
+ Don't use obsolete intermediate output command `F'.
+ Reported by Krzysztof Zelechowski <giecrilj@stegny.2a.pl>
+
+ * src/roff/troff/nodes.cpp (troff_output_file::really_put_filename):
+ Replace `F' command with `x F'.
+
+2010-05-24 Werner LEMBERG <wl@gnu.org>
+
+ * PROBLEMS: Document that mdoc doesn't work with test-groff.
+ Reported by Krzysztof Zelechowski <giecrilj@stegny.2a.pl>
+
+2010-05-22 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <giecrilj@stegny.2a.pl>
+ in Savannah bug #29895.
+
+ * src/devices/grotty/tty.cpp (tty_printer): Remove `is_utf8' member.
+ Replace all occurrences with `font::is_unicode'.
+ (tty_printer::tty_printer): Remove argument.
+
+ * src/devices/grotty/grotty.man: Document `unicode' keyword.
+
+2010-05-19 Werner LEMBERG <wl@gnu.org>
+
+ 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 <cjwatson@debian.org>
+
+ 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 <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of \R escape.
+
+2010-03-10 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Document \n[DD] register.
+ Updated version stuff.
+
+2010-03-10 Larry Kollar <kollar@windstream.net>
+
+ * tmac/groff_ms.man: Document \n[DD] register.
+ Problem reported by Ted.
+
+2010-02-25 Colin Watson <cjwatson@debian.org>
+
+ 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 <wl@gnu.org>
+
+ Fix angle brackets in grohtml.
+ Reported by Colin Watson <cjwatson@debian.org>.
+
+ * src/devices/grohtml/post-html.cpp (get_html_entity): Add U+27E8
+ and U+27E9.
+
+2010-02-24 Colin Watson <cjwatson@debian.org>
+
+ 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 <kollar@windstream.net>
+
+ 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 <kollar@windstream.net>
+
+ * tmac/www.tmac (www-li-ol): Fix indentation if more than 10 items.
+
+2010-02-04 Larry Kollar <kollar@windstream.net>
+
+ 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 <bjarniig@rhi.hi.is>
+
+ 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 <kollar@alltel.net>
+
+ * tmac/www.tmac (www-li-{ul,ol,dl}): Handle `PORPHANS' register.
+
+2010-01-23 Larry Kollar <kollar@alltel.net>
+
+ PROBLEMS: Document some Mac OS issues.
+
+2010-01-02 Deri James <deri@chuzzlewit.demon.co.uk>
+
+ 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 <wl@gnu.org>
+
+ Make patterns with uppercase letters work.
+ Problem reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
+
+ * 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 <griffon26@kfk4ever.com>
+
+ 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 <pzanoni@mandriva.com>
+
+ * */*.cpp: Replace `printf(string);' with `printf("%s", string);'.
+
+2009-10-28 Werner LEMBERG <wl@gnu.org>
+
+ Document limitations with `#' characters, tbl, and eqn.
+ Problem reported by Michael Kain <mcain6925@comcast.net>.
+
+ * src/preproc/eqn/eqn.man, src/preproc/tbl/tbl.man: Do it.
+
+2009-10-26 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/doc-common (Dx): Define register.
+
+2009-10-26 Jörg Sonnenberger <joerg@britannica.bec.de>
+
+ 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 <jari.aalto@cante.net>
+
+ * src/roff/groff/groff.man: Point to troff(1) for `-w' and `-W'.
+
+2009-09-08 Werner LEMBERG <wl@gnu.org>
+
+ [troff]: Fix hyphenation problem with kerned letters.
+ Problem reported by Steve Izma <sizma@golden.net>.
+
+ * 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 <mcain6925@comcast.net>
+
+ [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 <rleigh@debian.org>
+
+ * man/groff_char.man: Fix white heart and diamond unicode values.
+
+2009-07-29 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/hyphen.fr: Fix typo which prevents hyphenation.
+ Reported by Seb <sbb@tuxfamily.org>.
+
+2009-06-25 Werner LEMBERG <wl@gnu.org>
+
+ Make groff compile on Interix.
+ Reported by Jay Krell <jay.krell@cornell.edu>.
+
+ * configure.ac: Call AC_USE_SYTEM_EXTENSIONS.
+
+ * src/include/lib.h [__INTERIX]: Define _ALL_SOURCE.
+
+ * configure: Regenerated.
+
+2009-05-29 Werner LEMBERG <wl@gnu.org>
+
+ pic: Fix handling of nested positions.
+ Reported by Doug McIlroy <doug@cs.dartmouth.edu>.
+
+ * 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)<foo,bar>,baz>
+
+ correctly. Without the patch, `(1/3)<(1/2)' is handled prematurely
+ as a comparison.
+
+2009-05-07 Werner LEMBERG <wl@gnu.org>
+
+ Accept \0 and friends within \o.
+ Reported by Doug McIlroy <doug@cs.dartmouth.edu>.
+
+ * 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 <wl@gnu.org>
+
+ Use straight quotes where appropriate.
+ Reported by Reuben Thomas <rrt@sc3d.org>.
+
+ * man/groff.man: Do it.
+
+2009-04-14 Werner LEMBERG <wl@gnu.org>
+
+ Fix documentation of `em' request.
+ Reported by Joachim Walsdorff
+ <Joachim.Walsdorff@urz.uni-heidelberg.de>.
+
+ * doc/groff.texinfo (End-of-input Traps): Rewrite.
+
+2009-04-10 Werner LEMBERG <wl@gnu.org>
+
+ Fix a memory leak in troff for -Thtml.
+ Reported by Urs Eggli <Urs.Eggli@zuerich.ch>.
+
+ * 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 <wl@gnu.org>
+
+ * tmac/doc.tmac: Call `ec' before mapping characters.
+
+2009-03-07 Werner LEMBERG <wl@gnu.org>
+ Gunnar Florus <http://florus.no>
+
+ 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 <cjwatson@debian.org>
+ Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of `lsm' request.
+
+2009-02-14 Werner LEMBERG <wl@gnu.org>
+
+ 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) <token::TOKEN_SPACE>: 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 <dmw@oxytropis.plus.com>
+
+ * 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 <wl@gnu.org>
+
+ Fix incorrect grops color state before \X'...'.
+ Problem reported by Miklos Somogyi <msom@netspace.net.au>.
+
+ * src/devices/grops/ps.cpp (ps_printer::special): Check color state
+ before doing a PS special and flush buffer.
+ Update called functions.
+
+Copyright 2009-2010 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:
+coding: utf-8
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72:
diff --git a/ChangeLog.122 b/ChangeLog.122
new file mode 100644
index 0000000..b33249b
--- /dev/null
+++ b/ChangeLog.122
@@ -0,0 +1,5331 @@
+Version 1.22.4 released
+=======================
+
+2018-12-18 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix 'dvi' and 'pdf' texinfo doc generation.
+
+ GNU make has a built-in variable 'TEXI2DVI' but it is not the case
+ of all 'make' implementations, which causes 'make doc' to fail
+ with an unclear message although 'texi2dvi' is available. Also,
+ 'texi2dvi' is invoked inconditionnally.
+
+ * m4/groff.m4 (GROFF_TEXI2DVI): new macro to detect properly the
+ presence of 'texi2dvi'.
+
+ * configure.ac: use 'GROFF_TEXI2DVI' and define automake conditional
+ 'HAVE_TEXI2DVI'.
+
+ * doc/doc.am:
+ - Define TEXI2DVI to 'texi2dvi'.
+ - Print an error message if 'texi2dvi' is not available.
+
+2018-12-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi: Drop documentation of "man" macro package from
+ our Texinfo manual. The mdoc, me, mm, and mom packages all
+ maintain their documentation externally to this manual as
+ well. Exception: portions not about man proper--which are not
+ duplicated from groff_man(7)--on use of man.local (including
+ examples of Ultrix-compatible macros) are retained.
+
+2018-12-08 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Install texinfo doc on 'make install-pdf' and 'make install-html'
+
+ * doc/doc.am:
+ - Use automake 'install-pdf-local' and 'install-html-local' rules
+ to install groff.pdf and groff.html
+ - New rules 'uninstall_pdf' and 'uninstall_html'.
+ - Use $(RM) instead of 'rm'.
+ - Don't try to build doc if 'BUILD_INFODOC' is not set.
+ * INSTALL.REPO: document texinfo build and installation.
+
+2018-12-10 Ingo Schwarze <schwarze@openbsd.org>
+
+ * Makefile.am: Remove the unused variables PREFIXMAN5 and PREFIXMAN7.
+
+ They caused installation failures on Solaris 9.
+
+2018-12-08 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Remove gnulib's hypot module.
+
+ The removal of 'GROFF_NEED_DECLARATION([hypot])' in 'configure.ac'
+ was correct as the test was buggy, but there is no need to use
+ gnulib's hypot module as previously we did not need to provide a
+ replacement function.
+
+ * bootstrap.conf: do it.
+
+2018-12-08 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Problem running gropdf on big endian (Sparc)
+
+ * src/devices/gropdf/gropdf.pl: Prior to perl v5.9 the 'L<'
+ template for 'unpack' was unavailable. Solaris 10 uses v5.8.4
+ so safer to use the template 'V' rather than 'L<'.
+
+2018-12-08 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Use gnulib's 'hypot' module.
+
+ In 'configure.ac', the macro call
+ 'GROFF_NEED_DECLARATION([hypot])' checks whether the function
+ 'hypot' is correctly declared in 'math.h', but the test is buggy
+ and may yields false results.
+
+ * bootstrap.conf: add 'hypot' module.
+
+ * configure.ac: Remove GROFF_NEED_DECLARATION([hypot]).
+
+ * src/libs/libgroff/hypot.cpp: remove declaration of hypot.
+
+2018-12-07 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Problem running gropdf on big endian (Sparc)
+
+ * src/devices/gropdf/gropdf.pl: When loading a binary (.pfb)
+ font for embedding always use little endian to unpack chunk
+ headers.
+
+2018-12-05 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Skip mom tests if needed config is missing.
+
+ * contrib/mom/examples/test-mom.sh.in: exit 77 if URW fonts are
+ not available.
+
+ * contrib/mom/mom.am: distribute inconditionnally test-mom.in.
+
+ * m4/groff.m4 (GROFF_URW_FONTS): check if 'awk' and 'gs' are
+ available, and replace non-portable 'grep' command by awk script.
+
+2018-12-01 Colin Watson <cjwatson@debian.org>
+
+ Fix error handling in tests of mom examples
+
+ * contrib/mom/examples/test-mom.sh.in (check_number_pages): Correct
+ error message.
+ (check_has_images): Correct shell syntax error.
+
+2018-11-26 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Document .sp behaviour in -me doc -- French translation
+
+ * doc/meintro_fr.me: translation of commit
+ 7a83f7f5003e24f020306f09f4d497e04e82cb14.
+
+ Fixes bug https://savannah.gnu.org/bugs/?54958.
+
+2018-11-24 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix tarball generation: script 'makevarescape.sed' was missing.
+
+ * Makefile.am (EXTRA_DIST): add it.
+
+2018-11-24 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Add automatic tests on mom examples
+
+ * m4/groff.m4 (GROFF_PDFTOOLS): check presence of some pdf tools.
+ * configure.ac: use 'GROFF_PDFTOOLS', add new AM conditional.
+ * contrib/mom/examples/test-mom.sh.in: new file that use 'pdfinfo'
+ and 'pdfimages' to make some basic checks on mom examples.
+
+2018-11-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ tmac/sv.tmac: Set Swedish hyphenation flags to 32.
+
+ This permits hyphenation after the first character but continues
+ prohibiting it before the last character of a word, in
+ congruence with the TeX-based hyphenation patterns we use.
+
+ Fixes <https://savannah.gnu.org/bugs/index.php?55066>.
+
+2018-11-19 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix build on environment where /etc/papersize contains comments
+
+ Issue introduced on commit efea81c75f831ddc6717c2ef25556e0f49d1f679.
+
+ * m4/groff.m4 (GROFF_PAGE): remove comments and get the 1st string
+ of '/etc/papersize'.
+
+2018-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PAGE): Try /etc/papersize first.
+
+ Fixes <https://savannah.gnu.org/bugs/index.php?53271>.
+
+2018-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * bootstrap.conf: Bump Autoconf dependency to 2.68. We need it
+ to support our bug-reporting URL, which contains a "?".
+ Strictly, Autoconf 2.65 is fine, but 2.66 and 2.67 broke this.
+ Even 2.69 is over 6 years old now.
+
+ See <https://savannah.gnu.org/support/?107450>.
+
+2018-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4 (GROFF_PAGE): Quote shell variables that are under
+ external control and may contain embedded whitespace. A test
+ shows that our configure script is now robust in this way, but
+ our Automake files are not, starting with
+ src/utils/afmtodit/afmtodit.am.
+
+2018-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * makevarescape.sed:
+ - Escape plain spaces and double-quotes (ASCII 32 and 34) so
+ that bad things don't happen if they are embedded in a Make
+ variable expanded in a man page @THUS@ _and_ given as an
+ argument to a macro that distinguishes its parameters, such
+ as .IR.
+ - Add discretionary breaks after groups of slashes not
+ preceded by a space; e.g., transform "/usr/bin/groff" into
+ "/usr/\:bin/\:groff". Will also work on URLs
+ {"https://\:example.com/\:page.html"} in case we need that.
+
+2018-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Undocument Werner and Ted as groff maintainers.
+
+ * README:
+ * doc/pic.ms:
+ * src/roff/grog/grog.pl:
+ * src/roff/nroff/nroff.sh: Werner (and Ted) retired from the
+ role some time ago and Bertrand Garrigues has stepped up; see
+ https://lists.gnu.org/archive/html/groff/2017-09/msg00048.html.
+ I'll let him document his maintainer status as and where he
+ prefers.
+
+2018-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Stop spelling "Unix" as "UNIX".
+
+ Per AT&T Bell Labs veterans Doug McIlroy and Meg McRoberts,
+ spelling "Unix" in full caps was a contrivance insisted upon by
+ AT&T lawyers, and not a practice used in the Unix manuals
+ themselves or the Bell Labs Technical Journal. See
+ https://lists.gnu.org/archive/html/groff/2015-01/msg00026.html
+ and
+ https://lists.gnu.org/archive/html/groff/2015-01/msg00029.html
+ for support.
+
+ There are instances I did _not_ change; they may require further
+ review.
+ ChangeLog.*
+ NEWS
+ One reference relevant to mdoc; see below.
+ doc/meintro{,_fr}.me
+ These documents also give the small caps
+ treatment to groff, troff, and nroff, suggesting
+ a separate changeset.
+ src/preproc/pic/pic.ypp
+ Contains a comment referring to "Compaq Tru64
+ UNIX"; not worth the candle IMO.
+ tmac/s.tmac:
+ {ms macro package} Leaving UX macro definition
+ alone until/unless it can be established that
+ this doesn't change the rendering of historical
+ documents in an objectionable way.
+ tmac/doc-syms-u:
+ tmac/doc-old.tmac-u:
+ tmac/doc-common-u:
+ tmac/groff_mdoc.7.man:
+ {mdoc macro package} Similar; mdoc defines many
+ strings that spit out "UNIX" (albeit not with a
+ font size change).
+
+ * MORE.STUFF:
+ * NEWS:
+ * README.MinGW:
+ * contrib/groffer/README:
+ * contrib/pdfmark/pdfmark.ms:
+ * contrib/pdfmark/pdfroff.1.man:
+ * doc/groff.texi:
+ * doc/webpage.ms:
+ * m4/groff.m4:
+ * man/groff_diff.7.man:
+ * man/groff_tmac.5.man:
+ * man/roff.7.man:
+ * src/preproc/html/pre-html.cpp:
+ * src/roff/troff/troff.1.man: Change "UNIX" to "Unix",
+ discarding markup as necessary.
+
+2018-11-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ man pages: Escape interpolated Make variables.
+
+ * makevarescape.sed: Transform - to \-, ~ to \(ti, and so forth,
+ {with an extra layer of backslashes--see below} so that Makefile
+ variables containing ASCII characters that do not represent
+ themselves literally in *roff (see groff_char(7)) are correctly
+ interpolated into man page text.
+
+ * Makefile.am (.man): Transform Makefile variables with the
+ above script when interpolating them into man page text.
+
+ Note that while the script, combined with this target, will
+ transform ` to \(ga, including grave accents in Makefile
+ variables is likely to fail when the shell lexes the argument to
+ echo within the old-style command substitution ``. Testing
+ shows that grave accents should work[1] if POSIX-style command
+ substitution $() is done instead. However, $() is less
+ portable. (Triple-escaping grave accents \\\` inside the
+ interpolated Makefile variable will work, but is not attempted
+ at present.)
+
+ Note also that the amount of backslash-escaping in the sed
+ script is excessive (and incorrect) for normal purposes, but
+ required here because a command substitution is being nested
+ inside yet another invocation of sed.
+
+ {1} For this target; no assurances about the good behavior of
+ unusual characters in Makefile variables in other aspects of the
+ groff build are offered.
+
+ Fixes <https://savannah.gnu.org/bugs/index.php?55004>.
+
+2018-11-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/lookbib/lookbib.cpp: Doesn't make much sense to mark
+ Version_string as a C extern if you're just going to hide it in
+ a throwaway scope again. Remove braces, exposing it.
+
+ "lookbib -v" now reports a version number, instead of "(null)".
+
+ Fixes <https://savannah.gnu.org/bugs/index.php?54972>.
+
+2018-11-06 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/error.cpp (do_error_with_file_and_line):
+ If:
+ a program name is known;
+ but
+ no file is being processed or the line number is negative,
+ then there was no space between the program name (with colon),
+ and the succeeding diagnostic message.
+
+ Example: lookbib:fatal error: no databases
+
+ Fixes <https://savannah.gnu.org/bugs/index.php?54971>.
+
+2018-11-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Make strip.sed operate only if given permission.
+
+ * tmac/strip.sed: Do nothing whatsoever to any input file that
+ lacks a line matching "%beginstrip%". This implements a
+ contract between the macro file writer and the stripper script
+ {roff input is not parseable with crude weaponry like regular
+ expressions}. In practice, most of the changes performed by the
+ script were already in a block enforcing this. My changes:
+ - Stop unconditionally inserting a roff comment noting the
+ reader of stripping at line 2. Instead, replace the line
+ matching "%beginstrip%" with this comment if and only if it
+ is present.
+ - Stop deleting lines containing only the empty request if
+ they occur before "%beginstrip%".
+ - Tweak the wording of the roff comment.
+ - Remove comment within the sed script; see
+ https://lists.gnu.org/archive/html/groff/2017-11/msg00057.html
+ and the sed section of "Limitations of Usual Tools" in the
+ GNU Autoconf Manual.
+
+ Invalidates <https://savannah.gnu.org/bugs/index.php?53784>.
+
+2018-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/an-old.tmac: When emitting diagnostics, report the name
+ of the macro file complaining, and the name and line number of
+ the input file at the time of trouble. Thanks to Bjarni Ingi
+ Gislason for part of the patch.
+
+ Fixes <https://savannah.gnu.org/bugs/?54175> and continues the
+ long process of fixing <https://savannah.gnu.org/bugs/?52463>.
+
+2018-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/meintro_fr.me: Add encoding hint to top of file so preconv
+ works correctly even if the build environment's encoding is not
+ UTF-8. Adapted from Bjarni Ingi Gislason's patch. Also add
+ long-form Emacs coding declaration at end of file. Vim's
+ auto-detection seems to be fine, so did not update its modeline.
+
+ Fixes <https://savannah.gnu.org/bugs/index.php?54530>.
+
+2018-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_man.7.man: Reorganize and largely rewrite to more
+ precisely document the macro package's behavior and to be more
+ helpful and accessible to man page writers who may never read
+ any other groff documentation.
+
+2018-10-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Clarify meaning of \p escape. Also make more explicit that line
+ adjustment for the .brp request and \p escape depends on the
+ current adjustment mode.
+
+ * doc/groff.texi: Clarify that \p has effect at the next word
+ boundary. Thanks to Dave <barx> for pointing out the issue and
+ providing elucidating language.
+
+ * man/groff.7.man: Similar, but terser.
+
+ Fixes https://savannah.gnu.org/bugs/index.php?54894.
+
+2018-10-04 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Savannah bug # 54812
+
+ * font/devpdf/util/BuildFoundries.pl: If a font is not found
+ report list of paths searched.
+
+ Fix https://savannah.gnu.org/bugs/?54812
+
+2018-10-10 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update 'gnulib' submodule.
+
+ * gnulib: now points on dce8759f0f0236a860a3e68b63c5e99cc6f168f9
+ from 'gnulib' repository. This fixes build error with glibc 2.28
+ (see https://bugzilla.redhat.com/show_bug.cgi?id=1595702).
+
+2018-10-04 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Savannah bug # 54779
+
+ * font/devpdf/Foundry.in: Recent ghostscript changed name
+ used for embedding groff font HNBI
+
+ Fix https://savannah.gnu.org/bugs/?54779
+
+2018-08-27 Ingo Schwarze <schwarze@openbsd.org>
+
+ * tmac/groff_www.7.man: Do not use .URL, .MTO, .FTP.
+
+2018-08-21 Ingo Schwarze <schwarze@openbsd.org>
+
+ Improve terminal rendering for a few special characters:
+
+ * tmac/tty.tmac: add \[.j] (dotless j)
+ * tmac/tty-char.tmac: for \[a.], fall back to "."
+ * tmac/tty-char.tmac: add playing card suits
+
+2018-08-16 Ingo Schwarze <schwarze@openbsd.org>
+
+ * src/preproc/preconv/preconv.1.man: add -D to the SYNOPSIS
+
+2018-08-09 Ingo Schwarze <schwarze@openbsd.org>
+
+ * Makefile.am: correctly calculate MAJOR_VERSION etc.
+
+2018-06-19 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Fixes to gropdf
+
+ * src/devices/gropdf/gropdf.pl: Make default line width 0.4pt
+ to match grops. Use 'S' operator (stroke) rather than 's' (close
+ and stroke) when Dl command received. Improve switching between
+ text and graphic modes.
+
+2018-07-01 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ [me] paragraph with umlaut incorrectly rendered
+
+ * tmac/e.tmac-u: workaround done by Werner LEMBERG <wl@gnu.org>.
+
+ Fix https://savannah.gnu.org/bugs/?42191
+
+2018-06-19 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Add gropdf new features to NEWS file.
+
+ * NEWS: new features.
+
+2018-05-29 Werner LEMBERG <wl@gnu.org>
+
+ [dvi] Fix glyph map for `cmitt10'.
+
+ Problem reported by Pali Rohár <pali.rohar@gmail.com>.
+
+ http://lists.gnu.org/archive/html/groff/2018-05/msg00088.html
+
+ * font/devdvi/texitt.map: New file. This is identical to
+ `textt.map' except the dollar glyph, which gets replaced by the
+ pound glyph.
+
+ * font/devdvi/generate/Makefile (CWI): Use `texitt.map'.
+
+ * font/devdvi/CWI: Regenerated.
+
+2018-05-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Improve diagnostics on bad hyphenation requests.
+
+ * src/roff/troff/env.cpp: Add new HYPHEN_* symbols to anonymous
+ enum.
+
+ * src/roff/troff/env.cpp (hyphenate_request):
+ - Warn about hyphenation request values that are completely
+ out of range.
+ - Report bad hyphenation request value in diagnostic messages.
+
+2018-04-28 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ grap2graph: Parallelize changes with pic2graph.
+
+ * contrib/grap2graph/grap2graph.sh:
+ - Refactor temp directory handling.
+ - Handle embedded whitespace in temp dir.
+ - Adapt to old convert(1) programs.
+
+ * contrib/grap2graph/grap2graph.1.man: Make editorial/style
+ changes and minor corrections.
+
+2018-04-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ eqn2graph: Remove -unsafe option.
+
+ * contrib/eqn2graph/eqn2graph.sh: Unrecognize "-unsafe" option
+ and eliminate $groff_opts variable. As far as I can tell, this
+ option had no effect because (1) pic is not run on the input
+ stream (no -p argument to groff); (2) eqn doesn't support
+ "shelling out" as pic does; and (3) there is no way to embed
+ *roff requests inside a sequence of eqn commands. If I'm wrong,
+ let me know.
+
+ * contrib/eqn2graph/eqn2graph.1.man: Undocument "-unsafe"
+ option.
+
+2018-04-26 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ eqn2graph: Parallelize changes with pic2graph.
+
+ * contrib/eqn2graph/eqn2graph.sh:
+ - Refactor temp directory handling.
+ - Handle embedded whitespace in temp dir.
+ - Adapt to old convert(1) programs.
+
+ * contrib/eqn2graph/eqn2graph.1.man: Make editorial/style
+ changes and minor corrections.
+
+2018-04-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ pic2graph: Refactor temp directory handling.
+
+ * contrib/pic2graph/pic2graph.sh: Issue a diagnostic and give up
+ if the user's desired temporary directory does not exist. Also
+ document the Bashism $RANDOM and work around its absence.
+
+2018-04-25 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ pic2graph: Handle embedded whitespace in temp dir.
+
+ * contrib/pic2graph/pic2graph.sh: Quote shell variables having
+ to do with the temporary directory's location; without
+ quotation, temporary directory names with embedded whitespace
+ are wrongly handled.
+
+2018-04-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/groff.texi: Bump end of copyright range to 2018. Werner
+ added substantial text this year about hyphenation.
+
+2018-04-24 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ Set version to 1.22.4 in the few places that hard-code it.
+
+ * arch/mingw/grap2graph.cmd:
+ * contrib/groffer/version.sh:
+ * doc/groff.texi:
+ * doc/webpage.ms: Bump from 1.22.3 to 1.22.4.
+
+2018-04-24 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Restrict scaling factors to 3dp and better handle CR/LF in import.
+
+ * src/devices/gropdf/gropdf.pl: Restrict scaling factors to 3dp
+ rounded. If pdf imported with pdfpic uses CR/LF line termination
+ ibclude XObject Image, length of stream out by 1.
+
+2018-04-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ man pages: Shorten version footer.
+
+ * **/*.man: Replace "Groff Version" with "groff" in the fourth
+ argument to .TH in all man pages. This suffices to keep that
+ part of the footer from overrunning the date, even in dirty
+ trees on 80-column terminals.
+
+ Fixes https://savannah.gnu.org/bugs/index.php?53721.
+
+2018-04-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ pic2graph(1): Make editorial/style changes and minor
+ corrections.
+
+2018-04-23 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ pic2graph: Adapt to old convert(1) programs.
+
+ * contrib/pic2graph/pic2graph.sh: Grep convert's -help output
+ for the string "-trim". If it is not found, the old method for
+ image trimming documented in pic2graph's man page, "-crop 0x0",
+ is used. I am motivated by the fact that the warning about this
+ in our man page is very old (10 years or more), and I wanted to
+ get rid of it.
+
+ pic2graph emits a warning when performing this fallback, in the
+ event the ImageMagick and/or GraphicsMagick teams surprise the
+ world again.
+
+ * contrib/pic2graph/pic2graph.1.man: Remove BUGS section, the
+ entire contents of which was dedicated to convert's change in
+ behavior.
+
+2018-04-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ groff_man(7): Expand command synopsis section.
+
+ This section now explains in detail how to write (and read) a
+ command synopsis.
+
+2018-04-12 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Make PDFPIC behave the same whether -Tps or -Tpdf used.
+
+ Previously the -Tpdf version did not cause a break nor position
+ to the line beneath the imported picture, whilst the -Tps
+ version did.
+
+ * tmac/pdfpic.tmac: Corrected behavior.
+
+ * NEWS: Explain the change of behaviour and how to reinstate
+ the previous behaviour using register PDFPIC_NOSPACE or the
+ environment variable GROFF_PDFPIC_NOSPACE.
+
+2018-03-27 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Define a short version for data installation dir name.
+
+ This is the full version stripped of any characters after the
+ third digit. Used for installation of font, macro and various
+ data (by default in /usr/local/share/groff). The various programs
+ and scripts still use the full version from gnulib script
+ 'git-version-gen' .
+
+ * configure.ac (SHORT_VERSION): short version definition.
+
+ * Makefile.am: use 'SHORT_VERSION' for 'docdir' and 'datasubdir'
+ definitions.
+
+2018-03-11 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Remove doc/automake_migration_tests.txt
+
+ Automake migration was completed long time ago and this file is no
+ longer needed.
+
+2018-03-11 Colin Watson <cjwatson@debian.org>
+
+ Switch to Gnulib implementation of snprintf
+
+ This is more actively maintained, straightforward to integrate now
+ that we have Gnulib integration, and simplifies groff's overall
+ licensing.
+
+ * bootstrap.conf (gnulib_modules): Add `snprintf' and `vsnprintf'.
+ * configure.ac: Remove local checks for `snprintf' and `vsnprintf'.
+ * Makefile.am: Remove various comments related to local checks for
+ `snprintf' and `vsnprintf'.
+ * src/include/lib.h: Remove declarations of `snprintf' and
+ `vsnprintf'.
+ * src/libs/libgroff/libgroff.am (EXTRA_DIST): Remove
+ `src/libs/snprintf/snprintf.c'.
+ * src/libs/snprintf/snprintf.c: Remove.
+
+ * LICENSES: Remove section about `src/libs/snprintf/snprintf.c'.
+ * MANIFEST: Remove entry for `src/libs/libxutil'.
+
+2018-03-09 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ PDF must not open in presentation mode.
+
+ * src/devices/gropdf/gropdf.pl: When GROPDF_NOSLIDE=1
+ passed do not set pdf to presentation mode.
+
+2018-03-09 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Allow a "." to signify a missing parameter in .pdftransition
+
+ * src/devices/gropdf/gropdf.1.man: Explain the .pdftransition
+ macro (and underlying '\X' command) accepts a "." to specify
+ a parameter retains its current value.
+
+2018-03-09 Colin Watson <cjwatson@debian.org>
+
+ man pages: fix incorrect cross-referenced section
+
+ * man/roff.7.man (FILE NAME EXTENSIONS): Correct reference to
+ groff_filenames(5).
+
+2018-03-09 Colin Watson <cjwatson@debian.org>
+
+ mdate.sh: rewrite in Perl
+
+ groff already requires perl to build. This version is much shorter
+ and easier to understand than the shell/awk version: we don't have
+ to worry about convincing ls to produce output that we can parse,
+ and we don't have to play games with the way that the same field may
+ contain either the year or the time depending on how old the file
+ is.
+
+ While I'm at it, this version also adds `SOURCE_DATE_EPOCH' support
+ for reproducible builds: when `SOURCE_DATE_EPOCH' is set, files are
+ considered to have been last modified at that time.
+
+ * mdate.sh: Rewrite in Perl, moving to ...
+ * mdate.pl: ... this new file.
+ * Makefile.am (EXTRA_DIST, .man): Update references.
+
+2018-03-09 Colin Watson <cjwatson@debian.org>
+
+ Remove #! lines from non-executable files
+
+ These are always invoked by the build system (either in-tree or via
+ the installed Makefiles) using the necessary program, so the #!
+ lines were unnecessary. They were harmless except that they caused
+ Debian's `lintian` tool to complain about installed non-executable
+ scripts.
+
+ * font/devlj4/generate/special.awk: Remove #! line.
+ * font/devps/generate/symbol.sed: Likewise.
+
+2018-03-09 Colin Watson <cjwatson@debian.org>
+
+ doc: stop generating W3C validation icons
+
+ Debian's `lintian' tool says:
+
+ These badges may be displayed to tell readers that care has been
+ taken to make a page compliant with W3C standards. Unfortunately,
+ downloading the image from www.w3.org might expose the reader's IP
+ address to potential tracking.
+
+ I think the risk is a small one, but I also don't think the badges
+ are especially valuable, so it doesn't seem like much to ask to just
+ drop them at least for groff's own documentation.
+
+ * doc/doc.am (.ms.html, doc/pic.html): Remove `-P-V' option.
+
+2018-03-01 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Place pdf in presentation mode if new commands used.
+
+ * src/devices/gropdf/gropdf: The new commands which
+ control page transitions should result in the pdf being
+ opened in presentation mode.
+
+2018-03-02 Werner LEMBERG <wl@gnu.org>
+
+ Hyphenation exceptions in pattern files now obey `.hy' (#53196).
+
+ * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Mark
+ `\hyphenation' entries with a trailing space.
+ (hyphen_trie::insert_hyphenation): Updated.
+ (hyphenate): Make `\hyphenation' entries obey `.hy' restrictions.
+
+ * doc/groff.texi (.hy): Updated.
+
+2018-03-01 Werner LEMBERG <wl@gnu.org>
+
+ Adjust `.hy' values.
+
+ In most cases hyphenation constraints were too strict. The now
+ selected values reflect the parameters used for the generation of
+ the (TeX) hyphenation patterns.
+
+ * tmac/an-old.tmac, tmac/cs.tmac, tmac/de.tmac, tmac/doc-common-u,
+ tmac/e.tmac-u, tmac/fr.tmac, tmac/s.tmac, tmac/sv.tmac: Fix `.hy',
+ `\n[HY]', and `\n[doc-hyphen-flags]' values.
+
+ * doc/groff.texi, tmac/groff_man.7.man, tmac/groff_ms.7.man, NEWS:
+ Updated.
+
+2018-03-01 Werner LEMBERG <wl@gnu.org>
+
+ Fix some problems related to hyphenation.
+
+ Introduce values 16 (allow hyphenation before last character) and 32
+ (allow hyphenation after first character) to the `hy' request
+ (#48904).
+
+ Really fix problem reported in issue #48904.
+
+ Fix #53243, which is a regression introduced in 2016-09-09.
+
+ * src/roff/troff/env.cpp (HYPHEN_LAST_CHAR, HYPHEN_FIRST_CHAR): New
+ enumeration values.
+ (hyphenate_request): Check for contradicting values.
+ (environment::hyphenate_line): Fix minimum word length considered
+ for hyphenation.
+ (environment::print_env): Updated.
+ (hyphenate): Fix and extend logic. The original patch to handle
+ #48904 was bad.
+
+ * doc/groff.texi, man/groff_diff.7.man, NEWS: Updated.
+
+2018-03-01 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Add page transitions to pdfs created with gropdf.
+
+ * src/devices/gropdf.pl: Handle new '\X' commands to support page
+ transitions in presentation mode pdfs. These commands are a subset
+ of the commands used in present.tmac allowing slideshows to be
+ directly produced from -Tpdf without using postscript -> gpresent.pl
+ -> ghostscript.
+
+ * tmac/pdf.tmac: New macros '.pdfpause' and '.pdftransition' to
+ support page transitions.
+
+ * src/devices/gropdf.1.man: Document the '\X' commands supported.
+
+2018-03-01 Werner LEMBERG <wl@gnu.org>
+
+ Use $(AM_V_GEN) and $(AM_V_P) to silence even more file generation.
+
+ * font/devpdf/devpdf.am (BuildFoundries, DESC, Foundry,
+ build_font_files): Do it.
+
+2018-02-28 Werner LEMBERG <wl@gnu.org>
+
+ Use $(GROFF_V) to silence documentation creation.
+
+ * Makefile.am (GROFF_V): Define.
+
+ * doc/doc.am (.me.txt, .me.ps, .ms.html, .ms.txt, .ms.ps, pic.html,
+ webpage.html): Use $(GROFF_V).
+
+2018-02-28 Werner LEMBERG <wl@gnu.org>
+
+ Use $(AM_V_GEN) to silence file generation.
+
+ * Makefile.am (.man), contrib/eqn2graph/eqn2graph.am (eqn2graph),
+ contrib/grap2graph/grap2graph.am (grap2graph), contrib/pic2graph.am
+ (pic2graph), src/devices/gropdf/gropdf.am (gropdf, pdfmom),
+ src/preproc/eqn/eqn.am (neqn), src/roff/grog/grog.am (grog),
+ src/roff/nroff/nroff.am (nroff), src/utils/afmtodit/afmtodit.am
+ (afmtodit), font/devascii/devascii.am (DEVASCIIFONTSFILES, DESC),
+ font/devcp1047/devcp1047.am (DEVCP1047FONTSFILES, DESC),
+ font/devhtml/devhtml.am (DEVHTMLFONTSFILES, DESC),
+ font/devlatin1/devlatin1.am (DEVLATIN1FONTSFILES, DESC),
+ font/devutf8/devutf8.am (DEVUTF8FONTSFILES, DESC),
+ font/devps/devps.am (DESC, prologue, zapfdr.pfa, symbolsl.pfa),
+ font/devdvi/devdvi.am (DESC), font/devlbp/devlbp.am (DESC),
+ font/devlj4/devlj4.am (DESC): Do it.
+
+2018-02-28 Werner LEMBERG <wl@gnu.org>
+
+ * configure.ac: Activate silent Makefile rules.
+
+2018-02-28 Werner LEMBERG <wl@gnu.org>
+
+ Minor compilation warnings.
+
+ * src/devices/xditview/draw.c: Don't declare `MaxFontPosition'.
+
+ * src/roff/troff/input.cpp (psbb_locator::context_args): Avoid
+ shadowing of `buf'.
+
+2018-02-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/troff/env.cpp: s/HYPHEN_/HYPHEN_NOT/ for clarification.
+
+2018-02-26 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update installation doc.
+
+ * INSTALL.REPO: mention that 'pkg-config' is a dependency.
+
+ * INSTALL.extra: add dependency 'makeinfo' and optional
+ dependencies 'pkg-config' and 'uchardet'.
+
+ * TESTS: move to doc/automake_migration_tests.txt
+
+ * INSTALL.gen: remove, this file is redundant with the 'INSTALL'
+ file from gnulib.
+
+2018-02-02 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update 'gnulib' submodule.
+
+ * gnulib: now points on cf56f8f618c48cfadd2499ced58574633d12f129
+ from 'gnulib' repository.
+
+2018-02-02 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Use gnulib script 'git-version-gen' to define groff's version
+
+ * bootstrap.conf: add 'git-version-gen' script.
+
+ * configure.ac: suppress 'GROFF_VERSION_STRING' and replace it by
+ the script. If the current commit corresponds to a tag, then the
+ version is simply the tag name. Otherwise the version has the
+ format: <tag>-<nb_commits_from_latest_tag>-<commit sha1>. The
+ version is now stored in '.version'.
+
+ * REVISION: removed.
+
+ * VERSION: removed.
+
+ * Makefile.am: define 'MAJOR_VERSION', 'MINOR_VERSION' and
+ 'REVISION'.
+
+ * src/libs/libgroff/libgroff.am: use 'MAJOR_VERSION',
+ 'MINOR_VERSION' and 'REVISION', add dependency on '.version'.
+
+ * src/roff/troff/troff.am: ditto.
+
+ * contrib/mom/om.tmac-u (short_revision): new string that extracts
+ the first digit of the revision, to be used when checking groff
+ version.
+
+2018-01-18 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ On reflection using an array for Filter is not optimal.
+
+ * src/devices/gropdf.pl: revert single line from commit
+ 18fd1fd0bf05eb9a5ba0d2be1a655a044662a8bf.
+
+2018-01-17 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ All values should be 3 decimals
+
+ * src/devices/gropdf.pl: for values approaching zero values
+ in the for 0.nnnnnnE-nn could be written, not valid syntax for
+ PDF. Make all values rounded to 3 decimals, becomes 0.000.
+
+ Also changed stream Filter dictionary entry to an array.
+
+2018-01-14 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix tarball generation ('make distcheck' failed)
+
+ * src/devices/xditview/xditview.am: add .h created by commit
+ 382ab4af269a1dea422c8f9bb5c67a065d026deb to EXTRA_DIST
+
+ * contrib/mm/mm.am: restore distribution of files removed by
+ commit 445bf58765b759546e238a235651eb0bf5b34325.
+
+2018-01-13 Ingo Schwarze <schwarze@openbsd.org>
+
+ Makefile.am: Re-add -F and -M flags needed to build out of src.
+
+2018-01-13 Ingo Schwarze <schwarze@openbsd.org>
+
+ [mdoc]: rewrite the implementation of the .Lk macro
+
+ * tmac/doc.tmac-u (Lk): Rewrite.
+
+ The old implementation was written before the big mdoc
+ rewrite for groff-1.17. In contrast to most other macros,
+ it was never updated to use the new techniques.
+ This new implementation makes .Lk callable, makes trailing
+ punctuation work in the normal way, and makes the style of
+ the implementation consistent with other macros.
+
+ It also removes the feature of automatically switching
+ between in-line and displayed rendering depending on the
+ length of the link because that was inconsistent across
+ output modes and counter-intuitive, resulting in ugly
+ output for many existing real-world manual pages.
+ It now always renders in-line. Use .D1 Lk where desired.
+
+ Merging http://savannah.gnu.org/bugs/?52849
+ OK wl@gnu, jmc@openbsd, bentley@openbsd
+
+2017-12-14 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ man pages: Comment compatibility-mode switching.
+
+ The '.do' and '.cp' requests (both groffisms) are some of the
+ more obscure features of groff's own man page corpus.
+ Consequently, they get cargo-culted around, within and outside
+ groff. Thanks to Werner Lemberg for the discussion, which
+ revealed (to me) that groff ships with compatibility mode on by
+ default on Solaris 10 and 11.
+
+ Fix bug https://savannah.gnu.org/bugs/?52444.
+
+2017-11-30 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/roff/troff/input.cpp:
+ Make writers to stderr identify themselves.
+
+ * font/devpdf/util/BuildFoundries.pl:
+ Same; also refactor all diagnostics into Notice(), Warn(), and
+ Die() functions, which delegate their common message-printing to
+ Msg().
+
+ Fix part of bug https://savannah.gnu.org/bugs/?52463.
+
+2017-11-21 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ man pages: Fix compatibility-mode problems.
+
+ * contrib/gperl/gperl.1.man: Use idiomatic .BI macro instead of
+ leading an input line with a font escape followed by a dot,
+ the interpretation of which differs based on compatibility
+ mode.
+
+ * src/preproc/soelim/soelim.1.man: Make .mso request only after
+ compatibility mode is turned off.
+
+2017-11-19 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Protect arguments to "tr" from globbing.
+
+ Prevents errors from tr during man page generation and possible
+ incorrect program prefixing in those pages if, for example, some
+ doofus has directories called "A", "B", ... hanging around in
+ the build tree.
+
+2017-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/groff_mdoc.7.man: Use unstripped symbol names.
+
+ Fix bug https://savannah.gnu.org/bugs/?52442.
+
+2017-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/include/.gitignore: Ignore config.hin~ files.
+
+2017-11-18 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ test-groff.in: Enable backtraces and all warnings by default.
+
+ Fix bug https://savannah.gnu.org/bugs/?51482.
+
+2017-11-18 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/**: Migrate macro package diagnostics away from `quotes'.
+
+2017-11-15 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libgroff/new.cpp: Quieten compiler warning.
+
+ Define sized version of overloaded delete operator. Duplicate
+ code from unsized delete operator because simply calling through
+ to it provokes another warning, -Wdelete-incomplete.
+
+ Fix rest of https://savannah.gnu.org/bugs/?52335.
+
+2017-11-12 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Better handle glyphs in font positions > 255
+
+ * src/devices/gropdf/gropdf.pl: Improve handling
+ when glyphs above 255 are used.
+
+2017-11-12 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ gropdf should load ALL 'download' files
+
+ * src/devices/gropdf/gropdf.pl: only the first 'download' file
+ found was loaded, it should load all found.
+
+2017-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libxutil/DviChar.c: Initialize "buckets" field of
+ structs.
+
+ Resolves missing-field-initializers warnings.
+
+2017-11-12 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/strip.sed: Stop rewriting symbol names. A substitution
+ originally intended to strip the "doc-" prefix off of mdoc macro
+ and string names unintentionally caught some mom stuff.
+ Harmlessly in this instance, but with potentially surprising
+ future effects. Remove (only) this substitution per discussion
+ in
+ https://lists.gnu.org/archive/html/groff/2017-11/msg00055.html
+ et sequentia.
+
+2017-11-11 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * src/devices/grolbp/lbp.cpp (lbp_printer::setfillmode): Address
+ misleading indentation warning.
+
+ * src/roff/troff/mtsm.cpp (mtsm::push_state, mtsm::pop_state):
+ Same. Only flush standard error if we just wrote to it,
+ instead of unconditionally.
+
+ Fix bug https://savannah.gnu.org/bugs/?51483.
+
+2017-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/utils/xtotroff/xtotroff.c: Mark private function static.
+
+2017-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/libs/libxutil/xmalloc.c: Quieten gcc warning. Mollify
+ -Wmissing-prototypes for xmalloc() in single-function file.
+
+2017-11-11 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ gxditview: Migrate extern declarations to headers.
+
+ Also mark some private functions as static.
+
+2017-11-11 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ src: Declare function protypes where necessary.
+
+ Fix bug https://savannah.gnu.org/bugs/?51513.
+
+2017-11-10 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ mom: Abort early with diagnostic in compatibility mode.
+
+ Fix bug https://savannah.gnu.org/bugs/?52333.
+
+2017-11-10 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * contrib/**: Migrate diagnostics away from `quotes'.
+
+2017-11-09 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/**: Migrate diagnostics away from `these quotes'.
+
+ Fix bug https://savannah.gnu.org/bugs/?52374.
+
+2017-11-07 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * tmac/strip.sed: Remove nilpotent capture from address.
+
+2017-11-05 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ `preconv': fix usage of lib `uchardet'.
+
+ * src/preproc/preconv/preconv.cpp (detect_file_encoding): Fix
+ usage of uchardet 0.0.1, which may fail but return an empty string
+ instead of a null pointer, and fix some incorrect error
+ managements that might cause memory leaks.
+
+2017-11-05 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am: Silence warning from grep during clean.
+
+2017-11-04 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Drop unnecessary -F and -M flags from pdfmom
+ call.
+
+2017-11-02 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ man/groff_diff.7.man: Correct the explanation of the request
+ ".itc"--it was backwards.
+
+ Fix bug https://savannah.gnu.org/bugs/?51502.
+
+2017-11-02 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ test-groff.in: Recognize additional contrib tmacs.
+
+ Fix bug https://savannah.gnu.org/bugs/?51598.
+
+2017-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * Makefile.am: Force build to generate test-groff script.
+
+2017-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * font/devpdf/devpdf.am: Silence warning from grep during build.
+
+2017-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * doc/doc.am: Fix build of pic.html from clean tree.
+
+2017-11-02 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * m4/groff.m4: Kill whitespace in macro diagnostic.
+
+2017-11-01 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ src/roff/grog/subs.pl: Fix typo in usage message.
+
+ Fix bug https://savannah.gnu.org/bugs/?51540.
+
+2017-10-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ m.tmac: Fix some formatting and textual issues.
+ * Protect full stops in strings \*[Letns!{1,2,10,11}].
+ * Remove extraneous whitespace from string \*[Pg_type!1].
+
+ Fix bug https://savannah.gnu.org/bugs/?51610.
+
+2017-10-22 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ refer-mm.tmac: Protect full stop in abbreviation of "ed.".
+
+ Fix bug https://savannah.gnu.org/bugs/?51611.
+
+2017-10-22 G. Branden Robinson <g.branden.robinson@gmail.com>
+
+ * src/preproc/html/pre-html.cpp: Fix grammar in usage message.
+ When used attributively, e.g. as an adjectival phrase,
+ "command-line" should be hyphenated.
+
+2017-10-22 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ pdfpic: Suppress warning if in compatibility mode.
+
+ Fix bug https://savannah.gnu.org/bugs/?51945.
+
+2017-10-22 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ www.tmac: Rename font 'C' to 'CR'; define 'CR'.
+
+ The font name 'C' ('CW') is not a part of groff's fonts.
+
+ Fix bug https://savannah.gnu.org/bugs/?51417.
+ Also see https://savannah.gnu.org/bugs/?51426.
+
+2017-10-04 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix build on MacOS X
+
+ See https://savannah.gnu.org/bugs/?49651
+
+2017-09-11 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Build from git: Make `configure' fail if `yacc' is not found.
+
+ * m4/groff.m4 (GROFF_PROG_YACC): look for (in this order) `byacc',
+ `bison -y', `yacc'. Set `YACC' to `missing' is nothing is found
+ and generate an error. Don't generate an error if build is not
+ done from git as tarball already distribute files generated by
+ `yacc'.
+
+2017-09-02 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Update `gnulib' submodule with latest version.
+
+ * gnulib: now points on 07a187be7f66d3ced66587405f18205971c762e9
+ from `gnulib' repository.
+
+2017-09-02 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix .gitignore files for in-source build.
+
+ Fix bug https://savannah.gnu.org/bugs/?51415.
+
+2017-09-01 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix build on MacOS X
+
+ * Makefile.am: define `SED' command with LANG and LC_ALL set to C.
+ * contrib/mm/mm.am: use it.
+ * doc/doc.am: Ditto.
+
+ Fix bug https://savannah.gnu.org/bugs/?49649
+
+2017-08-30 Colin Watson <cjwatson@debian.org>
+
+ `BuildFoundries' should not be installed.
+
+ * font/devpdf/devpdf.am: remove installation of generated script
+ `BuildFoundries'.
+
+2017-08-30 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ pic2graph.1.man: Fix wrong macro for e-mail addresses.
+
+ Fix bug https://savannah.gnu.org/bugs/?51110.
+
+2017-08-30 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ groff_diff(7): Remove a repeated word.
+
+ Fix bug https://savannah.gnu.org/bugs/?51077.
+
+2017-08-30 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ groff_tmac(5): Fix double dot before request.
+
+ Fix bug https://savannah.gnu.org/bugs/?51070.
+
+2017-08-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ groff.texi: remove repeated words.
+
+ Fix bug https://savannah.gnu.org/bugs/?51046.
+
+2017-08-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ groff_man(7) manual page: Fix explanation of the ".itc" request.
+
+ See bug at https://savannah.gnu.org/bugs/?51043.
+
+2017-08-28 Ingo Schwarze <schwarze@usta.de>
+
+ groff_man(7) manual page: recommendations for escape sequences.
+
+ See bug at https://savannah.gnu.org/bugs/?51021.
+
+2017-08-28 Ingo Schwarze <schwarze@usta.de>
+
+ groff_char(7) manual: fix table "7-bit Character Codes"
+
+ See bug at https://savannah.gnu.org/bugs/?51020.
+
+2017-08-28 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix troff.1 misleading definition of -w all.
+
+ See bug at https://savannah.gnu.org/bugs/?47784. Suggested by Kaz
+ Kylheku <kaz@kylheku.com>.
+
+2017-08-25 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ `preconv --version' crashes.
+
+ See bug at: https://savannah.gnu.org/bugs/?51587.
+
+ * src/preproc/preconv/preconv.cpp: Add a missing comma in the
+ argument list of "printf".
+
+2017-08-25 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Fix bug: `.itc' request breaks subsequent `.it' requests.
+
+ See bug at: https://savannah.gnu.org/bugs/?51376. Using `.itc'
+ lets all later uses of `.it' behave like `.itc', that is,
+ interrupted text line ending with \c is not counted as a separate
+ line.
+
+ * env.cpp: Restore input_trap state to normal when '.it' is
+ called.
+
+2017-08-25 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Fix a part of a virtual (pseudo) structure in "tty.tmac".
+
+ * tmac/tty.tmac: Fix warning: ".../git/groff/tmac/tty.tmac:19:
+ warning: unbalanced .el request"
+
+2017-08-25 Ingo Schwarze <schwarze@usta.de>
+
+ `tty-char.tmac': focus on meaning rather than graphical shape
+
+ * tmac/tty-char.tmac: add ASCII renderings for six missing
+ mathematical symbols
+
+2017-08-22 Ingo Schwarze <schwarze@usta.de>
+
+ `tty-char.tmac': focus on meaning rather than graphical shape
+
+ * tmac/tty-char.tmac: Switch the policy from trying to imitate the
+ characters' graphical shapes, which resulted in unintelligible
+ renderings in many cases, to transliterations conveying the
+ characters' meanings. One benefit is making these characters
+ usable for portable manual pages.
+
+2017-08-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ 'gropdf' does not correctly load new ghostscript fonts
+
+ See bug at: https://savannah.gnu.org/bugs/?50989. Since ghostscript
+ 9.21 the fonts supplied have changed from .pfb to .pfa type (with a
+ raw binary section). These failed to be properly loaded.
+
+ * src/devices/gropdf/gropdf: Changes to handle raw binary section in
+ a .pfa type font.
+
+2017-08-18 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ `pdfmom' man page incorrectly displayed.
+
+ * src/devices/gropdf/pdfmom.1.man: Remove `]' character mistakenly
+ added at the beginning of the file.
+
+2017-08-18 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Incorrect font name for CBI in Foundry.in.
+
+2017-08-15 Ingo Schwarze <schwarze@usta.de>
+
+ Fix build if `configure' check for `fprintf-posix' fails.
+
+ See bug at: https://savannah.gnu.org/bugs/?51554. If tests for
+ posix compliance of fprintf from `gnulib_m4/fprintf-posix.m4'
+ fail, a replacement function of `fprintf' is used. Consequently,
+ all executables that use this function must link against the
+ gnulib (`libgnu.a'). The bug was introduced by commit
+ fa41eeba06987a12bc0434f8b51896d4618a3997.
+
+ * src/devices/xditview/xditview.am
+ * src/preproc/eqn/eqn.am
+ * src/preproc/pic/pic.am
+ * src/preproc/preconv/preconv.am
+ * src/preproc/refer/refer.am
+ * src/preproc/soelim/soelim.am
+ * src/preproc/tbl/tbl.am
+ * src/utils/addftinfo/addftinfo.am
+ * src/utils/hpftodit/hpftodit.am
+ * src/utils/indxbib/indxbib.am
+ * src/utils/lkbib/lkbib.am
+ * src/utils/lookbib/lookbib.am
+ * src/utils/pfbtops/pfbtops.am
+ * src/utils/tfmtodit/tfmtodit.am
+ * src/utils/xtotroff/xtotroff.am: link against libgnu.a
+
+ * INSTALL.REPO: recommend the autoconf and automake versions used
+ during automake migration rather than the minimum versions.
+
+2017-08-04 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ See bug at: https://savannah.gnu.org/bugs/?51568
+
+ * src/devices/gropdf/gropdf: Further 'fix' to handle those octal
+ characters. See comment #5 - thank you Bjarni.
+
+2017-07-31 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ See bug at: https://savannah.gnu.org/bugs/?51568
+
+ * src/devices/gropdf/gropdf: previous 'fix' was too narrow, all
+ '\' characters should be escaped. Also there was an unwanted
+ interaction with code in routine 'do_t'. Sometimes, do_C, when
+ the named glyph is mapped to a chr < 32, this is encoded as octal
+ \nnn, so in this case the '\' must not be escaped.
+
+2017-07-25 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ If input text contained string which could be interpreted as
+ escaped octal (\ddd) a pdf viewer would interpret as an octal
+ character. See bug at: https://savannah.gnu.org/bugs/?51568
+
+ * src/devices/gropdf/gropdf: protect text which resembles \ddd
+ by escaping with extra '\'.
+
+2017-07-12 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Use uchardet library in `preconv' to detect input file encoding
+
+ * m4/groff.m4 (GROFF_UCHARDET): new macro that use pkg-config to
+ check if uchardet library is available and define new option
+ `--with-uchardet':
+ - If `yes' is passed and uchardet is not found, configure fails.
+ - If `no' is passed we don't use uchardet and don't display any
+ warning.
+ - If `auto' (or any other option) is passed of if --with-uchardet
+ is not passed, we use uchardet if available, otherwise the build
+ goes on but a warning is displayed at the end of the configuration
+ phase.
+
+ * configure.ac: use pkg-config and `GROFF_UCHARDET' to detect the
+ presence of uchardet library.
+
+ * src/preproc/preconv/preconv.am: link against uchardet library if
+ available.
+
+ * src/preproc/preconv/preconv.cpp (detect_file_encoding): new
+ function that uses uchardet library to detect input file encoding.
+ (do_file): `detect_file_encoding'.
+
+ * src/preproc/preconv/preconv.1.man: update `preconv'
+ documentation.
+
+ See https://savannah.gnu.org/bugs/?51330
+
+2017-07-12 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Add gnulib module fprintf-posix
+
+ * bootstrap.conf: do it.
+
+ * Fix compilation in some files that needed inclusion of
+ `config.h'.
+
+ See https://savannah.gnu.org/bugs/?51330
+
+2017-05-09 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Package `ghostscript' 9.21 renamed some fonts installed in
+ `/usr/share/ghostscript/9.21/Resource/Font', e.g. URWGothicL-Demi
+ renamed to URWGothic-Demi, and dropped the installation of URW
+ fonts in `/usr/share/fonts/type1/gsfonts/', breaking font
+ generation in `font/devpdf/util/BuildFoundries.pl'.
+
+ * m4/groff.m4 (GROFF_URW_FONTS_PATH): New option
+ `--with-urw-fonts-dir' to pass a custom path to URW fonts.
+ (GROFF_URW_FONTS): search the presence of URW fonts by checking if
+ file `a010013l.pfb' exists in the paths given by `gs -h', in the
+ default paths used in `Foundry.in' and in the path given with
+ option `--with-urw-fonts-dir'.
+ (GROFF_URW_FONTS_CHECK): print a warning at the end of the
+ configuration phase if no URW fonts were found.
+
+ * configure.ac: call new macros `GROFF_URW_FONTS_PATH',
+ `GROFF_URW_FONTS' and `GROFF_URW_FONTS_CHECK'.
+
+ * font/devpdf/Foundry.in: add new basic fonts names and pass
+ custom URW fonts path `urwfontsdir'.
+
+ * font/devpdf/devpdf.am: substitute `urwfontsdir' in `Foundry'
+ generation.
+
+ Fixes https://savannah.gnu.org/bugs/?50786
+
+2017-05-04 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Fixes for gropdf
+
+ * src/devices/gropdf/gropdf.pl: Escape '(' and ')' if
+ used in a bookmark, and ignore relative move 'h' if
+ followed by absolute move 'H' in groff intermediate output.
+
+2017-04-29 Ingo Schwarze <schwarze@usta.de>
+
+ groff_char(7): improve description of ASCII characters
+
+ * man/groff_char.7.man: improve description of ASCII
+ characters that do not render as themselves
+
+ See https://savannah.gnu.org/bugs/?50898
+
+2017-04-28 Osamu Sayama
+
+ lkbib with empty file dumps core
+
+ * src/libs/libbib/index.cpp: Test if argument to malloc(3)
+ is zero.
+
+ See https://savannah.gnu.org/bugs/?48433
+
+2017-04-28 David Gilman
+
+ Typo in groff.texi
+
+ * doc/groff.texi: Dp instead of DP used
+
+ https://savannah.gnu.org/bugs/index.php?42251
+
+2017-04-28 Rich Burridge
+
+ "grops -c a" dumps core
+
+ * src/devices/grops/ps.cpp: conversion specifier %s changed
+ to %1 (errprint() uses special syntax different from
+ printf(3))
+
+ https://savannah.gnu.org/bugs/?42190
+
+2017-04-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Macro "itc" is needed to make escape "\c" useful
+
+ * tmac/an-old.tmac: .it changed to .itc
+
+ https://savannah.gnu.org/bugs/?42907
+
+2017-04-28 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ First italic correction (\,) is absent in macros IR and IB
+
+ * tmac/an-old.tmac: Italic correction added
+
+ https://savannah.gnu.org/bugs/?42906
+
+2017-04-13 Ingo Schwarze <schwarze@usta.de>
+
+ * tmac/doc.tmac-u: Make .Lk with more than two arguments
+ mdoc(7) conform
+
+ Use the second and following arguments as the link text.
+
+ Do not mark up the following colon with \fI.
+
+ Handle any number of trailing delimiters.
+
+ Problem reported by Anthony Bentley <bentley@openbsd.org>,
+ fixed by Ingo Schwarze <schwarze@usta.de>.
+
+ https://savannah.gnu.org/bugs/?50789
+
+2017-04-12 Werner LEMBERG <wl@gnu.org>
+
+ Update German hyphenation patterns.
+
+ * tmac/de.tmac: Add more hcode values.
+ No longer use `hyphenex.det'.
+ * tmac/hyphen.den, tmac/hyphen.det: Updated to `dehyph-exptl-0.41'.
+ * tmac/hyphenex.det: Removed, no longer needed.
+ * tmac/tmac.am (TMACNORMALFILES): Updated.
+
+2017-04-10 Ingo Schwarze <schwarze@usta.de>
+
+ * tmac/doc.tmac-u: Punctuation handling of .Lk fixed
+
+ The implementation of the groff_mdoc(7) .Lk (hyperlink) macro
+ contains code to make sure that the second argument is not
+ punctuation before treating it as a link text, but the test
+ can never lead to the result "punctuation" because the
+ initialization of the global variable doc-width was missing
+ before the call to doc-get-arg-type. Consequently, even "."
+ was not recognized as punctuation.
+
+ Problem reported by Anthony Bentley <bentley@openbsd.org>,
+ fixed by Ingo Schwarze <schwarze@usta.de>.
+
+ https://savannah.gnu.org/bugs/?50771
+
+2017-04-07 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/hyphenex.us: Updated to current release from TeXLive.
+
+2017-02-23 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ * bootstrap: update with latest version from gnulib.
+ * gnulib: update the git submodule with latest version (commit
+ 4084b3a1094372b960ce4a97634e08f4538c8bdd from gnulib).
+
+2017-02-18 Colin Watson <cjwatson@debian.org>
+
+ * src/preproc/eqn/main.cpp: Define EQ and EN if they are not already
+ defined, to appease "groff -wmac".
+ * src/preproc/pic/main.cpp: Likewise for PS and PE.
+
+ Fixes: http://bugs.debian.org/495713
+
+2017-02-16 Ingo Schwarze <schwarze@usta.de>
+
+ mdoc %T: use typographic quotes
+
+ * tmac/doc.tmac-u: Changed \*[q] to \*[Lq] and \*[Rq]
+
+ Citing Anthony J. Bentley:
+
+ The below patch causes -mdoc to generate typographic quotes
+ around a %T (reference title) instead of straight quotes.
+
+ I also submitted similar diffs to mandoc and heirloom troff
+ (which haven't been committed yet). It would be nice for
+ the major implementations not to differ here, and the change
+ is trivial.
+
+ It's worth noting that groff's refer(1) already uses typographic
+ quotes around %T with my -ms documents.
+
+ https://savannah.gnu.org/bugs/?43553
+ http://comments.gmane.org/gmane.comp.tools.mdocml.devel/723
+ https://github.com/n-t-roff/heirloom-doctools/pull/6
+
+2017-02-16 Ingo Schwarze <schwarze@usta.de>
+
+ mdoc \*[Lq], \*[Rq]: map to \[lq], \[rq] for all terminal
+ devices
+
+ * tmac/doc-nroff-u: .ds Lq \[lq], .ds Rq \[rq]
+
+ If you use \[lq] and \[rq] directly in your document, the
+ quotes already render nicely for all terminal devices:
+ as U+201C and U+201D for devutf8 and as ASCII 0x22 (") for
+ devascii and devlatin1.
+ So it is not quite clear why doc-nroff should avoid
+ \[lq] and \[rq] when resolving \[Lq] and \[Rq] for devascii
+ and devlatin1. Quite to the contrary, many people seem to
+ consider "``" and "''" ugly renderings because they look
+ unbalanced.
+
+ See
+
+ https://savannah.gnu.org/bugs/?43554
+
+2017-02-16 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Use the traditional (portable) method of using a backslash
+ after '\{'
+
+ * contrib/mm/m.tmac, tmac/e.tmac-u,
+ tmac/s.tmac: Add '\' after "\{"
+
+ See
+
+ https://savannah.gnu.org/bugs/?49917
+
+2017-02-16 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Use explicit \s±n after a variable string instead of \s0
+
+ * tmac/e.tmac-u: Change \s0 to \s+3
+
+ See
+
+ https://savannah.gnu.org/bugs/?49915
+
+2016-12-29 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Remove duplicate '-e' from gropdf manual.
+
+ * src/devices/gropdf/gropdf.1.man: Remove first '-e'.
+
+2016-11-25 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Remove incorrect info from gropdf manual.
+
+ * src/devices/gropdf/gropdf.1.man: Remove references
+ to postscript.
+
+2016-11-22 George HELFFRICH <ghfbsd@gmail.com>
+
+ [me]: Fix alignment of `(c' macro (#43306).
+
+ * tmac/e.tmac-u ((c): Properly initialize environment.
+
+2016-11-20 George HELFFRICH <ghfbsd@gmail.com>
+
+ [me] Fix vertical spacing of `(b' macro (#42217).
+
+ * tmac/e.tmac-u (@k): Apply pre-spacing conditionally.
+ ()b): Updated.
+
+2016-11-19 George HELFFRICH <ghfbsd@gmail.com>
+
+ [me] Fix remaining bugs with line numbering (#49650).
+
+ * tmac/e.tmac-u (nm): Redefine.
+ (.n1, .n2): Update so all environments affected.
+ (.ip): Fix double numbering.
+ (.)c, .)l): Restore numbering after diversion included.
+
+2016-11-01 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ gropdf remaps characters to position 13 (#48986).
+
+ * src/devices/gropdf/gropdf: Do not remap anything to chr(13).
+
+2016-11-01 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ pdfmom was not including $preconv in the initial groff run.
+
+ * src/devices/gropdf/pdfmom.pl: Include $preconv in first
+ groff run which resolves forward pdf references.
+
+2016-10-05 Ingo Schwarze <schwarze@usta.de>
+
+ * tmac/doc.tmac-u: Simplify behaviour of .Bl -tag
+ * tmac/groff_mdoc.7.man: Update documentation to the new
+ behaviour of .Bl -tag
+
+ If an mdoc(7) .Bl -tag macro lacks the -width argument, the
+ body indentation is calculated separately for each child .It
+ macro. Neither the Heirloom nor the mandoc(1) implementation
+ of the mdoc(7) language show such behaviour; both use a
+ constant default width for the whole list in that case.
+
+ Apart from doubts whether lists with variable indentation are
+ typographically sound in the first place, support for variable
+ widths in groff is so restricted that it's practically
+ useless. For each .It, the width will be the default width of
+ whatever happens to be the leading macro after the .It, or of
+ .No if .It is not followed by a macro.
+
+ See
+
+ https://savannah.gnu.org/bugs/index.php?49272
+
+ and
+
+ http://lists.gnu.org/archive/html/groff/2016-10/msg00006.html
+
+
+2016-09-09 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/sv.tmac: Fix `.hy' settings (#48904).
+
+ The Swedish patterns allow hyphenation after the first character and
+ before the last two characters, not vice versa.
+
+2016-09-09 Werner LEMBERG <wl@gnu.org>
+
+ troff: Fix hyphenation (#48904).
+
+ This commit fixes two bugs present from the very beginning: troff
+ (a) didn't allow to hyphenate words shorter than 4 characters
+ (ignoring `.hy' settings), and (b) never tried to hyphenate after
+ the first character due to wrong handling of the `.hy' settings.
+
+ * src/roff/troff/env.cpp (environment::hyphenate_line): Use
+ hyphenation flags to determine the minimum word length considered
+ for hyphenation.
+ (hyphenate): Fix handling of `HYPHEN_FIRST_CHARS'.
+
+2016-07-29 Colin Watson <cjwatson@debian.org>
+
+ Implement `SOURCE_DATE_EPOCH' for reproducible builds.
+
+ * src/include/curtime.h: New file.
+ * src/libs/libgroff/curtime.cpp: New file.
+ * src/libs/libgroff/libgroff.am (libgroff_a_SOURCES): Add
+ src/libs/libgroff/curtime.cpp.
+
+ * src/roff/troff/input.cpp (init_registers): Use `current_time'
+ instead of `time(0)'.
+ * src/devices/grohtml/post-html.cpp
+ (html_printer::do_file_components): Likewise.
+ (html_printer::~html_printer): Likewise.
+ * src/devices/grops/ps.cpp (ps_printer::~ps_printer): Likewise.
+ * src/devices/gropdf/gropdf.pl: Use `$ENV{SOURCE_DATE_EPOCH}` if
+ available in preference to `time`.
+
+ * doc/groff.texi (Environment): Document `SOURCE_DATE_EPOCH'.
+ * src/devices/grohtml/grohtml.1.man (ENVIRONMENT): Likewise.
+ * src/devices/gropdf/gropdf.1.man (ENVIRONMENT): Likewise.
+ * src/devices/grops/grops.1.man (ENVIRONMENT): Likewise.
+
+2016-04-19 Carsten Kunze <carsten.kunze@arcor.de>
+
+ eqn: Fix problem with explicit spacing before unary operator
+
+ * src/preproc/eqn/list.cpp (list_box::compute_metrics): Change
+ item spacing type from BINARY to ORDINARY also when previous
+ type is SUPPRESS_TYPE.
+
+ As reported in
+
+ http://lists.gnu.org/archive/html/groff/2016-04/msg00024.html
+
+ by Douglas McIlroy <doug@cs.dartmouth.edu>
+
+ an implicit space is added between an unary operator and its
+ operand when an explicit space is put before the unary
+ operator. Unary operators are initially set up as binary.
+ Depending on the preceding element their type can be changed
+ to unary. This did not happen when an explicit space ('~' or
+ '^') had been before that operator.
+
+2016-02-16 Bálint Réczey <balint@balintreczey.hu>
+
+ Fix many malloc/new vs. free/delete/delete[] mismatches (#47164)
+
+ * src/devices/grops/ps.cpp (ps_font::~ps_font,
+ ps_printer::define_encoding): Use `free'.
+ * src/devices/grops/psrm.cpp (resource::~resource,
+ resource_manager::output_prolog, resource_manager::supply_resource,
+ resource_manager::read_download_file): Ditto.
+
+ * src/include/ptable.h (PTABLE::~PTABLE, PTABLE::define): Ditto.
+
+ * src/libs/libgroff/searchpath.cpp
+ (search_path::open_file_cautious): Ditto.
+
+ * src/libs/libgroff/string.cpp: Include `stdlib.h'.
+ (string::extract): Use `malloc'.
+
+ * src/preproc/eqn/box.cpp (quoted_text_box::~quoted_text_box): Use
+ `free'.
+
+ * src/preproc/eqn/lex.cpp (definition::~definition,
+ macro_input::~macro_input, top_input::~top_input, do_definition):
+ Ditto.
+
+ * src/preproc/eqn/main.cpp (main): Ditto.
+
+ * src/preproc/eqn/other.cpp: Include `stdlib.h'.
+ (size_box::~size_box, font_box::~font_box): Use `free'.
+
+ * src/preproc/eqn/text.cpp: Include `stdlib.h'.
+ (box::set_spacing_type, special_char_box::~special_char_box,
+ split_text): Use `free'.
+
+ * src/preproc/grn/main.cpp (conv): Use `free'.
+
+ * src/preproc/html/pre-html.cpp (get_resolution): Ditto.
+
+ * src/preproc/pic/lex.cpp (macro_input::~macro_input,
+ argument_macro_input::~argument_macro_input, for_input::~for_input):
+ Ditto.
+
+ * src/preproc/pic/main.cpp (do_picture): Ditto.
+
+ * src/preproc/pic/object.cpp: Include `stdlib.h'.
+ (text_piece::~text_piece, string_list::~string_list): Use `free'.
+
+ * src/preproc/pic/pic.ypp (placeless_element, element, text, label,
+ expr_not_lower_than): Ditto.
+
+ * src/preproc/pic/troff.cpp (troff_output::reset_color): Ditto.
+
+ * src/preproc/preconv/preconv.cpp (check_coding_tag): Ditto.
+
+ * src/preproc/soelim/soelim.cpp (do_file): Ditto.
+
+ * src/preproc/tbl/table.cpp (text_entry::~text_entry): Ditto.
+
+ * src/roff/groff/groff.cpp (possible_command::~possible_command,
+ possible_command::set_name): Ditto.
+
+ * src/roff/troff/env.cpp (hyphen_trie::read_patterns_file): Ditto.
+
+ * src/roff/troff/node.cpp (suppress_node::tprint): Ditto.
+
+2016-02-16 Bálint Réczey <balint@balintreczey.hu>
+
+ Use `malloc' in `strsave'; use `free' for returned pointers (#47164).
+
+ * src/libs/libgroff/font.cpp (text_file::~text_file): Use `free'.
+
+ * src/libs/libgroff/searchpath.cpp (search_path::open_file): Use
+ `free'.
+
+ * src/libs/libgroff/strsave.cpp: Include `stdlib.h'.
+ (strsave): Use `malloc'.
+
+2016-02-16 Bálint Réczey <balint@balintreczey.hu>
+
+ Simplify memory allocation (#47162).
+
+ Many invalid memory accesses were caught by UBSAN (e.g., invalid
+ memory access in `small_temp_iterator::operator new') while
+ bootstrapping hardened1-linux-amd64 Debian port in the `free_list'
+ handling because it doesn't properly handle the padding between
+ array elements.
+
+ Some places were already #if 0-d out anyway.
+
+ * src/roff/troff/input.cpp (small_temp_iterator): Remove class.
+ (make_temp_iterator): Use `temp_iterator' only.
+
+ * src/devices/grotty/tty.cpp (tty_glyph): Remove `free_list', `new',
+ and `delete'.
+
+ * src/include/color.h, src/include/color.cpp (color): Ditto.
+
+ * src/roff/troff/env.cpp (tab): Ditto.
+
+ * src/roff/troff/node.cpp (glyph_node): Ditto.
+
+2016-02-15 Bálint Réczey <balint@balintreczey.hu>
+
+ [pre-grohtml] Fix out-of-bounds array access (#47161).
+
+ * src/preproc/html/pre-html.cpp (char_buffer::write_upto_newline):
+ Implement it.
+
+2016-02-15 Bálint Réczey <balint@balintreczey.hu>
+
+ Don't use `memcpy' with NULL input or output argument (#47160).
+
+ * src/libs/libgroff/string.cpp (string::string, string::operator=):
+ Implement it.
+
+ * src/roff/troff/input.cpp (temp_iterator::temp_iterator): Implement
+ it.
+
+2016-02-04 Carsten Kunze <carsten.kunze@arcor.de>
+
+ * tmac/s.tmac: Bugfix of previous commit simplified (and
+ introduced redundancy removed) by use of .par*start for .QS and
+ .QE. This is consistent since any other paragraph macro is
+ using .par*start.
+
+2016-02-02 Carsten Kunze <carsten.kunze@arcor.de>
+
+ * tmac/s.tmac: Macros .QS and .QE changed to insert vertical
+ inter-paragraph space. A paragraph bracketed with .QS/.QE
+ should appear identical to a .QP paragraph followed by .LP.
+
+ * tmac/groff_ms.7.man, doc/groff.texi: Documentation of macros
+ .QS and .QE added and .QP information improved (effect of
+ registers QI and PD).
+
+ See also discussion at groff@gnu.org, thread starting at
+
+ http://lists.gnu.org/archive/html/groff/2016-01/msg00033.html
+
+ Issue reported by Douglas McIlroy <doug@cs.dartmouth.edu>
+
+2015-12-26 Carsten Kunze <carsten.kunze@arcor.de>
+
+ * contrib/mm/m.tmac: Disable macro misc@tag in case output
+ type is not HTML.
+
+ This macro did cause unwanted space in case a MM macros .H
+ had been followed immediately by .DS.
+
+ (See also discussion at groff@gnu.org, thread starting at
+ http://lists.gnu.org/archive/html/groff/2015-12/msg00033.html)
+
+ Bug reported by Damian McGuckin <damianm@esi.com.au>.
+
+2015-12-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/text.cpp (entity_table): s/lamda/lambda/.
+
+ Bug reported by Brian McGuinness <mcguinne@fdu.edu>.
+
+2015-10-27 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ gropdf was choking on -I flag passed by groff, now uses
+ these directories to search for included pdfs.
+
+ * src/devices/gropdf/gropdf.pl: Handle -I flag, avoid
+ unitialised values.
+
+ * src/roff/groff/groff.1.man: Include 'X pdf: pdfpic'
+
+ * src/devices/gropdf/gropdf.1.man: Document -I flag
+
+2015-09-10 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: fix comments
+
+2015-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/troffrc: Add .mso for file `pdfpic.tmac'.
+
+2015-08-28 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ * Makefile.am:
+ - Use only the naming `.section.man' for all man.pages.
+ - Replace `.man.n' by `.man' only, such that no `.n' is
+ generated.
+ - For example, the source `groff.7.man' is transformed into
+ `groff.7' in the same directory and then is by installing just
+ copied into one of the suitable installed man directory.
+
+2015-08-27 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/pfdpic.tmac: Add tmac file for macro `PDFPIC'.
+
+ * tmac/tmac.am: Add new `pdfpic.tmac' file.
+
+ * man/groff_tmac.5.man: Add definition for the new tmac.
+
+2015-08-22 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * all man-pages *.man: Rename man-pages such that the man section
+ number before the final `.man'.
+
+ * all *.am: Include renaming.
+
+ * Makefile.am: Reset `.man.n' by `.[157].man.n' with SUFFIXES
+ `.[157].man .n'.
+
+2015-08-20 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.am: Fix definition of man[157]_MANS.
+
+2015-08-13 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * all *.am: Correct Emacs mode `End:' instead of `End.'.
+
+2015-08-09 Werner LEMBERG <wl@gnu.org>
+
+ Revert previous commit, since it doesn't work correctly yet.
+
+2015-08-07 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ Add section name to all man-page names.
+
+ * Makefile.am: In `install-prefix-man' and `uninstall-prefix-man'
+ change `sed' commands. Correct saving in man[157]_MANS.
+
+ * all *.man in source tree: Rename `manpage.man' to
+ `manpage.[157].man'.
+
+ * all makefile.am in source tree: Add new man-page file name.
+
+2015-08-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.am, arch/mingw/mingw.am, arch/misc/misc.am,
+ * contrib/eqn2graph/eqn2graph.am, contrib/grap2graph/grap2graph,
+ * contrib/pic2graph/pic2graph.am, doc/doc.am,
+ * font/devX100/devX100.am, font/devX100-12/devX100-12.am,
+ * font/devX75/devX75.am, font/devX75-12/devX75-12.am,
+ * font/devascii/devascii.am, font/devcp1047/devcp1047.am,
+ * font/devdvi/devdvi.am, font/devhtml/devhtml.am,
+ * font/devlatin1/devlatin1.am, font/devlbp/devlbp.am,
+ * font/devlj4/devlj4.am, font/devpdf/devpdf.am,
+ * font/devps/devps.am, font/devutf8/devutf8.am,
+ * font/scripts/scripts.am, man/man.am,
+ * src/devices/grodvi/grodvi.am, src/devices/grohtml/grohtml.am,
+ * src/devices/grolbp/grolbp.am, src/devices/grolj4/grolj4.am,
+ * src/devices/gropdf/gropdf.am, src/devices/grops/grops.am,
+ * src/devices/grotty/grotty.am,
+ * src/include/include.am, src/libs/libbib/libbib.am,
+ * src/libs/libdriver/libdriver.am, src/libs/libgroff/libgroff.am,
+ * src/libs/libxutil/libxutil.am, src/preproc/grn/grn.am,
+ * src/preproc/html/html.am, src/preproc/pic/pic.am,
+ * src/preproc/preconv/preconv.am, src/preproc/tbl/tbl.am
+ * src/preproc/refer/refer.am, src/preproc/soelim/soelim.am,
+ * src/roff/groff/groff.am, src/roff/grog/grog.am,
+ * src/roff/nroff/nroff.am, src/roff/troff/troff.am,
+ * src/utils/addftinfo/addftinfo.am,
+ * src/utils/afmtodit/afmtodit.am, src/utils/hpftodit/hpftodit.am,
+ * src/utils/indxbib/indxbib.am, src/utils/lkbib/lkbib.am,
+ * src/utils/lookbib/lookbib.am, src/utils/pfbtops/pfbtops.am,
+ * src/utils/tfmtodit/tfmtodit.am, src/utils/xtotroff/xtotroff.am,
+ * tmac/tmac.am:
+ Add `Last update'. Setup Emacs mode.
+
+2015-07-29 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Add -T for all `grog' output, also using
+ -Tps when no option -T is given in the arguments.
+
+ * src/roff/grog/grog.man: Add information about -T output.
+
+2015-07-23 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff.man: Add last update. Add link on Wikipedia on groff.
+ Add link of groff tutorial by Laha.
+
+2015-07-19 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/*.pl: Add last update.
+
+ * src/roff/grog/subs.pl: Remove call to Perl INC::System::Simple,
+ use backticks instead.
+ Define &err().
+ Reorder some extensions.
+ Distinguish between .TH at first command for man and later on for
+ ms.
+
+2015-07-01 Peter Bray <pdb_ml@yahoo.com.au>
+
+ Fix Savannah bug #44784.
+
+ Compatibility Mode rendering of groff manual pages
+
+ * m4/groff.m4 (GROFF_WITH_COMPATIBILITY_WRAPPERS): New macro to
+ implement 'configure' option
+ '--with-compatibility-wrappers=<value>'. With this option the
+ user can control how groff compatibility wrappers for
+ vendor-provided non-GNU macro sets are installed.
+
+ * configure.ac: Use new macro GROFF_WITH_COMPATIBILITY_WRAPPERS.
+
+ * Makefile.am: Define tmac_*_prefix if 'compatibility_wrappers' is
+ set to 'yes'.
+
+ * tmac/tmac.am: Use 'compatibility_wrappers' to control the
+ installation:
+
+ - If set to `no', the groff-provided macro set are installed in
+ <prefix>/share/groff/<version>/tmac/ with the original macro set
+ name.
+
+ - If set to `yes', the groff-provided macro set are installed in
+ <prefix>/share/groff/<version>/tmac/ with a prefix of
+ $(tmac_prefix) (which is usually `g') and the generated
+ compatibility wrappers are installed in
+ <prefix>/lib/groff/site-tmac, with the original macro set name.
+
+ - If set to `manual', the groff-provided macro set are installed
+ in <prefix>/share/groff/<version>/tmac/ with the original macro
+ set name and the generated compatibility wrappers are installed in
+ <prefix>/lib/groff/site-tmac, with a name of
+ <macro><wrapper_suffix> (which is usually `-os').
+
+2015-06-17 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tty.tmac: Fix mapping of \[bu] character for -Tutf8.
+
+ Problem reported by carsten.kunze@arcor.de.
+
+2015-06-15 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ pdfmom should use $RT_SEP as path separator.
+
+ * src/devices/gropdf/gropdf.am: Use @RT_SEP@ as path separator.
+
+ * src/devices/gropdf/pdfmom.pl: As above but also fix typo in regex
+ for grep.
+
+2015-05-08 Eli Zaretskii <eliz@gnu.org>
+
+ [groff] Make relocation really work.
+
+ See
+
+ https://lists.gnu.org/archive/html/groff/2015-05/msg00000.html
+
+ * src/roff/groff/groff.cpp: Include `relocate.h'.
+ (main): Use `relocatep'.
+
+2015-05-03 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix Savannah bug #44768 (Solaris 10 compatibility issues).
+
+ * m4/groff.m4 (GROFF_DIFF_D): new macro to check if `diff' has
+ option -D, and search for `gdiff' if not (new variable DIFF_PROG
+ will contain the `diff' program to be used).
+
+ * m4/groff.m4 (GROFF_HAVE_TEST_EF_OPTION): new macro to check if
+ `test' supports the option -ef (created new variable
+ HAVE_TEST_EF_OPTION).
+
+ * m4/groff.m4 (GROFF_BASH): new macro to search for `bash' (new
+ variable BASH_PROG will contain the full path to `bash' or
+ `/bin/sh' if `bash' was not found).
+
+ * configure.ac: use the 3 new macros defined in m4/groff.m4.
+
+ * contrib/gdiffmk/gdiffmk.am: set HAVE_TEST_EF_OPTION, BASH_PROG,
+ DIFF_PROG in the generated script `gdiffmk'.
+
+ * contrib/gdiffmk/gdiffmk.sh:
+ - Fix incorrect space after '!' in sed script regex.
+ - `test -ef' is not portable: If `bash' is not available and the
+ shell does not support `test -ef', the option to pass a third
+ argument as the output file is disabled.
+ - Report an error if `diff' does not support -D option.
+ - GNU diff and Solaris diff support -D, but #ifndef / #endif are
+ treated differently (GNU adds a '!' in the #endif): modify the
+ regexs in the sed script accordingly.
+
+2015-05-01 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.am (TMACNORMALFILES): Add `zh.tmac'.
+
+2015-04-30 Darcy SHEN <sadhen1992@gmail.com>
+
+ Fix Savannah bug #44941.
+
+ * tmac/zh.tmac: New file to support basic Chinese (both simplified
+ and traditional).
+
+2015-04-22 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Fix Savannah bug #44891.
+
+ * src/devices/gropdf/gropdf.pl: If module Compress::Zlib is not
+ available fall back to producing uncompressed PDF and output a
+ warning.
+
+2015-04-22 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ Fix Savannah bug #44894.
+
+ * tmac/strip.sed: Add a `generated file' warning.
+
+2015-04-21 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Fix Savannah bug #44890.
+ Patch by Peter Bray.
+
+ * font/devpdf/devpdf.am: Don't use 'find -maxdepth'.
+
+2015-03-07 Ingo Schwarze <schwarze@openbsd.org>
+
+ [mdoc] Fix Savannah bug #44733.
+
+ Prevent mdoc(7) Bl with trailing -width or -offset from picking up
+ old args.
+
+ * tmac/doc.tmac-u (doc-do-Bl-args): When checking whether there is
+ another argument to a Bl macro, do not inspect the argument list
+ because it is never cleaned and may contain arguments from previous
+ macro invocations. Instead, inspect the argument count which is
+ always up to date.
+
+2015-04-10 Daiki Ueno <ueno@gnu.org>
+
+ Fix link error on NetBSD 6.
+
+ Reported by carsten.kunze@arcor.de in:
+ <https://lists.gnu.org/archive/html/groff/2015-04/msg00000.html>.
+ The problem can also be reproduced if gl_cv_func_wcwidth_works=no
+ is passed to configure.
+
+ * src/preproc/grn/grn.am (grn_LDADD): Change the link order of
+ libgroff.a and lib/libgnu.a according to dependency.
+ * src/roff/troff/troff.am (troff_LDADD): Likewise.
+
+2015-04-08 Werner LEMBERG <wl@gnu.org>
+
+ Fix Savannah bug #44767.
+ Patch by Peter Bray.
+
+ * src/roff/grog/grog.am (grog): Correctly substitute `grog_dir'.
+
+2015-04-03 Werner LEMBERG <wl@gnu.org>
+
+ Fix Savannah bug #44708 (2/2).
+
+ Make man pages work in compatibility mode.
+ Also fix some minor typos.
+
+ * contrib/pic2graph/pic2graph.man, man/ditroff.man, man/groff.man,
+ man/groff_diff.man, man/groff_out.man, man/groff_tmac.man,
+ man/roff.man, src/devices/grodvi/grodvi.man,
+ src/devices/grohtml/grohtml.man, src/devices/grolbp/grolbp.man,
+ src/devices/grolj4/grolj4.man, src/devices/grolj4/lj4_font.man,
+ src/devices/gropdf/gropdf.man, src/devices/gropdf/pdfmom.man,
+ src/devices/grops/grops.man, src/devices/grotty/grotty.man,
+ src/devices/xditview/xditview.man, src/preproc/eqn/eqn.man,
+ src/preproc/eqn/neqn.man, src/preproc/grn/grn.man,
+ src/preproc/pic/pic.man, src/preproc/preconv/preconv.man,
+ src/preproc/refer/refer.man, src/preproc/soelim/soelim.man,
+ src/preproc/tbl/tbl.man, src/roff/groff/groff.man,
+ src/roff/grog/grog.man, src/roff/nroff/nroff.man,
+ src/roff/troff/troff.man, src/utils/addftinto/addftinfo.man,
+ src/utils/afmtodit/afmtodit.man, src/utils/hpftodit/hpftodit.man,
+ src/utils/indxbib/indxbib.man, src/utils/lkbib/lkbib.man,
+ src/utils/lookbib/lookbib.man, src/utils/pfbtops/pfbtops.man,
+ src/utils/tfmtodit/tfmtodit.man, src/utils/xtotroff/xtotroff.man,
+ tmac/groff_man.man, tmac/groff_trace.man: Do it.
+
+2015-04-03 Werner LEMBERG <wl@gnu.org>
+
+ Fix Savannah bug #44708 (1/2).
+
+ * tmac/andoc.tmac (reload_doc, reload_man): Don't use `de1',
+ otherwise we can't manipulate the compatibility flag within the
+ macro.
+
+ * tmac/doc-common-u (Dt): Remove invalid leading whitespace.
+
+2015-03-11 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: Was not handling the final glyph
+ correctly in the "standard" fonts which are not embedded. They
+ actually have 257 glyphs (0-256) not 256 as I'd assumed, so the
+ remappiing code needs to be applied for them as well as the
+ embedded downloadable fonts.
+
+2015-03-11 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: Fix problem remappiing
+ ellipsis (affects all glyphs > 255).
+
+2015-03-07 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/tmac.am (TMACSPECIALFILES): Removed. No longer used.
+
+2015-03-07 Ingo Schwarze <schwarze@openbsd.org>
+
+ * tmac/doc-common-u (Dd): Avoid warning `unbalanced .el request'.
+
+2015-02-12 Werner LEMBERG <wl@gnu.org>
+
+ Minor fixes due to renaming `groff.texinfo' to `groff.texi'.
+
+ * doc/doc.am (SUFFIXES): Update.
+ * m4/groff.m4 (GROFF_MAKEINFO): Update.
+
+2015-01-30 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Automake migration and Gnulib integration.
+
+ Gnulib:
+ - Added gnulib as a git submodule.
+ - Integrated bootstrap scripts from gnulib.
+ - Gnulib m4 directory is now in `gnulib_m4', while Gnulib's .c
+ files are located in `lib'. `gnulib_m4' and `lib' are generated
+ and distributed.
+
+ Automake:
+ - Removed Makefiles from the old build system.
+ - Converted Makefile.in into Makefile.am.
+ - Converted Makefile.sub files in all directories to a .am file.
+ - Removed configure, src/include/config.hin (now generated).
+ - Removed various helper scripts (config.guess, config.rpath...),
+ now installed by bootstrap in `build-aux'.
+ - Moved aclocal.m4 to acinclude.m4 (aclocal.m4 is now generated).
+ - Makefile in non-recursive style.
+ - Updated INSTALL.REPO (INSTALL is now a symlink to
+ gnulib/doc/INSTALL, original INSTALL file moved to INSTALL.extra)
+ - Added (empty) THANKS, AUTHORS files.
+ - Added a document on the usage of automake in groff in
+ doc/automake.pdf.
+
+ Additional features:
+ - Out-of-source build is supported.
+ - Parallel build is possible (make -j).
+ - Automatic targets from Automake: `make dist', `make distcheck'.
+ - 'make check' is available for automatic testing, gdiffmk's test
+ was plugged to this target.
+ - Auto-detect if make has builtin variable `RM'.
+
+2015-01-14 Ingo Schwarze <schwarze@openbsd.org>
+
+ Fix Savannah bug #43905.
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
+ * src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Remove
+ double entries for `rk', `lk', `lt', `rt', `rb', and `lb'.
+
+2014-12-16 Werner LEMBERG <wl@gnu.org>
+
+ Update Unicode-to-Unicode mapping to version 7.0.0.
+
+ * src/libs/libgroff/make-uniuni: Update emitted copyright.
+
+ * src/libs/libgroff/uniuni.cpp: Regenerated.
+
+2014-11-29 Werner LEMBERG <wl@gnu.org>
+
+ Fix previous commit.
+
+ We forgot to test whether the patch works if compiling from
+ scratch...
+
+ Problem reported by Bertrand Garrigues
+ <bertrand.garrigues@laposte.net>.
+
+ * src/include/lib.h (interpret_lf_args, normalize_for_lf): Move
+ declarations to...
+ * src/include/lf.h: This new file.
+
+ * src/libs/libgroff/lf.cpp, src/preproc/pic/pic.h,
+ src/preproc/preconv/preconv.cpp, src/preproc/refer/refer.h,
+ src/preproc/soelim/soelim.cpp, src/preproc/tbl/table.h: Include
+ `lf.h'.
+ Make `lib.h' the first included header file.
+
+ * src/preproc/eqn/eqn.h: Don't include `stringclass.h'.
+ * src/preproc/eqn/main.cpp: Include `stringclass.h' and `lf.h'.
+
+ * src/roff/groff/groff.cpp: Make `lib.h' the first included header
+ file.
+
+2014-11-10 Eli Zaretskii <eliz@gnu.org>
+
+ Improve native Windows port.
+
+ This patch fixes two issues.
+
+ . Handle backslashes in `.lf' arguments for MS-DOS and Windows.
+ . Fix file name quoting for the groff pipeline.
+
+ * src/preproc/soelim/soelim.cpp (do_file):
+ * src/preproc/refer/refer.cpp (do_file):
+ * src/preproc/preconv/preconv.cpp (do_file):
+ * src/preproc/pic/main.cpp (do_file):
+ * src/preproc/eqn/main.cpp (do_file): Call `normalize_for_lf' to
+ convert backslashes in the file name being processed to forward
+ slashes.
+
+ * src/include/lib.h (normalize_for_lf): Add prototype.
+
+ * src/preproc/eqn/eqn.h:
+ * src/preproc/pic/pic.h:
+ * src/preproc/refer/refer.h:
+ * src/preproc/tbl/table.h: Include stringclass.h before lib.h.
+
+ * src/libs/libgroff/lf.cpp (normalize_for_lf): New function.
+
+ * src/roff/groff/groff.cpp: Include stringclass.h before lib.h.
+ (append_arg_to_string) [_WIN32 && !__CYGWIN__]: Use only "..." for
+ quoting in native Windows builds.
+
+2014-11-18 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ My commit '3fe78135c9fe666dadffde2a822b0535d8db6feb' introduced
+ problem in subroutine `TextWid'. Octal char `\nnn' returns width of
+ 4 char string rather than width of single character.
+
+ * src/devices/gropdf/gropdf.pl: Change `TextWid' to recognise octal
+ escaped characters (\nnn).
+
+2014-11-07 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ See bug #43555.
+
+ * src/devices/gropdf/gropdf.pl: Correct Date Format.
+
+2014-11-04 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/gnulib/*: Regenerate autotool files.
+
+2014-11-04 Werner LEMBERG <wl@gnu.org>
+
+Version 1.22.3 released
+=======================
+
+ * NEWS, README, doc/webpage.ms: Updated.
+
+ * doc/texinfo.tex: Updated from `texinfo' repository.
+
+2014-10-29 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ * Makefile.in (OTHERDIRS): Mention `afmtodit' first.
+
+ Otherwise, some fonts in `devpdf' (`U-*') are not built.
+
+2014-10-26 Eli Zaretskii <eliz@gnu.org>
+ Werner LEMBERG <wl@gnu.org>
+
+ Add Windows `.cmd' wrapper files.
+
+ * arch/mingw/*: New files, provided by Eli.
+
+ * Makefile.in (make_winscripts, make_install_winscripts,
+ make_uninstall_winscripts): New target variables.
+ (MDEFINES): Add them.
+ (OTHERDIRS): Add `arch/mingw'.
+
+ * m4/groff.m4 (GROFF_CMD_FILES): New macro
+ * configure.ac: Call it.
+ * configure: Regenerated.
+
+2014-10-23 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix `install' and `uninstall' issues.
+
+ * contrib/chem/Makefile.sub (install_data): Fix build with option
+ --with-doc=no passed to configure (target `install_examples'
+ should not be executed).
+
+ * contrib/chem/Makefile.sub (uninstall_sub): `uninstall' failed
+ if directories to be removed were not present.
+
+ * contrib/gpinyin/Makefile.sub (uninstall_sub): Ditto.
+
+ * contrib/hdtbl/Makefile.sub (GENFILES): generated files should
+ depend on the creation of the `examples' directory.
+
+2014-10-23 Daiki Ueno <ueno@gnu.org>
+
+ * m4/iconv.m4: Really avoid false detection of non-working iconv.
+
+2014-10-21 Daiki Ueno <ueno@gnu.org>
+
+ iconv: avoid false detection of non-working iconv
+
+ The INBUF/OUTBUF arguments of iconv can be either 'const char **'
+ or 'char **'. If CC is g++, the difference causes a compile error
+ and thus leads to a false detection of non-working iconv.
+ Reported by Eli Zaretskii and Werner LEMBERG in:
+ <https://lists.gnu.org/archive/html/bug-gnulib/2014-10/msg00023.html>.
+
+ * m4/iconv.m4 (AM_ICONV_LINK): Try all possible argument types of
+ iconv. Bump serial number.
+
+2014-10-20 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/gnulib/lib/wctype.in.h: Include `config.h'.
+
+ Problem reported by Eli Zaretskii <eliz@gnu.org>.
+
+ This is a temporary hack to make groff compile with MinGW. After
+ the switch to an automake infrastructure, together with proper use
+ of `gnulib', we can safely replace the patched file with a standard
+ version.
+
+2014-10-19 Doug McIlroy <doug@cs.dartmouth.edu>
+
+ Fix Savannah bug #42151.
+
+ * src/preproc/eqn/lex.cpp (file_input::read_line): Handle CR/LF.
+ * src/preproc/pic/pic.cpp (file_input::read_line): Ditto.
+
+2014-10-18 Werner LEMBERG <wl@gnu.org>
+
+ [mdoc] Add Darwin version string for OS X 10.10.
+
+ * tmac/doc-common (doc-operating-system-Darwin-14.0.0): New string.
+
+ * tmac/groff_mdoc.man: Updated.
+
+2014-10-15 Werner LEMBERG <wl@gnu.org>
+
+ * doc/webpage.ms: Remove obsolete references to tarballs and diffs.
+
+ Reported by Dave Kemper <saint.snit@gmail.com>.
+
+2014-10-15 Colin Watson <cjwatson@debian.org>
+
+ Always distribute the parts of groff that require X11.
+
+ * Makefile.in (ALLLIBDIRS): Clone from `LIBDIRS', but include
+ src/devices/libxutil unconditionally.
+ (ALLPROGDIRS): Clone from `PROGDIRS', but include
+ src/devices/xditview and src/utils/xtotroff unconditionally.
+ (DISTDIRS): Use `ALLLIBDIRS' and `ALLPROGDIRS' rather than `LIBDIRS'
+ and `PROGDIRS'.
+
+2014-10-14 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Minor update to NEWS for pdfroff.
+
+ * NEWS (pdfroff): Note use of PHASE register, and not pdf:href.map,
+ to choose when to emit toc_relocation control record.
+
+2014-10-13 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ For pdfroff, deduce "--no-toc-relocation" from input stream.
+
+ * NEWS: Add notification; document the effect of changes, as recorded
+ in contrib/pdfmark/ChangeLog.
+
+2014-10-12 Ingo Schwarze <schwarze@openbsd.org>
+
+ [mdoc] Support `Mdocdate' CVS keyword substitution.
+ This fixes Savannah bug #42968.
+
+ This feature is used for OpenBSD manuals.
+
+ * tmac/doc-common (Dd): Handle `$Mdocdate:' argument.
+
+ * tmac/groff_mdoc.man: Document it.
+
+2014-10-12 Ingo Schwarze <schwarze@openbsd.org>
+
+ [mdoc] Add `.At III' and `.St -iso8601'.
+ This fixes Savannah bug #42971.
+
+ * tmac/doc-syms: Add corresponding version strings.
+
+ * tmac/groff_mdoc.man: Synchronize.
+
+2014-10-12 Ingo Schwarze <schwarze@openbsd.org>
+
+ [mdoc] Update operating system release numbers.
+ This fixes Savannah bug #42969.
+
+ * tmac/doc-common: Update NetBSD, OpenBSD, FreeBSD, and DragonFly
+ version strings.
+
+ * tmac/groff_mdoc.man: Synchronize.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.in: Use `LC_ALL' in addition to `LANG'.
+ Suggested by Steffen.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Make PDF version compilable with makeinfo 5.x.
+
+ makeinfo 5.x handles macro expansion better, which changes the way
+ how an \LE macro (for a less-than sign) has to be defined. However,
+ since we can't be sure that the latest version of `texinfo.tex' gets
+ used with makeinfo 5.x only, we would have to support both 4.x and
+ 5.x. No idea whether this is possible at all... For this reason,
+ we now simply use @value directly instead of wrapping it into a
+ macro, avoiding any issues.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ [doc] Protect against picky `sed' programs.
+ Problem reported by Axel Kielhorn <tex@axelkielhorn.de>.
+
+ * doc/Makefile.in (GROFF_BIN_PATH, GROFF): Add `LANG=' to avoid
+ interpretation of non-ASCII characters by sed.
+
+2014-10-12 Michail Vidiassov <master@iaas.msu.ru>
+
+ * tmac/doc-common: Add new Darwin versions.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: s/which/that/ where appropriate.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Various minor fixes.
+
+ Most of those glitches have been found by comparing the info output
+ from makeinfo 4.13 and the current SVN development version (of
+ makeinfo).
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve indexing.
+
+ Change @DefXXXItem and @DefXXXListEnd macros to not insert an index
+ entry. New macro variants with a trailing `x' (like `@DefreqItemx')
+ can override this.
+
+ Update macro calls where necessary.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ [doc] Improve call to generation of `groff.pdf'.
+ Problem reported by Axel Kielhorn <tex@axelkielhorn.de>.
+
+ Since `groff.texinfo' contains latin-1 characters, some sed
+ implementations (like the one used on Mac OS 10.8) fail if called
+ with the wrong locale. Basically, this is a `texi2dvi' bug, but we
+ can set `LANG' by ourselves to improve the situation.
+
+ * doc/Makefile.in (.texinfo.dvi, .texinfo.pdf): Set `LANG'
+ environment variable to empty string.
+
+2014-10-12 Werner LEMBERG <wl@gnu.org>
+
+ [doc] Correctly handle `MAKEINFO' environment variable.
+ Bug introduced in commit from 2014-03-29.
+
+ * m4/groff.m4 (GROFF_MAKEINFO): Don't set MAKEINFO to empty string
+ before actually testing it.
+
+ * configure: Regenerated.
+
+2014-10-11 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Fix an issue on `make dist'.
+
+ In order to make the tarball, `make dist' copies src/libs/gnulib
+ directories into the `tmp' directory without the `.deps'
+ directories, causing the failure of `make distclean' in
+ tmp/src/libs/gnulib. Forcing a call to `config.status' recreates
+ the `.deps' directories.
+
+ * Makefile.in (dist): For gnulib, call `config.status' before `make
+ distclean'.
+
+2014-10-11 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/*.pl: Remove call from `IPC', use normal system
+ `instead'.
+
+2014-10-11 Guillem Jover <guillem@hadrons.org>
+
+ Add support for various BSD versions.
+
+ * tmac/doc-common: Add new FreeBSD and DragonFly versions.
+
+2014-10-11 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Refactor .psbb request handling code.
+
+ * src/roff/troff/input.cpp (do_ps_file): Reimplement it, using...
+ (psbb_locator): ...this new locally declared and implemented class;
+ its constructor replaces all `do_ps_file()' capability, delegating
+ to other class methods, as appropriate.
+ (assign_registers): Encapsulate it, as a `psbb_locator' method.
+ (ps_get_line): Likewise, also renaming it to become...
+ (get_line): ...this class method; its internally defined `lastc'
+ static variable also becomes a non-static class member variable.
+ (PSBB_RANGE_IS_BAD, PSBB_RANGE_IS_SET, PSBB_RANGE_AT_END): New
+ manifest constants; define them. They are now used by...
+ (parse_bounding_box): ...this function, now also encapsulated as
+ a `psbb_locator' class method, to convey parsing status.
+ (bounding_box): Struct obsoleted by `psbb_locator'; delete it.
+ (ps_bbox_request): Delegate to `psbb_locator'.
+
+2014-10-11 Werner LEMBERG <wl@gnu.org>
+
+ Various clean-ups.
+
+ * NEWS: More updates.
+
+ * REVISION: Set to 3.
+
+ * doc/groff.texinfo: Update version and year.
+
+ * configure: Regenerated.
+
+ * src/roff/groff/groff.cpp (main) <'v'>: Update copyright year.
+
+2014-10-11 Werner LEMBERG <wl@gnu.org>
+
+ Update generic GNU files to recent versions.
+
+ * INSTALL.gen, config.guess, config.rpath, config.sub,
+ contrib/groff_filenames/Makefile.sub, doc/fdl.texi, doc/texinfo.tex,
+ doc/txi-en.tex, install-sh, m4/ax_prog_perl_version.m4,
+ m4/codeset.m4, m4/fcntl-o.m4, m4/glibc21.m4, m4/iconv.m4,
+ m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4, m4/localcharset.m4,
+ src/include/localcharset.h, src/libs/gnulib/Makefile.in,
+ src/libs/gnulib/aclocal.m4, src/libs/gnulib/build-aux/compile,
+ src/libs/gnulib/build-aux/config.guess,
+ src/libs/gnulib/build-aux/config.sub,
+ src/libs/gnulib/build-aux/depcomp,
+ src/libs/gnulib/build-aux/install-sh,
+ src/libs/gnulib/build-aux/snippet/arg-nonnull.h,
+ src/libs/gnulib/build-aux/snippet/c++defs.h,
+ src/libs/gnulib/build-aux/snippet/warn-on-use.h,
+ src/libs/gnulib/configure, src/libs/gnulib/lib/Makefile.in,
+ src/libs/gnulib/lib/config.charset, src/libs/gnulib/lib/intprops.h,
+ src/libs/gnulib/lib/localcharset.c,
+ src/libs/gnulib/lib/localcharset.h, src/libs/gnulib/lib/ref-add.sin,
+ src/libs/gnulib/lib/ref-del.sin, src/libs/gnulib/lib/stdbool.in.h,
+ src/libs/gnulib/lib/stddef.in.h, src/libs/gnulib/lib/streq.h,
+ src/libs/gnulib/lib/unitypes.in.h,
+ src/libs/gnulib/lib/uniwidth.in.h,
+ src/libs/gnulib/lib/uniwidth/cjk.h,
+ src/libs/gnulib/lib/uniwidth/width.c, src/libs/gnulib/lib/verify.h,
+ src/libs/gnulib/lib/wchar.in.h, src/libs/gnulib/lib/wctype-h.c,
+ src/libs/gnulib/lib/wctype.in.h, src/libs/gnulib/lib/wcwidth.c,
+ src/libs/gnulib/m4/00gnulib.m4, src/libs/gnulib/m4/Makefile.in,
+ src/libs/gnulib/m4/codeset.m4, src/libs/gnulib/m4/configmake.m4,
+ src/libs/gnulib/m4/extensions.m4, src/libs/gnulib/m4/fcntl-o.m4,
+ src/libs/gnulib/m4/glibc21.m4, src/libs/gnulib/m4/gnulib-tool.m4,
+ src/libs/gnulib/m4/inttypes-pri.m4,
+ src/libs/gnulib/m4/localcharset.m4, src/libs/gnulib/m4/longlong.m4,
+ src/libs/gnulib/m4/onceonly.m4, src/libs/gnulib/m4/wchar_t.m4,
+ src/libs/gnulib/m4/wint_t.m4, src/libs/libgroff/config.charset,
+ src/libs/libgroff/localcharset.c, src/libs/libgroff/ref-add.sin,
+ src/libs/libgroff/ref-del.sin, src/preproc/refer/refer.man: Do it.
+
+2014-10-11 Werner LEMBERG <wl@gnu.org>
+
+ * NEWS, MANIFEST: Updated.
+
+2014-10-11 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (OTHERDIRS, NOMAKEDIRS): Remove `ideal' references.
+
+2014-10-10 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/gideal: Temporarily remove this directory, because the
+ documentation and the preprocessor are not yet finished for
+ groff-1.2.23.
+
+2014-10-10 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (dist): Clean up `src/libs/gnulib'.
+
+2014-10-10 Werner LEMBERG <wl@gnu.org>
+
+ * doc/webpage.ms: Updates.
+
+ The README and NEWS sections are not yet synchronized, though.
+
+2014-10-09 Ingo Schwarze <schwarze@openbsd.org>
+
+ * Makefile.in: Let `clean' and `distclean' descend into gnulib.
+
+ This fixes Savannah bug #42970.
+
+2014-10-02 Bertrand Garrigues <bertrand.garrigues@laposte.net>
+
+ Set default X11 resources dir to `$prefix/lib/X11/app-defaults'.
+
+ Previously, X11 resources for gxditview were installed in
+ `/usr/X11/lib/X11/app-defaults', no matter which prefix was set.
+
+ Now, gxditview resources are installed in
+ `appresdir=$prefix/lib/X11/app-defaults'. If `appresdir' is not a
+ standard X11 resource directory, the environment variable
+ `XFILESEARCHPATH' should be set to this path.
+
+ The behaviour of `--with-appresdir' is unchanged: This option can
+ still be used to set `appresdir', and its value will not be modified
+ by the prefix.
+
+ * m4/groff.m4 (GROFF_APPRESDIR_DEFAULT): Implement new behaviour.
+ Fix detection app-defaults location on the system.
+ (GROFF_APPRESDIR_CHECK): Updated.
+
+ * configure.ac: Improve output of configuration.
+ * configure: Regenerated.
+
+ * NEWS: Mention it.
+
+2014-09-27 Werner LEMBERG <wl@gnu.org>
+
+ Set `transparent' flag for `\[cq].
+ Problem reported by Dave Kemper <saint.snit@gmail.com>.
+
+ * src/roff/troff/input.cpp (init_charset_table): Do it.
+
+ * doc/groff.texinfo (Sentences, Using Symbols), man/groff_diff.man:
+ Document it.
+
+2014-09-25 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/*.pl: Program more reasonable subs (functions).
+ Repair details in many places.
+
+2014-09-24 Keith Marshall <keith.d.marshall@ntlworld.com>
+
+ Refactor psbb line input function; avoid a buffer overrun.
+
+ * src/roff/troff/input.cpp (ps_get_line): Declare it as `static'.
+ Refactor, to avoid the overhead of character look-ahead and push-back
+ on CR stream input. Add new `dscopt' parameter, in place of internal
+ `err' variable; update all call references, passing value of...
+ (DSC_LINE_MAX_ENFORCE): ...this new manifest constant; define it.
+ (DSC_LINE_MAX_IGNORED): Likewise; currently unused, but intended for
+ future use as an alternative to `DSC_LINE_MAX_ENFORCE'.
+ (DSC_LINE_MAX_CHECKED): New manifest constant; used internally only.
+ (PS_LINE_MAX): Manifest constant, renamed for notional consistency...
+ (DSC_LINE_MAX): ...to this; defined value remains as 255.
+ (do_ps_file): Increase stack allocation for `buf' char array; former
+ allocation of PS_LINE_MAX (now DSC_LINE_MAX) bytes exposed a potential
+ buffer overrun, after reading DSC_LINE_MAX bytes; two additional bytes
+ are required, to accommodate a terminating LF and NUL. Add `dscopt'
+ parameter, with value `DSC_LINE_MAX_ENFORCE', in each of three calls
+ to `ps_get_line()'.
+
+2014-09-20 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/Makefile.sub: Remove too much deleting while
+ running `make'.
+
+2014-09-20 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * `Makefile.sub' in the whole groff source tree: Add $(RM) and
+ change all `rm -f'. Add directory test before `rmdir'.
+
+2014-09-20 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Man-pages (*.man) in the whole groff source tree: Improve
+ documents by adding \[co], \[cq], \[aq] instead of ` or ' and use
+ also \[co] as long as it makes sense. Remove \[en] in the years
+ date in order to allow the automatic license year increasing.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * <groff-source-top>/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/*: Improve the license information and Emacs setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/xtotroff/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/tfmtodit/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/pfbtops/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/lookbib/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/lkbib/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/indxbib/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/hpftodit/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/afmtodit/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/addftinfo/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/troff/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/nroff/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/tbl/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/soelim/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/refer/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/preconv/*: Improve the license information and Emacs
+ setup.
+
+2014-09-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/pic/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/html/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/grn/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/eqn/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/libs/libxutil/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/libs/libgroff/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/libs/libdriver/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/libs/libbib/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/libs/gnulib/*: Improve the license information and Emacs
+ setup. The former run of that was not yet complete.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/libs/gnulib/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/include/*: Improve the license information and Emacs setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/grotty/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/grops/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/gropdf/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/grolj4/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/grolbp/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/grohtml/*: Improve the license information and Emacs
+ setup.
+
+2014-09-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/devices/grodvi/*: Improve the license information and Emacs
+ setup.
+
+2014-09-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/*.man: Improve the license information (definition of .co
+ and .au).
+
+2014-09-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * m4/*.m4: Improve the license information without changing the
+ related information.
+
+2014-09-06 Werner LEMBERG <wl@gnu.org>
+
+ Fix build issues.
+
+ * m4/groff.m4: Fix typo.
+ s/refer_dir/referdir/ for consistency.
+
+ * configure: Regenerated.
+
+ * Makefile.in: s/refer_dir/referdir/ for consistency.
+
+ * src/preproc/refer/Makefile.sub (install_data, uninstall_sub):
+ Don't handle binaries or manpages; this is handled elsewhere
+ already. Right now, only install and uninstall the `refer' data
+ directory.
+
+2014-09-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * configure: When I change the `configure' file manually, the
+ refer data dir is created. But when running aclocal/autoreconf,
+ the dir is again not created.
+
+2014-09-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * m4/groff.m4, configure.ac, Makefile.in,
+ src/preproc/refer/Makefile.sub: Add information to create a refer
+ data directory by installing. That dir is not yet generated
+ anyway.
+
+2014-09-05 Werner LEMBERG <wl@gnu.org>
+
+ Regenerate configure files with correct parameters.
+
+ * configure.ac: Comment out m4 macros still missing.
+
+ * aclocal.m4, config.hin, configure: Regenerated.
+
+2014-09-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * some files in doc: Change the copying years to package form.
+ But many files have strange or no copying information.
+
+2014-09-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/pic2graph/Makefile.sub: Change the copying years to
+ package form.
+
+2014-09-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * FDL: Replace the changed actual file by the original `fdl.txt'
+ from <http://www.gnu.org/licenses/>.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/grap2graph/Makefile.sub: Remove `Last updates' from all
+ files. Add and repair copyright. Write Emacs setup.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/preproc/refer/refer.man: Include more distances for better
+ reading of the source file. Add `%' for documentation of
+ bibliographic database lines.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tree contrib/eqn2graph: Remove `Last updates' from all files.
+ Add and repair copyright. Write Emacs setup.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tree `arch': Remove `Last updates' from all files. Add
+ and repair copyright. Write Emacs seetup.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * <groff top source directory>: Remove `Last updates' from all
+ files. Only `timestamp' values are left.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * <groff top source directory>: Repair copyright years from
+ starting year to actual year for almost all files.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * autom4te.cache: Remove that tree after running
+ `autoconf' or `autoreconf'.
+
+ * .gitignore: Add all files within `autom4te.cache' to get rid of
+ them automatically. Not sure so far, if this works.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * BUG-REPORT, FDL, INSTALL*, MANIFEST, MORE.STUFF, NEWS, PROBLEMS,
+ PROJECTS, README*: Remove Emacs settings for coding style. Change
+ copyright years from 1989-2014 and 1993-2014 into 2014 only.
+
+2014-09-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * configure.ac, Makefile.in: Try to use /usr/local/share directory
+ for `refer'. Does not work so far.
+
+2014-09-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * All Makefile*: Add Emacs settings and lacking licenses.
+
+2014-09-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * BUG-REPORT, FDL, INSTALL*, MANIFEST, MORE.STUFF, NEWS, PROBLEMS,
+ PROJECTS, README*: Add Emacs settings.
+
+2014-09-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * PROJECTS: Add TODO for `refer'.
+
+2014-08-31 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/roff.man (roff.7): Replace Heirloom links to more actual
+ places. Create macro definitions for authors (.au) and copying
+ (.co).
+
+2014-08-30 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff_font.man (groff_font.7): Restructure
+ file format, but keep content.
+
+2014-08-30 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/utils/addftinfo/addftinfo.man (addftinfo.1): Restructure
+ file format, but keep content.
+
+2014-08-30 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/roff.man (roff.7): Repair documentation of heirloom.
+
+2014-08-28 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl, src/roff/grog/subs.pl: Add `gpinyin'.
+
+ * src/roff/grog/grog.man: Restructure `SEE ALSO'.
+
+2014-08-28 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/gpinyin: Make it runnable, version 1.0.0.
+
+2014-08-20 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * groff.7 (man/groff.man): Add further preprocessor regions.
+ Repair documentation for Unicode.
+
+2014-08-08 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * configure.ac, configure, Makefile.in, m4/groff.m4: Install paths
+ for implementing contrib/gpinyin's sub.pl.
+
+2014-08-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff_char.man: Add description for displaying `uxxxx' as
+ `\[uxxxx]'.
+
+2014-08-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff.man (groff.7): Replace \[rs] to \e as far as useful.
+
+2014-08-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff.man (groff.7): Add documentation for the Unicode
+ escapes \[u....] and \[u.....].
+
+2014-08-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/groff.man: Improve documentation for `utf8'.
+
+2014-08-01 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/gpinyin: New preprocessor for having the European-style
+ writing `pinyin' for the Chinese language.
+
+2014-07-22 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * groff.7 (man/groff.man): Add some useful special characters.
+
+2014-07-21 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tbl.1 (src/preproc/tbl/tbl.man): Add simple examples.
+
+2014-07-12 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * groff.7 (man/groff.man): Add section about underlining.
+
+2014-07-07 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff.man (groff.7): Add some basic special characters
+ `\(xy'.
+
+2014-07-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog, groffer: Minor repairing.
+
+2014-07-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Repair ligatures handling.
+
+2014-07-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Correct handling of standard input.
+
+2014-07-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/groff.man: Minor correction.
+
+2014-07-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/*: Minor corrections.
+
+2014-07-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/groff.cpp: In `usage()' and `help()' order
+ alphabetically.
+
+2014-07-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog.pl, subs.pl: Heavily improve argument handling and `groff'
+ command line creation.
+
+2014-07-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog.man: Make file runnable for `doclifter'.
+
+2014-07-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog.man: Replace all .de by copying. Restrict all .char names
+ to length 2 only.
+
+2014-07-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog.man: Minor optimization.
+
+2014-07-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog.man: Transform in classical man-page style.
+
+2014-07-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * grog.pl, subs.pl: Add option `--warnings'. Rename
+ `--with_ligatures' to `--ligatures', but keep `--with_ligatures'
+ for compatibility.
+
+2014-07-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.in: Remove directories `groffer/perl' and
+ `groffer.shell', which don't exist any more.
+
+2014-07-03 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * PROJECTS: Mention the start of the `ideal' project.
+
+2014-06-21 Ingo Schwarze <schwarze@openbsd.org>
+
+ * Makefile.in: Unbreak make install:
+ Add missing gideal dirs to the dist tarball.
+
+2014-06-19 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/groff.man: Correct the collection of the
+ installation directories.
+
+2014-06-19 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/groff.man: Add the installation file and
+ directory positions of the whole package with @...@.
+
+2014-06-19 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff.man, src/roff/groff/groff.man: Add file position
+ before and after installation and the latest update.
+
+2014-06-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Corrections about `require' and `our'
+ definitions.
+
+ * src/roff/grog/subs.pl: In the `groff' output command line, split
+ the single character options collections into different
+ 1-character options, each with a leading minus `-'..
+2014-06-20 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Repair call of `push'.
+
+2014-06-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Minor correction at `do_first_line'.
+
+2014-06-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Adjust for first lines with non-preproc
+ and not-tmac names to be ignored.
+
+2014-06-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl, src/roff/grog/subs.pl: Add new first line
+ of roff files with the names of the needed preprocessors and the
+ actual tmac, see 2014-06-17 Ulrich Lauther. Replace the
+ word `ideal' by `gideal', when the preprocessor is meant.
+
+2014-06-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/Makefile.sub: Add $(RM).
+
+ * src/roff/grog/grog.pl: Remove call to perl_test.pl. `require
+ 5.6;' is enough as Perl test.
+
+ * src/roff/grog/perl_test.pl: Remove this file.
+
+2014-06-18 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * ChangeLog: Add Emacs-mode and a separator for the license.
+
+2014-06-17 Ulrich Lauther <ulrich.lauther@t-online.de>
+
+ * grog: Invent new first comment line of roff files with long
+ names of needed preprocessors and the tmac.
+
+2014-06-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Correct handling of option `-J' for
+ ideal.
+
+2014-06-17 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/groff.cpp, src/roff/groff/pipeline.h,
+ * src/roff/grog/subs.pl: Add `groff' option `-J' for `gideal'.
+
+2014-06-16 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Remove too early listing of 3 `groff'
+ preprocessors options: gideal, glilypond, gperl.
+
+2014-06-16 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/gideal: New project for installing `ideal' for `groff'.
+
+ * Makefile.in: Add `gideal' for `OTHERDIRS'.
+
+2014-06-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl, src/roff/grog/subs.pl: Repair argument
+ handling for output `groff' line.
+
+2014-06-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl, src/roff/grog/grog.man: Correct and add
+ the documentation for filespec options.
+
+2014-06-14 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Activate handling of `--run', such that
+ now the generated `groff' command line can run.
+
+2014-06-14 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/subs.pl: Repair handling of filespec arguments.
+
+2014-06-12 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl, src/roff/grog/subs.pl: Add testing
+ methods of Ralph Corderoy's `grog.sh' of 2006. Add primary usage
+ of file name extensions.
+
+2014-06-10 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Totally rewrite the `grog' version,
+ starting at the last stable version. Write many parts as `sub'
+ functions.
+
+ * src/roff/grog/subs.pl: New file by splitting the src file
+ `grog.pl', such that all functions get into the new file
+ `subs.pl'.
+
+ * src/roff/grog/Makefile.sub: Add file `subs.pl', which goes into
+ the `grog' libdir.
+
+2014-06-03 James Cloos <cloos@jhcloos.com>
+
+ * src/roff/grog/grog.pl: The errors with `ligatures' come also
+ from `TeX GYRE' fonts. Print this information, when `grog' should
+ work with the `pdf' device.
+
+2014-06-02 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: The `grog' version of yesterday has many
+ bugs. So reinstall an old version of `grog'.
+
+2014-06-01 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/Makefile.sub: Remove changing of first line
+ `#! ...'.
+
+2014-06-01 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Remove `$Sp' mostly. Reorder script.
+ Check and repair requests. Add final character `$' to many
+ checked requests.
+
+2014-06-01 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/roff.man: Move .TH at the beginning.
+
+2014-05-29 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff.man: In special characters, add the mentioning of the
+ `groff' writing `\[xy]'.
+
+2014-05-27 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff_char.man: Finish notes in all tables.
+
+2014-05-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/groff_char.man: Add notes in some tables, more will come.
+
+2014-05-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Add further first line characters for
+ single character `groff' options.
+
+ * src/roff/grog/grog.man: make generated options more readable.
+
+2014-05-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Add detection of `.\" [eprt]' as first
+ line to `grog'. Change usage of `$Sp' to reasonable efforts in
+ `groff'.
+
+ * src/roff/grog/grog.man, man/groff_char.man: Add website for
+ license text, not only the postal address.
+
+2014-04-03 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ * */Makefile.*: Path quoting fixes, whitespace, formatting.
+
+ Remove many quotes (and introduce a few as additional guards)
+ since groff's build system is generally not set up to properly
+ handle paths that need quoting.
+
+2014-04-03 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ * Makefile.comm (extraclean): Don't delete `old'.
+
+ The rule calling `rm -f' was originally thought to remove private,
+ temporary files. However, we now have a subdirectory called `old'
+ in `fonts/devps' that may not be removed, and trying so now causes
+ an error because we no longer ignore the returned error code of
+ `rm'.
+
+2014-04-03 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ * Makefile.in (OTHERDIRS): Fix directory order.
+
+ This has been accidentally broken in commit 51476bee from
+ 2014-02-25.
+
+2014-04-03 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ * src/devices/gropdf/pdfmom.pl: Fix perl(1) warning.
+
+2014-03-30 Werner LEMBERG <wl@gnu.org>
+
+ * configure: Regenerated.
+
+2014-03-30 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ * */Makefile.*: Put straight error-prevention prefixes for `rm'.
+
+2014-03-30 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ `uninstall' target: Avoid spurious and misleading error messages.
+
+ * Makefile.comm (uninstall_dev): Improve.
+
+ * font/devpdf/Makefile.sub (install_data): Remove superfluous `rm'.
+ (uninstall_sub): Improve.
+
+ * src/roff/groff/Makefile.sub (uninstall_sub): Fix.
+
+2014-03-30 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ Fixes for `uninstall' target.
+
+ * Makefile.in (uninstall_dirs): Use `DESTDIR'.
+
+ * src/libs/libgroff/Makefile.sub (uninstall_charset_data): Typo.
+
+ * src/roff/groff/Makefile.sub (uninstall_sub): Typo.
+
+ * src/roff/grog/Makefile.sub (uninstall_sub): Minor.
+
+2014-03-30 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ * src/roff/grog/Makefile.sub (install_data): Typo.
+
+2014-03-29 Steffen Nurpmeso <sdaoden@yandex.com>
+
+ Add fine-tuning of doc generation to `configure'.
+
+ * m4/groff.m4 (GROFF_DOC_CHECK): New macro, handling option
+ `--with-doc' and its new arguments. It sets
+ `docadd_{html,info,other,pdf,examples}' and exports
+ `make{_,_install_,_uninstall_}{otherdoc,examples}'.
+ (GROFF_MAKEINFO): Extended to export
+ `make{_,_install_,_uninstall_}infodoc'.
+ (GROFF_HTML_PROGRAMS): Extended to export
+ `make{_,_install_,_uninstall_}{htmldoc,htmlexamples}'.
+ (GROFF_PDFDOC_PROGRAMS): Extended to export
+ `make{_,_install_,_uninstall_}{pdfdoc,pdfexamples}'.
+ (GROFF_INSTALL_INFO): Guard test with `docadd_info'.
+
+ * configure.ac: Use GROFF_DOC_CHECK.
+ * Makefile.in: Updated.
+
+ * doc/Makefile.sub: Handle examples separately, controlled by
+ $(make{_,_install_,_uninstall_}examples).
+
+2014-03-27 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * tmac/www.tmac (TAG): Define register `PN'.
+
+2014-03-27 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * tmac/an-ext.tmac (EX, EE): Preserve font family.
+
+2014-03-17 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/eqn/box.cpp (set_script_size): Fix minimum test.
+
+ Problem reported by Ted Harding <ted.harding@wlandres.net> in a
+ thread starting with
+
+ http://lists.gnu.org/archive/html/groff/2014-03/msg00181.html
+
+2014-03-16 Werner LEMBERG <wl@gnu.org>
+
+ Fix previous commit.
+
+ Problem reported (with a patch) by Ingo Schwarze
+ <schwarze@openbsd.org>.
+
+ * doc/Makefile.sub (groff_bin_dirs): Add `preconv'.
+
+ * doc/Makefile.in (groff_bin_dirs): Add `preconv'.
+ (.me.txt): Call preconv. Use UTF8 as output encoding.
+ (.me.ps): Call preconv.
+
+2014-03-14 Werner LEMBERG <wl@gnu.org>
+
+ [me] Add translation of `meintro.me' to French.
+
+ Contributed by Grégoire Babey <gibux@gmx.ch>.
+
+ * doc/meintro_fr.me: New file.
+ * LICENSES, doc/Makefile.sub: Updated.
+
+2014-03-13 Ingo Schwarze <schwarze@openbsd.org> (tiny change)
+
+ man: Correctly reset margins.
+
+ See
+
+ http://lists.gnu.org/archive/html/groff/2013-11/msg00026.html
+
+ for more.
+
+ * tmac/an-old.tmac (set-an-margin): Whenever (re)setting
+ `\n[an-level]' to 1 (which happens when encountering `.TH', `.SH',
+ and `.SS') make sure to also (re)set `\n[an-saved-margin1]' and
+ `\n[an-saved-prevailing-indent1]' to a sane value such that an
+ immediate `.RE' cannot wreak havoc.
+ (TH, SH, SS): Updated.
+
+2014-03-11 Ingo Schwarze <schwarze@openbsd.org> (tiny change)
+
+ * Makefile.in: Do not forget to install gropdf manuals.
+
+ This got broken in 290eaaac6cfc33856cd683838accc72ccf3e5a84:
+ src/devices/gropdf was split out of OTHERDIRS into SHPROGDIRS, and
+ consequently, Makefile.man was no longer used there. Note that
+ Makefile.dev is *not* needed, even though it's below /devices/.
+
+2014-03-11 Ingo Schwarze <schwarze@openbsd.org> (tiny change)
+
+ * src/roff/groff/Makefile.sub: POSIX conformance.
+
+ - POSIX says that the meaning of the make(1) `$<' macro shall be
+ unspecified except in inference rules. Consequently, use `$?'
+ for portability.
+
+ That's safe because the rules have only one prerequisite and
+ are not `.PHONY', so `$?' will always expand to one item.
+
+ - While here, clean up two instances of superfluous use of cat(1).
+
+2014-03-11 Ingo Schwarze <schwarze@openbsd.org> (tiny change)
+
+ * Makefile.in (dist): Improve.
+
+ - Bugfix: Do not error out if one of the DISTDIRS
+ contains a subdirectory.
+ - Make debugging easier by splitting the huge "cd tmp; ...; ..."
+ command sequence into several independent shell commands,
+ such that one can see which command actually fails.
+
+2014-03-06 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Missing RE escape in grep.
+
+ * src/devices/gropdf/pdfmom.pl: Escape '\' dot in grep RE.
+
+2014-02-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Add detection of `gperl' to `grog'.
+
+2014-02-25 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/gperl: New preprocessor for Perl parts in groff files.
+
+2014-02-15 Ingo Schwarze <schwarze@openbsd.org>
+
+ * tmac/groff_mdoc.man: Improve the manual page template.
+
+ - Add the EXIT STATUS section. It is widely used in at least
+ NetBSD, FreeBSD, OpenBSD, and DragonFly manuals.
+ - Recommend the DIAGNOSTICS section for section 4 manuals. Such
+ usage is very widespread, in particular for kernel printf
+ messages emitted by device drivers.
+ - Do not recommend the DIAGNOSTICS section for command return
+ values to the shell any longer. While such usage historically
+ existed, it does not seem common nowadays, and in any case, using
+ the now well-established EXIT STATUS section seems preferable to
+ me.
+ - Mention the possibility to use ERRORS for section 4 manuals.
+ While most section 4 manuals have a DIAGNOSTICS section, only
+ some will need an ERRORS section, but these cases aren't exactly
+ rare, either. Quite some device driver manuals explain how to
+ use the device using system calls like ioctl(2), open(2), read(2)
+ or write(2), in which case the ERRORS section is the natural
+ place to explain which errno values the driver may set during
+ such system calls.
+ - Mentioning signal handling as a content of the ERRORS section
+ seems redundant, it is already covered by talking about the
+ errno. The case of errno == EINTR should be handled just like
+ all other errno cases. For an example showing that there is no
+ need to single out error handling in any way, please look at a
+ typical read(2) manual page.
+ - Mention the CAVEATS section. It first appeared in the 4.2BSD
+ execve(2) manual in 1983, was already used by several manuals by
+ the time of 4.4BSD-Lite2 in 1995, and is in whidespread use
+ today, not just in BSD base system manuals, but for example in
+ Perl manuals as well.
+
+2014-02-14 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Add detection of glilypond-parts in groff
+ files. For example `grog example.groff' from the glilypond source
+ gets `glilypond example.groff | groff'.
+
+2014-02-12 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: With the former bugfix of 2014-02-12,
+ it's now possible to run `grog meref.me' etc., which wasn't
+ possible before. That addition of the macro handling was
+ necessary for the automatic for `groffer'.
+
+2014-02-12 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/grog/grog.pl: Add handling of macro definition and fix
+ problems with @VERSION@.
+
+2014-02-12 Rich Burridge <rich.burridge@oracle.com>
+
+ [grn] Prevent crash if more than 50 command line arguments.
+
+ * src/preproc/grn/main.cpp (INIT_FILE_SIZE, FILE_SIZE_INCR): New
+ macros.
+ (add_file): New function.
+ (main): Use it to add file arguments.
+
+2014-01-29 Ulrich Spörlein <uqs@FreeBSD.org>
+
+ * tmac/doc-common: Add even more DragonFlyBSD releases.
+
+2014-01-28 Ulrich Spörlein <uqs@FreeBSD.org>
+
+ * tmac/doc-common: Add some new *BSD version strings.
+
+2014-01-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/roff.man: Add information of new archives for RUNOFF and
+ roff_classical.
+
+ * Makefile.in: Replace `contrib/RUNOFF' by
+ `contrib/groff_filenames'.
+
+2014-01-05 Bernd Warken <groff-bernd.warken-72@web.de>
+ Werner LEMBERG <wl@gnu.org>
+
+ * groff/tmac/groff_man.man: Minor typos, formatting, reordering.
+
+2014-01-05 Werner LEMBERG <wl@gnu.org>
+
+ Revert recent changes to `an-ext.tmac' and `groff_man.man'.
+
+ * groff/tmac/an-ext.tmac (.FONT): Remove. This doesn't belong into
+ this file.
+
+ * groff/tmac/groff_man.man: Reset to state previous to 2014-01-04.
+ Useful changes will be re-committed in smaller, logical chunks.
+
+2014-01-05 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * groff/tmac/an-ext.tmac: in .FONT change variable name `result'
+ to `an_ext_FONT_result'.
+
+2014-01-04 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * groff/tmac/an-ext.tmac: add new request .FONT for using
+ different font names on a single line.
+
+ * groff/tmac/groff_man.man: put under GPL2, reordered and enhanced.
+
+2014-01-02 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: gropdf use to fail when handling
+ output from preconv, now works.
+
+ * src/devices/gropdf/pdfmom.pl: can now be used as a pipeline, and
+ improvements made to its switch handling and use with preconv.
+
+ * tmac/pdf.tmac: changes to support preconv.
+
+2014-01-02 Colin Watson <cjwatson@debian.org>
+
+ * font/devascii/Makefile.sub ($(FONTS)): Convert extended regex
+ syntax to basic for sed.
+ * font/devcp1047/Makefile.sub ($(FONTS)): Likewise.
+ * font/devhtml/Makefile.sub ($(FONTS)): Likewise.
+ * font/devlatin1/Makefile.sub ($(FONTS)): Likewise.
+ * font/devutf8/Makefile.sub ($(FONTS)): Likewise.
+
+2013-12-23 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * groff/src/roff/groff/groff.cpp: add groff option `-G' to the
+ documentation in `synopsis()'.
+
+2013-12-06 Mike Frysinger <vapier@gentoo.org>
+
+ Fix parallel build with gropdf and mom examples.
+
+ The `contrib/mom/examples/' directory uses the helper script from
+ `src/devices/gropdf/'. Currently though, parallel builds might fail
+ like so:
+
+ ...
+ make[2]: Entering directory `.../groff-1.22.2/contrib/mom'
+ <groff command> examples/letter.mom >examples/letter.pdf
+ <groff command> examples/mom-pdf.mom >examples/mom-pdf.pdf
+ /bin/sh: .../groff-1.22.2/src/devices/gropdf/pdfmom: No such file or directory
+ make[2]: *** [examples/letter.pdf] Error 127
+ /bin/sh: .../groff-1.22.2/src/devices/gropdf/pdfmom: No such file or directory
+ make[2]: *** [examples/mom-pdf.pdf] Error 127
+ make[2]: Leaving directory `.../groff-1.22.2/contrib/mom'
+ make[1]: *** [contrib/mom] Error 2
+ ...
+ make[2]: Entering directory `.../groff-1.22.2/src/devices/gropdf'
+ sed -f .../groff-1.22.2/arch/misc/shdeps.sed \
+ -e "s|@VERSION@|1.22.2|" \
+ -e "s|@PERLPATH@|/usr/bin/perl|" ./pdfmom.pl >pdfmom
+
+ The top level makefile tries to account for this in general with
+ OTHERDIRS, but looks like `src/devices/gropdf/' was added to this
+ variable (which holds `contrib/mom/' too) because gropdf installs a
+ shell script, and the other prog vars require it to be a dir of
+ things to compile.
+
+ URL: http://crbug.com/324116
+ URL: https://bugs.gentoo.org/487276
+
+ * Makefile.in (SHPROGDIRS): Declare.
+ (PROGDIRS): Add $(SHPROGDIRS).
+ (OTHERDIRS): Delete src/devices/gropdf.
+ ($(SHPROGDIRS):): Add to existing rule.
+ ($(OTHERDIRS):): Depend on $(SHPROGDIRS).
+
+2013-12-08 Eric S. Raymond <esr@thyrsus.com>
+
+ Repository fully converted to git.
+
+2013-11-21 Werner LEMBERG <wl@gnu.org>
+
+ * config.guess, config.sub: Updated from `config' repository.
+
+2013-11-06 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/libgroff/tmpname.cpp (gen_tempname): Use O_BINARY.
+
+ Problem reported by Charlie Van Dien <charlie@vandien.com>; see
+
+ http://lists.gnu.org/archive/html/groff/2013-10/msg00006.html
+
+2013-11-06 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.comm (.man.n): Use C locale.
+
+ Problem reported by Petr Man <petr@madnetwork.org>; fix suggested by
+ Ralph Corderoy <ralph@inputplus.co.uk>.
+
+2013-07-24 Ingo Schwarze <schwarze@openbsd.org>
+
+ [mdoc] Implement `.%C'.
+
+ * tmac/doc.tmac, tmac/doc-common: Do it.
+ * tmac/groff_mdoc.man: Updated.
+
+2013-07-31 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Fix overprinting issue with Acrobat reader.
+
+ Problem reported by Heinz-Jürgen Oertel <hj.oertel@t-online.de>.
+
+ * src/devices/gropdf/gropdf.pl (do_t, FindChar): Use ascii octal
+ notation (i.e., \015) when outputting characters with value < 32.
+ This fixes a bug which affected acroread when control-M (cr) was
+ embedded in a text string.
+
+2013-07-16 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/fallbacks.tmac: Make it work in compatibility mode.
+
+ Problem reported by Y T <doarhop@hotmail.com>.
+
+2013-07-16 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/grog/Makefile.sub (install_data, uninstall_sub): Typos.
+
+2013-07-16 Werner LEMBERG <wl@gnu.org>
+
+ * Makefile.in (GREP, MDEFINES): Define and use plain grep.
+
+ Necessary for Bernd's code to extract groff options.
+
+2013-07-16 Ingo Schwarze <schwarze@openbsd.org>
+
+ * tmac/an-old.tmac (TP): Do not clobber line length after double
+ call to `.TP'.
+
+2013-07-02 Colin Watson <cjwatson@debian.org>
+
+ * doc/groff.texinfo: Fix syntax error in documentation of `\z'.
+
+2013-07-02 Colin Watson <cjwatson@debian.org>
+
+ * src/devices/grolbp/lbp.cpp (main): Don't write trailer if no
+ printer was created.
+
+2013-06-19 Eric S. Raymond <esr@thyrsus.com>
+
+ * src/utils/lkbib/lbib.man: Move running text out of synopsis.
+
+2013-05-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/Makefile.sub: Replace `cpp' by `groff.cpp'.
+
+2013-05-06 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.in: Add new `contrib' directory `RUNOFF'.
+
+2013-05-01 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/Makefile.sub: Remove all `.PHONY:' lines.
+
+2013-04-30 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/Makefile.sub: Replace `egrep' by `$(GREP)'.
+ commands. Don't use $(CCSRCS) any more.
+
+2013-04-30 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.in, m4/groff.m4: Add `@libprogramdir@' and
+ `$libprogramdir' (usually `/usr/local/lib/groff'). Change
+ `$libdir/groff' into $libprogramdir for several `groff' programs.
+ Run `autoreconf -I m4'.
+
+ * src/roff/groff/MAkefile.sub: Add $(DESTDIR) and $(srcdir) in
+ order to support installation outside of source code.
+
+ * contrib/glilypond/Makefile.sub, contrib/glilypond/glilypond.pl:
+ Correct the install directories.
+
+2013-04-29 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/Makefile.sub: Replace some variables by shell
+ commands. Improve the output for the `make' runs.
+
+2013-04-28 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/Makefile.sub: Make this Makefile compatible.
+
+2013-04-28 Bernd Warken <groff-bernd.warken-72@web.de>
+2013-04-28 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/groff/Makefile.sub: Use `make' variables to get
+ `groff' options from `getopt' in `groff.cpp'. Create 2 files
+ `groff_opts_no_arg.txt' and `groff_opts_with_arg.txt'.
+
+2013-04-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/read_groff_options.pl: Remove this file. It's
+ no longer needed.
+
+ * src/roff/groff/Makefile.sub: Get the `groff' options from the
+ use of `getopt...' in `groff.cpp' using `$(EGREP)' and `sed'.
+ Store this information in a new file `groff_options.txt', which
+ is copied to `groff libdir' during the installation.
+
+2013-04-26 Werner LEMBERG <wl@gnu.org>
+
+ Various minor fixes.
+
+ * INSTALL.gen: Take the newest version from the `gnulib'
+ repository.
+
+ * configure: Regenerated.
+
+2013-04-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * INSTALL.gen: Restore an older version from `2006' in
+ `groff-1.21'.
+
+ * FOR-RELEASE: New file which describes how to prepare `groff'
+ for a new release.
+
+2013-04-26 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * src/roff/groff/read_groff_options.pl: Reads `groff' options
+ from `groff.cpp' and writes them into the file `groff_options.info'.
+
+ * src/roff/groff/Makefile.sub: Have the generated file
+ `groff_options.info' be installed into the `groff libdir'.
+
+2013-04-16 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * INSTALL.gen: Replace this file by the daily `git' version of
+ `automake' `INSTALL' file.
+
+ * INSTALL.autotools: Remove file.
+
+ * INSTALL.CVS: New file, moved from `INSTALL.autotools'.
+
+ * m4/ax_prog_perl_version.m4: New file, taken from package
+ `autoconf-archive-2013.04.06'.
+
+ * m4/groff.m4: Remove unnecessary blank line.
+
+ * Makefile.in: Add `$(PERLVERSION)'.
+
+ * aclocal.m4: Run `autoreconf -I m4' (this includes
+ `aclocal -I m4'). This creates a suitable `aclocal.m4'. Remove
+ generated subdirectory `autom4te.cache'.
+
+ * src/roff/grog/Makefile.sub: Correct `sed' command. Use `tabs'
+ that are needed by `GNU make'.
+
+2013-04-16 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Makefile.sub: Add `m4/ax_compare_version.m4'.
+
+ * aclocal.m4: Run the latest `aclocal -I m4' which generates a
+ suitable content in that file.
+
+ * INSTALL.autotools: Information of the usage of `GNU autotools'
+ with `groff'.
+
+ * INSTALL.gen: Move `autotool' parts to file `INSTALL.autotools'.
+
+2013-04-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * m4/groff.m4: Replace tabs by spaces. Use a double line between
+ AC_DEFUNs.
+
+2013-04-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ In the whole `groff' system, rename autoconf variable `$PERLPATH'
+ to `$PERL', which has the same content. But `$PERL' suits to
+ `AX_PROG_PERL_VERSION' in m4 macro `GROFF_PERL' in `m4/groff.m4'.
+
+ * src/utils/afmtodit/Makefile.sub,
+ * src/devices/gropdf/gropdf.pl,
+ * src/devices/gropdf/Makefile.sub,
+ * src/devices/gropdf/pdfmom.pl,
+ * arch/djgpp/config.site,
+ * font/devpdf/Makefile.sub,
+ * contrib/mm/Makefile.sub,
+ * m4/groff.m4,
+ * Makefile.in: Replace `$PERLPATH' by `$PERL'.
+
+ * m4/ax_compare_version.m4: New file, copied from daily version of
+ `GNU autoconf-archive'.
+
+ `autoconf' was not yet run, a newer version is needed.
+
+2013-04-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * README, INSTALL, INSTALL.gen, MANIFEST: Add documentation in the
+ top directory about some parts of `autotools' and `glilypond'.
+
+2013-04-15 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * configure.ac: Add information of the macro `GROFF_PERL'.
+
+ * Makefile.in: Add definitions of the macro variables and their
+ `@...@' counterparts.
+
+ Run `autoreconf -I m4'.
+
+2013-04-15 Bernd Warken <groff-bernd.warken-72@web.de>
+2013-04-15 Werner LEMBERG <wl@gnu.org>
+2013-04-15 Ralph Corderoy <ralph@inputplus.co.uk>
+
+ Add Perl test to configuration. During the run of `configure' the
+ program is broken with error when there is no `Perl' or the `perl'
+ program is too old.
+
+ * m4/groff.m4: Add macro `GROFF_PERL' that tests the availability
+ of the `perl' program and tests whether this has a version of at
+ most `v5.6.1'. Define variables $PERL and $PERLPATH for the full
+ name of the `perl' program and $PERLVERSION as the lest version.
+
+2013-04-13 Keith Marshall <keithmarshall@users.sourceforge.net>
+
+ Avoid consideration of autotool cache for CVS inclusion.
+
+ * .cvsignore (autom4te.cache): Add reference.
+
+2013-04-13 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * `autotools': During the run of `autoconf' and `autoreconf' a
+ subdirectory `autom4te.cache' was created. I first added this to
+ groff CVS and removed it again after an email-discussion.
+
+2013-04-12 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * `grog': Remove the shell version of `grog'. Now there is only
+ Perl version.
+
+ * src/roff/grog/perl.sh: Remove this file.
+
+ * src/roff/grog/Makefile.sub: This file handles the removement of
+ the shell version.
+
+ * src/roff/grog/perl_test.pl: New file for testing the available
+ Perl version in the system to be installed into. This file will
+ be installed into the grog lib-directory.
+
+2013-04-12 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * `grog': In the following, the file `grog.pl' will be split. For
+ the coming files, a lib-directory is needed for storage.
+
+ * m4/groff.m4, configure.ac: Add libdir information for `grog'.
+
+ * Makefile.in: Add @grog_dir@.
+
+ Run `autoconf'.
+
+ `grog' has now a lib-directory at `$prefix/lib/groff/grog'.
+
+2013-04-11 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/groffer/: There is a free `git' package containing all
+ old `groffer' versions `v0.*' and `v1.*'. The new versions
+ `groffer 2.*' will actually not be included. This package can be
+ got at:
+
+ $ git clone git@github.com:RUNOFF/groffer.git
+
+2013-04-11 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/glilypond/: There is a free `git' package containing all
+ old versions of the former name `groff_lilypond v0.*'. They work
+ with `lilypond' parts in `roff' files, but were not installed.
+ This package can be got at:
+
+ $ git clone git@github.com:RUNOFF/groff_lilypond.git
+
+ The new versions `glilypond v1.*' are not included there.
+
+2013-04-11 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * man/roff.man: For roff(7), add information about the free git
+ package RUNOFF.git with documentation about historical RUNOFF and
+ the available files written in the classical RUNOFF language..
+
+2013-03-29 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ Rename `groff_lilypond' to `glilypond'. So remove the former
+ source directory `<groff_src_dir>/contrib/lilypond' and newly
+ install `<groff_src_dir>/contrib/glilypond', which now has many
+ files. The new version starts at `v1.0'.
+
+ * m4/groff.m4, configure.ac: Add libdir information for
+ `glilypond'.
+
+ * Makefile.in: Add `<groff_src_dir>/contrib/glilypond'.
+
+ Run `autoconf'.
+
+ `glilypond' can now be installed to the system.
+
+2013-03-17 Ingo Schwarze <schwarze@openbsd.org>
+
+ * font/devpdf/Makefile.sub: Build system fixes.
+
+ (GROFF_FONT_FILES): Avoid installing Makefile.sub.orig when it's
+ around.
+ (install): Create $(DESTDIR)$(fontsubdir)/util when missing.
+
+2013-03-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of `\s'.
+
+ Reported by Jim Avera <james_avera@yahoo.com>.
+
+2013-02-16 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of `.substring'.
+
+ Reported by Jim Avera <james_avera@yahoo.com>.
+
+2013-02-13 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix if-else example.
+
+ Reported by Jim Avera <james_avera@yahoo.com>.
+
+2013-02-10 Werner LEMBERG <wl@gnu.org>
+
+ [grops] Make binary `%%BeginData' work; support `fontset' resource.
+
+ * src/devices/grops/psrm.cpp (resource_table): Add `fontset'.
+
+ (resource_manager::read_resource_arg): Do a case insensitive
+ comparison. The PostScript Reference Manual gives the following
+ example for a CFF resource (example 5.7):
+
+ %!PS-Adobe-3.0 Resource-FontSet
+ %%DocumentNeedResources: ProcSet (FontSetInit)
+ %%Title: (FontSet/CFFRoman27)
+ %%Version: 1.000
+ %%EndComments
+ %%IncludeResource: ProcSet (FontSetInit)
+ %%BeginResource: FontSet (CFFRoman27)
+ /FontSetInit /ProcSet findresource begin
+ %%BeginData: 622532 Binary Bytes
+ /CFFRoman27 622503 StartData
+ ... 622,503 bytes of binary data ...
+ %%EndData
+ %%EndResource
+ %%EOF
+
+ Note the `ProcSet' and `FontSet' keywords. While the old DSC
+ (Document Structure Convention) documentation doesn't cover
+ `FontSet' at all (the DSC documentation predates the invention of
+ CFF), it describes only `procset' (all letters downcase), and it
+ also says that the DSC parser works in a case sensitive manner.
+
+ In other words, `ProcSet' is not valid according to the DSC
+ documentation, only `procset' is. So much about today's validity
+ of DSC... This patch adapts grops's code to the PostScript
+ reality.
+
+ (resource_manager::do_begin_data): Fix typo (present since the
+ beginning) which prevented correct handling of binary data.
+
+ * src/devices/grops/ps.h (resource_type): Add RESOURCE_FONTSET.
+
+2013-02-10 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * contrib/lilypond: New files for adding lilypond parts into groff
+ files.
+
+2013-02-07 Werner LEMBERG <wl@gnu.org>
+
+Version 1.22.2 released
+=======================
+
+ * NEWS, REVISION, doc/groff.texinfo, doc/webpage.ms: Updated.
+
+ * configure: Regenerated.
+
+ * doc/texinfo.tex: Updated from `texinfo' repository.
+
+ * src/roff/groff/groff.cpp (main) <'v'>: Update copyright year.
+
+2013-02-07 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/gnulib/*: Update `gnulib' files.
+
+2013-02-02 Gilles Espinasse <g.esp@free.fr>
+
+ [grohtml] Don't ignore return value of `dup'.
+
+ * src/preproc/html/pushback.cpp (pushBackBuffer::pushBackBuffer,
+ pushBackBuffer::~pushBackBuffer): Abort if `dup' fails.
+
+2013-01-30 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * tmac/groff_man.man: Fix wrong connection for tbl(1).
+
+2013-01-29 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Fix documentation of .LP macro in ms.
+ Problem reported by Omari Norman <omari@smileystation.com>.
+
+2013-01-29 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (uninstall_sub): Handle `gnu.eps'.
+
+2013-01-29 Werner LEMBERG <wl@gnu.org>
+
+ Building clean-ups.
+
+ * Makefile.in: Use $(top_srcdir) where appropriate.
+ * Makefile.sub (M4MACROS): Add `fcntl-o.m4' and `localcharset.m4'.
+
+ * font/devpdf/Makefile.sub (UTILFILES): Removed, unused.
+ (MOSTLYCLEANADD): Add `BuildFoundries'.
+ * src/devices/gropdf/Makefile.sub (MOSTLYCLEANADD): Add `pdfmom'.
+
+2013-01-24 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Add a shell command to 'MANIFEST' that displays all man source
+ files and their section.
+
+2013-01-22 Bernd Warken <groff-bernd.warken-72@web.de>
+
+ * Add email address in all files having the name.
+
+2013-01-14 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl (do_x, do_p, do_s, Set_LWidth): The
+ grops driver defaults to round linecaps and linejoins, gropdf
+ incorrectly used butt caps and miter joins.
+
+ (Since the MOM package expects to use butt caps and miter joins
+ (emitting the necessary postscript code to change the caps and
+ joins), gropdf now parses the same postscript commands.)
+
+ * src/devices/gropdf/gropdf.man: Document the handling of linecaps
+ and linejoins.
+
+ * tmac/pdf.tmac (pdfbookmark): Fix bug where the current
+ PDFOUTLINE.FOLDLEVEL may not be honoured if warnings of the type
+
+ macro warning: adjusted level n bookmark; should be <= n
+
+ Added copyright and mention debt owed to Keith Marshall for
+ original `pdfmark.tmac', upon which `pdf.tmac' is largely based.
+
+ * font/devpdf/Foundry.in, font/devpdf/util/BuildFoundries.pl
+ (LocateFile): The font for EURO had the wrong entry in the
+ `download' file (it pointed to The font in the build directory,
+ which is wrong). It has always been permissible to include a
+ path along with the font name in the Foundry file, but until now
+ the font had to exist to be valid. It is now permitted to start
+ the path with an asterisk which tells BuildFoundry to use the
+ path/filename in the download file without checking if the font
+ exists. This allows the font to be found in `../devps' even
+ though it is not there during the build (if source and build are
+ different), but will be there after the install.
+
+2013-01-13 Werner LEMBERG <wl@gnu.org>
+
+ [eqn] Fix display of matrices in nroff output.
+
+ Problem reported by Andy Spencer <andy753421@gmail.com>.
+
+ * src/preproc/eqn/pile.cpp (pile_box::compute_metrics,
+ matrix_box::compute_metrics): Fix rounding.
+
+2013-01-07 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * tmac/europs.tmac: Protect against missing fonts.
+
+2013-01-07 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * font/devpdf/util/BuildFoundries.pl (LoadFoundry): Improve
+ warning.
+
+2013-01-07 Werner LEMBERG <wl@gnu.org>
+
+ [tbl] Allow characters #, `, and ' as eqn delimiters.
+
+ While problems ` and ' have been unintentionally introduced rather
+ recently, the limitation regarding # was there from the beginning.
+
+ At the same time, fix a small bug causing `.lf' requests not
+ starting a line.
+
+ * src/preproc/tbl/table.cpp (table::init_output)
+ (table::compute_expand_width, table::compute_separation_factor)
+ (table::define_bottom_macro, table::do_bottom): Temporarily switch
+ off eqn delimiters, wrapping the code into a `.ig' block. This
+ uses the new functionality just added to eqn.
+
+ * src/preproc/eqn/eqn.man, src/preproc/tbl/tbl.man: Updated.
+
+2013-01-06 Werner LEMBERG <wl@gnu.org>
+
+ [eqn] Add `delim on'.
+
+ * src/preproc/eqn/lex.cpp (start_delim_saved, end_delim_saved):
+ New global variables.
+ (do_delim): Handle `delim on' to restore previous start and end
+ delimiters.
+
+ * src/preproc/eqn/eqn.man, NEWS: Document it.
+
+2013-01-02 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf] Various minor fixes.
+
+ * src/devices/gropdf/gropdf (do_x) <'X'> <'pdfpic'>: Using
+
+ \X'pdf: pdfpic'
+
+ with a zero width now works correctly.
+
+ (LoadPDF): Scale width in proportion to given height.
+
+ (do_s): In some circumstances a font size change is emitted before
+ current font is established. Fix handles this situation.
+
+2012-12-30 Werner LEMBERG <wl@gnu.org>
+
+Version 1.22.1 released
+=======================
+
+ Due to CVE-2012-3386, ftp.gnu.org rejected uploading of version
+ 1.22 -- in other words, 1.22 has never been released.
+
+ * NEWS, REVISION, doc/groff.texinfo, doc/webpage.ms: Updated.
+
+ * Makefile.in (NOMAKEDIRS): Updated.
+
+2012-12-30 Werner LEMBERG <wl@gnu.org>
+
+ * src/libs/gnulib/*: Update `gnulib' files.
+
+ Because we currently don't support `gnulib-tool' directly but add
+ everything to the CVS repository, and many internal details of the
+ gnulib setup has changed, it is necessary to do redo the import.
+
+ . Temporarily rename `src/libs/gnulib' to `src/libs/gnulib.old'.
+
+ . Call
+
+ gnulib-tool --create-testdir \
+ --dir=src/libs/gnulib \
+ wcwidth
+
+ . Manually move directories `src/libs/gnulib/gl{lib,m4}' to
+ `src/libs/gnulib/{lib,m4}', and do `s/gllib/lib/' and `s/glm4/m4/'
+ in all files to `convert' the gnulib testbed to a standard gnulib
+ configuration as maintained by gnulib-tool. Additionally, remove
+ the directory `src/libs/gnulib/gltests' and the references to
+ `gltests' in all files.
+
+ (All of this could be done with a script, but I hope that this is
+ eventually replaced with migrating groff as a whole to gnulib and
+ its setup).
+
+ . Call
+
+ gnulib-tool --add-import \
+ --dir=src/libs/gnulib \
+ wcwidth
+
+ to update everything.
+
+ . Merge the changed, new, and deleted files into `gnulib.old',
+ delete `gnulib', rename `gnulib.old' to `gnulib', then commit.
+
+2012-12-28 Werner LEMBERG <wl@gnu.org>
+
+ [doc] More documentation generation rules.
+
+ * doc/Makefile.in (.texinfo.txt): New rule.
+ (.texinfo.html): Use `LANG='.
+ (split-html): New target.
+
+2012-12-28 Werner LEMBERG <wl@gnu.org>
+
+ * doc/fixinfo.sh: Make it work with makinfo 4.13 also.
+
+2012-12-28 Werner LEMBERG <wl@gnu.org>
+
+ Split ChangeLog.
+
+ * ChangeLog: Split off older entries into...
+ * ChangeLog.121: this new file.
+
+2012-12-28 Werner LEMBERG <wl@gnu.org>
+
+Version 1.22 released
+=====================
+
+ * NEWS, VERSION, doc/groff.texinfo, doc/webpage.ms: Updated.
+
+ * config.guess, config.sub: Updated from `config' repository.
+
+ * INSTALL.gen: Updated from `gnulib' repository (file `INSTALL').
+
+ * aclocal.m4, configure: Regenerated.
+
+ * doc/texinfo.tex: Updated from `texinfo' repository.
+
+ * src/roff/groff/groff.cpp (main) <'v'>: Update copyright year.
+
+2012-12-27 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * man/groff_font.man: Typographical improvements and typos.
+
+2012-12-27 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * man/ditroff.man: Typographical improvements and typos.
+
+2012-12-18 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * man/groff_diff.man: Typographical improvements and typos.
+
+2012-12-16 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ * man/groff.man: Typographical improvements (and one typo).
+ * man/groff_char.man: Typographical improvements.
+
+2012-10-17 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * src/devices/gropdf/gropdf.pl (do_D): The command \D't N' moves
+ horizontal position by 'N'. gropdf now obeys this rule.
+ (do_t): Fixed kerning issue where width of non-kerned text could
+ be wrongly calculated using previous kern factor.
+
+2012-09-21 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve documentation of `.ad'.
+
+2012-09-20 Werner LEMBERG <wl@gnu.org>
+
+ * doc/Makefile.sub (uninstall_sub): Fix removal of info files.
+
+2012-09-20 Werner LEMBERG <wl@gnu.org>
+
+ Simplify environment handling.
+
+ Suggested by Ivan Shmakov <oneingray@gmail.com>.
+
+ * doc/Makefile.in, doc/Makefile.sub (GROFF): Don't use export.
+
+2012-09-20 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ [gropdf] Various minor fixes.
+
+ * font/devpdf/Foundry.in: Add font path to debian `gsfonts'
+ package.
+
+ * font/devpdf/util/BuildFoundries.pl: Handle missing fonts in a
+ more sane way, do NOT abort the complete make run!
+
+ * src/devices/gropdf/gropdf: Accept papersize names (i.e. A4) as
+ either upper or lower case. The -p (papersize) option should be
+ length,width (currently reversed - width,length)
+
+ * src/devices/gropdf/pdfmom.pl: Support use of GROFF_BIN_PATH.
+
+2012-09-11 Ralph Corderoy <ralph@inputplus.co.uk>
+ Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Better document `d' column specifier.
+
+2012-08-31 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ Add `pdfmom' to handle mom documents with gropdf.
+
+ * Makefile.in (OTHERDIRS): Move contrib/mom to be run after
+ devices/gropdf.
+
+ * src/devices/gropdf/gropdf.pl: Various fixes:
+
+ . Correct image scaling issue.
+ . Handle relative horizontal movement 'h' followed by absolute
+ vertical movement 'V'.
+ . Correct handling of track kerning.
+
+ * src/devices/gropdf/pdfmom.pl: New wrapper for mom (pdfmom)
+ using gropdf or grops driver.
+ * src/devices/gropdf/pdfmom.man: New man page.
+ * src/devices/gropdf/Makefile.sub: Updated to handle new files.
+
+2012-08-31 Deri James <deri@chuzzlewit.myzen.co.uk>
+
+ * Makefile.in (OTHERDIRS): Move contrib/mom to be run after
+ devices/gropdf.
+
+ * src/devices/gropdf/gropdf.pl: Various fixes:
+
+ . Correct image scaling issue.
+ . Handle relative horizontal movement 'h' followed by absolute
+ vertical movement 'V'.
+ . Correct handling of track kerning.
+
+ * src/devices/gropdf/pdfmom.pl: New wrapper for mom (pdfmom)
+ using gropdf or grops driver.
+ * src/devices/gropdf/pdfmom.man: New man page.
+ * src/devices/gropdf/Makefile.sub: Updated to handle new files.
+
+2012-08-31 Julien Moutinho <julm+groff@autogeree.net>
+
+ * tmac/www.tmac (www-push-li): Fix indentation.
+
+ See
+
+ http://lists.gnu.org/archive/html/bug-groff/2012-08/msg00009.html
+
+ for the full report.
+
+2012-08-08 Eric S. Raymond <esr@thyrsus.com>
+
+ TBLization, as discussed on the list. There's a rewrite of
+ this file in planning, but this gets the content clean for now.
+
+ * tmac/groff_mdoc.man: In this file.
+
+2012-08-09 Werner LEMBERG <wl@gnu.org>
+
+ Provide proper Unicode mapping from and to dotless j.
+
+ * src/libs/libgroff/glyphuni.cpp (glyph_to_unicode_list),
+ src/libs/libgroff/uniglyph.cpp (unicode_to_glyph_list): Add it.
+
+2012-08-08 Eric S. Raymond <esr@thyrsus.com>
+
+ Added Unicode code point for dotless j.
+
+ * man/groff_char.man: In this file.
+
+2012-08-08 Werner LEMBERG <wl@gnu.org>
+
+ * man/groff_char.man: Clean-ups.
+
+2012-08-08 Eric S. Raymond <esr@thyrsus.com>
+
+ Elimination of nasty presentation-level macro tangles makes
+ structural translation to XML possible.
+
+ * man/groff_char.man: Clean up the mess, use real TBL tables.
+
+2012-07-23 Eric S. Raymond <esr@thyrsus.com>
+
+ More elimination of low-level troff hackery in the documentation
+ so it can be lifted to structural markup.
+
+ * tmac/groff_me.man: Use TBL rather than wacky diversions and .ti
+ requests.
+
+2012-07-24 Werner LEMBERG <wl@gnu.org>
+
+ Fix appearance of groff.texinfo's HTML output.
+
+ Cartouches within an `example' environment don't work.
+
+ * doc/groff.texinfo (CartoucheExample, endCartoucheExample): New
+ macros. Use them where appropriate.
+
+2012-07-17 Ingo Schwarze <schwarze@usta.de>
+
+ [mdoc] Make `Fl' correctly restore fonts.
+
+ * tmac/doc.tmac (doc-flag-recursion): Do it.
+
+2012-07-07 Eric S. Raymond <esr@thyrsus.com>
+
+ * src/preproc/eqn/eqn.man, src/preproc/grn/grnn.man,
+ src/devices/grodvi/grodvi.man, src/devices/grolj4/grolj4.man,
+ src/devices/grops/grops.man, src/utils/lkbib/lkbib.man,
+ src/utils/indxbib/indxbib.man, src/utils/tfmtodit/tfmtodit.man,
+ src/utils/xtotroff/xtotroff.man:
+ Remove running text in the synopses of various manual pages,
+ as it badly screws up attempts to mechanically parse them.
+
+ * contrib/mom/groff_mom.man: Use .URL rather than .UR/.UE, as this
+ is now preferred for manual pages.
+
+2012-07-03 Werner LEMBERG <wl@gnu.org>
+
+ Fix Unicode mapping of Greek stroked and curly phi.
+
+ Problem reported by Alkis Georgopoulos <alkisg@gmail.com>;
+ 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 <deri@chuzzlewit.demon.co.uk>
+
+ * src/devices/gropdf/gropdf.pl: When using variable page
+ sizes (with \X'papersize ...') ensure final page is correct
+ size.
+
+2012-05-24 Werner LEMBERG <wl@gnu.org>
+
+ * src/roff/grog/grog.pl (process): Fix .so handling.
+
+ This does the same as the previous commit.
+
+2012-05-24 Denis M. Wilson <dmw@oxytropis.plus.com>
+
+ * 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 <oneingray@gmail.com>
+
+ 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 <deri@chuzzlewit.demon.co.uk>
+
+ * 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 <top>: 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 <wl@gnu.org>
+
+ 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) <case '*'>: 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
+ <bjarniig@rhi.hi.is>.
+
+2012-03-05 Werner LEMBERG <wl@gnu.org>
+
+ * tmac/an-ext.tmac (SY): Handle argument with spaces correctly.
+
+ Problem reported by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
+
+2012-03-01 Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+ [an-old] Fix warnings.
+
+ * tmac/an-old.tmac (an-init): Insert missing braces.
+
+2012-02-26 Werner LEMBERG <wl@gnu.org>
+
+ 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, mkinstalldir:
+ 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 <wl@gnu.org>
+
+ 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 <deri@chuzzlewit.demon.co.uk>
+
+ [gropdf] Fixes and omissions.
+
+ * src/devices/gropdf/gropdf.pl (<top>, 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 <deri@chuzzlewit.demon.co.uk>
+
+ [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 <wl@gnu.org>
+
+ * src/preproc/pic/main.cpp (do_file): Check for invalid characters.
+
+ Problem reported by Doug McIlroy <doug@cs.dartmouth.edu>.
+
+2012-01-25 Ingo Schwarze <schwarze@usta.de>
+
+ [mdoc] * tmac/doc-syms: Fix meaning of XBD acronym.
+
+2012-01-25 Tadziu Hoffmann <hoffmann@usm.uni-muenchen.de>
+
+ * 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 <bruno@clisp.org>
+
+ 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 <schwarze@usta.de>
+
+ 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 <kristaps@bsd.lv>
+
+ [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 <deri@chuzzlewit.demon.co.uk>
+
+ * font/devpdf/Makefile.sub: Only build fonts on first `make'.
+
+2011-12-08 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo (.tl): Improve documentation.
+ Wording suggested by Keith Marshall
+ <keithmarshall@users.sourceforge.net>.
+
+2011-12-01 Werner LEMBERG <wl@gnu.org>
+
+ [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 <schwarze@usta.de>
+
+ [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 <wl@gnu.org>
+
+ * tmac/groff_man.man: Minor documentation improvements.
+ Suggested by Jeff Conrad <jeff_conrad@msn.com>.
+
+2011-11-14 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve doc for calling undefined identifiers.
+
+2011-11-14 Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Improve documentation of `_' and
+ friends.
+
+2011-10-31 Werner LEMBERG <wl@gnu.org>
+
+ 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 <schwarze@openbsd.org>
+
+ [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 <jkoshy@users.sourceforge.net>
+
+ [mdoc] Add some library strings.
+
+ * tmac/doc-syms: Add `libdwarf' and `libelf'.
+ * tmac/groff_mdoc.man: Document them.
+
+2011-08-14 Deri James <deri@chuzzlewit.demon.co.uk>
+
+ [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 (<top>, 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 <deri@chuzzlewit.demon.co.uk>
+
+ [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 <ueno@unixuser.org>
+
+ Fix cross building. Problem reported by Christophe Jarry
+ <christophe.jarry@ouvaton.org>.
+
+ * Makefile.in ($GNULIBDIRS): Pass original config arguments to
+ src/libs/gnulib/configure.
+
+2011-06-25 Deri James <deri@chuzzlewit.demon.co.uk>
+
+ 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): Updated.
+ * 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 <ghfbsd@gmail.com>
+
+ 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 <ted.harding@wlandres.net>
+ Werner LEMBERG <wl@gnu.org>
+
+ * src/preproc/tbl/tbl.man: Mention trick to get abutting rules.
+
+2011-07-03 Ben Laurie <benl@FreeBSD.org>
+
+ 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 <guillem@debian.org>
+
+ mdoc: Update more OS versions strings.
+
+ * tmac/doc-common: Add versions strings for NetBSD, OpenBSD,
+ FreeBSD, and DragonFly.
+
+2011-04-08 Michail Vidiassov <master@iaas.msu.ru>
+
+ 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 <naddy@mips.inka.de>
+
+ 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 <schwarze@usta.de>
+
+ Add another POSIX standard.
+
+ * tmac/doc-syms: Add POSIX 1003.1b.
+
+2011-03-29 Christian Weisgerber <naddy@mips.inka.de>
+
+ 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 <jvcelak@redhat.com>
+ Bernd Warken <groff-bernd.warken-72@web.de>
+
+ [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 <wl@gnu.org>
+
+ [troff] Improve error message.
+
+ * src/roff/troff/input.cc (token::delimiter): Improve error
+ message. Suggested by Doug McIlroy <doug@cs.dartmouth.edu>.
+
+2011-03-04 Werner LEMBERG <wl@gnu.org>
+
+ [mdoc] Within .An, .Aq, .Ao, and .Ac now use `<' and `>'.
+ Problem reported by Ulrich Spörlein <uqs@spoerlein.net>
+
+ * tmac/doc.tmac (Aq, Ao, Ac): Implement it to follow RFC 822 and
+ RFC 2822.
+
+2011-02-14 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Add another example for .em request
+ Based on a patch from Anton Shepelev <anton.txt@gmail.com>.
+
+2011-01-31 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ 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 <giecrilj@stegny.2a.pl>
+
+ * doc/groff.texinfo: Complete documentation on output devices.
+
+2011-01-28 Werner LEMBERG <wl@gnu.org>
+
+ Handle `refer*.tmac'.
+
+ * tmac/Makefile.sub (NORMALFILES): Add `refer*.tmac'.
+ * tmac/refer-mm.tmac: Moved to contrib/mm.
+
+2011-01-28 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ [groff.texinfo]: Updates.
+
+ * doc/groff.texinfo: Document groff's `-j' option.
+ Add dummy section for `chem' preprocessor.
+
+2011-01-22 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ Make `groff -G' imply `-p'.
+
+ * src/roff/groff/groff.cpp (main): Implement it.
+ * src/roff/groff/groff.man: Updated.
+
+2011-01-22 Werner LEMBERG <wl@gnu.org>
+
+ 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 <wl@gnu.org>
+
+ * doc/groff.texinfo: `chem' is now part of groff.
+
+2011-01-22 Werner LEMBERG <wl@gnu.org>
+
+ * doc/groff.texinfo: Improve description of `.de'.
+
+ Based on suggestions by Ted Harding and Deri James.
+
+2011-01-20 Colin Watson <cjwatson@debian.org>
+
+ 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 <wl@gnu.org>
+
+ * src/preproc/pic/pic.man: Add pic manual to `SEE ALSO' section.
+
+2011-01-14 Werner LEMBERG <wl@gnu.org>
+
+ Split ChangeLog.
+
+ * ChangeLog: Split off older entries into...
+ * ChangeLog.119, ChangeLog.120: these new files.
+
+2011-01-15 Colin Watson <cjwatson@debian.org>
+
+ * Makefile.comm (INCLUDES): Fix typo.
+
+2011-01-05 Werner LEMBERG <wl@gnu.org>
+
+ * doc/webpage.ms: Fix rendering of title image.
+
+
+________________________________________________________________________
+
+##### License
+
+Copyright 2011-2018 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.
+
+
+##### Editor settings
+Local Variables:
+fill-column: 72
+mode: change-log
+version-control: never
+End:
+vim:set autoindent textwidth=72: