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). MFC after: 1 month
This commit is contained in:
parent
a597327b90
commit
8facfdcf21
@ -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
|
||||
|
@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <getopt.h>
|
||||
#include <nl_types.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -62,6 +63,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
|
||||
@ -75,7 +84,7 @@ main(int argc, char *argv[])
|
||||
uint32_t fcntls;
|
||||
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user