From 5192ff454714479aef7f0fb76298a763e3883c81 Mon Sep 17 00:00:00 2001 From: Eitan Adler Date: Fri, 4 Jul 2014 21:21:05 +0000 Subject: [PATCH] units(1): add long options Things brings additional compatibility with units 2.10 Discussed with: wblock (man page) --- usr.bin/units/units.1 | 12 ++++++------ usr.bin/units/units.c | 12 +++++++++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/usr.bin/units/units.1 b/usr.bin/units/units.1 index dff0f5859038..f971d9c1e443 100644 --- a/usr.bin/units/units.1 +++ b/usr.bin/units/units.1 @@ -13,17 +13,19 @@ .Sh OPTIONS The following options are available: .Bl -tag -width indent -.It Fl f Ar filename +.It Fl f Ar filename No , Fl -file Ar filename Specify the name of the units data file to load. -.It Fl q +.It Fl q No , Fl -quiet Suppress prompting of the user for units and the display of statistics about the number of units loaded. -.It Fl U +.It Fl U No , Fl -unitsfile If the default unit file exists prints its location. If not, print .Qo Units data file not found .Qc -.It Fl V +.It Fl v No , Fl -verbose +Print the units in the conversion output. Be more verbose in general. +.It Fl V No , Fl -version Print the version number, usage, and then exit. .It Ar from-unit to-unit Allow a single unit conversion to be done directly from the command @@ -31,8 +33,6 @@ line. The program will not print prompts. It will print out the result of the single specified conversion. -.It Fl v -Print the units in the conversion output. Be more verbose in general. .El .Sh DESCRIPTION The diff --git a/usr.bin/units/units.c b/usr.bin/units/units.c index be52adf71549..a0e3772c7025 100644 --- a/usr.bin/units/units.c +++ b/usr.bin/units/units.c @@ -24,6 +24,7 @@ static const char rcsid[] = #include #include #include +#include #include #include #include @@ -702,6 +703,15 @@ usage(void) exit(3); } +static struct option longopts[] = { + {"file", required_argument, NULL, 'f'}, + {"quiet", no_argument, NULL, 'q'}, + {"verbose", no_argument, NULL, 'v'}, + {"unitsfile", no_argument, NULL, 'U'}, + {"version", no_argument, NULL, 'V'}, + { 0, 0, 0, 0 } +}; + int main(int argc, char **argv) @@ -718,7 +728,7 @@ main(int argc, char **argv) quiet = false; readfile = false; - while ((optchar = getopt(argc, argv, "f:qvUV")) != -1) { + while ((optchar = getopt_long(argc, argv, "+f:qvUV", longopts, NULL)) != -1) { switch (optchar) { case 'f': readfile = true;