src/protocols/msn/user.c

branch
soc.2006.msnp13
changeset 13899
495981413953
parent 13893
228bc0341563
child 13900
ce507a208510
equal deleted inserted replaced
13898:9bc455f616cb 13899:495981413953
58 g_return_if_fail(user != NULL); 58 g_return_if_fail(user != NULL);
59 59
60 if (user->clientcaps != NULL) 60 if (user->clientcaps != NULL)
61 g_hash_table_destroy(user->clientcaps); 61 g_hash_table_destroy(user->clientcaps);
62 62
63 if (user->group_ids != NULL) 63 if (user->group_ids != NULL){
64 GList *l;
65 for (l = user->group_ids; l != NULL; l = l->next){
66 g_free(l->data);
67 }
64 g_list_free(user->group_ids); 68 g_list_free(user->group_ids);
69 }
65 70
66 if (user->msnobj != NULL) 71 if (user->msnobj != NULL)
67 msn_object_destroy(user->msnobj); 72 msn_object_destroy(user->msnobj);
68 73
69 g_free(user->passport); 74 g_free(user->passport);
263 MsnUserList *userlist; 268 MsnUserList *userlist;
264 GaimAccount *account; 269 GaimAccount *account;
265 GaimBuddy *b; 270 GaimBuddy *b;
266 GaimGroup *g; 271 GaimGroup *g;
267 const char *passport; 272 const char *passport;
273 const char *group_id;
268 const char *group_name; 274 const char *group_name;
269 275
270 g_return_if_fail(user != NULL); 276 g_return_if_fail(user != NULL);
271 g_return_if_fail(id != NULL); 277 g_return_if_fail(id != NULL);
272 278
273 user->group_ids = g_list_append(user->group_ids,id); 279 group_id = g_strdup(id);
280 user->group_ids = g_list_append(user->group_ids,group_id);
274 281
275 userlist = user->userlist; 282 userlist = user->userlist;
276 account = userlist->session->account; 283 account = userlist->session->account;
277 passport = msn_user_get_passport(user); 284 passport = msn_user_get_passport(user);
278 285
279 group_name = msn_userlist_find_group_name(userlist, id); 286 group_name = msn_userlist_find_group_name(userlist, group_id);
280 287
281 gaim_debug_info("User","group id:%s,name:%s,user:%s\n",id,group_name,passport); 288 gaim_debug_info("User","group id:%s,name:%s,user:%s\n",group_id,group_name,passport);
282 289
283 g = gaim_find_group(group_name); 290 g = gaim_find_group(group_name);
284 291
285 if ((id == NULL) && (g == NULL)){ 292 if ((id == NULL) && (g == NULL)){
286 g = gaim_group_new(group_name); 293 g = gaim_group_new(group_name);
313 { 320 {
314 g_return_if_fail(user != NULL); 321 g_return_if_fail(user != NULL);
315 g_return_if_fail(id != NULL); 322 g_return_if_fail(id != NULL);
316 323
317 user->group_ids = g_list_remove(user->group_ids, id); 324 user->group_ids = g_list_remove(user->group_ids, id);
325 g_free(id);
318 } 326 }
319 327
320 void 328 void
321 msn_user_set_home_phone(MsnUser *user, const char *number) 329 msn_user_set_home_phone(MsnUser *user, const char *number)
322 { 330 {

mercurial