=================================================================== RCS file: /cvs/mandoc/man_term.c,v retrieving revision 1.198 retrieving revision 1.201 diff -u -p -r1.198 -r1.201 --- mandoc/man_term.c 2017/05/07 17:31:45 1.198 +++ mandoc/man_term.c 2017/06/04 18:50:35 1.201 @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.198 2017/05/07 17:31:45 schwarze Exp $ */ +/* $Id: man_term.c,v 1.201 2017/06/04 18:50:35 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2015, 2017 Ingo Schwarze @@ -68,6 +68,7 @@ static void print_bvspace(struct termp *, const struct roff_node *, int); static int pre_B(DECL_ARGS); +static int pre_DT(DECL_ARGS); static int pre_HP(DECL_ARGS); static int pre_I(DECL_ARGS); static int pre_IP(DECL_ARGS); @@ -117,7 +118,7 @@ static const struct termact __termacts[MAN_MAX - MAN_T { pre_literal, NULL, 0 }, /* fi */ { NULL, NULL, 0 }, /* RE */ { pre_RS, post_RS, 0 }, /* RS */ - { pre_ign, NULL, 0 }, /* DT */ + { pre_DT, NULL, 0 }, /* DT */ { pre_ign, NULL, MAN_NOTEXT }, /* UC */ { pre_PD, NULL, MAN_NOTEXT }, /* PD */ { pre_ign, NULL, 0 }, /* AT */ @@ -140,7 +141,6 @@ terminal_man(void *arg, const struct roff_man *man) size_t save_defindent; p = (struct termp *)arg; - p->overstep = 0; p->rmargin = p->maxrmargin = p->defrmargin; term_tab_set(p, NULL); term_tab_set(p, "T"); @@ -392,6 +392,15 @@ pre_in(DECL_ARGS) } static int +pre_DT(DECL_ARGS) +{ + term_tab_set(p, NULL); + term_tab_set(p, "T"); + term_tab_set(p, ".5i"); + return 0; +} + +static int pre_HP(DECL_ARGS) { struct roffsu su; @@ -863,10 +872,11 @@ print_man_node(DECL_ARGS) * If we have a space as the first character, break * before printing the line's data. */ - if ('\0' == *n->string) { + if (*n->string == '\0') { term_vspace(p); return; - } else if (' ' == *n->string && NODE_LINE & n->flags) + } else if (*n->string == ' ' && n->flags & NODE_LINE && + (p->flags & TERMP_NONEWLINE) == 0) term_newln(p); term_word(p, n->string);