=================================================================== RCS file: /cvs/mandoc/mdoc_validate.c,v retrieving revision 1.134 retrieving revision 1.138 diff -u -p -r1.134 -r1.138 --- mandoc/mdoc_validate.c 2010/12/01 13:05:13 1.134 +++ mandoc/mdoc_validate.c 2010/12/05 15:59:27 1.138 @@ -1,4 +1,4 @@ -/* $Id: mdoc_validate.c,v 1.134 2010/12/01 13:05:13 kristaps Exp $ */ +/* $Id: mdoc_validate.c,v 1.138 2010/12/05 15:59:27 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -42,7 +42,7 @@ #define POST_ARGS struct mdoc *mdoc #define NUMSIZ 32 -#define DATESIZ 32 +#define DATESIZE 32 enum check_ineq { CHECK_LT, @@ -575,22 +575,18 @@ pre_display(PRE_ARGS) { struct mdoc_node *node; - /* Display elements (`Bd', `D1'...) cannot be nested. */ - if (MDOC_BLOCK != n->type) return(1); - /* LINTED */ for (node = mdoc->last->parent; node; node = node->parent) if (MDOC_BLOCK == node->type) if (MDOC_Bd == node->tok) break; - if (NULL == node) - return(1); + if (node) + mdoc_nmsg(mdoc, n, MANDOCERR_NESTEDDISP); - mdoc_nmsg(mdoc, n, MANDOCERR_NESTEDDISP); - return(0); + return(1); } @@ -757,9 +753,8 @@ pre_bl(PRE_ARGS) case (LIST_inset): /* FALLTHROUGH */ case (LIST_item): - if (NULL == n->data.Bl->width) - break; - mdoc_nmsg(mdoc, n, MANDOCERR_WIDTHARG); + if (n->data.Bl->width) + mdoc_nmsg(mdoc, n, MANDOCERR_IGNARGV); break; default: break; @@ -1453,11 +1448,8 @@ post_bl_block_tag(POST_ARGS) assert(MDOC_BLOCK == nn->type); nn = nn->head->child; - if (nn == NULL) { - /* No -width for .Bl and first .It is emtpy */ - mdoc_nmsg(mdoc, n, MANDOCERR_NOWIDTHARG); + if (nn == NULL) break; - } if (MDOC_TEXT == nn->type) { sz = strlen(nn->string) + 1; @@ -1466,8 +1458,6 @@ post_bl_block_tag(POST_ARGS) if (0 != (ssz = mdoc_macro2len(nn->tok))) sz = ssz; - else - mdoc_nmsg(mdoc, n, MANDOCERR_NOWIDTHARG); break; } @@ -1951,7 +1941,7 @@ pre_literal(PRE_ARGS) static int post_dd(POST_ARGS) { - char buf[DATESIZ]; + char buf[DATESIZE]; struct mdoc_node *n; n = mdoc->last; @@ -1961,7 +1951,7 @@ post_dd(POST_ARGS) return(1); } - if ( ! concat(mdoc, buf, n->child, DATESIZ)) + if ( ! concat(mdoc, buf, n->child, DATESIZE)) return(0); mdoc->meta.date = mandoc_a2time @@ -2134,14 +2124,17 @@ post_os(POST_ARGS) return(0); } #else /*!OSNAME */ - if (-1 == uname(&utsname)) - return(mdoc_nmsg(mdoc, n, MANDOCERR_UTSNAME)); + if (uname(&utsname)) { + mdoc_nmsg(mdoc, n, MANDOCERR_UNAME); + mdoc->meta.os = mandoc_strdup("UNKNOWN"); + return(post_prol(mdoc)); + } if (strlcat(buf, utsname.sysname, BUFSIZ) >= BUFSIZ) { mdoc_nmsg(mdoc, n, MANDOCERR_MEM); return(0); } - if (strlcat(buf, " ", 64) >= BUFSIZ) { + if (strlcat(buf, " ", BUFSIZ) >= BUFSIZ) { mdoc_nmsg(mdoc, n, MANDOCERR_MEM); return(0); }