version 1.68, 2010/04/07 18:50:35 |
version 1.73, 2010/05/14 14:34:29 |
Line 60 static int err_child_gt(struct mdoc *, const char *, |
|
Line 60 static int err_child_gt(struct mdoc *, const char *, |
|
static int warn_child_gt(struct mdoc *, const char *, int); |
static int warn_child_gt(struct mdoc *, const char *, int); |
static int err_child_eq(struct mdoc *, const char *, int); |
static int err_child_eq(struct mdoc *, const char *, int); |
static int warn_child_eq(struct mdoc *, const char *, int); |
static int warn_child_eq(struct mdoc *, const char *, int); |
static int warn_print(struct mdoc *, int, int); |
|
static int warn_count(struct mdoc *, const char *, |
static int warn_count(struct mdoc *, const char *, |
int, const char *, int); |
int, const char *, int); |
static int err_count(struct mdoc *, const char *, |
static int err_count(struct mdoc *, const char *, |
Line 98 static int post_vt(POST_ARGS); |
|
Line 97 static int post_vt(POST_ARGS); |
|
static int pre_an(PRE_ARGS); |
static int pre_an(PRE_ARGS); |
static int pre_bd(PRE_ARGS); |
static int pre_bd(PRE_ARGS); |
static int pre_bl(PRE_ARGS); |
static int pre_bl(PRE_ARGS); |
static int pre_cd(PRE_ARGS); |
|
static int pre_dd(PRE_ARGS); |
static int pre_dd(PRE_ARGS); |
static int pre_display(PRE_ARGS); |
static int pre_display(PRE_ARGS); |
static int pre_dt(PRE_ARGS); |
static int pre_dt(PRE_ARGS); |
Line 137 static v_post posts_xr[] = { ewarn_ge1, NULL }; |
|
Line 135 static v_post posts_xr[] = { ewarn_ge1, NULL }; |
|
static v_pre pres_an[] = { pre_an, NULL }; |
static v_pre pres_an[] = { pre_an, NULL }; |
static v_pre pres_bd[] = { pre_display, pre_bd, NULL }; |
static v_pre pres_bd[] = { pre_display, pre_bd, NULL }; |
static v_pre pres_bl[] = { pre_bl, NULL }; |
static v_pre pres_bl[] = { pre_bl, NULL }; |
static v_pre pres_cd[] = { pre_cd, NULL }; |
|
static v_pre pres_d1[] = { pre_display, NULL }; |
static v_pre pres_d1[] = { pre_display, NULL }; |
static v_pre pres_dd[] = { pre_dd, NULL }; |
static v_pre pres_dd[] = { pre_dd, NULL }; |
static v_pre pres_dt[] = { pre_dt, NULL }; |
static v_pre pres_dt[] = { pre_dt, NULL }; |
Line 169 const struct valids mdoc_valids[MDOC_MAX] = { |
|
Line 166 const struct valids mdoc_valids[MDOC_MAX] = { |
|
{ NULL, posts_text }, /* Ad */ |
{ NULL, posts_text }, /* Ad */ |
{ pres_an, posts_an }, /* An */ |
{ pres_an, posts_an }, /* An */ |
{ NULL, NULL }, /* Ar */ |
{ NULL, NULL }, /* Ar */ |
{ pres_cd, posts_text }, /* Cd */ |
{ NULL, posts_text }, /* Cd */ |
{ NULL, NULL }, /* Cm */ |
{ NULL, NULL }, /* Cm */ |
{ NULL, NULL }, /* Dv */ |
{ NULL, NULL }, /* Dv */ |
{ pres_er, posts_text }, /* Er */ |
{ pres_er, posts_text }, /* Er */ |
Line 325 mdoc_valid_post(struct mdoc *mdoc) |
|
Line 322 mdoc_valid_post(struct mdoc *mdoc) |
|
} |
} |
|
|
|
|
static int |
|
warn_print(struct mdoc *m, int ln, int pos) |
|
{ |
|
|
|
if (MDOC_IGN_CHARS & m->pflags) |
|
return(mdoc_pwarn(m, ln, pos, EPRINT)); |
|
return(mdoc_perr(m, ln, pos, EPRINT)); |
|
} |
|
|
|
|
|
static inline int |
static inline int |
warn_count(struct mdoc *m, const char *k, |
warn_count(struct mdoc *m, const char *k, |
int want, const char *v, int has) |
int want, const char *v, int has) |
Line 520 check_text(struct mdoc *mdoc, int line, int pos, const |
|
Line 507 check_text(struct mdoc *mdoc, int line, int pos, const |
|
for ( ; *p; p++, pos++) { |
for ( ; *p; p++, pos++) { |
if ('\t' == *p) { |
if ('\t' == *p) { |
if ( ! (MDOC_LITERAL & mdoc->flags)) |
if ( ! (MDOC_LITERAL & mdoc->flags)) |
if ( ! warn_print(mdoc, line, pos)) |
if ( ! mdoc_pwarn(mdoc, line, pos, EPRINT)) |
return(0); |
return(0); |
} else if ( ! isprint((u_char)*p)) |
} else if ( ! isprint((u_char)*p)) |
if ( ! warn_print(mdoc, line, pos)) |
if ( ! mdoc_pwarn(mdoc, line, pos, EPRINT)) |
return(0); |
return(0); |
|
|
if ('\\' != *p) |
if ('\\' != *p) |
Line 749 pre_sh(PRE_ARGS) |
|
Line 736 pre_sh(PRE_ARGS) |
|
|
|
if (MDOC_BLOCK != n->type) |
if (MDOC_BLOCK != n->type) |
return(1); |
return(1); |
return(check_parent(mdoc, n, -1, MDOC_ROOT)); |
return(check_parent(mdoc, n, MDOC_MAX, MDOC_ROOT)); |
} |
} |
|
|
|
|
|
|
pre_rv(PRE_ARGS) |
pre_rv(PRE_ARGS) |
{ |
{ |
|
|
if ( ! check_msec(mdoc, n, 2, 3, 0)) |
|
return(0); |
|
return(check_stdarg(mdoc, n)); |
return(check_stdarg(mdoc, n)); |
} |
} |
|
|
Line 803 pre_ex(PRE_ARGS) |
|
Line 788 pre_ex(PRE_ARGS) |
|
|
|
|
|
static int |
static int |
pre_cd(PRE_ARGS) |
|
{ |
|
|
|
return(check_msec(mdoc, n, 4, 9, 0)); |
|
} |
|
|
|
|
|
static int |
|
pre_dt(PRE_ARGS) |
pre_dt(PRE_ARGS) |
{ |
{ |
|
|
Line 1062 post_it(POST_ARGS) |
|
Line 1039 post_it(POST_ARGS) |
|
for (i = 0; c && MDOC_HEAD == c->type; c = c->next) |
for (i = 0; c && MDOC_HEAD == c->type; c = c->next) |
i++; |
i++; |
|
|
if (i < cols || i == (cols + 1)) { |
if (i < cols) { |
if ( ! mdoc_vwarn(mdoc, mdoc->last->line, |
if ( ! mdoc_vwarn(mdoc, mdoc->last->line, |
mdoc->last->pos, "column " |
mdoc->last->pos, "column " |
"mismatch: have %d, want %d", |
"mismatch: have %d, want %d", |
i, cols)) |
i, cols)) |
return(0); |
return(0); |
break; |
break; |
} else if (i == cols) |
} else if (i == cols || i == cols + 1) |
break; |
break; |
|
|
return(mdoc_verr(mdoc, mdoc->last->line, |
return(mdoc_verr(mdoc, mdoc->last->line, |
Line 1309 post_sh_head(POST_ARGS) |
|
Line 1286 post_sh_head(POST_ARGS) |
|
return(mdoc_nerr(mdoc, n, ETOOLONG)); |
return(mdoc_nerr(mdoc, n, ETOOLONG)); |
} |
} |
|
|
sec = mdoc_atosec(buf); |
sec = mdoc_str2sec(buf); |
|
|
/* |
/* |
* Check: NAME should always be first, CUSTOM has no roles, |
* Check: NAME should always be first, CUSTOM has no roles, |
* non-CUSTOM has a conventional order to be followed. |
* non-CUSTOM has a conventional order to be followed. |
*/ |
*/ |
|
|
if (SEC_NAME != sec && SEC_NONE == mdoc->lastnamed && |
if (SEC_NAME != sec && SEC_NONE == mdoc->lastnamed) |
! mdoc_nwarn(mdoc, mdoc->last, ESECNAME)) |
if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECNAME)) |
return(0); |
return(0); |
|
|
if (SEC_CUSTOM == sec) |
if (SEC_CUSTOM == sec) |
return(1); |
return(1); |
|
|
if (sec == mdoc->lastnamed) |
if (sec == mdoc->lastnamed) |
if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECREP)) |
if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECREP)) |
return(0); |
return(0); |
|
|
if (sec < mdoc->lastnamed) |
if (sec < mdoc->lastnamed) |
if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECOOO)) |
if ( ! mdoc_nwarn(mdoc, mdoc->last, ESECOOO)) |
return(0); |
return(0); |