mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-03 12:18:00 +00:00
Always set the mode.
This matches GNU ar behavior. Also remove the now unused getFileStatus method. Not sure how to add a test, it would have to run ls -l or something like that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184337 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -137,15 +137,6 @@ class ArchiveMember : public ilist_node<ArchiveMember> {
|
|||||||
/// @brief Determine if the member has a long file name
|
/// @brief Determine if the member has a long file name
|
||||||
bool hasLongFilename() const { return flags&HasLongFilenameFlag; }
|
bool hasLongFilename() const { return flags&HasLongFilenameFlag; }
|
||||||
|
|
||||||
/// This method returns the status info (like Unix stat(2)) for the archive
|
|
||||||
/// member. The status info provides the file's size, permissions, and
|
|
||||||
/// modification time. The contents of the Path::StatusInfo structure, other
|
|
||||||
/// than the size and modification time, may not have utility on non-Unix
|
|
||||||
/// systems.
|
|
||||||
/// @returns the status info for the archive member
|
|
||||||
/// @brief Obtain the status info for the archive member
|
|
||||||
const sys::FileStatus &getFileStatus() const { return info; }
|
|
||||||
|
|
||||||
/// This method causes the archive member to be replaced with the contents
|
/// This method causes the archive member to be replaced with the contents
|
||||||
/// of the file specified by \p File. The contents of \p this will be
|
/// of the file specified by \p File. The contents of \p this will be
|
||||||
/// updated to reflect the new data from \p File. The \p File must exist and
|
/// updated to reflect the new data from \p File. The \p File must exist and
|
||||||
|
@@ -440,12 +440,18 @@ doExtract(std::string* ErrMsg) {
|
|||||||
file.write(data,len);
|
file.write(data,len);
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
|
sys::PathWithStatus PWS(I->getPath());
|
||||||
|
sys::FileStatus Status = *PWS.getFileStatus();
|
||||||
|
|
||||||
|
// Retain the original mode.
|
||||||
|
Status.mode = I->getMode();
|
||||||
|
|
||||||
// If we're supposed to retain the original modification times, etc. do so
|
// If we're supposed to retain the original modification times, etc. do so
|
||||||
// now.
|
// now.
|
||||||
if (OriginalDates) {
|
if (OriginalDates)
|
||||||
sys::PathWithStatus PWS(I->getPath());
|
Status.modTime = I->getModTime();
|
||||||
PWS.setStatusInfoOnDisk(I->getFileStatus());
|
|
||||||
}
|
PWS.setStatusInfoOnDisk(Status);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
Reference in New Issue
Block a user