Index: utils/OFZIP.m ================================================================== --- utils/OFZIP.m +++ utils/OFZIP.m @@ -203,19 +203,25 @@ OFZIPArchiveEntry *entry; while ((entry = [enumerator nextObject]) != nil) { void *pool = objc_autoreleasePoolPush(); - if (_outputLevel > 0) { + if (_outputLevel >= 1) { OFString *date = [[entry modificationDate] localDateStringWithFormat: @"%Y-%m-%d %H:%M:%S"]; [of_stdout writeFormat: @"%@: %" PRIu64 @" (%" PRIu64 @") bytes; %08X; %@; " - @"%@\n", [entry fileName], [entry uncompressedSize], + @"%@", [entry fileName], [entry uncompressedSize], [entry compressedSize], [entry CRC32], date, [entry fileComment]]; + + if (_outputLevel >= 3) + [of_stdout writeFormat: @"; %@", + [entry extraField]]; + + [of_stdout writeString: @"\n"]; } else [of_stdout writeLine: [entry fileName]]; objc_autoreleasePoolPop(pool); } @@ -267,17 +273,17 @@ _exitStatus = 1; continue; } } - if (_outputLevel > -1) + if (_outputLevel >= 0) [of_stdout writeFormat: @"Extracting %@...", fileName]; if ([fileName hasSuffix: @"/"]) { [OFFile createDirectoryAtPath: outFileName createParents: true]; - if (_outputLevel > -1) + if (_outputLevel >= 0) [of_stdout writeLine: @" done"]; continue; } directory = [outFileName stringByDeletingLastPathComponent]; @@ -287,11 +293,11 @@ if ([OFFile fileExistsAtPath: outFileName] && _override != 1) { OFString *line; if (_override == -1) { - if (_outputLevel > -1) + if (_outputLevel >= 0) [of_stdout writeLine: @" skipped"]; continue; } do { @@ -335,20 +341,20 @@ written += length; newPercent = (written == size ? 100 : (int_fast8_t)(written * 100 / size)); - if (_outputLevel > -1 && percent != newPercent) { + if (_outputLevel >= 0 && percent != newPercent) { percent = newPercent; [of_stdout writeFormat: @"\rExtracting %@... %3u%%", fileName, percent]; } } - if (_outputLevel > -1) + if (_outputLevel >= 0) [of_stdout writeFormat: @"\rExtracting %@... done\n", fileName]; objc_autoreleasePoolPop(pool); }