=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/man.c,v retrieving revision 1.14 retrieving revision 1.15 diff -c -r1.14 -r1.15 *** src/usr.bin/mandoc/man.c 2009/10/19 10:20:24 1.14 --- src/usr.bin/mandoc/man.c 2009/10/27 21:40:07 1.15 *************** *** 1,4 **** ! /* $Id: man.c,v 1.14 2009/10/19 10:20:24 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * --- 1,4 ---- ! /* $Id: man.c,v 1.15 2009/10/27 21:40:07 schwarze Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * *************** *** 40,46 **** "expected block head arguments", /* WHEADARGS */ "expected block body arguments", /* WBODYARGS */ "expected empty block head", /* WNHEADARGS */ - "unknown macro", /* WMACRO */ "ill-formed macro", /* WMACROFORM */ "scope open on exit", /* WEXITSCOPE */ "no scope context", /* WNOSCOPE */ --- 40,45 ---- *************** *** 56,62 **** "R", "B", "I", "IR", "RI", "na", "i", "sp", "nf", "fi", "r", "RE", ! "RS", "DT", "UC" }; const char * const *man_macronames = __man_macronames; --- 55,61 ---- "R", "B", "I", "IR", "RI", "na", "i", "sp", "nf", "fi", "r", "RE", ! "RS", "DT", "UC", "PD" }; const char * const *man_macronames = __man_macronames; *************** *** 71,76 **** --- 70,76 ---- static int man_alloc1(struct man *); static int pstring(struct man *, int, int, const char *, size_t); + static int macrowarn(struct man *, int, const char *); const struct man_node * *************** *** 452,457 **** --- 452,469 ---- } + static int + macrowarn(struct man *m, int ln, const char *buf) + { + if ( ! (MAN_IGN_MACRO & m->pflags)) + return(man_verr(m, ln, 0, + "unknown macro: %s%s", + buf, strlen(buf) > 3 ? "..." : "")); + return(man_vwarn(m, ln, 0, "unknown macro: %s%s", + buf, strlen(buf) > 3 ? "..." : "")); + } + + int man_pmacro(struct man *m, int ln, char *buf) { *************** *** 506,516 **** } if (MAN_MAX == (c = man_hash_find(mac))) { ! if ( ! (MAN_IGN_MACRO & m->pflags)) { ! (void)man_perr(m, ln, ppos, WMACRO); ! goto err; ! } ! if ( ! man_pwarn(m, ln, ppos, WMACRO)) goto err; return(1); } --- 518,524 ---- } if (MAN_MAX == (c = man_hash_find(mac))) { ! if ( ! macrowarn(m, ln, mac)) goto err; return(1); }