From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1456 invoked from network); 5 Nov 1998 12:11:27 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 5 Nov 1998 12:11:27 -0000 Received: (from list@localhost) by math.gatech.edu (8.9.1/8.9.1) id HAA23441; Thu, 5 Nov 1998 07:07:28 -0500 (EST) Resent-Date: Thu, 5 Nov 1998 07:07:28 -0500 (EST) Date: Thu, 5 Nov 1998 13:05:24 +0100 (MET) Message-Id: <199811051205.NAA31465@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@math.gatech.edu In-reply-to: Peter Stephenson's message of Thu, 05 Nov 1998 12:06:22 +0100 Subject: Re: Two more (possible) problems with the new completion... Resent-Message-ID: <"CywtN1.0.Ck5.0KPGs"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/4555 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Peter Stephenson wrote: > > Maybe these are just the result of badly applied patches, like the > last two, but if they are I'll never know without asking... > > 1) The following works (and very useful it is, too: goodbye, cdmatch): > > compctl -W "($cdpath)" -/ cd > > but the following, which as far as I can see should be equivalent > apart from tracking changes in $cdpath, doesn't: > > compctl -W '$cdpath' -/ cd > > (no matches produced). > `-W' behaves like `-k', you only need `compctl -W cdpath -/ cd'. There is some extra hacklet that ensures that the old style (giving one directory) still works (in most cases): if the string isn't an parameter name, it is used directly as a directory name. So, unless you have a directory named `$cdpath' (*not* the value of `cdpath') it will produce no matches. > > 2) I suppose this is more than a misplaced fixsuffix(); you need > menucompletion set, though setting automenu and hitting twice > has the same effect: > > compctl -q -S / -k '(foo bar)' echo > ^^^^^^^ this is the important bit > > % echo -> bar/ > ^cursor here, over the slash > > followed by : > > % echo ba/ > ba/ > > so at some point the cursor is being put one character too far back. > It doesn't happen with a `genuine' autoremoveslash. This is a real bug (there really is an embarassing number of them, sigh). The cursor should be moved on the suffix only when completing inside words (paths, whatever). Bye Sven *** os/Zle/zle_tricky.c Thu Nov 5 13:02:37 1998 --- Src/Zle/zle_tricky.c Thu Nov 5 13:02:45 1998 *************** *** 5068,5074 **** if (menuwe && m->ripre && isset(AUTOPARAMKEYS)) makeparamsuffix(((m->flags & CMF_PARBR) ? 1 : 0), menuinsc); ! if (menucmp) cs = menuend; } --- 5068,5074 ---- if (menuwe && m->ripre && isset(AUTOPARAMKEYS)) makeparamsuffix(((m->flags & CMF_PARBR) ? 1 : 0), menuinsc); ! if (menucmp && !menuwe) cs = menuend; } -- Sven Wischnowsky wischnow@informatik.hu-berlin.de