source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: Simplify code by making mdoc validation handlers void.
@ 2014-11-28  1:05 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-11-28  1:05 UTC (permalink / raw)
  To: source

Log Message:
-----------
Simplify code by making mdoc validation handlers void.
No functional change, minus 90 lines of code.

Modified Files:
--------------
    mdocml:
        libmdoc.h
        mdoc.c
        mdoc_macro.c
        mdoc_validate.c

Revision Data
-------------
Index: libmdoc.h
===================================================================
RCS file: /home/cvs/mdocml/mdocml/libmdoc.h,v
retrieving revision 1.89
retrieving revision 1.90
diff -Llibmdoc.h -Llibmdoc.h -u -p -r1.89 -r1.90
--- libmdoc.h
+++ libmdoc.h
@@ -127,8 +127,8 @@ const char	 *mdoc_a2lib(const char *);
 const char	 *mdoc_a2st(const char *);
 const char	 *mdoc_a2arch(const char *);
 const char	 *mdoc_a2vol(const char *);
-int		  mdoc_valid_pre(struct mdoc *, struct mdoc_node *);
-int		  mdoc_valid_post(struct mdoc *);
+void		  mdoc_valid_pre(struct mdoc *, struct mdoc_node *);
+void		  mdoc_valid_post(struct mdoc *);
 enum margverr	  mdoc_argv(struct mdoc *, int, enum mdoct,
 			struct mdoc_arg **, int *, char *);
 void		  mdoc_argv_free(struct mdoc_arg *);
Index: mdoc_validate.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/mdoc_validate.c,v
retrieving revision 1.258
retrieving revision 1.259
diff -Lmdoc_validate.c -Lmdoc_validate.c -u -p -r1.258 -r1.259
--- mdoc_validate.c
+++ mdoc_validate.c
@@ -53,15 +53,15 @@ enum	check_lvl {
 	CHECK_ERROR,
 };
 
-typedef	int	(*v_pre)(PRE_ARGS);
-typedef	int	(*v_post)(POST_ARGS);
+typedef	void	(*v_pre)(PRE_ARGS);
+typedef	void	(*v_post)(POST_ARGS);
 
 struct	valids {
 	v_pre	 pre;
 	v_post	 post;
 };
 
