wildcard: Check trailing components against

Forward-port of c31e194120,
Revert of 6823f5e337,
Fixes #10205
This commit is contained in:
Fabian Boehm 2024-01-09 19:06:33 +01:00
parent 96caee837c
commit f7c9538fb0
2 changed files with 9 additions and 2 deletions

View file

@ -667,8 +667,10 @@ mod expander {
}
if !self.flags.contains(ExpandFlags::FOR_COMPLETIONS) {
// Trailing slash and not accepting incomplete, e.g. `echo /xyz/`. Insert this file, we already know it exists!
self.add_expansion_result(base_dir.to_owned());
// Trailing slash and not accepting incomplete, e.g. `echo /xyz/`. Insert this file after checking it exists.
if waccess(base_dir, F_OK) == 0 {
self.add_expansion_result(base_dir.to_owned());
}
return;
}
// Trailing slashes and accepting incomplete, e.g. `echo /xyz/<tab>`. Everything is added.

View file

@ -11,6 +11,11 @@ touch ./b/file.txt
set dirs ./a ./b
echo $dirs/*.txt # CHECK: ./b/file.txt
echo */foo/
# CHECKERR: checks/wildcard.fish (line {{\d+}}): No matches for wildcard '*/foo/'. See `help wildcards-globbing`.
# CHECKERR: echo */foo/
# CHECKERR: ^~~~~^
cd $oldpwd
rm -Rf $dir