[/trunk] Changeset 177 by mikael
* Maybe fix a segfault when receiving a message.
* Try to have a less intrusive signal handler function.
* TODO update
--- 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:
--- 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);
--- 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)