From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8505 invoked from network); 18 Oct 1999 09:42:22 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 18 Oct 1999 09:42:22 -0000 Received: (qmail 24967 invoked by alias); 18 Oct 1999 09:42:06 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 8317 Received: (qmail 24960 invoked from network); 18 Oct 1999 09:42:06 -0000 Date: Mon, 18 Oct 1999 11:41:58 +0200 (MET DST) Message-Id: <199910180941.LAA26884@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: Oliver Kiddle's message of Fri, 15 Oct 1999 16:30:17 +0100 Subject: Re: PATCH: _urls again (Re: setopt localoptions noautoremoveslash) 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@informatik.hu-berlin.de