version 1.11, 2009/03/23 15:20:51 |
version 1.15, 2009/03/25 21:03:13 |
Line 34 extern int getsubopt(char **, char * const *, char |
|
Line 34 extern int getsubopt(char **, char * const *, char |
|
# ifndef __dead |
# ifndef __dead |
# define __dead __attribute__((__noreturn__)) |
# define __dead __attribute__((__noreturn__)) |
# endif |
# endif |
#elif defined(__FreeBSD__) |
#elif defined(__dead2) |
# ifndef __dead |
# ifndef __dead |
# define __dead __dead2 |
# define __dead __dead2 |
# endif |
# endif |
Line 54 struct curparse { |
|
Line 54 struct curparse { |
|
#define WARN_WERR (1 << 2) /* Warnings->errors. */ |
#define WARN_WERR (1 << 2) /* Warnings->errors. */ |
}; |
}; |
|
|
|
#define IGN_SCOPE (1 << 0) /* Flag to ignore scope. */ |
|
#define IGN_ESCAPE (1 << 1) /* Flag to ignore bad escapes. */ |
|
#define IGN_MACRO (1 << 2) /* Flag to ignore unknown macros. */ |
|
|
enum intt { |
enum intt { |
INTT_MDOC = 0, |
INTT_MDOC = 0, |
INTT_MAN |
INTT_MAN |
Line 87 static int toptions(enum outt *, char *); |
|
Line 91 static int toptions(enum outt *, char *); |
|
static int moptions(enum intt *, char *); |
static int moptions(enum intt *, char *); |
static int woptions(int *, char *); |
static int woptions(int *, char *); |
static int merr(void *, int, int, const char *); |
static int merr(void *, int, int, const char *); |
static int mwarn(void *, int, int, |
static int manwarn(void *, int, int, const char *); |
|
static int mdocwarn(void *, int, int, |
enum mdoc_warn, const char *); |
enum mdoc_warn, const char *); |
static int file(struct buf *, struct buf *, |
static int file(struct buf *, struct buf *, |
const char *, |
const char *, |
Line 103 __dead static void usage(void); |
|
Line 108 __dead static void usage(void); |
|
int |
int |
main(int argc, char *argv[]) |
main(int argc, char *argv[]) |
{ |
{ |
int c, rc, fflags; |
int c, rc, fflags, pflags; |
struct mdoc_cb cb; |
struct mdoc_cb mdoccb; |
|
struct man_cb mancb; |
struct man *man; |
struct man *man; |
struct mdoc *mdoc; |
struct mdoc *mdoc; |
void *outdata; |
void *outdata; |
Line 191 main(int argc, char *argv[]) |
|
Line 197 main(int argc, char *argv[]) |
|
* screen. XXX - for now, no path for debugging messages. |
* screen. XXX - for now, no path for debugging messages. |
*/ |
*/ |
|
|
cb.mdoc_msg = NULL; |
mdoccb.mdoc_msg = NULL; |
cb.mdoc_err = merr; |
mdoccb.mdoc_err = merr; |
cb.mdoc_warn = mwarn; |
mdoccb.mdoc_warn = mdocwarn; |
|
|
|
mancb.man_err = merr; |
|
mancb.man_warn = manwarn; |
|
|
bzero(&ln, sizeof(struct buf)); |
bzero(&ln, sizeof(struct buf)); |
bzero(&blk, sizeof(struct buf)); |
bzero(&blk, sizeof(struct buf)); |
|
|
man = NULL; |
man = NULL; |
mdoc = NULL; |
mdoc = NULL; |
|
pflags = 0; |
|
|
switch (inttype) { |
switch (inttype) { |
case (INTT_MAN): |
case (INTT_MAN): |
man = man_alloc(); |
if (fflags & IGN_MACRO) |
|
pflags |= MAN_IGN_MACRO; |
|
|
|
man = man_alloc(&curp, pflags, &mancb); |
break; |
break; |
default: |
default: |
mdoc = mdoc_alloc(&curp, fflags, &cb); |
if (fflags & IGN_SCOPE) |
|
pflags |= MDOC_IGN_SCOPE; |
|
if (fflags & IGN_ESCAPE) |
|
pflags |= MDOC_IGN_ESCAPE; |
|
if (fflags & IGN_MACRO) |
|
pflags |= MDOC_IGN_MACRO; |
|
|
|
mdoc = mdoc_alloc(&curp, pflags, &mdoccb); |
break; |
break; |
} |
} |
|
|
Line 271 __dead static void |
|
Line 291 __dead static void |
|
usage(void) |
usage(void) |
{ |
{ |
|
|
(void)fprintf(stderr, "usage: %s\n", __progname); |
(void)fprintf(stderr, "usage: %s [-V] [-foption...] " |
|
"[-mformat] [-Toutput] [-Werr...]\n", |
|
__progname); |
exit(1); |
exit(1); |
/* NOTREACHED */ |
/* NOTREACHED */ |
} |
} |
Line 442 foptions(int *fflags, char *arg) |
|
Line 464 foptions(int *fflags, char *arg) |
|
while (*arg) |
while (*arg) |
switch (getsubopt(&arg, toks, &v)) { |
switch (getsubopt(&arg, toks, &v)) { |
case (0): |
case (0): |
*fflags |= MDOC_IGN_SCOPE; |
*fflags |= IGN_SCOPE; |
break; |
break; |
case (1): |
case (1): |
*fflags |= MDOC_IGN_ESCAPE; |
*fflags |= IGN_ESCAPE; |
break; |
break; |
case (2): |
case (2): |
*fflags |= MDOC_IGN_MACRO; |
*fflags |= IGN_MACRO; |
break; |
break; |
default: |
default: |
warnx("bad argument: -f%s", arg); |
warnx("bad argument: -f%s", arg); |
Line 513 merr(void *arg, int line, int col, const char *msg) |
|
Line 535 merr(void *arg, int line, int col, const char *msg) |
|
|
|
|
|
static int |
static int |
mwarn(void *arg, int line, int col, |
mdocwarn(void *arg, int line, int col, |
enum mdoc_warn type, const char *msg) |
enum mdoc_warn type, const char *msg) |
{ |
{ |
struct curparse *curp; |
struct curparse *curp; |
Line 548 mwarn(void *arg, int line, int col, |
|
Line 570 mwarn(void *arg, int line, int col, |
|
} |
} |
|
|
|
|
|
static int |
|
manwarn(void *arg, int line, int col, const char *msg) |
|
{ |
|
struct curparse *curp; |
|
|
|
curp = (struct curparse *)arg; |
|
|
|
if ( ! (curp->wflags & WARN_WSYNTAX)) |
|
return(1); |
|
|
|
warnx("%s:%d: syntax warning: %s (column %d)", |
|
curp->file, line, msg, col); |
|
|
|
if ( ! (curp->wflags & WARN_WERR)) |
|
return(1); |
|
|
|
warnx("%s: considering warnings as errors", |
|
__progname); |
|
return(0); |
|
} |