-
- if (MAN_MAX == (c = man_hash_find(m->htab, mac))) {
- if ( ! (MAN_IGN_MACRO & m->pflags)) {
- (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. */
-
- while (buf[i] && ' ' == buf[i])
- i++;
-
- /* Begin recursive parse sequence. */
-
- if ( ! man_macro(m, c, ln, 1, &i, buf))
- goto err;
-
- return(1);
-
-err: /* Error out. */
-
- m->flags |= MAN_HALT;
- return(0);
-}
-
-
-int
-man_verr(struct man *man, int ln, int pos, const char *fmt, ...)
-{
- char buf[256];
- va_list ap;
-
- if (NULL == man->cb.man_err)
- return(0);
-
- va_start(ap, fmt);
- (void)vsnprintf(buf, sizeof(buf) - 1, fmt, ap);
- va_end(ap);
- return((*man->cb.man_err)(man->data, ln, pos, buf));