-static	int	 check_count(struct mdoc *, enum mdoc_type,
+static	void	 check_count(struct mdoc *, enum mdoc_type,
 			enum check_lvl, enum check_ineq, int);
 static	void	 check_text(struct mdoc *, int, int, char *);
 static	void	 check_argv(struct mdoc *,
@@ -72,69 +72,65 @@ static	enum mdoc_sec	a2sec(const char *)
 static	size_t		macro2len(enum mdoct);
 static	void	 rewrite_macro2len(char **);
 
-static	int	 berr_ge1(POST_ARGS);
-static	int	 bwarn_ge1(POST_ARGS);
-static	int	 ewarn_eq0(POST_ARGS);
-static	int	 ewarn_eq1(POST_ARGS);
-static	int	 ewarn_ge1(POST_ARGS);
-static	int	 ewarn_le1(POST_ARGS);
-static	int	 hwarn_eq0(POST_ARGS);
-static	int	 hwarn_eq1(POST_ARGS);
-static	int	 hwarn_ge1(POST_ARGS);
-
-static	int	 post_an(POST_ARGS);
-static	int	 post_at(POST_ARGS);
-static	int	 post_bf(POST_ARGS);
-static	int	 post_bk(POST_ARGS);
-static	int	 post_bl(POST_ARGS);
-static	int	 post_bl_block(POST_ARGS);
-static	int	 post_bl_block_tag(POST_ARGS);
-static	int	 post_bl_head(POST_ARGS);
-static	int	 post_bx(POST_ARGS);
-static	int	 post_d1(POST_ARGS);
-static	int	 post_defaults(POST_ARGS);
-static	int	 post_dd(POST_ARGS);
-static	int	 post_dt(POST_ARGS);
-static	int	 post_en(POST_ARGS);
-static	int	 post_es(POST_ARGS);
-static	int	 post_eoln(POST_ARGS);
-static	int	 post_ex(POST_ARGS);
-static	int	 post_fa(POST_ARGS);
-static	int	 post_fn(POST_ARGS);
-static	int	 post_fname(POST_ARGS);
-static	int	 post_fo(POST_ARGS);
-static	int	 post_hyph(POST_ARGS);
-static	int	 post_hyphtext(POST_ARGS);
-static	int	 post_ignpar(POST_ARGS);
-static	int	 post_it(POST_ARGS);
-static	int	 post_lb(POST_ARGS);
-static	int	 post_literal(POST_ARGS);
-static	int	 post_nd(POST_ARGS);
-static	int	 post_nm(POST_ARGS);
-static	int	 post_ns(POST_ARGS);
-static	int	 post_os(POST_ARGS);
-static	int	 post_par(POST_ARGS);
-static	int	 post_root(POST_ARGS);
-static	int	 post_rs(POST_ARGS);
-static	int	 post_sh(POST_ARGS);
-static	int	 post_sh_head(POST_ARGS);
-static	int	 post_sh_name(POST_ARGS);
-static	int	 post_sh_see_also(POST_ARGS);
-static	int	 post_sh_authors(POST_ARGS);
-static	int	 post_sm(POST_ARGS);
-static	int	 post_st(POST_ARGS);
-static	int	 post_vt(POST_ARGS);
-static	int	 pre_an(PRE_ARGS);
-static	int	 pre_bd(PRE_ARGS);
-static	int	 pre_bl(PRE_ARGS);
-static	int	 pre_dd(PRE_ARGS);
-static	int	 pre_display(PRE_ARGS);
-static	int	 pre_dt(PRE_ARGS);
-static	int	 pre_literal(PRE_ARGS);
-static	int	 pre_obsolete(PRE_ARGS);
-static	int	 pre_os(PRE_ARGS);
-static	int	 pre_par(PRE_ARGS);
-static	int	 pre_std(PRE_ARGS);
+static	void	 bwarn_ge1(POST_ARGS);
+static	void	 ewarn_eq1(POST_ARGS);
+static	void	 ewarn_ge1(POST_ARGS);
+static	void	 hwarn_eq0(POST_ARGS);
+
+static	void	 post_an(POST_ARGS);
+static	void	 post_at(POST_ARGS);
+static	void	 post_bf(POST_ARGS);
+static	void	 post_bk(POST_ARGS);
+static	void	 post_bl(POST_ARGS);
+static	void	 post_bl_block(POST_ARGS);
+static	void	 post_bl_block_tag(POST_ARGS);
+static	void	 post_bl_head(POST_ARGS);
+static	void	 post_bx(POST_ARGS);
+static	void	 post_d1(POST_ARGS);
+static	void	 post_defaults(POST_ARGS);
+static	void	 post_dd(POST_ARGS);
+static	void	 post_dt(POST_ARGS);
+static	void	 post_en(POST_ARGS);
+static	void	 post_es(POST_ARGS);
+static	void	 post_eoln(POST_ARGS);
+static	void	 post_ex(POST_ARGS);
+static	void	 post_fa(POST_ARGS);
+static	void	 post_fn(POST_ARGS);
+static	void	 post_fname(POST_ARGS);
+static	void	 post_fo(POST_ARGS);
+static	void	 post_hyph(POST_ARGS);
+static	void	 post_hyphtext(POST_ARGS);
+static	void	 post_ignpar(POST_ARGS);
+static	void	 post_it(POST_ARGS);
+static	void	 post_lb(POST_ARGS);
+static	void	 post_literal(POST_ARGS);
+static	void	 post_nd(POST_ARGS);
+static	void	 post_nm(POST_ARGS);
+static	void	 post_ns(POST_ARGS);
+static	void	 post_os(POST_ARGS);
+static	void	 post_par(POST_ARGS);
+static	void	 post_root(POST_ARGS);
+static	void	 post_rs(POST_ARGS);
+static	void	 post_sh(POST_ARGS);
+static	void	 post_sh_head(POST_ARGS);
+static	void	 post_sh_name(POST_ARGS);
+static	void	 post_sh_see_also(POST_ARGS);
+static	void	 post_sh_authors(POST_ARGS);
+static	void	 post_sm(POST_ARGS);
+static	void	 post_st(POST_ARGS);
+static	void	 post_vt(POST_ARGS);
+
+static	void	 pre_an(PRE_ARGS);
+static	void	 pre_bd(PRE_ARGS);
+static	void	 pre_bl(PRE_ARGS);
+static	void	 pre_dd(PRE_ARGS);
+static	void	 pre_display(PRE_ARGS);
+static	void	 pre_dt(PRE_ARGS);
+static	void	 pre_literal(PRE_ARGS);
+static	void	 pre_obsolete(PRE_ARGS);
+static	void	 pre_os(PRE_ARGS);
+static	void	 pre_par(PRE_ARGS);
+static	void	 pre_std(PRE_ARGS);
 
 static	const struct valids mdoc_valids[MDOC_MAX] = {
 	{ NULL, NULL },				/* Ap */
@@ -308,7 +304,7 @@ static	const char * const secnames[SEC__
 };
 
 
-int
+void
 mdoc_valid_pre(struct mdoc *mdoc, struct mdoc_node *n)
 {
 	v_pre	 p;
@@ -322,17 +318,18 @@ mdoc_valid_pre(struct mdoc *mdoc, struct
 	case MDOC_EQN:
 		/* FALLTHROUGH */
 	case MDOC_ROOT:
-		return(1);
+		return;
 	default:
 		break;
 	}
 
 	check_args(mdoc, n);
 	p = mdoc_valids[n->tok].pre;
-	return(*p ? (*p)(mdoc, n) : 1);
+	if (*p)
+		(*p)(mdoc, n);
 }
 
-int
+void
 mdoc_valid_post(struct mdoc *mdoc)
 {
 	struct mdoc_node *n;
@@ -340,7 +337,7 @@ mdoc_valid_post(struct mdoc *mdoc)
 
 	n = mdoc->last;
 	if (n->flags & MDOC_VALID)
-		return(1);
+		return;
 	n->flags |= MDOC_VALID;
 
 	switch (n->type) {
@@ -349,9 +346,10 @@ mdoc_valid_post(struct mdoc *mdoc)
 	case MDOC_EQN:
 		/* FALLTHROUGH */
 	case MDOC_TBL:
-		return(1);
+		break;
 	case MDOC_ROOT:
-		return(post_root(mdoc));
+		post_root(mdoc);
+		break;
 	default:
 
 		/*
@@ -368,11 +366,13 @@ mdoc_valid_post(struct mdoc *mdoc)
 		/* Call the macro's postprocessor. */
 
 		p = mdoc_valids[n->tok].post;
-		return(*p ? (*p)(mdoc) : 1);
+		if (*p)
+			(*p)(mdoc);
+		break;
 	}
 }
 
-static int
+static void
 check_count(struct mdoc *mdoc, enum mdoc_type type,
 		enum check_lvl lvl, enum check_ineq ineq, int val)
 {
@@ -380,23 +380,23 @@ check_count(struct mdoc *mdoc, enum mdoc
 	enum mandocerr	 t;
 
 	if (mdoc->last->type != type)
-		return(1);
+		return;
 
 	switch (ineq) {
 	case CHECK_LT:
 		p = "less than ";
 		if (mdoc->last->nchild < val)
-			return(1);
+			return;
 		break;
 	case CHECK_GT:
 		p = "more than ";
 		if (mdoc->last->nchild > val)
-			return(1);
+			return;
 		break;
 	case CHECK_EQ:
 		p = "";
 		if (val == mdoc->last->nchild)
-			return(1);
+			return;
 		break;
 	default:
 		abort();
@@ -407,62 +407,30 @@ check_count(struct mdoc *mdoc, enum mdoc
 	mandoc_vmsg(t, mdoc->parse, mdoc->last->line,
 	    mdoc->last->pos, "want %s%d children (have %d)",
 	    p, val, mdoc->last->nchild);
-	return(1);
 }
 
-static int
-berr_ge1(POST_ARGS)
-{
-
-	return(check_count(mdoc, MDOC_BODY, CHECK_ERROR, CHECK_GT, 0));
-}
-
-static int
+static void
 bwarn_ge1(POST_ARGS)
 {
-	return(check_count(mdoc, MDOC_BODY, CHECK_WARN, CHECK_GT, 0));
-}
-
-static int
-ewarn_eq0(POST_ARGS)
-{
-	return(check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 0));
+	check_count(mdoc, MDOC_BODY, CHECK_WARN, CHECK_GT, 0);
 }
 
-static int
+static void
 ewarn_eq1(POST_ARGS)
 {
-	return(check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 1));
+	check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 1);
 }
 
-static int
+static void
 ewarn_ge1(POST_ARGS)
 {
-	return(check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_GT, 0));
+	check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_GT, 0);
 }
 
-static int
-ewarn_le1(POST_ARGS)
-{
-	return(check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_LT, 2));
-}
-
-static int
+static void
 hwarn_eq0(POST_ARGS)
 {
-	return(check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_EQ, 0));
-}
-
-static int
-hwarn_eq1(POST_ARGS)
-{
-	return(check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_EQ, 1));
-}
-
-static int
-hwarn_ge1(POST_ARGS)
-{
-	return(check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_GT, 0));
+	check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_EQ, 0);
 }
 
 static void
@@ -500,13 +468,13 @@ check_text(struct mdoc *mdoc, int ln, in
 		    ln, pos + (int)(p - cp), NULL);
 }
 
-static int
+static void
 pre_display(PRE_ARGS)
 {
 	struct mdoc_node *node;
 
 	if (MDOC_BLOCK != n->type)
-		return(1);
+		return;
 
 	for (node = mdoc->last->parent; node; node = node->parent)
 		if (MDOC_BLOCK == node->type)
@@ -517,11 +485,9 @@ pre_display(PRE_ARGS)
 		mandoc_vmsg(MANDOCERR_BD_NEST,
 		    mdoc->parse, n->line, n->pos,
 		    "%s in Bd", mdoc_macronames[n->tok]);
-
-	return(1);
 }
 
