Pure preprocessor implementation of the roff(7) .ec and .eo requests
authorschwarze <schwarze@openbsd.org>
Sun, 4 Jun 2017 00:08:56 +0000 (00:08 +0000)
committerschwarze <schwarze@openbsd.org>
Sun, 4 Jun 2017 00:08:56 +0000 (00:08 +0000)
commitbe477484be72cc5b0b205e97be8722a4c1af4229
tree05cc68b016a2f5f3a420b56e6a1af3fca2017c2f
parentc673b8284302dedfe8a276cd1e9e1ae8fad15f8d
Pure preprocessor implementation of the roff(7) .ec and .eo requests
(escape character control), touching nothing after the preprocessing
stage and keeping even the state variable local to the preprocessor.
Since the escape character is also used for line continuation, this
requires pulling the implementation of line continuation from the
input reader to the preprocessor, which also considerably shortens
the code required for that.

When the escape character is changed, simply let the preprocessor
replace bare by escaped backslashes and instances of the non-standard
escape character with bare backslashes - that's all we need.

Oh, and if anybody dares to use these requests in OpenBSD manuals,
sending a medium-sized pack of axe-murderes after them might be a
worthwhile part of the punishment, but probably insuffient on its own.
share/man/man7/roff.7
usr.bin/mandoc/read.c
usr.bin/mandoc/roff.c