]> git.cameronkatri.com Git - mandoc.git/commitdiff
Err/warn fix (schwarze@openbsd.org).
authorKristaps Dzonsons <kristaps@bsd.lv>
Mon, 13 Jul 2009 07:23:07 +0000 (07:23 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Mon, 13 Jul 2009 07:23:07 +0000 (07:23 +0000)
Lots of whitespace churn in getting functions aligned nicely.

mdoc.7
mdoc_term.c
mdoc_validate.c

diff --git a/mdoc.7 b/mdoc.7
index a7df1cb98accd611ed095d11af306decf687d6fc..4fa97a45f3f6ec95fc67dde037024119b723ca8e 100644 (file)
--- a/mdoc.7
+++ b/mdoc.7
@@ -1,4 +1,4 @@
-.\"    $Id: mdoc.7,v 1.41 2009/07/12 19:34:51 kristaps Exp $
+.\"    $Id: mdoc.7,v 1.42 2009/07/13 07:23:07 kristaps Exp $
 .\"
 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
 .\"
 .\"
 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
 .\"
@@ -14,7 +14,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\" 
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\" 
-.Dd $Mdocdate: July 12 2009 $
+.Dd $Mdocdate: July 13 2009 $
 .Dt MDOC 7
 .Os
 .\" SECTION
 .Dt MDOC 7
 .Os
 .\" SECTION
@@ -668,8 +668,4 @@ blocks.
 The \-split and \-nosplit arguments to 
 .Sq \&.An
 are inane.
 The \-split and \-nosplit arguments to 
 .Sq \&.An
 are inane.
-.\" LIST-ITEM
-.It
-The end-of-line whitespace warnings are superfluous holdovers from
-historic groff.
 .El
 .El
index 208dc94c4a12b04b60149a2b8b0454db20cb11eb..08ae01d4af13dca6f4b32bbbf594c61686991d3b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.37 2009/07/12 20:50:08 kristaps Exp $ */
+/*     $Id: mdoc_term.c,v 1.38 2009/07/13 07:23:07 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -571,16 +571,15 @@ arg_listtype(const struct mdoc_node *n)
                        /* FALLTHROUGH */
                case (MDOC_Column):
                        /* FALLTHROUGH */
                        /* FALLTHROUGH */
                case (MDOC_Column):
                        /* FALLTHROUGH */
+               case (MDOC_Hang):
+                       /* FALLTHROUGH */
                case (MDOC_Ohang):
                        return(n->args->argv[i].arg);
                default:
                        break;
                }
 
                case (MDOC_Ohang):
                        return(n->args->argv[i].arg);
                default:
                        break;
                }
 
-       /* FIXME: mandated by parser. */
-
-       errx(1, "list type not supported");
-       /* NOTREACHED */
+       return(-1);
 }
 
 
 }
 
 
@@ -726,6 +725,7 @@ termp_it_pre(DECL_ARGS)
        (void)arg_getattrs(keys, vals, 3, bl);
 
        type = arg_listtype(bl);
        (void)arg_getattrs(keys, vals, 3, bl);
 
        type = arg_listtype(bl);
+       assert(-1 != type);
 
        /* Calculate real width and offset. */
 
 
        /* Calculate real width and offset. */
 
