changeset 3138:e970fccae757

[gaim-migrate @ 3153] bleh committer: Tailor Script <tailor@pidgin.im>
author Rob Flynn <gaim@robflynn.com>
date Fri, 12 Apr 2002 02:30:41 +0000
parents b7fce1bf6b87
children b9cd7332adb7
files ChangeLog gaim.spec.in src/aim.c
diffstat 3 files changed, 35 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Apr 12 02:22:28 2002 +0000
+++ b/ChangeLog	Fri Apr 12 02:30:41 2002 +0000
@@ -1,6 +1,6 @@
 Gaim: The Pimpin' Penguin IM Clone thats good for the soul! 
 
-version 0.56:
+version 0.56 (04/11/2002):
 	* German translation update (Thanks Karsten Weiss)
 	* Shell-like send history binded to Ctrl-Up and Ctrl-Down
 	* Russian Translation Updated (thanks Grigory Bakunov)
@@ -9,6 +9,8 @@
 	* Fixed MSN privacy settings
 	* Group deletion fix (Thanks Mark Doliner)
 	* Alias/Group syncronization for Jabber (Thanks JSeymour)
+ 	* Fixed broken signal handling in gdm-started GNOME sessions 
+ 	  (Thanks Jim Seymour, Vann, Robert McQueen)
 	
 version 0.55 (03/29/2002):
 	* Jabber improvements (Thanks Jim Seymour)
--- a/gaim.spec.in	Fri Apr 12 02:22:28 2002 +0000
+++ b/gaim.spec.in	Fri Apr 12 02:30:41 2002 +0000
@@ -99,6 +99,17 @@
 rm -r $RPM_BUILD_ROOT
 
 %changelog
+* Thu Apr 11 2002 Rob Flynn <rob@marko.net (0.56 release)
+- German translation update (Thanks Karsten Weiss)
+- Shell-like send history binded to Ctrl-Up and Ctrl-Down
+- Russian Translation Updated (thanks Grigory Bakunov)
+- libjabber upgraded to most recent stable version
+- Buddylist looks a little better
+- Fixed MSN privacy settings
+- Group deletion fix (Thanks Mark Doliner)
+- Alias/Group syncronization for Jabber (Thanks JSeymour)
+- Fixed broken signal handling in gdm-started GNOME sessions (Thanks Jim Seymour, Vann, Robert McQueen)
+
 * Fri Mar 29 2002 Rob Flynn <rob@marko.net> (0.55 release)
 - Jabber improvements (Thanks Jim Seymour)
 - Various sound cleanups (Thanks Robert McQueen)
--- a/src/aim.c	Fri Apr 12 02:22:28 2002 +0000
+++ b/src/aim.c	Fri Apr 12 02:30:41 2002 +0000
@@ -554,6 +554,7 @@
 	char *opt_user_arg = NULL, *opt_login_arg = NULL;
 #if HAVE_SIGNAL_H
 	int sig_indx;	/* for setting up signal catching */
+	sigset_t sigset;
 	void (*prev_sig_disp)();
 #endif
 #ifndef USE_APPLET
@@ -603,6 +604,14 @@
 #if HAVE_SIGNAL_H
 	/* Let's not violate any PLA's!!!! */
 	/* jseymour: whatever the fsck that means */
+	/* Robot101: for some reason things like gdm like to block     *
+	 * useful signals like SIGCHLD, so we unblock all the ones we  *
+	 * declare a handler for. thanks JSeymour and Vann.            */
+	if (sigemptyset(&sigset)) {
+		char errmsg[BUFSIZ];
+		sprintf(errmsg, "Warning: couldn't initialise empty signal set");
+		perror(errmsg);
+	}
 	for(sig_indx = 0; catch_sig_list[sig_indx] != -1; ++sig_indx) {
 		if((prev_sig_disp = signal(catch_sig_list[sig_indx], sighandler)) == SIG_ERR) {
 			char errmsg[BUFSIZ];
@@ -610,6 +619,12 @@
 				catch_sig_list[sig_indx]);
 			perror(errmsg);
 		}
+		if(sigaddset(&sigset, catch_sig_list[sig_indx])) {
+			char errmsg[BUFSIZ];
+			sprintf(errmsg, "Warning: couldn't include signal %d for unblocking",
+				catch_sig_list[sig_indx]);
+			perror(errmsg);
+		}
 	}
 	for(sig_indx = 0; ignore_sig_list[sig_indx] != -1; ++sig_indx) {
 		if((prev_sig_disp = signal(ignore_sig_list[sig_indx], SIG_IGN)) == SIG_ERR) {
@@ -619,6 +634,12 @@
 			perror(errmsg);
 		}
 	}
+
+	if (sigprocmask(SIG_UNBLOCK, &sigset, NULL)) {
+		char errmsg[BUFSIZ];
+		sprintf(errmsg, "Warning: couldn't unblock signals");
+		perror(errmsg);
+	}		
 #endif