1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Merge branch 'master' into plugins

This commit is contained in:
James Booth 2014-04-13 03:13:06 +01:00
commit 6387608c6f
10 changed files with 66 additions and 58 deletions

View File

@ -1666,7 +1666,7 @@ cmd_join(gchar **args, struct cmd_help_t help)
if (!muc_room_is_active(room)) {
presence_join_room(room, nick, passwd);
}
ui_room_join(room);
ui_room_join(room, TRUE);
muc_remove_invite(room);
jid_destroy(room_arg);

View File

@ -550,5 +550,6 @@ handle_autoping_cancel(void)
void
handle_bookmark_autojoin(char *jid)
{
ui_room_join(jid);
ui_room_join(jid, FALSE);
muc_remove_invite(jid);
}

View File

@ -644,6 +644,10 @@ _cons_show_bookmarks(const GList *list)
ProfWin *console = wins_get_console();
Bookmark *item;
if (list == NULL) {
cons_show("");
cons_show("No bookmarks found.");
} else {
cons_show("");
cons_show("Bookmarks:");
@ -666,6 +670,7 @@ _cons_show_bookmarks(const GList *list)
if (wins_is_current(console)) {
win_update_virtual(console);
}
}
cons_alert();
}

View File

@ -1224,7 +1224,7 @@ _ui_outgoing_msg(const char * const from, const char * const to,
}
static void
_ui_room_join(char *room)
_ui_room_join(char *room, gboolean focus)
{
ProfWin *window = wins_get_by_recipient(room);
int num = 0;
@ -1235,7 +1235,12 @@ _ui_room_join(char *room)
}
num = wins_get_num(window);
if (focus) {
ui_switch_win(num);
} else {
status_bar_active(num);
}
}
static void

View File

@ -100,7 +100,7 @@ void (*ui_disconnected)(void);
void (*ui_recipient_gone)(const char * const barejid);
void (*ui_outgoing_msg)(const char * const from, const char * const to,
const char * const message);
void (*ui_room_join)(char *room);
void (*ui_room_join)(char *room, gboolean focus);
void (*ui_room_roster)(const char * const room, GList *roster, const char * const presence);
void (*ui_room_history)(const char * const room_jid, const char * const nick,
GTimeVal tv_stamp, const char * const message);

View File

@ -260,7 +260,6 @@ _bookmark_handle_result(xmpp_conn_t * const conn,
room_jid = jid_create_from_bare_and_resource(jid, name);
if (!muc_room_is_active(room_jid->barejid)) {
presence_join_room(jid, name, NULL);
/* TODO: this should be removed after fixing #195 */
handle_bookmark_autojoin(jid);
}
jid_destroy(room_jid);

View File

@ -346,11 +346,8 @@ _groupchat_handler(xmpp_conn_t * const conn,
char *room_jid = xmpp_stanza_get_attribute(stanza, STANZA_ATTR_FROM);
Jid *jid = jid_create(room_jid);
// handle room broadcasts
if (jid->resourcepart == NULL) {
// handle room subject
xmpp_stanza_t *subject = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_SUBJECT);
// handle subject
if (subject != NULL) {
message = xmpp_stanza_get_text(subject);
if (message != NULL) {
@ -360,9 +357,10 @@ _groupchat_handler(xmpp_conn_t * const conn,
jid_destroy(jid);
return 1;
}
// handle other room broadcasts
} else {
// handle room broadcasts
if (jid->resourcepart == NULL) {
xmpp_stanza_t *body = xmpp_stanza_get_child_by_name(stanza, STANZA_NAME_BODY);
if (body != NULL) {
message = xmpp_stanza_get_text(body);
@ -375,8 +373,6 @@ _groupchat_handler(xmpp_conn_t * const conn,
jid_destroy(jid);
return 1;
}
}
if (!jid_is_valid_room_form(jid)) {
log_error("Invalid room JID: %s", jid->str);

View File

@ -109,7 +109,7 @@ void cmd_join_uses_account_mucservice_when_no_service_specified(void **state)
mock_presence_join_room();
presence_join_room_expect(expected_room, nick, NULL);
ui_room_join_expect(expected_room);
ui_room_join_expect(expected_room, TRUE);
gboolean result = cmd_join(args, *help);
assert_true(result);
@ -136,7 +136,7 @@ void cmd_join_uses_supplied_nick(void **state)
mock_presence_join_room();
presence_join_room_expect(room, nick, NULL);
ui_room_join_expect(room);
ui_room_join_expect(room, TRUE);
gboolean result = cmd_join(args, *help);
assert_true(result);
@ -163,7 +163,7 @@ void cmd_join_uses_account_nick_when_not_supplied(void **state)
mock_presence_join_room();
presence_join_room_expect(room, account_nick, NULL);
ui_room_join_expect(room);
ui_room_join_expect(room, TRUE);
gboolean result = cmd_join(args, *help);
assert_true(result);
@ -193,7 +193,7 @@ void cmd_join_uses_password_when_supplied(void **state)
mock_presence_join_room();
presence_join_room_expect(expected_room, account_nick, password);
ui_room_join_expect(expected_room);
ui_room_join_expect(expected_room, TRUE);
gboolean result = cmd_join(args, *help);
assert_true(result);

View File

@ -166,9 +166,10 @@ gboolean _mock_ui_current_win_is_otr(void)
}
static
void _mock_ui_room_join(char *room)
void _mock_ui_room_join(char *room, gboolean focus)
{
check_expected(room);
check_expected(focus);
}
static
@ -433,10 +434,11 @@ ui_current_win_is_otr_returns(gboolean result)
}
void
ui_room_join_expect(char *room)
ui_room_join_expect(char *room, gboolean focus)
{
ui_room_join = _mock_ui_room_join;
expect_string(_mock_ui_room_join, room, room);
expect_value(_mock_ui_room_join, focus, focus);
}
void

View File

@ -59,7 +59,7 @@ void ui_current_print_line_expect(char *message);
void ui_current_win_is_otr_returns(gboolean result);
void ui_room_join_expect(char *room);
void ui_room_join_expect(char *room, gboolean focus);
void mock_cons_show_roster(void);
void cons_show_roster_expect(GSList *list);