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

Oliver: 40118: alternate fix replacing 40115

This commit reverts 40115 (commit 3594f55f) thus restoring 38579, then
applies 40118: Relocate BUFFER/CURSOR reset to work around "fc -p" issue
This commit is contained in:
Barton E. Schaefer 2016-12-24 00:15:21 -08:00
parent 02eb1595e8
commit 5455798bb5
2 changed files with 28 additions and 25 deletions

View file

@ -1,3 +1,12 @@
2016-12-24 Barton E. Schaefer <schaefer@zsh.org>
* Oliver: 40118: Functions/Zle/bracketed-paste-magic: relocate
BUFFER/CURSOR reset to work around "fc -p" issue (alternate fix
replacing 40115).
* unposted: Functions/Zle/bracketed-paste-magic: revert 40115,
thus restoring 38579.
2016-12-22 Oliver Kiddle <opk@zsh.org>
* 40162: Src/Zle/computil.c, Test/Y03arguments.ztst: _arguments

View file

@ -145,27 +145,26 @@ bracketed-paste-magic() {
done
fi
# Save context, create a clean slate for the paste
integer bpm_mark=$MARK bpm_cursor=$CURSOR bpm_region=$REGION_ACTIVE
integer bpm_numeric=${NUMERIC:-1}
local bpm_buffer=$BUFFER
fc -p -a /dev/null 0 0
BUFFER=
zstyle -a :bracketed-paste-magic inactive-keys bpm_inactive
if zstyle -s :bracketed-paste-magic active-widgets bpm_active '|'; then
# There are active widgets. Reprocess $PASTED as keystrokes.
NUMERIC=1
zle -U - $PASTED
# Save context, create a clean slate for the paste
integer bpm_mark=$MARK bpm_region=$REGION_ACTIVE
integer bpm_numeric=${NUMERIC:-1}
integer bpm_limit=$UNDO_LIMIT_NO bpm_undo=$UNDO_CHANGE_NO
zle .split-undo
UNDO_LIMIT_NO=$UNDO_CHANGE_NO
BUFFER=
CURSOR=1
fc -p -a /dev/null 0 0
if [[ $bmp_keymap = vicmd ]]; then
zle -K viins
fi
# There are active widgets. Reprocess $PASTED as keystrokes.
NUMERIC=1
zle -U - $PASTED
# Just in case there are active undo widgets
zle .split-undo
integer bpm_limit=$UNDO_LIMIT_NO bpm_undo=$UNDO_CHANGE_NO
UNDO_LIMIT_NO=$UNDO_CHANGE_NO
while [[ -n $PASTED ]] && zle .read-command; do
PASTED=${PASTED#$KEYS}
@ -183,20 +182,15 @@ bracketed-paste-magic() {
done
PASTED=$BUFFER
# Reset the undo state
zle .undo $bpm_undo
UNDO_LIMIT_NO=$bpm_limit
zle -K $bpm_keymap
fi
# Restore state
BUFFER=$bpm_buffer
zle -K $bpm_keymap
fc -P
MARK=$bpm_mark
CURSOR=$bpm_cursor
REGION_ACTIVE=$bpm_region
NUMERIC=$bpm_numeric
fc -P
zle .undo $bpm_undo
UNDO_LIMIT_NO=$bpm_limit
fi
# PASTED has been updated, run the paste-finish functions
if zstyle -a :bracketed-paste-magic paste-finish bpm_hooks; then