-static int
+static void
 pre_bl(PRE_ARGS)
 {
 	struct mdoc_node *np;
@@ -540,7 +506,7 @@ pre_bl(PRE_ARGS)
 		assert(np);
 		assert(MDOC_BLOCK == np->type);
 		assert(MDOC_Bl == np->tok);
-		return(1);
+		return;
 	}
 
 	/*
@@ -711,11 +677,10 @@ pre_bl(PRE_ARGS)
 	default:
 		break;
 	}
-
-	return(pre_par(mdoc, n));
+	pre_par(mdoc, n);
 }
 
-static int
+static void
 pre_bd(PRE_ARGS)
 {
 	struct mdoc_node *np;
@@ -735,7 +700,7 @@ pre_bd(PRE_ARGS)
 		assert(np);
 		assert(MDOC_BLOCK == np->type);
 		assert(MDOC_Bd == np->tok);
-		return(1);
+		return;
 	}
 
 	for (i = 0; n->args && i < (int)n->args->argc; i++) {
@@ -804,18 +769,17 @@ pre_bd(PRE_ARGS)
 		    n->line, n->pos, "Bd");
 		n->norm->Bd.type = DISP_ragged;
 	}
-
-	return(pre_par(mdoc, n));
+	pre_par(mdoc, n);
 }
 
-static int
+static void
 pre_an(PRE_ARGS)
 {
 	struct mdoc_argv *argv;
 	size_t	 i;
 
 	if (n->args == NULL)
-		return(1);
+		return;
 
 	for (i = 1; i < n->args->argc; i++) {
 		argv = n->args->argv + i;
@@ -831,34 +795,30 @@ pre_an(PRE_ARGS)
 		n->norm->An.auth = AUTH_nosplit;
 	else
 		abort();
-
-	return(1);
 }
 
-static int
+static void
 pre_std(PRE_ARGS)
 {
 
 	if (n->args && 1 == n->args->argc)
 		if (MDOC_Std == n->args->argv[0].arg)
-			return(1);
+			return;
 
 	mandoc_msg(MANDOCERR_ARG_STD, mdoc->parse,
 	    n->line, n->pos, mdoc_macronames[n->tok]);
-	return(1);
 }
 
-static int
+static void
 pre_obsolete(PRE_ARGS)
 {
 
 	if (MDOC_ELEM == n->type || MDOC_BLOCK == n->type)
 		mandoc_msg(MANDOCERR_MACRO_OBS, mdoc->parse,
 		    n->line, n->pos, mdoc_macronames[n->tok]);
-	return(1);
 }
 
-static int
+static void
 pre_dt(PRE_ARGS)
 {
 
@@ -868,10 +828,9 @@ pre_dt(PRE_ARGS)
 	else if (mdoc->meta.os != NULL)
 		mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
 		    n->line, n->pos, "Dt after Os");
-	return(1);
 }
 
-static int
+static void
 pre_os(PRE_ARGS)
 {
 
@@ -881,10 +840,9 @@ pre_os(PRE_ARGS)
 	else if (mdoc->flags & MDOC_PBODY)
 		mandoc_msg(MANDOCERR_PROLOG_LATE, mdoc->parse,
 		    n->line, n->pos, "Os");
-	return(1);
 }
 
-static int
+static void
 pre_dd(PRE_ARGS)
 {
 
@@ -900,10 +858,9 @@ pre_dd(PRE_ARGS)
 	else if (mdoc->meta.os != NULL)
 		mandoc_msg(MANDOCERR_PROLOG_ORDER, mdoc->parse,
 		    n->line, n->pos, "Dd after Os");
-	return(1);
 }
 
-static int
+static void
 post_bf(POST_ARGS)
 {
 	struct mdoc_node *np, *nch;
@@ -926,7 +883,7 @@ post_bf(POST_ARGS)
 		assert(np);
 		assert(MDOC_HEAD == np->type);
 		assert(MDOC_Bf == np->tok);
-		return(1);
+		return;
 	}
 
 	np = mdoc->last;
@@ -940,7 +897,7 @@ post_bf(POST_ARGS)
 		if (NULL == nch) {
 			mandoc_msg(MANDOCERR_BF_NOFONT, mdoc->parse,
 			    np->line, np->pos, "Bf");
-			return(1);
+			return;
 		}
 		nch = nch->next;
 	}
@@ -960,7 +917,7 @@ post_bf(POST_ARGS)
 			np->norm->Bf.font = FONT_Sy;
 		else
 			abort();
-		return(1);
+		return;
 	}
 
 	/* Extract parameter into data. */
@@ -975,11 +932,9 @@ post_bf(POST_ARGS)
 		mandoc_vmsg(MANDOCERR_BF_BADFONT, mdoc->parse,
 		    np->child->line, np->child->pos,
 		    "Bf %s", np->child->string);
-
-	return(1);
 }
 
-static int
+static void
 post_lb(POST_ARGS)
 {
 	struct mdoc_node	*n;
@@ -1001,10 +956,9 @@ post_lb(POST_ARGS)
 
 	free(n->string);
 	n->string = libname;
-	return(1);
 }
 
-static int
+static void
 post_eoln(POST_ARGS)
 {
 	const struct mdoc_node *n;
@@ -1015,10 +969,9 @@ post_eoln(POST_ARGS)
 		    mdoc->parse, n->line, n->pos,
 		    "%s %s", mdoc_macronames[n->tok],
 		    n->child->string);
-	return(1);
 }
 
-static int
+static void
 post_fname(POST_ARGS)
 {
 	const struct mdoc_node	*n;
@@ -1031,30 +984,27 @@ post_fname(POST_ARGS)
 	if ( ! (cp[0] == '\0' || (cp[0] == '(' && cp[1] == '*')))
 		mandoc_msg(MANDOCERR_FN_PAREN, mdoc->parse,
 		    n->line, n->pos + pos, n->string);
-	return(1);
 }
 
-static int
+static void
 post_fn(POST_ARGS)
 {
 
 	post_fname(mdoc);
 	post_fa(mdoc);
-	return(1);
 }
 
-static int
+static void
 post_fo(POST_ARGS)
 {
 
-	hwarn_eq1(mdoc);
+	check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_EQ, 1);
 	bwarn_ge1(mdoc);
 	if (mdoc->last->type == MDOC_HEAD && mdoc->last->nchild)
 		post_fname(mdoc);
-	return(1);
 }
 
-static int
+static void
 post_fa(POST_ARGS)
 {
 	const struct mdoc_node *n;
@@ -1073,10 +1023,9 @@ post_fa(POST_ARGS)
 			break;
 		}
 	}
-	return(1);
 }
 
-static int
+static void
 post_vt(POST_ARGS)
 {
 	const struct mdoc_node *n;
@@ -1090,48 +1039,45 @@ post_vt(POST_ARGS)
 	 */
 
 	if (MDOC_BODY != mdoc->last->type)
-		return(1);
+		return;
 
 	for (n = mdoc->last->child; n; n = n->next)
 		if (MDOC_TEXT != n->type)
 			mandoc_msg(MANDOCERR_VT_CHILD, mdoc->parse,
 			    n->line, n->pos, mdoc_macronames[n->tok]);
-
-	return(1);
 }
 
-static int
+static void
 post_nm(POST_ARGS)
 {
 
 	if (NULL != mdoc->meta.name)
-		return(1);
+		return;
 
 	mdoc_deroff(&mdoc->meta.name, mdoc->last);
 
 	if (NULL == mdoc->meta.name)
 		mandoc_msg(MANDOCERR_NM_NONAME, mdoc->parse,
 		    mdoc->last->line, mdoc->last->pos, "Nm");
-	return(1);
 }
 
-static int
+static void
 post_nd(POST_ARGS)
 {
 
-	berr_ge1(mdoc);
-	return(post_hyph(mdoc));
+	check_count(mdoc, MDOC_BODY, CHECK_ERROR, CHECK_GT, 0);
+	post_hyph(mdoc);
 }
 
-static int
+static void
 post_d1(POST_ARGS)
 {
 
 	bwarn_ge1(mdoc);
-	return(post_hyph(mdoc));
+	post_hyph(mdoc);
 }
 
-static int
+static void
 post_literal(POST_ARGS)
 {
 
@@ -1148,11 +1094,9 @@ post_literal(POST_ARGS)
 
 	if (MDOC_BODY == mdoc->last->type)
 		mdoc->flags &= ~MDOC_LITERAL;
-
-	return(1);
 }
 
