1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-12-29 16:25:35 +01:00

35469: test UNDO_CHANGE_NO to determine whether to start over or use the next history event

This commit is contained in:
Barton E. Schaefer 2015-06-14 20:12:42 -07:00
parent 806f73a0b3
commit 9f3dc6605a
2 changed files with 12 additions and 3 deletions

View file

@ -1,5 +1,8 @@
2015-06-14 Barton E. Schaefer <schaefer@zsh.org>
* 35469: Functions/Zle/smart-insert-last-word: test UNDO_CHANGE_NO
to determine whether to start over or use the next history event
* 35467: Completion/Unix/Command/_du: complete files for non-GNU du
2015-06-12 Peter Stephenson <p.stephenson@samsung.com>

View file

@ -47,13 +47,15 @@ setopt extendedglob nohistignoredups
zle auto-suffix-retain
# Not strictly necessary:
# (($+_ilw_hist)) || integer -g _ilw_hist _ilw_count _ilw_cursor _ilw_lcursor
# (($+_ilw_hist)) || integer -g _ilw_hist _ilw_count _ilw_cursor _ilw_lcursor _ilw_changeno
integer cursor=$CURSOR lcursor=$CURSOR
local lastcmd pattern numeric=$NUMERIC
# Save state for repeated calls
if (( HISTNO == _ilw_hist && cursor == _ilw_cursor )); then
if (( HISTNO == _ilw_hist && cursor == _ilw_cursor &&
UNDO_CHANGE_NO == _ilw_changeno ))
then
NUMERIC=$[_ilw_count+1]
lcursor=$_ilw_lcursor
else
@ -61,7 +63,8 @@ else
_ilw_lcursor=$lcursor
fi
# Handle the up to three arguments of .insert-last-word
if (( $+1 )); then
if (( $+1 ))
then
if (( $+3 )); then
((NUMERIC = -($1)))
else
@ -117,3 +120,6 @@ fi
LBUFFER[lcursor+1,cursor+1]=$lastcmd[-NUMERIC]
_ilw_cursor=$CURSOR
# This is necessary to update UNDO_CHANGE_NO immediately
zle split-undo && _ilw_changeno=$UNDO_CHANGE_NO