summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* tests: Quiet diffTavian Barnes2024-04-161-2/+2
| | | | | | On Solaris/Illumos, `diff` prints "No differences encountered" if the files are the same. Guard it with `cmp -s` so we get no output for passing tests.
* build: Center [ CC ] / [ LD ]Tavian Barnes2024-04-161-2/+2
|
* distcheck: Run all the checksTavian Barnes2024-04-151-1/+1
| | | | Oops.
* build: Be quieter by defaultTavian Barnes2024-04-151-22/+74
|
* build: Make distclean also clean the distcheck dirsTavian Barnes2024-04-151-9/+11
|
* build: Show a nicer error if the user forgets to run make configTavian Barnes2024-04-151-2/+9
|
* build: Remove unneeded USE_* defaultsTavian Barnes2024-04-151-10/+1
|
* build: Fix FreeBSD *SAN buildsTavian Barnes2024-04-111-1/+1
|
* build: Factor out vars.mk generation into a scriptTavian Barnes2024-04-102-34/+83
|
* build: Run pkg-config with all packages at onceTavian Barnes2024-04-108-99/+150
|
* config/cc.sh: Pass all the flags when running the compilerTavian Barnes2024-04-101-4/+8
|
* printf: Implement %ZTavian Barnes2024-04-101-0/+23
|
* Implement -contextTavian Barnes2024-04-107-62/+103
| | | | Closes: https://github.com/tavianator/bfs/issues/27
* fsade: Add libselinux wrappersTavian Barnes2024-04-102-0/+50
|
* build: Add optional libselinux dependencyTavian Barnes2024-04-104-7/+22
|
* docs/BUILDING: Fixes for new build systemTavian Barnes2024-04-101-14/+14
|
* tests: Move newer_link out of posix/Tavian Barnes2024-04-094-0/+5
| | | | | | | | POSIX has clarified that it's unspecified whether -newer uses times from stat() or lstat(), because implementations vary. It does specify that it must fall back to lstat() for broken links, so test that. Link: https://austingroupbugs.net/view.php?id=1776
* build: Add a separate configuration stepTavian Barnes2024-04-0923-432/+757
|
* ci: Update {Net,Open}BSDTavian Barnes2024-04-091-2/+2
|
* xspawn: Fix $PATH resolution on NetBSD 10Tavian Barnes2024-04-091-2/+2
|
* build: Don't use libattrTavian Barnes2024-04-046-18/+4
| | | | | We only rely on interfaces like listxattr() which are provided by the C library itself.
* config: Allow inlining allocator functionsTavian Barnes2024-03-281-1/+1
| | | | | GCC disables inlining on custom allocator/deallocator pairs, so that they can be matched up accurately in stack traces.
* tests/bsd: Add a -sparse testTavian Barnes2024-03-282-0/+13
|
* tests/gnu: Add a -used testTavian Barnes2024-03-282-0/+44
|
* tests/common: Add a -delete error handling testTavian Barnes2024-03-282-0/+17
|
* xspawn: Fix bfs_resolve_late() error reportingTavian Barnes2024-03-272-8/+25
|
* tests/xspawn: Test path resolution failureTavian Barnes2024-03-271-3/+30
|
* tests/xspawn: Also test dup2()Tavian Barnes2024-03-271-1/+3
|
* tests/xspawn: New unit testTavian Barnes2024-03-275-2/+183
|
* tests: New bfs_pcheck() macro to report xstrerror(errno)Tavian Barnes2024-03-273-3/+25
|
* xspawn: Don't use posix_spawnp() on macOSTavian Barnes2024-03-271-1/+33
| | | | | | | | On macOS, posix_spawnp() resolves the executable against the $PATH *before* the file_actions are applied, contrary to the upcoming POSIX wording [1] for posix_spawn_file_actions_addfchdir(). [1]: https://www.austingroupbugs.net/view.php?id=1208#c4830
* xspawn: Refactor $PATH resolutionTavian Barnes2024-03-271-81/+240
| | | | | | | | | Technically, we should be resolving executables *after* applying the file actions. It's only safe to resolve earlier if $PATH contains no relative entries, or if there are no fchdir() actions. The new implementation resolves as early as possible, deferring to posix_spawnp() if necessary for correctness.
* xspawn: Implement bfs_spawn_addopen()Tavian Barnes2024-03-272-3/+67
|
* bfstd: Escape ASCII tildesTavian Barnes2024-03-262-1/+3
| | | | | | | | 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
* xtime: Don't update tm if xtimegm() overflowsTavian Barnes2024-03-262-41/+55
|
* completions: Add -jTavian Barnes2024-03-253-4/+7
|
* trie: Calculate representative indices branchlesslyTavian Barnes2024-03-231-3/+4
|
* bftw: Use a signed integer for dir_limitTavian Barnes2024-03-221-25/+8
|
* Fix some -Wpedantic warningsTavian Barnes2024-03-222-10/+8
|
* bfstd: Add an ASCII fast path to xstrwidth()Tavian Barnes2024-03-211-1/+10
|
* bfstd: New asciilen() functionTavian Barnes2024-03-213-25/+73
|
* bit: Check __BYTE_ORDER__ for the native endianTavian Barnes2024-03-212-2/+15
| | | | __ORDER_NATIVE_ENDIAN__ is not a thing.
* bfstd: Check that wcwidth() is positiveTavian Barnes2024-03-202-2/+9
| | | | | wcwidth() returns -1 for non-printable characters, but terminals typically don't print anything for them, so treat them as 0.
* ioq: Fix some allocation failure pathsTavian Barnes2024-03-201-2/+4
|
* Implement -limit NTavian Barnes2024-03-2015-3/+103
| | | | Closes: https://github.com/tavianator/bfs/issues/133
* ci: Work around https://github.com/actions/runner-images/issues/9491Tavian Barnes2024-03-191-0/+2
| | | | | | Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113430 Link: https://github.com/llvm/llvm-project/issues/78354 Link: https://zolutal.github.io/aslrnt/
* config: Don't mix [[attr]] and __attribute__((attr))Tavian Barnes2024-03-191-6/+2
| | | | | GCC and Clang don't support combining the two attribute syntaxes in arbitrary order. For now, just use the GNU style.
* Re-run include-what-you-useTavian Barnes2024-03-1128-32/+33
|
* tests/xtime: Add tests for integer overflowTavian Barnes2024-03-102-1/+31
|
* xtime: Call tzset() from main() instead of lazilyTavian Barnes2024-03-0710-79/+32
| | | | | | | | | | | | | 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