Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: _urls again (Re: setopt localoptions noautoremoveslash)
- X-seq: zsh-workers 8317
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: Re: PATCH: _urls again (Re: setopt localoptions noautoremoveslash)
- Date: Mon, 18 Oct 1999 11:41:58 +0200 (MET DST)
- In-reply-to: Oliver Kiddle's message of Fri, 15 Oct 1999 16:30:17 +0100
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Oliver Kiddle wrote:
> I tracked down the first problem to setopt glob_complete. i.e, the
> following is sufficient to cause the problem:
Ah, that helped. The problem was the `-f' business: it first tried to
match files. That found the `~' and with extendedglob set that made
the string look like a pattern, so the C-code set a flag
(`haspattern') which triggered menu-completion. The fix is to reset
that flag if no matches could be generated.
I also found out that `_tilde' wans't using `_users' yet.
> With respect to the second problem, I think I was just confused by the
> fact that I got a listing which looks like:
> file
> directory
> fred/ joe
> when I expected the file to appear before 'directory' so sorry for not
> checking it before I sent the mail.
A more verbose `description_format' might help here...
Bye
Sven
diff -u oldsrc/Zle/zle_tricky.c Src/Zle/zle_tricky.c
--- oldsrc/Zle/zle_tricky.c Mon Oct 18 11:17:17 1999
+++ Src/Zle/zle_tricky.c Mon Oct 18 11:37:21 1999
@@ -4026,7 +4026,7 @@
char **aign = NULL, **dparr = NULL, oaq = autoq, *oppre = dat->ppre;
char *oqp = qipre, *oqs = qisuf, qc, **disp = NULL;
int lpl, lsl, pl, sl, bpl, bsl, bppl = -1, bssl = -1;
- int llpl = 0, llsl = 0, nm = mnum, gflags = 0;
+ int llpl = 0, llsl = 0, nm = mnum, gflags = 0, ohp = haspattern;
int oisalt = 0, isalt, isexact, doadd, ois = instring, oib = inbackt;
Cline lc = NULL;
Cmatch cm;
@@ -4333,6 +4333,9 @@
qipre = oqp;
qisuf = oqs;
+ if (mnum == nm)
+ haspattern = ohp;
+
return (mnum == nm);
}
@@ -6258,6 +6261,7 @@
makecomplistflags(Compctl cc, char *s, int incmd, int compadd)
{
int t, sf1, sf2, ooffs, um = usemenu, delit, oaw, gflags;
+ int mn = mnum, ohp = haspattern;
char *p, *sd = NULL, *tt, *s1, *s2, *os = dupstring(s);
struct cmlist ms;
@@ -7173,6 +7177,9 @@
uremnode(ccstack, firstnode(ccstack));
if (cc->matcher)
mstack = mstack->next;
+
+ if (mn == mnum)
+ haspattern = ohp;
}
/* Invalidate the completion list. */
diff -u -r oldcompletion/Base/_tilde Completion/Base/_tilde
--- oldcompletion/Base/_tilde Mon Oct 18 11:17:45 1999
+++ Completion/Base/_tilde Mon Oct 18 11:26:30 1999
@@ -39,12 +39,12 @@
_description d 'directory stack'
compadd "$d[@]" -V dirs -S/ -ld lines -Q - "$list[@]"
else
+ _users "$@"
if (( $# )); then
d=( "$@" )
else
- _description d 'user or named directory'
+ _description d 'named directory'
fi
-
- compgen "$d[@]" -nu "$s[@]"
+ compgen "$d[@]" -n "$s[@]"
fi
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author