version 1.20, 2009/06/16 19:13:28 |
version 1.27, 2009/07/07 09:35:40 |
|
|
|
|
#include "libman.h" |
#include "libman.h" |
|
|
|
const char *const __man_merrnames[WERRMAX] = { |
|
"invalid character", /* WNPRINT */ |
|
"system: malloc error", /* WNMEM */ |
|
"invalid manual section", /* WMSEC */ |
|
"invalid date format", /* WDATE */ |
|
"scope of prior line violated", /* WLNSCOPE */ |
|
"trailing whitespace", /* WTSPACE */ |
|
"unterminated quoted parameter", /* WTQUOTE */ |
|
"document has no body", /* WNODATA */ |
|
"document has no title/section", /* WNOTITLE */ |
|
"invalid escape sequence", /* WESCAPE */ |
|
}; |
|
|
const char *const __man_macronames[MAN_MAX] = { |
const char *const __man_macronames[MAN_MAX] = { |
"\\\"", "TH", "SH", "SS", |
"br", "TH", "SH", "SS", |
"TP", "LP", "PP", "P", |
"TP", "LP", "PP", "P", |
"IP", "HP", "SM", "SB", |
"IP", "HP", "SM", "SB", |
"BI", "IB", "BR", "RB", |
"BI", "IB", "BR", "RB", |
"R", "B", "I", "IR", |
"R", "B", "I", "IR", |
"RI", "br", "na", "i" |
"RI", "na", "i" |
}; |
}; |
|
|
const char * const *man_macronames = __man_macronames; |
const char * const *man_macronames = __man_macronames; |
Line 182 man_node_append(struct man *man, struct man_node *p) |
|
Line 195 man_node_append(struct man *man, struct man_node *p) |
|
abort(); |
abort(); |
/* NOTREACHED */ |
/* NOTREACHED */ |
} |
} |
|
|
|
p->parent->nchild++; |
|
|
man->last = p; |
man->last = p; |
|
|
Line 250 man_node_free(struct man_node *p) |
|
Line 265 man_node_free(struct man_node *p) |
|
|
|
if (p->string) |
if (p->string) |
free(p->string); |
free(p->string); |
|
if (p->parent) |
|
p->parent->nchild--; |
free(p); |
free(p); |
} |
} |
|
|
Line 263 man_node_freelist(struct man_node *p) |
|
Line 280 man_node_freelist(struct man_node *p) |
|
if (p->next) |
if (p->next) |
man_node_freelist(p->next); |
man_node_freelist(p->next); |
|
|
|
assert(0 == p->nchild); |
man_node_free(p); |
man_node_free(p); |
} |
} |
|
|
Line 432 man_vwarn(struct man *man, int ln, int pos, const char |
|
Line 450 man_vwarn(struct man *man, int ln, int pos, const char |
|
} |
} |
|
|
|
|
|
int |
|
man_err(struct man *m, int line, int pos, int iserr, enum merr type) |
|
{ |
|
const char *p; |
|
|
|
p = __man_merrnames[(int)type]; |
|
assert(p); |
|
|
|
if (iserr) |
|
return(man_verr(m, line, pos, p)); |
|
|
|
return(man_vwarn(m, line, pos, p)); |
|
} |