svn commit: r268242 - head/usr.bin/look

Eitan Adler eadler at FreeBSD.org
Fri Jul 4 04:47:30 UTC 2014


Author: eadler
Date: Fri Jul  4 04:47:29 2014
New Revision: 268242
URL: http://svnweb.freebsd.org/changeset/base/268242

Log:
  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

Modified:
  head/usr.bin/look/look.1
  head/usr.bin/look/look.c

Modified: head/usr.bin/look/look.1
==============================================================================
--- head/usr.bin/look/look.1	Thu Jul  3 23:12:43 2014	(r268241)
+++ head/usr.bin/look/look.1	Fri Jul  4 04:47:29 2014	(r268242)
@@ -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

Modified: head/usr.bin/look/look.c
==============================================================================
--- head/usr.bin/look/look.c	Thu Jul  3 23:12:43 2014	(r268241)
+++ head/usr.bin/look/look.c	Fri Jul  4 04:47:29 2014	(r268242)
@@ -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 *, unsig
 
 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 */


More information about the svn-src-head mailing list