version 1.58, 2008/12/10 10:43:57 |
version 1.60, 2008/12/10 12:09:47 |
|
|
ERR_PR_OOO, /* Prelude macro bad order. */ |
ERR_PR_OOO, /* Prelude macro bad order. */ |
ERR_PR_REP, /* Prelude macro repeated. */ |
ERR_PR_REP, /* Prelude macro repeated. */ |
ERR_NOT_PR, /* Not allowed in prelude. */ |
ERR_NOT_PR, /* Not allowed in prelude. */ |
WRN_SECORD, /* Sections out-of-order. */ |
WRN_SECORD /* Sections out-of-order. */ |
}; |
}; |
|
|
struct rofftree { |
struct rofftree { |
Line 164 roff_free(struct rofftree *tree, int flush) |
|
Line 164 roff_free(struct rofftree *tree, int flush) |
|
goto end; |
goto end; |
} |
} |
|
|
if ( ! (*tree->cb.rofftail)(tree->arg)) |
if ( ! (*tree->cb.rofftail)(tree->arg, &tree->tm, |
|
tree->os, tree->title, |
|
tree->section, tree->volume)) |
goto end; |
goto end; |
|
|
error = 0; |
error = 0; |
Line 527 rofffindtok(const char *buf) |
|
Line 529 rofffindtok(const char *buf) |
|
static int |
static int |
roffchecksec(struct rofftree *tree, const char *start, int sec) |
roffchecksec(struct rofftree *tree, const char *start, int sec) |
{ |
{ |
int prior; |
|
|
|
switch (sec) { |
switch (sec) { |
case(ROFFSec_SYNOP): |
case(ROFFSec_SYNOP): |
if ((prior = ROFFSec_NAME) & tree->asec) |
if (ROFFSec_NAME & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_DESC): |
case(ROFFSec_DESC): |
if ((prior = ROFFSec_SYNOP) & tree->asec) |
if (ROFFSec_SYNOP & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_RETVAL): |
case(ROFFSec_RETVAL): |
if ((prior = ROFFSec_DESC) & tree->asec) |
if (ROFFSec_DESC & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_ENV): |
case(ROFFSec_ENV): |
if ((prior = ROFFSec_RETVAL) & tree->asec) |
if (ROFFSec_RETVAL & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_FILES): |
case(ROFFSec_FILES): |
if ((prior = ROFFSec_ENV) & tree->asec) |
if (ROFFSec_ENV & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_EX): |
case(ROFFSec_EX): |
if ((prior = ROFFSec_FILES) & tree->asec) |
if (ROFFSec_FILES & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_DIAG): |
case(ROFFSec_DIAG): |
if ((prior = ROFFSec_EX) & tree->asec) |
if (ROFFSec_EX & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_ERRS): |
case(ROFFSec_ERRS): |
if ((prior = ROFFSec_DIAG) & tree->asec) |
if (ROFFSec_DIAG & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_SEEALSO): |
case(ROFFSec_SEEALSO): |
if ((prior = ROFFSec_ERRS) & tree->asec) |
if (ROFFSec_ERRS & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_STAND): |
case(ROFFSec_STAND): |
if ((prior = ROFFSec_SEEALSO) & tree->asec) |
if (ROFFSec_SEEALSO & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_HIST): |
case(ROFFSec_HIST): |
if ((prior = ROFFSec_STAND) & tree->asec) |
if (ROFFSec_STAND & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_AUTH): |
case(ROFFSec_AUTH): |
if ((prior = ROFFSec_HIST) & tree->asec) |
if (ROFFSec_HIST & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_CAVEATS): |
case(ROFFSec_CAVEATS): |
if ((prior = ROFFSec_AUTH) & tree->asec) |
if (ROFFSec_AUTH & tree->asec) |
return(1); |
return(1); |
break; |
break; |
case(ROFFSec_BUGS): |
case(ROFFSec_BUGS): |
if ((prior = ROFFSec_CAVEATS) & tree->asec) |
if (ROFFSec_CAVEATS & tree->asec) |
return(1); |
return(1); |
break; |
break; |
default: |
default: |