=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/tree.c,v retrieving revision 1.55 retrieving revision 1.56 diff -c -r1.55 -r1.56 *** src/usr.bin/mandoc/tree.c 2020/04/07 22:45:37 1.55 --- src/usr.bin/mandoc/tree.c 2020/04/08 11:54:14 1.56 *************** *** 1,4 **** ! /* $OpenBSD: tree.c,v 1.55 2020/04/07 22:45:37 schwarze Exp $ */ /* * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze * Copyright (c) 2008, 2009, 2011, 2014 Kristaps Dzonsons --- 1,4 ---- ! /* $OpenBSD: tree.c,v 1.56 2020/04/08 11:54:14 schwarze Exp $ */ /* * Copyright (c) 2013-2015, 2017-2020 Ingo Schwarze * Copyright (c) 2008, 2009, 2011, 2014 Kristaps Dzonsons *************** *** 34,39 **** --- 34,40 ---- #include "eqn.h" #include "main.h" + static void print_attr(const struct roff_node *); static void print_box(const struct eqn_box *, int); static void print_cellt(enum tbl_cellt); static void print_man(const struct roff_node *, int); *************** *** 189,226 **** if (argv[i].sz > 0) printf(" ]"); } ! ! putchar(' '); ! if (n->flags & NODE_DELIMO) ! putchar('('); ! if (n->flags & NODE_LINE) ! putchar('*'); ! printf("%d:%d", n->line, n->pos + 1); ! if (n->flags & NODE_DELIMC) ! putchar(')'); ! if (n->flags & NODE_EOS) ! putchar('.'); ! if (n->flags & NODE_ID) { ! printf(" ID"); ! if (n->string != NULL) ! printf("=%s", n->string); ! } ! if (n->flags & NODE_HREF) { ! printf(" HREF"); ! if (n->string != NULL && (n->flags & NODE_ID) == 0) ! printf("=%s", n->string); ! } ! if (n->flags & NODE_BROKEN) ! printf(" BROKEN"); ! if (n->flags & NODE_NOFILL) ! printf(" NOFILL"); ! if (n->flags & NODE_NOSRC) ! printf(" NOSRC"); ! if (n->flags & NODE_NOPRT) ! printf(" NOPRT"); ! putchar('\n'); } - if (n->eqn) print_box(n->eqn->first, indent + 4); if (n->child) --- 190,197 ---- if (argv[i].sz > 0) printf(" ]"); } ! print_attr(n); } if (n->eqn) print_box(n->eqn->first, indent + 4); if (n->child) *************** *** 301,324 **** } else { for (i = 0; i < indent; i++) putchar(' '); ! printf("%s (%s) ", p, t); ! if (n->flags & NODE_LINE) ! putchar('*'); ! printf("%d:%d", n->line, n->pos + 1); ! if (n->flags & NODE_DELIMC) ! putchar(')'); ! if (n->flags & NODE_EOS) ! putchar('.'); ! if (n->flags & NODE_ID) { ! printf(" ID"); ! if (n->string != NULL) ! printf("=%s", n->string); ! } ! if (n->flags & NODE_NOFILL) ! printf(" NOFILL"); ! putchar('\n'); } - if (n->eqn) print_box(n->eqn->first, indent + 4); if (n->child) --- 272,280 ---- } else { for (i = 0; i < indent; i++) putchar(' '); ! printf("%s (%s)", p, t); ! print_attr(n); } if (n->eqn) print_box(n->eqn->first, indent + 4); if (n->child) *************** *** 326,331 **** --- 282,321 ---- (n->type == ROFFT_BLOCK ? 2 : 4)); if (n->next) print_man(n->next, indent); + } + + static void + print_attr(const struct roff_node *n) + { + putchar(' '); + if (n->flags & NODE_DELIMO) + putchar('('); + if (n->flags & NODE_LINE) + putchar('*'); + printf("%d:%d", n->line, n->pos + 1); + if (n->flags & NODE_DELIMC) + putchar(')'); + if (n->flags & NODE_EOS) + putchar('.'); + if (n->flags & NODE_ID) { + printf(" ID"); + if (n->flags & NODE_HREF) + printf("=HREF"); + } else if (n->flags & NODE_HREF) + printf(" HREF"); + else if (n->tag != NULL) + printf(" STRAYTAG"); + if (n->tag != NULL) + printf("=%s", n->tag); + if (n->flags & NODE_BROKEN) + printf(" BROKEN"); + if (n->flags & NODE_NOFILL) + printf(" NOFILL"); + if (n->flags & NODE_NOSRC) + printf(" NOSRC"); + if (n->flags & NODE_NOPRT) + printf(" NOPRT"); + putchar('\n'); } static void