summaryrefslogtreecommitdiff
path: root/usr.bin/uniq
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2017-05-15 20:18:14 +0000
committerEd Maste <emaste@FreeBSD.org>2017-05-15 20:18:14 +0000
commita520574d76c8a66a5fa90825b14e9e4d04bece5c (patch)
treead5e077dd39159845153a8c6d235053082dc4fd2 /usr.bin/uniq
parent33cbbff80f2d7473025ef27ab90458e7f4c5ac18 (diff)
downloadsrc-test2-a520574d76c8a66a5fa90825b14e9e4d04bece5c.tar.gz
src-test2-a520574d76c8a66a5fa90825b14e9e4d04bece5c.zip
Notes
Diffstat (limited to 'usr.bin/uniq')
-rw-r--r--usr.bin/uniq/uniq.15
-rw-r--r--usr.bin/uniq/uniq.c24
2 files changed, 9 insertions, 20 deletions
diff --git a/usr.bin/uniq/uniq.1 b/usr.bin/uniq/uniq.1
index 909ac7f3c15a..969384097fb2 100644
--- a/usr.bin/uniq/uniq.1
+++ b/usr.bin/uniq/uniq.1
@@ -31,7 +31,7 @@
.\" From: @(#)uniq.1 8.1 (Berkeley) 6/6/93
.\" $FreeBSD$
.\"
-.Dd December 17, 2009
+.Dd May 15, 2017
.Dt UNIQ 1
.Os
.Sh NAME
@@ -39,7 +39,8 @@
.Nd report or filter out repeated lines in a file
.Sh SYNOPSIS
.Nm
-.Op Fl c | Fl d | Fl u
+.Op Fl c
+.Op Fl d | Fl u
.Op Fl i
.Op Fl f Ar num
.Op Fl s Ar chars
diff --git a/usr.bin/uniq/uniq.c b/usr.bin/uniq/uniq.c
index 07b3a9bdf671..1161bc1dcb5f 100644
--- a/usr.bin/uniq/uniq.c
+++ b/usr.bin/uniq/uniq.c
@@ -129,13 +129,6 @@ main (int argc, char *argv[])
argc -= optind;
argv += optind;
- /* If no flags are set, default is -d -u. */
- if (cflag) {
- if (dflag || uflag)
- usage();
- } else if (!dflag && !uflag)
- dflag = uflag = 1;
-
if (argc > 2)
usage();
@@ -182,9 +175,6 @@ main (int argc, char *argv[])
}
tprev = convert(prevline);
- if (!cflag && uflag && dflag)
- show(ofp, prevline);
-
tthis = NULL;
while (getline(&thisline, &thisbuflen, ifp) >= 0) {
if (tthis != NULL)
@@ -200,8 +190,7 @@ main (int argc, char *argv[])
if (comp) {
/* If different, print; set previous to new value. */
- if (cflag || !dflag || !uflag)
- show(ofp, prevline);
+ show(ofp, prevline);
p = prevline;
b1 = prevbuflen;
prevline = thisline;
@@ -209,8 +198,6 @@ main (int argc, char *argv[])
if (tprev != NULL)
free(tprev);
tprev = tthis;
- if (!cflag && uflag && dflag)
- show(ofp, prevline);
thisline = p;
thisbuflen = b1;
tthis = NULL;
@@ -220,8 +207,7 @@ main (int argc, char *argv[])
}
if (ferror(ifp))
err(1, "%s", ifn);
- if (cflag || !dflag || !uflag)
- show(ofp, prevline);
+ show(ofp, prevline);
exit(0);
}
@@ -286,9 +272,11 @@ static void
show(FILE *ofp, const char *str)
{
+ if ((dflag && repeats == 0) || (uflag && repeats > 0))
+ return;
if (cflag)
(void)fprintf(ofp, "%4d %s", repeats + 1, str);
- if ((dflag && repeats) || (uflag && !repeats))
+ else
(void)fprintf(ofp, "%s", str);
}
@@ -351,6 +339,6 @@ static void
usage(void)
{
(void)fprintf(stderr,
-"usage: uniq [-c | -d | -u] [-i] [-f fields] [-s chars] [input [output]]\n");
+"usage: uniq [-c] [-d | -u] [-i] [-f fields] [-s chars] [input [output]]\n");
exit(1);
}