diff options
author | Tim Schumacher <timschumi@gmx.de> | 2021-11-21 19:56:48 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-11-22 09:03:47 +0100 |
commit | 0d679bf34892b8e4577798d7e877af40f3cea0e8 (patch) | |
tree | a16b712560f5938a99d8b65650c06f325ac2b12e | |
parent | 07351762c75e248d8bf77a2972e0527f02a7fa75 (diff) | |
download | serenity-0d679bf34892b8e4577798d7e877af40f3cea0e8.zip |
tar: Implement usage of prefixes when extracting
-rw-r--r-- | Userland/Utilities/tar.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Userland/Utilities/tar.cpp b/Userland/Utilities/tar.cpp index ce36b8db94..09b18146e2 100644 --- a/Userland/Utilities/tar.cpp +++ b/Userland/Utilities/tar.cpp @@ -76,7 +76,13 @@ int main(int argc, char** argv) Archive::TarFileStream file_stream = tar_stream.file_contents(); const Archive::TarFileHeader& header = tar_stream.header(); - String absolute_path = Core::File::absolute_path(header.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()) { case Archive::TarFileType::NormalFile: case Archive::TarFileType::AlternateNormalFile: { |