=================================================================== RCS file: /cvs/mandoc/tree.c,v retrieving revision 1.29 retrieving revision 1.33 diff -u -p -r1.29 -r1.33 --- mandoc/tree.c 2011/01/01 22:27:08 1.29 +++ mandoc/tree.c 2011/02/06 21:44:36 1.33 @@ -1,4 +1,4 @@ -/* $Id: tree.c,v 1.29 2011/01/01 22:27:08 kristaps Exp $ */ +/* $Id: tree.c,v 1.33 2011/02/06 21:44:36 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -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 */ @@ -92,6 +92,9 @@ print_mdoc(const struct mdoc_node *n, int indent) case (MDOC_TBL): t = "tbl"; break; + case (MDOC_EQN): + t = "eqn"; + break; default: abort(); /* NOTREACHED */ @@ -128,6 +131,9 @@ print_mdoc(const struct mdoc_node *n, int indent) break; case (MDOC_TBL): break; + case (MDOC_EQN): + p = "eqn"; + break; case (MDOC_ROOT): p = "root"; break; @@ -136,13 +142,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++) { @@ -198,6 +204,9 @@ print_man(const struct man_node *n, int indent) case (MAN_TBL): t = "tbl"; break; + case (MAN_EQN): + t = "eqn"; + break; default: abort(); /* NOTREACHED */ @@ -223,19 +232,22 @@ print_man(const struct man_node *n, int indent) break; case (MAN_TBL): break; + case (MAN_EQN): + p = "eqn"; + break; default: abort(); /* 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,10 +258,14 @@ 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; + int i; + for (i = 0; i < indent; i++) + putchar('\t'); + printf("tbl: "); switch (sp->pos) { @@ -278,7 +294,12 @@ print_span(const struct tbl_span *sp) default: break; } - printf("[%s%s]", dp->string, dp->layout ? "" : "*"); + printf("[\"%s\"", dp->string ? dp->string : ""); + if (dp->spans) + printf("(%d)", dp->spans); + if (NULL == dp->layout) + putchar('*'); + putchar(']'); if (dp->next) putchar(' '); }