summaryrefslogtreecommitdiffstats
path: root/regress/roff/de/tab.out_ascii
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2019-02-06 21:11:43 +0000
committerIngo Schwarze <schwarze@openbsd.org>2019-02-06 21:11:43 +0000
commit386d70b32810ee1090f13d0944310eb93a0ba0fc (patch)
tree3f894d3f306d64ebe183d2f08edc2f8b7ffe8dcc /regress/roff/de/tab.out_ascii
parent3b603764164fcabf9c701ff02e59f9410c580ae8 (diff)
downloadmandoc-386d70b32810ee1090f13d0944310eb93a0ba0fc.tar.gz
Let roff_getname() end the roff identifier at a tab character
and audit all its callers whether termination is handled correctly. Resulting improvements: * An escape or tab ending the macro name in a macro invocation is discarded, and argument processing is started after it. * An escape or tab ending a name in ".if d" and ".if r" is preserved. * An escape ending a name in ".ds" causes the whole request to be ignored. * A tab ending a name in ".ds" becomes part of the string. * An escape or tab ending a name in ".rm" causes the rest of the line to be ignored. * An escape or tab ending the first name in ".als", ".rn", or ".nr" causes the whole request to be ignored. Kurt Jaeger <pi at FreeBSD> made me aware of https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235456#c0 and in that bug report, comment 0 item (3) is a special case of this class of issues. Yes, the "mh" manual pages are no doubt among the worst on the planet.
Diffstat (limited to 'regress/roff/de/tab.out_ascii')
-rw-r--r--regress/roff/de/tab.out_ascii21
1 files changed, 21 insertions, 0 deletions
diff --git a/regress/roff/de/tab.out_ascii b/regress/roff/de/tab.out_ascii
new file mode 100644
index 00000000..c2a82d87
--- /dev/null
+++ b/regress/roff/de/tab.out_ascii
@@ -0,0 +1,21 @@
+DE-TAB(1) General Commands Manual DE-TAB(1)
+
+NNAAMMEE
+ ddee--ttaabb - tab characters in macro definition lines
+
+DDEESSCCRRIIPPTTIIOONN
+ no argument: testval ;
+ argument after_tab: testval after_tab;
+ argument after_tab_and_space: testval after_tab_and_space;
+ argument after_two_tabs: testval after_two_tabs;
+ argument after_tab_tab_space: testval ;after_tab_tab_space
+
+ EEnndd mmaarrkkeerr
+ no argument: testval ;
+ argument after_tab: testval after_tab;
+
+ RReemmoovvaall
+ macro test1 is gone:
+ macro test2 still exists: testval ;
+
+OpenBSD February 6, 2019 OpenBSD