From 1a3bd1cb27795956ca71c666968330b81362d013 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Fri, 20 Aug 2010 22:51:29 +0000 Subject: .Bl -column phrases ignore spacing rules for trailing punctuation and render it just like normal text. Minimal fix of a formatting bug in operator(7) reported by ray@. --- TODO | 9 ++++++++- mdoc_term.c | 15 ++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index c1d33c2e..93791184 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ ************************************************************************ * Official mandoc TODO. -* $Id: TODO,v 1.41 2010/08/18 08:39:54 kristaps Exp $ +* $Id: TODO,v 1.42 2010/08/20 22:51:29 schwarze Exp $ ************************************************************************ ************************************************************************ @@ -56,6 +56,13 @@ - explicitly disallow nested `Bl -column', which would clobber internal flags defined for struct mdoc_macro +- inside `.Bl -column' phrases, punctuation is handled like normal + text, e.g. `.Bl -column .It Fl x . Ta ...' should give "-x -." + +- inside `.Bl -column' phrases, TERMP_IGNDELIM handling by `Pf' + is not safe, e.g. `.Bl -column .It Pf a b .' gives "ab." + but should give "ab ." + - set a meaningful default if no `Bl' list type is assigned - have a blank `It' head for `Bl -tag' not puke diff --git a/mdoc_term.c b/mdoc_term.c index 59c84767..1750b7df 100644 --- a/mdoc_term.c +++ b/mdoc_term.c @@ -1,4 +1,4 @@ -/* $Id: mdoc_term.c,v 1.181 2010/08/09 00:00:37 kristaps Exp $ */ +/* $Id: mdoc_term.c,v 1.182 2010/08/20 22:51:29 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * Copyright (c) 2010 Ingo Schwarze @@ -842,6 +842,8 @@ termp_it_pre(DECL_ARGS) if (MDOC_BODY == n->prev->type) p->flags |= TERMP_NOLPAD; + p->flags |= TERMP_IGNDELIM; + break; case (LIST_diag): if (MDOC_HEAD == n->type) @@ -1000,6 +1002,13 @@ termp_it_post(DECL_ARGS) p->flags &= ~TERMP_TWOSPACE; p->flags &= ~TERMP_NOLPAD; p->flags &= ~TERMP_HANG; + + /* + * TERMP_IGNDELIM is also set by `Pf', but it is safe + * to clear it here because `Pf' cannot contain `It'. + */ + + p->flags &= ~TERMP_IGNDELIM; } @@ -1804,6 +1813,10 @@ static void termp_pf_post(DECL_ARGS) { + /* + * XXX Resetting TERMP_IGNDELIM here is not safe + * because `Pf' can be used inside `Bl -column'. + */ p->flags &= ~TERMP_IGNDELIM; p->flags |= TERMP_NOSPACE; } -- cgit v1.2.3-56-ge451