mdocml: upstream sync
[dragonfly.git] / contrib / mdocml / mandoc.c
index 80a2065..58e3aca 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mandoc.c,v 1.71 2013/12/25 00:50:05 schwarze Exp $ */
+/*     $Id: mandoc.c,v 1.73 2013/12/26 02:55:28 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
@@ -101,6 +101,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.  
@@ -157,12 +165,16 @@ mandoc_escape(const char const **end, const char const **start, int *sz)
                /* FALLTHROUGH */
        case ('b'):
                /* FALLTHROUGH */
+       case ('B'):
+               /* FALLTHROUGH */
        case ('D'):
                /* FALLTHROUGH */
        case ('o'):
                /* FALLTHROUGH */
        case ('R'):
                /* FALLTHROUGH */
+       case ('w'):
+               /* FALLTHROUGH */
        case ('X'):
                /* FALLTHROUGH */
        case ('Z'):
@@ -177,8 +189,6 @@ mandoc_escape(const char const **end, const char const **start, int *sz)
         * These escapes are of the form \X'N', where 'X' is the trigger
         * and 'N' resolves to a numerical expression.
         */
-       case ('B'):
-               /* FALLTHROUGH */
        case ('h'):
                /* FALLTHROUGH */
        case ('H'):
@@ -186,19 +196,15 @@ mandoc_escape(const char const **end, const char const **start, int *sz)
        case ('L'):
                /* FALLTHROUGH */
        case ('l'):
-               gly = ESCAPE_NUMBERED;
                /* FALLTHROUGH */
        case ('S'):
                /* FALLTHROUGH */
        case ('v'):
                /* FALLTHROUGH */
-       case ('w'):
-               /* FALLTHROUGH */
        case ('x'):
                if ('\'' != **start)
                        return(ESCAPE_ERROR);
-               if (ESCAPE_ERROR == gly)
-                       gly = ESCAPE_IGNORE;
+               gly = ESCAPE_IGNORE;
                *start = ++*end;
                term = '\'';
                break;