units(1): support reading multiple units files
GNU units(1) supports reading up to 25 -f options. We support an arbitrary number.
This commit is contained in:
parent
cf07c70df7
commit
3af082017a
@ -153,8 +153,6 @@ readunits(const char *userfile)
|
||||
errx(1, "can't find units file '%s'", UNITSFILE);
|
||||
}
|
||||
}
|
||||
if (cap_enter() < 0 && errno != ENOSYS)
|
||||
err(1, "unable to enter capability mode");
|
||||
cap_rights_init(&unitfilerights, CAP_READ, CAP_FSTAT);
|
||||
if (cap_rights_limit(fileno(unitfile), &unitfilerights) < 0
|
||||
&& errno != ENOSYS)
|
||||
@ -693,19 +691,23 @@ main(int argc, char **argv)
|
||||
const char * havestr;
|
||||
const char * wantstr;
|
||||
int optchar;
|
||||
char *userfile;
|
||||
bool quiet;
|
||||
bool readfile;
|
||||
History *inhistory;
|
||||
EditLine *el;
|
||||
HistEvent ev;
|
||||
int inputsz;
|
||||
|
||||
userfile = NULL;
|
||||
quiet = false;
|
||||
readfile = false;
|
||||
while ((optchar = getopt(argc, argv, "Vqf:")) != -1) {
|
||||
switch (optchar) {
|
||||
case 'f':
|
||||
userfile = optarg;
|
||||
readfile = true;
|
||||
if (strlen(optarg) == 0)
|
||||
readunits(NULL);
|
||||
else
|
||||
readunits(optarg);
|
||||
break;
|
||||
case 'q':
|
||||
quiet = true;
|
||||
@ -719,8 +721,8 @@ main(int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
if (optind != argc - 2 && optind != argc)
|
||||
usage();
|
||||
if (!readfile)
|
||||
readunits(NULL);
|
||||
|
||||
inhistory = history_init();
|
||||
el = el_init(argv[0], stdin, stdout, stderr);
|
||||
@ -732,8 +734,9 @@ main(int argc, char **argv)
|
||||
history(inhistory, &ev, H_SETSIZE, 800);
|
||||
if (inhistory == 0)
|
||||
err(1, "Could not initalize history");
|
||||
|
||||
readunits(userfile);
|
||||
|
||||
if (cap_enter() < 0 && errno != ENOSYS)
|
||||
err(1, "unable to enter capability mode");
|
||||
|
||||
if (optind == argc - 2) {
|
||||
havestr = argv[optind];
|
||||
|
Loading…
x
Reference in New Issue
Block a user