Up to [cvsweb.bsd.lv] / mandoc / regress / roff / esc
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.1 / (download) - annotate - [select for diffs], Wed Apr 13 13:19:36 2022 UTC (2 years, 2 months ago) by schwarze
Branch: MAIN
CVS Tags: HEAD
Surprisingly, groff supports multiple copy mode escapes at the beginning of an escape sequence: \, \E, \EE, \EEE, and so on all do the same outside copy mode, so let them do the same in mandoc(1), too. This fixes an assertion failure triggered by \EE*X that tb@ found with afl(1). The first E was consumed by roff_expand(), but that function failed to recognize the escape sequence as the expansion of a user-defined string and handed it over to mandoc_escape(), which consumed the second E and then died on an assertion because it is not prepared to handle user-defined strings. Fix this by letting *both* functions handle arbitrary numbers of 'E's correctly.