=================================================================== RCS file: /cvs/mandoc/read.c,v retrieving revision 1.180 retrieving revision 1.191 diff -u -p -r1.180 -r1.191 --- mandoc/read.c 2017/06/24 15:59:50 1.180 +++ mandoc/read.c 2017/07/08 17:52:50 1.191 @@ -1,4 +1,4 @@ -/* $Id: read.c,v 1.180 2017/06/24 15:59:50 schwarze Exp $ */ +/* $Id: read.c,v 1.191 2017/07/08 17:52:50 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010-2017 Ingo Schwarze @@ -42,7 +42,6 @@ #include "mdoc.h" #include "man.h" #include "libmandoc.h" -#include "roff_int.h" #define REPARSE_LIMIT 1000 @@ -75,7 +74,7 @@ static void mparse_parse_buffer(struct mparse *, str static const enum mandocerr mandoclimits[MANDOCLEVEL_MAX] = { MANDOCERR_OK, - MANDOCERR_STYLE, + MANDOCERR_OK, MANDOCERR_WARNING, MANDOCERR_ERROR, MANDOCERR_UNSUPP, @@ -90,35 +89,42 @@ static const char * const mandocerrs[MANDOCERR_MAX] = "Mdocdate found", "Mdocdate missing", + "unknown architecture", "operating system explicitly specified", "RCS id missing", + "referenced manual not found", "generic style suggestion", "legacy man(7) date format", + "lower case character in document title", "duplicate RCS id", + "typo in section name", + "unterminated quoted argument", "useless macro", "consider using OS macro", "errnos out of order", "duplicate errno", - "description line ends with a full stop", + "trailing delimiter", "no blank before trailing delimiter", + "fill mode already enabled, skipping", + "fill mode already disabled, skipping", "function name without markup", + "whitespace at end of input line", + "bad comment style", "generic warning", /* related to the prologue */ "missing manual title, using UNTITLED", "missing manual title, using \"\"", - "lower case character in document title", "missing manual section, using \"\"", "unknown manual section", "missing date, using today's date", "cannot parse date, using it verbatim", + "date in the future, using it anyway", "missing Os macro, using \"\"", - "duplicate prologue macro", "late prologue macro", - "skipping late title macro", "prologue macros out of order", /* related to document structure */ @@ -136,6 +142,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = "sections out of conventional order", "duplicate section title", "unexpected section", + "cross reference to self", "unusual Xr order", "unusual Xr punctuation", "AUTHORS section without An macro", @@ -149,8 +156,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = "blocks badly nested", "nested displays are not portable", "moving content out of list", - "fill mode already enabled, skipping", - "fill mode already disabled, skipping", + "first macro on line", "line scope broken", "skipping blank line in line scope", @@ -167,6 +173,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = "missing function name, using \"\"", "empty head in list item", "empty list item", + "missing argument, using next line", "missing font type, using \\fR", "unknown font type, using \\fR", "nothing follows prefix", @@ -178,7 +185,6 @@ static const char * const mandocerrs[MANDOCERR_MAX] = "missing eqn box, using \"\"", /* related to bad macro arguments */ - "unterminated quoted argument", "duplicate argument", "skipping duplicate argument", "skipping duplicate display type", @@ -197,9 +203,7 @@ static const char * const mandocerrs[MANDOCERR_MAX] = /* related to plain text */ "blank line in fill mode, using .sp", "tab in filled text", - "whitespace at end of input line", "new sentence, new line", - "bad comment style", "invalid escape sequence", "undefined string, using \"\"", @@ -225,6 +229,8 @@ static const char * const mandocerrs[MANDOCERR_MAX] = /* related to document structure and macros */ NULL, + "duplicate prologue macro", + "skipping late title macro", "input stack limit exceeded, infinite loop?", "skipping bad character", "skipping unknown macro", @@ -336,7 +342,6 @@ choose_parser(struct mparse *curp) static int mparse_buf_r(struct mparse *curp, struct buf blk, size_t i, int start) { - const struct tbl_span *span; struct buf ln; const char *save_file; char *cp; @@ -527,21 +532,7 @@ rerun: if (curp->man->macroset == MACROSET_NONE) choose_parser(curp); - /* - * Lastly, push down into the parsers themselves. - * If libroff returns ROFF_TBL, then add it to the - * currently open parse. Since we only get here if - * there does exist data (see tbl_data.c), we're - * guaranteed that something's been allocated. - * Do the same for ROFF_EQN. - */ - - if (rr == ROFF_TBL) - while ((span = roff_span(curp->roff)) != NULL) - roff_addtbl(curp->man, span); - else if (rr == ROFF_EQN) - roff_addeqn(curp->man, roff_eqn(curp->roff)); - else if ((curp->man->macroset == MACROSET_MDOC ? + if ((curp->man->macroset == MACROSET_MDOC ? mdoc_parseln(curp->man, curp->line, ln.buf, of) : man_parseln(curp->man, curp->line, ln.buf, of)) == 2) break;