]> git.cameronkatri.com Git - mandoc.git/blobdiff - tree.c
Generalize the mparse_alloc() and roff_alloc() functions by giving
[mandoc.git] / tree.c
diff --git a/tree.c b/tree.c
index 1430c737e00e5791e3cc010b2bcd4faff3c7bb9d..4e4170524f28f41fbad9061cff106834879670fb 100644 (file)
--- a/tree.c
+++ b/tree.c
@@ -1,6 +1,7 @@
-/*     $Id: tree.c,v 1.47 2011/09/18 14:14:15 schwarze Exp $ */
+/*     $Id: tree.c,v 1.51 2014/03/08 15:50:41 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2013, 2014 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -58,13 +59,11 @@ print_mdoc(const struct mdoc_node *n, int indent)
 {
        const char       *p, *t;
        int               i, j;
-       size_t            argc, sz;
-       char            **params;
+       size_t            argc;
        struct mdoc_argv *argv;
 
        argv = NULL;
-       argc = sz = 0;
-       params = NULL;
+       argc = 0;
        t = p = NULL;
 
        switch (n->type) {
@@ -161,11 +160,14 @@ print_mdoc(const struct mdoc_node *n, int indent)
                        if (argv[i].sz > 0)
                                printf(" ]");
                }
-               
-               for (i = 0; i < (int)sz; i++)
-                       printf(" [%s]", params[i]);
 
-               printf(" %d:%d\n", n->line, n->pos);
+               putchar(' ');
+               if (MDOC_LINE & n->flags)
+                       putchar('*');
+               printf("%d:%d", n->line, n->pos);
+               if (n->lastline != n->line)
+                       printf("-%d", n->lastline);
+               putchar('\n');
        }
 
        if (n->child)
@@ -250,7 +252,10 @@ print_man(const struct man_node *n, int indent)
        } else {
                for (i = 0; i < indent; i++)
                        putchar('\t');
-               printf("%s (%s) %d:%d\n", p, t, n->line, n->pos);
+               printf("%s (%s) ", p, t);
+               if (MAN_LINE & n->flags)
+                       putchar('*');
+               printf("%d:%d\n", n->line, n->pos);
        }
 
        if (n->child)