-static int
+static void
 post_defaults(POST_ARGS)
 {
 	struct mdoc_node *nn;
@@ -1164,34 +1108,29 @@ post_defaults(POST_ARGS)
 	 */
 
 	if (mdoc->last->child)
-		return(1);
+		return;
 
 	nn = mdoc->last;
 	mdoc->next = MDOC_NEXT_CHILD;
 
 	switch (nn->tok) {
 	case MDOC_Ar:
-		if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "file"))
-			return(0);
-		if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "..."))
-			return(0);
+		mdoc_word_alloc(mdoc, nn->line, nn->pos, "file");
+		mdoc_word_alloc(mdoc, nn->line, nn->pos, "...");
 		break;
 	case MDOC_Pa:
 		/* FALLTHROUGH */
 	case MDOC_Mt:
-		if ( ! mdoc_word_alloc(mdoc, nn->line, nn->pos, "~"))
-			return(0);
+		mdoc_word_alloc(mdoc, nn->line, nn->pos, "~");
 		break;
 	default:
 		abort();
 		/* NOTREACHED */
 	}
-
 	mdoc->last = nn;
-	return(1);
 }
 
-static int
+static void
 post_at(POST_ARGS)
 {
 	struct mdoc_node	*n;
@@ -1201,10 +1140,9 @@ post_at(POST_ARGS)
 	n = mdoc->last;
 	if (n->child == NULL) {
 		mdoc->next = MDOC_NEXT_CHILD;
-		if ( ! mdoc_word_alloc(mdoc, n->line, n->pos, "AT&T UNIX"))
-			return(0);
+		mdoc_word_alloc(mdoc, n->line, n->pos, "AT&T UNIX");
 		mdoc->last = n;
-		return(1);
+		return;
 	}
 
 	/*
@@ -1224,10 +1162,9 @@ post_at(POST_ARGS)
 
 	free(n->string);
 	n->string = att;
-	return(1);
 }
 
-static int
+static void
 post_an(POST_ARGS)
 {
 	struct mdoc_node *np;
@@ -1238,28 +1175,24 @@ post_an(POST_ARGS)
 			check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_GT, 0);
 	} else if (np->child)
 		check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 0);
-
-	return(1);
 }
 
-static int
+static void
 post_en(POST_ARGS)
 {
 
 	if (MDOC_BLOCK == mdoc->last->type)
 		mdoc->last->norm->Es = mdoc->last_es;
-	return(1);
 }
 
-static int
+static void
 post_es(POST_ARGS)
 {
 
 	mdoc->last_es = mdoc->last;
-	return(1);
 }
 
-static int
+static void
 post_it(POST_ARGS)
 {
 	int		  i, cols;
@@ -1268,7 +1201,7 @@ post_it(POST_ARGS)
 
 	nit = mdoc->last;
 	if (MDOC_BLOCK != nit->type)
-		return(1);
+		return;
 
 	nbl = nit->parent->parent;
 	lt = nbl->norm->Bl.type;
@@ -1325,11 +1258,9 @@ post_it(POST_ARGS)
 	default:
 		abort();
 	}
-
-	return(1);
 }
 
-static int
+static void
 post_bl_block(POST_ARGS)
 {
 	struct mdoc_node *n, *ni, *nc;
@@ -1346,8 +1277,7 @@ post_bl_block(POST_ARGS)
 
 	if (LIST_tag == n->norm->Bl.type &&
 	    NULL == n->norm->Bl.width) {
-		if ( ! post_bl_block_tag(mdoc))
-			return(0);
+		post_bl_block_tag(mdoc);
 		assert(n->norm->Bl.width);
 	}
 
@@ -1371,8 +1301,7 @@ post_bl_block(POST_ARGS)
 				mandoc_msg(MANDOCERR_PAR_MOVE,
 				    mdoc->parse, nc->line, nc->pos,
 				    mdoc_macronames[nc->tok]);
-				if ( ! mdoc_node_relink(mdoc, nc))
-					return(0);
+				mdoc_node_relink(mdoc, nc);
 			} else if (0 == n->norm->Bl.comp &&
 			    LIST_column != n->norm->Bl.type) {
 				mandoc_vmsg(MANDOCERR_PAR_SKIP,
@@ -1385,7 +1314,6 @@ post_bl_block(POST_ARGS)
 			nc = ni->body->last;
 		}
 	}
-	return(1);
 }
 
 /*
@@ -1411,7 +1339,7 @@ rewrite_macro2len(char **arg)
 	mandoc_asprintf(arg, "%zun", width);
 }
 
-static int
+static void
 post_bl_block_tag(POST_ARGS)
 {
 	struct mdoc_node *n, *nn;
@@ -1474,19 +1402,20 @@ post_bl_block_tag(POST_ARGS)
 
 	/* Set our width! */
 	n->norm->Bl.width = n->args->argv[i].value[0];
-	return(1);
 }
 
-static int
+static void
 post_bl_head(POST_ARGS)
 {
 	struct mdoc_node *np, *nn, *nnp;
 	struct mdoc_argv *argv;
 	int		  i, j;
 
-	if (LIST_column != mdoc->last->norm->Bl.type)
+	if (LIST_column != mdoc->last->norm->Bl.type) {
 		/* FIXME: this should be ERROR class... */
-		return(hwarn_eq0(mdoc));
+		hwarn_eq0(mdoc);
+		return;
+	}
 
 	/*
 	 * Append old-style lists, where the column width specifiers
@@ -1495,7 +1424,7 @@ post_bl_head(POST_ARGS)
 	 */
 
 	if (mdoc->last->child == NULL)
-		return(1);
+		return;
 
 	np = mdoc->last->parent;
 	assert(np->args);
@@ -1531,11 +1460,9 @@ post_bl_head(POST_ARGS)
 
 	mdoc->last->nchild = 0;
 	mdoc->last->child = NULL;
-
-	return(1);
 }
 
-static int
+static void
 post_bl(POST_ARGS)
 {
 	struct mdoc_node	*nparent, *nprev; /* of the Bl block */
@@ -1545,13 +1472,15 @@ post_bl(POST_ARGS)
 	nbody = mdoc->last;
 	switch (nbody->type) {
 	case MDOC_BLOCK:
-		return(post_bl_block(mdoc));
+		post_bl_block(mdoc);
+		return;
 	case MDOC_HEAD:
-		return(post_bl_head(mdoc));
+		post_bl_head(mdoc);
+		return;
 	case MDOC_BODY:
 		break;
 	default:
-		return(1);
+		return;
 	}
 
 	bwarn_ge1(mdoc);
@@ -1608,20 +1537,17 @@ post_bl(POST_ARGS)
 
 		nchild = nnext;
 	}
-
-	return(1);
 }
 
-static int
+static void
 post_bk(POST_ARGS)
 {
 
 	hwarn_eq0(mdoc);
 	bwarn_ge1(mdoc);
-	return(1);
 }
 
-static int
+static void
 post_sm(struct mdoc *mdoc)
 {
 	struct mdoc_node	*nch;
@@ -1630,27 +1556,28 @@ post_sm(struct mdoc *mdoc)
 
 	if (nch == NULL) {
 		mdoc->flags ^= MDOC_SMOFF;
-		return(1);
+		return;
 	}
 
 	assert(nch->type == MDOC_TEXT);
 
 	if ( ! strcmp(nch->string, "on")) {
 		mdoc->flags &= ~MDOC_SMOFF;
-		return(1);
+		return;
 	}
 	if ( ! strcmp(nch->string, "off")) {
 		mdoc->flags |= MDOC_SMOFF;
-		return(1);
+		return;
 	}
 
 	mandoc_vmsg(MANDOCERR_SM_BAD,
 	    mdoc->parse, nch->line, nch->pos,
 	    "%s %s", mdoc_macronames[mdoc->last->tok], nch->string);
-	return(mdoc_node_relink(mdoc, nch));
+	mdoc_node_relink(mdoc, nch);
+	return;
 }
 
