]> Savannah Git Hosting - gnulib.git/commitdiff
init.sh: correct previous change
authorJim Meyering <meyering@redhat.com>
Thu, 22 Dec 2011 12:12:19 +0000 (13:12 +0100)
committerJim Meyering <meyering@redhat.com>
Thu, 22 Dec 2011 12:12:19 +0000 (13:12 +0100)
* tests/init.sh (compare): My previous change was wrong.
Don't clobber "$?".  Spotted by Stefano Lattarini and Pádraig Brady.

ChangeLog
tests/init.sh

index df1f5b540ae0957f3b2535828a2a68ace01a7429..7ca5e7b755564339cc848dd455a04b210374d010 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2011-12-22  Jim Meyering  <meyering@redhat.com>
 
+       init.sh: correct previous change
+       * tests/init.sh (compare): My previous change was wrong.
+       Don't clobber "$?".  Spotted by Stefano Lattarini and Pádraig Brady.
+
        init.sh: avoid unwarranted test failure when using "set -e"
        * tests/init.sh (compare): Ignore nonzero exit from compare_dev_null_.
        Otherwise, in a test script that uses "set -e" (like many in vc-dwim)
index 458a44862e81e78db02a15fd0208bfdff87bdd9d..1e1f0e3660a09ff0ebbcadcbe716c385ef252b8c 100644 (file)
@@ -304,11 +304,17 @@ fi
 # Otherwise, propagate $? to caller: any diffs have already been printed.
 compare ()
 {
-  compare_dev_null_ "$@" || :
-  case $? in
-    0|1) return $?;;
-    *) compare_ "$@";;
-  esac
+  # This looks like it can be factored to use a simple "case $?"
+  # after unchecked compare_dev_null_ invocation, but that would
+  # fail in a "set -e" environment.
+  if compare_dev_null_ "$@"; then
+    return 0
+  else
+    case $? in
+      1) return 1;;
+      *) compare_ "$@";;
+    esac
+  fi
 }
 
 # An arbitrary prefix to help distinguish test directories.