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

Refactored all window recipients and types

Tests need fixing
This commit is contained in:
James Booth 2014-12-20 00:52:35 +00:00
parent 0146e62576
commit ea267e2017
17 changed files with 630 additions and 597 deletions

@ -1751,7 +1751,6 @@ cmd_execute_alias(const char * const inp, gboolean *ran)
gboolean gboolean
cmd_execute_default(const char * inp) cmd_execute_default(const char * inp)
{ {
win_type_t win_type = ui_current_win_type();
jabber_conn_status_t status = jabber_get_connection_status(); jabber_conn_status_t status = jabber_get_connection_status();
// handle escaped commands - treat as normal message // handle escaped commands - treat as normal message
@ -1765,14 +1764,15 @@ cmd_execute_default(const char * inp)
return TRUE; return TRUE;
} }
win_type_t win_type = ui_current_win_type();
switch (win_type) switch (win_type)
{ {
case WIN_MUC: case WIN_MUC:
if (status != JABBER_CONNECTED) { if (status != JABBER_CONNECTED) {
ui_current_print_line("You are not currently connected."); ui_current_print_line("You are not currently connected.");
} else { } else {
ProfWin ProfMucWin *mucwin = wins_get_current_muc();
message_send_groupchat(inp, recipient); message_send_groupchat(mucwin->roomjid, inp);
} }
break; break;
@ -1780,63 +1780,63 @@ cmd_execute_default(const char * inp)
if (status != JABBER_CONNECTED) { if (status != JABBER_CONNECTED) {
ui_current_print_line("You are not currently connected."); ui_current_print_line("You are not currently connected.");
} else { } else {
GString *send_recipient = g_string_new(recipient);
ProfWin *current = wins_get_current(); ProfWin *current = wins_get_current();
ProfChatWin *chatwin = (ProfChatWin*)current; ProfChatWin *chatwin = (ProfChatWin*)current;
GString *send_recipient = g_string_new(chatwin->barejid);
if (current && win_has_chat_resource(current)) { if (current && win_has_chat_resource(current)) {
g_string_append(send_recipient, "/"); g_string_append(send_recipient, "/");
g_string_append(send_recipient, chatwin->resource); g_string_append(send_recipient, chatwin->resource);
} }
#ifdef HAVE_LIBOTR #ifdef HAVE_LIBOTR
prof_otrpolicy_t policy = otr_get_policy(recipient); prof_otrpolicy_t policy = otr_get_policy(chatwin->barejid);
if (policy == PROF_OTRPOLICY_ALWAYS && !otr_is_secure(recipient)) { if (policy == PROF_OTRPOLICY_ALWAYS && !otr_is_secure(chatwin->barejid)) {
cons_show_error("Failed to send message. Please check OTR policy"); cons_show_error("Failed to send message. Please check OTR policy");
return TRUE; return TRUE;
} }
if (otr_is_secure(recipient)) { if (otr_is_secure(chatwin->barejid)) {
char *encrypted = otr_encrypt_message(recipient, inp); char *encrypted = otr_encrypt_message(chatwin->barejid, inp);
if (encrypted != NULL) { if (encrypted != NULL) {
message_send(encrypted, recipient); message_send_chat(chatwin->barejid, encrypted);
otr_free_message(encrypted); otr_free_message(encrypted);
if (prefs_get_boolean(PREF_CHLOG)) { if (prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
Jid *jidp = jid_create(jid); Jid *jidp = jid_create(jid);
char *pref_otr_log = prefs_get_string(PREF_OTR_LOG); char *pref_otr_log = prefs_get_string(PREF_OTR_LOG);
if (strcmp(pref_otr_log, "on") == 0) { if (strcmp(pref_otr_log, "on") == 0) {
chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL); chat_log_chat(jidp->barejid, chatwin->barejid, inp, PROF_OUT_LOG, NULL);
} else if (strcmp(pref_otr_log, "redact") == 0) { } else if (strcmp(pref_otr_log, "redact") == 0) {
chat_log_chat(jidp->barejid, recipient, "[redacted]", PROF_OUT_LOG, NULL); chat_log_chat(jidp->barejid, chatwin->barejid, "[redacted]", PROF_OUT_LOG, NULL);
} }
prefs_free_string(pref_otr_log); prefs_free_string(pref_otr_log);
jid_destroy(jidp); jid_destroy(jidp);
} }
ui_outgoing_msg("me", recipient, inp); ui_outgoing_chat_msg("me", chatwin->barejid, inp);
} else { } else {
cons_show_error("Failed to send message."); cons_show_error("Failed to send message.");
} }
} else { } else {
message_send(inp, send_recipient->str); message_send_chat(send_recipient->str, inp);
if (prefs_get_boolean(PREF_CHLOG)) { if (prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
Jid *jidp = jid_create(jid); Jid *jidp = jid_create(jid);
chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL); chat_log_chat(jidp->barejid, chatwin->barejid, inp, PROF_OUT_LOG, NULL);
jid_destroy(jidp); jid_destroy(jidp);
} }
ui_outgoing_msg("me", recipient, inp); ui_outgoing_chat_msg("me", chatwin->barejid, inp);
} }
#else #else
message_send(inp, send_recipient->str); message_send(inp, send_recipient->str);
if (prefs_get_boolean(PREF_CHLOG)) { if (prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
Jid *jidp = jid_create(jid); Jid *jidp = jid_create(jid);
chat_log_chat(jidp->barejid, recipient, inp, PROF_OUT_LOG, NULL); chat_log_chat(jidp->barejid, chatwin->barejid, inp, PROF_OUT_LOG, NULL);
jid_destroy(jidp); jid_destroy(jidp);
} }
ui_outgoing_msg("me", recipient, inp); ui_outgoing_chat_msg("me", chatwin->barejid, inp);
#endif #endif
g_string_free(send_recipient, TRUE); g_string_free(send_recipient, TRUE);
} }
@ -1846,8 +1846,9 @@ cmd_execute_default(const char * inp)
if (status != JABBER_CONNECTED) { if (status != JABBER_CONNECTED) {
ui_current_print_line("You are not currently connected."); ui_current_print_line("You are not currently connected.");
} else { } else {
message_send(inp, recipient); ProfPrivateWin *privatewin = wins_get_current_private();
ui_outgoing_msg("me", recipient, inp); message_send_private(privatewin->fulljid, inp);
ui_outgoing_private_msg("me", privatewin->fulljid, inp);
} }
break; break;

