weili 53980035af find: -printf: don't panic on a multibyte char after an octal escape
`\NNN` octal escapes were parsed by slicing a fixed 3 bytes off the
format string, which panics when fewer than 3 octal digits are followed
by a multibyte character (e.g. `-printf '\0€'`): the 3-byte slice lands
inside the multibyte char and trips a char-boundary assertion.

Parse the octal escape from the leading octal digits only (1 to 3, all
ASCII) and advance by their byte length. This also fixes `\1`..`\7`,
which previously fell through to the single-character escape table and
errored instead of being treated as octal, matching GNU find.
2026-06-09 22:23:39 +02:00
2026-04-08 16:40:31 +02:00
2023-08-19 19:34:30 +02:00
2026-06-08 22:44:43 +02:00
2017-03-08 14:39:37 +00:00
2025-05-05 09:15:45 -07:00
2026-05-05 09:02:14 +02:00

findutils

Crates.io Discord License dependency status codecov

Rust implementation of GNU findutils: xargs, find, locate and updatedb. The goal is to be a full drop-in replacement of the original commands.

Run the GNU testsuite on rust/findutils:

bash util/build-gnu.sh

# To run a specific test:
bash util/build-gnu.sh tests/misc/help-version.sh

Comparing with GNU

Evolution over time - GNU testsuite Evolution over time - BFS testsuite

Build/run with BFS

bfs is a variant of the UNIX find command that operates breadth-first rather than depth-first.

bash util/build-bfs.sh

# To run a specific test:
bash util/build-bfs.sh posix/basic

For more details, see https://github.com/uutils/findutils-tracking/

S
Description
No description provided
Readme MIT 2.7 MiB
Languages
Rust 98.7%
Shell 1%
Python 0.3%