Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
A weird smart-insert-last-word bug
- X-seq: zsh-workers 43754
- From: Wayne Davison <wayne@xxxxxxxxxxxxx>
- To: Zsh list <zsh-workers@xxxxxxx>
- Subject: A weird smart-insert-last-word bug
- Date: Fri, 2 Nov 2018 17:03:34 -0700
- Dkim-signature: v=1; a=rsa-sha1; c=relaxed; d=opencoder.net; h= mime-version:from:date:message-id:subject:to:content-type; s= opencoder.net; bh=dSLS2OGKJJ0uQ0oNX8dx5Pky6SI=; b=LzoWlB/hgI8aNO 5fVlya8DnifUvtoookPqderQkZkF1lyfcLQ10C1or5/8WvtQ5Ks6+v4m0RR3uMcc FPVFH+PMuIBsli/nadmv+SjZ0o8dDVk5ElkCjF4e2yBaIAbOGAeJmMWhbryiIfCh XEuJ14o2ziQ8AfoLKL7XxbwbFUPpg=
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- List-unsubscribe: <mailto:zsh-workers-unsubscribe@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
Here's something I've seen very sporadically but I couldn't work out a test
case before today.
I make use of smart-insert-last-word like this:
zlewidget '' insert-last-word smart-insert-last-word
zstyle :insert-last-word match '[^,]??*'
zstyle :insert-last-word auto-previous 1
Every now and then it destroys some part of the command line when starting
a new insert sequence. This seems to be caused by its simple conditional
at the start of its file being inadequate to know when it is really
continuing:
if (( HISTNO == _ilw_hist && cursor == _ilw_cursor &&
UNDO_CHANGE_NO == _ilw_changeno ))
Since I have hist_ignore_space set, this makes it possible to trigger the
bug on successive command lines when typing a series of commands that begin
with a space. Imagine that the underscore char is a leading space:
echo foo
echo bar
_echo <Esc>.
_echo <Esc>.<Esc>.
testing12<Esc>.
at that point the command buffer will be "testinfoo". Note that it took 2
space-starting commands to be able to trigger the bug on a successive
command-line and that the column has to line up with the column where it
left off on the prior line.
The bug can also happen during an edit on a single line if you initiate the
function a second time from the column where it left off, even though some
editing has happened in between. For example:
echo <Esc>.<Bksp><Bksp><Bksp>bug<Esc>.
..wayne..
Messages sorted by:
Reverse Date,
Date,
Thread,
Author