commit 93f814360076ccf28d33c9cb909fca7200ba4a7d
parent 506de8f6d4acedcb5b30f841611e6a4d95ce0feb
Author: g-branden-robinson <91402745+g-branden-robinson@users.noreply.github.com>
Date: Fri, 12 Aug 2022 22:37:28 -0500
troff: support `\~` as an alias for `\ ` (#567)
In groff, Heirloom Doctools troff, and neatroff, the `\~` escape
sequence produces an adjustable (paddable) but unbreakable space.
mandoc, which does not perform adjustment or render to typesetters,
supports the escape sequence as a synonym for `\ `, the same as `\0`.
This extension is of long pedigree: groff has supported it for at least
30 years, Heirloom for 17, mandoc for 13, and neatroff for 6.
Do the same as mandoc to prevent mis-rendering of documents using this
escape sequence. Heirloom Doctools troff, a descendant of Documenter's
Workbench troff, would be a good place to look for a compatible
implementation of the adjustable semantics for this sequence.
Diffstat:
1 file changed, 2 insertions(+), 0 deletions(-)
diff --git a/src/cmd/troff/n1.c b/src/cmd/troff/n1.c
@@ -512,6 +512,8 @@ g0:
case '\n': /* concealed newline */
numtabp[CD].val++;
goto g0;
+ case '~': /* Heirloom/groff/neatroff: unbreakable space */
+ ; /* fall through */
case ' ': /* unpaddable space */
i = UNPAD;
goto gx;