commit 93f814360076ccf28d33c9cb909fca7200ba4a7d from: g-branden-robinson <91402745+g-branden-robinson@users.noreply.github.com> via: GitHub date: Sat Aug 13 03:37:28 2022 UTC 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. commit - 506de8f6d4acedcb5b30f841611e6a4d95ce0feb commit + 93f814360076ccf28d33c9cb909fca7200ba4a7d blob - adda8c4b46ccabe4256644df55392c7ce7f2bb9b blob + 27496b2f3a4c9883444c623272a0323f7d43c2ae --- src/cmd/troff/n1.c +++ 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;