From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4627 invoked from network); 11 Jan 1997 22:47:31 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by coral.primenet.com.au with SMTP; 11 Jan 1997 22:47:31 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id RAA05700; Sat, 11 Jan 1997 17:56:39 -0500 (EST) Resent-Date: Sat, 11 Jan 1997 17:56:39 -0500 (EST) From: Zoltan Hidvegi Message-Id: <199701112253.XAA02462@hzoli.ppp.cs.elte.hu> Subject: Re: completion or refresh bug? To: pws@ifh.de (Peter Stephenson) Date: Sat, 11 Jan 1997 23:53:20 +0100 (MET) Cc: zsh-workers@math.gatech.edu In-Reply-To: <199701101339.OAA24033@hydra.ifh.de> from Peter Stephenson at "Jan 10, 97 02:39:47 pm" X-Mailer: ELM [version 2.4ME+ PL17 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"sogub2.0._O1.cg1so"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/2783 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu > This is happening with an ordinary xterm in 3.0.3-test3; it exists at > least back to 3.0.2-test2. I doubt it's terminal dependent; it still > appears if you tell the shell the xterm is a vt100. > > % zsh -f > % compctl -D -f + -X '(No file found; using history)' -H 0 '' > % echo *,ps > > (that should have been *.ps, of course) becomes: > > % echo \*.ps^@ > (No file found; using history) > % echo \*,ps > > the only problem is the extraneous ^@. With alwayslastprompt, it > appears right under the cursor. It goes when you type ^L. That patch below fixes that. > The ^@ does not appear when the -X message is removed. However, > in that case the * does not get backslashed; one of the alternatives > is presumably also a bug. I think I know the cause and I'm not sure it is a bug. I'll check. Zoltan *** Src/Zle/zle_tricky.c 1997/01/07 16:42:24 3.1.1.9 --- Src/Zle/zle_tricky.c 1997/01/11 22:41:02 *************** *** 2169,2175 **** makecomplist(char *s, int incmd, int *delit, int *compadd, int untokenized) { Compctl cc = NULL; ! int oloffs = offs, owe = we, owb = wb, ocs = cs, isf = 1; int t, sf1, sf2, ooffs; char *p, *sd = NULL, *tt, *s1, *s2, *os = NULL; unsigned char *ol = NULL; --- 2169,2175 ---- makecomplist(char *s, int incmd, int *delit, int *compadd, int untokenized) { Compctl cc = NULL; ! int oloffs = offs, owe = we, owb = wb, ocs = cs, oll = ll, isf = 1; int t, sf1, sf2, ooffs; char *p, *sd = NULL, *tt, *s1, *s2, *os = NULL; unsigned char *ol = NULL; *************** *** 2184,2189 **** --- 2184,2191 ---- xorrec: + DPUTS(ll != strlen((char *) line), "BUG: xorrec: ll != strlen(line)"); + /* Go to the end of the word if complete_in_word is not set. */ if (unset(COMPLETEINWORD) && cs != we) cs = we, offs = strlen(s); *************** *** 2923,2928 **** --- 2925,2931 ---- wb = owb; we = owe; cs = ocs; + ll = oll; strcpy((char *)line, (char *)ol); offs = oloffs; s = dupstring(os);