version 1.40, 2009/07/27 19:43:02 |
version 1.44, 2009/09/21 13:06:13 |
Line 40 extern int getsubopt(char **, char * const *, char |
|
Line 40 extern int getsubopt(char **, char * const *, char |
|
# endif |
# endif |
#endif |
#endif |
|
|
typedef int (*out_mdoc)(void *, const struct mdoc *); |
typedef void (*out_mdoc)(void *, const struct mdoc *); |
typedef int (*out_man)(void *, const struct man *); |
typedef void (*out_man)(void *, const struct man *); |
typedef void (*out_free)(void *); |
typedef void (*out_free)(void *); |
|
|
struct buf { |
struct buf { |
|
|
enum outt { |
enum outt { |
OUTT_ASCII = 0, |
OUTT_ASCII = 0, |
OUTT_TREE, |
OUTT_TREE, |
|
OUTT_HTML, |
OUTT_LINT |
OUTT_LINT |
}; |
}; |
|
|
Line 83 struct curparse { |
|
Line 84 struct curparse { |
|
out_man outman; |
out_man outman; |
out_free outfree; |
out_free outfree; |
void *outdata; |
void *outdata; |
|
char *outopts; |
}; |
}; |
|
|
|
extern void *html_alloc(char *); |
|
extern void html_mdoc(void *, const struct mdoc *); |
|
extern void html_man(void *, const struct man *); |
|
extern void html_free(void *); |
extern void *ascii_alloc(void); |
extern void *ascii_alloc(void); |
extern int tree_mdoc(void *, const struct mdoc *); |
extern void tree_mdoc(void *, const struct mdoc *); |
extern int tree_man(void *, const struct man *); |
extern void tree_man(void *, const struct man *); |
extern int terminal_mdoc(void *, const struct mdoc *); |
extern void terminal_mdoc(void *, const struct mdoc *); |
extern int terminal_man(void *, const struct man *); |
extern void terminal_man(void *, const struct man *); |
extern void terminal_free(void *); |
extern void terminal_free(void *); |
|
|
static int foptions(int *, char *); |
static int foptions(int *, char *); |
Line 125 main(int argc, char *argv[]) |
|
Line 131 main(int argc, char *argv[]) |
|
curp.outtype = OUTT_ASCII; |
curp.outtype = OUTT_ASCII; |
|
|
/* LINTED */ |
/* LINTED */ |
while (-1 != (c = getopt(argc, argv, "f:m:VW:T:"))) |
while (-1 != (c = getopt(argc, argv, "f:m:o:T:VW:"))) |
switch (c) { |
switch (c) { |
case ('f'): |
case ('f'): |
if ( ! foptions(&curp.fflags, optarg)) |
if ( ! foptions(&curp.fflags, optarg)) |
Line 135 main(int argc, char *argv[]) |
|
Line 141 main(int argc, char *argv[]) |
|
if ( ! moptions(&curp.inttype, optarg)) |
if ( ! moptions(&curp.inttype, optarg)) |
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
break; |
break; |
|
case ('o'): |
|
curp.outopts = optarg; |
|
break; |
case ('T'): |
case ('T'): |
if ( ! toptions(&curp.outtype, optarg)) |
if ( ! toptions(&curp.outtype, optarg)) |
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
Line 418 fdesc(struct buf *blk, struct buf *ln, struct curparse |
|
Line 427 fdesc(struct buf *blk, struct buf *ln, struct curparse |
|
/* NOTE a parser may not have been assigned, yet. */ |
/* NOTE a parser may not have been assigned, yet. */ |
|
|
if ( ! (man || mdoc)) { |
if ( ! (man || mdoc)) { |
(void)fprintf(stderr, "%s: not a manual", curp->file); |
(void)fprintf(stderr, "%s: not a manual\n", |
|
curp->file); |
return(0); |
return(0); |
} |
} |
|
|
Line 431 fdesc(struct buf *blk, struct buf *ln, struct curparse |
|
Line 441 fdesc(struct buf *blk, struct buf *ln, struct curparse |
|
|
|
if ( ! (curp->outman && curp->outmdoc)) { |
if ( ! (curp->outman && curp->outmdoc)) { |
switch (curp->outtype) { |
switch (curp->outtype) { |
|
case (OUTT_HTML): |
|
curp->outdata = html_alloc(curp->outopts); |
|
curp->outman = html_man; |
|
curp->outmdoc = html_mdoc; |
|
curp->outfree = html_free; |
|
break; |
case (OUTT_TREE): |
case (OUTT_TREE): |
curp->outman = tree_man; |
curp->outman = tree_man; |
curp->outmdoc = tree_mdoc; |
curp->outmdoc = tree_mdoc; |
Line 449 fdesc(struct buf *blk, struct buf *ln, struct curparse |
|
Line 465 fdesc(struct buf *blk, struct buf *ln, struct curparse |
|
/* Execute the out device, if it exists. */ |
/* Execute the out device, if it exists. */ |
|
|
if (man && curp->outman) |
if (man && curp->outman) |
if ( ! (*curp->outman)(curp->outdata, man)) |
(*curp->outman)(curp->outdata, man); |
return(-1); |
|
if (mdoc && curp->outmdoc) |
if (mdoc && curp->outmdoc) |
if ( ! (*curp->outmdoc)(curp->outdata, mdoc)) |
(*curp->outmdoc)(curp->outdata, mdoc); |
return(-1); |
|
|
|
return(1); |
return(1); |
} |
} |
Line 547 toptions(enum outt *tflags, char *arg) |
|
Line 561 toptions(enum outt *tflags, char *arg) |
|
*tflags = OUTT_LINT; |
*tflags = OUTT_LINT; |
else if (0 == strcmp(arg, "tree")) |
else if (0 == strcmp(arg, "tree")) |
*tflags = OUTT_TREE; |
*tflags = OUTT_TREE; |
|
else if (0 == strcmp(arg, "html")) |
|
*tflags = OUTT_HTML; |
else { |
else { |
warnx("bad argument: -T%s", arg); |
warnx("bad argument: -T%s", arg); |
return(0); |
return(0); |