comparison mcabber/src/commands.c @ 1004:b57a01ffeed6

Use existing conference bookmarks Add support for XEP-0048 (Bookmark Storage). The bookmarks are retrieved when we connect and the conference bookmarks are used.
author Mikael Berthe <mikael@lilotux.net>
date Wed, 08 Nov 2006 22:26:27 +0100
parents c8b1a52b2fd6
children c112423ac012
comparison
equal deleted inserted replaced
1003:c8b1a52b2fd6 1004:b57a01ffeed6
1566 1566
1567 static void room_join(gpointer bud, char *arg) 1567 static void room_join(gpointer bud, char *arg)
1568 { 1568 {
1569 char **paramlst; 1569 char **paramlst;
1570 char *roomname, *nick, *pass, *roomname_tmp; 1570 char *roomname, *nick, *pass, *roomname_tmp;
1571 char *tmpnick = NULL;
1572 char *pass_utf8; 1571 char *pass_utf8;
1573 1572
1574 paramlst = split_arg(arg, 3, 0); // roomid, nickname, password 1573 paramlst = split_arg(arg, 3, 0); // roomid, nickname, password
1575 roomname = *paramlst; 1574 roomname = *paramlst;
1576 nick = *(paramlst+1); 1575 nick = *(paramlst+1);
1595 free_arg_lst(paramlst); 1594 free_arg_lst(paramlst);
1596 return; 1595 return;
1597 } 1596 }
1598 1597
1599 // If no nickname is provided with the /join command, 1598 // If no nickname is provided with the /join command,
1600 // we try the "nickname" option, then the username part of the jid. 1599 // we try to get a default nickname.
1601 if (!nick || !*nick) { 1600 if (!nick || !*nick)
1602 nick = (char*)settings_opt_get("nickname"); 1601 nick = default_muc_nickname();
1603 if (!nick) { 1602 else
1604 nick = (char*)settings_opt_get("username"); 1603 nick = to_utf8(nick);
1605 if (nick && (strchr(nick, JID_DOMAIN_SEPARATOR) > nick)) {
1606 char *p;
1607 nick = tmpnick = g_strdup(nick);
1608 p = strchr(nick, JID_DOMAIN_SEPARATOR);
1609 *p = 0;
1610 }
1611 }
1612 } else {
1613 nick = tmpnick = to_utf8(nick);
1614 }
1615 // If we still have no nickname, give up 1604 // If we still have no nickname, give up
1616 if (!nick || !*nick) { 1605 if (!nick || !*nick) {
1617 scr_LogPrint(LPRINT_NORMAL, "Please specify a nickname."); 1606 scr_LogPrint(LPRINT_NORMAL, "Please specify a nickname.");
1618 g_free(tmpnick); 1607 g_free(nick);
1619 free_arg_lst(paramlst); 1608 free_arg_lst(paramlst);
1620 return; 1609 return;
1621 } 1610 }
1622 1611
1623 pass_utf8 = to_utf8(pass); 1612 pass_utf8 = to_utf8(pass);
1630 jb_room_join(roomname, nick, pass_utf8); 1619 jb_room_join(roomname, nick, pass_utf8);
1631 1620
1632 scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>...", roomname); 1621 scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>...", roomname);
1633 1622
1634 g_free(roomname); 1623 g_free(roomname);
1635 g_free(tmpnick); 1624 g_free(nick);
1636 g_free(pass_utf8); 1625 g_free(pass_utf8);
1637 buddylist_build(); 1626 buddylist_build();
1638 update_roster = TRUE; 1627 update_roster = TRUE;
1639 free_arg_lst(paramlst); 1628 free_arg_lst(paramlst);
1640 } 1629 }