-static int
+static void
 post_root(POST_ARGS)
 {
 	struct mdoc_node *n;
@@ -1688,11 +1615,9 @@ post_root(POST_ARGS)
 	else if (n->tok != MDOC_Sh)
 		mandoc_msg(MANDOCERR_SEC_BEFORE, mdoc->parse,
 		    n->line, n->pos, mdoc_macronames[n->tok]);
-
-	return(1);
 }
 
-static int
+static void
 post_st(POST_ARGS)
 {
 	struct mdoc_node	 *n, *nch;
@@ -1705,7 +1630,7 @@ post_st(POST_ARGS)
 		mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,
 		    n->line, n->pos, mdoc_macronames[n->tok]);
 		mdoc_node_delete(mdoc, n);
-		return(1);
+		return;
 	}
 
 	assert(MDOC_TEXT == nch->type);
@@ -1718,11 +1643,9 @@ post_st(POST_ARGS)
 		free(nch->string);
 		nch->string = mandoc_strdup(p);
 	}
-
-	return(1);
 }
 
-static int
+static void
 post_rs(POST_ARGS)
 {
 	struct mdoc_node *nn, *next, *prev;
@@ -1731,14 +1654,14 @@ post_rs(POST_ARGS)
 	switch (mdoc->last->type) {
 	case MDOC_HEAD:
 		check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_EQ, 0);
-		return(1);
+		return;
 	case MDOC_BODY:
 		if (mdoc->last->child)
 			break;
 		check_count(mdoc, MDOC_BODY, CHECK_WARN, CHECK_GT, 0);
-		return(1);
+		return;
 	default:
-		return(1);
+		return;
 	}
 
 	/*
@@ -1812,15 +1735,13 @@ post_rs(POST_ARGS)
 			mdoc->last->child = nn;
 		}
 	}
-
-	return(1);
 }
 
 /*
  * For some arguments of some macros,
  * convert all breakable hyphens into ASCII_HYPH.
  */
-static int
+static void
 post_hyph(POST_ARGS)
 {
 	struct mdoc_node	*n, *nch;
@@ -1831,15 +1752,15 @@ post_hyph(POST_ARGS)
 	case MDOC_HEAD:
 		if (MDOC_Sh == n->tok || MDOC_Ss == n->tok)
 			break;
-		return(1);
+		return;
 	case MDOC_BODY:
 		if (MDOC_D1 == n->tok || MDOC_Nd == n->tok)
 			break;
-		return(1);
+		return;
 	case MDOC_ELEM:
 		break;
 	default:
-		return(1);
+		return;
 	}
 
 	for (nch = n->child; nch; nch = nch->next) {
@@ -1854,28 +1775,26 @@ post_hyph(POST_ARGS)
 			    isalpha((unsigned char)cp[1]))
 				*cp = ASCII_HYPH;
 	}
-	return(1);
 }
 
-static int
+static void
 post_hyphtext(POST_ARGS)
 {
 
 	ewarn_ge1(mdoc);
-	return(post_hyph(mdoc));
+	post_hyph(mdoc);
 }
 
-static int
+static void
 post_ns(POST_ARGS)
 {
 
 	if (MDOC_LINE & mdoc->last->flags)
 		mandoc_msg(MANDOCERR_NS_SKIP, mdoc->parse,
 		    mdoc->last->line, mdoc->last->pos, NULL);
-	return(1);
 }
 
-static int
+static void
 post_sh(POST_ARGS)
 {
 
@@ -1883,15 +1802,19 @@ post_sh(POST_ARGS)
 
 	switch (mdoc->last->type) {
 	case MDOC_HEAD:
-		return(post_sh_head(mdoc));
+		post_sh_head(mdoc);
+		break;
 	case MDOC_BODY:
 		switch (mdoc->lastsec)  {
 		case SEC_NAME:
-			return(post_sh_name(mdoc));
+			post_sh_name(mdoc);
+			break;
 		case SEC_SEE_ALSO:
-			return(post_sh_see_also(mdoc));
+			post_sh_see_also(mdoc);
+			break;
 		case SEC_AUTHORS:
-			return(post_sh_authors(mdoc));
+			post_sh_authors(mdoc);
+			break;
 		default:
 			break;
 		}
@@ -1899,11 +1822,9 @@ post_sh(POST_ARGS)
 	default:
 		break;
 	}
-
-	return(1);
 }
 
-static int
+static void
 post_sh_name(POST_ARGS)
 {
 	struct mdoc_node *n;
@@ -1917,7 +1838,7 @@ post_sh_name(POST_ARGS)
 	if (NULL == (n = mdoc->last->child)) {
 		mandoc_msg(MANDOCERR_NAMESEC_BAD, mdoc->parse,
 		    mdoc->last->line, mdoc->last->pos, "empty");
-		return(1);
+		return;
 	}
 
 	for ( ; n && n->next; n = n->next) {
@@ -1931,14 +1852,13 @@ post_sh_name(POST_ARGS)
 
 	assert(n);
 	if (MDOC_BLOCK == n->type && MDOC_Nd == n->tok)
-		return(1);
+		return;
 
 	mandoc_msg(MANDOCERR_NAMESEC_BAD, mdoc->parse,
 	    n->line, n->pos, mdoc_macronames[n->tok]);
-	return(1);
 }
 
-static int
+static void
 post_sh_see_also(POST_ARGS)
 {
 	const struct mdoc_node	*n;
@@ -1990,7 +1910,7 @@ post_sh_see_also(POST_ARGS)
 			break;
 		for (name = n->string; *name != '\0'; name++)
 			if (isalpha((const unsigned char)*name))
-				return(1);
+				return;
 		lastpunct = n->string;
 		if (n->next == NULL)
 			mandoc_vmsg(MANDOCERR_XR_PUNCT, mdoc->parse,
@@ -1998,7 +1918,6 @@ post_sh_see_also(POST_ARGS)
 			    lastpunct, lastname, lastsec);
 		n = n->next;
 	}
-	return(1);
 }
 
 static int
@@ -2011,17 +1930,16 @@ child_an(const struct mdoc_node *n)
 	return(0);
 }
 
-static int
+static void
 post_sh_authors(POST_ARGS)
 {
 
 	if ( ! child_an(mdoc->last))
 		mandoc_msg(MANDOCERR_AN_MISSING, mdoc->parse,
 		    mdoc->last->line, mdoc->last->pos, NULL);
-	return(1);
 }
 
