version 1.27, 2011/01/16 19:27:25 |
version 1.28, 2011/04/21 22:59:54 |
|
|
const struct man_node *); |
const struct man_node *); |
static enum rew rew_block(enum mant, enum man_type, |
static enum rew rew_block(enum mant, enum man_type, |
const struct man_node *); |
const struct man_node *); |
static int rew_warn(struct man *, |
static void rew_warn(struct man *, |
struct man_node *, enum mandocerr); |
struct man_node *, enum mandocerr); |
|
|
const struct man_macro __man_macros[MAN_MAX] = { |
const struct man_macro __man_macros[MAN_MAX] = { |
|
|
/* |
/* |
* Warn when "n" is an explicit non-roff macro. |
* Warn when "n" is an explicit non-roff macro. |
*/ |
*/ |
static int |
static void |
rew_warn(struct man *m, struct man_node *n, enum mandocerr er) |
rew_warn(struct man *m, struct man_node *n, enum mandocerr er) |
{ |
{ |
|
|
if (er == MANDOCERR_MAX || MAN_BLOCK != n->type) |
if (er == MANDOCERR_MAX || MAN_BLOCK != n->type) |
return(1); |
return; |
if (MAN_VALID & n->flags) |
if (MAN_VALID & n->flags) |
return(1); |
return; |
if ( ! (MAN_EXPLICIT & man_macros[n->tok].flags)) |
if ( ! (MAN_EXPLICIT & man_macros[n->tok].flags)) |
return(1); |
return; |
return(man_nmsg(m, n, er)); |
|
|
assert(er < MANDOCERR_FATAL); |
|
man_nmsg(m, n, er); |
} |
} |
|
|
|
|
|
|
* out to be lost. |
* out to be lost. |
*/ |
*/ |
n = m->last->parent; |
n = m->last->parent; |
if ( ! rew_warn(m, m->last, er)) |
rew_warn(m, m->last, er); |
return(0); |
|
if ( ! man_valid_post(m)) |
if ( ! man_valid_post(m)) |
return(0); |
return(0); |
m->last = n; |
m->last = n; |
assert(m->last); |
assert(m->last); |
} |
} |
|
|
if ( ! rew_warn(m, m->last, er)) |
rew_warn(m, m->last, er); |
return(0); |
|
if ( ! man_valid_post(m)) |
if ( ! man_valid_post(m)) |
return(0); |
return(0); |
|
|
|
|
break; |
break; |
|
|
if (NULL == nn) |
if (NULL == nn) |
if ( ! man_pmsg(m, line, ppos, MANDOCERR_NOSCOPE)) |
man_pmsg(m, line, ppos, MANDOCERR_NOSCOPE); |
return(0); |
|
|
|
if ( ! rew_scope(MAN_BODY, m, ntok)) |
if ( ! rew_scope(MAN_BODY, m, ntok)) |
return(0); |
return(0); |