=================================================================== RCS file: /cvs/mandoc/mdoc_term.c,v retrieving revision 1.86 retrieving revision 1.89 diff -u -p -r1.86 -r1.89 --- mandoc/mdoc_term.c 2009/10/03 19:02:45 1.86 +++ mandoc/mdoc_term.c 2009/10/13 10:57:25 1.89 @@ -1,4 +1,4 @@ -/* $Id: mdoc_term.c,v 1.86 2009/10/03 19:02:45 kristaps Exp $ */ +/* $Id: mdoc_term.c,v 1.89 2009/10/13 10:57:25 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -25,42 +25,9 @@ #include "term.h" #include "mdoc.h" +#include "chars.h" +#include "main.h" -/* FIXME: check HANG lists: they seem to be broken... : - * .Bl -hang -width Ds - * .It a - * b - * .It Fl f Ns Ar option... - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * . - * .It a sasd fasd as afsd sfad sfds sadfs sd sfd ssfad asfd - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * Override default compiler behaviour. See - * .Sx Compiler Options - * for details. - * .El - * - */ - #define INDENT 5 #define HALFINDENT 3 @@ -292,11 +259,24 @@ static void print_foot(DECL_ARGS); void -mdoc_run(struct termp *p, const struct mdoc *mdoc) +terminal_mdoc(void *arg, const struct mdoc *mdoc) { const struct mdoc_node *n; const struct mdoc_meta *m; + struct termp *p; + p = (struct termp *)arg; + + if (NULL == p->symtab) + switch (p->enc) { + case (TERMENC_ASCII): + p->symtab = chars_init(CHARS_ASCII); + break; + default: + abort(); + /* NOTREACHED */ + } + n = mdoc_node(mdoc); m = mdoc_meta(mdoc); @@ -1609,10 +1589,13 @@ termp_bd_pre(DECL_ARGS) return(1); for (nn = n->child; nn; nn = nn->next) { + p->flags |= TERMP_NOSPACE; print_node(p, pair, m, nn); if (NULL == nn->next) continue; if (nn->prev && nn->prev->line < nn->line) + term_flushln(p); + else if (NULL == nn->prev) term_flushln(p); }