@ -1130,10 +1130,12 @@ cmd_msg(gchar **args, struct cmd_help_t help)
g_string_append(full_jid, usr); g_string_append(full_jid, usr);
if (msg != NULL) { if (msg != NULL) {
message_send(msg, full_jid->str); // TODO use message send private
ui_outgoing_msg("me", full_jid->str, msg); message_send_private(full_jid->str, msg);
ui_outgoing_private_msg("me", full_jid->str, msg);
} else { } else {
ui_new_chat_win(full_jid->str); // TODO use new private win
ui_new_private_win(full_jid->str);
} }
g_string_free(full_jid, TRUE); g_string_free(full_jid, TRUE);
@ -1144,6 +1146,7 @@ cmd_msg(gchar **args, struct cmd_help_t help)
return TRUE; return TRUE;
// TODO handle different window types (OTR only for chat etc)
} else { } else {
char *usr_jid = roster_barejid_from_name(usr); char *usr_jid = roster_barejid_from_name(usr);
if (usr_jid == NULL) { if (usr_jid == NULL) {
@ -1162,9 +1165,9 @@ cmd_msg(gchar **args, struct cmd_help_t help)
if (otr_is_secure(usr_jid)) { if (otr_is_secure(usr_jid)) {
char *encrypted = otr_encrypt_message(usr_jid, msg); char *encrypted = otr_encrypt_message(usr_jid, msg);
if (encrypted != NULL) { if (encrypted != NULL) {
message_send(encrypted, usr_jid); message_send_chat(usr_jid, encrypted);
otr_free_message(encrypted); otr_free_message(encrypted);
ui_outgoing_msg("me", usr_jid, msg); ui_outgoing_chat_msg("me", usr_jid, msg);
if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) { if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
@ -1191,12 +1194,12 @@ cmd_msg(gchar **args, struct cmd_help_t help)
GString *otr_message = g_string_new(msg); GString *otr_message = g_string_new(msg);
g_string_append(otr_message, OTRL_MESSAGE_TAG_BASE); g_string_append(otr_message, OTRL_MESSAGE_TAG_BASE);
g_string_append(otr_message, OTRL_MESSAGE_TAG_V2); g_string_append(otr_message, OTRL_MESSAGE_TAG_V2);
message_send(otr_message->str, usr_jid); message_send_chat(usr_jid, otr_message->str);
g_string_free(otr_message, TRUE); g_string_free(otr_message, TRUE);
} else { } else {
message_send(msg, send_jid->str); message_send_chat(send_jid->str, msg);
} }
ui_outgoing_msg("me", usr_jid, msg); ui_outgoing_chat_msg("me", usr_jid, msg);
if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) { if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
@ -1207,8 +1210,8 @@ cmd_msg(gchar **args, struct cmd_help_t help)
} }
return TRUE; return TRUE;
#else #else
message_send(msg, send_jid->str); message_send_chat(send_jid->str, msg);
ui_outgoing_msg("me", usr_jid, msg); ui_outgoing_chat_msg("me", usr_jid, msg);
if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) { if (((win_type == WIN_CHAT) || (win_type == WIN_CONSOLE)) && prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
@ -1219,7 +1222,7 @@ cmd_msg(gchar **args, struct cmd_help_t help)
return TRUE; return TRUE;
#endif #endif
} else { } else { // msg == NULL
const char * jid = NULL; const char * jid = NULL;
if (roster_barejid_from_name(usr_jid) != NULL) { if (roster_barejid_from_name(usr_jid) != NULL) {
@ -1605,11 +1608,11 @@ cmd_status(gchar **args, struct cmd_help_t help)
case WIN_MUC: case WIN_MUC:
if (usr != NULL) { if (usr != NULL) {
ProfMucWin *mucwin = wins_get_current_muc(); ProfMucWin *mucwin = wins_get_current_muc();
Occupant *occupant = muc_roster_item(mucwin->roomjid, contact); Occupant *occupant = muc_roster_item(mucwin->roomjid, usr);
if (occupant) { if (occupant) {
win_show_occupant(mucwin->super, occupant); win_show_occupant(&mucwin->super, occupant);
} else { } else {
win_save_vprint(mucwin->super, '-', NULL, 0, 0, "", "No such participant \"%s\" in room.", contact); win_save_vprint(&mucwin->super, '-', NULL, 0, 0, "", "No such participant \"%s\" in room.", usr);
} }
} else { } else {
ui_current_print_line("You must specify a nickname."); ui_current_print_line("You must specify a nickname.");
@ -1622,9 +1625,9 @@ cmd_status(gchar **args, struct cmd_help_t help)
ProfChatWin *chatwin = wins_get_current_chat(); ProfChatWin *chatwin = wins_get_current_chat();
PContact pcontact = roster_get_contact(chatwin->barejid); PContact pcontact = roster_get_contact(chatwin->barejid);
if (pcontact != NULL) { if (pcontact != NULL) {
win_show_contact(chatwin->super, pcontact); win_show_contact(&chatwin->super, pcontact);
} else { } else {
win_save_println(chatwin->super, "Error getting contact info."); win_save_println(&chatwin->super, "Error getting contact info.");
} }
} }
break; break;
@ -1636,9 +1639,9 @@ cmd_status(gchar **args, struct cmd_help_t help)
Jid *jid = jid_create(privatewin->fulljid); Jid *jid = jid_create(privatewin->fulljid);
Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart); Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart);
if (occupant) { if (occupant) {
win_show_occupant(privatewin->super, occupant); win_show_occupant(&privatewin->super, occupant);
} else { } else {
win_save_println(privatewin->super, "Error getting contact info."); win_save_println(&privatewin->super, "Error getting contact info.");
} }
jid_destroy(jid); jid_destroy(jid);
} }
@ -1702,9 +1705,9 @@ cmd_info(gchar **args, struct cmd_help_t help)
ProfChatWin *chatwin = wins_get_current_chat(); ProfChatWin *chatwin = wins_get_current_chat();
PContact pcontact = roster_get_contact(chatwin->barejid); PContact pcontact = roster_get_contact(chatwin->barejid);
if (pcontact != NULL) { if (pcontact != NULL) {
win_show_info(chatwin->super, pcontact); win_show_info(&chatwin->super, pcontact);
} else { } else {
win_save_println(chatwin->super, "Error getting contact info."); win_save_println(&chatwin->super, "Error getting contact info.");
} }
} }
break; break;
@ -1716,9 +1719,9 @@ cmd_info(gchar **args, struct cmd_help_t help)
Jid *jid = jid_create(privatewin->fulljid); Jid *jid = jid_create(privatewin->fulljid);
Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart); Occupant *occupant = muc_roster_item(jid->barejid, jid->resourcepart);
if (occupant) { if (occupant) {
win_show_occupant_info(privatewin->super, jid->barejid, occupant); win_show_occupant_info(&privatewin->super, jid->barejid, occupant);
} else { } else {
win_save_println(privatewin->super, "Error getting contact info."); win_save_println(&privatewin->super, "Error getting contact info.");
} }
jid_destroy(jid); jid_destroy(jid);
} }
@ -1828,7 +1831,6 @@ cmd_software(gchar **args, struct cmd_help_t help)
jabber_conn_status_t conn_status = jabber_get_connection_status(); jabber_conn_status_t conn_status = jabber_get_connection_status();
win_type_t win_type = ui_current_win_type(); win_type_t win_type = ui_current_win_type();
Occupant *occupant = NULL; Occupant *occupant = NULL;
char *recipient;
if (conn_status != JABBER_CONNECTED) { if (conn_status != JABBER_CONNECTED) {
cons_show("You are not currently connected."); cons_show("You are not currently connected.");
@ -1963,7 +1965,6 @@ cmd_invite(gchar **args, struct cmd_help_t help)
{ {
char *contact = args[0]; char *contact = args[0];
char *reason = args[1]; char *reason = args[1];
char *room = NULL;
jabber_conn_status_t conn_status = jabber_get_connection_status(); jabber_conn_status_t conn_status = jabber_get_connection_status();
if (conn_status != JABBER_CONNECTED) { if (conn_status != JABBER_CONNECTED) {
@ -1981,7 +1982,7 @@ cmd_invite(gchar **args, struct cmd_help_t help)
usr_jid = contact; usr_jid = contact;
} }
ProfMucWin mucwin = wins_get_current_muc(); ProfMucWin *mucwin = wins_get_current_muc();
message_send_invite(mucwin->roomjid, usr_jid, reason); message_send_invite(mucwin->roomjid, usr_jid, reason);
if (reason != NULL) { if (reason != NULL) {
cons_show("Room invite sent, contact: %s, room: %s, reason: \"%s\".", cons_show("Room invite sent, contact: %s, room: %s, reason: \"%s\".",
@ -2052,7 +2053,7 @@ cmd_form_field(char *tag, gchar **args)
ui_show_form_field(current, form, tag); ui_show_form_field(current, form, tag);
} else { } else {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
} }
break; break;
@ -2063,7 +2064,7 @@ cmd_form_field(char *tag, gchar **args)
value = args[0]; value = args[0];
if (value == NULL) { if (value == NULL) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
} else { } else {
form_set_value(form, tag, value); form_set_value(form, tag, value);
@ -2075,7 +2076,7 @@ cmd_form_field(char *tag, gchar **args)
value = args[0]; value = args[0];
if ((value == NULL) || !form_field_contains_option(form, tag, value)) { if ((value == NULL) || !form_field_contains_option(form, tag, value)) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
} else { } else {
form_set_value(form, tag, value); form_set_value(form, tag, value);
@ -2091,13 +2092,13 @@ cmd_form_field(char *tag, gchar **args)
} }
if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) { if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
if (value == NULL) { if (value == NULL) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
@ -2110,13 +2111,13 @@ cmd_form_field(char *tag, gchar **args)
if (g_strcmp0(args[0], "remove") == 0) { if (g_strcmp0(args[0], "remove") == 0) {
if (!g_str_has_prefix(value, "val")) { if (!g_str_has_prefix(value, "val")) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
if (strlen(value) < 4) { if (strlen(value) < 4) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
@ -2124,7 +2125,7 @@ cmd_form_field(char *tag, gchar **args)
int index = strtol(&value[3], NULL, 10); int index = strtol(&value[3], NULL, 10);
if ((index < 1) || (index > form_get_value_count(form, tag))) { if ((index < 1) || (index > form_get_value_count(form, tag))) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
@ -2145,13 +2146,13 @@ cmd_form_field(char *tag, gchar **args)
} }
if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) { if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
if (value == NULL) { if (value == NULL) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
@ -2167,7 +2168,7 @@ cmd_form_field(char *tag, gchar **args)
} }
} else { } else {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
} }
break; break;
@ -2184,7 +2185,7 @@ cmd_form_field(char *tag, gchar **args)
} }
} else { } else {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
} }
} }
@ -2196,13 +2197,13 @@ cmd_form_field(char *tag, gchar **args)
} }
if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) { if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
if (value == NULL) { if (value == NULL) {
ui_current_print_line("Invalid command, usage:"); ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag); ui_show_form_field_help(confwin, tag);
ui_current_print_line(""); ui_current_print_line("");
break; break;
} }
@ -2280,7 +2281,7 @@ cmd_form(gchar **args, struct cmd_help_t help)
help_text = command->help.long_help; help_text = command->help.long_help;
} }
ui_show_lines(confwin->super, help_text); ui_show_lines(&confwin->super, help_text);
} }
ui_current_print_line(""); ui_current_print_line("");
return TRUE; return TRUE;
@ -2303,7 +2304,7 @@ cmd_form(gchar **args, struct cmd_help_t help)
cmd_autocomplete_remove_form_fields(confwin->form); cmd_autocomplete_remove_form_fields(confwin->form);
} }
wins_close_current(); wins_close_current();
current = wins_get_by_recipient(roomjid); ProfWin *current = (ProfWin*)wins_get_muc(roomjid);
if (current == NULL) { if (current == NULL) {
current = wins_get_console(); current = wins_get_console();
} }
@ -2340,7 +2341,7 @@ cmd_kick(gchar **args, struct cmd_help_t help)
char *reason = args[1]; char *reason = args[1];
iq_room_kick_occupant(mucwin->roomjid, nick, reason); iq_room_kick_occupant(mucwin->roomjid, nick, reason);
} else { } else {
win_save_vprint(mucwin->super, '!', NULL, 0, 0, "", "Occupant does not exist: %s", nick); win_save_vprint(&mucwin->super, '!', NULL, 0, 0, "", "Occupant does not exist: %s", nick);
} }
} else { } else {
cons_show("Usage: %s", help.usage); cons_show("Usage: %s", help.usage);
@ -2398,10 +2399,10 @@ cmd_subject(gchar **args, struct cmd_help_t help)
if (args[0] == NULL) { if (args[0] == NULL) {
char *subject = muc_subject(mucwin->roomjid); char *subject = muc_subject(mucwin->roomjid);
if (subject) { if (subject) {
win_save_vprint(mucwin->super, '!', NULL, NO_EOL, THEME_ROOMINFO, "", "Room subject: "); win_save_vprint(&mucwin->super, '!', NULL, NO_EOL, THEME_ROOMINFO, "", "Room subject: ");
win_save_vprint(mucwin->super, '!', NULL, NO_DATE, 0, "", "%s", subject); win_save_vprint(&mucwin->super, '!', NULL, NO_DATE, 0, "", "%s", subject);
} else { } else {
win_save_print(mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Room has no subject"); win_save_print(&mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Room has no subject");
} }
return TRUE; return TRUE;
} }
@ -2464,9 +2465,9 @@ cmd_affiliation(gchar **args, struct cmd_help_t help)
iq_room_affiliation_list(mucwin->roomjid, "owner"); iq_room_affiliation_list(mucwin->roomjid, "owner");
iq_room_affiliation_list(mucwin->roomjid, "admin"); iq_room_affiliation_list(mucwin->roomjid, "admin");
iq_room_affiliation_list(mucwin->roomjid, "member"); iq_room_affiliation_list(mucwin->roomjid, "member");
iq_room_affiliation_list(mucwin->roomjid), "outcast"); iq_room_affiliation_list(mucwin->roomjid, "outcast");
} else if (g_strcmp0(affiliation, "none") == 0) { } else if (g_strcmp0(affiliation, "none") == 0) {
win_save_print(mucwin->super, '!', NULL, 0, 0, "", "Cannot list users with no affiliation."); win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Cannot list users with no affiliation.");
} else { } else {
iq_room_affiliation_list(mucwin->roomjid, affiliation); iq_room_affiliation_list(mucwin->roomjid, affiliation);
} }
@ -2534,7 +2535,7 @@ cmd_role(gchar **args, struct cmd_help_t help)
iq_room_role_list(mucwin->roomjid, "participant"); iq_room_role_list(mucwin->roomjid, "participant");
iq_room_role_list(mucwin->roomjid, "visitor"); iq_room_role_list(mucwin->roomjid, "visitor");
} else if (g_strcmp0(role, "none") == 0) { } else if (g_strcmp0(role, "none") == 0) {
win_save_print(mucwin->super, '!', NULL, 0, 0, "", "Cannot list users with no role."); win_save_print(&mucwin->super, '!', NULL, 0, 0, "", "Cannot list users with no role.");
} else { } else {
iq_room_role_list(mucwin->roomjid, role); iq_room_role_list(mucwin->roomjid, role);
} }
@ -2586,7 +2587,7 @@ cmd_room(gchar **args, struct cmd_help_t help)
} }
ProfMucWin *mucwin = wins_get_current_muc(); ProfMucWin *mucwin = wins_get_current_muc();
int num = wins_get_num(mucwin->super); int num = wins_get_num(&mucwin->super);
int ui_index = num; int ui_index = num;
if (ui_index == 10) { if (ui_index == 10) {
@ -2596,12 +2597,12 @@ cmd_room(gchar **args, struct cmd_help_t help)
if (g_strcmp0(args[0], "accept") == 0) { if (g_strcmp0(args[0], "accept") == 0) {
gboolean requires_config = muc_requires_config(mucwin->roomjid); gboolean requires_config = muc_requires_config(mucwin->roomjid);
if (!requires_config) { if (!requires_config) {
win_save_print(mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Current room does not require configuration."); win_save_print(&mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Current room does not require configuration.");
return TRUE; return TRUE;
} else { } else {
iq_confirm_instant_room(mucwin->roomjid); iq_confirm_instant_room(mucwin->roomjid);
muc_set_requires_config(mucwin->roomjid, FALSE); muc_set_requires_config(mucwin->roomjid, FALSE);
win_save_print(mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Room unlocked."); win_save_print(&mucwin->super, '!', NULL, 0, THEME_ROOMINFO, "", "Room unlocked.");
return TRUE; return TRUE;
} }
} }
@ -2614,11 +2615,11 @@ cmd_room(gchar **args, struct cmd_help_t help)
if (g_strcmp0(args[0], "config") == 0) { if (g_strcmp0(args[0], "config") == 0) {
GString *win_title = g_string_new(mucwin->roomjid); GString *win_title = g_string_new(mucwin->roomjid);
g_string_append(win_title, " config"); g_string_append(win_title, " config");
ProfMucConfWin *confwin = wins_get_muc_conf_win(win_title->str); ProfMucConfWin *confwin = wins_get_muc_conf(win_title->str);
g_string_free(win_title, TRUE); g_string_free(win_title, TRUE);
if (confwin != NULL) { if (confwin != NULL) {
num = wins_get_num(confwin->super); num = wins_get_num(&confwin->super);
ui_switch_win(num); ui_switch_win(num);
} else { } else {
iq_request_room_config_form(mucwin->roomjid); iq_request_room_config_form(mucwin->roomjid);
@ -2942,6 +2943,7 @@ cmd_alias(gchar **args, struct cmd_help_t help)
} }
} }
// TODO reuse cmd_msg
gboolean gboolean
cmd_tiny(gchar **args, struct cmd_help_t help) cmd_tiny(gchar **args, struct cmd_help_t help)
{ {
@ -2972,7 +2974,7 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
if (otr_is_secure(chatwin->barejid)) { if (otr_is_secure(chatwin->barejid)) {
char *encrypted = otr_encrypt_message(chatwin->barejid, tiny); char *encrypted = otr_encrypt_message(chatwin->barejid, tiny);
if (encrypted != NULL) { if (encrypted != NULL) {
message_send(encrypted, chatwin->barejid); message_send_chat(chatwin->barejid, encrypted);
otr_free_message(encrypted); otr_free_message(encrypted);
if (prefs_get_boolean(PREF_CHLOG)) { if (prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
@ -2987,12 +2989,12 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
jid_destroy(jidp); jid_destroy(jidp);
} }
ui_outgoing_msg("me", chatwin->barejid, tiny); ui_outgoing_chat_msg("me", chatwin->barejid, tiny);
} else { } else {
cons_show_error("Failed to send message."); cons_show_error("Failed to send message.");
} }
} else { } else {
message_send(tiny, send_recipient->str); message_send_chat(send_recipient->str, tiny);
if (prefs_get_boolean(PREF_CHLOG)) { if (prefs_get_boolean(PREF_CHLOG)) {
const char *jid = jabber_get_fulljid(); const char *jid = jabber_get_fulljid();
Jid *jidp = jid_create(jid); Jid *jidp = jid_create(jid);
@ -3000,7 +3002,7 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
jid_destroy(jidp); jid_destroy(jidp);
} }
ui_outgoing_msg("me", chatwin->barejid, tiny); ui_outgoing_chat_msg("me", chatwin->barejid, tiny);
} }
#else #else
message_send(tiny, send_recipient->str); message_send(tiny, send_recipient->str);
@ -3011,14 +3013,14 @@ cmd_tiny(gchar **args, struct cmd_help_t help)
jid_destroy(jidp); jid_destroy(jidp);
} }
ui_outgoing_msg("me", chatwin->barejid, tiny); ui_outgoing_chat_msg("me", chatwin->barejid, tiny);
#endif #endif
g_string_free(send_recipient, TRUE); g_string_free(send_recipient, TRUE);
} else if (win_type == WIN_PRIVATE) { } else if (win_type == WIN_PRIVATE) {
ProfPrivateWin *privatewin = wins_get_current_private(); ProfPrivateWin *privatewin = wins_get_current_private();
message_send(tiny, privatewin->fulljid); message_send_private(tiny, privatewin->fulljid);
ui_outgoing_msg("me", privatewin->fulljid, tiny); ui_outgoing_private_msg("me", privatewin->fulljid, tiny);
} else if (win_type == WIN_MUC) { } else if (win_type == WIN_MUC) {
ProfMucWin *mucwin = wins_get_current_muc(); ProfMucWin *mucwin = wins_get_current_muc();
message_send_groupchat(tiny, mucwin->roomjid); message_send_groupchat(tiny, mucwin->roomjid);
@ -3915,7 +3917,7 @@ cmd_otr(gchar **args, struct cmd_help_t help)
ui_current_print_formatted_line('!', 0, "You have not generated or loaded a private key, use '/otr gen'"); ui_current_print_formatted_line('!', 0, "You have not generated or loaded a private key, use '/otr gen'");
} else if (!otr_is_secure(barejid)) { } else if (!otr_is_secure(barejid)) {
char *otr_query_message = otr_start_query(); char *otr_query_message = otr_start_query();
message_send(otr_query_message, barejid); message_send_chat(barejid, otr_query_message);
} else { } else {
ui_gone_secure(barejid, otr_is_trusted(barejid)); ui_gone_secure(barejid, otr_is_trusted(barejid));
} }
@ -3933,7 +3935,7 @@ cmd_otr(gchar **args, struct cmd_help_t help)
} else { } else {
ProfChatWin *chatwin = wins_get_current_chat(); ProfChatWin *chatwin = wins_get_current_chat();
char *otr_query_message = otr_start_query(); char *otr_query_message = otr_start_query();
message_send(otr_query_message, chatwin->barejid); message_send_chat(chatwin->barejid, otr_query_message);
} }
} }
} }

