=================================================================== RCS file: /cvs/mandoc/Attic/mdoctree.c,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- mandoc/Attic/mdoctree.c 2009/02/23 07:09:13 1.3 +++ mandoc/Attic/mdoctree.c 2009/03/15 07:08:53 1.7 @@ -1,4 +1,4 @@ - /* $Id: mdoctree.c,v 1.3 2009/02/23 07:09:13 kristaps Exp $ */ + /* $Id: mdoctree.c,v 1.7 2009/03/15 07:08:53 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -31,18 +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; - extern int optreset; - extern int optind; - 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); @@ -58,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; @@ -93,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]; @@ -106,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";