comparison libpurple/blist.c @ 32301:609e3855f36d

propagate from branch 'im.pidgin.pidgin' (head 4fb1347ba91ca1ac8b6f5ad029c1ed0f1b6e60a2) to branch 'im.pidgin.pidgin.next.major' (head 675a312342374865dae98f559ff532b62c47a350)
author Mark Doliner <mark@kingant.net>
date Mon, 18 Apr 2011 06:32:04 +0000
parents 4076f53cdd84 507e7721c5e4
children cd1d9e04c587
comparison
equal deleted inserted replaced
31923:29f4dbdb1d0f 32301:609e3855f36d
459 parse_buddy(PurpleGroup *group, PurpleContact *contact, xmlnode *bnode) 459 parse_buddy(PurpleGroup *group, PurpleContact *contact, xmlnode *bnode)
460 { 460 {
461 PurpleAccount *account; 461 PurpleAccount *account;
462 PurpleBuddy *buddy; 462 PurpleBuddy *buddy;
463 char *name = NULL, *alias = NULL; 463 char *name = NULL, *alias = NULL;
464 const char *acct_name, *proto, *protocol; 464 const char *acct_name, *proto;
465 xmlnode *x; 465 xmlnode *x;
466 466
467 acct_name = xmlnode_get_attrib(bnode, "account"); 467 acct_name = xmlnode_get_attrib(bnode, "account");
468 protocol = xmlnode_get_attrib(bnode, "protocol");
469 protocol = _purple_oscar_convert(acct_name, protocol); /* XXX: Remove */
470 proto = xmlnode_get_attrib(bnode, "proto"); 468 proto = xmlnode_get_attrib(bnode, "proto");
471 proto = _purple_oscar_convert(acct_name, proto); /* XXX: Remove */ 469
472 470 if (!acct_name || !proto)
473 if (!acct_name || (!proto && !protocol))
474 return; 471 return;
475 472
476 account = purple_accounts_find(acct_name, proto ? proto : protocol); 473 account = purple_accounts_find(acct_name, proto);
477 474
478 if (!account) 475 if (!account)
479 return; 476 return;
480 477
481 if ((x = xmlnode_get_child(bnode, "name"))) 478 if ((x = xmlnode_get_child(bnode, "name")))
530 static void 527 static void
531 parse_chat(PurpleGroup *group, xmlnode *cnode) 528 parse_chat(PurpleGroup *group, xmlnode *cnode)
532 { 529 {
533 PurpleChat *chat; 530 PurpleChat *chat;
534 PurpleAccount *account; 531 PurpleAccount *account;
535 const char *acct_name, *proto, *protocol; 532 const char *acct_name, *proto;
536 xmlnode *x; 533 xmlnode *x;
537 char *alias = NULL; 534 char *alias = NULL;
538 GHashTable *components; 535 GHashTable *components;
539 536
540 acct_name = xmlnode_get_attrib(cnode, "account"); 537 acct_name = xmlnode_get_attrib(cnode, "account");
541 protocol = xmlnode_get_attrib(cnode, "protocol");
542 proto = xmlnode_get_attrib(cnode, "proto"); 538 proto = xmlnode_get_attrib(cnode, "proto");
543 539
544 if (!acct_name || (!proto && !protocol)) 540 if (!acct_name || !proto)
545 return; 541 return;
546 542
547 account = purple_accounts_find(acct_name, proto ? proto : protocol); 543 account = purple_accounts_find(acct_name, proto);
548 544
549 if (!account) 545 if (!account)
550 return; 546 return;
551 547
552 if ((x = xmlnode_get_child(cnode, "alias"))) 548 if ((x = xmlnode_get_child(cnode, "alias")))
628 xmlnode *anode; 624 xmlnode *anode;
629 for (anode = privacy->child; anode; anode = anode->next) { 625 for (anode = privacy->child; anode; anode = anode->next) {
630 xmlnode *x; 626 xmlnode *x;
631 PurpleAccount *account; 627 PurpleAccount *account;
632 int imode; 628 int imode;
633 const char *acct_name, *proto, *mode, *protocol; 629 const char *acct_name, *proto, *mode;
634 630
635 acct_name = xmlnode_get_attrib(anode, "name"); 631 acct_name = xmlnode_get_attrib(anode, "name");
636 protocol = xmlnode_get_attrib(anode, "protocol");
637 proto = xmlnode_get_attrib(anode, "proto"); 632 proto = xmlnode_get_attrib(anode, "proto");
638 mode = xmlnode_get_attrib(anode, "mode"); 633 mode = xmlnode_get_attrib(anode, "mode");
639 634
640 if (!acct_name || (!proto && !protocol) || !mode) 635 if (!acct_name || !proto || !mode)
641 continue; 636 continue;
642 637
643 account = purple_accounts_find(acct_name, proto ? proto : protocol); 638 account = purple_accounts_find(acct_name, proto);
644 639
645 if (!account) 640 if (!account)
646 continue; 641 continue;
647 642
648 imode = atoi(mode); 643 imode = atoi(mode);