version 1.52, 2009/02/20 11:04:23 |
version 1.54, 2009/02/21 15:34:46 |
|
|
|
|
#define MD_LINE_SZ (256) /* Max input line size. */ |
#define MD_LINE_SZ (256) /* Max input line size. */ |
|
|
|
typedef int (*md_print)(const struct mdoc_node *, |
|
const struct mdoc_meta *); |
|
|
struct md_parse { |
struct md_parse { |
int warn; /* Warning flags. */ |
int warn; /* Warning flags. */ |
#define MD_WARN_SYNTAX (1 << 0) /* Show syntax warnings. */ |
#define MD_WARN_SYNTAX (1 << 0) /* Show syntax warnings. */ |
Line 44 struct md_parse { |
|
Line 47 struct md_parse { |
|
u_long bufsz; /* Input buffer size. */ |
u_long bufsz; /* Input buffer size. */ |
char *in; /* Input file name. */ |
char *in; /* Input file name. */ |
int fdin; /* Input file desc. */ |
int fdin; /* Input file desc. */ |
|
md_print fp; |
}; |
}; |
|
|
extern char *__progname; |
extern char *__progname; |
Line 144 parse_opts(struct md_parse *p, int argc, char *argv[]) |
|
Line 148 parse_opts(struct md_parse *p, int argc, char *argv[]) |
|
extern char *optarg; |
extern char *optarg; |
extern int optind; |
extern int optind; |
|
|
|
extern int termprint(const struct mdoc_node *, |
|
const struct mdoc_meta *); |
|
extern int treeprint(const struct mdoc_node *, |
|
const struct mdoc_meta *); |
|
|
p->in = "-"; |
p->in = "-"; |
|
|
while (-1 != (c = getopt(argc, argv, "vW:"))) |
while (-1 != (c = getopt(argc, argv, "f:vW:"))) |
switch (c) { |
switch (c) { |
|
case ('f'): |
|
if (0 == strcmp(optarg, "tree")) { |
|
p->fp = treeprint; |
|
break; |
|
} else if (0 == strcmp(optarg, "term")) { |
|
p->fp = termprint; |
|
break; |
|
} |
|
warnx("unknown filter: %s", optarg); |
|
return(0); |
case ('v'): |
case ('v'): |
p->dbg++; |
p->dbg++; |
break; |
break; |
Line 224 buf_begin(struct md_parse *p) |
|
Line 243 buf_begin(struct md_parse *p) |
|
static int |
static int |
parse_leave(struct md_parse *p, int code) |
parse_leave(struct md_parse *p, int code) |
{ |
{ |
extern int termprint(const struct mdoc_node *, |
md_print fp; |
const struct mdoc_meta *); |
|
|
|
if (NULL == p->mdoc) |
if (NULL == p->mdoc) |
return(code); |
return(code); |
Line 233 parse_leave(struct md_parse *p, int code) |
|
Line 251 parse_leave(struct md_parse *p, int code) |
|
if ( ! mdoc_endparse(p->mdoc)) |
if ( ! mdoc_endparse(p->mdoc)) |
code = 0; |
code = 0; |
|
|
/* TODO */ |
if (code && (fp = p->fp)) { |
if (code && ! termprint(mdoc_node(p->mdoc), mdoc_meta(p->mdoc))) |
if ( ! (*fp)(mdoc_node(p->mdoc), mdoc_meta(p->mdoc))) |
code = 0; |
code = 0; |
|
} |
|
|
mdoc_free(p->mdoc); |
mdoc_free(p->mdoc); |
return(code); |
return(code); |
|
|
usage(void) |
usage(void) |
{ |
{ |
|
|
warnx("usage: %s [-v] [-Wwarn...] [infile]", __progname); |
warnx("usage: %s [-ffilter] [-v] [-Wwarn...] [infile]", |
|
__progname); |
} |
} |
|
|