version 1.86, 2010/08/08 14:51:32 |
version 1.87, 2010/08/20 01:02:07 |
Line 56 static int man_ptext(struct man *, int, char *, int) |
|
Line 56 static int man_ptext(struct man *, int, char *, int) |
|
static int man_pmacro(struct man *, int, char *, int); |
static int man_pmacro(struct man *, int, char *, int); |
static void man_free1(struct man *); |
static void man_free1(struct man *); |
static void man_alloc1(struct man *); |
static void man_alloc1(struct man *); |
static int macrowarn(struct man *, int, const char *, int); |
|
|
|
|
|
const struct man_node * |
const struct man_node * |
Line 94 man_free(struct man *man) |
|
Line 93 man_free(struct man *man) |
|
|
|
|
|
struct man * |
struct man * |
man_alloc(struct regset *regs, void *data, |
man_alloc(struct regset *regs, void *data, mandocmsg msg) |
int pflags, mandocmsg msg) |
|
{ |
{ |
struct man *p; |
struct man *p; |
|
|
Line 103 man_alloc(struct regset *regs, void *data, |
|
Line 101 man_alloc(struct regset *regs, void *data, |
|
|
|
man_hash_init(); |
man_hash_init(); |
p->data = data; |
p->data = data; |
p->pflags = pflags; |
|
p->msg = msg; |
p->msg = msg; |
p->regs = regs; |
p->regs = regs; |
|
|
|
|
} |
} |
|
|
|
|
static int |
|
macrowarn(struct man *m, int ln, const char *buf, int offs) |
|
{ |
|
int rc; |
|
|
|
rc = man_vmsg(m, MANDOCERR_MACRO, ln, offs, |
|
"unknown macro: %s%s", |
|
buf, strlen(buf) > 3 ? "..." : ""); |
|
|
|
return(MAN_IGN_MACRO & m->pflags ? rc : 0); |
|
} |
|
|
|
|
|
int |
int |
man_pmacro(struct man *m, int ln, char *buf, int offs) |
man_pmacro(struct man *m, int ln, char *buf, int offs) |
{ |
{ |
Line 490 man_pmacro(struct man *m, int ln, char *buf, int offs) |
|
Line 474 man_pmacro(struct man *m, int ln, char *buf, int offs) |
|
mac[j++] = buf[i++]; |
mac[j++] = buf[i++]; |
mac[j] = '\0'; |
mac[j] = '\0'; |
|
|
if (j == 4 || j < 1) { |
tok = (j > 0 && j < 4) ? man_hash_find(mac) : MAN_MAX; |
if ( ! macrowarn(m, ln, mac, ppos)) |
if (MAN_MAX == tok) { |
goto err; |
man_vmsg(m, MANDOCERR_MACRO, ln, ppos, |
return(1); |
"unknown macro: %s%s", |
} |
buf, strlen(buf) > 3 ? "..." : ""); |
|
|
if (MAN_MAX == (tok = man_hash_find(mac))) { |
|
if ( ! macrowarn(m, ln, mac, ppos)) |
|
goto err; |
|
return(1); |
return(1); |
} |
} |
|
|