From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21460 invoked from network); 4 Mar 1999 10:19:40 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 4 Mar 1999 10:19:40 -0000 Received: (qmail 16374 invoked by alias); 4 Mar 1999 10:19:06 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 5637 Received: (qmail 16367 invoked from network); 4 Mar 1999 10:19:04 -0000 Date: Thu, 4 Mar 1999 11:18:13 +0100 (MET) Message-Id: <199903041018.LAA02437@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: Peter Stephenson's message of Thu, 04 Mar 1999 10:35:05 +0100 Subject: Re: Weird bug with approximate completion Peter Stephenson wrote: > Sven Wischnowsky wrote: > > sticking it after the first slash will make the completion code use > > `/users/foo/(#a...)bin/comp' as the expanded prefix and make it > > search in that directory -- which doesn't exists, so it will > > generate no matches; should we have some special casing in the > > C-code or in the shell code here? > > I don't really understand this since I don't know at what point it hasn't > been treated as a pattern when it should have been. When doing pattern completion with a pathname the completion code still looks only at the pathname component the cursor is in. So it will split the word into `~/(#a...)/bin/comp' and the prefix `set'. The it tries to get the real path for the first one and that gets expanded to `/users/foo/(#a...)/bin/comp', with the `(#a...)' still in place. Later it uses this path to generate possible matches by trying to open the directory and reading it. But since there is no directory with a weird name like `...(#a..)...' it can't open it and produces no matches. > > I couldn't reproduce your bug, though (and for me the line you quoted > > is line number 6239). > > It's now moved to line 6238. I've fixed the symptoms by turning the > ncalloc() into a zhalloc(), which I shouldn't have to do, but can't hurt > since the memory is never freed so it should be using zhalloc() anyway. > This suggests something fairly sinister is going on. ncalloc() appears to > be pointing to the right thing, but the wrong argument appears when it's > called. Maybe we should put the test below into tricky.c. One of the things on my list is sticking several calls to `DPUTS' in there anyway... Bye Sven diff -u os/Zle/zle_tricky.c Src/Zle/zle_tricky.c --- os/Zle/zle_tricky.c Thu Mar 4 10:59:54 1999 +++ Src/Zle/zle_tricky.c Thu Mar 4 11:15:13 1999 @@ -5930,6 +5930,8 @@ if (incompfunc != 1 && findnode(ccstack, cc)) return; + MUSTUSEHEAP("complistflags"); + addlinknode(ccstack, cc); if (incompfunc != 1 && allccs) { -- Sven Wischnowsky wischnow@informatik.hu-berlin.de