Index: utils/ofarc/GZIPArchive.m ================================================================== --- utils/ofarc/GZIPArchive.m +++ utils/ofarc/GZIPArchive.m @@ -41,10 +41,26 @@ [fileManager setAttributes: destinationAttributes ofItemAtPath: destination]; #endif } + +static void +setModificationDate(OFString *path, OFGZIPStream *stream) +{ + OFDate *modificationDate = stream.modificationDate; + of_file_attributes_t attributes; + + if (modificationDate == nil) + return; + + attributes = [OFDictionary + dictionaryWithObject: modificationDate + forKey: of_file_attribute_key_modification_date]; + [[OFFileManager defaultManager] setAttributes: attributes + ofItemAtPath: path]; +} @implementation GZIPArchive + (void)initialize { if (self == [GZIPArchive class]) @@ -129,10 +145,13 @@ app->_exitStatus = 1; return; } } + [output close]; + setModificationDate(fileName, _stream); + if (app->_outputLevel >= 0) { [of_stdout writeString: @"\r"]; [of_stdout writeLine: OF_LOCALIZED(@"extracting_file_done", @"Extracting %[file]... done", @"file", fileName)];