Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: History !# substitutions
- X-seq: zsh-workers 1222
- From: Peter Stephenson <pws@xxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxxx (Zsh hackers list)
- Subject: Re: History !# substitutions
- Date: Thu, 30 May 1996 10:33:42 +0200
- In-reply-to: "schaefer@xxxxxxxxxxxxxxxxxxxxxxx"'s message of "Wed, 29 May 1996 21:40:53 MET." <960529214056.ZM28475@xxxxxxxxxxxxxxxxxxxxxxx>
schaefer@xxxxxxxxxxxxxxxxxxxxxxx wrote:
> zigzag% echo foo bar !#:1 ba<TAB>
> [BEEP][cursor doesn't move]
>
> Much better, but still not perfect. I realize it probably can't expand
> to the correct word, but could it at least ignore the history error and
> continue completing stuff on the rest of the line?
I think a judicious `stophist = 1' in get_comp_string() should fix this.
At this point, any valid history expansion has been done, and the
lexrestore() will fix up the real history, so this should be pretty
harmless otherwise.
I changed the code, then found there was a bug in menu completion:
hitting tab repeatedly added an extra space each time. Then I tried
it with the old version and discovered it was there anyway. Has this
been reported and fixed while I was asleep?
% setopt menucomplete
% print zle<TAB><TAB><TAB><TAB><TAB><Ctrl-e>
produces
% print zle_misc.c _
^ cursor here.
This is something to do with the code in do_single() around line 3343 of
zle_tricky.c where something called singlec is used to determine
whether a space or slash should be added. I don't know enough about
what this does to fix it.
Here's the (probably correct, as far as patches to zle_tricky.c go
:-/) patch for ignoring previous history entries when completing.
*** Src/zle_tricky.c.hstop Thu May 30 10:18:25 1996
--- Src/zle_tricky.c Thu May 30 10:19:43 1996
***************
*** 936,941 ****
--- 936,942 ----
lexsave();
inpush(dupstrspace((char *) linptr), 0);
strinbeg();
+ stophist = 1;
pushheap();
heapalloc();
i = tt0 = cp = rd = 0;
--
Peter Stephenson <pws@xxxxxx> Tel: +49 33762 77366
WWW: http://www.ifh.de/~pws/ Fax: +49 33762 77330
Deutches Electronen-Synchrotron --- Institut fuer Hochenergiephysik Zeuthen
DESY-IfH, 15735 Zeuthen, Germany.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author