| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
Closes: https://github.com/tavianator/bfs/issues/142
|
| |
|
|
|
|
|
| |
This lets us warn about `bfs -delete -empty`, even though -empty is
impure.
|
| |
|
| |
|
|
|
|
|
| |
The annotation visitor probably can't fail, but we might as well check
consistently.
|
|
|
|
|
|
| |
For example, `bfs -delete -type f` is almost certainly a mistake.
Link: https://savannah.gnu.org/bugs/?65895
|
|
|
|
|
|
|
|
| |
This fixes warnings on commands like `bfs -exclude -true` or
`bfs -exclude -type f -type f`, because the data flow is properly shared
between the -exclude expression and the main one.
Fixes: 4a36bb9 ("expr: Make expressions variadic")
|
| |
|
|
|
|
|
|
|
|
|
|
| |
POSIX allows optional features to be supported at compile time but not
necessarily at run time by defining _POSIX_OPTION to 0 and requiring
users to check sysconf(_SC_OPTION) > 0. The new sysoption() macro
simplifies the check.
sighook() and bfs_spawn() now check for conditional runtime support for
the relevant POSIX options.
|
|
|
|
| |
clock_gettime() is available everywhere by now.
|
| |
|
| |
|
|
|
|
|
|
|
| |
POSIX 2024 clarified that find(1) is meant to work exactly like chmod(1)
here, so for modes like +rw,-x with no "who" specified, apply the umask.
Link: https://www.austingroupbugs.net/view.php?id=1392
|
|
|
|
|
|
|
| |
Commit 9c6e4ce ("parse: s/parser_state/bfs_parser/") was a little to
overzealous in replacing "state" with "parser", resulting in the
tortured phrase "parser machine parser" instead of "state machine
state".
|
| |
|
|
|
|
|
|
|
| |
That was a little too aggressive, with -alse suggesting -size instead of
-false.
This reverts commit 0d6822ee71c1f60c8003e13ab149501e586f9ae6.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This completes the workaround for bfs_spawn() hanging on FreeBSD with
ASan enabled.
Link: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280318
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This should have been benign (just a performance regression), but
FreeBSD has a bug that causes the fork()-based fallback to lock up when
ASAN is enabled, due to fork() and dl_iterate_phdr(). This is not a
complete workaround for that issue, since the fork() fallback may be
used for other reasons.
Fixes: 29ddac2 ("config: Check for posix_spawn_file_actions_addfchdir{,_np}()")
|
| |
|
|
|
|
|
|
| |
This reverts commit 4f80c17192f2b28c96a489969d4435151d68d0ce.
Link: https://www.austingroupbugs.net/view.php?id=1133
|
|
|
|
|
|
|
|
| |
This fixes an ABA problem where sigdispatch() could think no handlers
are registered for a signal even when there are.
Link: https://unix.stackexchange.com/a/779594/56202
Fixes: 375caac ("sighook: New utilities for hooking signals")
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
It should be at least half the max char distance so that we mostly get
replacements, not inserts + deletes.
|
|
|
|
|
|
|
|
|
|
| |
Not all posix_spawn() implementations use errno to report execv()
failures from the child process, as that requires either a kernel
posix_spawn() implementation or a pipe to pass the error back.
This should fix tests/posix/exec_nonexistent on OpenBSD and HPPA.
Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=hppa&ver=3.3.1-1&stamp=1717489148&raw=0
|
| |
|
| |
|
|
|
|
| |
This fixes bfs under Valgrind, which reserves SIGRTMAX for its own use.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to GCC 14.1, the __builtin_riscv_pause() can cause an error if the
appropriate extension is not enabled in -march:
/tmp/ccR1L1lA.s: Assembler messages:
/tmp/ccR1L1lA.s:670: Error: unrecognized opcode `pause', extension `zihintpause' required
Link: https://gcc.gnu.org/pipermail/gcc-patches/2023-August/626748.html
Link: https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=c2d04dd659c499d8df19f68d0602ad4c7d7065c2
Link: https://buildd.debian.org/status/fetch.php?pkg=bfs&arch=riscv64&ver=3.3.1-1&stamp=1717488400&raw=0
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
POSIX requires an error if (for example) -L encounters a symlink loop.
The GNU find change was restricted to -xtype, so add a manual ELOOP test
to eval_xtype() for compatibility.
This reverts commit 470589cbd9ca3e73d8c01ac3a96cbc065179dcc5.
Link: https://savannah.gnu.org/bugs/?19605
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The POSIX Utility Syntax Guidelines specify that flag groups like -HL
should be handled like -H -L. GNU find doesn't support grouping flags
in this way, but BSD find does.
To avoid conflicts with non-flag primaries, for now we require at least
one flag in a group to be a capital letter. That is, we support things
like -Lds but not -ds. We also do not support -fPATH (without a space)
as it would conflict with -follow, -fprint, etc. It is impossible to be
compatible with both GNU and BSD find here:
user@gnu$ find -follow
link
link/file
...
user@bsd$ find -follow
find: ollow: No such file or directory
Link: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
|