Mercurial > ~mikael > mcabber > hg
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 } |