# HG changeset patch # User mikael # Date 1115197669 0 # Node ID b4921dbf87096ded8db5058469420cabaf2207cd # Parent faf534be8ff06bbb1c34f4cea79d1022696a3be5 [/trunk] Changeset 177 by mikael * Maybe fix a segfault when receiving a message. * Try to have a less intrusive signal handler function. * TODO update diff -r faf534be8ff0 -r b4921dbf8709 mcabber/src/TODO --- a/mcabber/src/TODO Mon May 02 20:31:01 2005 +0000 +++ b/mcabber/src/TODO Wed May 04 09:07:49 2005 +0000 @@ -2,6 +2,7 @@ BUGS: * Check if it crashes when resized too small... Can we have a minimum size? +* Colors are misnamed TODO: diff -r faf534be8ff0 -r b4921dbf8709 mcabber/src/jabglue.c --- a/mcabber/src/jabglue.c Mon May 02 20:31:01 2005 +0000 +++ b/mcabber/src/jabglue.c Wed May 04 09:07:49 2005 +0000 @@ -97,7 +97,11 @@ char *jidtodisp(const char *jid) { char *ptr; - char *alias = g_strdup(jid); + char *alias; + + while ((alias = g_strdup(jid)) == NULL) + usleep(100); + if ((ptr = strchr(alias, '/')) != NULL) { *ptr = 0; } @@ -486,7 +490,6 @@ { char *p, *r; xmlnode x, y; - // string from, type, body, enc, ns, id, u, h, s; char *from=NULL, *type=NULL, *body=NULL, *enc=NULL; char *ns=NULL; char *id=NULL; @@ -508,7 +511,7 @@ if ((x = xmlnode_get_tag(packet->x, "subject")) != NULL) if ((p = xmlnode_get_data(x)) != NULL) { - tmp = g_new(char, strlen(body)+strlen(p)+3); + tmp = g_new(char, strlen(body)+strlen(p)+4); *tmp = '['; strcpy(tmp+1, p); strcat(tmp, "]\n"); @@ -529,7 +532,7 @@ } } - if (body) + if (from && body) gotmessage(type, from, body, enc); if (tmp) g_free(tmp); diff -r faf534be8ff0 -r b4921dbf8709 mcabber/src/main.c --- a/mcabber/src/main.c Mon May 02 20:31:01 2005 +0000 +++ b/mcabber/src/main.c Wed May 04 09:07:49 2005 +0000 @@ -28,8 +28,8 @@ do { pid = waitpid (WAIT_ANY, &status, WNOHANG); } while (pid > 0); - if (pid < 0) - ut_WriteLog("Error in waitpid: errno=%d\n", errno); + //if (pid < 0) + // ut_WriteLog("Error in waitpid: errno=%d\n", errno); signal(SIGCHLD, sig_handler); } else if (signum == SIGTERM) { // bud_TerminateBuddies(); @@ -37,8 +37,9 @@ jb_disconnect(); printf("Killed by SIGTERM\nBye!\n"); exit(EXIT_SUCCESS); + } else { + ut_WriteLog("Caught signal: %d\n", signum); } - ut_WriteLog("Caught signal: %d\n", signum); } ssize_t my_getpass (char **passstr, size_t *n)