=================================================================== RCS file: /cvs/mandoc/Attic/dummy.c,v retrieving revision 1.8 retrieving revision 1.10 diff -u -p -r1.8 -r1.10 --- mandoc/Attic/dummy.c 2008/11/27 14:02:41 1.8 +++ mandoc/Attic/dummy.c 2008/11/27 17:27:50 1.10 @@ -1,4 +1,4 @@ -/* $Id: dummy.c,v 1.8 2008/11/27 14:02:41 kristaps Exp $ */ +/* $Id: dummy.c,v 1.10 2008/11/27 17:27:50 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -29,13 +29,18 @@ #define strlcat strncat #endif -static int md_dummy_blk_in(int); -static int md_dummy_blk_out(int); -static int md_dummy_text_in(int, int *, char **); -static int md_dummy_text_out(int); +static int md_dummy_blk_in(const struct md_args *, int); +static int md_dummy_blk_out(const struct md_args *, int); +static int md_dummy_text_in(const struct md_args *, int, + int *, char **); +static int md_dummy_text_out(const struct md_args *, int); static int md_dummy_special(int); static int md_dummy_head(void); static int md_dummy_tail(void); +static void md_dummy_msg(const struct md_args *, + enum roffmsg, const char *, + const char *, const char *, + int, char *); static void dbg_prologue(const char *); static void dbg_epilogue(void); @@ -91,6 +96,7 @@ md_init_dummy(const struct md_args *args, p->cb.roffblkin = md_dummy_blk_in; p->cb.roffblkout = md_dummy_blk_out; p->cb.roffspecial = md_dummy_special; + p->cb.roffmsg = md_dummy_msg; p->tree = roff_alloc(args, mbuf, rbuf, &p->cb); @@ -154,9 +160,12 @@ md_dummy_special(int tok) static int -md_dummy_blk_in(int tok) +md_dummy_blk_in(const struct md_args *args, int tok) { + if (args->verbosity < 1) + return(1); + dbg_prologue("blk"); (void)strlcat(dbg_line, toknames[tok], sizeof(dbg_line) - 1); dbg_epilogue(); @@ -167,19 +176,25 @@ md_dummy_blk_in(int tok) static int -md_dummy_blk_out(int tok) +md_dummy_blk_out(const struct md_args *args, int tok) { + if (args->verbosity < 1) + return(1); + dbg_lvl--; return(1); } -/* ARGSUSED */ static int -md_dummy_text_in(int tok, int *argcp, char **argvp) +md_dummy_text_in(const struct md_args *args, + int tok, int *argcp, char **argvp) { + if (args->verbosity < 1) + return(1); + dbg_prologue("text"); (void)strlcat(dbg_line, toknames[tok], sizeof(dbg_line) - 1); (void)strlcat(dbg_line, " ", sizeof(dbg_line) - 1); @@ -205,8 +220,32 @@ md_dummy_text_in(int tok, int *argcp, char **argvp) static int -md_dummy_text_out(int tok) +md_dummy_text_out(const struct md_args *args, int tok) { return(1); } + + +static void +md_dummy_msg(const struct md_args *args, enum roffmsg lvl, + const char *buf, const char *pos, + const char *name, int line, char *msg) +{ + char *p; + + switch (lvl) { + case (ROFF_WARN): + if ( ! (MD_WARN_ALL & args->warnings)) + return; + p = "warning"; + break; + case (ROFF_ERROR): + p = "error"; + break; + } + + assert(pos >= buf); + (void)fprintf(stderr, "%s:%d: %s: %s\n", name, line, p, msg); +} +