aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorg-branden-robinson <91402745+g-branden-robinson@users.noreply.github.com>2022-08-12 22:37:28 -0500
committerGitHub <noreply@github.com>2022-08-12 23:37:28 -0400
commit93f814360076ccf28d33c9cb909fca7200ba4a7d (patch)
treef6faaef72b36bc2a5e4f103b2a872f89c303e26f /src
parent506de8f6d4acedcb5b30f841611e6a4d95ce0feb (diff)
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 (limited to 'src')
-rw-r--r--src/cmd/troff/n1.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cmd/troff/n1.c b/src/cmd/troff/n1.c
index adda8c4b..27496b2f 100644
--- 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;