@@ -752,7 +752,7 @@ termp_it_pre(DECL_ARGS)
        /* 
         * List-type can override the width in the case of fixed-head
         * values (bullet, dash/hyphen, enum).  Tags need a non-zero
        /* 
         * List-type can override the width in the case of fixed-head
         * values (bullet, dash/hyphen, enum).  Tags need a non-zero
-        * offset.
+        * offset.  FIXME: double-check that correct.
         */
 
        switch (type) {
         */
 
        switch (type) {
@@ -768,6 +768,8 @@ termp_it_pre(DECL_ARGS)
                if (width < 5)
                        width = 5;
                break;
                if (width < 5)
                        width = 5;
                break;
+       case (MDOC_Hang):
+               /* FALLTHROUGH */
        case (MDOC_Tag):
                if (0 == width)
                        width = 10;
        case (MDOC_Tag):
                if (0 == width)
                        width = 10;
@@ -785,6 +787,8 @@ termp_it_pre(DECL_ARGS)
        case (MDOC_Diag):
                term_word(p, "\\ ");
                /* FALLTHROUGH */
        case (MDOC_Diag):
                term_word(p, "\\ ");
                /* FALLTHROUGH */
+       case (MDOC_Hang):
+               /* FALLTHROUGH */
        case (MDOC_Inset):
                if (MDOC_BODY == node->type) 
                        p->flags &= ~TERMP_NOSPACE;
        case (MDOC_Inset):
                if (MDOC_BODY == node->type) 
                        p->flags &= ~TERMP_NOSPACE;
@@ -826,11 +830,17 @@ termp_it_pre(DECL_ARGS)
                /* FALLTHROUGH */
        case (MDOC_Hyphen):
                /* FALLTHROUGH */
                /* FALLTHROUGH */
        case (MDOC_Hyphen):
                /* FALLTHROUGH */
+       case (MDOC_Hang):
+               /* FALLTHROUGH */
        case (MDOC_Tag):
                if (MDOC_HEAD == node->type)
                        p->flags |= TERMP_NOBREAK;
                else
                        p->flags |= TERMP_NOLPAD;
        case (MDOC_Tag):
                if (MDOC_HEAD == node->type)
                        p->flags |= TERMP_NOBREAK;
                else
                        p->flags |= TERMP_NOLPAD;
+
+               if (MDOC_HEAD == node->type && MDOC_Hang == type)
+                       p->flags |= TERMP_NONOBREAK;
+
                if (MDOC_HEAD == node->type && MDOC_Tag == type)
                        if (NULL == node->next ||
                                        NULL == node->next->child)
                if (MDOC_HEAD == node->type && MDOC_Tag == type)
                        if (NULL == node->next ||
                                        NULL == node->next->child)
@@ -872,6 +882,8 @@ termp_it_pre(DECL_ARGS)
                /* FALLTHROUGH */
        case (MDOC_Hyphen):
                /* FALLTHROUGH */
                /* FALLTHROUGH */
        case (MDOC_Hyphen):
                /* FALLTHROUGH */
+       case (MDOC_Hang):
+               /* FALLTHROUGH */
        case (MDOC_Tag):
                if (MDOC_HEAD == node->type)
                        p->rmargin = p->offset + width;
        case (MDOC_Tag):
                if (MDOC_HEAD == node->type)
                        p->rmargin = p->offset + width;
@@ -954,6 +966,7 @@ termp_it_post(DECL_ARGS)
                return;
 
        type = arg_listtype(node->parent->parent->parent);
                return;
 
        type = arg_listtype(node->parent->parent->parent);
+       assert(-1 != type);
 
        switch (type) {
        case (MDOC_Diag):
 
        switch (type) {
        case (MDOC_Diag):
index 24253d056322e6917fb3f7859053bcae61826734..419b9c60eede83165a1cb0e4b10ec291f4c95b28 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_validate.c,v 1.31 2009/07/12 20:50:08 kristaps Exp $ */
+/*     $Id: mdoc_validate.c,v 1.32 2009/07/13 07:23:07 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -28,9 +28,8 @@
 /* FIXME: .Bl -diag can't have non-text children in HEAD. */
 /* TODO: ignoring Pp (it's superfluous in some invocations). */
 
 /* FIXME: .Bl -diag can't have non-text children in HEAD. */
 /* TODO: ignoring Pp (it's superfluous in some invocations). */
 
-#define        PRE_ARGS        struct mdoc *mdoc, const struct mdoc_node *n
-#define        POST_ARGS       struct mdoc *mdoc
-
+#define        PRE_ARGS  struct mdoc *mdoc, const struct mdoc_node *n
+#define        POST_ARGS struct mdoc *mdoc
 
 typedef        int     (*v_pre)(PRE_ARGS);
 typedef        int     (*v_post)(POST_ARGS);
 
 typedef        int     (*v_pre)(PRE_ARGS);
 typedef        int     (*v_post)(POST_ARGS);
@@ -40,112 +39,117 @@ struct    valids {
        v_post  *post;
 };
 
        v_post  *post;
 };
 
-static int     check_parent(PRE_ARGS, int, enum mdoc_type);
-static int     check_msec(PRE_ARGS, ...);
-static int     check_sec(PRE_ARGS, ...);
-static int     check_stdarg(PRE_ARGS);
-static int     check_text(struct mdoc *, int, int, const char *);
-static int     check_argv(struct mdoc *, 
+static int      check_parent(PRE_ARGS, int, enum mdoc_type);
+static int      check_msec(PRE_ARGS, ...);
+static int      check_sec(PRE_ARGS, ...);
+static int      check_stdarg(PRE_ARGS);
+static int      check_text(struct mdoc *, int, int, const char *);
+static int      check_argv(struct mdoc *, 
                        const struct mdoc_node *,
                        const struct mdoc_argv *);
                        const struct mdoc_node *,
                        const struct mdoc_argv *);
-static int     check_args(struct mdoc *, 
+static int      check_args(struct mdoc *, 
                        const struct mdoc_node *);
                        const struct mdoc_node *);
-static int     err_child_lt(struct mdoc *, const char *, int);
-static int     warn_child_lt(struct mdoc *, const char *, int);
-static int     err_child_gt(struct mdoc *, const char *, int);
-static int     warn_child_gt(struct mdoc *, const char *, int);
-static int     err_child_eq(struct mdoc *, const char *, int);
-static int     warn_child_eq(struct mdoc *, const char *, int);
-static int     warn_print(struct mdoc *, int, int);
-static int     warn_count(struct mdoc *, const char *, 
+static int      err_child_lt(struct mdoc *, const char *, int);
+static int      warn_child_lt(struct mdoc *, const char *, int);
+static int      err_child_gt(struct mdoc *, const char *, int);
+static int      warn_child_gt(struct mdoc *, const char *, int);
+static int      err_child_eq(struct mdoc *, const char *, int);
+static int      warn_child_eq(struct mdoc *, const char *, int);
+static int      warn_print(struct mdoc *, int, int);
+static int      warn_count(struct mdoc *, const char *, 
                        int, const char *, int);
                        int, const char *, int);
-static int     err_count(struct mdoc *, const char *, 
+static int      err_count(struct mdoc *, const char *, 
                        int, const char *, int);
                        int, const char *, int);
-static int     pre_an(PRE_ARGS);
-static int     pre_bd(PRE_ARGS);
-static int     pre_bl(PRE_ARGS);
-static int     pre_cd(PRE_ARGS);
-static int     pre_dd(PRE_ARGS);
-static int     pre_display(PRE_ARGS);
-static int     pre_dt(PRE_ARGS);
-static int     pre_er(PRE_ARGS);
-static int     pre_ex(PRE_ARGS);
-static int     pre_fd(PRE_ARGS);
-static int     pre_it(PRE_ARGS);
-static int     pre_lb(PRE_ARGS);
-static int     pre_os(PRE_ARGS);
-static int     pre_rv(PRE_ARGS);
-static int     pre_sh(PRE_ARGS);
-static int     pre_ss(PRE_ARGS);
-static int     herr_ge1(POST_ARGS);
-static int     hwarn_le1(POST_ARGS);
-static int     herr_eq0(POST_ARGS);
-static int     eerr_eq0(POST_ARGS);
-static int     eerr_le2(POST_ARGS);
-static int     eerr_eq1(POST_ARGS);
-static int     eerr_ge1(POST_ARGS);
-static int     ewarn_eq0(POST_ARGS);
-static int     bwarn_ge1(POST_ARGS);
-static int     berr_ge1(POST_ARGS);
-static int     hwarn_eq1(POST_ARGS);
-static int     ewarn_ge1(POST_ARGS);
-static int     ebool(POST_ARGS);
-
-static int     post_an(POST_ARGS);
-static int     post_args(POST_ARGS);
-static int     post_at(POST_ARGS);
-static int     post_bf(POST_ARGS);
-static int     post_bl(POST_ARGS);
-static int     post_bl_head(POST_ARGS);
-static int     post_it(POST_ARGS);
-static int     post_lb(POST_ARGS);
-static int     post_nm(POST_ARGS);
-static int     post_root(POST_ARGS);
-static int     post_sh(POST_ARGS);
-static int     post_sh_body(POST_ARGS);
-static int     post_sh_head(POST_ARGS);
-static int     post_st(POST_ARGS);
-
-static v_pre   pres_an[] = { pre_an, NULL };
-static v_pre   pres_bd[] = { pre_display, pre_bd, NULL };
-static v_pre   pres_bl[] = { pre_bl, NULL };
-static v_pre   pres_cd[] = { pre_cd, NULL };
-static v_pre   pres_dd[] = { pre_dd, NULL };
-static v_pre   pres_d1[] = { pre_display, NULL };
-static v_pre   pres_dt[] = { pre_dt, NULL };
-static v_pre   pres_er[] = { pre_er, NULL };
-static v_pre   pres_ex[] = { pre_ex, NULL };
-static v_pre   pres_fd[] = { pre_fd, NULL };
-static v_pre   pres_it[] = { pre_it, NULL };
-static v_pre   pres_lb[] = { pre_lb, NULL };
-static v_pre   pres_os[] = { pre_os, NULL };
-static v_pre   pres_rv[] = { pre_rv, NULL };
-static v_pre   pres_sh[] = { pre_sh, NULL };
-static v_pre   pres_ss[] = { pre_ss, NULL };
-static v_post  posts_bool[] = { eerr_eq1, ebool, NULL };
-static v_post  posts_bd[] = { herr_eq0, bwarn_ge1, NULL };
-static v_post  posts_text[] = { eerr_ge1, NULL };
-static v_post  posts_wtext[] = { ewarn_ge1, NULL };
-static v_post  posts_notext[] = { eerr_eq0, NULL };
-static v_post  posts_wline[] = { bwarn_ge1, herr_eq0, NULL };
-static v_post  posts_sh[] = { herr_ge1, bwarn_ge1, post_sh, NULL };
-static v_post  posts_bl[] = { bwarn_ge1, post_bl, NULL };
-static v_post  posts_it[] = { post_it, NULL };
-static v_post  posts_in[] = { eerr_eq1, NULL };
-static v_post  posts_ss[] = { herr_ge1, NULL };
-static v_post  posts_nd[] = { berr_ge1, NULL };
-static v_post  posts_pf[] = { eerr_eq1, NULL };
-static v_post  posts_lb[] = { eerr_eq1, post_lb, NULL };
-static v_post  posts_st[] = { eerr_eq1, post_st, NULL };
-static v_post  posts_pp[] = { ewarn_eq0, NULL };
-static v_post  posts_ex[] = { eerr_eq0, post_args, NULL };
-static v_post  posts_rv[] = { eerr_eq0, post_args, NULL };
-static v_post  posts_an[] = { post_an, NULL };
-static v_post  posts_at[] = { post_at, NULL };
-static v_post  posts_xr[] = { eerr_ge1, eerr_le2, NULL };
-static v_post  posts_nm[] = { post_nm, NULL };
-static v_post  posts_bf[] = { hwarn_le1, post_bf, NULL };
-static v_post  posts_fo[] = { hwarn_eq1, bwarn_ge1, NULL };
+
+#ifdef __linux__
+extern size_t   strlcat(char *, const char *, size_t);
+#endif
+
+static int      berr_ge1(POST_ARGS);
+static int      bwarn_ge1(POST_ARGS);
+static int      ebool(POST_ARGS);
+static int      eerr_eq0(POST_ARGS);
+static int      eerr_eq1(POST_ARGS);
+static int      eerr_ge1(POST_ARGS);
+static int      eerr_le2(POST_ARGS);
+static int      ewarn_eq0(POST_ARGS);
+static int      ewarn_ge1(POST_ARGS);
+static int      herr_eq0(POST_ARGS);
+static int      herr_ge1(POST_ARGS);
+static int      hwarn_eq1(POST_ARGS);
+static int      hwarn_le1(POST_ARGS);
+
+static int      post_an(POST_ARGS);
+static int      post_args(POST_ARGS);
+static int      post_at(POST_ARGS);
+static int      post_bf(POST_ARGS);
+static int      post_bl(POST_ARGS);
+static int      post_bl_head(POST_ARGS);
+static int      post_it(POST_ARGS);
+static int      post_lb(POST_ARGS);
+static int      post_nm(POST_ARGS);
+static int      post_root(POST_ARGS);
+static int      post_sh(POST_ARGS);
+static int      post_sh_body(POST_ARGS);
+static int      post_sh_head(POST_ARGS);
+static int      post_st(POST_ARGS);
+static int      pre_an(PRE_ARGS);
+static int      pre_bd(PRE_ARGS);
+static int      pre_bl(PRE_ARGS);
+static int      pre_cd(PRE_ARGS);
+static int      pre_dd(PRE_ARGS);
+static int      pre_display(PRE_ARGS);
+static int      pre_dt(PRE_ARGS);
+static int      pre_er(PRE_ARGS);
+static int      pre_ex(PRE_ARGS);
+static int      pre_fd(PRE_ARGS);
+static int      pre_it(PRE_ARGS);
+static int      pre_lb(PRE_ARGS);
+static int      pre_os(PRE_ARGS);
+static int      pre_rv(PRE_ARGS);
+static int      pre_sh(PRE_ARGS);
+static int      pre_ss(PRE_ARGS);
+
+static v_post   posts_an[] = { post_an, NULL };
+static v_post   posts_at[] = { post_at, NULL };
+static v_post   posts_bd[] = { herr_eq0, bwarn_ge1, NULL };
+static v_post   posts_bf[] = { hwarn_le1, post_bf, NULL };
+static v_post   posts_bl[] = { bwarn_ge1, post_bl, NULL };
+static v_post   posts_bool[] = { eerr_eq1, ebool, NULL };
+static v_post   posts_ex[] = { eerr_eq0, post_args, NULL };
+static v_post   posts_fo[] = { hwarn_eq1, bwarn_ge1, NULL };
+static v_post   posts_in[] = { eerr_eq1, NULL };
+static v_post   posts_it[] = { post_it, NULL };
+static v_post   posts_lb[] = { eerr_eq1, post_lb, NULL };
+static v_post   posts_nd[] = { berr_ge1, NULL };
+static v_post   posts_nm[] = { post_nm, NULL };
+static v_post   posts_notext[] = { eerr_eq0, NULL };
+static v_post   posts_pf[] = { eerr_eq1, NULL };
+static v_post   posts_pp[] = { ewarn_eq0, NULL };
+static v_post   posts_rv[] = { eerr_eq0, post_args, NULL };
+static v_post   posts_sh[] = { herr_ge1, bwarn_ge1, post_sh, NULL };
+static v_post   posts_ss[] = { herr_ge1, NULL };
+static v_post   posts_st[] = { eerr_eq1, post_st, NULL };
+static v_post   posts_text[] = { eerr_ge1, NULL };
+static v_post   posts_wline[] = { bwarn_ge1, herr_eq0, NULL };
+static v_post   posts_wtext[] = { ewarn_ge1, NULL };
+static v_post   posts_xr[] = { eerr_ge1, eerr_le2, NULL };
+static v_pre    pres_an[] = { pre_an, NULL };
+static v_pre    pres_bd[] = { pre_display, pre_bd, NULL };
+static v_pre    pres_bl[] = { pre_bl, NULL };
+static v_pre    pres_cd[] = { pre_cd, NULL };
+static v_pre    pres_d1[] = { pre_display, NULL };
+static v_pre    pres_dd[] = { pre_dd, NULL };
+static v_pre    pres_dt[] = { pre_dt, NULL };
+static v_pre    pres_er[] = { pre_er, NULL };
+static v_pre    pres_ex[] = { pre_ex, NULL };
+static v_pre    pres_fd[] = { pre_fd, NULL };
+static v_pre    pres_it[] = { pre_it, NULL };
+static v_pre    pres_lb[] = { pre_lb, NULL };
+static v_pre    pres_os[] = { pre_os, NULL };
+static v_pre    pres_rv[] = { pre_rv, NULL };
+static v_pre    pres_sh[] = { pre_sh, NULL };
+static v_pre    pres_ss[] = { pre_ss, NULL };
 
 const  struct valids mdoc_valids[MDOC_MAX] = {
        { NULL, NULL },                         /* Ap */
 
 const  struct valids mdoc_valids[MDOC_MAX] = {
        { NULL, NULL },                         /* Ap */
@@ -269,14 +273,8 @@ const      struct valids mdoc_valids[MDOC_MAX] = {
 };
 
 
 };
 
 
-#ifdef __linux__
-extern size_t  strlcat(char *, const char *, size_t);
-#endif
-
-
 int
 int
-mdoc_valid_pre(struct mdoc *mdoc, 
-               const struct mdoc_node *n)
+mdoc_valid_pre(struct mdoc *mdoc, const struct mdoc_node *n)
 {
        v_pre           *p;
        int              line, pos;
 {
        v_pre           *p;
        int              line, pos;
@@ -305,14 +303,6 @@ mdoc_valid_post(struct mdoc *mdoc)
 {
        v_post          *p;
 
 {
        v_post          *p;
 
-       /*
-        * This check occurs after the macro's children have been filled
-        * in: postfix validation.  Since this happens when we're
-        * rewinding the scope tree, it's possible to have multiple
-        * invocations (as by design, for now), we set bit MDOC_VALID to
-        * indicate that we've validated.
-        */
-
        if (MDOC_VALID & mdoc->last->flags)
                return(1);
        mdoc->last->flags |= MDOC_VALID;
        if (MDOC_VALID & mdoc->last->flags)
                return(1);
        mdoc->last->flags |= MDOC_VALID;
@@ -544,7 +534,7 @@ check_text(struct mdoc *mdoc, int line, int pos, const char *p)
                }
                if ( ! (MDOC_IGN_ESCAPE & mdoc->pflags))
                        return(mdoc_perr(mdoc, line, pos, EESCAPE));
                }
                if ( ! (MDOC_IGN_ESCAPE & mdoc->pflags))
                        return(mdoc_perr(mdoc, line, pos, EESCAPE));
-               if ( ! mdoc_perr(mdoc, line, pos, EESCAPE))
+               if ( ! mdoc_pwarn(mdoc, line, pos, EESCAPE))
                        return(0);
        }
 
                        return(0);
        }