summaryrefslogtreecommitdiffhomepage
path: root/irssi-0.8.18.local.patch
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2016-06-18 23:33:29 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <l.illanes@gmx.de>2016-06-18 23:33:29 +0000
commite6cae12785adc2fdc6f9ff499d4685638e9fae9e (patch)
tree4c9ee7f10bf20b7502d222a536dd945b73e5c83f /irssi-0.8.18.local.patch
parent13421a4f7d7558436fc028944fce2f6f28e010fb (diff)
downloadmidipix_build-e6cae12785adc2fdc6f9ff499d4685638e9fae9e.tar.bz2
midipix_build-e6cae12785adc2fdc6f9ff499d4685638e9fae9e.tar.xz
Followup to <7927966d8799ccceeee04d1e9e7119f0cac65d7b>:
- Comment out implemented getsockopt(SOL_SOCKET, SO_ERROR) call in order to fully fix /CONNECT. - Dummy out pidwait_add() to work around the lack of clone(2). - Provide for blocking /EXEC (see above.)
Diffstat (limited to 'irssi-0.8.18.local.patch')
-rw-r--r--irssi-0.8.18.local.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/irssi-0.8.18.local.patch b/irssi-0.8.18.local.patch
index a65fd02b..b34cfa76 100644
--- a/irssi-0.8.18.local.patch
+++ b/irssi-0.8.18.local.patch
@@ -67,3 +67,59 @@
}
return TRUE;
}
+--- irssi-0.8.18/src/core/network.c.orig 2016-02-08 21:20:37.000000000 +0100
++++ irssi-0.8.18/src/core/network.c 2016-06-17 16:34:16.870746400 +0200
+@@ -572,9 +572,13 @@
+ int data;
+ socklen_t len = sizeof(data);
+
++#ifndef __midipix__
+ if (getsockopt(g_io_channel_unix_get_fd(handle),
+ SOL_SOCKET, SO_ERROR, (void *) &data, &len) == -1)
+ return -1;
++#else
++ data = 0;
++#endif
+
+ return data;
+ }
+--- irssi-0.8.18/src/core/pidwait.c.orig 2014-09-02 11:13:51.000000000 +0200
++++ irssi-0.8.18/src/core/pidwait.c 2016-06-19 00:20:33.327763200 +0200
+@@ -39,8 +39,10 @@
+ void pidwait_add(int pid)
+ {
+ if (g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid)) == NULL) {
++#ifndef __midipix__
+ int id = g_child_watch_add_full(10, pid, sig_child, NULL, NULL);
+ g_hash_table_insert(child_pids, GINT_TO_POINTER(pid), GINT_TO_POINTER(id));
++#endif
+ pids = g_slist_append(pids, GINT_TO_POINTER(pid));
+ }
+ }
+--- irssi-0.8.18/src/fe-common/core/fe-exec.c.orig 2016-01-20 23:08:07.000000000 +0100
++++ irssi-0.8.18/src/fe-common/core/fe-exec.c 2016-06-19 01:22:40.792090300 +0200
+@@ -288,6 +288,9 @@
+ }
+ }
+
++#ifdef __midipix__
++static void sig_pidwait(void *pid, void *statusp);
++#endif
+ static void process_exec(PROCESS_REC *rec, const char *cmd)
+ {
+ const char *shell_args[4] = { "/bin/sh", "-c", NULL, NULL };
+@@ -535,6 +538,14 @@
+ (GInputFunction) sig_exec_input_reader,
+ rec);
+ processes = g_slist_append(processes, rec);
++#ifdef __midipix__
++ int status;
++ waitpid(rec->pid, &status, 0);
++ while (rec->read_tag != -1) {
++ sig_exec_input_reader(rec);
++ }
++ sig_pidwait((void *)rec->pid, &status);
++#endif
+
+ if (rec->target == NULL && interactive)
+ rec->target_item = exec_wi_create(active_win, rec);