]> git.cameronkatri.com Git - mandoc.git/commitdiff
*** empty log message ***
authorKristaps Dzonsons <kristaps@bsd.lv>
Fri, 9 Jan 2009 15:07:04 +0000 (15:07 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Fri, 9 Jan 2009 15:07:04 +0000 (15:07 +0000)
argv.c
validate.c

diff --git a/argv.c b/argv.c
index 439ea0110a7f868bd099ef0da286469135190a59..9629ba6e90c8696ccf1486ef931333c1e9ef0755 100644 (file)
--- a/argv.c
+++ b/argv.c
@@ -1,4 +1,4 @@
-/* $Id: argv.c,v 1.9 2009/01/08 14:55:59 kristaps Exp $ */
+/* $Id: argv.c,v 1.10 2009/01/09 15:07:04 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -411,8 +411,8 @@ mdoc_argv(struct mdoc *mdoc, int line, int tok,
                buf[(*pos)++] = 0;
 
        if (MDOC_ARG_MAX == (v->arg = lookup(tok, argv))) {
-               (void)mdoc_perr(mdoc, line, i, ERR_SYNTAX_ARG);
-               return(ARGV_ERROR);
+               (void)mdoc_pwarn(mdoc, line, i, WARN_SYNTAX_ARGLIKE);
+               return(ARGV_WORD);
        }
 
        while (buf[*pos] && isspace(buf[*pos]))
index ca5561978e28b584eed87c90dd027f5e1d1f783f..754e9d93adff50c50dcf171dc71542245c0b8a72 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: validate.c,v 1.21 2009/01/09 14:45:44 kristaps Exp $ */
+/* $Id: validate.c,v 1.22 2009/01/09 15:07:04 kristaps Exp $ */
 /*
  * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -37,11 +37,14 @@ static      int     pre_prologue(struct mdoc *, struct mdoc_node *);
 static int     pre_prologue(struct mdoc *, struct mdoc_node *);
 static int     post_headchild_err_ge1(struct mdoc *);
 static int     post_elemchild_err_ge1(struct mdoc *);
+static int     post_elemchild_warn_eq0(struct mdoc *);
 static int     post_bodychild_warn_ge1(struct mdoc *);
 static int     post_sh(struct mdoc *);
 
 static v_post  posts_sh[] = { post_headchild_err_ge1, 
                        post_bodychild_warn_ge1, post_sh, NULL };
+static v_post  posts_ss[] = { post_headchild_err_ge1, NULL };
+static v_post  posts_pp[] = { post_elemchild_warn_eq0, NULL };
 static v_post  posts_dd[] = { post_elemchild_err_ge1, NULL };
 
 
@@ -51,8 +54,8 @@ const struct valids mdoc_valids[MDOC_MAX] = {
        { pre_prologue, NULL }, /* Dt */
        { pre_prologue, NULL }, /* Os */
        { NULL, posts_sh }, /* Sh */ /* FIXME: preceding Pp. */
-       { NULL, NULL }, /* Ss */ /* FIXME: preceding Pp. */
-       { NULL, NULL }, /* Pp */ 
+       { NULL, posts_ss }, /* Ss */ /* FIXME: preceding Pp. */
+       { NULL, posts_pp }, /* Pp */ /* FIXME: proceeding... */
        { NULL, NULL }, /* D1 */
        { NULL, NULL }, /* Dl */
        { NULL, NULL }, /* Bd */ /* FIXME: preceding Pp. */
@@ -168,6 +171,17 @@ post_bodychild_warn_ge1(struct mdoc *mdoc)
 }
 
 
+static int
+post_elemchild_warn_eq0(struct mdoc *mdoc)
+{
+
+       assert(MDOC_ELEM == mdoc->last->type);
+       if (NULL == mdoc->last->child)
+               return(1);
+       return(mdoc_warn(mdoc, WARN_ARGS_EQ0));
+}
+
+
 static int
 post_elemchild_err_ge1(struct mdoc *mdoc)
 {