|
@@ -338,24 +338,16 @@ static void printMode(unsigned mode) {
|
|
// modification time are also printed.
|
|
// modification time are also printed.
|
|
static void doDisplayTable(StringRef Name, const object::Archive::Child &C) {
|
|
static void doDisplayTable(StringRef Name, const object::Archive::Child &C) {
|
|
if (Verbose) {
|
|
if (Verbose) {
|
|
- Expected<sys::fs::perms> ModeOrErr = C.getAccessMode();
|
|
|
|
- failIfError(ModeOrErr.takeError());
|
|
|
|
- sys::fs::perms Mode = ModeOrErr.get();
|
|
|
|
|
|
+ sys::fs::perms Mode = C.getAccessMode();
|
|
printMode((Mode >> 6) & 007);
|
|
printMode((Mode >> 6) & 007);
|
|
printMode((Mode >> 3) & 007);
|
|
printMode((Mode >> 3) & 007);
|
|
printMode(Mode & 007);
|
|
printMode(Mode & 007);
|
|
- Expected<unsigned> UIDOrErr = C.getUID();
|
|
|
|
- failIfError(UIDOrErr.takeError());
|
|
|
|
- outs() << ' ' << UIDOrErr.get();
|
|
|
|
- Expected<unsigned> GIDOrErr = C.getGID();
|
|
|
|
- failIfError(GIDOrErr.takeError());
|
|
|
|
- outs() << '/' << GIDOrErr.get();
|
|
|
|
|
|
+ outs() << ' ' << C.getUID();
|
|
|
|
+ outs() << '/' << C.getGID();
|
|
Expected<uint64_t> Size = C.getSize();
|
|
Expected<uint64_t> Size = C.getSize();
|
|
failIfError(Size.takeError());
|
|
failIfError(Size.takeError());
|
|
outs() << ' ' << format("%6llu", Size.get());
|
|
outs() << ' ' << format("%6llu", Size.get());
|
|
- Expected<sys::TimeValue> ModTimeOrErr = C.getLastModified();
|
|
|
|
- failIfError(ModTimeOrErr.takeError());
|
|
|
|
- outs() << ' ' << ModTimeOrErr.get().str();
|
|
|
|
|
|
+ outs() << ' ' << C.getLastModified().str();
|
|
outs() << ' ';
|
|
outs() << ' ';
|
|
}
|
|
}
|
|
outs() << Name << "\n";
|
|
outs() << Name << "\n";
|
|
@@ -365,9 +357,7 @@ static void doDisplayTable(StringRef Name, const object::Archive::Child &C) {
|
|
// system.
|
|
// system.
|
|
static void doExtract(StringRef Name, const object::Archive::Child &C) {
|
|
static void doExtract(StringRef Name, const object::Archive::Child &C) {
|
|
// Retain the original mode.
|
|
// Retain the original mode.
|
|
- Expected<sys::fs::perms> ModeOrErr = C.getAccessMode();
|
|
|
|
- failIfError(ModeOrErr.takeError());
|
|
|
|
- sys::fs::perms Mode = ModeOrErr.get();
|
|
|
|
|
|
+ sys::fs::perms Mode = C.getAccessMode();
|
|
|
|
|
|
int FD;
|
|
int FD;
|
|
failIfError(sys::fs::openFileForWrite(Name, FD, sys::fs::F_None, Mode), Name);
|
|
failIfError(sys::fs::openFileForWrite(Name, FD, sys::fs::F_None, Mode), Name);
|
|
@@ -384,12 +374,9 @@ static void doExtract(StringRef Name, const object::Archive::Child &C) {
|
|
|
|
|
|
// 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) {
|
|
|
|
- Expected<sys::TimeValue> ModTimeOrErr = C.getLastModified();
|
|
|
|
- failIfError(ModTimeOrErr.takeError());
|
|
|
|
|
|
+ if (OriginalDates)
|
|
failIfError(
|
|
failIfError(
|
|
- sys::fs::setLastModificationAndAccessTime(FD, ModTimeOrErr.get()));
|
|
|
|
- }
|
|
|
|
|
|
+ sys::fs::setLastModificationAndAccessTime(FD, C.getLastModified()));
|
|
|
|
|
|
if (close(FD))
|
|
if (close(FD))
|
|
fail("Could not close the file");
|
|
fail("Could not close the file");
|
|
@@ -524,9 +511,7 @@ static InsertAction computeInsertAction(ArchiveOperation Operation,
|
|
// operation.
|
|
// operation.
|
|
sys::fs::file_status Status;
|
|
sys::fs::file_status Status;
|
|
failIfError(sys::fs::status(*MI, Status), *MI);
|
|
failIfError(sys::fs::status(*MI, Status), *MI);
|
|
- Expected<sys::TimeValue> ModTimeOrErr = Member.getLastModified();
|
|
|
|
- failIfError(ModTimeOrErr.takeError());
|
|
|
|
- if (Status.getLastModificationTime() < ModTimeOrErr.get()) {
|
|
|
|
|
|
+ if (Status.getLastModificationTime() < Member.getLastModified()) {
|
|
if (PosName.empty())
|
|
if (PosName.empty())
|
|
return IA_AddOldMember;
|
|
return IA_AddOldMember;
|
|
return IA_MoveOldMember;
|
|
return IA_MoveOldMember;
|