168 Commits
Author SHA1 Message Date
Yuri Astrakhan 3a11690fa2 fix: point cargo-binstall at the fd release asset
`{ name }` renders as the crate name, so cargo-binstall looked for
`fd-find-v10.5.0-<target>.tar.gz`, got a 404, and fell back to the
QuickInstall mirror. The assets are named `fd-v<version>-<target>`.
`{ bin }` is not available in `pkg-url`, so the name is spelled out.
2026-10-05 15:34:14 -04:00
Thayne McCombs ce97e473eb Merge pull request #2039 from hexbinoct/fix/min-depth-broken-symlink
Compute depth for broken symlinks so --min-depth keeps them
2026-09-24 01:34:13 -06:00
Jason Wang b422e5d8c9 fix: allow hyphen-leading --format templates
Clap treated a space-separated --format value that starts with '-' as a
new flag. Enable allow_hyphen_values for --format (same as --and) and
add a regression covering markdown-list-style templates. See #2126.

Signed-off-by: Jason Wang <[email protected]>
2026-09-08 19:47:37 -06:00
Thayne McCombs 1765d0817b fix: Re-enable jemalloc by default
The "use-jemalloc" feature was accidentally removed from the default
features in 92c54d37c0.

This turns it back on.
2026-09-02 09:58:02 -06:00
Thayne McCombs a3942dbb25 fix: don't sanitize error message
Calling `maybe_sanitize` on error messages results in newlines getting
replaced with "\x0a". This is not desirable for error messages that have
newlines.

I audited everwhere we construct an error, and call print_error and
confirmed that none of those places have inputs that include found
paths. I'm not too worried about inputs that come from command line
arguments.

This bug was introduced in 92c54d37c0.

Fixes: #2104
2026-08-27 22:37:42 -06:00
Thayne McCombs a89e394a0d chore: Update version in CHANGELOG 2026-08-26 02:12:47 -06:00
hexbinoct 350b33acda Compute depth for broken symlinks so --min-depth keeps them
When following links, a broken symlink is surfaced by the walker as an
error that carries no depth, so fd stored it with an unknown depth and
the --min-depth filter dropped it for any minimum value. Record the
depth when the entry is created by counting the path components relative
to the matching search root, which is what the issue discussion
suggested. Broken symlinks are now filtered by depth like any other
entry.

