version 1.6, 2009/03/25 16:07:36 |
version 1.7, 2009/03/25 21:03:13 |
|
|
*/ |
*/ |
#include <assert.h> |
#include <assert.h> |
#include <ctype.h> |
#include <ctype.h> |
#include <err.h> |
|
#include <stdarg.h> |
#include <stdarg.h> |
#include <stdlib.h> |
#include <stdlib.h> |
#include <stdio.h> |
#include <stdio.h> |
Line 83 man_free(struct man *man) |
|
Line 82 man_free(struct man *man) |
|
|
|
|
|
struct man * |
struct man * |
man_alloc(void *data, const struct man_cb *cb) |
man_alloc(void *data, int pflags, const struct man_cb *cb) |
{ |
{ |
struct man *p; |
struct man *p; |
|
|
Line 98 man_alloc(void *data, const struct man_cb *cb) |
|
Line 97 man_alloc(void *data, const struct man_cb *cb) |
|
|
|
p->htab = man_hash_alloc(); |
p->htab = man_hash_alloc(); |
p->data = data; |
p->data = data; |
|
p->pflags = pflags; |
|
|
return(p); |
return(p); |
} |
} |
|
|
Line 287 man_pmacro(struct man *m, int ln, char *buf) |
|
Line 288 man_pmacro(struct man *m, int ln, char *buf) |
|
i++; |
i++; |
if (0 == buf[i]) |
if (0 == buf[i]) |
return(1); |
return(1); |
warnx("invalid syntax"); |
return(man_vwarn(m, ln, 0, "invalid syntax")); |
return(0); |
|
} |
} |
|
|
if (buf[1] && '\\' == buf[1]) |
if (buf[1] && '\\' == buf[1]) |
Line 307 man_pmacro(struct man *m, int ln, char *buf) |
|
Line 307 man_pmacro(struct man *m, int ln, char *buf) |
|
mac[i - 1] = 0; |
mac[i - 1] = 0; |
|
|
if (i == 5 || i <= 1) { |
if (i == 5 || i <= 1) { |
warnx("unknown macro: %s", mac); |
if ( ! (MAN_IGN_MACRO & m->pflags)) { |
goto err; |
(void)man_verr(m, ln, 1, |
} |
"ill-formed macro: %s", mac); |
|
goto err; |
|
} |
|
if ( ! man_vwarn(m, ln, 1, "ill-formed macro: %s", mac)) |
|
goto err; |
|
return(1); |
|
} |
|
|
if (MAN_MAX == (c = man_hash_find(m->htab, mac))) { |
if (MAN_MAX == (c = man_hash_find(m->htab, mac))) { |
warnx("unknown macro: %s", mac); |
if ( ! (MAN_IGN_MACRO & m->pflags)) { |
goto err; |
(void)man_verr(m, ln, 1, |
|
"unknown macro: %s", mac); |
|
goto err; |
|
} |
|
if ( ! man_vwarn(m, ln, 1, "unknown macro: %s", mac)) |
|
goto err; |
|
return(1); |
} |
} |
|
|
/* The macro is sane. Jump to the next word. */ |
/* The macro is sane. Jump to the next word. */ |