Alan, Thomas: See <https://savannah.gnu.org/bugs/?67387>.
Thomas also helpfully reported <https://savannah.gnu.org/bugs/?65469>.
Peter Chubb: Suggested bsearch(3) as an exemplar for new and improved
`SY` and `YS` man(7) macros.
T. Kurt Bond: Reported Fedora 39's new storage location for URW fonts.
Andreas, Axel: Assisted with "notquine.sed" in sboxes.
Frazer: Assisted with mm(7)'s display macros `DF` and `DE`.
Gene: Reported <https://savannah.gnu.org/bugs/?63581>.
Günther: Reported and assisted with
<https://savannah.gnu.org/bugs/?63581> (a vicious beast to nail down).
Ken: Assisted with mm(7)'s memorandum type 5.
Larry: Assisted with gdiffmk(1).
* src/devices/xditview/xditview.am
(src/devices/xditview/GXditview-ad.h): Add `$(MKDIR_P)` to target rule
to ensure the parent directory exists. This problem is hard to
observe because it shows up only when our `configure` script is run
with the `--disable-dependency-tracking` option and, apparently,
stochastically with highly parallelized builds. {A "stock" build
never encounters it because with "dependency tracking", Automake
generates make(1) files that create ".deps" files in the build tree,
and a prerequisite to doing so is to create the parents of the
directories housing them, a convenience that this target rule snuck
through.}
Fixes <https://savannah.gnu.org/bugs/?67754> and
<https://bugs.debian.org/1121570>. Problem dates back at least to
commit 62a22cb540, 22 August 2014 (but which did not appear in the
"master" branch until 27 January of the next year), when groff's build
system adopted Automake. Thanks to Helmut Grohne for the report and
Colin Watson for assistance reproducing it.
ANNOUNCE: Acknowledge Helmut.
* src/roff/troff/input.cpp (is_conditional_expression_true): Tweak
wording of syntax warning thrown only in compatibility mode. Say that
the conditional expression operator is "not portable to AT&T troff",
for parallel phrasing with the escape sequence warning added in commit
589a724eca, 2 November, and because a person authoring or formatting a
document presumably knows whether they're using compatibility mode.
(If they don't know, they can find out with `.tm compatibility mode is
\n(.C`.) Prompted by discussion with James Youngman.
ANNOUNCE: Acknowledge James.
* Recognize existence of info-groff list.
* Stop talking about beta releases. groff hasn't made a beta release
since 1999 (1.12beta, per ChangeLog.112).
* src/utils/afmtodit/afmtodit.pl: Stop throwing duplicate mapping
warning diagnostics in a handful of cases where we expect them. (All
are cases of classical Greek letters repurposed for technical
applications). Per James Cloos, some redundant character code points,
and thus duplicate Unicode->AGL mappings, exist to preserve round-trip
compatibility when converting between character sets.
ANNOUNCE: Acknowledge James.
...for help with BSD/grn history, which kept me from making a (bigger)
fool of myself in the file "LICENSE". It seems there really was a
Berkeley ditroff. It just couldn't be shipped in BSD per se.
* tmac/de.tmac (_td_format) [@R]: Fix German date localization for me(7)
package; don't put a dot after the month name.
* tmac/tests/e_ld-works.sh: Update test expectations.
Fixes <https://savannah.gnu.org/bugs/?67303>. Thanks to Stefan Möding
for the report and patch. Problem appears to date back to the
introduction of German localization to groff, in commit 9ed99d14cb, 19
December 2006.
ANNOUNCE: Acknowledge Stefan.
* tmac/mdoc/doc-syms (Lb): Stop throwing warning if no description is
available for the argument. `Lb` usage is not universal among mdoc(7)
documents; per Ingo Schwarze, FreeBSD and NetBSD use it, but OpenBSD
does not. (And in my opinion, a central registry for library
descriptions is not tractable.)
Fixes <https://savannah.gnu.org/bugs/?66410>. Thanks to Andrew Bower
for the report.
ANNOUNCE: Acknowledge Andrew.
* tmac/an.tmac ([initialization])
* tmac/doc.tmac ([initialization]): Remap the text minus sign character
`\-` to `\N'45'` (U+002D) on the "html" device. Annotate the limited
scope of this remapping more thoroughly.
Fixes <https://savannah.gnu.org/bugs/?66836>. Thanks to Benno
Schulenberg for the report.
ANNOUNCE: Acknowledge Benno.
I'm happy to credit manpages-l10n project contributors who have found
issues with groff's man pages if Helge identifies them in his bug
reports (or in follow-ups).
Inline the definition of the deleted, undocumented macro (identical in
both packages) to ease life for refugees who discovered and used it
happily as-was.
Thanks to Joerg van den Hoff for noting my lack of courtesy.
* src/preproc/soelim/soelim.1.man (Description):
* src/roff/groff/groff.1.man (groff-specific options, Usage)
(Getting started): Hyperlink man page cross references on first
occurrences.
Fixes <https://savannah.gnu.org/bugs/?66103>. Thanks to Helge
Kreutzmann and the manpage-l10n project for the report.
ANNOUNCE: Acknowlede Helge.
* src/roff/troff/env.cpp (hyphenate): Fix potential one-byte stack
overwrite if attempting to hyphenate a 256-letter sequence within a
word. Reserve space for null terminator in `hbuf` character array.
Initially, this isn't necessary because the array is simply walked to
normalize hyphenation codes by their equivalence classes. However,
when we subsequently look up the (possibly partial) word in the
exception dictionaries, `hbuf` (or a pointer into it) needs to be
treatable as a C string, thus null-terminated. Respell already
correct expression later in the code to reinforce similarity.
Partially fixes <https://savannah.gnu.org/bugs/?66052>. Thanks to Lukas
Javorsky for identifying the problem using "SAST analyzers (combination
of coverity, snyk, cppcheck, gcc, clang, shellcheck, unicontrol)".
ANNOUNCE: Acknowledge Lukas.
[grohtml]: Migrate from psselect(1) to ps2ps(1).
* src/preproc/html/pre-html.cpp (imageList::createPage): Do it.
* src/devices/grohtml/grohtml.1.man (Dependencies): Document
the changed runtime requirement.
* m4/groff.m4 (GROFF_CHECK_GROHTML_PROGRAMS):
* src/roff/groff/tests/html_works_with_grn_and_eqn.sh:
* src/roff/groff/tests/smoke-test_html_device.sh: Check for
existence of `ps2ps` command instead of `psselect`.
* ANNOUNCE:
* NEWS:
* README:
* README.MinGW: Document change in dependencies.
Fixes <https://savannah.gnu.org/bugs/?65987>.
Change the term "input file" to "input" in groff documentation in cases
where the referenced input need not come from a file.
Fixes <https://savannah.gnu.org/bugs/?65967>.
[Follow-ups:
1. Update the description of groff at its GNU home page to match the
language now in ANNOUNCE/groff.texi.in/groff.1.man.
2. Sync meintro_fr.me.in. Drop a "fichier"?
3. Change some instances of "input" to "the input" where that sounds
better.
--GBR]
* src/utils/grog/grog.pl: Take `cstart` and `cend` tokens out of
`preprocessor_for_macro` hash. They don't work with the existing
logic. Also drop tokens used by preprocessors that don't have
corresponding groff(1) options and therefore don't influence the
output grog(1) can emit.
(do_line): Add bespoke handling for `cstart` and `cend`. Not only are
they the only AT&T troff preprocessor tokens that are longer than two
characters, but their names collide in those first two characters with
the names of troff requests.
Fixes Savannah #65902. Thanks to Morten Bo Johansen for the report.
Problem introduced by me in commit 53a9964497, 31 July 2021.
ANNOUNCE: Acknowledge Morten.
* src/roff/troff/input.cpp (skip_branch): Handle control flow branches
consisting only of a newline correctly when skipping them--actually
skip them, as AT&T troff does. A newline after the `el` request, or
after the conditional expression of an `if`, `ie`, or `while` request,
is not "nothing"; if the branch is taken, it puts a newline on the
output, and if it is not taken, it should neither affect output nor be
_syntactically_ ignored on the pretense that the next input line was
actually part of the branch.
Fixes <https://savannah.gnu.org/bugs/?45502>. Problem likely goes back
to groff's origin. (You could always avoid it with brace escape
sequences, which might explain why it seemed to cause little
consternation.) Thanks to Carsten Kunze for the report and to Dave
Kemper for the code review.
* contrib/mm/m.tmac (PS): Call `HTML-IMAGE` at end of macro definition.
* contrib/mm/m.tmac (PY): Call `HTML-IMAGE-END` at end of macro
definition. (`PE` calls `PY`, and so is also handled.)
Fixes https://savannah.gnu.org/bugs/?65047> (1/2). Thanks to Hans
Bezemer and Dave Kemper for the report.
ANNOUNCE: Acknowledge Hans.
* contrib/gdiffmk/tests/runtests.sh: Test for "diff -D" support as
gdiffmk itself does, and skip test if such support is lacking.
* ANNOUNCE:
* PROBLEMS: Drop caveat about potential test failures.
* contrib/gdiffmk/gdiffmk.sh (RequiresArgument): Refactor to use shell
parameter expansion instead of expr(1), to avoid potential use of
external command and quirk in FreeBSD's implementation.
* ANNOUNCE:
* PROBLEMS: Drop caveat.