Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-03-08 | LibC: Set `saved_str` to null in strtok_r if no tokens were found | Daniel Bertalan | |
If we do not do this, the next call to strtok_r will start tokenizing (and possibly modifying!) the memory pointed to by `saved_ptr`. | |||
2022-03-08 | Tests: Include limits.h for PATH_MAX in realpath tests | Tim Schumacher | |
2022-03-08 | Tests: Include limits.h for MB_LEN_MAX in wchar tests | Tim Schumacher | |
2022-03-02 | AK: Print NaN and infinite numbers in PrintfImplementation | Peter Ross | |
2022-03-02 | LibC: Set PRI[xX]8/PRI[xX]16 macros to `x` and `X` | Peter Ross | |
Described in: <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/ inttypes.h.html> The macros were first added in a7a456002e91d9f13793e23aab4c24519c4e87c7, but it is not clear why the PRIx16/32 macros were defined as 'b' & 'w'. PrintfImplementation was never able to parse these values. | |||
2022-02-28 | AK: Add tests for integer values formatting in printf | Timur Sultanov | |
2022-02-20 | LibC: Do not write value when scanf assignment value is suppressed | Peter Ross | |
This change has the positive side-effect of causing scanf to *segfault* when a NULL pointer argument is passed to scanf. e.g. sscanf(str, "%d", NULL); | |||
2022-02-20 | LibC: Do not include suppressed assignments in scanf return value | Peter Ross | |
2022-02-13 | Tests: Add test for LibC mkdir() | Max Wipfli | |
2022-01-25 | LibC: Ensure most time tests run under UTC | Timothy Flynn | |
This ensures these tests pass even if the user has changed the system time zone away from UTC. | |||
2022-01-25 | LibC: Implement tzset with time zone awareness in accordance with POSIX | Timothy Flynn | |
2022-01-16 | Tests: Test whether stdio streams are flushed correctly on exit | Daniel Bertalan | |
2022-01-16 | LibC: Make `*alloc` return `NULL` in case of failure (POSIX) | Michel Hermier | |
2022-01-07 | Everywhere: Fix spelling mistakes | mjz19910 | |
2022-01-02 | LibC: Support `X` modifier for `scanf` | Jesse Buhagiar | |
This was currently crashing Half-Life because it was a considered an "Unknown" specifier. We can use the same case statement as the regular hex format conversion (lower case 'x'), as the backend to convert the number already supports upper/lower case input, hence we get it for free :^) | |||
2021-12-23 | LibC: Allow multiple includes of `<assert.h>` | Michel Hermier | |
ISO C requires in section 7.2: The assert macro is redefined according to the current state of NDEBUG each time that <assert.h> is included. Also add tests for `assert` multiple inclusion accordingly. | |||
2021-12-19 | LibTest: Add `EXPECT_CRASH_WITH_SIGNAL` | Michel Hermier | |
2021-12-19 | Tests: Add test for `raise` | Michel Hermier | |
2021-12-19 | Tests: Add test for `assert` | Michel Hermier | |
2021-12-19 | Tests: Add test for `abort` | Michel Hermier | |
2021-10-24 | LibC: Fix `%n` conversion specifier in scanf() format | Jelle Raaijmakers | |
Also add a test to prevent this from happening again. There were two bugs: * The number of bytes just after processing the last value was written, instead of the number of bytes after skipping remaining whitespace. Confirmed by testing against GNU's `scanf()` since the man page leaves something to be desired. * The number of bytes was written to the wrong variable argument; i.e. the first argument was overwritten. | |||
2021-10-24 | Tests: Print full 32-byte range of values in TestScanf | Jelle Raaijmakers | |
We are trying to show 8 u32 values, each of which needs at most 8 hexadecimal characters to be shown entirely. | |||
2021-10-24 | Tests: Reword 'output' to 'return value' in TestScanf | Jelle Raaijmakers | |
2021-10-24 | Tests: Use correct argument count for value conformance in TestScanf | Jelle Raaijmakers | |
2021-10-24 | Tests: Only test truthiness for iswctype | Tim Schumacher | |
2021-10-24 | Tests: Use proper comparison macros for wctype | Tim Schumacher | |
2021-10-22 | LibC: Fix up mblen | Tim Schumacher | |
2021-10-22 | LibC: Fix up mbtowc | Tim Schumacher | |
One more proper implementation and one less FIXME. | |||
2021-10-21 | LibC: Implement mbsnrtowcs | Tim Schumacher | |
2021-10-21 | LibC: Implement wcsnrtombs | Tim Schumacher | |
2021-10-21 | LibC: Implement mbrlen | Tim Schumacher | |
2021-10-17 | LibC: Implement wcslcpy | Daniel Bertalan | |
2021-10-15 | LibC: Implement mbsrtowcs | Tim Schumacher | |
2021-10-15 | LibC: Implement wcsrtombs | Tim Schumacher | |
2021-10-15 | LibC: Implement wcrtomb | Daniel Bertalan | |
This function converts a single wide character into its multibyte representation (UTF-8 in our case). It is called from libc++'s `std::basic_ostream<wchar_t>::flush`, which gets called at program exit from a global destructor in order to flush `std::wcout`. | |||
2021-10-15 | LibC: Implement twalk | Tim Schumacher | |
2021-10-15 | LibC: Implement tfind and tsearch | Tim Schumacher | |
2021-10-04 | Everywhere: Fix more Copyright header inconsistencies | Tim Schumacher | |
2021-10-03 | Tests: Add tests for mbrtowc | Tim Schumacher | |
2021-10-03 | Tests: Add a test for mbsinit | Tim Schumacher | |
2021-10-03 | LibC: Implement wmemmove | Tim Schumacher | |
2021-10-03 | LibC: Implement wmemset | Tim Schumacher | |
2021-10-03 | LibC: Implement wmemcpy | Tim Schumacher | |
2021-10-03 | LibC: Implement wmemchr | Tim Schumacher | |
2021-10-03 | LibC: Implement wcsstr | Tim Schumacher | |
2021-10-03 | LibC: Implement wcspbrk | Tim Schumacher | |
2021-09-18 | LibC: Primitively implement wcscoll | Tim Schumacher | |
At the moment, sorting like LC_COLLATE=C would do is better than nothing. | |||
2021-09-17 | LibC: Implement towctrans | Tim Schumacher | |
2021-09-17 | LibC: Implement iswctype | Tim Schumacher | |
2021-09-17 | LibC: Implement wctrans | Tim Schumacher | |