From d2b76ef70a19a09ea9aab5aaeb614dc7c9d195ed Mon Sep 17 00:00:00 2001 From: Andy Fiddaman Date: Wed, 23 Feb 2022 11:09:07 +0000 Subject: 14534 diff could support -q Reviewed by: Hans Rosenfeld Reviewed by: Toomas Soome Approved by: Robert Mustacchi --- usr/src/cmd/diff/diff.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'usr/src/cmd/diff/diff.c') diff --git a/usr/src/cmd/diff/diff.c b/usr/src/cmd/diff/diff.c index 5a2ae27492..16a3f3b06d 100644 --- a/usr/src/cmd/diff/diff.c +++ b/usr/src/cmd/diff/diff.c @@ -37,6 +37,10 @@ * contributors. */ +/* + * Copyright 2022 OmniOS Community Edition (OmniOSce) Association. + */ + /* * diff - differential file comparison * @@ -232,7 +236,7 @@ main(int argc, char **argv) diffargv = argv; whichtemp = 0; - while ((flag = getopt(argc, argv, "bitwcuefhnlrsC:D:S:U:")) != EOF) { + while ((flag = getopt(argc, argv, "bitwcuefhnlqrsC:D:S:U:")) != EOF) { switch (flag) { case 'D': opt = D_IFDEF; @@ -294,6 +298,10 @@ main(int argc, char **argv) opt = D_NREVERSE; break; + case 'q': + qflag = 1; + break; + case 'r': rflag = 1; break; @@ -462,6 +470,13 @@ notsame: (void) fclose(input[1]); done(); } + if (qflag) { + (void) printf(gettext("Files %s and %s differ\n"), + file1, file2); + (void) fclose(input[0]); + (void) fclose(input[1]); + done(); + } prepare(0, file1); prepare(1, file2); prune(); @@ -1796,7 +1811,7 @@ useless(char *cp) if (cp[1] == '.' && cp[2] == '\0') return (1); /* directory ".." */ } - if (start && strcmp(start, cp) > 0) + if (strcmp(start, cp) > 0) return (1); return (0); } @@ -2041,11 +2056,11 @@ static void usage(void) { (void) fprintf(stderr, gettext( - "usage: diff [-bitw] [-c | -e | -f | -h | -n | -u] file1 " + "usage: diff [-biqtw] [-c | -e | -f | -h | -n | -u] file1 " "file2\n" - " diff [-bitw] [-C number | -U number] file1 file2\n" - " diff [-bitw] [-D string] file1 file2\n" - " diff [-bitw] [-c | -e | -f | -h | -n | -u] [-l] [-r] " + " diff [-biqtw] [-C number | -U number] file1 file2\n" + " diff [-biqtw] [-D string] file1 file2\n" + " diff [-biqtw] [-c | -e | -f | -h | -n | -u] [-l] [-r] " "[-s] [-S name] directory1 directory2\n")); status = 2; done(); -- cgit v1.2.3