comparison mcabber/mcabber/xmpp_iqrequest.c @ 1979:6febc7d1f760

Add /room setopt flag_joins (Hermitifier)
author Mikael Berthe <mikael@lilotux.net>
date Sat, 26 Mar 2011 14:45:19 +0100
parents e6beab22099b
children 45e0b13a39e2
comparison
equal deleted inserted replaced
1978:986e514bec97 1979:6febc7d1f760
559 } 559 }
560 560
561 static void storage_bookmarks_parse_conference(LmMessageNode *node) 561 static void storage_bookmarks_parse_conference(LmMessageNode *node)
562 { 562 {
563 const char *fjid, *name, *autojoin; 563 const char *fjid, *name, *autojoin;
564 const char *pstatus, *awhois, *group; 564 const char *pstatus, *awhois, *fjoins, *group;
565 char *bjid; 565 char *bjid;
566 GSList *room_elt; 566 GSList *room_elt;
567 567
568 fjid = lm_message_node_get_attribute(node, "jid"); 568 fjid = lm_message_node_get_attribute(node, "jid");
569 if (!fjid) 569 if (!fjid)
570 return; 570 return;
571 name = lm_message_node_get_attribute(node, "name"); 571 name = lm_message_node_get_attribute(node, "name");
572 autojoin = lm_message_node_get_attribute(node, "autojoin"); 572 autojoin = lm_message_node_get_attribute(node, "autojoin");
573 awhois = lm_message_node_get_attribute(node, "autowhois"); 573 awhois = lm_message_node_get_attribute(node, "autowhois");
574 pstatus = lm_message_node_get_child_value(node, "print_status"); 574 pstatus = lm_message_node_get_child_value(node, "print_status");
575 fjoins = lm_message_node_get_child_value(node, "flag_joins");
575 group = lm_message_node_get_child_value(node, "group"); 576 group = lm_message_node_get_child_value(node, "group");
576 577
577 bjid = jidtodisp(fjid); // Bare jid 578 bjid = jidtodisp(fjid); // Bare jid
578 579
579 // Make sure this is a room (it can be a conversion user->room) 580 // Make sure this is a room (it can be a conversion user->room)
611 i = autowhois_on; 612 i = autowhois_on;
612 else if (!strcmp(awhois, "0") || !(strcmp(awhois, "false"))) 613 else if (!strcmp(awhois, "0") || !(strcmp(awhois, "false")))
613 i = autowhois_off; 614 i = autowhois_off;
614 if (i != autowhois_default) 615 if (i != autowhois_default)
615 buddy_setautowhois(room_elt->data, i); 616 buddy_setautowhois(room_elt->data, i);
617 }
618 if (fjoins) {
619 enum room_flagjoins i;
620 for (i = flagjoins_none; i <= flagjoins_all; i++)
621 if (!strcasecmp(fjoins, strflagjoins[i]))
622 break;
623 if (i <= flagjoins_all)
624 buddy_setflagjoins(room_elt->data, i);
616 } 625 }
617 626
618 // Is autojoin set? 627 // Is autojoin set?
619 // If it is, we'll look up for more information (nick? password?) and 628 // If it is, we'll look up for more information (nick? password?) and
620 // try to join the room. 629 // try to join the room.