-static int
+static void
 post_sh_head(POST_ARGS)
 {
 	struct mdoc_node *n;
@@ -2080,7 +1998,7 @@ post_sh_head(POST_ARGS)
 
 	if (SEC_CUSTOM == sec) {
 		free(secname);
-		return(1);
+		return;
 	}
 
 	/*
@@ -2106,7 +2024,7 @@ post_sh_head(POST_ARGS)
 
 	if (mdoc->meta.msec == NULL) {
 		free(secname);
-		return(1);
+		return;
 	}
 
 	goodsec = NULL;
@@ -2138,21 +2056,19 @@ post_sh_head(POST_ARGS)
 	default:
 		break;
 	}
-
 	free(secname);
-	return(1);
 }
 
-static int
+static void
 post_ignpar(POST_ARGS)
 {
 	struct mdoc_node *np;
 
-	hwarn_ge1(mdoc);
+	check_count(mdoc, MDOC_HEAD, CHECK_WARN, CHECK_GT, 0);
 	post_hyph(mdoc);
 
 	if (MDOC_BODY != mdoc->last->type)
-		return(1);
+		return;
 
 	if (NULL != (np = mdoc->last->child))
 		if (MDOC_Pp == np->tok || MDOC_Lp == np->tok) {
@@ -2171,18 +2087,16 @@ post_ignpar(POST_ARGS)
 			    mdoc_macronames[mdoc->last->tok]);
 			mdoc_node_delete(mdoc, np);
 		}
-
-	return(1);
 }
 
-static int
+static void
 pre_par(PRE_ARGS)
 {
 
 	if (NULL == mdoc->last)
-		return(1);
+		return;
 	if (MDOC_ELEM != n->type && MDOC_BLOCK != n->type)
-		return(1);
+		return;
 
 	/*
 	 * Don't allow prior `Lp' or `Pp' prior to a paragraph-type
@@ -2192,63 +2106,59 @@ pre_par(PRE_ARGS)
 	if (MDOC_Pp != mdoc->last->tok &&
 	    MDOC_Lp != mdoc->last->tok &&
 	    MDOC_br != mdoc->last->tok)
-		return(1);
+		return;
 	if (MDOC_Bl == n->tok && n->norm->Bl.comp)
-		return(1);
+		return;
 	if (MDOC_Bd == n->tok && n->norm->Bd.comp)
-		return(1);
+		return;
 	if (MDOC_It == n->tok && n->parent->norm->Bl.comp)
-		return(1);
+		return;
 
 	mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,
 	    mdoc->last->line, mdoc->last->pos,
 	    "%s before %s", mdoc_macronames[mdoc->last->tok],
 	    mdoc_macronames[n->tok]);
 	mdoc_node_delete(mdoc, mdoc->last);
-	return(1);
 }
 
-static int
+static void
 post_par(POST_ARGS)
 {
 	struct mdoc_node *np;
 
 	if (mdoc->last->tok == MDOC_sp)
-		ewarn_le1(mdoc);
+		check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_LT, 2);
 	else
-		ewarn_eq0(mdoc);
+		check_count(mdoc, MDOC_ELEM, CHECK_WARN, CHECK_EQ, 0);
 
 	if (MDOC_ELEM != mdoc->last->type &&
 	    MDOC_BLOCK != mdoc->last->type)
-		return(1);
+		return;
 
 	if (NULL == (np = mdoc->last->prev)) {
 		np = mdoc->last->parent;
 		if (MDOC_Sh != np->tok && MDOC_Ss != np->tok)
-			return(1);
-	} else {
-		if (MDOC_Pp != np->tok && MDOC_Lp != np->tok &&
-		    (MDOC_br != mdoc->last->tok ||
-		     (MDOC_sp != np->tok && MDOC_br != np->tok)))
-			return(1);
-	}
+			return;
+	} else if (MDOC_Pp != np->tok && MDOC_Lp != np->tok &&
+	    (MDOC_br != mdoc->last->tok ||
+	     (MDOC_sp != np->tok && MDOC_br != np->tok)))
+		return;
 
 	mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse,
 	    mdoc->last->line, mdoc->last->pos,
 	    "%s after %s", mdoc_macronames[mdoc->last->tok],
 	    mdoc_macronames[np->tok]);
 	mdoc_node_delete(mdoc, mdoc->last);
-	return(1);
 }
 
-static int
+static void
 pre_literal(PRE_ARGS)
 {
 
 	pre_display(mdoc, n);
 
 	if (MDOC_BODY != n->type)
-		return(1);
+		return;
 
 	/*
 	 * The `Dl' (note "el" not "one") and `Bd -literal' and `Bd
@@ -2269,11 +2179,9 @@ pre_literal(PRE_ARGS)
 		abort();
 		/* NOTREACHED */
 	}
-
-	return(1);
 }
 
-static int
+static void
 post_dd(POST_ARGS)
 {
 	struct mdoc_node *n;
@@ -2300,10 +2208,9 @@ post_dd(POST_ARGS)
 	}
 out:
 	mdoc_node_delete(mdoc, n);
-	return(1);
 }
 
-static int
+static void
 post_dt(POST_ARGS)
 {
 	struct mdoc_node *nn, *n;
@@ -2405,10 +2312,9 @@ post_dt(POST_ARGS)
 	/* FIXME: warn about subsequent parameters. */
 out:
 	mdoc_node_delete(mdoc, n);
-	return(1);
 }
 
-static int
+static void
 post_bx(POST_ARGS)
 {
 	struct mdoc_node	*n;
@@ -2422,11 +2328,9 @@ post_bx(POST_ARGS)
 	n = mdoc->last->child;
 	if (n && NULL != (n = n->next))
 		*n->string = (char)toupper((unsigned char)*n->string);
-
-	return(1);
 }
 
-static int
+static void
 post_os(POST_ARGS)
 {
 #ifndef OSNAME
@@ -2474,14 +2378,13 @@ post_os(POST_ARGS)
 
 out:
 	mdoc_node_delete(mdoc, n);
-	return(1);
 }
 
 /*
  * If no argument is provided,
  * fill in the name of the current manual page.
  */
-static int
+static void
 post_ex(POST_ARGS)
 {
 	struct mdoc_node *n;
@@ -2489,21 +2392,17 @@ post_ex(POST_ARGS)
 	n = mdoc->last;
 
 	if (n->child)
-		return(1);
+		return;
 
 	if (mdoc->meta.name == NULL) {
 		mandoc_msg(MANDOCERR_EX_NONAME, mdoc->parse,
 		    n->line, n->pos, "Ex");
-		return(1);
+		return;
 	}
 
 	mdoc->next = MDOC_NEXT_CHILD;
-
-	if ( ! mdoc_word_alloc(mdoc, n->line, n->pos, mdoc->meta.name))
-		return(0);
-
+	mdoc_word_alloc(mdoc, n->line, n->pos, mdoc->meta.name);
 	mdoc->last = n;
-	return(1);
 }
 
 static enum mdoc_sec
Index: mdoc_macro.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/mdoc_macro.c,v
retrieving revision 1.148
retrieving revision 1.149
diff -Lmdoc_macro.c -Lmdoc_macro.c -u -p -r1.148 -r1.149
--- mdoc_macro.c
+++ mdoc_macro.c
@@ -62,9 +62,8 @@ static	int		phrase(struct mdoc *, int, i
 static	enum mdoct	rew_alt(enum mdoct);
 static	enum rew	rew_dohalt(enum mdoct, enum mdoc_type,
 				const struct mdoc_node *);
-static	int		rew_elem(struct mdoc *, enum mdoct);
-static	int		rew_last(struct mdoc *,
-				const struct mdoc_node *);
+static	void		rew_elem(struct mdoc *, enum mdoct);
+static	void		rew_last(struct mdoc *, const struct mdoc_node *);
 static	int		rew_sub(enum mdoc_type, struct mdoc *,
 				enum mdoct, int, int);
 
@@ -238,7 +237,8 @@ mdoc_macroend(struct mdoc *mdoc)
 
 	/* Rewind to the first. */
 
-	return(rew_last(mdoc, mdoc->first));
+	rew_last(mdoc, mdoc->first);
+	return(1);
 }
 
 /*
@@ -268,15 +268,13 @@ lookup_raw(const char *p)
 	return(MDOC_MAX);
 }
 
-static int
+static void
 rew_last(struct mdoc *mdoc, const struct mdoc_node *to)
 {
 	struct mdoc_node *n, *np;
 
 	assert(to);
 	mdoc->next = MDOC_NEXT_SIBLING;
-
-
 	while (mdoc->last != to) {
 		/*
 		 * Save the parent here, because we may delete the
@@ -285,15 +283,13 @@ rew_last(struct mdoc *mdoc, const struct
 		 * out to be lost.
 		 */
 		np = mdoc->last->parent;
