svn commit: r367656 - stable/12/usr.bin/diff

Kyle Evans kevans at FreeBSD.org
Sat Nov 14 00:59:55 UTC 2020


Author: kevans
Date: Sat Nov 14 00:59:55 2020
New Revision: 367656
URL: https://svnweb.freebsd.org/changeset/base/367656

Log:
  MFC r367076: diff: don't force the format to 'context' with -p immediately
  
  Instead, leave the fomat as unspecified (if it hasn't been) and use the
  -p flag as a hint to 'context' if no other formatting option is specified.
  
  This fixes `diff -purw`, used frequently by emaste, and matches the behavior
  of its GNU counterpart.
  
  PR:		250015

Modified:
  stable/12/usr.bin/diff/diff.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/usr.bin/diff/diff.c
==============================================================================
--- stable/12/usr.bin/diff/diff.c	Fri Nov 13 23:18:04 2020	(r367655)
+++ stable/12/usr.bin/diff/diff.c	Sat Nov 14 00:59:55 2020	(r367656)
@@ -210,17 +210,6 @@ main(int argc, char **argv)
 			diff_format = D_NREVERSE;
 			break;
 		case 'p':
-			/*
-			 * If it's not unset and it's not set to context or
-			 * unified, we'll error out here as a conflicting
-			 * format.  If it's unset, we'll go ahead and set it to
-			 * context.
-			 */
-			if (FORMAT_MISMATCHED(D_CONTEXT) &&
-			    FORMAT_MISMATCHED(D_UNIFIED))
-				conflicting_format();
-			if (diff_format == D_UNSET)
-				diff_format = D_CONTEXT;
 			dflags |= D_PROTOTYPE;
 			break;
 		case 'P':
@@ -320,6 +309,8 @@ main(int argc, char **argv)
 		newarg = optind != prevoptind;
 		prevoptind = optind;
 	}
+	if (diff_format == D_UNSET && (dflags & D_PROTOTYPE) != 0)
+		diff_format = D_CONTEXT;
 	if (diff_format == D_UNSET)
 		diff_format = D_NORMAL;
 	argc -= optind;


More information about the svn-src-all mailing list