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++;
                }
        }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to