| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This replaces the explicit CPPFLAGS list in flags.mk with just
`-include src/prelude.h`, shortening our compiler command lines and
allowing them to be easily documented.
|
| |
|
|
|
|
|
| |
It's a little awkward to thread the test result through manually; much
easier to just make bfs_check() update a global variable.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The POSIX spec [1] lists some characters that may need to be escaped.
Unfortunately, the document uses ˜ (U+02DC SMALL TILDE) instead of ~
(U+007E TILDE), and I copy-pasted from it.
[1]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02
|
| |
|
|
|
|
|
| |
wcwidth() returns -1 for non-printable characters, but terminals
typically don't print anything for them, so treat them as 0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
POSIX specifies[1] that
If a thread accesses tzname, daylight, or timezone directly while
another thread is in a call to tzset(), or to any function that is
required or allowed to set timezone information as if by calling
tzset(), the behavior is undefined.
So calling it lazily from arbitrary threads is risky.
[1]: https://pubs.opengroup.org/onlinepubs/9699919799/functions/tzset.html
|
|
|
|
|
| |
We now report failures and continue, rather than aborting after the
first failure.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
If xmbrtowc() fails, or if xiswprint() is false, then we shouldn't
include that wide char in the printable length.
Fixes: 19c96abe0a1ee56cf206fd5e87defb1fd3e0daa5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This bug could be reproduced with something like
$ bfs -samefile $'\xFA\xFA'
bfs: error: bfs: dstrnescat@src/dstring.c:252: wordesc() result truncated
or worse, with -DNDEBUG,
$ bfs -samefile $'.....................\xFA\xFA'
bfs: error: bfs -samefile $'.....................\xFA\xFA\x00\x55\x53\x45\x52\x3D\x74\x61\x76\x69\x61\x6E\x61\x74\x6F\x72
bfs: error: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bfs: error: No such file or directory.
which prints the memory after the end of the string (in this case, the
environment variable USER=tavianator).
The bug was caused by the line `*i += len`, which was intended to be
`*i = len`. But actually, the right behaviour seems to be `*i += 1`.
Fixes: 19c96abe0a1ee56cf206fd5e87defb1fd3e0daa5
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This ensures that it's legal to call aligned_alloc() with the result,
which requires a multiple of the alignment.
|
| |
|
| |
|
|
|
|
|
|
|
| |
And while I'm at it, remove years from copyright declarations.
Link: https://spdx.dev/about/
Link: https://daniel.haxx.se/blog/2023/01/08/copyright-without-years/
|
|
|