(Fcopy_file): Close output before setting its times.
authorRichard M. Stallman <rms@gnu.org>
Sat, 14 May 1994 06:34:26 +0000 (06:34 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 14 May 1994 06:34:26 +0000 (06:34 +0000)
Close both before discarding the unwind protects.

src/fileio.c

index 0df30ef..4f1ff5b 100644 (file)
@@ -1803,6 +1803,10 @@ A prefix arg makes KEEP-TIME non-nil.")
        report_file_error ("I/O error", Fcons (newname, Qnil));
   immediate_quit = 0;
 
+  /* Closing the output clobbers the file times on some systems.  */
+  if (close (ofd) < 0)
+    report_file_error ("I/O error", Fcons (newname, Qnil));
+
   if (input_file_statable_p)
     {
       if (!NILP (keep_date))
@@ -1818,13 +1822,11 @@ A prefix arg makes KEEP-TIME non-nil.")
        chmod (XSTRING (newname)->data, st.st_mode & 07777);
     }
 
+  close (ifd);
+
   /* Discard the unwind protects.  */
   specpdl_ptr = specpdl + count;
 
-  close (ifd);
-  if (close (ofd) < 0)
-    report_file_error ("I/O error", Fcons (newname, Qnil));
-
   UNGCPRO;
   return Qnil;
 }