Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jul 2017 18:06:42 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r321078 - head/usr.bin/diff
Message-ID:  <201707171806.v6HI6gea078256@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Mon Jul 17 18:06:42 2017
New Revision: 321078
URL: https://svnweb.freebsd.org/changeset/base/321078

Log:
  Fix exit status with -rq when there is a file in one directory but not another,
  i.e., when print_only is called.
  
  Prior to this change, -rq was always returning 0. After this change it will
  return 1 if there is a difference between two directories.
  
  This fixes compatibility with GNU diff and unbreaks backwards compatibility
  expectations.
  
  Found when trying to extend diff_test:brief_format_test.
  
  MFC after:	2 months
  MFC with:	r321076, r321077

Modified:
  head/usr.bin/diff/diffdir.c

Modified: head/usr.bin/diff/diffdir.c
==============================================================================
--- head/usr.bin/diff/diffdir.c	Mon Jul 17 17:50:50 2017	(r321077)
+++ head/usr.bin/diff/diffdir.c	Mon Jul 17 18:06:42 2017	(r321078)
@@ -134,16 +134,20 @@ diffdir(char *p1, char *p2, int flags)
 			if (Nflag)
 				diffit(dent1, path1, dirlen1, path2, dirlen2,
 				    flags);
-			else
+			else {
 				print_only(path1, dirlen1, dent1->d_name);
+				status = 1;
+			}
 			dp1++;
 		} else {
 			/* file only in second dir, only diff if -N or -P */
 			if (Nflag || Pflag)
 				diffit(dent2, path1, dirlen1, path2, dirlen2,
 				    flags);
-			else
+			else {
 				print_only(path2, dirlen2, dent2->d_name);
+				status = 1;
+			}
 			dp2++;
 		}
 	}



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