aboutsummaryrefslogtreecommitdiffstats
path: root/misc/mc
diff options
context:
space:
mode:
authorfjoe <fjoe@FreeBSD.org>2010-10-20 21:46:01 +0800
committerfjoe <fjoe@FreeBSD.org>2010-10-20 21:46:01 +0800
commit8e57b88a996070301bd6fb59576cb7a00c104b76 (patch)
tree006b22448cc837ba1bfe3ac0f506b07d53f8b292 /misc/mc
parent68c3972e21e04877444fb33a3a1cc4ab4258cee1 (diff)
downloadfreebsd-ports-gnome-8e57b88a996070301bd6fb59576cb7a00c104b76.tar.gz
freebsd-ports-gnome-8e57b88a996070301bd6fb59576cb7a00c104b76.tar.zst
freebsd-ports-gnome-8e57b88a996070301bd6fb59576cb7a00c104b76.zip
Fix hangs when exiting with "F10, Enter" if shell is tcsh:
http://www.midnight-commander.org/changeset/cde7a850d5d0027956f3c7005e81cfa8cc7a56a1 Submitted by: Ilya A. Arhipov
Diffstat (limited to 'misc/mc')
-rw-r--r--misc/mc/Makefile2
-rw-r--r--misc/mc/files/patch-src-dialog.c58
2 files changed, 59 insertions, 1 deletions
diff --git a/misc/mc/Makefile b/misc/mc/Makefile
index 6dd26e6a81d0..0154304649dd 100644
--- a/misc/mc/Makefile
+++ b/misc/mc/Makefile
@@ -7,7 +7,7 @@
PORTNAME= mc
PORTVERSION= 4.7.4
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= misc shells
MASTER_SITES= http://www.midnight-commander.org/downloads/ \
${MASTER_SITE_SUNSITE}
diff --git a/misc/mc/files/patch-src-dialog.c b/misc/mc/files/patch-src-dialog.c
new file mode 100644
index 000000000000..55d276ee66e9
--- /dev/null
+++ b/misc/mc/files/patch-src-dialog.c
@@ -0,0 +1,58 @@
+--- src/dialog.c.orig 2010-10-20 20:19:09.000000000 +0700
++++ src/dialog.c 2010-10-20 20:23:32.000000000 +0700
+@@ -110,6 +110,9 @@
+ {
+ int space;
+
++ if (h->state != DLG_ACTIVE)
++ return;
++
+ space = (h->flags & DLG_COMPACT) ? 0 : 1;
+
+ tty_setcolor (DLG_NORMALC (h));
+@@ -317,7 +320,7 @@
+ void
+ dlg_erase (Dlg_head * h)
+ {
+- if (h != NULL)
++ if (h != NULL && h->state == DLG_ACTIVE)
+ tty_fill_region (h->y, h->x, h->lines, h->cols, ' ');
+ }
+
+@@ -458,7 +461,7 @@
+ {
+ /* cannot focus disabled widget ... */
+
+- if (h->current != NULL)
++ if (h->current != NULL && h->state == DLG_ACTIVE)
+ {
+ Widget *current = (Widget *) h->current->data;
+
+@@ -478,7 +481,7 @@
+ {
+ /* ... but can unfocus disabled widget */
+
+- if (h->current != NULL)
++ if (h->current != NULL && h->state == DLG_ACTIVE)
+ {
+ Widget *current = (Widget *) h->current->data;
+
+@@ -649,7 +652,7 @@
+ {
+ GList *p = h->current;
+
+- if (p != NULL)
++ if (p != NULL && h->state == DLG_ACTIVE)
+ {
+ Widget *w;
+
+@@ -683,6 +686,9 @@
+ void
+ dlg_redraw (Dlg_head * h)
+ {
++ if (h->state != DLG_ACTIVE)
++ return;
++
+ if (h->winch_pending)
+ {
+ h->winch_pending = FALSE;