diff -r 8b5abbdebc87 -r 218e4bb04853 libpurple/protocols/jabber/caps.c --- a/libpurple/protocols/jabber/caps.c Mon Sep 10 13:57:15 2007 +0000 +++ b/libpurple/protocols/jabber/caps.c Mon Sep 10 14:37:40 2007 +0000 @@ -19,6 +19,8 @@ * */ +#include "internal.h" + #include "caps.h" #include #include "internal.h" @@ -464,19 +466,22 @@ JabberCapsValue *client; JabberCapsKey *key = g_new0(JabberCapsKey, 1); char *originalext = g_strdup(ext); - char *oneext, *ctx; jabber_caps_cbplususerdata *userdata = g_new0(jabber_caps_cbplususerdata, 1); userdata->cb = cb; userdata->user_data = user_data; userdata->who = g_strdup(who); userdata->node = g_strdup(node); userdata->ver = g_strdup(ver); - - if(originalext) - for(oneext = strtok_r(originalext, " ", &ctx); oneext; oneext = strtok_r(NULL, " ", &ctx)) { - userdata->ext = g_list_append(userdata->ext,g_strdup(oneext)); + + if(originalext) { + gchar **tmp; + gchar **splat = g_strsplit(originalext, " ", 0); + for(tmp = splat; *tmp; tmp++) { + userdata->ext = g_list_append(userdata->ext, tmp); ++userdata->extOutstanding; } + g_free(splat); + } g_free(originalext); key->node = g_strdup(node);