mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-01-01 05:16:05 +01:00
36212: save and restore HISTNO along with other editor state, for sanity of "zle undo"
This commit is contained in:
parent
9a369d39e1
commit
c239a7bd91
2 changed files with 10 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2015-08-17 Barton E. Schaefer <schaefer@zsh.org>
|
||||
|
||||
* 36212: Functions/Zle/narrow-to-region: save and restore HISTNO
|
||||
along with other editor state, for sanity of "zle undo"
|
||||
|
||||
2015-08-18 brian m. carlson <sandals@crustytoothpaste.net>
|
||||
|
||||
* 36209: Functions/VCS_Info/Backends/VCS_INFO_get_data_git:
|
||||
|
|
|
@ -32,7 +32,7 @@ setopt localoptions noshwordsplit noksharrays
|
|||
|
||||
local _ntr_newbuf _ntr_lbuf_return _ntr_rbuf_return
|
||||
local _ntr_predisplay=$PREDISPLAY _ntr_postdisplay=$POSTDISPLAY
|
||||
integer _ntr_savelim=UNDO_LIMIT_NO _ntr_changeno
|
||||
integer _ntr_savelim=UNDO_LIMIT_NO _ntr_changeno _ntr_histno=HISTNO
|
||||
integer _ntr_start _ntr_end _ntr_swap _ntr_cursor=$CURSOR _ntr_mark=$MARK
|
||||
integer _ntr_stat
|
||||
|
||||
|
@ -108,7 +108,7 @@ if [[ -n $_ntr_save || -z $_ntr_restore ]]; then
|
|||
builtin typeset -ga $_ntr_save
|
||||
set -A $_ntr_save "${_ntr_predisplay}" "${_ntr_postdisplay}" \
|
||||
"${_ntr_savelim}" "${_ntr_changeno}" \
|
||||
"${_ntr_start}" "${_ntr_end}" || return 1
|
||||
"${_ntr_start}" "${_ntr_end}" "${_ntr_histno}" || return 1
|
||||
fi
|
||||
|
||||
BUFFER=${BUFFER[_ntr_start+1,_ntr_end]}
|
||||
|
@ -135,13 +135,15 @@ if [[ -n $_ntr_restore || -z $_ntr_save ]]; then
|
|||
_ntr_savelim="${${(@P)_ntr_restore}[3]}"
|
||||
_ntr_changeno="${${(@P)_ntr_restore}[4]}"
|
||||
_ntr_start="${${(@P)_ntr_restore}[5]}"
|
||||
_ntr_end="${${(@P)_ntr_restore}[6]}" }; then
|
||||
_ntr_end="${${(@P)_ntr_restore}[6]}"
|
||||
_ntr_histno="${${(@P)_ntr_restore}[7]}" }; then
|
||||
zle -M Failed. >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
_ntr_newbuf="$BUFFER"
|
||||
HISTNO=_ntr_histno
|
||||
zle undo $_ntr_changeno
|
||||
PREDISPLAY=$_ntr_predisplay
|
||||
POSTDISPLAY=$_ntr_postdisplay
|
||||
|
|
Loading…
Reference in a new issue