Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Jun 2018 20:55:49 +0000 (UTC)
From:      Kyle Evans <kevans@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r335737 - stable/11/usr.bin/uniq
Message-ID:  <201806272055.w5RKtnIH095263@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kevans
Date: Wed Jun 27 20:55:49 2018
New Revision: 335737
URL: https://svnweb.freebsd.org/changeset/base/335737

Log:
  MFC r333156: uniq(1): Add some long options
  
  These match GNU uniq(1) where appropriate for compatibility's sake.
  
  While here, re-sort options alphabetically by the short-option.

Modified:
  stable/11/usr.bin/uniq/uniq.1
  stable/11/usr.bin/uniq/uniq.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.bin/uniq/uniq.1
==============================================================================
--- stable/11/usr.bin/uniq/uniq.1	Wed Jun 27 20:54:12 2018	(r335736)
+++ stable/11/usr.bin/uniq/uniq.1	Wed Jun 27 20:55:49 2018	(r335737)
@@ -31,7 +31,7 @@
 .\"     From: @(#)uniq.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd May 15, 2017
+.Dd May 1, 2018
 .Dt UNIQ 1
 .Os
 .Sh NAME
@@ -71,34 +71,34 @@ so it may be necessary to sort the files first.
 .Pp
 The following options are available:
 .Bl -tag -width Ds
-.It Fl c
+.It Fl c , Fl -count
 Precede each output line with the count of the number of times the line
 occurred in the input, followed by a single space.
-.It Fl d
+.It Fl d , Fl -repeated
 Only output lines that are repeated in the input.
-.It Fl f Ar num
+.It Fl f Ar num , Fl -skip-fields Ar num
 Ignore the first
 .Ar num
 fields in each input line when doing comparisons.
 A field is a string of non-blank characters separated from adjacent fields
 by blanks.
 Field numbers are one based, i.e., the first field is field one.
-.It Fl s Ar chars
+.It Fl i , Fl -ignore-case
+Case insensitive comparison of lines.
+.It Fl s Ar chars , Fl -skip-chars Ar chars
 Ignore the first
 .Ar chars
 characters in each input line when doing comparisons.
 If specified in conjunction with the
-.Fl f
+.Fl f , Fl -unique
 option, the first
 .Ar chars
 characters after the first
 .Ar num
 fields will be ignored.
 Character numbers are one based, i.e., the first character is character one.
-.It Fl u
+.It Fl u , Fl -unique
 Only output lines that are not repeated in the input.
-.It Fl i
-Case insensitive comparison of lines.
 .\".It Fl Ns Ar n
 .\"(Deprecated; replaced by
 .\".Fl f ) .

Modified: stable/11/usr.bin/uniq/uniq.c
==============================================================================
--- stable/11/usr.bin/uniq/uniq.c	Wed Jun 27 20:54:12 2018	(r335736)
+++ stable/11/usr.bin/uniq/uniq.c	Wed Jun 27 20:55:49 2018	(r335737)
@@ -49,6 +49,7 @@ static const char rcsid[] =
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>
+#include <getopt.h>
 #include <limits.h>
 #include <locale.h>
 #include <nl_types.h>
@@ -65,6 +66,17 @@ static const char rcsid[] =
 static int cflag, dflag, uflag, iflag;
 static int numchars, numfields, repeats;
 
+static const struct option long_opts[] =
+{
+	{"count",	no_argument,		NULL, 'c'},
+	{"repeated",	no_argument,		NULL, 'd'},
+	{"skip-fields",	required_argument,	NULL, 'f'},
+	{"ignore-case",	no_argument,		NULL, 'i'},
+	{"skip-chars",	required_argument,	NULL, 's'},
+	{"unique",	no_argument,		NULL, 'u'},
+	{NULL,		no_argument,		NULL, 0}
+};
+
 static FILE	*file(const char *, const char *);
 static wchar_t	*convert(const char *);
 static int	 inlcmp(const char *, const char *);
@@ -98,7 +110,8 @@ main (int argc, char *argv[])
 	(void) setlocale(LC_ALL, "");
 
 	obsolete(argv);
-	while ((ch = getopt(argc, argv, "cdif:s:u")) != -1)
+	while ((ch = getopt_long(argc, argv, "+cdif:s:u", long_opts,
+	    NULL)) != -1)
 		switch (ch) {
 		case 'c':
 			cflag = 1;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201806272055.w5RKtnIH095263>