=================================================================== RCS file: /cvs/mandoc/Attic/mdoctree.c,v retrieving revision 1.4 retrieving revision 1.8 diff -u -p -r1.4 -r1.8 --- mandoc/Attic/mdoctree.c 2009/02/23 12:45:19 1.4 +++ mandoc/Attic/mdoctree.c 2009/03/16 23:37:28 1.8 @@ -1,6 +1,6 @@ - /* $Id: mdoctree.c,v 1.4 2009/02/23 12:45:19 kristaps Exp $ */ +/* $Id: mdoctree.c,v 1.8 2009/03/16 23:37:28 kristaps Exp $ */ /* - * Copyright (c) 2008 Kristaps Dzonsons + * Copyright (c) 2008, 2009 Kristaps Dzonsons * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the @@ -31,15 +31,23 @@ static void doprint(const struct mdoc_node *, int); int main(int argc, char *argv[]) { - struct mmain *p; + struct mmain *p; const struct mdoc *mdoc; + int c; + char *in; p = mmain_alloc(); - if ( ! mmain_getopt(p, argc, argv, NULL, NULL, NULL, NULL)) - mmain_exit(p, 1); + c = mmain_getopt(p, argc, argv, NULL, + "[infile]", NULL, NULL, NULL); - if (NULL == (mdoc = mmain_mdoc(p))) + argv += c; + if ((argc -= c) > 0) + in = *argv++; + else + in = "-"; + + if (NULL == (mdoc = mmain_mdoc(p, in))) mmain_exit(p, 1); doprint(mdoc_node(mdoc), 0); @@ -55,7 +63,7 @@ doprint(const struct mdoc_node *n, int indent) int i, j; size_t argc, sz; char **params; - struct mdoc_arg *argv; + struct mdoc_argv *argv; argv = NULL; argc = sz = 0; @@ -90,7 +98,7 @@ doprint(const struct mdoc_node *n, int indent) switch (n->type) { case (MDOC_TEXT): - p = n->data.text.string; + p = n->string; break; case (MDOC_BODY): p = mdoc_macronames[n->tok]; @@ -103,13 +111,17 @@ doprint(const struct mdoc_node *n, int indent) break; case (MDOC_ELEM): p = mdoc_macronames[n->tok]; - argv = n->data.elem.argv; - argc = n->data.elem.argc; + if (n->args) { + argv = n->args->argv; + argc = n->args->argc; + } break; case (MDOC_BLOCK): p = mdoc_macronames[n->tok]; - argv = n->data.block.argv; - argc = n->data.block.argc; + if (n->args) { + argv = n->args->argv; + argc = n->args->argc; + } break; case (MDOC_ROOT): p = "root";