summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@gmail.com>2015-08-31 08:35:23 +0200
committerMikael Magnusson <mikachu@gmail.com>2015-09-27 02:11:14 +0200
commita36d7ab99b4a5b1c10bc68828942faf69c35c0d0 (patch)
tree7d1cd78c0fe58face57a66cd6d5989244db488c2
parentadd zle-line-pre-redraw (diff)
downloadzsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.tar
zsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.tar.gz
zsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.tar.bz2
zsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.tar.lz
zsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.tar.xz
zsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.tar.zst
zsh-a36d7ab99b4a5b1c10bc68828942faf69c35c0d0.zip
Fix paste highlighting with zle-line-pre-redraw
-rw-r--r--Src/Zle/zle_refresh.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Src/Zle/zle_refresh.c b/Src/Zle/zle_refresh.c
index 21e79ccb5..43b05484b 100644
--- a/Src/Zle/zle_refresh.c
+++ b/Src/Zle/zle_refresh.c
@@ -1041,6 +1041,7 @@ zrefresh(void)
}
if ((initthingy = rthingy_nocreate("zle-line-pre-redraw"))) {
+ int lastcmd_prev = lastcmd;
char *args[2];
Thingy lbindk_save = lbindk, bindk_save = bindk;
refthingy(lbindk_save);
@@ -1055,6 +1056,9 @@ zrefresh(void)
unrefthingy(bindk);
lbindk = lbindk_save;
bindk = bindk_save;
+ /* we can't set ZLE_NOTCOMMAND since it's not a legit widget, so
+ * restore lastcmd manually so that we don't mess up the global state */
+ lastcmd = lastcmd_prev;
}
/* this will create region_highlights if it's still NULL */