From 666f328858e5c47a0b2286af95cbc127f28a663b Mon Sep 17 00:00:00 2001 From: David Cole Date: Thu, 9 Sep 2010 12:57:14 -0400 Subject: [PATCH] Preserve timestamps on files on tar extract. Conversion to libarchive changed the behavior of cmake -E tar xzf. This commit fixes that oversight. --- Source/cmSystemTools.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index 837892214..531616d42 100644 --- a/Source/cmSystemTools.cxx +++ b/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