]> git.cameronkatri.com Git - mandoc.git/blobdiff - read.c
prevent the skipvsp flag from creeping past actual text
[mandoc.git] / read.c
diff --git a/read.c b/read.c
index 5f38158488acd0426a8240eb878f6b524c4c2c63..0b4caa05a9c0d99ab27400ed2476d2627c253086 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/*     $Id: read.c,v 1.117 2015/01/26 13:03:48 schwarze Exp $ */
+/*     $Id: read.c,v 1.129 2015/03/02 14:50:17 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -109,7 +109,11 @@ static     const char * const      mandocerrs[MANDOCERR_MAX] = {
        "no document body",
        "content before first section header",
        "first section is not \"NAME\"",
-       "bad NAME section contents",
+       "NAME section without name",
+       "NAME section without description",
+       "description not at the end of NAME",
+       "bad NAME section content",
+       "missing description line, using \"\"",
        "sections out of conventional order",
        "duplicate section title",
        "unexpected section",
@@ -135,18 +139,22 @@ static    const char * const      mandocerrs[MANDOCERR_MAX] = {
        "skipping empty request",
        "conditional request controls empty scope",
        "skipping empty macro",
+       "empty block",
        "empty argument, using 0n",
-       "argument count wrong",
        "missing display type, using -ragged",
        "list type is not the first argument",
        "missing -width in -tag list, using 8n",
        "missing utility name, using \"\"",
+       "missing function name, using \"\"",
        "empty head in list item",
        "empty list item",
        "missing font type, using \\fR",
        "unknown font type, using \\fR",
        "nothing follows prefix",
+       "empty reference block",
        "missing -std argument, adding it",
+       "missing option string, using \"\"",
+       "missing resource identifier, using \"\"",
        "missing eqn box, using \"\"",
 
        /* related to bad macro arguments */
@@ -156,12 +164,14 @@ static    const char * const      mandocerrs[MANDOCERR_MAX] = {
        "skipping duplicate display type",
        "skipping duplicate list type",
        "skipping -width argument",
+       "wrong number of cells",
        "unknown AT&T UNIX version",
        "comma in function argument",
        "parenthesis in function name",
        "invalid content in Rs block",
        "invalid Boolean argument",
        "unknown font, skipping request",
+       "odd number of characters in request",
 
        /* related to plain text */
        "blank line in fill mode, using .sp",
@@ -171,24 +181,25 @@ static    const char * const      mandocerrs[MANDOCERR_MAX] = {
        "invalid escape sequence",
        "undefined string, using \"\"",
 
-       "generic error",
+       /* related to tables */
+       "tbl line starts with span",
+       "tbl column starts with span",
+       "skipping vertical bar in tbl layout",
 
-       /* related to equations */
-       "unexpected equation scope closure",
-       "equation scope open on exit",
-       "overlapping equation scopes",
-       "unexpected end of equation",
+       "generic error",
 
        /* related to tables */
        "non-alphabetic character in tbl options",
        "skipping unknown tbl option",
        "missing tbl option argument",
        "wrong tbl option argument size",
-       "no table layout cells specified",
-       "no table data cells specified",
-       "ignore data in cell",
-       "data block still open",
-       "ignoring extra data cells",
+       "empty tbl layout",
+       "invalid character in tbl layout",
+       "unmatched parenthesis in tbl layout",
+       "tbl without any data cells",
+       "ignoring data in spanned tbl cell",
+       "ignoring extra tbl data cells",
+       "data block open at end of tbl",
 
        /* related to document structure and macros */
        NULL,
@@ -205,7 +216,6 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
 
        /* related to request and macro arguments */
        "escaped character not allowed in a name",
-       "argument count wrong",
        "NOT IMPLEMENTED: Bd -file",
        "missing list type, using -item",
        "missing manual name, using \"\"",
@@ -222,9 +232,9 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "input too large",
        "unsupported control character",
        "unsupported roff request",
-       "unsupported table layout",
+       "eqn delim option in tbl",
+       "unsupported tbl layout modifier",
        "ignoring macro in table",
-       "eqn in tbl",
 };
 
 static const char * const      mandoclevels[MANDOCLEVEL_MAX] = {
@@ -392,7 +402,8 @@ mparse_buf_r(struct mparse *curp, struct buf blk, size_t i, int start)
                                    MANDOCERR_CHAR_UNSUPP,
                                    curp, curp->line, pos, "0x%x", c);
                                i++;
-                               ln.buf[pos++] = '?';
+                               if (c != '\r')
+                                       ln.buf[pos++] = '?';
                                continue;
                        }
 
@@ -857,6 +868,7 @@ mparse_wait(struct mparse *curp)
                perror("wait");
                exit((int)MANDOCLEVEL_SYSERR);
        }
+       curp->child = 0;
        if (WIFSIGNALED(status)) {
                mandoc_vmsg(MANDOCERR_FILE, curp, 0, 0,
                    "gunzip died from signal %d", WTERMSIG(status));