mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-31 05:09:12 +00:00
LibArchive+Utilities: Stop using DeprecatedString
This also slightly improves error propagation in tar, unzip and zip.
This commit is contained in:
parent
8377adfde0
commit
28c99e7a1f
Notes:
sideshowbarker
2024-07-17 01:58:25 +09:00
Author: https://github.com/implicitfield
Commit: 28c99e7a1f
Pull-request: https://github.com/SerenityOS/serenity/pull/16626
Reviewed-by: https://github.com/ADKaster
Reviewed-by: https://github.com/AtkinsSJ
Reviewed-by: https://github.com/timschumi ✅
10 changed files with 57 additions and 57 deletions
|
@ -142,34 +142,34 @@ TarOutputStream::TarOutputStream(Core::Stream::Handle<Core::Stream::Stream> stre
|
|||
{
|
||||
}
|
||||
|
||||
ErrorOr<void> TarOutputStream::add_directory(DeprecatedString const& path, mode_t mode)
|
||||
ErrorOr<void> TarOutputStream::add_directory(StringView path, mode_t mode)
|
||||
{
|
||||
VERIFY(!m_finished);
|
||||
TarFileHeader header {};
|
||||
header.set_size(0);
|
||||
header.set_filename_and_prefix(DeprecatedString::formatted("{}/", path)); // Old tar implementations assume directory names end with a /
|
||||
TRY(header.set_size(0));
|
||||
header.set_filename_and_prefix(TRY(String::formatted("{}/", path))); // Old tar implementations assume directory names end with a /
|
||||
header.set_type_flag(TarFileType::Directory);
|
||||
header.set_mode(mode);
|
||||
TRY(header.set_mode(mode));
|
||||
header.set_magic(gnu_magic);
|
||||
header.set_version(gnu_version);
|
||||
header.calculate_checksum();
|
||||
TRY(header.calculate_checksum());
|
||||
TRY(m_stream->write_entire_buffer(Bytes { &header, sizeof(header) }));
|
||||
u8 padding[block_size] = { 0 };
|
||||
TRY(m_stream->write_entire_buffer(Bytes { &padding, block_size - sizeof(header) }));
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> TarOutputStream::add_file(DeprecatedString const& path, mode_t mode, ReadonlyBytes bytes)
|
||||
ErrorOr<void> TarOutputStream::add_file(StringView path, mode_t mode, ReadonlyBytes bytes)
|
||||
{
|
||||
VERIFY(!m_finished);
|
||||
TarFileHeader header {};
|
||||
header.set_size(bytes.size());
|
||||
TRY(header.set_size(bytes.size()));
|
||||
header.set_filename_and_prefix(path);
|
||||
header.set_type_flag(TarFileType::NormalFile);
|
||||
header.set_mode(mode);
|
||||
TRY(header.set_mode(mode));
|
||||
header.set_magic(gnu_magic);
|
||||
header.set_version(gnu_version);
|
||||
header.calculate_checksum();
|
||||
TRY(header.calculate_checksum());
|
||||
TRY(m_stream->write_entire_buffer(ReadonlyBytes { &header, sizeof(header) }));
|
||||
constexpr Array<u8, block_size> padding { 0 };
|
||||
TRY(m_stream->write_entire_buffer(ReadonlyBytes { &padding, block_size - sizeof(header) }));
|
||||
|
@ -181,18 +181,18 @@ ErrorOr<void> TarOutputStream::add_file(DeprecatedString const& path, mode_t mod
|
|||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> TarOutputStream::add_link(DeprecatedString const& path, mode_t mode, StringView link_name)
|
||||
ErrorOr<void> TarOutputStream::add_link(StringView path, mode_t mode, StringView link_name)
|
||||
{
|
||||
VERIFY(!m_finished);
|
||||
TarFileHeader header {};
|
||||
header.set_size(0);
|
||||
TRY(header.set_size(0));
|
||||
header.set_filename_and_prefix(path);
|
||||
header.set_type_flag(TarFileType::SymLink);
|
||||
header.set_mode(mode);
|
||||
TRY(header.set_mode(mode));
|
||||
header.set_magic(gnu_magic);
|
||||
header.set_version(gnu_version);
|
||||
header.set_link_name(link_name);
|
||||
header.calculate_checksum();
|
||||
TRY(header.calculate_checksum());
|
||||
TRY(m_stream->write_entire_buffer(Bytes { &header, sizeof(header) }));
|
||||
u8 padding[block_size] = { 0 };
|
||||
TRY(m_stream->write_entire_buffer(Bytes { &padding, block_size - sizeof(header) }));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue