zsh-workers
 help / color / mirror / code / Atom feed
* `expand' style with prefix and matchers
@ 2001-10-09 13:37 Peter Stephenson
  2001-10-10 11:53 ` Sven Wischnowsky
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Stephenson @ 2001-10-09 13:37 UTC (permalink / raw)
  To: Zsh hackers list

I hadn't noticed this until about yesterday, but I suspect the ingredient I
didn't have before is that it needs a special matcher.

If I have
  zstyle ':completion:*' expand suffix
then
  ~/bc01/t/h-b-12-p
expands to
  ~/bc01/test/hci-branch-12-patches
(I haven't bothered showing the matcher spec since it obviously works.)

If I have
  zstyle ':completion:*' expand prefix suffix
however, I get the list
  Completing file
  bc01/test/h-b-12-p      bc01/testsclk/h-b-12-p  bc01/traces/h-b-12-p  
Neither of the other two directories contain a match for h-b-12-p.

It looks like overeagerness to apply the `prefix' style even if there is
actually only one possible match --- I would guess it's applying it before
it's done the stuff with matchers.

Probably the worst aspect is that the same problem shows up with
~/bc01/test/h-b-12-p, because the first part matches testsclk, which is a
bit obscure since it doesn't obviously have anything to do with multiple
paths.  In this version, I can tickle the bug without the `suffix' part of
the expand style.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 392070


**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential 
and/or privileged material. 
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by 
persons or entities other than the intended recipient is 
prohibited.  
If you received this in error, please contact the sender and 
delete the material from any computer.
**********************************************************************


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: `expand' style with prefix and matchers
  2001-10-09 13:37 `expand' style with prefix and matchers Peter Stephenson
@ 2001-10-10 11:53 ` Sven Wischnowsky
  2001-10-10 13:39   ` Peter Stephenson
  0 siblings, 1 reply; 4+ messages in thread
From: Sven Wischnowsky @ 2001-10-10 11:53 UTC (permalink / raw)
  To: zsh-workers


Peter Stephenson wrote:

> ...
> 
> If I have
>   zstyle ':completion:*' expand prefix suffix
> however, I get the list
>   Completing file
>   bc01/test/h-b-12-p      bc01/testsclk/h-b-12-p  bc01/traces/h-b-12-p  
> Neither of the other two directories contain a match for h-b-12-p.
> 
> It looks like overeagerness to apply the `prefix' style even if there is
> actually only one possible match --- I would guess it's applying it before
> it's done the stuff with matchers.
> 
> Probably the worst aspect is that the same problem shows up with
> ~/bc01/test/h-b-12-p, because the first part matches testsclk, which is a
> bit obscure since it doesn't obviously have anything to do with multiple
> paths.  In this version, I can tickle the bug without the `suffix' part of
> the expand style.

I was slightly irritated at first, too.  But then... the match spec
that makes h-b-12-p match isn't the first on in your matcher-list
style, right? What happens is that _path_files collects the matching
prefixes for the non-matching suffixes every time, in this case for
the first match spec where h-b-12-p doesn't match. And then the expand 
style says to accept them. So we should only accept them when we are
trying the last spec from the matcher-list style. At least that sounds 
sensible, doesn't it?

Bye
  Sven

Index: Completion/Unix/Type/_path_files
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Type/_path_files,v
retrieving revision 1.12
diff -u -r1.12 _path_files
--- Completion/Unix/Type/_path_files	2001/10/05 11:18:37	1.12
+++ Completion/Unix/Type/_path_files	2001/10/10 11:50:22
@@ -656,9 +656,13 @@
 
 # If we are configured to expand paths as far as possible and we collected
 # expanded paths that are different from the string on the line, we add
-# them as possible matches.
+# them as possible matches. Do that only if we are currently trying the
+# last entry in the matcher-list style, otherwise other match specs might
+# make the suffix that didn't match this time match in one of the following
+# attempts.
 
-if zstyle -t ":completion:${curcontext}:paths" expand prefix &&
+if [[ _matcher_num -eq ${#_matchers} ]] &&
+   zstyle -t ":completion:${curcontext}:paths" expand prefix &&
    [[ nm -eq compstate[nmatches] && $#exppaths -ne 0 &&
       "$linepath$exppaths" != "$eorig" ]]; then
   PREFIX="${opre}"

-- 
Sven Wischnowsky                    wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: `expand' style with prefix and matchers
  2001-10-10 11:53 ` Sven Wischnowsky
@ 2001-10-10 13:39   ` Peter Stephenson
  2001-10-11  9:21     ` Sven Wischnowsky
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Stephenson @ 2001-10-10 13:39 UTC (permalink / raw)
  To: Zsh hackers list

Sven Wischnowsky wrote:
> > If I have
> >   zstyle ':completion:*' expand prefix suffix
> > however, I get the list
> >   Completing file
> >   bc01/test/h-b-12-p      bc01/testsclk/h-b-12-p  bc01/traces/h-b-12-p  
> > Neither of the other two directories contain a match for h-b-12-p.
> 
> I was slightly irritated at first, too.  But then... the match spec
> that makes h-b-12-p match isn't the first on in your matcher-list
> style, right? What happens is that _path_files collects the matching
> prefixes for the non-matching suffixes every time, in this case for
> the first match spec where h-b-12-p doesn't match. And then the expand 
> style says to accept them. So we should only accept them when we are
> trying the last spec from the matcher-list style. At least that sounds 
> sensible, doesn't it?

Sounds perfectly reasonable to me, anyway.  Works fine.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 392070


**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential 
and/or privileged material. 
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by 
persons or entities other than the intended recipient is 
prohibited.  
If you received this in error, please contact the sender and 
delete the material from any computer.
**********************************************************************


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: `expand' style with prefix and matchers
  2001-10-10 13:39   ` Peter Stephenson
@ 2001-10-11  9:21     ` Sven Wischnowsky
  0 siblings, 0 replies; 4+ messages in thread
From: Sven Wischnowsky @ 2001-10-11  9:21 UTC (permalink / raw)
  To: zsh-workers


Peter Stephenson wrote:

> ...
> > 
> > I was slightly irritated at first, too.  But then... the match spec
> > that makes h-b-12-p match isn't the first on in your matcher-list
> > style, right? What happens is that _path_files collects the matching
> > prefixes for the non-matching suffixes every time, in this case for
> > the first match spec where h-b-12-p doesn't match. And then the expand 
> > style says to accept them. So we should only accept them when we are
> > trying the last spec from the matcher-list style. At least that sounds 
> > sensible, doesn't it?
> 
> Sounds perfectly reasonable to me, anyway.  Works fine.

I've now committed it -- I wanted to do that yesterday but my mail
didn't come back, then I had to leave in a hurry and forgot.

Bye
  Sven

-- 
Sven Wischnowsky                    wischnow@informatik.hu-berlin.de


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-10-11  9:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-10-09 13:37 `expand' style with prefix and matchers Peter Stephenson
2001-10-10 11:53 ` Sven Wischnowsky
2001-10-10 13:39   ` Peter Stephenson
2001-10-11  9:21     ` Sven Wischnowsky

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).