Parse and ignore the roff(7) escape sequences \d (move half line down)
authorschwarze <schwarze@openbsd.org>
Wed, 25 Dec 2013 22:45:16 +0000 (22:45 +0000)
committerschwarze <schwarze@openbsd.org>
Wed, 25 Dec 2013 22:45:16 +0000 (22:45 +0000)
und \u (move half line up).  Found by bentley@ in some DocBook crap.
Surprisingly, these two do actually occur in our terminfo(5),
so this patch reduces groff-mandoc differences in base by 0.03%.

usr.bin/mandoc/mandoc.c

index af93d8e..43de450 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mandoc.c,v 1.40 2013/12/25 00:50:03 schwarze Exp $ */
+/*     $Id: mandoc.c,v 1.41 2013/12/25 22:45:16 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
@@ -97,6 +97,14 @@ mandoc_escape(const char const **end, const char const **start, int *sz)
                term = '\'';
                break;
 
+       /*
+        * Escapes taking no arguments at all.
+        */
+       case ('d'):
+               /* FALLTHROUGH */
+       case ('u'):
+               return(ESCAPE_IGNORE);
+
        /*
         * The \z escape is supposed to output the following
         * character without advancing the cursor position.