]> git.cameronkatri.com Git - mandoc.git/commitdiff
Clean up warnings related to macros and nesting.
authorIngo Schwarze <schwarze@openbsd.org>
Wed, 2 Jul 2014 11:43:20 +0000 (11:43 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Wed, 2 Jul 2014 11:43:20 +0000 (11:43 +0000)
* Hierarchical naming of enum mandocerr items.
* Improve the wording to make it comprehensible.
* Mention the offending macro.
* Garbage collect one chunk of ancient, long unreachable code.

man_validate.c
mandoc.h
mdoc_macro.c
mdoc_validate.c
read.c

index 545341d90c21e012701d9500a53d17194aac8e77..61f8ef811a4fefd9dde18e72d3e36d31ac419375 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: man_validate.c,v 1.95 2014/07/02 05:52:24 schwarze Exp $ */
+/*     $Id: man_validate.c,v 1.96 2014/07/02 11:43:20 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -479,7 +479,7 @@ post_nf(CHKARGS)
 {
 
        if (MAN_LITERAL & man->flags)
-               man_nmsg(man, n, MANDOCERR_SCOPEREP);
+               man_nmsg(man, n, MANDOCERR_NF_SKIP);
 
        man->flags |= MAN_LITERAL;
        return(1);
@@ -490,7 +490,7 @@ post_fi(CHKARGS)
 {
 
        if ( ! (MAN_LITERAL & man->flags))
-               man_nmsg(man, n, MANDOCERR_WNOSCOPE);
+               man_nmsg(man, n, MANDOCERR_FI_SKIP);
 
        man->flags &= ~MAN_LITERAL;
        return(1);
index 18cddca915be9e548efdc651e0b6a6ab1255a77f..2ab25442a276ec2135c7246ddf7aa619005b3f34 100644 (file)
--- a/mandoc.h
+++ b/mandoc.h
@@ -1,4 +1,4 @@
-/*     $Id: mandoc.h,v 1.127 2014/07/02 05:52:25 schwarze Exp $ */
+/*     $Id: mandoc.h,v 1.128 2014/07/02 11:43:20 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -74,12 +74,13 @@ enum        mandocerr {
        MANDOCERR_MACRO_OBS, /* obsolete macro: macro */
        MANDOCERR_PAR_SKIP, /* skipping paragraph macro: macro ... */
        MANDOCERR_PAR_MOVE, /* moving paragraph macro out of list: macro */
-       MANDOCERR_IGNNS, /* skipping no-space macro */
-       MANDOCERR_SCOPENEST, /* blocks badly nested */
+       MANDOCERR_NS_SKIP, /* skipping no-space macro */
+       MANDOCERR_BLOCK_NEST, /* blocks badly nested: macro ... */
        MANDOCERR_CHILD, /* child violates parent syntax */
-       MANDOCERR_NESTEDDISP, /* nested displays are not portable */
-       MANDOCERR_SCOPEREP, /* already in literal mode */
-       MANDOCERR_LINESCOPE, /* line scope broken */
+       MANDOCERR_BD_NEST, /* nested displays are not portable: macro ... */
+       MANDOCERR_FI_SKIP, /* fill mode already enabled, skipping .fi */
+       MANDOCERR_NF_SKIP, /* fill mode already disabled, skipping .nf */
+       MANDOCERR_LINESCOPE, /* line scope broken: macro breaks macro */
 
        /* related to missing macro arguments */
        MANDOCERR_MACROEMPTY, /* skipping empty macro */
@@ -88,7 +89,6 @@ enum  mandocerr {
        MANDOCERR_LISTFIRST, /* list type must come first */
        MANDOCERR_NOWIDTHARG, /* tag lists require a width argument */
        MANDOCERR_FONTTYPE, /* missing font type */
-       MANDOCERR_WNOSCOPE, /* skipping end of block that is not open */
 
        /* related to bad macro arguments */
        MANDOCERR_IGNARGV, /* skipping argument */
index c662990db7a8e84280def9264cdaf8c26a18deda..da836a741b352cad64dec285e57e00e0465fe5ba 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_macro.c,v 1.133 2014/07/02 08:21:39 schwarze Exp $ */
+/*     $Id: mdoc_macro.c,v 1.134 2014/07/02 11:43:20 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012, 2013 Ingo Schwarze <schwarze@openbsd.org>
@@ -528,7 +528,7 @@ make_pending(struct mdoc_node *broken, enum mdoct tok,
                        taker->pending = broken->pending;
                }
                broken->pending = breaker;
-               mandoc_vmsg(MANDOCERR_SCOPENEST, mdoc->parse, line, ppos,
+               mandoc_vmsg(MANDOCERR_BLOCK_NEST, mdoc->parse, line, ppos,
                    "%s breaks %s", mdoc_macronames[tok],
                    mdoc_macronames[broken->tok]);
                return(1);
@@ -1354,18 +1354,9 @@ blk_part_imp(MACRO_PROT_ARGS)
                        return(1);
                }
        }
+       assert(n == body);
 
-       /*
-        * If we can't rewind to our body, then our scope has already
-        * been closed by another macro (like `Oc' closing `Op').  This
-        * is ugly behaviour nodding its head to OpenBSD's overwhelming
-        * crufty use of `Op' breakage.
-        */
-       if (n != body)
-               mandoc_vmsg(MANDOCERR_SCOPENEST, mdoc->parse, line,
-                   ppos, "%s broken", mdoc_macronames[tok]);
-
-       if (n && ! rew_sub(MDOC_BODY, mdoc, tok, line, ppos))
+       if ( ! rew_sub(MDOC_BODY, mdoc, tok, line, ppos))
                return(0);
 
        /* Standard appending of delimiters. */
@@ -1375,7 +1366,7 @@ blk_part_imp(MACRO_PROT_ARGS)
 
        /* Rewind scope, if applicable. */
 
-       if (n && ! rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos))
+       if ( ! rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos))
                return(0);
 
        /* Move trailing .Ns out of scope. */