-		if ( ! mdoc_valid_post(mdoc))
-			return(0);
+		mdoc_valid_post(mdoc);
 		n = mdoc->last;
 		mdoc->last = np;
 		assert(mdoc->last);
 		mdoc->last->last = n;
 	}
-
-	return(mdoc_valid_post(mdoc));
+	mdoc_valid_post(mdoc);
 }
 
 /*
@@ -455,7 +451,7 @@ rew_dohalt(enum mdoct tok, enum mdoc_typ
 	    REWIND_FORCE : REWIND_LATER);
 }
 
-static int
+static void
 rew_elem(struct mdoc *mdoc, enum mdoct tok)
 {
 	struct mdoc_node *n;
@@ -465,8 +461,7 @@ rew_elem(struct mdoc *mdoc, enum mdoct t
 		n = n->parent;
 	assert(MDOC_ELEM == n->type);
 	assert(tok == n->tok);
-
-	return(rew_last(mdoc, n));
+	rew_last(mdoc, n);
 }
 
 /*
@@ -587,16 +582,14 @@ rew_sub(enum mdoc_type t, struct mdoc *m
 	}
 
 	assert(n);
-	if ( ! rew_last(mdoc, n))
-		return(0);
+	rew_last(mdoc, n);
 
 	/*
 	 * The current block extends an enclosing block.
 	 * Now that the current block ends, close the enclosing block, too.
 	 */
 	while (NULL != (n = n->pending)) {
-		if ( ! rew_last(mdoc, n))
-			return(0);
+		rew_last(mdoc, n);
 		if (MDOC_HEAD == n->type &&
 		    ! mdoc_body_alloc(mdoc, n->line, n->pos, n->tok))
 			return(0);
@@ -801,8 +794,7 @@ blk_exp_close(MACRO_PROT_ARGS)
 			if ( ! mdoc_elem_alloc(mdoc, line, ppos,
 			    MDOC_br, NULL))
 				return(0);
-			if ( ! rew_elem(mdoc, MDOC_br))
-				return(0);
+			rew_elem(mdoc, MDOC_br);
 		} else if ( ! mdoc_tail_alloc(mdoc, line, ppos, atok))
 			return(0);
 	}
@@ -812,8 +804,9 @@ blk_exp_close(MACRO_PROT_ARGS)
 		lastarg = *pos;
 
 		if (j == maxargs && ! flushed) {
-			if ( ! (endbody != NULL ? rew_last(mdoc, endbody) :
-			    rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos)))
+			if (endbody != NULL)
+				rew_last(mdoc, endbody);
+			else if ( ! rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos))
 				return(0);
 			flushed = 1;
 		}
@@ -837,8 +830,9 @@ blk_exp_close(MACRO_PROT_ARGS)
 		}
 
 		if ( ! flushed) {
-			if ( ! (endbody != NULL ? rew_last(mdoc, endbody) :
-			    rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos)))
+			if (endbody != NULL)
+				rew_last(mdoc, endbody);
+			else if ( ! rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos))
 				return(0);
 			flushed = 1;
 		}
@@ -850,9 +844,12 @@ blk_exp_close(MACRO_PROT_ARGS)
 		break;
 	}
 
-	if ( ! flushed && ! (endbody != NULL ? rew_last(mdoc, endbody) :
-	    rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos)))
-		return(0);
+	if ( ! flushed) {
+		if (endbody != NULL)
+			rew_last(mdoc, endbody);
+		else if ( ! rew_sub(MDOC_BLOCK, mdoc, tok, line, ppos))
+			return(0);
+	}
 
 	if ( ! nl)
 		return(1);
@@ -959,14 +956,13 @@ in_line(MACRO_PROT_ARGS)
 		 */
 
 		if (MDOC_MAX != ntok) {
-			if (scope && ! rew_elem(mdoc, tok))
-				return(0);
+			if (scope)
+				rew_elem(mdoc, tok);
 			if (nc && 0 == cnt) {
 				if ( ! mdoc_elem_alloc(mdoc,
 				    line, ppos, tok, arg))
 					return(0);
-				if ( ! rew_last(mdoc, mdoc->last))
-					return(0);
+				rew_last(mdoc, mdoc->last);
 			} else if ( ! nc && 0 == cnt) {
 				mdoc_argv_free(arg);
 				mandoc_msg(MANDOCERR_MACRO_EMPTY,
@@ -1011,8 +1007,8 @@ in_line(MACRO_PROT_ARGS)
 			 * Close out our scope, if one is open, before
 			 * any punctuation.
 			 */
-			if (scope && ! rew_elem(mdoc, tok))
-				return(0);
+			if (scope)
+				rew_elem(mdoc, tok);
 			scope = 0;
 			if (tok == MDOC_Fn)
 				mayopen = 0;
@@ -1042,14 +1038,13 @@ in_line(MACRO_PROT_ARGS)
 		 * having to parse out spaces.
 		 */
 		if (scope && MDOC_Fl == tok) {
-			if ( ! rew_elem(mdoc, tok))
-				return(0);
+			rew_elem(mdoc, tok);
 			scope = 0;
 		}
 	}
 
-	if (scope && ! rew_elem(mdoc, tok))
-		return(0);
+	if (scope)
+		rew_elem(mdoc, tok);
 
 	/*
 	 * If no elements have been collected and we're allowed to have
@@ -1060,8 +1055,7 @@ in_line(MACRO_PROT_ARGS)
 	if (nc && 0 == cnt) {
 		if ( ! mdoc_elem_alloc(mdoc, line, ppos, tok, arg))
 			return(0);
-		if ( ! rew_last(mdoc, mdoc->last))
-			return(0);
+		rew_last(mdoc, mdoc->last);
 	} else if ( ! nc && 0 == cnt) {
 		mdoc_argv_free(arg);
 		mandoc_msg(MANDOCERR_MACRO_EMPTY, mdoc->parse,
@@ -1102,7 +1096,8 @@ blk_full(MACRO_PROT_ARGS)
 			if ( ! mdoc_elem_alloc(mdoc, line, ppos,
 			    MDOC_br, NULL))
 				return(0);
-			return(rew_elem(mdoc, MDOC_br));
+			rew_elem(mdoc, MDOC_br);
+			return(1);
 		}
 	}
 
@@ -1643,16 +1638,15 @@ in_line_argn(MACRO_PROT_ARGS)
 			       return(0);
 
 		if (j == maxargs && ! flushed) {
-			if ( ! rew_elem(mdoc, tok))
-				return(0);
+			rew_elem(mdoc, tok);
 			flushed = 1;
 		}
 
 		ntok = ARGS_QWORD == ac ? MDOC_MAX : lookup(tok, p);
 
 		if (MDOC_MAX != ntok) {
-			if ( ! flushed && ! rew_elem(mdoc, tok))
-				return(0);
+			if ( ! flushed)
+				rew_elem(mdoc, tok);
 			flushed = 1;
 			if ( ! mdoc_macro(mdoc, ntok, line, la, pos, buf))
 				return(0);
@@ -1664,8 +1658,7 @@ in_line_argn(MACRO_PROT_ARGS)
 		    ARGS_QWORD != ac &&
 		    ! flushed &&
 		    DELIM_NONE != mdoc_isdelim(p)) {
-			if ( ! rew_elem(mdoc, tok))
-				return(0);
+			rew_elem(mdoc, tok);
 			flushed = 1;
 		}
 
@@ -1680,8 +1673,8 @@ in_line_argn(MACRO_PROT_ARGS)
 
 	/* Close out in a consistent state. */
 
-	if ( ! flushed && ! rew_elem(mdoc, tok))
-		return(0);
+	if ( ! flushed)
+		rew_elem(mdoc, tok);
 	if ( ! nl)
 		return(1);
 	return(append_delims(mdoc, line, pos, buf));
@@ -1745,15 +1738,14 @@ in_line_eoln(MACRO_PROT_ARGS)
 				return(0);
 			continue;
 		}
-
-		if ( ! rew_elem(mdoc, tok))
-			return(0);
+		rew_elem(mdoc, tok);
 		return(mdoc_macro(mdoc, ntok, line, la, pos, buf));
 	}
 
 	/* Close out (no delimiters). */
 
