]> git.cameronkatri.com Git - mandoc.git/blobdiff - read.c
Disentangle the MANDOCERR_CHILD message, which reported three
[mandoc.git] / read.c
diff --git a/read.c b/read.c
index 1548c9a00c741e7f0eca4222f87c774edfd0f26f..a60f42f970776e1abe2593ed9553ce1ab7f02341 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/*     $Id: read.c,v 1.47 2014/04/20 16:46:05 schwarze Exp $ */
+/*     $Id: read.c,v 1.57 2014/07/02 13:10:45 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -93,34 +93,38 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "generic warning",
 
        /* related to the prologue */
-       "no title in document",
-       "document title should be all caps",
+       "missing .TH macro, using \"unknown 1\"",
+       "lower case character in document title",
        "unknown manual section",
        "unknown manual volume or arch",
-       "date missing, using today's date",
+       "missing date, using today's date",
        "cannot parse date, using it verbatim",
        "prologue macros out of order",
        "duplicate prologue macro",
-       "macro not allowed in prologue",
-       "macro not allowed in body",
+       "incomplete prologue, terminated by",
+       "skipping prologue macro in body",
 
        /* related to document structure */
        ".so is fragile, better use ln(1)",
-       "NAME section must come first",
+       "no document body",
+       "content before first section header",
+       "first section is not \"NAME\"",
        "bad NAME section contents",
        "sections out of conventional order",
-       "duplicate section name",
-       "section header suited to sections 2, 3, and 9 only",
+       "duplicate section title",
+       "unexpected section",
 
        /* related to macros and nesting */
-       "skipping obsolete macro",
+       "obsolete macro",
        "skipping paragraph macro",
        "moving paragraph macro out of list",
        "skipping no-space macro",
        "blocks badly nested",
-       "child violates parent syntax",
        "nested displays are not portable",
-       "already in literal mode",
+       "moving content out of list",
+       ".Vt block has child macro",
+       "fill mode already enabled, skipping .fi",
+       "fill mode already disabled, skipping .nf",
        "line scope broken",
 
        /* related to missing macro arguments */
@@ -130,7 +134,6 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "list type must come first",
        "tag lists require a width argument",
        "missing font type",
-       "skipping end of block that is not open",
 
        /* related to bad macro arguments */
        "skipping argument",
@@ -151,9 +154,6 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "bad escape sequence",
        "unterminated quoted string",
 
-       /* related to equations */
-       "unexpected literal in equation",
-
        "generic error",
 
        /* related to equations */
@@ -177,10 +177,11 @@ static    const char * const      mandocerrs[MANDOCERR_MAX] = {
        "skipping bad character",
        "escaped character not allowed in a name",
        "manual name not yet set",
-       "skipping text before the first section header",
+       "skipping text before first section header",
        "skipping unknown macro",
        "NOT IMPLEMENTED, please use groff: skipping request",
        "argument count wrong",
+       "skipping invalid content in .Rs block",
        "skipping column outside column list",
        "skipping end of block that is not open",
        "missing end of block",
@@ -192,7 +193,6 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "request requires a numeric argument",
        "missing list type",
        "line argument(s) will be lost",
-       "body argument(s) will be lost",
 
        "generic fatal error",
 
@@ -204,12 +204,12 @@ static    const char * const      mandocerrs[MANDOCERR_MAX] = {
        "child violates parent syntax",
        "argument count wrong, violates syntax",
        "NOT IMPLEMENTED: .so with absolute path or \"..\"",
-       "no document body",
+       ".so request failed",
        "no document prologue",
        "static buffer exhausted",
 
        /* system errors */
-       "cannot open file",
+       NULL,
        "cannot stat file",
        "cannot read file",
 };
@@ -505,8 +505,12 @@ rerun:
                        if (curp->secondary)
                                curp->secondary->sz -= pos + 1;
                        mparse_readfd(curp, -1, ln.buf + of);
-                       if (MANDOCLEVEL_FATAL <= curp->file_status)
+                       if (MANDOCLEVEL_FATAL <= curp->file_status) {
+                               mandoc_vmsg(MANDOCERR_SO_FAIL,
+                                   curp, curp->line, pos,
+                                   ".so %s", ln.buf + of);
                                break;
+                       }
                        pos = 0;
                        continue;
                default:
@@ -684,7 +688,7 @@ mparse_end(struct mparse *curp)
        }
 
        if ( ! (curp->mdoc || curp->man || curp->sodest)) {
-               mandoc_msg(MANDOCERR_NOTMANUAL, curp, 1, 0, NULL);
+               mandoc_msg(MANDOCERR_NOTMANUAL, curp, 0, 0, NULL);
                curp->file_status = MANDOCLEVEL_FATAL;
                return;
        }
@@ -852,7 +856,7 @@ mandoc_vmsg(enum mandocerr t, struct mparse *m,
        va_list          ap;
 
        va_start(ap, fmt);
-       vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
+       (void)vsnprintf(buf, sizeof(buf), fmt, ap);
        va_end(ap);
 
        mandoc_msg(t, m, ln, pos, buf);