]> git.cameronkatri.com Git - mandoc.git/commitdiff
Use proper error for `An' multiple arguments.
authorKristaps Dzonsons <kristaps@bsd.lv>
Mon, 11 Oct 2010 15:46:19 +0000 (15:46 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Mon, 11 Oct 2010 15:46:19 +0000 (15:46 +0000)
Making IGNARGV be an ERROR, not a WARNING, as information is lost.

main.c
mandoc.h
mdoc_validate.c

diff --git a/main.c b/main.c
index 97c3390b5ae681cd02ecb28ff585a6b95d788500..4d94a3ca8bbbaf41c5754da30e3201e4f268d216 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/*     $Id: main.c,v 1.107 2010/09/27 09:26:27 kristaps Exp $ */
+/*     $Id: main.c,v 1.108 2010/10/11 15:46:19 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -132,7 +132,6 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "unterminated quoted string",
        "argument requires the width argument",
        "superfluous width argument",
-       "ignoring argument",
        "bad date argument",
        "bad width argument",
        "unknown manual section",
@@ -149,6 +148,7 @@ static      const char * const      mandocerrs[MANDOCERR_MAX] = {
        "list type repeated",
        "display type repeated",
        "argument repeated",
+       "ignoring argument",
        "manual name not yet set",
        "obsolete macro ignored",
        "empty macro ignored",
index 12b267eab6b34b3dd31872cdfc90323d52c38a48..140e06d4992cc48b5509d8c2fd5543f52a67bf06 100644 (file)
--- a/mandoc.h
+++ b/mandoc.h
@@ -1,4 +1,4 @@
-/*     $Id: mandoc.h,v 1.22 2010/10/04 07:01:02 kristaps Exp $ */
+/*     $Id: mandoc.h,v 1.23 2010/10/11 15:46:19 kristaps Exp $ */
 /*
  * Copyright (c) 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -59,7 +59,6 @@ enum  mandocerr {
        MANDOCERR_NOWIDTHARG, /* argument requires the width argument */
        /* FIXME: merge with MANDOCERR_IGNARGV. */
        MANDOCERR_WIDTHARG, /* superfluous width argument */
-       MANDOCERR_IGNARGV, /* ignoring argument */
        MANDOCERR_BADDATE, /* bad date argument */
        MANDOCERR_BADWIDTH, /* bad width argument */
        MANDOCERR_BADMSEC, /* unknown manual section */
@@ -75,6 +74,7 @@ enum  mandocerr {
        MANDOCERR_LISTREP, /* list type repeated */
        MANDOCERR_DISPREP, /* display type repeated */
        MANDOCERR_ARGVREP, /* argument repeated */
+       MANDOCERR_IGNARGV, /* ignoring argument */
        MANDOCERR_NONAME, /* manual name not yet set */
        MANDOCERR_MACROOBS, /* obsolete macro ignored */
        MANDOCERR_MACROEMPTY, /* empty macro ignored */
index e147a6840baf64b6259ac0de8bd4b9c0be441556..0553c0455e83f1ab3a09cc5f637c332767e8d36f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_validate.c,v 1.120 2010/10/11 13:24:33 kristaps Exp $ */
+/*     $Id: mdoc_validate.c,v 1.121 2010/10/11 15:46:19 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -893,15 +893,16 @@ pre_it(PRE_ARGS)
 static int
 pre_an(PRE_ARGS)
 {
+       int              i;
 
        if (NULL == n->args)
                return(1);
-       if (n->args->argc > 1)
-               if ( ! mdoc_nmsg(mdoc, n, MANDOCERR_ARGCOUNT))
+       
+       for (i = 1; i < (int)n->args->argc; i++)
+               if ( ! mdoc_pmsg(mdoc, n->args->argv[i].line,
+                       n->args->argv[i].pos, MANDOCERR_IGNARGV))
                        return(0);
 
-       /* FIXME: this should use a different error message. */
-
        if (MDOC_Split == n->args->argv[0].arg)
                n->data.An.auth = AUTH_split;
        else if (MDOC_Nosplit == n->args->argv[0].arg)