plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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:
Msrc/cmd/troff/n1.c | 2++
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;