zsh: update to 5.3.
This commit is contained in:
parent
de23a63d99
commit
470e69d168
@ -1,94 +0,0 @@
|
|||||||
From 0c2d823a7955981e88f7cb5b718a7081d97104f0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Stephenson <pws@zsh.org>
|
|
||||||
Date: Mon, 7 Dec 2015 14:32:52 +0000
|
|
||||||
Subject: [PATCH] 37337: Delay freeing widget until not in use.
|
|
||||||
|
|
||||||
diff --git Src/Zle/zle.h Src/Zle/zle.h
|
|
||||||
index 2d672de..e9b1428 100644
|
|
||||||
--- Src/Zle/zle.h
|
|
||||||
+++ Src/Zle/zle.h
|
|
||||||
@@ -213,6 +213,8 @@ struct widget {
|
|
||||||
#define ZLE_KEEPSUFFIX (1<<9) /* DON'T remove added suffix */
|
|
||||||
#define ZLE_NOTCOMMAND (1<<10) /* widget should not alter lastcmd */
|
|
||||||
#define ZLE_ISCOMP (1<<11) /* usable for new style completion */
|
|
||||||
+#define WIDGET_INUSE (1<<12) /* widget is in use */
|
|
||||||
+#define WIDGET_FREE (1<<13) /* request to free when no longer in use */
|
|
||||||
|
|
||||||
/* thingies */
|
|
||||||
|
|
||||||
diff --git Src/Zle/zle_main.c Src/Zle/zle_main.c
|
|
||||||
index 38427e8..1f0c07d 100644
|
|
||||||
--- Src/Zle/zle_main.c
|
|
||||||
+++ Src/Zle/zle_main.c
|
|
||||||
@@ -1344,6 +1344,8 @@ execzlefunc(Thingy func, char **args, int set_bindk)
|
|
||||||
eofsent = 1;
|
|
||||||
ret = 1;
|
|
||||||
} else {
|
|
||||||
+ int inuse = wflags & WIDGET_INUSE;
|
|
||||||
+ w->flags |= WIDGET_INUSE;
|
|
||||||
if(!(wflags & ZLE_KEEPSUFFIX))
|
|
||||||
removesuffix();
|
|
||||||
if(!(wflags & ZLE_MENUCMP)) {
|
|
||||||
@@ -1367,6 +1369,12 @@ execzlefunc(Thingy func, char **args, int set_bindk)
|
|
||||||
ret = w->u.fn(args);
|
|
||||||
unqueue_signals();
|
|
||||||
}
|
|
||||||
+ if (!inuse) {
|
|
||||||
+ if (w->flags & WIDGET_FREE)
|
|
||||||
+ freewidget(w);
|
|
||||||
+ else
|
|
||||||
+ w->flags &= ~WIDGET_INUSE;
|
|
||||||
+ }
|
|
||||||
if (!(wflags & ZLE_NOTCOMMAND))
|
|
||||||
lastcmd = wflags;
|
|
||||||
}
|
|
||||||
@@ -1387,6 +1395,8 @@ execzlefunc(Thingy func, char **args, int set_bindk)
|
|
||||||
int osc = sfcontext, osi = movefd(0);
|
|
||||||
int oxt = isset(XTRACE);
|
|
||||||
LinkList largs = NULL;
|
|
||||||
+ int inuse = w->flags & WIDGET_INUSE;
|
|
||||||
+ w->flags |= WIDGET_INUSE;
|
|
||||||
|
|
||||||
if (*args) {
|
|
||||||
largs = newlinklist();
|
|
||||||
@@ -1402,8 +1412,15 @@ execzlefunc(Thingy func, char **args, int set_bindk)
|
|
||||||
opts[XTRACE] = oxt;
|
|
||||||
sfcontext = osc;
|
|
||||||
endparamscope();
|
|
||||||
- lastcmd = w->flags;
|
|
||||||
- w->flags = 0;
|
|
||||||
+ lastcmd = w->flags & ~(WIDGET_INUSE|WIDGET_FREE);
|
|
||||||
+ if (inuse) {
|
|
||||||
+ w->flags &= WIDGET_INUSE|WIDGET_FREE;
|
|
||||||
+ } else {
|
|
||||||
+ if (w->flags & WIDGET_FREE)
|
|
||||||
+ freewidget(w);
|
|
||||||
+ else
|
|
||||||
+ w->flags = 0;
|
|
||||||
+ }
|
|
||||||
r = 1;
|
|
||||||
redup(osi, 0);
|
|
||||||
}
|
|
||||||
diff --git Src/Zle/zle_thingy.c Src/Zle/zle_thingy.c
|
|
||||||
index 271fd8e..21495b6 100644
|
|
||||||
--- Src/Zle/zle_thingy.c
|
|
||||||
+++ Src/Zle/zle_thingy.c
|
|
||||||
@@ -253,9 +253,14 @@ unbindwidget(Thingy t, int override)
|
|
||||||
/* Free a widget. */
|
|
||||||
|
|
||||||
/**/
|
|
||||||
-static void
|
|
||||||
+void
|
|
||||||
freewidget(Widget w)
|
|
||||||
{
|
|
||||||
+ if (w->flags & WIDGET_INUSE) {
|
|
||||||
+ w->flags |= WIDGET_FREE;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (w->flags & WIDGET_NCOMP) {
|
|
||||||
zsfree(w->u.comp.wid);
|
|
||||||
zsfree(w->u.comp.func);
|
|
||||||
--
|
|
||||||
2.6.3
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
commit 1d8b5285226afba4f1ef9030cf862c14b975c284
|
|
||||||
Author: Peter Stephenson <pws@zsh.org>
|
|
||||||
Date: Fri Jan 15 12:49:42 2016 +0000
|
|
||||||
|
|
||||||
37643: Reset interrupt on key input in menu selection.
|
|
||||||
|
|
||||||
We don't need to propagate the interrupt further as the interrupt
|
|
||||||
causes the key to be empty, which will exit the widget. We
|
|
||||||
need to reset the condition as zrefresh() is now more sensitive
|
|
||||||
to errors since 36416 / 32f5d3d8.
|
|
||||||
|
|
||||||
diff --git a/Src/Zle/complist.c b/Src/Zle/complist.c
|
|
||||||
index 29aaee8..0ccb885 100644
|
|
||||||
--- Src/Zle/complist.c
|
|
||||||
+++ Src/Zle/complist.c
|
|
||||||
@@ -2584,6 +2584,12 @@ domenuselect(Hookdef dummy, Chdata dat)
|
|
||||||
if (!do_last_key) {
|
|
||||||
zmult = 1;
|
|
||||||
cmd = getkeycmd();
|
|
||||||
+ /*
|
|
||||||
+ * On interrupt, we'll exit due to cmd being empty.
|
|
||||||
+ * Don't propagate the interrupt any further, which
|
|
||||||
+ * can screw up redrawing.
|
|
||||||
+ */
|
|
||||||
+ errflag &= ~ERRFLAG_INT;
|
|
||||||
if (mtab_been_reallocated) {
|
|
||||||
do_last_key = 1;
|
|
||||||
continue;
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
# Template file for 'zsh'
|
# Template file for 'zsh'
|
||||||
pkgname=zsh
|
pkgname=zsh
|
||||||
version=5.2
|
version=5.3
|
||||||
revision=3
|
revision=1
|
||||||
lib32disabled=yes
|
lib32disabled=yes
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
make_build_target="all info"
|
make_build_target="all info"
|
||||||
@ -23,7 +23,7 @@ maintainer="Juan RP <xtraeme@voidlinux.eu>"
|
|||||||
homepage="http://www.zsh.org"
|
homepage="http://www.zsh.org"
|
||||||
license="zsh"
|
license="zsh"
|
||||||
distfiles="http://www.zsh.org/pub/zsh-$version.tar.xz"
|
distfiles="http://www.zsh.org/pub/zsh-$version.tar.xz"
|
||||||
checksum=f17916320ffaa844bbd7ce48ceeb5945fc5f3eff64b149b4229bbfbdf3795a9d
|
checksum=76f82cfd5ce373cf799a03b6f395283f128430db49202e3e3f512fb5a19d6f8a
|
||||||
|
|
||||||
pre_configure() {
|
pre_configure() {
|
||||||
# Set correct keymap path
|
# Set correct keymap path
|
||||||
|
Loading…
x
Reference in New Issue
Block a user