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

Re: Problem with completion after a variable with globcomplete



Sven Wischnowsky wrote:
> 
> Oliver Kiddle wrote:
> 
> > zsh -f
> > autoload -U compinit
> > compinit
> > setopt globcomplete
> > f=/home
> > cd $f/okiddle/<tab>
> >
> > Here the tab, inserts a space when I would expect it to list directories
> > in my home. It seems to be that completion stops working for the second
> > directory after a variable reference.
> 
> The test if we had a pattern went wrong.

Thanks, this fixes it for the case above but I noticed that the problem
is still there for arrays. I've also found that the problem also exists
for tilde expansion - using ${(q)...) quotes a tilde and square
brackets.

> -          "$PREFIX$SUFFIX" != "${(q)PREFIX}${(q)SUFFIX}" ]]; then
> +          "${PREFIX:s/$//}${SUFFIX:s/$//}" != "${(q)PREFIX:s/$//}${(q)SUFFIX:s/$//}"

I can send a patch which as far as I know fixes the problem by extending
your logic there to take out tildes and square brackets but I don't
really understand the context in which that line has been used (and why
the globcomplete option should affect it) and so I'm not sure that it
wouldn't break anything else in the process. The condition seems to be
checking for any characters which might need to be quoted in $PREFIX and
$SUFFIX. I would have thought that any character could appear as part of
the command-line.

Oliver



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