summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2003-07-06 22:17:22 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2003-07-06 22:17:22 +0000
commit69ef970c20b54b2b30dab715b21100744a5e62a9 (patch)
treef2bf5f78372e7cbd33d673ccca85bd7ed0a8d67c
parenta5f370d9b14b190b154fddc12987b9255cd20e10 (diff)
Add -q option from GNU diff
-rw-r--r--usr.bin/diff/diff.115
-rw-r--r--usr.bin/diff/diff.c20
-rw-r--r--usr.bin/diff/diff.h3
-rw-r--r--usr.bin/diff/diffdir.c8
-rw-r--r--usr.bin/diff/diffreg.c8
5 files changed, 33 insertions, 21 deletions
diff --git a/usr.bin/diff/diff.1 b/usr.bin/diff/diff.1
index 4fb97ccb52b..feb5d67efb1 100644
--- a/usr.bin/diff/diff.1
+++ b/usr.bin/diff/diff.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: diff.1,v 1.12 2003/07/06 22:02:36 millert Exp $
+.\" $OpenBSD: diff.1,v 1.13 2003/07/06 22:17:21 millert Exp $
.\"
.\" Copyright (c) 1980, 1990, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -37,26 +37,26 @@
.Nd differential file and directory comparator
.Sh SYNOPSIS
.Nm diff
-.Op Fl abitw
+.Op Fl abiqtw
.Oo
.Fl c | Fl e | Fl f |
.Fl n | Fl u
.Oc
.Ar file1 file2
.Nm diff
-.Op Fl abitw
+.Op Fl abiqtw
.Op Fl C Ar number
.Ar file1 file2
.Nm diff
-.Op Fl abitw
+.Op Fl abiqtw
.Op Fl D Ar string
.Ar file1 file2
.Nm diff
-.Op Fl abitw
+.Op Fl abiqtw
.Op Fl U Ar number
.Ar file1 file2
.Nm diff
-.Op Fl abiNtw
+.Op Fl abiNqtw
.Oo
.Fl c | Fl e | Fl f |
.Fl n | Fl u
@@ -129,6 +129,9 @@ but in the opposite order and with a count of changed lines on each
insert or delete command.
This is the form used by
.Xr rcsdiff 1 .
+.It Fl q
+Just print a line when the files differ.
+Does not output a list of changes.
.It Fl u
Produces a
.Em unified
diff --git a/usr.bin/diff/diff.c b/usr.bin/diff/diff.c
index eaaf15c629e..afd54bdf271 100644
--- a/usr.bin/diff/diff.c
+++ b/usr.bin/diff/diff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff.c,v 1.24 2003/07/06 22:02:36 millert Exp $ */
+/* $OpenBSD: diff.c,v 1.25 2003/07/06 22:17:21 millert Exp $ */
/*
* Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -21,7 +21,7 @@
*/
#ifndef lint
-static const char rcsid[] = "$OpenBSD: diff.c,v 1.24 2003/07/06 22:02:36 millert Exp $";
+static const char rcsid[] = "$OpenBSD: diff.c,v 1.25 2003/07/06 22:17:21 millert Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -44,7 +44,7 @@ char *start, *ifdefname, *diffargs;
struct stat stb1, stb2;
struct excludes *excludes_list;
-#define OPTIONS "abC:cD:efhinNPrS:stU:uwX:x:"
+#define OPTIONS "abC:cD:efhinNPqrS:stU:uwX:x:"
static struct option longopts[] = {
{ "text", no_argument, 0, 'a' },
{ "ignore-space-change", no_argument, 0, 'b' },
@@ -56,6 +56,7 @@ static struct option longopts[] = {
{ "new-file", no_argument, 0, 'N' },
{ "rcs", no_argument, 0, 'n' },
{ "unidirectional-new-file", no_argument, 0, 'P' },
+ { "brief", no_argument, 0, 'q' },
{ "recursive", no_argument, 0, 'r' },
{ "report-identical-files", no_argument, 0, 's' },
{ "starting-file", required_argument, 0, 'S' },
@@ -128,6 +129,9 @@ main(int argc, char **argv)
case 'r':
rflag = 1;
break;
+ case 'q':
+ format = D_BRIEF;
+ break;
case 'S':
start = optarg;
break;
@@ -314,11 +318,11 @@ __dead void
usage(void)
{
(void)fprintf(stderr,
- "usage: diff [-bitw] [-c | -e | -f | -n | -u ] file1 file2\n"
- " diff [-bitw] -C number file1 file2\n"
- " diff [-bitw] -D string file1 file2\n"
- " diff [-bitw] -U number file1 file2\n"
- " diff [-biNPwt] [-c | -e | -f | -n | -u ] [-r] [-s] [-S name]"
+ "usage: diff [-biqtw] [-c | -e | -f | -n | -u ] file1 file2\n"
+ " diff [-biqtw] -C number file1 file2\n"
+ " diff [-biqtw] -D string file1 file2\n"
+ " diff [-biqtw] -U number file1 file2\n"
+ " diff [-biNPqwt] [-c | -e | -f | -n | -u ] [-r] [-s] [-S name]"
" [-X file]\n [-x pattern] dir1 dir2\n");
exit(2);
diff --git a/usr.bin/diff/diff.h b/usr.bin/diff/diff.h
index 0264115269d..a2f63cc8d48 100644
--- a/usr.bin/diff/diff.h
+++ b/usr.bin/diff/diff.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff.h,v 1.16 2003/07/06 22:02:36 millert Exp $ */
+/* $OpenBSD: diff.h,v 1.17 2003/07/06 22:17:21 millert Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -42,6 +42,7 @@
#define D_IFDEF 4 /* Diff with merged #ifdef's */
#define D_NREVERSE 5 /* Reverse ed script with numbered
lines and no trailing . */
+#define D_BRIEF 6 /* Say if the files differ */
/*
* Output flags
diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c
index 659d0346a73..0907e3bc86a 100644
--- a/usr.bin/diff/diffdir.c
+++ b/usr.bin/diff/diffdir.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diffdir.c,v 1.20 2003/07/06 22:02:36 millert Exp $ */
+/* $OpenBSD: diffdir.c,v 1.21 2003/07/06 22:17:21 millert Exp $ */
/*
* Copyright (c) 2003 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -21,7 +21,7 @@
*/
#ifndef lint
-static const char rcsid[] = "$OpenBSD: diffdir.c,v 1.20 2003/07/06 22:02:36 millert Exp $";
+static const char rcsid[] = "$OpenBSD: diffdir.c,v 1.21 2003/07/06 22:17:21 millert Exp $";
#endif /* not lint */
#include <sys/param.h>
@@ -114,7 +114,7 @@ diffdir(char *p1, char *p2)
if (Nflag)
diffit(dent1, path1, dirlen1, path2, dirlen2);
else if (format == D_NORMAL || format == D_CONTEXT ||
- format == D_UNIFIED)
+ format == D_UNIFIED || format == D_BRIEF)
/* XXX GNU diff always prints this XXX */
printf("Only in %.*s: %s\n", (int)(dirlen1 - 1),
path1, dent1->d_name);
@@ -124,7 +124,7 @@ diffdir(char *p1, char *p2)
if (Nflag || Pflag)
diffit(dent2, path1, dirlen1, path2, dirlen2);
else if (format == D_NORMAL || format == D_CONTEXT ||
- format == D_UNIFIED)
+ format == D_UNIFIED || format == D_BRIEF)
/* XXX GNU diff always prints this XXX */
printf("Only in %.*s: %s\n", (int)(dirlen2 - 1),
path2, dent2->d_name);
diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c
index 3a5852125e5..4e15c6b8ac1 100644
--- a/usr.bin/diff/diffreg.c
+++ b/usr.bin/diff/diffreg.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: diffreg.c,v 1.27 2003/07/06 20:48:59 millert Exp $ */
+/* $OpenBSD: diffreg.c,v 1.28 2003/07/06 22:17:21 millert Exp $ */
/*
* Copyright (C) Caldera International Inc. 2001-2002.
@@ -65,7 +65,7 @@
*/
#ifndef lint
-static const char rcsid[] = "$OpenBSD: diffreg.c,v 1.27 2003/07/06 20:48:59 millert Exp $";
+static const char rcsid[] = "$OpenBSD: diffreg.c,v 1.28 2003/07/06 22:17:21 millert Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -340,6 +340,10 @@ notsame:
* Files certainly differ at this point; set status accordingly
*/
status |= 1;
+ if (format == D_BRIEF) {
+ printf("Files %s and %s differ\n", file1, file2);
+ goto closem;
+ }
if (flags & D_HEADER) {
if (format == D_EDIT)
printf("ed - %s << '-*-END-*-'\n", basename(file1));