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

Re: append mark qualifier disturbs sort qualifier?



On Wed, Sep 24, 2014 at 07:27:57PM +0100, Peter Stephenson wrote:
> On Wed, 24 Sep 2014 17:24:04 +0800
> Han Pingtian <hanpt@xxxxxxxxxxxxxxxxxx> wrote:
> > localhost% print -l **/*(odonT)
> > 2/3/4/
> > 2/3/4/5.txt 
> > 2/3/4/6.txt 
> > 2/
> > 2/3/
> > 
> > Here, looks like "(T)" disturbs the sorting of "(odon)"?
> 
> Aha.
> 
> diff --git a/Src/glob.c b/Src/glob.c
> index c24bfec..ca7bc44 100644
> --- a/Src/glob.c
> +++ b/Src/glob.c
> @@ -900,6 +900,9 @@ gmatchcmp(Gmatch a, Gmatch b)
>  		/* Count slashes.  Trailing slashes don't count. */
>  		while (*aptr && *aptr == *bptr)
>  		    aptr++, bptr++;
> +		/* Like I just said... */
> +		if ((!*aptr || !*bptr) && aptr > a->name && aptr[-1] == '/')
> +		    aptr--, bptr--;
>  		if (*aptr)
>  		    for (; aptr[1]; aptr++)
>  			if (*aptr == '/') {
> 
This patch works just fine. Thanks!



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