Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 May 2022 14:08:41 GMT
From:      Tom Jones <thj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 3ddd6eb688af - main - diff3: Add help and version options
Message-ID:  <202205251408.24PE8fwL025113@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by thj:

URL: https://cgit.FreeBSD.org/src/commit/?id=3ddd6eb688af37e03cd6d56be4e0400362a179f7

commit 3ddd6eb688af37e03cd6d56be4e0400362a179f7
Author:     Tom Jones <thj@FreeBSD.org>
AuthorDate: 2022-05-25 13:53:06 +0000
Commit:     Tom Jones <thj@FreeBSD.org>
CommitDate: 2022-05-25 13:53:06 +0000

    diff3: Add help and version options
    
    Add help and version flags. Exit values in these paths are set to match
    the behaviour of gnu diff3.
---
 usr.bin/diff3/diff3.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/usr.bin/diff3/diff3.c b/usr.bin/diff3/diff3.c
index a6d765ce0f75..860af98d13e2 100644
--- a/usr.bin/diff3/diff3.c
+++ b/usr.bin/diff3/diff3.c
@@ -155,12 +155,16 @@ static void edscript(int) __dead2;
 static void Ascript(int) __dead2;
 static void mergescript(int) __dead2;
 static void increase(void);
-static void usage(void) __dead2;
+static void usage(void);
 static void printrange(FILE *, struct range *);
 
+static const char diff3_version[] = "FreeBSD diff3 20220517";
+
 enum {
 	DIFFPROG_OPT,
 	STRIPCR_OPT,
+	HELP_OPT,
+	VERSION_OPT
 };
 
 #define DIFF_PATH "/usr/bin/diff"
@@ -178,6 +182,8 @@ static struct option longopts[] = {
 	{ "merge",		no_argument,		NULL,	'm' },
 	{ "label",		required_argument,	NULL,	'L' },
 	{ "diff-program",	required_argument,	NULL,	DIFFPROG_OPT },
+	{ "help",		no_argument,		NULL,	HELP_OPT},
+	{ "version",		no_argument,		NULL,	VERSION_OPT}
 };
 
 static void
@@ -185,7 +191,6 @@ usage(void)
 {
 	fprintf(stderr, "usage: diff3 [-3aAeEimTxX] [-L label1] [-L label2] "
 	    "[-L label3] file1 file2 file3\n");
-	exit(2);
 }
 
 static int
@@ -872,6 +877,12 @@ main(int argc, char **argv)
 			strip_cr = 1;
 			diffargv[diffargc++] = __DECONST(char *, "--strip-trailing-cr");
 			break;
+		case HELP_OPT:
+			usage();
+			exit(0);
+		case VERSION_OPT:
+			printf("%s\n", diff3_version);
+			exit(0);
 		}
 	}
 	argc -= optind;
@@ -882,8 +893,10 @@ main(int argc, char **argv)
 		oflag = 1;
 	}
 
-	if (argc != 3)
+	if (argc != 3) {
 		usage();
+		exit(2);
+	}
 
 	if (caph_limit_stdio() == -1)
 		err(2, "unable to limit stdio");



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202205251408.24PE8fwL025113>