Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: zmv -W/-w in subdirs, possibly patch



2009/9/6 Peter Stephenson <p.w.stephenson@xxxxxxxxxxxx>:
> On Sun, 6 Sep 2009 01:29:50 +0200
> Mikael Magnusson <mikachu@xxxxxxxxx> wrote:
>> My question is: Why was the / there in the first place? Would the
>> above patch break any existing usecases?
>> (in case it is hard to spot, the patch removes the only / on the
>> line). If it does break some weird complex
>> pattern, maybe I would argue that you should not use -w then.
>
> I've a suspicion this was supposed to catch **/.  This might even work.
>
> Index: Functions/Misc/zmv
> ===================================================================
> RCS file: /cvsroot/zsh/zsh/Functions/Misc/zmv,v
> retrieving revision 1.14
> diff -u -r1.14 zmv
> --- Functions/Misc/zmv  11 May 2008 11:23:31 -0000      1.14
> +++ Functions/Misc/zmv  6 Sep 2009 18:44:18 -0000
> @@ -187,7 +187,7 @@
>   # Well, this seems to work.
>   # The tricky bit is getting all forms of [...] correct, but as long
>   # as we require inactive bits to be backslashed its not so bad.
> -  find='(#m)((\*\*#/|[*?]|<[0-9]#-[0-9]#>|\[(^|)(\]|)(\[:[a-z]##:\]|\\?|[^\]])##\])\##|?\###)'
> +  find='(#m)((\*\*##/|[*?]|<[0-9]#-[0-9]#>|\[(^|)(\]|)(\[:[a-z]##:\]|\\?|[^\]])##\])\##|?\###)'
>   tmp="${pat//${~find}/$[++cnt]}"
>   if [[ $cnt = 0 ]]; then
>     print -r -- "$myname: warning: no wildcards were found in search pattern" >&2

Your version works with *.foo, */*.foo and **/*.foo, I didn't try any
other variations.

-- 
Mikael Magnusson



Messages sorted by: Reverse Date, Date, Thread, Author