aboutsummaryrefslogtreecommitdiff
path: root/shells/zsh
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2012-01-13 21:05:13 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2012-01-13 21:05:13 +0000
commitcd62e28a339d136b8de48939a7b1eaefcdfc3970 (patch)
tree39b5cc8cd8076af39277cfa63195f6d216b755b8 /shells/zsh
parent25ccb5ca5566cb3fbb6e4468ace08ea177e61321 (diff)
Notes
Diffstat (limited to 'shells/zsh')
-rw-r--r--shells/zsh/Makefile1
-rw-r--r--shells/zsh/files/patch-Src__Zle__zle_main.c30
2 files changed, 31 insertions, 0 deletions
diff --git a/shells/zsh/Makefile b/shells/zsh/Makefile
index 4055c6fb8d2a..4cac54949e1a 100644
--- a/shells/zsh/Makefile
+++ b/shells/zsh/Makefile
@@ -7,6 +7,7 @@
PORTNAME= zsh
PORTVERSION= 4.3.15
+PORTREVISION= 1
CATEGORIES= shells
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-dev/${PORTVERSION} \
SF/${PORTNAME}/${PORTNAME}-doc-dev/${PORTVERSION}:doc
diff --git a/shells/zsh/files/patch-Src__Zle__zle_main.c b/shells/zsh/files/patch-Src__Zle__zle_main.c
new file mode 100644
index 000000000000..f8ecf8a1ca8b
--- /dev/null
+++ b/shells/zsh/files/patch-Src__Zle__zle_main.c
@@ -0,0 +1,30 @@
+--- ./Src/Zle/zle_main.c.orig 2012-01-13 21:55:51.773384066 +0100
++++ ./Src/Zle/zle_main.c 2012-01-13 21:56:14.530384358 +0100
+@@ -1200,6 +1200,18 @@
+ putc('\r', shout);
+ if (tmout)
+ alarm(tmout);
++
++ /*
++ * On some windowing systems we may enter this function before the
++ * terminal is fully opened and sized, resulting in an infinite
++ * series of SIGWINCH when the handler prints the prompt before we
++ * have done so here. Therefore, hold any such signal until the
++ * first full refresh has completed. The important bit is that the
++ * handler must not see zleactive = 1 until ZLE really is active.
++ * See the end of adjustwinsize() in Src/utils.c
++ */
++ queue_signals();
++
+ zleactive = 1;
+ resetneeded = 1;
+ errflag = retflag = 0;
+@@ -1209,6 +1221,8 @@
+
+ zrefresh();
+
++ unqueue_signals(); /* Should now be safe to acknowledge SIGWINCH */
++
+ zlecallhook("zle-line-init", NULL);
+
+ zlecore();