summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2015-07-14 00:28:23 +0200
committerOliver Kiddle <opk@zsh.org>2015-07-14 00:30:45 +0200
commit5911aca85f200cb7621b65ff61d79919fd21cfcb (patch)
tree06135147b469a09738baa78f9ea5c786cc1fce08
parent81bfb1a327ebfda9d705e8d77fd51f31b5dc968c (diff)
downloadzsh-5911aca85f200cb7621b65ff61d79919fd21cfcb.tar.gz
zsh-5911aca85f200cb7621b65ff61d79919fd21cfcb.zip
35737: (tweaked c.f. Peter: 35759): use new undo limit for minibuffer and beep when limit is reached
-rw-r--r--ChangeLog4
-rw-r--r--Functions/Zle/read-from-minibuffer5
-rw-r--r--Src/Zle/zle_utils.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 1290497ae..7679d4ed8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2015-07-13 Oliver Kiddle <opk@zsh.org>
+ * 35737: (tweaked c.f. Peter: 35759): Src/Zle/zle_utils.c,
+ Functions/Zle/read-from-minibuffer: use new undo limit for
+ minibuffer and beep when limit is reached
+
* 35756: Completion/Zsh/Type/_ps1234: use the actual
colours in the completion list for terminal colours
diff --git a/Functions/Zle/read-from-minibuffer b/Functions/Zle/read-from-minibuffer
index 8fec1105e..09dc68f97 100644
--- a/Functions/Zle/read-from-minibuffer
+++ b/Functions/Zle/read-from-minibuffer
@@ -20,7 +20,7 @@ done
(( OPTIND > 1 )) && shift $(( OPTIND - 1 ))
local readprompt="$1" lbuf_init="$2" rbuf_init="$3"
-integer changeno=$UNDO_CHANGE_NO
+integer savelim=$UNDO_LIMIT_NO changeno=$UNDO_CHANGE_NO
{
# Use anonymous function to make sure special values get restored,
@@ -43,6 +43,8 @@ integer changeno=$UNDO_CHANGE_NO
else
local NUMERIC
unset NUMERIC
+ zle split-undo
+ UNDO_LIMIT_NO=$UNDO_CHANGE_NO
zle recursive-edit -K main
stat=$?
(( stat )) || REPLY=$BUFFER
@@ -52,6 +54,7 @@ integer changeno=$UNDO_CHANGE_NO
# This removes the edits relating to the read from the undo history.
# These aren't useful once we get back to the main editing buffer.
zle undo $changeno
+ UNDO_LIMIT_NO=savelim
}
return $stat
diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c
index 198c0baa3..8b55403b3 100644
--- a/Src/Zle/zle_utils.c
+++ b/Src/Zle/zle_utils.c
@@ -1587,7 +1587,7 @@ undo(char **args)
if (prev->changeno < last_change)
break;
if (prev->changeno < undo_limitno && !*args)
- break;
+ return 1;
if (unapplychange(prev))
curchange = prev;
else