mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-05-21 12:01:54 +02:00
52465: use NULL_GLOB when expanding zmv input pattern to avoid NOMATCH exit
This commit is contained in:
parent
a528af5c57
commit
d6e4ddd4d4
3 changed files with 16 additions and 5 deletions
|
@ -1,3 +1,8 @@
|
|||
2024-01-05 Bart Schaefer <schaefer@zsh.org>
|
||||
|
||||
* 52465: Doc/Zsh/contrib.yo, Functions/Misc/zmv: use NULL_GLOB
|
||||
when expanding the input pattern to avoid NOMATCH exit
|
||||
|
||||
2023-12-06 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
|
||||
|
||||
* 52413: Completion/Unix/Command/_iconv: support Citrus version
|
||||
|
|
|
@ -4668,10 +4668,10 @@ renames `tt(foo.lis)' to `tt(foo.txt)', `tt(my.old.stuff.lis)' to
|
|||
|
||||
The pattern is always treated as an tt(EXTENDED_GLOB) pattern. Any file
|
||||
whose name is not changed by the substitution is simply ignored. Any
|
||||
error (a substitution resulted in an empty string, two substitutions gave
|
||||
the same result, the destination was an existing regular file and tt(-f)
|
||||
was not given) causes the entire function to abort without doing
|
||||
anything.
|
||||
error (no files matched the var(srcpat), substitution resulted in an empty
|
||||
string, two substitutions gave the same result, the destination was an
|
||||
existing regular file and tt(-f) was not given) causes the entire function
|
||||
to abort without doing anything.
|
||||
|
||||
In addition to pattern replacement, the variable tt($f) can be referred
|
||||
to in the second (replacement) argument. This makes it possible to
|
||||
|
|
|
@ -236,12 +236,18 @@ if [[ $pat = (#b)(*)\((\*\*##/)\)(*) ]]; then
|
|||
else
|
||||
fpat=$pat
|
||||
fi
|
||||
files=(${~fpat})
|
||||
|
||||
[[ -n $hasglobqual ]] && pat=$opat
|
||||
|
||||
errs=()
|
||||
|
||||
() {
|
||||
# (#qN) breaks bareglobqual -Q option, so:
|
||||
setopt localoptions nullglob
|
||||
files=(${~fpat})
|
||||
}
|
||||
(( ${#files} )) || errs=( "no files matched \`$fpat'" )
|
||||
|
||||
for f in $files; do
|
||||
if [[ $pat = (#b)(*)\(\*\*##/\)(*) ]]; then
|
||||
# This looks like a recursive glob. This isn't good enough,
|
||||
|
|
Loading…
Reference in a new issue