zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: Re: _find or _users broken?
@ 2000-05-02  8:53 Sven Wischnowsky
  0 siblings, 0 replies; only message in thread
From: Sven Wischnowsky @ 2000-05-02  8:53 UTC (permalink / raw)
  To: zsh-workers


Bart Schaefer wrote:

> On Apr 29,  1:58pm, Adam Spiers wrote:
> } Subject: _find or _users broken?
> }
> } $ find -user <TAB>
> } ---- user
> } ---- directory
> } <list of directories and users together>
> } $ find ! -user <TAB>
> } ---- directory
> } <list of directories>
> } 
> } Why is it completing directories at all?  And when it completes users
> } and directories, why are the users listed under the directory group?
> 
> That part must have something to do with your settings.  The final clause
> of the _arguments call in _find is to complete directories when nothing
> else matches.

Right. Maybe a not-fully up-to-date version? We had some changes to
_arguments lately. And they were also causing this:

> There is something going wrong, though:
> 
> zagzig[103] find -user <TAB>
> Completing user
> (list of users only)
> zagzig[103] find /tmp -user <TAB>
> (feep, no completions)
> 
> This (and your case with `!') appears to happen because comparguments
> believes the list of options to have been finished when /tmp was put
> on the line, i.e., it doesn't deal well with commands whose options
> follow a list of non-option arguments.

That was just a bug in the function that collects the actions to
report. It incorrectly tested the argument numbers even for arguments
of options.

And it should always complete options and their arguments after all
normal arguments, right? It always did (or should have done) that.

And of course, for `find' there is no `last' argument because we
complete any number of directories.

Bye
 Sven

Index: Src/Zle/computil.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/Zle/computil.c,v
retrieving revision 1.10
diff -u -r1.10 computil.c
--- Src/Zle/computil.c	2000/04/28 11:16:52	1.10
+++ Src/Zle/computil.c	2000/05/02 08:52:11
@@ -1396,9 +1396,9 @@
 
     addopt = (opt ? 0 : ca_laststate.oopt);
 
-    for (; arg && (arg->num < 0 ||
-		   (arg->min <= ca_laststate.nth + addopt &&
-		    arg->num >= ca_laststate.nth));) {
+    for (; arg && (opt || (arg->num < 0 ||
+			   (arg->min <= ca_laststate.nth + addopt &&
+			    arg->num >= ca_laststate.nth)));) {
 	lopt = (arg->type == CAA_OPT);
 	if (!opt && !lopt && oopt > 0)
 	    oopt = 0;

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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2000-05-02  8:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-05-02  8:53 PATCH: Re: _find or _users broken? 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).