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
