version 1.65, 2010/05/12 16:46:28 |
version 1.71, 2010/05/16 00:04:46 |
|
|
|
|
const char *const __man_merrnames[WERRMAX] = { |
const char *const __man_merrnames[WERRMAX] = { |
"invalid character", /* WNPRINT */ |
"invalid character", /* WNPRINT */ |
"invalid manual section", /* WMSEC */ |
|
"invalid date format", /* WDATE */ |
"invalid date format", /* WDATE */ |
"scope of prior line violated", /* WLNSCOPE */ |
"scope of prior line violated", /* WLNSCOPE */ |
"over-zealous prior line scope violation", /* WLNSCOPE2 */ |
"over-zealous prior line scope violation", /* WLNSCOPE2 */ |
Line 50 const char *const __man_merrnames[WERRMAX] = { |
|
Line 49 const char *const __man_merrnames[WERRMAX] = { |
|
"no scope context", /* WNOSCOPE */ |
"no scope context", /* WNOSCOPE */ |
"literal context already open", /* WOLITERAL */ |
"literal context already open", /* WOLITERAL */ |
"no literal context open", /* WNLITERAL */ |
"no literal context open", /* WNLITERAL */ |
"invalid nesting of roff declarations", /* WROFFNEST */ |
|
"scope in roff instructions broken", /* WROFFSCOPE */ |
|
"document title should be uppercase", /* WTITLECASE */ |
"document title should be uppercase", /* WTITLECASE */ |
"deprecated comment style", /* WBADCOMMENT */ |
"deprecated comment style", /* WBADCOMMENT */ |
}; |
}; |
Line 65 const char *const __man_macronames[MAN_MAX] = { |
|
Line 62 const char *const __man_macronames[MAN_MAX] = { |
|
"RI", "na", "i", "sp", |
"RI", "na", "i", "sp", |
"nf", "fi", "r", "RE", |
"nf", "fi", "r", "RE", |
"RS", "DT", "UC", "PD", |
"RS", "DT", "UC", "PD", |
"Sp", "Vb", "Ve", "de", |
"Sp", "Vb", "Ve", |
"dei", "am", "ami", "ig", |
|
".", |
|
}; |
}; |
|
|
const char * const *man_macronames = __man_macronames; |
const char * const *man_macronames = __man_macronames; |
|
|
man_parseln(struct man *m, int ln, char *buf) |
man_parseln(struct man *m, int ln, char *buf) |
{ |
{ |
|
|
return('.' == *buf || '\'' == *buf ? |
return(('.' == *buf || '\'' == *buf) ? |
man_pmacro(m, ln, buf) : |
man_pmacro(m, ln, buf) : |
man_ptext(m, ln, buf)); |
man_ptext(m, ln, buf)); |
} |
} |
Line 174 man_free1(struct man *man) |
|
Line 169 man_free1(struct man *man) |
|
free(man->meta.source); |
free(man->meta.source); |
if (man->meta.vol) |
if (man->meta.vol) |
free(man->meta.vol); |
free(man->meta.vol); |
|
if (man->meta.msec) |
|
free(man->meta.msec); |
} |
} |
|
|
|
|
Line 426 man_ptext(struct man *m, int line, char *buf) |
|
Line 423 man_ptext(struct man *m, int line, char *buf) |
|
* sentence. The front-end will know how to interpret this. |
* sentence. The front-end will know how to interpret this. |
*/ |
*/ |
|
|
|
/* FIXME: chain of close delims. */ |
|
|
assert(i); |
assert(i); |
|
|
switch (buf[i - 1]) { |
if (mandoc_eos(buf, (size_t)i)) |
case ('.'): |
|
if (i > 1 && '\\' == buf[i - 2]) |
|
break; |
|
/* FALLTHROUGH */ |
|
case ('!'): |
|
/* FALLTHROUGH */ |
|
case ('?'): |
|
m->last->flags |= MAN_EOS; |
m->last->flags |= MAN_EOS; |
break; |
|
default: |
|
break; |
|
|
|
} |
|
|
|
descope: |
descope: |
/* |
/* |
* Co-ordinate what happens with having a next-line scope open: |
* Co-ordinate what happens with having a next-line scope open: |
Line 558 man_pmacro(struct man *m, int ln, char *buf) |
|
Line 545 man_pmacro(struct man *m, int ln, char *buf) |
|
* Remove prior ELINE macro, as it's being clobbering by a new |
* Remove prior ELINE macro, as it's being clobbering by a new |
* macro. Note that NSCOPED macros do not close out ELINE |
* macro. Note that NSCOPED macros do not close out ELINE |
* macros---they don't print text---so we let those slip by. |
* macros---they don't print text---so we let those slip by. |
* NOTE: we don't allow roff blocks (NOCLOSE) to be embedded |
|
* here because that would stipulate blocks as children of |
|
* elements! |
|
*/ |
*/ |
|
|
if ( ! (MAN_NSCOPED & man_macros[tok].flags) && |
if ( ! (MAN_NSCOPED & man_macros[tok].flags) && |