aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorMax Khon <fjoe@FreeBSD.org>2010-10-20 13:46:01 +0000
committerMax Khon <fjoe@FreeBSD.org>2010-10-20 13:46:01 +0000
commit1e24f5b8e6501dae8bd953ef12423c329b3c3983 (patch)
tree3917f28a7ec29ada5c48cebca54d3698ef1a4639 /misc
parent38c2daed543994b07c108aae26e0d2279ca3e91d (diff)
downloadports-1e24f5b8e6501dae8bd953ef12423c329b3c3983.tar.gz
ports-1e24f5b8e6501dae8bd953ef12423c329b3c3983.zip
Fix hangs when exiting with "F10, Enter" if shell is tcsh:
Notes
Notes: svn path=/head/; revision=263343
Diffstat (limited to 'misc')
-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;