$ git clone http://tcclient.ion.nu/tc_client.git
commit cd984e3dde1e3288eac653a36573b3128b48fccd
Author: Alicia <...>
Date: Tue May 19 11:14:07 2015 +0200
tc_client-gtk: ignore anything after the offset in /mbs commands (and don't leave zombie children around)
diff --git a/ChangeLog b/ChangeLog
index 03c1ba6..3cc21f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
0.32:
irchack: send passwords by pipe, not argument.
+tc_client-gtk: ignore anything after the offset in /mbs commands.
0.31:
Fixed the issue where messages would show up on kanji on some platforms (a proper fix instead of the earlier android & apple workaround)
When a message is sent with a privacy field, send it once with 'b' (broadcasting) and once with 'n' (not-broadcasting)
diff --git a/utilities/gtk/camviewer.c b/utilities/gtk/camviewer.c
index fe0e854..82aa5cc 100644
--- a/utilities/gtk/camviewer.c
+++ b/utilities/gtk/camviewer.c
@@ -20,7 +20,6 @@
#include <stdlib.h>
#include <string.h>
#include <sys/prctl.h>
-#include <sys/wait.h>
#include <ctype.h>
#include <libavcodec/avcodec.h>
#include <libswscale/swscale.h>
@@ -190,7 +189,6 @@ gboolean handledata(GIOChannel* iochannel, GIOCondition condition, gpointer data
}
if(!strcmp(buf, "Password required"))
{
- wait(0); // Reap the previous process
gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(data->gui, "main")));
gtk_widget_show_all(GTK_WIDGET(gtk_builder_get_object(data->gui, "channelpasswordwindow")));
return 1;
@@ -234,6 +232,8 @@ gboolean handledata(GIOChannel* iochannel, GIOCondition condition, gpointer data
if(!offset){_exit(1);}
offset[0]=0;
offset=&offset[1];
+ char* end=strchr(offset, ' '); // Ignore any additional arguments after the offset (the modbot utility includes the video title here)
+ if(end){end[0]=0;}
// Handle format string
const char* fmt=config_get_str("youtubecmd");
int len=strlen(fmt)+1;
@@ -770,6 +770,7 @@ int main(int argc, char** argv)
avcodec_register_all();
data.vdecoder=avcodec_find_decoder(AV_CODEC_ID_FLV1);
data.adecoder=avcodec_find_decoder(AV_CODEC_ID_NELLYMOSER);
+ signal(SIGCHLD, SIG_IGN);
#if defined(HAVE_AVRESAMPLE) || defined(HAVE_SWRESAMPLE)
#ifdef HAVE_AVRESAMPLE