=================================================================== RCS file: /cvs/mandoc/Attic/mlg.c,v retrieving revision 1.23 retrieving revision 1.27 diff -u -p -r1.23 -r1.27 --- mandoc/Attic/mlg.c 2008/12/09 17:09:12 1.23 +++ mandoc/Attic/mlg.c 2008/12/10 12:09:47 1.27 @@ -1,4 +1,4 @@ -/* $Id: mlg.c,v 1.23 2008/12/09 17:09:12 kristaps Exp $ */ +/* $Id: mlg.c,v 1.27 2008/12/10 12:09:47 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -24,21 +24,16 @@ #include #include -#include "private.h" #include "ml.h" /* TODO: literal tokens. */ -#define COLUMNS 72 -#define INDENT 4 -#define MAXINDENT 10 - enum md_tok { MD_TEXT, MD_INLINE_IN, MD_INLINE_OUT, MD_BLK_IN, - MD_BLK_OUT, + MD_BLK_OUT }; struct md_mlg { @@ -63,8 +58,10 @@ static int mlg_roffmsg(void *arg, const char *, const char *); static int mlg_roffhead(void *, const struct tm *, const char *, const char *, - enum roffmsec, const char *); -static int mlg_rofftail(void *); + enum roffmsec, enum roffvol); +static int mlg_rofftail(void *, const struct tm *, + const char *, const char *, + enum roffmsec, enum roffvol); static int mlg_roffin(void *, int, int *, const char **); static int mlg_roffdata(void *, int, @@ -239,14 +236,10 @@ mlg_endtag(struct md_mlg *p, enum md_ns ns, int tok) static int mlg_indent(struct md_mlg *p) { - size_t count; - count = p->indent > MAXINDENT ? - (size_t)MAXINDENT : p->indent; - count *= INDENT; - assert(0 == p->pos); - return(ml_putchars(p->mbuf, ' ', count, &p->pos)); + return(ml_putchars(p->mbuf, ' ', INDENT_SZ * + INDENT(p->indent), &p->pos)); } @@ -325,7 +318,7 @@ mlg_data(struct md_mlg *p, int space, if ( ! mlg_nstring(p, start, buf, sz)) return(0); - if (p->indent * INDENT + sz >= COLUMNS) + if (INDENT(p->indent) * INDENT_SZ + sz >= COLUMNS) if ( ! mlg_newline(p)) return(0); @@ -413,7 +406,7 @@ mlg_alloc(const struct md_args *args, static int mlg_roffhead(void *arg, const struct tm *tm, const char *os, - const char *title, enum roffmsec sec, const char *vol) + const char *title, enum roffmsec sec, enum roffvol vol) { struct md_mlg *p; @@ -422,7 +415,8 @@ mlg_roffhead(void *arg, const struct tm *tm, const cha mlg_mode(p, MD_BLK_IN); - if ( ! (*p->cbs.ml_begin)(p->mbuf, p->args, tm, os, title, sec, vol)) + if ( ! (*p->cbs.ml_begin)(p->mbuf, p->args, + tm, os, title, sec, vol)) return(0); p->indent++; @@ -431,7 +425,8 @@ mlg_roffhead(void *arg, const struct tm *tm, const cha static int -mlg_rofftail(void *arg) +mlg_rofftail(void *arg, const struct tm *tm, const char *os, + const char *title, enum roffmsec sec, enum roffvol vol) { struct md_mlg *p; @@ -442,11 +437,11 @@ mlg_rofftail(void *arg) if ( ! mlg_newline(p)) return(0); - if ( ! (*p->cbs.ml_end)(p->mbuf, p->args)) + if ( ! (*p->cbs.ml_end)(p->mbuf, p->args, + tm, os, title, sec, vol)) return(0); mlg_mode(p, MD_BLK_OUT); - return(mlg_newline(p)); } @@ -503,6 +498,7 @@ mlg_ref_special(struct md_mlg *p, int tok, } +/* ARGSUSED */ static int mlg_formatted_special(struct md_mlg *p, int tok, const char *start, const int *argc, const char **argv, const char **more)