-	return(rew_elem(mdoc, tok));
+	rew_elem(mdoc, tok);
+	return(1);
 }
 
 static int
Index: mdoc.c
===================================================================
RCS file: /home/cvs/mdocml/mdocml/mdoc.c,v
retrieving revision 1.229
retrieving revision 1.230
diff -Lmdoc.c -Lmdoc.c -u -p -r1.229 -r1.230
--- mdoc.c
+++ mdoc.c
@@ -89,8 +89,7 @@ static	void		  mdoc_free1(struct mdoc *)
 static	void		  mdoc_alloc1(struct mdoc *);
 static	struct mdoc_node *node_alloc(struct mdoc *, int, int,
 				enum mdoct, enum mdoc_type);
-static	int		  node_append(struct mdoc *,
-				struct mdoc_node *);
+static	void		  node_append(struct mdoc *, struct mdoc_node *);
 static	int		  mdoc_ptext(struct mdoc *, int, char *, int);
 static	int		  mdoc_pmacro(struct mdoc *, int, char *, int);
 
@@ -207,10 +206,7 @@ mdoc_addeqn(struct mdoc *mdoc, const str
 	n->eqn = ep;
 	if (ep->ln > mdoc->last->line)
 		n->flags |= MDOC_LINE;
-
-	if ( ! node_append(mdoc, n))
-		return(0);
-
+	node_append(mdoc, n);
 	mdoc->next = MDOC_NEXT_SIBLING;
 	return(1);
 }
@@ -222,10 +218,7 @@ mdoc_addspan(struct mdoc *mdoc, const st
 
 	n = node_alloc(mdoc, sp->line, 0, MDOC_MAX, MDOC_TBL);
 	n->span = sp;
-
-	if ( ! node_append(mdoc, n))
-		return(0);
-
+	node_append(mdoc, n);
 	mdoc->next = MDOC_NEXT_SIBLING;
 	return(1);
 }
@@ -285,7 +278,7 @@ mdoc_macro(MACRO_PROT_ARGS)
 }
 
 
-static int
+static void
 node_append(struct mdoc *mdoc, struct mdoc_node *p)
 {
 
@@ -329,8 +322,7 @@ node_append(struct mdoc *mdoc, struct md
 		break;
 	}
 
-	if ( ! mdoc_valid_pre(mdoc, p))
-		return(0);
+	mdoc_valid_pre(mdoc, p);
 
 	switch (p->type) {
 	case MDOC_HEAD:
@@ -357,14 +349,11 @@ node_append(struct mdoc *mdoc, struct md
 	case MDOC_TBL:
 		/* FALLTHROUGH */
 	case MDOC_TEXT:
-		if ( ! mdoc_valid_post(mdoc))
-			return(0);
+		mdoc_valid_post(mdoc);
 		break;
 	default:
 		break;
 	}
-
-	return(1);
 }
 
 static struct mdoc_node *
@@ -400,8 +389,7 @@ mdoc_tail_alloc(struct mdoc *mdoc, int l
 	struct mdoc_node *p;
 
 	p = node_alloc(mdoc, line, pos, tok, MDOC_TAIL);
-	if ( ! node_append(mdoc, p))
-		return(0);
+	node_append(mdoc, p);
 	mdoc->next = MDOC_NEXT_CHILD;
 	return(1);
 }
@@ -415,8 +403,7 @@ mdoc_head_alloc(struct mdoc *mdoc, int l
 	assert(mdoc->last);
 
 	p = node_alloc(mdoc, line, pos, tok, MDOC_HEAD);
-	if ( ! node_append(mdoc, p))
-		return(0);
+	node_append(mdoc, p);
 	mdoc->next = MDOC_NEXT_CHILD;
 	return(1);
 }
@@ -427,8 +414,7 @@ mdoc_body_alloc(struct mdoc *mdoc, int l
 	struct mdoc_node *p;
 
 	p = node_alloc(mdoc, line, pos, tok, MDOC_BODY);
-	if ( ! node_append(mdoc, p))
-		return(0);
+	node_append(mdoc, p);
 	mdoc->next = MDOC_NEXT_CHILD;
 	return(1);
 }
@@ -443,8 +429,7 @@ mdoc_endbody_alloc(struct mdoc *mdoc, in
 	p->pending = body;
 	p->norm = body->norm;
 	p->end = end;
-	if ( ! node_append(mdoc, p))
-		return(0);
+	node_append(mdoc, p);
 	mdoc->next = MDOC_NEXT_SIBLING;
 	return(1);
 }
@@ -475,9 +460,7 @@ mdoc_block_alloc(struct mdoc *mdoc, int 
 	default:
 		break;
 	}
-
-	if ( ! node_append(mdoc, p))
-		return(0);
+	node_append(mdoc, p);
 	mdoc->next = MDOC_NEXT_CHILD;
 	return(1);
 }
@@ -500,9 +483,7 @@ mdoc_elem_alloc(struct mdoc *mdoc, int l
 	default:
 		break;
 	}
-
-	if ( ! node_append(mdoc, p))
-		return(0);
+	node_append(mdoc, p);
 	mdoc->next = MDOC_NEXT_CHILD;
 	return(1);
 }
@@ -514,10 +495,7 @@ mdoc_word_alloc(struct mdoc *mdoc, int l
 
 	n = node_alloc(mdoc, line, pos, MDOC_MAX, MDOC_TEXT);
 	n->string = roff_strdup(mdoc->roff, p);
-
-	if ( ! node_append(mdoc, n))
-		return(0);
-
+	node_append(mdoc, n);
 	mdoc->next = MDOC_NEXT_SIBLING;
 	return(1);
 }
@@ -606,7 +584,8 @@ mdoc_node_relink(struct mdoc *mdoc, stru
 {
 
 	mdoc_node_unlink(mdoc, p);
-	return(node_append(mdoc, p));
+	node_append(mdoc, p);
+	return(1);
 }
 
 /*
@@ -704,7 +683,8 @@ mdoc_ptext(struct mdoc *mdoc, int line, 
 
 		mdoc->next = MDOC_NEXT_SIBLING;
 
-		return(mdoc_valid_post(mdoc));
+		mdoc_valid_post(mdoc);
+		return(1);
 	}
 
 	if ( ! mdoc_word_alloc(mdoc, line, offs, buf+offs))
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-11-28  1:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-28  1:05 mdocml: Simplify code by making mdoc validation handlers void schwarze

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).