Cameron Youell
1d24f394c6
Everywhere: Use LibFileSystem
where trivial
2023-03-21 19:03:21 +00:00
Tim Schumacher
16cb127c0b
tar: Add partial support for XZ-compressed archives :^)
2023-03-21 10:25:13 +01:00
Tim Schumacher
df30fd6232
tar: Add partial support for LZMA-compressed archives
2023-03-20 12:15:38 +02:00
Tim Schumacher
d5871f5717
AK: Rename Stream::{read,write} to Stream::{read_some,write_some}
...
Similar to POSIX read, the basic read and write functions of AK::Stream
do not have a lower limit of how much data they read or write (apart
from "none at all").
Rename the functions to "read some [data]" and "write some [data]" (with
"data" being omitted, since everything here is reading and writing data)
to make them sufficiently distinct from the functions that ensure to
use the entire buffer (which should be the go-to function for most
usages).
No functional changes, just a lot of new FIXMEs.
2023-03-13 15:16:20 +00:00
Tim Schumacher
43f98ac6e1
Everywhere: Remove the AK::
qualifier from Stream usages
2023-02-13 00:50:07 +00:00
Tim Schumacher
874c7bba28
LibCore: Remove Stream.h
2023-02-13 00:50:07 +00:00
Tim Schumacher
606a3982f3
LibCore: Move Stream-based file into the Core
namespace
2023-02-13 00:50:07 +00:00
Tim Schumacher
d43a7eae54
LibCore: Rename File
to DeprecatedFile
...
As usual, this removes many unused includes and moves used includes
further down the chain.
2023-02-13 00:50:07 +00:00
Timothy Flynn
4a916cd379
Everywhere: Remove needless copies of Error / ErrorOr instances
...
Either take the underlying objects with release_* methods or move() the
instances around.
2023-02-10 09:08:52 +00:00
Tim Schumacher
8464da1439
AK: Move Stream
and SeekableStream
from LibCore
...
`Stream` will be qualified as `AK::Stream` until we remove the
`Core::Stream` namespace. `IODevice` now reuses the `SeekMode` that is
defined by `SeekableStream`, since defining its own would require us to
qualify it with `AK::SeekMode` everywhere.
2023-01-29 19:16:44 -07:00
Tim Schumacher
0245614a4f
LibCore: Remove FileStream
2023-01-20 20:50:42 +00:00
Tim Schumacher
a212bc3052
LibCompress: Port GzipCompressor
to Core::Stream
2023-01-10 10:28:26 +01:00
implicitfield
28c99e7a1f
LibArchive+Utilities: Stop using DeprecatedString
...
This also slightly improves error propagation in tar, unzip and zip.
2023-01-08 09:54:08 +00:00
Ben Wiederhake
b83cb09db1
Everywhere: Fix badly-formatted includes
...
In 7c5e30daaa
, the focus was "only" on
Userland/Libraries/, whereas this commit cleans up the remaining
headers in the repo, and any new badly-formatted include.
2023-01-02 11:06:15 -05:00
Tim Schumacher
69de709625
LibArchive: Do some error propagation while packing tar files
2022-12-14 15:20:37 +00:00
Tim Schumacher
1ec646ab94
LibArchive: Port TarOutputStream
to Core::Stream
2022-12-14 15:20:37 +00:00
Tim Schumacher
f93c7fbb5e
LibCompress: Port GzipDecompressor to Core::Stream
2022-12-10 12:05:55 +00:00
Linus Groh
57dc179b1f
Everywhere: Rename to_{string => deprecated_string}() where applicable
...
This will make it easier to support both string types at the same time
while we convert code, and tracking down remaining uses.
One big exception is Value::to_string() in LibJS, where the name is
dictated by the ToString AO.
2022-12-06 08:54:33 +01:00
Linus Groh
6e19ab2bbc
AK+Everywhere: Rename String to DeprecatedString
...
We have a new, improved string type coming up in AK (OOM aware, no null
state), and while it's going to use UTF-8, the name UTF8String is a
mouthful - so let's free up the String name by renaming the existing
class.
Making the old one have an annoying name will hopefully also help with
quick adoption :^)
2022-12-06 08:54:33 +01:00
Tim Schumacher
fd3a823a20
LibArchive: Move loading the next tar header into a helper function
...
This now also validates the first header that is loaded, so we can drop
the corresponding FIXME from `tar`.
2022-11-30 08:03:31 +01:00
Tim Schumacher
cbeaba0c12
LibArchive: Use Core::Stream inside TarInputStream
2022-11-30 08:03:31 +01:00
Tim Schumacher
71d1d9e2b5
LibArchive: Port TarFileStream
to Core::Stream
2022-11-30 08:03:31 +01:00
implicitfield
19e6befddc
FuzzTar+tar: Advance the stream before continuing
...
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53733
This bug was caused by a regression introduced in c88d8a2
.
2022-11-26 01:24:12 +01:00
implicitfield
ee0c9ed87b
LibArchive: Simplify error handling
2022-11-23 11:19:16 +01:00
implicitfield
58e9262ff1
LibArchive: Make get_field_as_integral error out on non-octal input
...
Fixes this bug that was reported by OSS-Fuzz:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52493
2022-11-13 17:37:26 -07:00
implicitfield
c88d8a21cc
LibArchive: Make TarInputStream::advance report errors
...
Fixes this bug that was reported by OSS-Fuzz:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52862
2022-11-13 17:37:26 -07:00
Peter Elliott
83e62e8c4f
Utilities+LibArchive: Don't follow symlinks
2022-10-31 22:10:22 +00:00
sin-ack
60f6bc902b
Userland: Convert command line arguments to String/StringView
...
StringView was used where possible. Some utilities still use libc
functions which expect null-terminated strings, so String objects were
used there instead.
2022-07-12 23:11:35 +02:00
Tim Schumacher
87da3e0004
tar: Implement support for GNU longname headers
2022-06-06 20:12:30 +01:00
Sam Atkins
f0aba519c3
Utilities: Read positional arguments as Strings not char*s
...
This is a pretty trivial change so they're all batched together.
2022-04-11 21:09:42 +02:00
kleines Filmröllchen
5319e3a03f
LibCore+Userland: Remove File::ensure_parent_directories
...
We have a much safer and more powerful alternative now, so let's move
the few users over.
2022-04-11 00:08:48 +02:00
Idan Horowitz
086969277e
Everywhere: Run clang-format
2022-04-01 21:24:45 +01:00
Tim Schumacher
495a1be925
tar: Implement support for extended headers :^)
2022-03-05 13:17:13 +01:00
Tim Schumacher
ff19c1cffe
tar: Use the prefixed path for listing and verbose output
2022-03-05 13:17:13 +01:00
Tim Schumacher
e2d71823d3
tar: Prevent file buffering from reading uninitialized data
...
Regressed in 91fa10a0ab
.
2022-03-05 13:09:42 +01:00
cocateh
91fa10a0ab
Utilities: Port tar to LibMain
...
Ported tar to LibMain and changed it to use Core::System syscalls.
2022-03-02 21:55:32 +01:00
Tim Schumacher
b689e8b7f4
tar: Automatically recognize gzip archives
2022-02-18 10:41:44 +01:00
circl
69c757e92f
tar: Implement -C option
...
This allows specifying which directory to extract to or create
from.
I would have used the *at variants of the functions, but some
weren't implemented yet.
2022-01-04 06:22:34 +00:00
Tim Schumacher
75978d5fff
tar: Support extracting symlinks
...
We can now extract GitHub's LLVM tarballs. :^)
2021-11-22 21:57:42 +01:00
Tim Schumacher
0d679bf348
tar: Implement usage of prefixes when extracting
2021-11-22 09:03:47 +01:00
Tim Schumacher
c94574d313
Utilities/tar: Ignore directory entry if it already exists
2021-11-13 11:42:08 +01:00
Tim Schumacher
bd6c48f6ea
Utilities: tar: Always create parent directory when extracting
2021-11-10 14:48:20 +01:00
Peter Elliott
33d7fdca28
Everywhere: Use my cool new @serenityos.org email address
2021-09-01 11:37:25 +04:30
Lynn
d3aae59478
tar: Ignore "extended headers"
...
Looking around online, it seems like this is normally a bit of
metadata that the extract operation can safely ignore.
2021-05-24 00:01:01 +01:00
Jean-Baptiste Boric
3038edab00
Utilities: Correct non-standard assert macros includes
2021-05-17 18:14:05 +01:00
Ali Mohammad Pur
a91a49337c
LibCore+Everywhere: Move OpenMode out of IODevice
...
...and make it an enum class so people don't omit "OpenMode".
2021-05-12 11:00:45 +01:00
Andreas Kling
7ae7170d61
Everywhere: "file name" => "filename"
2021-04-29 22:16:18 +02:00
Andreas Kling
39369f1da6
Utilities: Use Vector<String> positional arguments in some places
...
There are more places we can use these, I just picked some that felt
like they improved the code.
2021-04-29 11:28:01 +02:00
Gunnar Beutner
c861195557
Userland: Fix new GCC warnings
2021-04-29 10:33:44 +02:00
Brian Gianforcaro
1682f0b760
Everything: Move to SPDX license identifiers in all files.
...
SPDX License Identifiers are a more compact / standardized
way of representing file license information.
See: https://spdx.dev/resources/use/#identifiers
This was done with the `ambr` search and replace tool.
ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-22 11:22:27 +02:00