From ff19c1cffe1670774434026e8bbab53dea282678 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Fri, 4 Mar 2022 16:57:16 +0100 Subject: [PATCH] tar: Use the prefixed path for listing and verbose output --- Userland/Utilities/tar.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Userland/Utilities/tar.cpp b/Userland/Utilities/tar.cpp index e71350a854..763dc1b1eb 100644 --- a/Userland/Utilities/tar.cpp +++ b/Userland/Utilities/tar.cpp @@ -78,19 +78,20 @@ ErrorOr serenity_main(Main::Arguments arguments) return 1; } 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) - outln("{}", tar_stream.header().filename()); + outln("{}", filename); if (extract) { Archive::TarFileStream file_stream = tar_stream.file_contents(); - const Archive::TarFileHeader& header = tar_stream.header(); - - LexicalPath path = LexicalPath(header.filename()); - if (!header.prefix().is_empty()) - path = path.prepend(header.prefix()); - - String absolute_path = Core::File::absolute_path(path.string()); + String absolute_path = Core::File::absolute_path(filename); switch (header.type_flag()) { case Archive::TarFileType::NormalFile: