summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* expr: Make expressions variadicTavian Barnes2024-01-078-890/+1719
| | | | | | | | | Rather than only unary/binary expressions, we now support an arbitrary number of children. The optimizer has been re-written almost completely and now supports optimal reordering of longer expression chains, rather than just arm-swapping. Fixes #85.
* list: New SLIST_HEAD() and SLIST_TAIL() macrosTavian Barnes2024-01-071-3/+40
|
* ci: Add a DragonFly BSD jobTavian Barnes2024-01-041-0/+31
|
* Work around DragonFly BSD kernel bugTavian Barnes2024-01-042-1/+19
| | | | | | | | | DragonFly's x86_64 assembly implementation of copyinstr() checks the wrong pointer when deciding whether to return EFAULT or ENAMETOOLONG, causing it to always return EFAULT for overlong paths. Work around it by treating EFAULT the same as ENAMETOOLONG on DragonFly. Link: https://twitter.com/tavianator/status/1742991411203485713
* fsade: Fix ACL checks on DragonFly BSDTavian Barnes2024-01-032-9/+49
|
* config: Disable xattrs on DragonFly BSDTavian Barnes2024-01-031-1/+1
| | | | DragonFly is missing extattr_get_link() and extattr_list_{file,link}().
* config: Check for GCC >= 11 before using malloc attribute argsTavian Barnes2024-01-031-3/+3
|
* ci: Add a NetBSD jobTavian Barnes2024-01-031-1/+34
|
* bit: Rename bswap{16,32,64}()Tavian Barnes2024-01-031-16/+16
| | | | | NetBSD already defines this in <sys/bswap.h>, so pick names that don't conflict.
* tests/posix/name_bracket: Skip on NetBSD tooTavian Barnes2024-01-031-2/+6
|
* tests/bsd/type_w: Check for truncate(1) before using itTavian Barnes2024-01-031-1/+5
|
* xspawn: Check for NetBSD 10 before using posix_spawn_..._fchdir()Tavian Barnes2024-01-021-1/+1
|
* config: Polyfill __NetBSD_Prereq__Tavian Barnes2024-01-021-0/+4
|
* config: Don't use target_clones on NetBSDTavian Barnes2024-01-021-1/+1
|
* ci: Add an OpenBSD jobTavian Barnes2024-01-021-0/+30
|
* pwcache: Fix uninitialized pointers on OpenBSDTavian Barnes2024-01-021-4/+4
| | | | | | | | | | | | | POSIX specifies that the get{pw,gr}*_r() functions store a NULL pointer to *result on error. However, OpenBSD does not always do this[1][2]: > if (bufsize < GETGR_R_SIZE_MAX) > return ERANGE; Work around it by explicitly initializing ret to NULL. [1]: https://github.com/openbsd/src/blob/e4829a9cc666f01ca5062d7fc15c20ab2d69229e/lib/libc/gen/getgrent.c#L135-L136 [2]: https://github.com/openbsd/src/blob/e4829a9cc666f01ca5062d7fc15c20ab2d69229e/lib/libc/gen/getgrent.c#L183-L184
* bfstd: Fix fflags type on OpenBSDTavian Barnes2024-01-021-2/+8
|
* ci: Use vmactions/freebsd-vmTavian Barnes2024-01-021-16/+21
|
* ci: Update action and image versionsTavian Barnes2024-01-013-12/+12
|
* tests: Remove unneeded command -v unbuffer || skipTavian Barnes2024-01-012-4/+0
|
* expr: Arena-allocate expressionsTavian Barnes2023-12-206-301/+210
|
* parse: s/parser_state/bfs_parser/Tavian Barnes2023-12-201-476/+476
|
* opt: Use more standard terminology for data flow domainsTavian Barnes2023-12-201-298/+294
|
* expr: Move some implementation into expr.cTavian Barnes2023-12-203-45/+57
|
* alloc: Add attr(nodiscard) to a few functionsTavian Barnes2023-12-201-0/+4
|
* config: Fix attr_nodiscard to use warn_unused_resultTavian Barnes2023-12-201-2/+2
|
* config: s/attr_format/attr_printf/Tavian Barnes2023-12-1810-29/+29
|
* config: New variadic attr(...) macroTavian Barnes2023-12-1817-62/+127
|
* docs: Rename HACKING to CONTRIBUTINGTavian Barnes2023-12-163-8/+8
| | | | So that GitHub recognizes it.
* bfstd: New xwcwidth() wrapperTavian Barnes2023-12-163-2/+7
|
* main: Warn if setlocale() failsTavian Barnes2023-12-161-1/+12
| | | | This should help users understand why issues like #128 happen.
* parse: Reject integers that start with whitespaceTavian Barnes2023-12-092-1/+6
|
* bfstd: Wrap is[w]{alpha,digit,...}()Tavian Barnes2023-12-092-31/+62
|
* Revert "README: Realign badges"Tavian Barnes2023-11-281-3/+4
| | | | | | Looks like GitHub fixed their rendering. This reverts commit 3f15559a82484d46942a68e18ba18c7e1c31aab3.
* color: Make sure errno is non-zero if parse_colors() failsTavian Barnes2023-11-281-43/+43
|
* bfstd: Work around more instances of llvm/llvm-project#65532Tavian Barnes2023-11-231-14/+19
|
* darray: RemoveTavian Barnes2023-11-234-189/+0
| | | | | The new RESERVE() macro from alloc.h is nicer, and handles alignment properly.
* printf: Switch from darray to RESERVE()Tavian Barnes2023-11-231-175/+195
|
* mtab: Switch from darray to RESERVE()Tavian Barnes2023-11-231-23/+23
|
* ctx: Switch paths from darray to RESERVE()Tavian Barnes2023-11-234-15/+16
|
* alloc: New helpers for growing dynamic arraysTavian Barnes2023-11-232-22/+80
|
* exec: Use the new REALLOC_ARRAY() macroTavian Barnes2023-11-231-1/+1
|
* dstring: Use the new REALLOC_FLEX() macroTavian Barnes2023-11-232-51/+65
| | | | | | While I'm at it, switch the capacity to include the NUL byte, so that it could be used by __counted_by() for example. And fix a theoretical provenance issue.
* alloc: New helpers for aligned reallocationTavian Barnes2023-11-232-4/+62
| | | | | | There is no aligned_realloc(), so the new xrealloc() function emulates it by manually reallocating and copying for over-aligned types. The new REALLOC_ARRAY() and REALLOC_FLEX() macros wrap xrealloc().
* alloc: New ALLOC_MAX macroTavian Barnes2023-11-231-2/+10
|
* alloc: New is_aligned() helperTavian Barnes2023-11-232-5/+10
|
* bftw: Add some whitespace to struct bftw_argsTavian Barnes2023-11-231-0/+4
|
* tests: Set abort_on_error for the sanitizersTavian Barnes2023-11-231-1/+1
|
* tests: Fix --stopTavian Barnes2023-11-231-0/+6
|
* xspawn: Detect posix_spawn() supportTavian Barnes2023-11-192-10/+38
|