]> git.cameronkatri.com Git - mandoc.git/blobdiff - read.c
Finally port the OpenBSD regression suite.
[mandoc.git] / read.c
diff --git a/read.c b/read.c
index 54cc8530a8cb9f9f3aaea17254ff642da290b4a5..6d831c48b3921f538db45cfc58f6eb19bbae6198 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/*     $Id: read.c,v 1.156 2017/01/08 00:11:24 schwarze Exp $ */
+/*     $Id: read.c,v 1.160 2017/02/03 18:18:23 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -48,8 +48,8 @@
 #define        REPARSE_LIMIT   1000
 
 struct mparse {
-       struct roff_man  *man; /* man parser */
        struct roff      *roff; /* roff parser (!NULL) */
+       struct roff_man  *man; /* man parser */
        char             *sodest; /* filename pointed to by .so */
        const char       *file; /* filename of current input file */
        struct buf       *primary; /* buffer currently being parsed */
@@ -177,6 +177,7 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "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 \"\"",
@@ -829,13 +830,15 @@ mparse_reset(struct mparse *curp)
 {
        roff_reset(curp->roff);
        roff_man_reset(curp->man);
+
+       free(curp->sodest);
+       curp->sodest = NULL;
+
        if (curp->secondary)
                curp->secondary->sz = 0;
 
        curp->file_status = MANDOCLEVEL_OK;
-
-       free(curp->sodest);
-       curp->sodest = NULL;
+       curp->gzip = 0;
 }
 
 void
@@ -843,8 +846,7 @@ mparse_free(struct mparse *curp)
 {
 
        roff_man_free(curp->man);
-       if (curp->roff)
-               roff_free(curp->roff);
+       roff_free(curp->roff);
        if (curp->secondary)
                free(curp->secondary->buf);
 
@@ -866,6 +868,13 @@ mparse_result(struct mparse *curp, struct roff_man **man,
                *man = curp->man;
 }
 
+void
+mparse_updaterc(struct mparse *curp, enum mandoclevel *rc)
+{
+       if (curp->file_status > *rc)
+               *rc = curp->file_status;
+}
+
 void
 mandoc_vmsg(enum mandocerr t, struct mparse *m,
                int ln, int pos, const char *fmt, ...)