Date: Mon, 14 Apr 2014 16:43:37 +0000 (UTC) From: Eitan Adler <eadler@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r264462 - head/usr.bin/units Message-ID: <201404141643.s3EGhbMn028743@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: eadler Date: Mon Apr 14 16:43:36 2014 New Revision: 264462 URL: http://svnweb.freebsd.org/changeset/base/264462 Log: units(1): support reading multiple units files GNU units(1) supports reading up to 25 -f options. We support an arbitrary number. Modified: head/usr.bin/units/units.c Modified: head/usr.bin/units/units.c ============================================================================== --- head/usr.bin/units/units.c Mon Apr 14 16:31:56 2014 (r264461) +++ head/usr.bin/units/units.c Mon Apr 14 16:43:36 2014 (r264462) @@ -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];
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404141643.s3EGhbMn028743>