aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--TODO9
-rw-r--r--mdoc_term.c15
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 <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -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;
}