Mercurial > hg
diff mcabber/src/jabglue.c @ 165:b4921dbf8709
[/trunk] Changeset 177 by mikael
* Maybe fix a segfault when receiving a message.
* Try to have a less intrusive signal handler function.
* TODO update
author | mikael |
---|---|
date | Wed, 04 May 2005 09:07:49 +0000 |
parents | faf534be8ff0 |
children | 62bc2992216b |
line wrap: on
line diff
--- 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);