From e23d43edceee781f603ca3ad560b883bc139a6ae Mon Sep 17 00:00:00 2001 From: kevans Date: Wed, 27 Jun 2018 21:00:09 +0000 Subject: [PATCH] MFC r333157: cmp(1): Provide some long options These match GNU cmp(1) for compatibility where applicable. Future work might implement the -i option from GNU cmp(1) to express skip either in terms of both files or of the form "SKIP1:SKIP2" rather than specifying them as additional arguments to cmp(1). --- usr.bin/cmp/cmp.1 | 6 +++--- usr.bin/cmp/cmp.c | 11 ++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/usr.bin/cmp/cmp.1 b/usr.bin/cmp/cmp.1 index 142bd3ece24..ae95be39f96 100644 --- a/usr.bin/cmp/cmp.1 +++ b/usr.bin/cmp/cmp.1 @@ -31,7 +31,7 @@ .\" @(#)cmp.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd November 18, 2013 +.Dd May 1, 2018 .Dt CMP 1 .Os .Sh NAME @@ -59,10 +59,10 @@ The following options are available: .Bl -tag -width indent .It Fl h Do not follow symbolic links. -.It Fl l +.It Fl l , Fl -verbose Print the byte number (decimal) and the differing byte values (octal) for each difference. -.It Fl s +.It Fl s , Fl -silent , Fl -quiet Print nothing for differing files; return exit status only. .It Fl x diff --git a/usr.bin/cmp/cmp.c b/usr.bin/cmp/cmp.c index f3ac7178eca..af99d2f3772 100644 --- a/usr.bin/cmp/cmp.c +++ b/usr.bin/cmp/cmp.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -57,6 +58,14 @@ __FBSDID("$FreeBSD$"); int lflag, sflag, xflag, zflag; +static const struct option long_opts[] = +{ + {"verbose", no_argument, NULL, 'l'}, + {"silent", no_argument, NULL, 's'}, + {"quiet", no_argument, NULL, 's'}, + {NULL, no_argument, NULL, 0} +}; + static void usage(void); int @@ -68,7 +77,7 @@ main(int argc, char *argv[]) const char *file1, *file2; oflag = O_RDONLY; - while ((ch = getopt(argc, argv, "hlsxz")) != -1) + while ((ch = getopt_long(argc, argv, "+hlsxz", long_opts, NULL)) != -1) switch (ch) { case 'h': /* Don't follow symlinks */ oflag |= O_NOFOLLOW; -- 2.45.0