install.c: Preserve time stamps before changing owner or file mode bits,
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 4 Dec 2006 09:06:11 +0000 (10:06 +0100)
committerJim Meyering <jim@meyering.net>
Mon, 4 Dec 2006 09:06:11 +0000 (10:06 +0100)
for consistency with other coreutils programs.

ChangeLog
src/install.c

index 7fa9809..551668c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/install.c (install_file_in_file): Preserve time stamps
+       before changing owner or file mode bits, for consistency with
+       other coreutils programs.
+
 2006-12-03  Jim Meyering  <jim@meyering.net>
 
        * tests/misc/date-sec: Output a fixed string.
index 1ccc774..a5d832f 100644 (file)
@@ -459,11 +459,10 @@ install_file_in_file (const char *from, const char *to,
     return false;
   if (strip_files)
     strip (to);
-  if (! change_attributes (to))
+  if (x->preserve_timestamps && (strip_files || ! S_ISREG (from_sb.st_mode))
+      && ! change_timestamps (&from_sb, to))
     return false;
-  if (x->preserve_timestamps && (strip_files || ! S_ISREG (from_sb.st_mode)))
-    return change_timestamps (&from_sb, to);
-  return true;
+  return change_attributes (to);
 }
 
 /* Copy file FROM into directory TO_DIR, keeping its same name,