Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: completion or refresh bug?
- X-seq: zsh-workers 2783
- From: Zoltan Hidvegi <hzoli@xxxxxxxxxx>
- To: pws@xxxxxx (Peter Stephenson)
- Subject: Re: completion or refresh bug?
- Date: Sat, 11 Jan 1997 23:53:20 +0100 (MET)
- Cc: zsh-workers@xxxxxxxxxxxxxxx
- In-reply-to: <199701101339.OAA24033@xxxxxxxxxxxx> from Peter Stephenson at "Jan 10, 97 02:39:47 pm"
> 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<TAB>
>
> (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);
Messages sorted by:
Reverse Date,
Date,
Thread,
Author