Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Two more (possible) problems with the new completion...
- X-seq: zsh-workers 4555
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxxx
- Subject: Re: Two more (possible) problems with the new completion...
- Date: Thu, 5 Nov 1998 13:05:24 +0100 (MET)
- In-reply-to: Peter Stephenson's message of Thu, 05 Nov 1998 12:06:22 +0100
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 <TAB> twice
> has the same effect:
>
> compctl -q -S / -k '(foo bar)' echo
> ^^^^^^^ this is the important bit
>
> % echo <TAB> -> bar/
> ^cursor here, over the slash
>
> followed by <RET>:
>
> % 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@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author