Browse Source

Preserve timestamps on files on tar extract.

Conversion to libarchive changed the behavior of
cmake -E tar xzf. This commit fixes that oversight.
David Cole 15 years ago
parent
commit
666f328858
1 changed files with 10 additions and 2 deletions
  1. 10 2
      Source/cmSystemTools.cxx

+ 10 - 2
Source/cmSystemTools.cxx

@@ -1931,12 +1931,20 @@ bool extract_tar(const char* outFileName, bool verbose,
       }
     if(extract)
       {
+      r = archive_write_disk_set_options(ext, ARCHIVE_EXTRACT_TIME);
+      if (r != ARCHIVE_OK)
+        {
+        cmSystemTools::Error(
+          "Problem with archive_write_disk_set_options(): ",
+          archive_error_string(ext));
+        }
+
       r = archive_write_header(ext, entry);
       if (r != ARCHIVE_OK)
         {
         cmSystemTools::Error("Problem with archive_write_header(): ",
-                             archive_error_string(a));
-        cmSystemTools::Error("Curren file:", 
+                             archive_error_string(ext));
+        cmSystemTools::Error("Current file:",
                              archive_entry_pathname(entry));
         }
       else