861c4454e7
libluna: Add assignment operators to Buffer
2023-08-22 11:54:14 +02:00
e8e05159c1
libluna+kernel: Make CRC32 a class
2023-08-15 19:27:09 +02:00
181b4c151b
tools: Build libstdc++
2023-08-11 18:24:38 +02:00
5ea73197ad
libluna: Add a bunch more errno definitions
2023-08-11 17:59:41 +02:00
159c05c064
libluna: Add max() and min()
continuous-integration/drone/push Build is passing
2023-08-08 12:39:03 +02:00
b63a8ff245
libluna: Move get_blocks_from_size to a new header and call it ceil_div instead
continuous-integration/drone/push Build is passing
2023-08-08 11:58:33 +02:00
8d3b3aaf05
libluna: Add a few more network-related errno codes
2023-07-30 11:33:06 +02:00
c1d08b904e
kernel+libluna: Add Buffer::dequeue_data()
2023-07-30 11:33:05 +02:00
6b0bc66fd2
libluna: Add new socket-related errno codes
2023-07-30 11:33:05 +02:00
7f990b161b
libluna: Fix comparison of StringViews without null termination
...
continuous-integration/drone/push Build is passing
This regressed in de7e58c274
, and made value arguments pretty much unusable.
This really needs a test...
2023-07-25 17:25:18 +02:00
9bb3fed611
libluna: Use the right unsigned integer type for wcscmp()'s return type
2023-07-25 17:23:27 +02:00
9ef09cfc88
libc+libluna: Add case-insensitive string comparison functions
2023-07-22 11:58:28 +02:00
4439ef8ec6
sh: Add a system to easily add flexible shell builtins
continuous-integration/drone/push Build is passing
2023-07-21 20:44:01 +02:00
de7e58c274
StringView: Fix equality operator
continuous-integration/drone/push Build is passing
2023-07-21 14:26:54 +02:00
15199a2366
libluna+libc: Implement memchr() and strstr()
continuous-integration/drone/push Build is passing
2023-07-10 15:30:05 +02:00
56f3d26969
kernel+libluna: Fix the CRC32 algorithm and use it to verify the GPT header
continuous-integration/drone/push Build is passing
2023-07-10 14:54:55 +02:00
bd757d204e
kernel+libos+libluna: Avoid copying and reallocation when creating Strings
...
continuous-integration/drone/push Build is passing
This is done by reusing the existing buffers in Vector and Buffer instances.
2023-07-02 19:30:25 +02:00
6db0a2649c
libluna: Add a variant of PathParser::join() for relative paths
2023-07-02 16:38:12 +02:00
b4a6e4d56d
libluna/PathParser: Make dirname() and basename() static functions
...
continuous-integration/drone/push Build is passing
This avoids creating a PathParser to use them, which allocates memory that won't be used.
2023-06-19 11:21:58 +02:00
0b553cadc0
libluna: Do not fault if vstring_format() is called with buf=nullptr
...
Instead, just discard the output and return the number of bytes formatted, as mandated by the C standard.
2023-06-19 10:44:33 +02:00
ae01a31104
kernel: Make sure the stack is 16-byte aligned on program startup
...
This is required by the System V ABI and fixes some movaps-related GPFs in ndisasm.
2023-06-19 10:41:32 +02:00
21cc7e3729
libluna: Rename parse_length() to parse_type() in Format.cpp
continuous-integration/drone/push Build is passing
2023-06-19 01:00:05 +02:00
a2c081f219
libluna: Allow passing a base to scan_(un)signed_integer()
2023-06-19 00:58:02 +02:00
08997007f2
libluna: Stop checking initialization status on every bitmap method call
...
continuous-integration/drone/push Build is passing
Since our asserts (expect()) are enabled on release as well, this is kinda expensive.
It's up to the caller, if they receive a null pointer dereference it's
their fault for not initializing their bitmap :)
We do still assert out-of-range indexing and stuff like that.
2023-06-18 19:28:28 +02:00
148c1c7341
libluna: Add the clear_data() method to Vector and use it to optimize Base64::decode
...
continuous-integration/drone/push Build is passing
This method clears the Vector's data without deallocating the
backing buffer, so that it can be reused without reallocation.
2023-06-18 19:24:26 +02:00
d45e9e2a8c
libluna: Simplify the API for Utf8StateDecoder by splitting it into multiple methods
continuous-integration/drone/push Build is passing
2023-06-18 18:38:01 +02:00
2f08e0f5b0
libos: Make long value arguments use '=' and make value arguments' values always required
continuous-integration/drone/push Build is passing
2023-06-17 20:58:54 +02:00
592558d7ad
kernel: Add GUID partition table support
2023-06-17 12:03:37 +02:00
d589834eb7
libluna: Add HashTable
continuous-integration/drone/push Build is passing
2023-06-15 15:50:04 +02:00
fd62de6474
libluna: Do not sort empty arrays; avoids a segfault
continuous-integration/drone/push Build is passing
2023-06-03 11:55:46 +02:00
cc72a1655d
libc+libluna: Move libluna hooks out of libc and into a central place in libluna
continuous-integration/drone/push Build is passing
2023-06-03 11:18:52 +02:00
51a5727c8d
libluna: Fix a crash in quicksort
continuous-integration/drone/push Build is passing
2023-05-28 21:51:50 +02:00
b75bd4cd14
libluna: Add PathParser::has_next()
2023-05-20 16:39:18 +02:00
9bb5371e8c
libluna+libc: Add strtok_r()
2023-05-20 16:37:07 +02:00
30d1dad149
libluna: Let String::join take a vector of StringViews instead of Strings
2023-05-20 12:46:33 +02:00
e098a3269a
libluna: Treat a negative precision as if precision was omitted
2023-05-13 12:40:03 +02:00
38541e22e9
libluna: Fix flag shenanigans in cstyle_format
...
Finally, zero-pad and left-align work properly!
2023-05-13 12:39:31 +02:00
5911b052dc
libluna: Add more options to to_dynamic_unit()
...
continuous-integration/drone/push Build is passing
Also, make the output look more like how it is on linux.
2023-05-13 12:01:09 +02:00
4a764bc315
tests+libluna: Start testing Format.cpp
continuous-integration/drone/push Build is passing
2023-05-11 16:56:28 +02:00
77560bbc3e
kernel+tools: Allow loading files with different owners + add a more dynamic install script
continuous-integration/drone/push Build is passing
2023-05-06 12:11:35 +02:00
58eb2d7703
libc: Print failed assertions to stderr instead of stdout
...
continuous-integration/drone/push Build is passing
This removes two FIXMEs from the time there was no stderr.
2023-05-04 16:37:13 +02:00
d9b7e8edc0
init: Read and launch service files in order using sort()
continuous-integration/drone/push Build is passing
2023-05-02 20:56:28 +02:00
dcd93cce3a
libluna: Add a sort() function
2023-05-02 20:56:27 +02:00
052ae4902e
libluna: Remove EFIXME and make others declare error_string() and error_name()
...
Closes #26 .
2023-05-02 10:51:53 +02:00
7058ec945a
libluna: Use a String for name and handle prefix correctly in TarStream
2023-05-02 10:51:53 +02:00
6982a8c07e
libluna: Make String::from_string_view handle non-null-terminated strings properly
2023-05-02 10:51:52 +02:00
1444cbb3df
libluna: Allow constructing a StringView from a string that might not be null-terminated
2023-05-02 10:51:52 +02:00
1d6a39c924
libluna: Make String::split() inline
continuous-integration/drone/push Build is passing
2023-05-01 20:05:10 +02:00
df590f4e26
libluna: Add String::join()
2023-05-01 19:29:17 +02:00
8adfb6fdb9
libluna: Leave String in a valid state when moved
2023-04-28 21:16:43 +02:00