version 1.3, 2009/02/23 07:09:13 |
version 1.8, 2009/03/16 23:37:28 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se> |
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@openbsd.org> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
* purpose with or without fee is hereby granted, provided that the |
* purpose with or without fee is hereby granted, provided that the |
Line 31 static void doprint(const struct mdoc_node *, int); |
|
Line 31 static void doprint(const struct mdoc_node *, int); |
|
int |
int |
main(int argc, char *argv[]) |
main(int argc, char *argv[]) |
{ |
{ |
struct mmain *p; |
struct mmain *p; |
const struct mdoc *mdoc; |
const struct mdoc *mdoc; |
|
int c; |
|
char *in; |
|
|
extern int optreset; |
|
extern int optind; |
|
|
|
p = mmain_alloc(); |
p = mmain_alloc(); |
|
|
if ( ! mmain_getopt(p, argc, argv, NULL, NULL, NULL, NULL)) |
c = mmain_getopt(p, argc, argv, NULL, |
mmain_exit(p, 1); |
"[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); |
mmain_exit(p, 1); |
|
|
doprint(mdoc_node(mdoc), 0); |
doprint(mdoc_node(mdoc), 0); |
Line 58 doprint(const struct mdoc_node *n, int indent) |
|
Line 63 doprint(const struct mdoc_node *n, int indent) |
|
int i, j; |
int i, j; |
size_t argc, sz; |
size_t argc, sz; |
char **params; |
char **params; |
struct mdoc_arg *argv; |
struct mdoc_argv *argv; |
|
|
argv = NULL; |
argv = NULL; |
argc = sz = 0; |
argc = sz = 0; |
Line 93 doprint(const struct mdoc_node *n, int indent) |
|
Line 98 doprint(const struct mdoc_node *n, int indent) |
|
|
|
switch (n->type) { |
switch (n->type) { |
case (MDOC_TEXT): |
case (MDOC_TEXT): |
p = n->data.text.string; |
p = n->string; |
break; |
break; |
case (MDOC_BODY): |
case (MDOC_BODY): |
p = mdoc_macronames[n->tok]; |
p = mdoc_macronames[n->tok]; |
Line 106 doprint(const struct mdoc_node *n, int indent) |
|
Line 111 doprint(const struct mdoc_node *n, int indent) |
|
break; |
break; |
case (MDOC_ELEM): |
case (MDOC_ELEM): |
p = mdoc_macronames[n->tok]; |
p = mdoc_macronames[n->tok]; |
argv = n->data.elem.argv; |
if (n->args) { |
argc = n->data.elem.argc; |
argv = n->args->argv; |
|
argc = n->args->argc; |
|
} |
break; |
break; |
case (MDOC_BLOCK): |
case (MDOC_BLOCK): |
p = mdoc_macronames[n->tok]; |
p = mdoc_macronames[n->tok]; |
argv = n->data.block.argv; |
if (n->args) { |
argc = n->data.block.argc; |
argv = n->args->argv; |
|
argc = n->args->argc; |
|
} |
break; |
break; |
case (MDOC_ROOT): |
case (MDOC_ROOT): |
p = "root"; |
p = "root"; |