version 1.322, 2017/04/29 12:45:42 |
version 1.328, 2017/05/30 19:30:38 |
Line 105 static void post_sh_authors(POST_ARGS); |
|
Line 105 static void post_sh_authors(POST_ARGS); |
|
static void post_sm(POST_ARGS); |
static void post_sm(POST_ARGS); |
static void post_st(POST_ARGS); |
static void post_st(POST_ARGS); |
static void post_std(POST_ARGS); |
static void post_std(POST_ARGS); |
|
static void post_useless(POST_ARGS); |
static void post_xr(POST_ARGS); |
static void post_xr(POST_ARGS); |
static void post_xx(POST_ARGS); |
static void post_xx(POST_ARGS); |
|
|
Line 201 static const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] |
|
Line 202 static const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] |
|
post_sm, /* Sm */ |
post_sm, /* Sm */ |
post_hyph, /* Sx */ |
post_hyph, /* Sx */ |
NULL, /* Sy */ |
NULL, /* Sy */ |
NULL, /* Tn */ |
post_useless, /* Tn */ |
post_xx, /* Ux */ |
post_xx, /* Ux */ |
NULL, /* Xc */ |
NULL, /* Xc */ |
NULL, /* Xo */ |
NULL, /* Xo */ |
Line 227 static const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] |
|
Line 228 static const v_post __mdoc_valids[MDOC_MAX - MDOC_Dd] |
|
post_en, /* En */ |
post_en, /* En */ |
post_xx, /* Dx */ |
post_xx, /* Dx */ |
NULL, /* %Q */ |
NULL, /* %Q */ |
post_par, /* br */ |
|
post_par, /* sp */ |
|
NULL, /* %U */ |
NULL, /* %U */ |
NULL, /* Ta */ |
NULL, /* Ta */ |
NULL, /* ll */ |
|
}; |
}; |
static const v_post *const mdoc_valids = __mdoc_valids - MDOC_Dd; |
static const v_post *const mdoc_valids = __mdoc_valids - MDOC_Dd; |
|
|
Line 327 mdoc_node_validate(struct roff_man *mdoc) |
|
Line 325 mdoc_node_validate(struct roff_man *mdoc) |
|
|
|
/* Call the macro's postprocessor. */ |
/* Call the macro's postprocessor. */ |
|
|
|
if (n->tok < ROFF_MAX) { |
|
switch(n->tok) { |
|
case ROFF_br: |
|
case ROFF_sp: |
|
post_par(mdoc); |
|
break; |
|
default: |
|
roff_validate(mdoc); |
|
break; |
|
} |
|
break; |
|
} |
|
|
|
assert(n->tok >= MDOC_Dd && n->tok < MDOC_MAX); |
p = mdoc_valids + n->tok; |
p = mdoc_valids + n->tok; |
if (*p) |
if (*p) |
(*p)(mdoc); |
(*p)(mdoc); |
Line 660 post_eoln(POST_ARGS) |
|
Line 672 post_eoln(POST_ARGS) |
|
{ |
{ |
struct roff_node *n; |
struct roff_node *n; |
|
|
|
post_useless(mdoc); |
n = mdoc->last; |
n = mdoc->last; |
if (n->child != NULL) |
if (n->child != NULL) |
mandoc_vmsg(MANDOCERR_ARG_SKIP, mdoc->parse, n->line, |
mandoc_vmsg(MANDOCERR_ARG_SKIP, mdoc->parse, n->line, |
Line 855 post_obsolete(POST_ARGS) |
|
Line 868 post_obsolete(POST_ARGS) |
|
n->line, n->pos, roff_name[n->tok]); |
n->line, n->pos, roff_name[n->tok]); |
} |
} |
|
|
|
static void |
|
post_useless(POST_ARGS) |
|
{ |
|
struct roff_node *n; |
|
|
|
n = mdoc->last; |
|
mandoc_msg(MANDOCERR_MACRO_USELESS, mdoc->parse, |
|
n->line, n->pos, roff_name[n->tok]); |
|
} |
|
|
/* |
/* |
* Block macros. |
* Block macros. |
*/ |
*/ |
Line 1310 post_bl_block(POST_ARGS) |
|
Line 1333 post_bl_block(POST_ARGS) |
|
switch (nc->tok) { |
switch (nc->tok) { |
case MDOC_Pp: |
case MDOC_Pp: |
case MDOC_Lp: |
case MDOC_Lp: |
case MDOC_br: |
case ROFF_br: |
break; |
break; |
default: |
default: |
nc = NULL; |
nc = NULL; |
Line 1868 post_sh_see_also(POST_ARGS) |
|
Line 1891 post_sh_see_also(POST_ARGS) |
|
if (isalpha((const unsigned char)*name)) |
if (isalpha((const unsigned char)*name)) |
return; |
return; |
lastpunct = n->string; |
lastpunct = n->string; |
if (n->next == NULL) |
if (n->next == NULL || n->next->tok == MDOC_Rs) |
mandoc_vmsg(MANDOCERR_XR_PUNCT, mdoc->parse, |
mandoc_vmsg(MANDOCERR_XR_PUNCT, mdoc->parse, |
n->line, n->pos, "%s after %s(%s)", |
n->line, n->pos, "%s after %s(%s)", |
lastpunct, lastname, lastsec); |
lastpunct, lastname, lastsec); |
Line 2064 post_prevpar(POST_ARGS) |
|
Line 2087 post_prevpar(POST_ARGS) |
|
|
|
if (n->prev->tok != MDOC_Pp && |
if (n->prev->tok != MDOC_Pp && |
n->prev->tok != MDOC_Lp && |
n->prev->tok != MDOC_Lp && |
n->prev->tok != MDOC_br) |
n->prev->tok != ROFF_br) |
return; |
return; |
if (n->tok == MDOC_Bl && n->norm->Bl.comp) |
if (n->tok == MDOC_Bl && n->norm->Bl.comp) |
return; |
return; |
Line 2085 post_par(POST_ARGS) |
|
Line 2108 post_par(POST_ARGS) |
|
struct roff_node *np; |
struct roff_node *np; |
|
|
np = mdoc->last; |
np = mdoc->last; |
if (np->tok != MDOC_br && np->tok != MDOC_sp) |
if (np->tok != ROFF_br && np->tok != ROFF_sp) |
post_prevpar(mdoc); |
post_prevpar(mdoc); |
|
|
if (np->tok == MDOC_sp) { |
if (np->tok == ROFF_sp) { |
if (np->child != NULL && np->child->next != NULL) |
if (np->child != NULL && np->child->next != NULL) |
mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse, |
mandoc_vmsg(MANDOCERR_ARG_EXCESS, mdoc->parse, |
np->child->next->line, np->child->next->pos, |
np->child->next->line, np->child->next->pos, |
Line 2103 post_par(POST_ARGS) |
|
Line 2126 post_par(POST_ARGS) |
|
if (np->tok != MDOC_Sh && np->tok != MDOC_Ss) |
if (np->tok != MDOC_Sh && np->tok != MDOC_Ss) |
return; |
return; |
} else if (np->tok != MDOC_Pp && np->tok != MDOC_Lp && |
} else if (np->tok != MDOC_Pp && np->tok != MDOC_Lp && |
(mdoc->last->tok != MDOC_br || |
(mdoc->last->tok != ROFF_br || |
(np->tok != MDOC_sp && np->tok != MDOC_br))) |
(np->tok != ROFF_sp && np->tok != ROFF_br))) |
return; |
return; |
|
|
mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse, |
mandoc_vmsg(MANDOCERR_PAR_SKIP, mdoc->parse, |