aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tree.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-01-02 20:34:05 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-01-02 20:34:05 +0000
commit298f818bf95cddb04543ee3777a239b4d7a7fe6d (patch)
treefd32680ae20bf9ab566a68afcc850e60e22661e6 /tree.c
parent7d5e0e2a6c6340e24187d9edfe8bfe7bb441ffd8 (diff)
downloadmandoc-298f818bf95cddb04543ee3777a239b4d7a7fe6d.tar.gz
mandoc-298f818bf95cddb04543ee3777a239b4d7a7fe6d.tar.zst
mandoc-298f818bf95cddb04543ee3777a239b4d7a7fe6d.zip
Fix table to print nicely (merging error). Also have -Ttree push out some
header stuff.
Diffstat (limited to 'tree.c')
-rw-r--r--tree.c41
1 files changed, 29 insertions, 12 deletions
diff --git a/tree.c b/tree.c
index d488c155..52e120f9 100644
--- a/tree.c
+++ b/tree.c
@@ -1,4 +1,4 @@
-/* $Id: tree.c,v 1.29 2011/01/01 22:27:08 kristaps Exp $ */
+/* $Id: tree.c,v 1.30 2011/01/02 20:34:05 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -30,7 +30,7 @@
static void print_mdoc(const struct mdoc_node *, int);
static void print_man(const struct man_node *, int);
-static void print_span(const struct tbl_span *);
+static void print_span(const struct tbl_span *, int);
/* ARGSUSED */
@@ -136,13 +136,13 @@ print_mdoc(const struct mdoc_node *n, int indent)
/* NOTREACHED */
}
- for (i = 0; i < indent; i++)
- putchar('\t');
-
if (n->span) {
assert(NULL == p);
- print_span(n->span);
+ print_span(n->span, indent);
} else {
+ for (i = 0; i < indent; i++)
+ putchar('\t');
+
printf("%s (%s)", p, t);
for (i = 0; i < (int)argc; i++) {
@@ -228,14 +228,14 @@ print_man(const struct man_node *n, int indent)
/* NOTREACHED */
}
- for (i = 0; i < indent; i++)
- putchar('\t');
-
if (n->span) {
assert(NULL == p);
- print_span(n->span);
- } else
+ print_span(n->span, indent);
+ } else {
+ for (i = 0; i < indent; i++)
+ putchar('\t');
printf("%s (%s) %d:%d", p, t, n->line, n->pos);
+ }
putchar('\n');
@@ -246,9 +246,26 @@ print_man(const struct man_node *n, int indent)
}
static void
-print_span(const struct tbl_span *sp)
+print_span(const struct tbl_span *sp, int indent)
{
const struct tbl_dat *dp;
+ const struct tbl_head *hp;
+ int i;
+
+ if (TBL_SPAN_FIRST & sp->flags) {
+ for (i = 0; i < indent; i++)
+ putchar('\t');
+ printf("tbl-head: ");
+ for (hp = sp->head; hp; hp = hp->next) {
+ printf("[%d]", hp->width);
+ if (hp->next)
+ putchar(' ');
+ }
+ putchar('\n');
+ }
+
+ for (i = 0; i < indent; i++)
+ putchar('\t');
printf("tbl: ");