From 59765f508225998d8a73b1da8380ff06b4a6b79c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz=20=28arab=2C=20vx?= =?UTF-8?q?p=29?= Date: Mon, 14 Nov 2016 23:02:47 +0100 Subject: 1) Replaces the SysV-style build script link mechanism w/ build {,meta-}targets, 2) splits build.{subr,sh}} into subr/{build,pkg,rtl}.subr and build.sh, 3) replaces {997.strip,998.midipix_sh,999.tarballs}.build with subr/{strip,tarball}.subr, 4) moves patches to patches/, vars files to vars/, and everything else to etc/, 5) renames `Create `Midipix mintty shell' shortcut.vbs' to midipix_shortcut.vbs, 6) fixes a Weechat configure issue, and 7) updates etc/{build.usage,README}. --- patches/irssi-0.8.18.local.patch | 103 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 patches/irssi-0.8.18.local.patch (limited to 'patches/irssi-0.8.18.local.patch') diff --git a/patches/irssi-0.8.18.local.patch b/patches/irssi-0.8.18.local.patch new file mode 100644 index 00000000..8c72336e --- /dev/null +++ b/patches/irssi-0.8.18.local.patch @@ -0,0 +1,103 @@ +--- irssi-0.8.18/src/core/servers.c.orig 2016-01-20 22:08:07.000000000 +0000 ++++ irssi-0.8.18/src/core/servers.c 2016-06-13 11:28:49.187797037 +0000 +@@ -407,6 +407,36 @@ + /* connect with unix socket */ + server_real_connect(server, NULL, server->connrec->address); + } else { ++ #ifdef __midipix__ ++ IPADDR ip4, ip6, *ip; ++ ++ connect_address = server->connrec->proxy != NULL ? ++ server->connrec->proxy : server->connrec->address; ++ if (net_gethostbyname(connect_address, &ip4, &ip6) == -1) { ++ g_warning("net_gethostbyname(): -1"); ++ g_free(server->tag); ++ g_free(server->nick); ++ return FALSE; ++ } else if (server->connrec->family == 0) { ++ /* prefer IPv4 addresses */ ++ ip = ip4.family != 0 ? &ip4 : &ip6; ++ } else if (server->connrec->family == AF_INET6) { ++ /* IPv6 address, use if possible */ ++ if (ip6.family != 0) { ++ ip = &ip6; ++ } else { ++ ip = &ip4; ++ } ++ } else { ++ /* IPv4 address, use if possible */ ++ if (ip4.family != 0) { ++ ip = &ip4; ++ } else { ++ ip = &ip6; ++ } ++ } ++ server_real_connect(server, ip, NULL); ++ #else + /* resolve host name */ + if (pipe(fd) != 0) { + g_warning("server_connect(): pipe() failed."); +@@ -433,6 +463,7 @@ + lookup_servers = g_slist_append(lookup_servers, server); + + signal_emit("server looking", 1, server); ++ #endif + } + 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); -- cgit v1.2.3