diff options
author | eadler <eadler@FreeBSD.org> | 2014-07-04 04:47:29 +0000 |
---|---|---|
committer | eadler <eadler@FreeBSD.org> | 2014-07-04 04:47:29 +0000 |
commit | ea17ba82898dc418b74fe344924fff6885747f33 (patch) | |
tree | b6e8d22e320865618636c0871311d8444098e340 /usr.bin/look | |
parent | 955dea01221af057f350ceb93cb8fe85d61d0fde (diff) | |
download | FreeBSD-src-ea17ba82898dc418b74fe344924fff6885747f33.zip FreeBSD-src-ea17ba82898dc418b74fe344924fff6885747f33.tar.gz |
look: implement long options
gentoo has "util-linux 2.24.1" with long options. Other distributions
have similar.
usage() is intentionally unchanged to keep it short and sweet
Reviewed by: jmg
Discussed with: adrian, jilles
Diffstat (limited to 'usr.bin/look')
-rw-r--r-- | usr.bin/look/look.1 | 10 | ||||
-rw-r--r-- | usr.bin/look/look.c | 11 |
2 files changed, 16 insertions, 5 deletions
diff --git a/usr.bin/look/look.1 b/usr.bin/look/look.1 index 471898f..e6f70bb 100644 --- a/usr.bin/look/look.1 +++ b/usr.bin/look/look.1 @@ -63,12 +63,12 @@ alphabetic characters is ignored. .Pp The following options are available: .Bl -tag -width indent -.It Fl d +.It Fl d , -alphanum Dictionary character set and order, i.e., only alphanumeric characters are compared. -.It Fl f +.It Fl f , -ignore-case Ignore the case of alphabetic characters. -.It Fl t +.It Fl t , -terminate Ar termchar Specify a string termination character, i.e., only the characters in .Ar string @@ -106,7 +106,9 @@ implementation. .Pp The .Fl a -flag is ignored for compability. +and +.Fl -alternative +flags are ignored for compability. .Sh SEE ALSO .Xr grep 1 , .Xr sort 1 diff --git a/usr.bin/look/look.c b/usr.bin/look/look.c index 5f830d0..ada6e25 100644 --- a/usr.bin/look/look.c +++ b/usr.bin/look/look.c @@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include <err.h> #include <errno.h> #include <fcntl.h> +#include <getopt.h> #include <limits.h> #include <locale.h> #include <stdint.h> @@ -88,6 +89,14 @@ static void print_from(wchar_t *, unsigned char *, unsigned char *); static void usage(void); +static struct option longopts[] = { + { "alternative",no_argument, NULL, 'a' }, + { "alphanum", no_argument, NULL, 'd' }, + { "ignore-case",no_argument, NULL, 'i' }, + { "terminate", required_argument, NULL, 't'}, + { NULL, 0, NULL, 0 }, +}; + int main(int argc, char *argv[]) { @@ -102,7 +111,7 @@ main(int argc, char *argv[]) file = _path_words; termchar = L'\0'; - while ((ch = getopt(argc, argv, "adft:")) != -1) + while ((ch = getopt_long(argc, argv, "+adft:", longopts, NULL)) != -1) switch(ch) { case 'a': /* COMPATIBILITY */ |