summaryrefslogtreecommitdiffstatshomepage
path: root/term.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-02-26 14:56:27 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-02-26 14:56:27 +0000
commit6bdbfd3d4d8125256b009166659cdbfa09434ada (patch)
tree36a5cdc91b849faef88f4e744e0a23ab77ae72de /term.c
parent0aa4f25b79210adba71044d7536f78537c7b1bc9 (diff)
downloadmandoc-6bdbfd3d4d8125256b009166659cdbfa09434ada.tar.gz
mandoc-6bdbfd3d4d8125256b009166659cdbfa09434ada.tar.zst
mandoc-6bdbfd3d4d8125256b009166659cdbfa09434ada.zip
Lists (scoped elements) now put delims in-scope.
Diffstat (limited to 'term.c')
-rw-r--r--term.c31
1 files changed, 9 insertions, 22 deletions
diff --git a/term.c b/term.c
index 22471e92..18951322 100644
--- a/term.c
+++ b/term.c
@@ -1,4 +1,4 @@
-/* $Id: term.c,v 1.23 2009/02/25 23:18:50 kristaps Exp $ */
+/* $Id: term.c,v 1.24 2009/02/26 14:56:27 kristaps Exp $ */
/*
* Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -381,7 +381,7 @@ termp_it_pre(DECL_ARGS)
/* Get our list type. */
- for (i = 0; i < (int)bl->argc; i++)
+ for (type = -1, i = 0; i < (int)bl->argc; i++)
switch (bl->argv[i].arg) {
case (MDOC_Bullet):
/* FALLTHROUGH */
@@ -391,27 +391,19 @@ termp_it_pre(DECL_ARGS)
/* FALLTHROUGH */
case (MDOC_Hyphen):
/* FALLTHROUGH */
- case (MDOC_Item):
- /* FALLTHROUGH */
case (MDOC_Tag):
/* FALLTHROUGH */
case (MDOC_Ohang):
type = bl->argv[i].arg;
i = (int)bl->argc;
break;
- case (MDOC_Inset):
- /* FALLTHROUGH */
- case (MDOC_Hang):
- /* FALLTHROUGH */
- case (MDOC_Diag):
- /* FALLTHROUGH */
- case (MDOC_Column):
+ default:
errx(1, "list type not supported");
/* NOTREACHED */
- default:
- break;
}
+ assert(-1 != type);
+
/* Save our existing (inherited) margin and offset. */
pair->offset = p->offset;
@@ -419,7 +411,6 @@ termp_it_pre(DECL_ARGS)
/* Get list width and offset. */
- /* FIXME: auto-size. */
i = arg_getattr(MDOC_Width, bl->argc, bl->argv);
width = i >= 0 ? arg_width(&bl->argv[i]) : 0;
@@ -439,6 +430,7 @@ termp_it_pre(DECL_ARGS)
width = width > 6 ? width : 6;
break;
case (MDOC_Tag):
+ /* FIXME: auto-size. */
if (0 == width)
errx(1, "need non-zero -width");
break;
@@ -465,7 +457,7 @@ termp_it_pre(DECL_ARGS)
else if (MDOC_BODY == node->type)
p->flags |= TERMP_NOLPAD;
break;
- case (MDOC_Ohang):
+ default:
break;
}
@@ -475,6 +467,7 @@ termp_it_pre(DECL_ARGS)
*/
tp = NULL;
+
if (MDOC_HEAD == node->type) {
if (arg_hasattr(MDOC_Bullet, bl->argc, bl->argv))
tp = "\\[bu]";
@@ -488,8 +481,6 @@ termp_it_pre(DECL_ARGS)
}
if (arg_hasattr(MDOC_Hyphen, bl->argc, bl->argv))
tp = "\\-";
- if (arg_hasattr(MDOC_Item, bl->argc, bl->argv))
- tp = "";
}
/* Margin control. */
@@ -505,23 +496,19 @@ termp_it_pre(DECL_ARGS)
/* FALLTHROUGH */
case (MDOC_Hyphen):
/* FALLTHROUGH */
- case (MDOC_Item):
- /* FALLTHROUGH */
case (MDOC_Tag):
if (MDOC_HEAD == node->type)
p->rmargin = p->offset + width;
else if (MDOC_BODY == node->type)
p->offset += width;
break;
- case (MDOC_Ohang):
+ default:
break;
}
if (NULL == tp)
return(1);
- /* XXX - ignoring children. */
-
word(p, tp);
return(0);
}