version 1.150, 2015/10/06 18:30:43 |
version 1.151, 2015/10/11 21:06:59 |
|
|
|
|
#include <assert.h> |
#include <assert.h> |
#include <ctype.h> |
#include <ctype.h> |
|
#include <err.h> |
#include <errno.h> |
#include <errno.h> |
#include <fcntl.h> |
#include <fcntl.h> |
#include <fts.h> |
#include <fts.h> |
|
|
static int treescan(void); |
static int treescan(void); |
static size_t utf8(unsigned int, char [7]); |
static size_t utf8(unsigned int, char [7]); |
|
|
|
extern char *__progname; |
|
|
static char tempfilename[32]; |
static char tempfilename[32]; |
static char *progname; |
|
static int nodb; /* no database changes */ |
static int nodb; /* no database changes */ |
static int mparse_options; /* abort the parse early */ |
static int mparse_options; /* abort the parse early */ |
static int use_all; /* use all found files */ |
static int use_all; /* use all found files */ |
|
|
mpages_info.key_offset = offsetof(struct mpage, inodev); |
mpages_info.key_offset = offsetof(struct mpage, inodev); |
mlinks_info.key_offset = offsetof(struct mlink, file); |
mlinks_info.key_offset = offsetof(struct mlink, file); |
|
|
progname = strrchr(argv[0], '/'); |
|
if (progname == NULL) |
|
progname = argv[0]; |
|
else |
|
++progname; |
|
|
|
/* |
/* |
* We accept a few different invocations. |
* We accept a few different invocations. |
* The CHECKOP macro makes sure that invocation styles don't |
* The CHECKOP macro makes sure that invocation styles don't |
|
|
*/ |
*/ |
#define CHECKOP(_op, _ch) do \ |
#define CHECKOP(_op, _ch) do \ |
if (OP_DEFAULT != (_op)) { \ |
if (OP_DEFAULT != (_op)) { \ |
fprintf(stderr, "%s: -%c: Conflicting option\n", \ |
warnx("-%c: Conflicting option", (_ch)); \ |
progname, (_ch)); \ |
|
goto usage; \ |
goto usage; \ |
} while (/*CONSTCOND*/0) |
} while (/*CONSTCOND*/0) |
|
|
|
|
break; |
break; |
case 'T': |
case 'T': |
if (strcmp(optarg, "utf8")) { |
if (strcmp(optarg, "utf8")) { |
fprintf(stderr, "%s: -T%s: " |
warnx("-T%s: Unsupported output format", |
"Unsupported output format\n", |
optarg); |
progname, optarg); |
|
goto usage; |
goto usage; |
} |
} |
write_utf8 = 1; |
write_utf8 = 1; |
|
|
argv += optind; |
argv += optind; |
|
|
if (OP_CONFFILE == op && argc > 0) { |
if (OP_CONFFILE == op && argc > 0) { |
fprintf(stderr, "%s: -C: Too many arguments\n", |
warnx("-C: Too many arguments"); |
progname); |
|
goto usage; |
goto usage; |
} |
} |
|
|
|
|
" %s [-DnpQ] [-Tutf8] -d dir [file ...]\n" |
" %s [-DnpQ] [-Tutf8] -d dir [file ...]\n" |
" %s [-Dnp] -u dir [file ...]\n" |
" %s [-Dnp] -u dir [file ...]\n" |
" %s [-Q] -t file ...\n", |
" %s [-Q] -t file ...\n", |
progname, progname, progname, |
__progname, __progname, __progname, |
progname, progname); |
__progname, __progname); |
|
|
return (int)MANDOCLEVEL_BADARG; |
return (int)MANDOCLEVEL_BADARG; |
} |
} |