From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3131 invoked from network); 8 Feb 2000 13:59:24 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 8 Feb 2000 13:59:24 -0000 Received: (qmail 25786 invoked by alias); 8 Feb 2000 13:59:18 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 9622 Received: (qmail 25776 invoked from network); 8 Feb 2000 13:59:16 -0000 Message-ID: <38A02129.7D6126DF@u.genie.co.uk> Date: Tue, 08 Feb 2000 13:59:05 +0000 From: Oliver Kiddle X-Mailer: Mozilla 4.7 [en] (Win95; I) X-Accept-Language: en MIME-Version: 1.0 To: Zsh workers Subject: Re: Problem with completion after a variable with globcomplete References: <200002081007.LAA01435@beta.informatik.hu-berlin.de> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sven Wischnowsky wrote: > > Oliver Kiddle wrote: > > > zsh -f > > autoload -U compinit > > compinit > > setopt globcomplete > > f=/home > > cd $f/okiddle/ > > > > 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