diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index d2114543e..f18685fc4 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1800,8 +1800,10 @@ bool cmSystemTools::CreateTar(const char* outFileName, std::cout << rp << "\n"; } // Set the name of the entry to the file name - archive_entry_set_pathname(entry, rp.c_str()); - res = archive_read_disk_entry_from_file(disk, entry, -1, 0); + archive_entry_set_pathname(entry, rp.c_str()); + struct stat s; + stat(fileIt->c_str(), &s); + archive_read_disk_entry_from_file(disk, entry, -1, &s); CHECK_ARCHIVE_ERROR(res, "read disk entry:"); // write entry header @@ -1821,7 +1823,6 @@ bool cmSystemTools::CreateTar(const char* outFileName, while (len > 0) { int wlen = archive_write_data(a, buff, len); -#if 0 if(wlen != len) { cmOStringStream error; @@ -1833,7 +1834,6 @@ bool cmSystemTools::CreateTar(const char* outFileName, ); return false; } -#endif len = fread(buff, 1, sizeof(buff), file); } // close the file and free the entry