1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 00:57:45 +00:00

tar: Use the prefixed path for listing and verbose output

This commit is contained in:
Tim Schumacher 2022-03-04 16:57:16 +01:00 committed by Andreas Kling
parent e0dba2b81b
commit ff19c1cffe

View file

@ -78,19 +78,20 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return 1; return 1;
} }
for (; !tar_stream.finished(); tar_stream.advance()) { for (; !tar_stream.finished(); tar_stream.advance()) {
const Archive::TarFileHeader& header = tar_stream.header();
LexicalPath path = LexicalPath(header.filename());
if (!header.prefix().is_empty())
path = path.prepend(header.prefix());
String filename = path.string();
if (list || verbose) if (list || verbose)
outln("{}", tar_stream.header().filename()); outln("{}", filename);
if (extract) { if (extract) {
Archive::TarFileStream file_stream = tar_stream.file_contents(); Archive::TarFileStream file_stream = tar_stream.file_contents();
const Archive::TarFileHeader& header = tar_stream.header(); String absolute_path = Core::File::absolute_path(filename);
LexicalPath path = LexicalPath(header.filename());
if (!header.prefix().is_empty())
path = path.prepend(header.prefix());
String absolute_path = Core::File::absolute_path(path.string());
switch (header.type_flag()) { switch (header.type_flag()) {
case Archive::TarFileType::NormalFile: case Archive::TarFileType::NormalFile: