X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/7caa51ee5a0c6624eb97d1d6bf06b84bdbd7f034..236dae9fb3183b9c1d8bc6f77614797d65800987:/mmain.c diff --git a/mmain.c b/mmain.c index 370d23f8..0660f284 100644 --- a/mmain.c +++ b/mmain.c @@ -1,4 +1,4 @@ - /* $Id: mmain.c,v 1.2 2009/02/23 07:09:13 kristaps Exp $ */ + /* $Id: mmain.c,v 1.5 2009/03/06 14:13:47 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -57,6 +57,8 @@ static int msg_warn(void *, int, int, #ifdef __linux__ extern int getsubopt(char **, char *const *, char **); +extern size_t strlcpy(char *, const char *, size_t); +extern size_t strlcat(char *, const char *, size_t); #endif @@ -106,9 +108,8 @@ mmain_getopt(struct mmain *p, int argc, char *argv[], size_t sz; extern int optind; - extern int optreset; - sz = strlcpy(opts, "vW:", 32); + sz = strlcpy(opts, "VvW:", 32); assert(sz < 32); if (u) { @@ -116,24 +117,29 @@ mmain_getopt(struct mmain *p, int argc, char *argv[], assert(sz < 32); } + optind = 1; + /* LINTED */ while (-1 != (c = getopt(argc, argv, opts))) switch (c) { case ('v'): p->dbg++; break; + case ('V'): + (void)printf("%s %s\n", __progname, VERSION); + return(0); case ('W'): if ( ! getsopts(p, optarg)) - return(0); + return(-1); break; case ('?'): mmain_usage(help); - return(0); + return(-1); default: assert(getopt_cb); if ((*getopt_cb)(arg, c, optarg)) break; - return(0); + return(-1); } argv += optind; @@ -144,8 +150,8 @@ mmain_getopt(struct mmain *p, int argc, char *argv[], } -__dead void -mmain_exit(struct mmain *p, int code) +dead_pre void +mmain_exit(struct mmain *p, int code) { if (p->mdoc)