Fixes #1017
2026-08-10 14:30:46 +05:00
Nikolaus Schuetz 5becb9d52c Reject out-of-range '@' Unix timestamp instead of panicking
Use UNIX_EPOCH.checked_add(...) so an out-of-range value returns None
and propagates through the existing ? like every other parse failure in
TimeFilter::from_str, rather than panicking via SystemTime's Add. See #2081.
2026-07-30 08:06:22 -07:00
Thayne McCombs b12606438e Merge pull request #1976 from curious-rabbit/master
fix: sanitize escape sequence injection
2026-07-01 00:36:48 -06:00
greymoth-jp 6aac84e4ae fix: flag path separators in --and patterns, not just the primary pattern
The path-separator diagnostic (#1873, made unconditional for the primary
pattern in #1975) only inspected opts.pattern. --and patterns (opts.exprs)
are chained with the primary pattern and matched against the file name in
exactly the same way, so a path separator in any of them is the same silent
"no results" footgun. Factor the per-pattern check into a helper and apply
it to the primary pattern plus every --and pattern, mirroring how
ensure_use_hidden_option_for_leading_dot_pattern already iterates all
patterns. --full-path still suppresses the diagnostic. Adds a regression test.

See #1873.
2026-06-26 17:02:47 +09:00
Thayne McCombs 42b2ab8a84 Merge pull request #1983 from DeflateAwning/feat-exact-i1963
feat: Add --exact argument to match exact filename
2026-05-20 01:26:24 -06:00
curious-rabbit 7d18db23a7 improve patch 2026-05-17 20:35:00 +02:00
Sean Doherty f1dd935dea Apply changelog wording suggestion 2026-05-17 09:02:21 -05:00
Sean Doherty 8dfa67a245 Treat single dash as search path 2026-05-16 17:15:00 -05:00
DeflateAwning cb2f37a46a docs: Add --exact to changelog 2026-05-14 14:05:28 -06:00
curious-rabbit a00259bf79 optimize 2026-05-05 21:27:25 +02:00
Thayne McCombs a7a67e4998 Merge pull request #1889 from skane-lukas/issue-1888-fix-symlink-bash-completion
Fix symlink for bash completions
2026-04-24 01:00:42 -06:00
SAY-5 ed47664191 fix: flag any pattern containing a path separator, not just ones that name a directory
Without --full-path, fd matches patterns against file names, so any pattern
containing a path separator can never match. The previous implementation
in main.rs fired the path-separator diagnostic only when the pattern also
named an existing directory on disk, so the most common Linux/macOS typo
- pasting a full path as the pattern - silently returned zero matches.

Restructure ensure_search_pattern_is_not_a_path so that any '/' in the
pattern triggers the diagnostic unconditionally, and keep the existing
'directory must exist on disk' guard only for the native '\' separator
on Windows, which is also the regex escape character. The Windows check
is short-circuited via '||' so the is_dir syscall never runs when the
pattern already contains '/'. The #[cfg_attr(not(windows), allow(unused_mut))]
attribute keeps the mut binding warning-free on non-Windows targets.

Update the error message to drop the now-ambiguous parenthetical that
showed the platform-specific separator character, and widen the
integration test assertions to cover the full first line so the
assert_failure_with_error helper (which trims lines on both sides) cannot
early-accept on a partial prefix.

Closes #1873

Signed-off-by: SAY-5 <[email protected]>
2026-04-20 18:18:21 -07:00
Trevin Chow 72ff3cf694 feat: add --ignore-parent option to override --no-ignore-parent
Add the --ignore-parent flag, mirroring the existing pattern where
--ignore-vcs overrides --no-ignore-vcs. This lets users undo
--no-ignore-parent in aliases or config files.

Closes #1958
2026-04-06 00:53:39 -07:00
Rizky Mirzaviandy Priambodo 647ced8ff0 fix: address review comments - use into_os_string() and move changelog to unreleased section 2026-03-11 22:11:26 +07:00
Rizky Mirzaviandy Priambodo d3a500af7a fix: handle invalid working directories gracefully with --full-path (#1900)
- Add FatalError variant to WorkerResult for unrecoverable errors
- Extract search_str_for_entry() helper to propagate IO errors from path_absolute_form
- Propagate fatal errors through job and batch execution paths
- Add regression test for invalid cwd scenario
- Update CHANGELOG for #1900
2026-03-10 20:28:12 +07:00
Thayne McCombs bf6489a79b chore: Bump to 10.4.2 2026-03-09 01:56:38 -06:00
Thayne McCombs ec25d2bc81 Add upcoming to changelog 2026-03-08 03:09:13 -06:00
Thayne McCombs d766e76351 Prepare 10.4.1 release 2026-03-08 01:02:24 -07:00
skane-lukas 247a5172e5 Fix completions for alias fdfind in deb package for bash, zsh and fish.
Closes #1888
2026-03-03 08:38:53 +01:00
Thayne McCombs 801ccd7620 chore(release): Prepare for 10.4.0 2026-02-28 23:31:48 -07:00
FidelSch 6067f72742 docs: update changelog to include static linking of CRT for MSVC builds 2026-02-24 10:18:59 -03:00
Thayne McCombs bf81fb98fa Merge pull request #1852 from fischman/1727-ignore-contain
`--ignore-contain`: ignore directories containing a named entry.
2026-01-20 00:48:43 -07:00
Joseph Adams dcc5ff84cd Update CHANGELOG.md 2026-01-16 10:44:01 +01:00
Joseph Adams 9c9eeda209 Update CHANGELOG.md 2026-01-16 10:38:42 +01:00
Joseph Adams 4ba10c7837 Add changelog entry for Windows hyperlink fix 2026-01-16 10:37:21 +01:00
Ami Fischman d05a718be5 --ignore-contain: ignore directories containing a named entry (e.g. [CACHEDIR.TAG](https://bford.info/cachedir/)).
Fixes #1727.
2025-11-28 11:49:37 -08:00
Thayne McCombs f360a772b0 docs(CHANGELOG): list bugs fixed by ignore upgrade 2025-10-31 00:52:05 -06:00
Thayne McCombs dbd3e3c14c build(msrv): Update msrv to 1.90.0
And upgrade to 2024 edition
2025-10-27 02:05:37 -06:00
Thayne McCombs ee5332d0d3 fix: --print0 now works with --exec
If you use --print0 with --exec, it will now print a \0 between each set
of commands run. That is, between the output for the commands run for
each found item.

Fixes: #1797
2025-10-03 01:15:48 -06:00
Thayne McCombs 0d3261daf7 chore: Add next entry to changelog 2025-08-26 02:29:10 -06:00
Thayne McCombs 04832f1ac4 release: 10.3 2025-08-26 00:58:38 -06:00
Thayne McCombs 9859d5117c docs: More description of jiff change in changelog 2025-03-16 18:50:51 -06:00
Shun Sakai bbac76747b chore(deps): Replace chrono with jiff 2025-03-13 11:44:36 +09:00
Shun Sakai c670a0b366 chore(deps): Replace humantime with jiff 2025-03-12 18:15:37 +09:00
Collin Styles 0d99badc1b Add a hidden --mindepth alias for --min-depth 2024-10-02 12:22:01 -04:00
Thayne McCombs 1ce6906808 Prepare for 10.2.0 release 2024-08-18 22:55:28 -06:00
Thayne McCombs bd649e2fd7 Add hyperlink support to fd
Fixes: #1295
Fixes: #1563
2024-06-08 23:38:57 -06:00
Thayne McCombs d90ec1758e Prepare for 10.1.0 release 2024-05-08 00:20:43 -06:00
Thayne McCombs d44badc190 Implement option for printing custom formats 2024-05-07 22:52:49 -06:00
Thayne McCombs b1f83a0bb0 feat: Add option to always include cwd prefix
Fixes: #1243
Fixes: #1331
2024-05-07 00:24:06 -06:00
Thayne McCombs 3bc70925a9 Add upcoming to changelog 2024-05-07 00:16:56 -06:00
Thayne McCombs 92fab6e058 Prepare for 10.0.0 release 2024-05-05 23:52:50 -06:00
David Peter 9279b1f0af Fix typo in CHANGELOG 2024-04-30 15:56:12 +02:00
Thayne McCombs 6647085015 Add test for gitignore workaround
And make sure it works for user-supplied path of "."

Also add changelog entry
2024-04-30 15:56:12 +02:00