svn commit: r303783 - head/usr.bin/sdiff

Baptiste Daroussin bapt at FreeBSD.org
Fri Aug 5 19:14:56 UTC 2016


Author: bapt
Date: Fri Aug  5 19:14:55 2016
New Revision: 303783
URL: https://svnweb.freebsd.org/changeset/base/303783

Log:
  sdiff: remove non finish/function code
  
  2 extra options not available neither on other BSD nor in GNU sdiff:
  --diff-pid and --pipe-fd were present in the SoC code, none were usable
  
  Just remove it

Modified:
  head/usr.bin/sdiff/sdiff.c

Modified: head/usr.bin/sdiff/sdiff.c
==============================================================================
--- head/usr.bin/sdiff/sdiff.c	Fri Aug  5 19:00:45 2016	(r303782)
+++ head/usr.bin/sdiff/sdiff.c	Fri Aug  5 19:14:55 2016	(r303783)
@@ -104,9 +104,6 @@ enum {
 	HLINES_OPT,
 	LFILES_OPT,
 	DIFFPROG_OPT,
-	PIPE_FD,
-	/* pid from the diff parent (if applicable) */
-	DIFF_PID,
 
 	NOOP_OPT,
 };
@@ -120,8 +117,6 @@ static struct option longopts[] = {
 	{ "output",			required_argument,	NULL,	'o' },
 	{ "diff-program",		required_argument,	NULL,	DIFFPROG_OPT },
 
-	{ "pipe-fd",			required_argument,	NULL,	PIPE_FD },
-	{ "diff-pid",			required_argument,	NULL,	DIFF_PID },
 	/* Options processed by diff. */
 	{ "ignore-file-name-case",	no_argument,		NULL,	FCASE_IGNORE_OPT },
 	{ "no-ignore-file-name-case",	no_argument,		NULL,	FCASE_SENSITIVE_OPT },
@@ -236,7 +231,7 @@ main(int argc, char **argv)
 	FILE *diffpipe=NULL, *file1, *file2;
 	size_t diffargc = 0, wflag = WIDTH;
 	int ch, fd[2] = {-1}, status;
-	pid_t pid=0; pid_t ppid =-1;
+	pid_t pid=0;
 	const char *outfile = NULL;
 	struct option *popt;
 	char **diffargv, *diffprog = DIFF_PATH, *filename1, *filename2,
@@ -319,11 +314,6 @@ main(int argc, char **argv)
 			if (errstr)
 				errx(2, "width is %s: %s", errstr, optarg);
 			break;
-		case DIFF_PID:
-			ppid = strtonum(optarg, 0, INT_MAX, &errstr);
-			if (errstr)
-				errx(2, "diff pid value is %s: %s", errstr, optarg);
-			break;
 		case HELP_OPT:
 			for (i = 0; help_msg[i] != NULL; i++)
 				printf("%s\n", help_msg[i]);
@@ -392,35 +382,34 @@ main(int argc, char **argv)
 		errx(2, "width is too large: %zu", width);
 	line_width = width * 2 + 3;
 
-	if (ppid == -1 ) {
-		if (pipe(fd))
-			err(2, "pipe");
-
-		switch (pid = fork()) {
-		case 0:
-			/* child */
-			/* We don't read from the pipe. */
-			close(fd[0]);
-			if (dup2(fd[1], STDOUT_FILENO) == -1)
-				err(2, "child could not duplicate descriptor");
-			/* Free unused descriptor. */
-			close(fd[1]);
-			execvp(diffprog, diffargv);
-			err(2, "could not execute diff: %s", diffprog);
-			break;
-		case -1:
-			err(2, "could not fork");
-			break;
-		}
+	if (pipe(fd))
+		err(2, "pipe");
 
-		/* parent */
-		/* We don't write to the pipe. */
+	switch (pid = fork()) {
+	case 0:
+		/* child */
+		/* We don't read from the pipe. */
+		close(fd[0]);
+		if (dup2(fd[1], STDOUT_FILENO) == -1)
+			err(2, "child could not duplicate descriptor");
+		/* Free unused descriptor. */
 		close(fd[1]);
-
-		/* Open pipe to diff command. */
-		if ((diffpipe = fdopen(fd[0], "r")) == NULL)
-			err(2, "could not open diff pipe");
+		execvp(diffprog, diffargv);
+		err(2, "could not execute diff: %s", diffprog);
+		break;
+	case -1:
+		err(2, "could not fork");
+		break;
 	}
+
+	/* parent */
+	/* We don't write to the pipe. */
+	close(fd[1]);
+
+	/* Open pipe to diff command. */
+	if ((diffpipe = fdopen(fd[0], "r")) == NULL)
+		err(2, "could not open diff pipe");
+
 	if ((file1 = fopen(filename1, "r")) == NULL)
 		err(2, "could not open %s", filename1);
 	if ((file2 = fopen(filename2, "r")) == NULL)


More information about the svn-src-head mailing list