From: "Bart Schaefer" <schaefer@brasslantern.com>
To: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>,
zsh-workers@math.gatech.edu
Subject: Re: BUG: Extended completion with alternative completion
Date: Mon, 2 Nov 1998 09:20:45 -0800 [thread overview]
Message-ID: <981102092045.ZM11574@candle.brasslantern.com> (raw)
In-Reply-To: <199811021143.MAA22063@beta.informatik.hu-berlin.de>
On Nov 2, 12:43pm, Sven Wischnowsky wrote:
} Subject: Re: BUG: Extended completion with alternative completion
}
} Bart Schaefer wrote:
} > There are two problems: (1) in get_ccompctl(), when we chose to return
} > the n[] completion, we lose track of the alternative (which hangs off
} > the xor pointer in the head of the linked list of -x patterns); (2) we're
} > prematurely returning an error in makecomplist(), so even if we still had
} > the handle to the xor, we'd never follow it.
}
} Well, (1) is taken care of in the modifications of the completion code
} that are soon to appear.
That's good.
} And I have to admit that I don't really understand your other
} problem. If you want cdmatch to be called even if the cursor is before
} the '/', you should use `C[0,*/*]', the manual says that with `n[i,s]'
} anything up to the i'th occurrence of s is not part of the completion
I don't actually want cdmatch to be called; I just used that as an example
because I can't get -anything- to be called.
What I want is for something else to be called when cdmatch doesn't give
any completions, e.g., cdmatch was called for n[-1,/] but result=(). The
definition of alternative completion is that the next alternative is tried
when the previous one doesn't produce any matches; that's all I'm trying to
get to have happen, and even the 3.0.5 manual claims that it should work
with the extended completion form that I used (`+' after the `--').
} Also I don't have any trouble with your second compctl-version
} (trouble in the sense of SEGV or something like that).
No, I don't either; just a feep() I that shouldn't be feeped.
} So, could you please tell me what you wanted to have completed after
} the `cd S/M'? (I guess you want `cd Src/Modules' but that would also
} require a change in cdmatch.) Maybe I will then understand which fix
} you are suggesting for (2).
I can show you directly what fix I'm suggesting for (2) (note, I do NOT
at this point recommend that anyone apply this patch, it has minimal
usefulness without also fixing what we're calling (1) here):
Index: zle_tricky.c
===================================================================
RCS file: /extra/cvsroot/zsh/zsh-3.1/Src/Zle/zle_tricky.c,v
retrieving revision 1.15
diff -u -r1.15 zle_tricky.c
--- zle_tricky.c 1998/10/30 17:52:48 1.15
+++ zle_tricky.c 1998/11/02 08:31:00
@@ -2290,7 +2290,7 @@
s += *compadd;
if ((offs -= *compadd) < 0)
/* It's bigger than our word prefix, so we can't help here... */
- return 1;
+ goto xornext;
/* Insert the prefix (compctl -P), if any. */
if (cc->prefix) {
@@ -3037,6 +3037,8 @@
validlist = 1;
if (nmatches && !errflag)
return 0;
+
+ xornext:
if ((isf || cc->xor) && !parampre) {
/* We found no matches, but there is a xor'ed completion: *
(In the `if ((isf ...' block is another goto that jumps back to the top
of makecomplist() to try again with cc->xor.)
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
next prev parent reply other threads:[~1998-11-02 17:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-11-02 11:43 Sven Wischnowsky
1998-11-02 17:20 ` Bart Schaefer [this message]
-- strict thread matches above, loose matches on Subject: below --
1998-11-02 9:29 Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=981102092045.ZM11574@candle.brasslantern.com \
--to=schaefer@brasslantern.com \
--cc=wischnow@informatik.hu-berlin.de \
--cc=zsh-workers@math.gatech.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).