index ec72c2ab37b4a58adf74b61a48d66d0788b483c2..1aa743da2fc76e0e98651056f94c28e08fcd4a4e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_validate.c,v 1.219 2014/07/02 05:52:25 schwarze Exp $ */
+/*     $Id: mdoc_validate.c,v 1.220 2014/07/02 11:43:20 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -591,7 +591,9 @@ pre_display(PRE_ARGS)
                                break;
 
        if (node)
-               mdoc_nmsg(mdoc, n, MANDOCERR_NESTEDDISP);
+               mandoc_vmsg(MANDOCERR_BD_NEST,
+                   mdoc->parse, n->line, n->pos,
+                   "%s in Bd", mdoc_macronames[n->tok]);
 
        return(1);
 }
@@ -1903,7 +1905,7 @@ post_ns(POST_ARGS)
 {
 
        if (MDOC_LINE & mdoc->last->flags)
-               mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_IGNNS);
+               mdoc_nmsg(mdoc, mdoc->last, MANDOCERR_NS_SKIP);
        return(1);
 }
 
diff --git a/read.c b/read.c
index 2f9d79dbc90127e9d2f6faed3392fd9e11f0cfa9..d1b0af1c84000df4d70b8717fe3f5e388cca5f50 100644 (file)
--- a/read.c
+++ b/read.c
@@ -1,4 +1,4 @@
-/*     $Id: read.c,v 1.55 2014/07/02 03:48:07 schwarze Exp $ */
+/*     $Id: read.c,v 1.56 2014/07/02 11:43:20 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -122,7 +122,8 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "blocks badly nested",
        "child violates parent syntax",
        "nested displays are not portable",
-       "already in literal mode",
+       "fill mode already enabled, skipping .fi",
+       "fill mode already disabled, skipping .nf",
        "line scope broken",
 
        /* related to missing macro arguments */
@@ -132,7 +133,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",