Mercurial > pidgin.yaz
comparison libpurple/protocols/qq/buddy_opt.c @ 24120:16734635febf
Start hiding blist.h internals in prpls.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 27 Sep 2008 06:33:42 +0000 |
parents | bcfc98c7a55f |
children | 5ace6c024230 |
comparison
equal
deleted
inserted
replaced
24119:d1cfa8c11902 | 24120:16734635febf |
---|---|
238 | 238 |
239 gc = g->gc; | 239 gc = g->gc; |
240 uid = g->uid; | 240 uid = g->uid; |
241 g_return_if_fail(uid > 0); | 241 g_return_if_fail(uid > 0); |
242 | 242 |
243 /* XXX: This looks very wrong */ | |
243 buddy.name = uid_to_purple_name(uid); | 244 buddy.name = uid_to_purple_name(uid); |
244 group.name = PURPLE_GROUP_QQ_BLOCKED; | 245 group.name = PURPLE_GROUP_QQ_BLOCKED; |
245 | 246 |
246 qq_remove_buddy(gc, &buddy, &group); | 247 qq_remove_buddy(gc, &buddy, &group); |
247 _qq_send_packet_remove_self_from(gc, uid); | 248 _qq_send_packet_remove_self_from(gc, uid); |
458 void qq_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) | 459 void qq_add_buddy(PurpleConnection *gc, PurpleBuddy *buddy, PurpleGroup *group) |
459 { | 460 { |
460 qq_data *qd; | 461 qq_data *qd; |
461 guint32 uid; | 462 guint32 uid; |
462 PurpleBuddy *b; | 463 PurpleBuddy *b; |
464 const char *bname; | |
463 | 465 |
464 qd = (qq_data *) gc->proto_data; | 466 qd = (qq_data *) gc->proto_data; |
465 if (!qd->is_login) | 467 if (!qd->is_login) |
466 return; /* IMPORTANT ! */ | 468 return; /* IMPORTANT ! */ |
467 | 469 |
468 uid = purple_name_to_uid(buddy->name); | 470 bname = purple_buddy_get_name(buddy); |
471 uid = purple_name_to_uid(bname); | |
469 if (uid > 0) | 472 if (uid > 0) |
470 _qq_send_packet_add_buddy(gc, uid); | 473 _qq_send_packet_add_buddy(gc, uid); |
471 else { | 474 else { |
472 b = purple_find_buddy(gc->account, buddy->name); | 475 b = purple_find_buddy(gc->account, bname); |
473 if (b != NULL) | 476 if (b != NULL) |
474 purple_blist_remove_buddy(b); | 477 purple_blist_remove_buddy(b); |
475 purple_notify_error(gc, NULL, | 478 purple_notify_error(gc, NULL, |
476 _("QQ Number Error"), | 479 _("QQ Number Error"), |
477 _("Invalid QQ Number")); | 480 _("Invalid QQ Number")); |
483 { | 486 { |
484 qq_data *qd; | 487 qq_data *qd; |
485 PurpleBuddy *b; | 488 PurpleBuddy *b; |
486 qq_buddy *q_bud; | 489 qq_buddy *q_bud; |
487 guint32 uid; | 490 guint32 uid; |
488 | 491 const char *bname; |
489 qd = (qq_data *) gc->proto_data; | 492 |
490 uid = purple_name_to_uid(buddy->name); | 493 qd = (qq_data *) gc->proto_data; |
494 bname = purple_buddy_get_name(buddy); | |
495 uid = purple_name_to_uid(bname); | |
491 | 496 |
492 if (!qd->is_login) | 497 if (!qd->is_login) |
493 return; | 498 return; |
494 | 499 |
495 if (uid > 0) | 500 if (uid > 0) |
496 _qq_send_packet_remove_buddy(gc, uid); | 501 _qq_send_packet_remove_buddy(gc, uid); |
497 | 502 |
498 b = purple_find_buddy(gc->account, buddy->name); | 503 b = purple_find_buddy(gc->account, bname); |
499 if (b != NULL) { | 504 if (b != NULL) { |
500 q_bud = (qq_buddy *) b->proto_data; | 505 q_bud = (qq_buddy *) b->proto_data; |
501 if (q_bud != NULL) | 506 if (q_bud != NULL) |
502 qd->buddies = g_list_remove(qd->buddies, q_bud); | 507 qd->buddies = g_list_remove(qd->buddies, q_bud); |
503 else | 508 else |
504 purple_debug_warning("QQ", "We have no qq_buddy record for %s\n", buddy->name); | 509 purple_debug_warning("QQ", "We have no qq_buddy record for %s\n", bname); |
505 /* remove buddy on blist, this does not trigger qq_remove_buddy again | 510 /* remove buddy on blist, this does not trigger qq_remove_buddy again |
506 * do this only if the request comes from block request, | 511 * do this only if the request comes from block request, |
507 * otherwise purple segmentation fault */ | 512 * otherwise purple segmentation fault */ |
508 if (g_ascii_strcasecmp(group->name, PURPLE_GROUP_QQ_BLOCKED) == 0) | 513 if (g_ascii_strcasecmp(purple_group_get_name(group), PURPLE_GROUP_QQ_BLOCKED) == 0) |
509 purple_blist_remove_buddy(b); | 514 purple_blist_remove_buddy(b); |
510 } | 515 } |
511 } | 516 } |
512 | 517 |
513 /* free add buddy request queue */ | 518 /* free add buddy request queue */ |