diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2008-11-25 12:14:02 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2008-11-25 12:14:02 +0000 |
commit | 6b6936f94277056de963ce05d2dbd24e55ba6bed (patch) | |
tree | d7f1a0edba68ff98aeff2adb77c5f19ad9ae92c8 /dummy.c | |
parent | 808720d8960317a700e6430d570b49ceffceab47 (diff) | |
download | mandoc-6b6936f94277056de963ce05d2dbd24e55ba6bed.tar.gz |
Single call-back for filters.
Removed verbose flag.
Added more macros and arguments.
Diffstat (limited to 'dummy.c')
-rw-r--r-- | dummy.c | 48 |
1 files changed, 22 insertions, 26 deletions
@@ -25,25 +25,25 @@ #include "libmdocml.h" #include "private.h" +#ifdef __Linux__ +#define strlcat strncat +#endif -static roffin in[ROFF_MAX]; -static roffout out[ROFF_MAX]; -static roffblkin blkin[ROFF_MAX]; -static roffblkout blkout[ROFF_MAX]; +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(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 void dbg_indent(void); -static void dbg_indent(void); - -static int dbg_lvl = 0; +static int dbg_lvl = 0; struct md_dummy { struct rofftree *tree; }; +static const char *const toknames[ROFF_MAX] = ROFF_NAMES; + static void dbg_indent(void) @@ -53,8 +53,10 @@ dbg_indent(void) *buf = 0; assert(dbg_lvl >= 0); + + /* LINTED */ for (i = 0; i < dbg_lvl; i++) - (void)strncat(buf, " ", sizeof(buf) - 1); + (void)strlcat(buf, " ", sizeof(buf) - 1); (void)printf("%s", buf); } @@ -65,7 +67,7 @@ md_dummy_blk_in(int tok) { dbg_indent(); - (void)printf("+++blk\n"); + (void)printf("%s\n", toknames[tok]); dbg_lvl++; return(1); } @@ -78,17 +80,18 @@ md_dummy_blk_out(int tok) assert(dbg_lvl > 0); dbg_lvl--; dbg_indent(); - (void)printf("---blk\n"); + (void)printf("%s\n", toknames[tok]); return(1); } +/* ARGSUSED */ static int md_dummy_text_in(int tok, int *argcp, char **argvp) { dbg_indent(); - (void)printf("in: text\n"); + (void)printf("%s\n", toknames[tok]); return(1); } @@ -98,7 +101,7 @@ md_dummy_text_out(int tok) { dbg_indent(); - (void)printf("out: text\n"); + (void)printf("%s\n", toknames[tok]); return(1); } @@ -132,22 +135,15 @@ md_init_dummy(const struct md_args *args, struct md_mbuf *mbuf, const struct md_rbuf *rbuf) { struct md_dummy *p; - int i; - - for (i = 0; i < ROFF_MAX; i++) { - in[i] = md_dummy_text_in; - out[i] = md_dummy_text_out; - blkin[i] = md_dummy_blk_in; - blkout[i] = md_dummy_blk_out; - } if (NULL == (p = malloc(sizeof(struct md_dummy)))) { warn("malloc"); return(NULL); } - p->tree = roff_alloc - (args, mbuf, rbuf, in, out, blkin, blkout); + p->tree = roff_alloc(args, mbuf, rbuf, + md_dummy_text_in, md_dummy_text_out, + md_dummy_blk_in, md_dummy_blk_out); if (NULL == p->tree) { free(p); |