@ -109,7 +109,7 @@ static void
cb_inject_message(void *opdata, const char *accountname, cb_inject_message(void *opdata, const char *accountname,
const char *protocol, const char *recipient, const char *message) const char *protocol, const char *recipient, const char *message)
{ {
message_send(message, recipient); message_send_chat(recipient, message);
} }
static void static void

@ -320,7 +320,7 @@ handle_incoming_message(char *barejid, char *message)
memmove(whitespace_base, whitespace_base+tag_length, tag_length); memmove(whitespace_base, whitespace_base+tag_length, tag_length);
char *otr_query_message = otr_start_query(); char *otr_query_message = otr_start_query();
cons_show("OTR Whitespace pattern detected. Attempting to start OTR session..."); cons_show("OTR Whitespace pattern detected. Attempting to start OTR session...");
message_send(otr_query_message, barejid); message_send_chat(barejid, otr_query_message);
} }
} }
} }
@ -334,7 +334,7 @@ handle_incoming_message(char *barejid, char *message)
if (policy == PROF_OTRPOLICY_ALWAYS && !was_decrypted && !whitespace_base) { if (policy == PROF_OTRPOLICY_ALWAYS && !was_decrypted && !whitespace_base) {
char *otr_query_message = otr_start_query(); char *otr_query_message = otr_start_query();
cons_show("Attempting to start OTR session..."); cons_show("Attempting to start OTR session...");
message_send(otr_query_message, barejid); message_send_chat(barejid, otr_query_message);
} }
ui_incoming_msg(barejid, newmessage, NULL); ui_incoming_msg(barejid, newmessage, NULL);
@ -399,27 +399,27 @@ handle_gone(const char * const from)
} }
void void
handle_subscription(const char *from, jabber_subscr_t type) handle_subscription(const char *barejid, jabber_subscr_t type)
{ {
switch (type) { switch (type) {
case PRESENCE_SUBSCRIBE: case PRESENCE_SUBSCRIBE:
/* TODO: auto-subscribe if needed */ /* TODO: auto-subscribe if needed */
cons_show("Received authorization request from %s", from); cons_show("Received authorization request from %s", barejid);
log_info("Received authorization request from %s", from); log_info("Received authorization request from %s", barejid);
ui_print_system_msg_from_recipient(from, "Authorization request, type '/sub allow' to accept or '/sub deny' to reject"); ui_print_system_msg_from_recipient(barejid, "Authorization request, type '/sub allow' to accept or '/sub deny' to reject");
if (prefs_get_boolean(PREF_NOTIFY_SUB)) { if (prefs_get_boolean(PREF_NOTIFY_SUB)) {
notify_subscription(from); notify_subscription(barejid);
} }
break; break;
case PRESENCE_SUBSCRIBED: case PRESENCE_SUBSCRIBED:
cons_show("Subscription received from %s", from); cons_show("Subscription received from %s", barejid);
log_info("Subscription received from %s", from); log_info("Subscription received from %s", barejid);
ui_print_system_msg_from_recipient(from, "Subscribed"); ui_print_system_msg_from_recipient(barejid, "Subscribed");
break; break;
case PRESENCE_UNSUBSCRIBED: case PRESENCE_UNSUBSCRIBED:
cons_show("%s deleted subscription", from); cons_show("%s deleted subscription", barejid);
log_info("%s deleted subscription", from); log_info("%s deleted subscription", barejid);
ui_print_system_msg_from_recipient(from, "Unsubscribed"); ui_print_system_msg_from_recipient(barejid, "Unsubscribed");
break; break;
default: default:
/* unknown type */ /* unknown type */

@ -469,7 +469,7 @@ _cons_show_bookmarks(const GList *list)
win_save_print(console, '-', NULL, NO_DATE | NO_EOL, presence_colour, "", " (private)"); win_save_print(console, '-', NULL, NO_DATE | NO_EOL, presence_colour, "", " (private)");
} }
if (muc_active(item->jid)) { if (muc_active(item->jid)) {
ProfWin *roomwin = wins_get_by_recipient(item->jid); ProfWin *roomwin = (ProfWin*)wins_get_muc(item->jid);
if (roomwin != NULL) { if (roomwin != NULL) {
int num = wins_get_num(roomwin); int num = wins_get_num(roomwin);
win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, presence_colour, "", " (%d)", num); win_save_vprint(console, '-', NULL, NO_DATE | NO_EOL, presence_colour, "", " (%d)", num);

File diff suppressed because it is too large Load Diff

@ -57,7 +57,7 @@ _occuptantswin_occupant(ProfLayoutSplit *layout, Occupant *occupant)
static void static void
_occupantswin_occupants(const char * const roomjid) _occupantswin_occupants(const char * const roomjid)
{ {
ProfMucWin *mucwin = wins_get_muc_win(roomjid); ProfMucWin *mucwin = wins_get_muc(roomjid);
if (mucwin) { if (mucwin) {
GList *occupants = muc_roster(roomjid); GList *occupants = muc_roster(roomjid);
if (occupants) { if (occupants) {

@ -73,23 +73,28 @@ void (*ui_next_win)(void);
void (*ui_previous_win)(void); void (*ui_previous_win)(void);
void (*ui_gone_secure)(const char * const barejid, gboolean trusted); void (*ui_gone_secure)(const char * const barejid, gboolean trusted);
void (*ui_gone_insecure)(const char * const recipient); void (*ui_gone_insecure)(const char * const barejid);
void (*ui_trust)(const char * const recipient); void (*ui_trust)(const char * const barejid);
void (*ui_untrust)(const char * const recipient); void (*ui_untrust)(const char * const barejid);
void (*ui_smp_recipient_initiated)(const char * const recipient); // TODO rename other recipients to barejid etc
void (*ui_smp_recipient_initiated_q)(const char * const recipient, const char *question); void (*ui_smp_recipient_initiated)(const char * const barejid);
void (*ui_smp_recipient_initiated_q)(const char * const barejid, const char *question);
void (*ui_smp_successful)(const char * const recipient); void (*ui_smp_successful)(const char * const barejid);
void (*ui_smp_unsuccessful_sender)(const char * const recipient); void (*ui_smp_unsuccessful_sender)(const char * const barejid);
void (*ui_smp_unsuccessful_receiver)(const char * const recipient); void (*ui_smp_unsuccessful_receiver)(const char * const barejid);
void (*ui_smp_aborted)(const char * const recipient); void (*ui_smp_aborted)(const char * const barejid);
void (*ui_smp_answer_success)(const char * const recipient); void (*ui_smp_answer_success)(const char * const barejid);
void (*ui_smp_answer_failure)(const char * const recipient); void (*ui_smp_answer_failure)(const char * const barejid);
void (*ui_otr_authenticating)(const char * const barejid);
void (*ui_otr_authetication_waiting)(const char * const recipient);
unsigned long (*ui_get_idle_time)(void); unsigned long (*ui_get_idle_time)(void);
void (*ui_reset_idle_time)(void); void (*ui_reset_idle_time)(void);
void (*ui_new_chat_win)(const char * const to); void (*ui_new_chat_win)(const char * const barejid);
void (*ui_new_private_win)(const char * const fulljid);
void (*ui_print_system_msg_from_recipient)(const char * const barejid, const char *message); void (*ui_print_system_msg_from_recipient)(const char * const barejid, const char *message);
gint (*ui_unread)(void); gint (*ui_unread)(void);
void (*ui_close_connected_win)(int index); void (*ui_close_connected_win)(int index);
@ -108,9 +113,6 @@ void (*ui_current_print_line)(const char * const msg, ...);
void (*ui_current_print_formatted_line)(const char show_char, int attrs, const char * const msg, ...); void (*ui_current_print_formatted_line)(const char show_char, int attrs, const char * const msg, ...);
void (*ui_current_error_line)(const char * const msg); void (*ui_current_error_line)(const char * const msg);
void (*ui_otr_authenticating)(const char * const recipient);
void (*ui_otr_authetication_waiting)(const char * const recipient);
win_type_t (*ui_win_type)(int index); win_type_t (*ui_win_type)(int index);
void (*ui_close_win)(int index); void (*ui_close_win)(int index);
gboolean (*ui_win_exists)(int index); gboolean (*ui_win_exists)(int index);
@ -126,56 +128,62 @@ void (*ui_incoming_private_msg)(const char * const fulljid, const char * const m
void (*ui_disconnected)(void); void (*ui_disconnected)(void);
void (*ui_recipient_gone)(const char * const barejid); void (*ui_recipient_gone)(const char * const barejid);
void (*ui_outgoing_msg)(const char * const from, const char * const to,
void (*ui_outgoing_chat_msg)(const char * const from, const char * const barejid,
const char * const message); const char * const message);
void (*ui_room_join)(const char * const room, gboolean focus); void (*ui_outgoing_private_msg)(const char * const from, const char * const fulljid,
void (*ui_switch_to_room)(const char * const room); const char * const message);
void (*ui_room_role_change)(const char * const room, const char * const role, const char * const actor,
void (*ui_room_join)(const char * const roomjid, gboolean focus);
void (*ui_switch_to_room)(const char * const roomjid);
// TODO change all room -> roomjid
void (*ui_room_role_change)(const char * const roomjid, const char * const role, const char * const actor,
const char * const reason); const char * const reason);
void (*ui_room_affiliation_change)(const char * const room, const char * const affiliation, const char * const actor, void (*ui_room_affiliation_change)(const char * const roomjid, const char * const affiliation, const char * const actor,
const char * const reason); const char * const reason);
void (*ui_room_role_and_affiliation_change)(const char * const room, const char * const role, void (*ui_room_role_and_affiliation_change)(const char * const roomjid, const char * const role,
const char * const affiliation, const char * const actor, const char * const reason); const char * const affiliation, const char * const actor, const char * const reason);
void (*ui_room_occupant_role_change)(const char * const room, const char * const nick, const char * const role, void (*ui_room_occupant_role_change)(const char * const roomjid, const char * const nick, const char * const role,
const char * const actor, const char * const reason); const char * const actor, const char * const reason);
void (*ui_room_occupant_affiliation_change)(const char * const room, const char * const nick, const char * const affiliation, void (*ui_room_occupant_affiliation_change)(const char * const roomjid, const char * const nick, const char * const affiliation,
const char * const actor, const char * const reason); const char * const actor, const char * const reason);
void (*ui_room_occupant_role_and_affiliation_change)(const char * const room, const char * const nick, const char * const role, void (*ui_room_occupant_role_and_affiliation_change)(const char * const roomjid, const char * const nick, const char * const role,
const char * const affiliation, const char * const actor, const char * const reason); const char * const affiliation, const char * const actor, const char * const reason);
void (*ui_room_roster)(const char * const room, GList *occupants, const char * const presence); void (*ui_room_roster)(const char * const roomjid, GList *occupants, const char * const presence);
void (*ui_room_history)(const char * const room_jid, const char * const nick, void (*ui_room_history)(const char * const roomjid, const char * const nick,
GTimeVal tv_stamp, const char * const message); GTimeVal tv_stamp, const char * const message);
void (*ui_room_message)(const char * const room_jid, const char * const nick, void (*ui_room_message)(const char * const roomjid, const char * const nick,
const char * const message); const char * const message);
void (*ui_room_subject)(const char * const room, const char * const nick, const char * const subject); void (*ui_room_subject)(const char * const roomjid, const char * const nick, const char * const subject);
void (*ui_room_requires_config)(const char * const room_jid); void (*ui_room_requires_config)(const char * const roomjid);
void (*ui_room_destroy)(const char * const room_jid); void (*ui_room_destroy)(const char * const roomjid);
void (*ui_show_room_info)(ProfMucWin *mucwin); void (*ui_show_room_info)(ProfMucWin *mucwin);
void (*ui_show_room_role_list)(ProfMucWin *mucwin, muc_role_t role); void (*ui_show_room_role_list)(ProfMucWin *mucwin, muc_role_t role);
void (*ui_show_room_affiliation_list)(ProfMucWin *mucwin, muc_affiliation_t affiliation); void (*ui_show_room_affiliation_list)(ProfMucWin *mucwin, muc_affiliation_t affiliation);
void (*ui_handle_room_info_error)(const char * const room, const char * const error); void (*ui_handle_room_info_error)(const char * const roomjid, const char * const error);
void (*ui_show_room_disco_info)(const char * const room, GSList *identities, GSList *features); void (*ui_show_room_disco_info)(const char * const roomjid, GSList *identities, GSList *features);
void (*ui_room_destroyed)(const char * const room, const char * const reason, const char * const new_jid, void (*ui_room_destroyed)(const char * const roomjid, const char * const reason, const char * const new_jid,
const char * const password); const char * const password);
void (*ui_room_kicked)(const char * const room, const char * const actor, const char * const reason); void (*ui_room_kicked)(const char * const roomjid, const char * const actor, const char * const reason);
void (*ui_room_member_kicked)(const char * const room, const char * const nick, const char * const actor, void (*ui_room_member_kicked)(const char * const roomjid, const char * const nick, const char * const actor,
const char * const reason); const char * const reason);
void (*ui_room_banned)(const char * const room, const char * const actor, const char * const reason); void (*ui_room_banned)(const char * const roomjid, const char * const actor, const char * const reason);
void (*ui_room_member_banned)(const char * const room, const char * const nick, const char * const actor, void (*ui_room_member_banned)(const char * const roomjid, const char * const nick, const char * const actor,
const char * const reason); const char * const reason);
void (*ui_leave_room)(const char * const room); void (*ui_leave_room)(const char * const roomjid);
void (*ui_room_broadcast)(const char * const room_jid, void (*ui_room_broadcast)(const char * const roomjid,
const char * const message); const char * const message);
void (*ui_room_member_offline)(const char * const room, const char * const nick); void (*ui_room_member_offline)(const char * const roomjid, const char * const nick);
void (*ui_room_member_online)(const char * const room, const char * const nick, const char * const roles, void (*ui_room_member_online)(const char * const roomjid, const char * const nick, const char * const roles,
const char * const affiliation, const char * const show, const char * const status); const char * const affiliation, const char * const show, const char * const status);
void (*ui_room_member_nick_change)(const char * const room, void (*ui_room_member_nick_change)(const char * const roomjid,
const char * const old_nick, const char * const nick); const char * const old_nick, const char * const nick);
void (*ui_room_nick_change)(const char * const room, const char * const nick); void (*ui_room_nick_change)(const char * const roomjid, const char * const nick);
void (*ui_room_member_presence)(const char * const room, void (*ui_room_member_presence)(const char * const roomjid,
const char * const nick, const char * const show, const char * const status); const char * const nick, const char * const show, const char * const status);
void (*ui_room_show_occupants)(const char * const room); void (*ui_room_show_occupants)(const char * const roomjid);
void (*ui_room_hide_occupants)(const char * const room); void (*ui_room_hide_occupants)(const char * const roomjid);
void (*ui_show_roster)(void); void (*ui_show_roster)(void);
void (*ui_hide_roster)(void); void (*ui_hide_roster)(void);
void (*ui_roster_add)(const char * const barejid, const char * const name); void (*ui_roster_add)(const char * const barejid, const char * const name);
@ -190,21 +198,21 @@ void (*ui_handle_recipient_not_found)(const char * const recipient, const char *
void (*ui_handle_recipient_error)(const char * const recipient, const char * const err_msg); void (*ui_handle_recipient_error)(const char * const recipient, const char * const err_msg);
void (*ui_handle_error)(const char * const err_msg); void (*ui_handle_error)(const char * const err_msg);
void (*ui_clear_win_title)(void); void (*ui_clear_win_title)(void);
void (*ui_handle_room_join_error)(const char * const room, const char * const err); void (*ui_handle_room_join_error)(const char * const roomjid, const char * const err);
void (*ui_handle_room_configuration)(const char * const room, DataForm *form); void (*ui_handle_room_configuration)(const char * const room, DataForm *form);
void (*ui_handle_room_configuration_form_error)(const char * const room, const char * const message); void (*ui_handle_room_configuration_form_error)(const char * const roomjid, const char * const message);
void (*ui_handle_room_config_submit_result)(const char * const room); void (*ui_handle_room_config_submit_result)(const char * const roomjid);
void (*ui_handle_room_config_submit_result_error)(const char * const room, const char * const message); void (*ui_handle_room_config_submit_result_error)(const char * const roomjid, const char * const message);
void (*ui_handle_room_affiliation_list_error)(const char * const room, const char * const affiliation, void (*ui_handle_room_affiliation_list_error)(const char * const roomjid, const char * const affiliation,
const char * const error); const char * const error);
void (*ui_handle_room_affiliation_list)(const char * const room, const char * const affiliation, GSList *jids); void (*ui_handle_room_affiliation_list)(const char * const roomjid, const char * const affiliation, GSList *jids);
void (*ui_handle_room_affiliation_set_error)(const char * const room, const char * const jid, void (*ui_handle_room_affiliation_set_error)(const char * const roomjid, const char * const jid,
const char * const affiliation, const char * const error); const char * const affiliation, const char * const error);
void (*ui_handle_room_role_set_error)(const char * const room, const char * const nick, const char * const role, void (*ui_handle_room_role_set_error)(const char * const roomjid, const char * const nick, const char * const role,
const char * const error); const char * const error);
void (*ui_handle_room_role_list_error)(const char * const room, const char * const role, const char * const error); void (*ui_handle_room_role_list_error)(const char * const roomjid, const char * const role, const char * const error);
void (*ui_handle_room_role_list)(const char * const room, const char * const role, GSList *nicks); void (*ui_handle_room_role_list)(const char * const roomjid, const char * const role, GSList *nicks);
void (*ui_handle_room_kick_error)(const char * const room, const char * const nick, const char * const error); void (*ui_handle_room_kick_error)(const char * const roomjid, const char * const nick, const char * const error);
void (*ui_show_form)(ProfMucConfWin *confwin); void (*ui_show_form)(ProfMucConfWin *confwin);
void (*ui_show_form_field)(ProfWin *window, DataForm *form, char *tag); void (*ui_show_form_field)(ProfWin *window, DataForm *form, char *tag);
void (*ui_show_form_help)(ProfMucConfWin *confwin); void (*ui_show_form_help)(ProfMucConfWin *confwin);

@ -141,6 +141,8 @@ win_create_chat(const char * const barejid)
new_win->is_trusted = FALSE; new_win->is_trusted = FALSE;
new_win->history_shown = FALSE; new_win->history_shown = FALSE;
new_win->memcheck = PROFCHATWIN_MEMCHECK;
return &new_win->super; return &new_win->super;
} }
@ -177,6 +179,8 @@ win_create_muc(const char * const roomjid)
new_win->roomjid = strdup(roomjid); new_win->roomjid = strdup(roomjid);
new_win->super.unread = 0; new_win->super.unread = 0;
new_win->memcheck = PROFMUCWIN_MEMCHECK;
return &new_win->super; return &new_win->super;
} }
@ -191,6 +195,8 @@ win_create_muc_config(const char * const title, DataForm *form)
new_win->from = strdup(title); new_win->from = strdup(title);
new_win->form = form; new_win->form = form;
new_win->memcheck = PROFCONFWIN_MEMCHECK;
return &new_win->super; return &new_win->super;
} }
@ -204,6 +210,8 @@ win_create_private(const char * const fulljid)
new_win->fulljid = strdup(fulljid); new_win->fulljid = strdup(fulljid);
new_win->memcheck = PROFPRIVATEWIN_MEMCHECK;
return &new_win->super; return &new_win->super;
} }

@ -99,7 +99,7 @@ wins_get_chat(const char * const barejid)
} }
ProfMucConfWin * ProfMucConfWin *
wins_get_muc_conf_win(const char * const title) wins_get_muc_conf(const char * const title)
{ {
GList *values = g_hash_table_get_values(windows); GList *values = g_hash_table_get_values(windows);
GList *curr = values; GList *curr = values;
@ -121,16 +121,18 @@ wins_get_muc_conf_win(const char * const title)
} }
ProfMucWin * ProfMucWin *
wins_get_muc_win(const char * const roomjid) wins_get_muc(const char * const roomjid)
{ {
GList *values = g_hash_table_get_values(windows); GList *values = g_hash_table_get_values(windows);
GList *curr = values; GList *curr = values;
while (curr != NULL) { while (curr != NULL) {
ProfWin *window = curr->data; ProfWin *window = curr->data;
if ((g_strcmp0(window->from, roomjid) == 0) && window->type == WIN_MUC) { if (window->type == WIN_MUC) {
g_list_free(values); ProfMucWin *mucwin = (ProfMucWin*)window;
return (ProfMucWin*)window; if (g_strcmp0(mucwin->roomjid, roomjid) == 0) {
return mucwin;
}
} }
curr = g_list_next(curr); curr = g_list_next(curr);
} }
@ -372,7 +374,7 @@ wins_get_num(ProfWin *window)
while (curr != NULL) { while (curr != NULL) {
gconstpointer num_p = curr->data; gconstpointer num_p = curr->data;
ProfWin *curr_win = g_hash_table_lookup(windows, num_p); ProfWin *curr_win = g_hash_table_lookup(windows, num_p);
if (g_strcmp0(curr_win->from, window->from) == 0) { if (curr_win == window) {
g_list_free(keys); g_list_free(keys);
return GPOINTER_TO_INT(num_p); return GPOINTER_TO_INT(num_p);
} }
@ -426,7 +428,7 @@ wins_is_current(ProfWin *window)
{ {
ProfWin *current_window = wins_get_current(); ProfWin *current_window = wins_get_current();
if (g_strcmp0(current_window->from, window->from) == 0) { if (current_window == window) {
return TRUE; return TRUE;
} else { } else {
return FALSE; return FALSE;
@ -438,10 +440,10 @@ wins_new_xmlconsole(void)
{ {
GList *keys = g_hash_table_get_keys(windows); GList *keys = g_hash_table_get_keys(windows);
int result = get_next_available_win_num(keys); int result = get_next_available_win_num(keys);
ProfWin *new = win_create_xmlconsole(); ProfWin *newwin = win_create_xmlconsole();
g_hash_table_insert(windows, GINT_TO_POINTER(result), new); g_hash_table_insert(windows, GINT_TO_POINTER(result), newwin);
g_list_free(keys); g_list_free(keys);
return new; return newwin;
} }
ProfWin * ProfWin *
@ -449,10 +451,10 @@ wins_new_chat(const char * const barejid)
{ {
GList *keys = g_hash_table_get_keys(windows); GList *keys = g_hash_table_get_keys(windows);
int result = get_next_available_win_num(keys); int result = get_next_available_win_num(keys);
ProfWin *new = win_create_chat(barejid); ProfWin *newwin = win_create_chat(barejid);
g_hash_table_insert(windows, GINT_TO_POINTER(result), new); g_hash_table_insert(windows, GINT_TO_POINTER(result), newwin);
g_list_free(keys); g_list_free(keys);
return new; return newwin;
} }
ProfWin * ProfWin *
@ -460,10 +462,10 @@ wins_new_muc(const char * const roomjid)
{ {
GList *keys = g_hash_table_get_keys(windows); GList *keys = g_hash_table_get_keys(windows);
int result = get_next_available_win_num(keys); int result = get_next_available_win_num(keys);
ProfWin *new = win_create_muc(roomjid); ProfWin *newwin = win_create_muc(roomjid);
g_hash_table_insert(windows, GINT_TO_POINTER(result), new); g_hash_table_insert(windows, GINT_TO_POINTER(result), newwin);
g_list_free(keys); g_list_free(keys);
return new; return newwin;
} }
ProfWin * ProfWin *
@ -471,10 +473,10 @@ wins_new_muc_config(const char * const title, DataForm *form)
{ {
GList *keys = g_hash_table_get_keys(windows); GList *keys = g_hash_table_get_keys(windows);
int result = get_next_available_win_num(keys); int result = get_next_available_win_num(keys);
ProfWin *new = win_create_muc_config(title, form); ProfWin *newwin = win_create_muc_config(title, form);
g_hash_table_insert(windows, GINT_TO_POINTER(result), new); g_hash_table_insert(windows, GINT_TO_POINTER(result), newwin);
g_list_free(keys); g_list_free(keys);
return new; return newwin;
} }
ProfWin * ProfWin *
@ -482,10 +484,10 @@ wins_new_private(const char * const fulljid)
{ {
GList *keys = g_hash_table_get_keys(windows); GList *keys = g_hash_table_get_keys(windows);
int result = get_next_available_win_num(keys); int result = get_next_available_win_num(keys);
ProfWin *new = win_create_private(fulljid); ProfWin *newwin = win_create_private(fulljid);
g_hash_table_insert(windows, GINT_TO_POINTER(result), new); g_hash_table_insert(windows, GINT_TO_POINTER(result), newwin);
g_list_free(keys); g_list_free(keys);
return new; return newwin;
} }
int int
@ -627,7 +629,8 @@ wins_get_chat_recipients(void)
while (curr != NULL) { while (curr != NULL) {
ProfWin *window = curr->data; ProfWin *window = curr->data;
if (window->type == WIN_CHAT) { if (window->type == WIN_CHAT) {
result = g_slist_append(result, window->from); ProfChatWin *chatwin = (ProfChatWin*)window;
result = g_slist_append(result, chatwin->barejid);
} }
curr = g_list_next(curr); curr = g_list_next(curr);
} }
@ -636,7 +639,7 @@ wins_get_chat_recipients(void)
} }
GSList * GSList *
wins_get_prune_recipients(void) wins_get_prune_wins(void)
{ {
GSList *result = NULL; GSList *result = NULL;
GList *values = g_hash_table_get_values(windows); GList *values = g_hash_table_get_values(windows);
@ -649,7 +652,7 @@ wins_get_prune_recipients(void)
window->type != WIN_MUC_CONFIG && window->type != WIN_MUC_CONFIG &&
window->type != WIN_XML && window->type != WIN_XML &&
window->type != WIN_CONSOLE) { window->type != WIN_CONSOLE) {
result = g_slist_append(result, window->from); result = g_slist_append(result, window);
} }
curr = g_list_next(curr); curr = g_list_next(curr);
} }
@ -813,9 +816,10 @@ wins_create_summary(void)
case WIN_CHAT: case WIN_CHAT:
chat_string = g_string_new(""); chat_string = g_string_new("");
PContact contact = roster_get_contact(window->from); ProfChatWin *chatwin = (ProfChatWin*)window;
PContact contact = roster_get_contact(chatwin->barejid);
if (contact == NULL) { if (contact == NULL) {
g_string_printf(chat_string, "%d: Chat %s", ui_index, window->from); g_string_printf(chat_string, "%d: Chat %s", ui_index, chatwin->barejid);
} else { } else {
const char *display_name = p_contact_name_or_jid(contact); const char *display_name = p_contact_name_or_jid(contact);
g_string_printf(chat_string, "%d: Chat %s", ui_index, display_name); g_string_printf(chat_string, "%d: Chat %s", ui_index, display_name);
@ -839,7 +843,8 @@ wins_create_summary(void)
case WIN_PRIVATE: case WIN_PRIVATE:
priv_string = g_string_new(""); priv_string = g_string_new("");
g_string_printf(priv_string, "%d: Private %s", ui_index, window->from); ProfPrivateWin *privatewin = (ProfPrivateWin*)window;
g_string_printf(priv_string, "%d: Private %s", ui_index, privatewin->fulljid);
if (window->unread > 0) { if (window->unread > 0) {
GString *priv_unread = g_string_new(""); GString *priv_unread = g_string_new("");
@ -855,7 +860,8 @@ wins_create_summary(void)
case WIN_MUC: case WIN_MUC:
muc_string = g_string_new(""); muc_string = g_string_new("");
g_string_printf(muc_string, "%d: Room %s", ui_index, window->from); ProfMucWin *mucwin = (ProfMucWin*)window;
g_string_printf(muc_string, "%d: Room %s", ui_index, mucwin->roomjid);
if (window->unread > 0) { if (window->unread > 0) {
GString *muc_unread = g_string_new(""); GString *muc_unread = g_string_new("");
@ -871,7 +877,8 @@ wins_create_summary(void)
case WIN_MUC_CONFIG: case WIN_MUC_CONFIG:
muc_config_string = g_string_new(""); muc_config_string = g_string_new("");
g_string_printf(muc_config_string, "%d: %s", ui_index, window->from); ProfMucConfWin *confwin = (ProfMucConfWin*)window;
g_string_printf(muc_config_string, "%d: %s", ui_index, confwin->from);
if (win_has_modified_form(window)) { if (win_has_modified_form(window)) {
g_string_append(muc_config_string, " *"); g_string_append(muc_config_string, " *");
} }

@ -45,8 +45,8 @@ ProfWin * wins_new_private(const char * const fulljid);
ProfWin * wins_get_console(void); ProfWin * wins_get_console(void);
ProfChatWin *wins_get_chat(const char * const barejid); ProfChatWin *wins_get_chat(const char * const barejid);
ProfMucWin * wins_get_muc_win(const char * const roomjid); ProfMucWin * wins_get_muc(const char * const roomjid);
ProfMucConfWin * wins_get_muc_conf_win(const char * const title); ProfMucConfWin * wins_get_muc_conf(const char * const title);
ProfPrivateWin *wins_get_private(const char * const fulljid); ProfPrivateWin *wins_get_private(const char * const fulljid);
// TODO remove // TODO remove
@ -75,7 +75,7 @@ gboolean wins_is_current(ProfWin *window);
int wins_get_total_unread(void); int wins_get_total_unread(void);
void wins_resize_all(void); void wins_resize_all(void);
GSList * wins_get_chat_recipients(void); GSList * wins_get_chat_recipients(void);
GSList * wins_get_prune_recipients(void); GSList * wins_get_prune_wins(void);
void wins_lost_connection(void); void wins_lost_connection(void);
gboolean wins_tidy(void); gboolean wins_tidy(void);
GSList * wins_create_summary(void); GSList * wins_create_summary(void);

@ -80,14 +80,14 @@ message_add_handlers(void)
} }
static void static void
_message_send(const char * const msg, const char * const recipient) _message_send_chat(const char * const barejid, const char * const msg)
{ {
const char * jid = NULL; const char * jid = NULL;
if (roster_barejid_from_name(recipient) != NULL) { if (roster_barejid_from_name(barejid) != NULL) {
jid = roster_barejid_from_name(recipient); jid = roster_barejid_from_name(barejid);
} else { } else {
jid = recipient; jid = barejid;
} }
if (prefs_get_boolean(PREF_STATES)) { if (prefs_get_boolean(PREF_STATES)) {
@ -113,90 +113,100 @@ _message_send(const char * const msg, const char * const recipient)
} }
static void static void
_message_send_groupchat(const char * const msg, const char * const recipient) _message_send_private(const char * const fulljid, const char * const msg)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *message = stanza_create_message(ctx, recipient, xmpp_stanza_t *message = stanza_create_message(ctx, fulljid, STANZA_TYPE_CHAT, msg, NULL);
STANZA_TYPE_GROUPCHAT, msg, NULL);
xmpp_send(conn, message); xmpp_send(conn, message);
xmpp_stanza_release(message); xmpp_stanza_release(message);
} }
static void static void
_message_send_groupchat_subject(const char * const room, const char * const subject) _message_send_groupchat(const char * const roomjid, const char * const msg)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *message = stanza_create_room_subject_message(ctx, room, subject); xmpp_stanza_t *message = stanza_create_message(ctx, roomjid, STANZA_TYPE_GROUPCHAT, msg, NULL);
xmpp_send(conn, message); xmpp_send(conn, message);
xmpp_stanza_release(message); xmpp_stanza_release(message);
} }
static void static void
_message_send_invite(const char * const room, const char * const contact, _message_send_groupchat_subject(const char * const roomjid, const char * const subject)
{
xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *message = stanza_create_room_subject_message(ctx, roomjid, subject);
xmpp_send(conn, message);
xmpp_stanza_release(message);
}
static void
_message_send_invite(const char * const roomjid, const char * const contact,
const char * const reason) const char * const reason)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *stanza = stanza_create_invite(ctx, room, contact, reason); xmpp_stanza_t *stanza = stanza_create_invite(ctx, roomjid, contact, reason);
xmpp_send(conn, stanza); xmpp_send(conn, stanza);
xmpp_stanza_release(stanza); xmpp_stanza_release(stanza);
} }
static void static void
_message_send_composing(const char * const recipient) _message_send_composing(const char * const barejid)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient, xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
STANZA_NAME_COMPOSING); STANZA_NAME_COMPOSING);
xmpp_send(conn, stanza); xmpp_send(conn, stanza);
xmpp_stanza_release(stanza); xmpp_stanza_release(stanza);
chat_session_set_sent(recipient); chat_session_set_sent(barejid);
} }
static void static void
_message_send_paused(const char * const recipient) _message_send_paused(const char * const barejid)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient, xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
STANZA_NAME_PAUSED); STANZA_NAME_PAUSED);
xmpp_send(conn, stanza); xmpp_send(conn, stanza);
xmpp_stanza_release(stanza); xmpp_stanza_release(stanza);
chat_session_set_sent(recipient); chat_session_set_sent(barejid);
} }
static void static void
_message_send_inactive(const char * const recipient) _message_send_inactive(const char * const barejid)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient, xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
STANZA_NAME_INACTIVE); STANZA_NAME_INACTIVE);
xmpp_send(conn, stanza); xmpp_send(conn, stanza);
xmpp_stanza_release(stanza); xmpp_stanza_release(stanza);
chat_session_set_sent(recipient); chat_session_set_sent(barejid);
} }
static void static void
_message_send_gone(const char * const recipient) _message_send_gone(const char * const barejid)
{ {
xmpp_conn_t * const conn = connection_get_conn(); xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_ctx_t * const ctx = connection_get_ctx();
xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, recipient, xmpp_stanza_t *stanza = stanza_create_chat_state(ctx, barejid,
STANZA_NAME_GONE); STANZA_NAME_GONE);
xmpp_send(conn, stanza); xmpp_send(conn, stanza);
xmpp_stanza_release(stanza); xmpp_stanza_release(stanza);
chat_session_set_sent(recipient); chat_session_set_sent(barejid);
} }
static int static int
@ -505,7 +515,8 @@ _chat_handler(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza,
void void
message_init_module(void) message_init_module(void)
{ {
message_send = _message_send; message_send_chat = _message_send_chat;
message_send_private = _message_send_private;
message_send_groupchat = _message_send_groupchat; message_send_groupchat = _message_send_groupchat;
message_send_invite = _message_send_invite; message_send_invite = _message_send_invite;
message_send_composing = _message_send_composing; message_send_composing = _message_send_composing;

@ -154,14 +154,16 @@ char* (*jabber_get_account_name)(void);
GList * (*jabber_get_available_resources)(void); GList * (*jabber_get_available_resources)(void);
// message functions // message functions
void (*message_send)(const char * const msg, const char * const recipient); void (*message_send_chat)(const char * const barejid, const char * const msg);
void (*message_send_groupchat)(const char * const msg, const char * const recipient); void (*message_send_private)(const char * const fulljid, const char * const msg);
void (*message_send_groupchat_subject)(const char * const room, const char * const subject); void (*message_send_groupchat)(const char * const roomjid, const char * const msg);
void (*message_send_groupchat_subject)(const char * const roomjid, const char * const subject);
void (*message_send_inactive)(const char * const barejid);
void (*message_send_composing)(const char * const barejid);
void (*message_send_paused)(const char * const barejid);
void (*message_send_gone)(const char * const barejid);
void (*message_send_inactive)(const char * const recipient);
void (*message_send_composing)(const char * const recipient);
void (*message_send_paused)(const char * const recipient);
void (*message_send_gone)(const char * const recipient);
void (*message_send_invite)(const char * const room, const char * const contact, void (*message_send_invite)(const char * const room, const char * const contact,
const char * const reason); const char * const reason);

@ -458,8 +458,6 @@ void cmd_otr_theirfp_shows_fingerprint(void **state)
mock_connection_status(JABBER_CONNECTED); mock_connection_status(JABBER_CONNECTED);
mock_current_win_type(WIN_CHAT); mock_current_win_type(WIN_CHAT);
ui_current_win_is_otr_returns(TRUE); ui_current_win_is_otr_returns(TRUE);
mock_ui_current_recipient();
ui_current_recipient_returns(recipient);
mock_ui_current_print_formatted_line(); mock_ui_current_print_formatted_line();
GString *message = g_string_new(recipient); GString *message = g_string_new(recipient);
@ -554,10 +552,9 @@ cmd_otr_start_sends_otr_query_message_to_current_recipeint(void **state)
mock_current_win_type(WIN_CHAT); mock_current_win_type(WIN_CHAT);
ui_current_win_is_otr_returns(FALSE); ui_current_win_is_otr_returns(FALSE);
otr_key_loaded_returns(TRUE); otr_key_loaded_returns(TRUE);
ui_current_recipient_returns(recipient);
otr_start_query_returns(query_message); otr_start_query_returns(query_message);
message_send_expect(query_message, recipient); message_send_chat_expect(query_message, recipient);
gboolean result = cmd_otr(args, *help); gboolean result = cmd_otr(args, *help);
assert_true(result); assert_true(result);

@ -93,12 +93,6 @@ win_type_t _mock_ui_current_win_type(void)
return (win_type_t)mock(); return (win_type_t)mock();
} }
static
char * _mock_ui_current_recipeint(void)
{
return mock_ptr_type(char *);
}
static static
void _mock_ui_handle_error(const char * const err_msg) void _mock_ui_handle_error(const char * const err_msg)
{ {
@ -247,12 +241,6 @@ mock_ui_ask_password(void)
ui_ask_password = _mock_ui_ask_password; ui_ask_password = _mock_ui_ask_password;
} }
void
mock_ui_current_recipient(void)
{
ui_current_recipient = _mock_ui_current_recipeint;
}
void void
stub_ui_ask_password(void) stub_ui_ask_password(void)
{ {
@ -406,12 +394,6 @@ mock_current_win_type(win_type_t type)
will_return(_mock_ui_current_win_type, type); will_return(_mock_ui_current_win_type, type);
} }
void
ui_current_recipient_returns(char *jid)
{
will_return(_mock_ui_current_recipeint, jid);
}
void void
ui_current_print_formatted_line_expect(char show_char, int attrs, char *message) ui_current_print_formatted_line_expect(char show_char, int attrs, char *message)
{ {

@ -82,10 +82,10 @@ _mock_bookmark_remove(const char *jid)
} }
static void static void
_mock_message_send(const char * const msg, const char * const recipient) _mock_message_send_chat(const char * const recipient, const char * const msg)
{ {
check_expected(msg);
check_expected(recipient); check_expected(recipient);
check_expected(msg);
} }
static void static void
@ -289,11 +289,11 @@ expect_and_return_bookmark_remove(char *expected_jid, gboolean removed)
} }
void void
message_send_expect(char *message, char *recipient) message_send_chat_expect(char *recipient, char *message)
{ {
message_send = _mock_message_send; message_send_chat = _mock_message_send_chat;
expect_string(_mock_message_send, msg, message);
expect_string(_mock_message_send, recipient, recipient); expect_string(_mock_message_send, recipient, recipient);
expect_string(_mock_message_send, msg, message);
} }
void void

@ -30,7 +30,7 @@ void expect_and_return_bookmark_add(char *expected_jid, char *expected_nick,
void mock_bookmark_remove(void); void mock_bookmark_remove(void);
void expect_and_return_bookmark_remove(char *expected_jid, gboolean removed); void expect_and_return_bookmark_remove(char *expected_jid, gboolean removed);
void message_send_expect(char *message, char *recipient); void message_send_chat_expect(char *message, char *recipient);
void mock_presence_join_room(void); void mock_presence_join_room(void);
void presence_join_room_expect(char *room, char *nick, char *passwd); void presence_join_room_expect(char *room, char *nick, char *passwd);