aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--libmdoc.h6
-rw-r--r--mdoc.c56
-rw-r--r--mdoc_macro.c98
-rw-r--r--mdoc_validate.c545
4 files changed, 288 insertions, 417 deletions
diff --git a/libmdoc.h b/libmdoc.h
index f304769f..64c1e3d7 100644
--- a/libmdoc.h
+++ b/libmdoc.h
@@ -1,4 +1,4 @@
-/* $Id: libmdoc.h,v 1.89 2014/11/17 06:44:58 schwarze Exp $ */
+/* $Id: libmdoc.h,v 1.90 2014/11/28 01:05:43 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -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 *);
diff --git a/mdoc.c b/mdoc.c
index d91fe64f..3863b6ab 100644
--- a/mdoc.c
+++ b/mdoc.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc.c,v 1.229 2014/11/19 03:08:17 schwarze Exp $ */
+/* $Id: mdoc.c,v 1.230 2014/11/28 01:05:43 schwarze Exp $ */
/*
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -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 struct eqn *ep)
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 struct tbl_span *sp)
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 mdoc_node *p)
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 mdoc_node *p)
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 line, int pos, enum mdoct tok)
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 line, int pos, enum mdoct tok)
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 line, int pos, enum mdoct tok)
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, int line, int pos, enum mdoct tok,
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 line, int pos,
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 line, int pos,
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 line, int pos, const char *p)
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, struct mdoc_node *p)
{
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, char *buf, int offs)
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))
diff --git a/mdoc_macro.c b/mdoc_macro.c
index 9a89e816..1d08cfbc 100644
--- a/mdoc_macro.c
+++ b/mdoc_macro.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_macro.c,v 1.148 2014/11/27 22:27:56 schwarze Exp $ */
+/* $Id: mdoc_macro.c,v 1.149 2014/11/28 01:05:43 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010, 2012, 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -62,9 +62,8 @@ static int phrase(struct mdoc *, int, int, char *);
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 mdoc_node *to)
* 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_type type,
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 tok)
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 *mdoc,
}
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
diff --git a/mdoc_validate.c b/mdoc_validate.c
index f92fb675..1b4e1eb8 100644
--- a/mdoc_validate.c
+++ b/mdoc_validate.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_validate.c,v 1.258 2014/11/27 23:40:19 schwarze Exp $ */
+/* $Id: mdoc_validate.c,v 1.259 2014/11/28 01:05:43 schwarze Exp $ */
/*
* Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -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__MAX] = {
};
-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 mdoc_node *n)
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_type type,
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_type type,
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, int pos, char *p)
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