EmpathyChatPriv *priv = GET_PRIV (chat);
EmpathyAccount *account;
- account = empathy_account_manager_get_account (manager, connection);
+ account = empathy_account_manager_get_account_for_connection (manager,
+ connection);
if (!priv->tp_chat && account == priv->account &&
priv->handle_type != TP_HANDLE_TYPE_NONE &&
!EMP_STR_EMPTY (priv->id)) {
chat_sent_message_add (chat, msg);
- if (g_str_has_prefix (msg, "/clear")) {
+ if (strcmp (msg, "/clear") == 0) {
empathy_chat_view_clear (chat->view);
return;
}
- /* Blacklist messages begining by '/', except for "/me" and "/say"
- * because they are handled in EmpathyMessage */
- if (msg[0] == '/' &&
- !g_str_has_prefix (msg, "/me") &&
- !g_str_has_prefix (msg, "/say")) {
+ message = empathy_message_new_from_entry (msg);
+
+ if (message == NULL) {
empathy_chat_view_append_event (chat->view,
_("Unsupported command"));
- return;
+ } else {
+ empathy_tp_chat_send (priv->tp_chat, message);
+ g_object_unref (message);
}
-
- /* We can send the message */
- message = empathy_message_new (msg);
- empathy_tp_chat_send (priv->tp_chat, message);
- g_object_unref (message);
}
static void
static void
chat_send_error_cb (EmpathyTpChat *tp_chat,
- EmpathyMessage *message,
+ const gchar *message_body,
TpChannelTextSendError error_code,
EmpathyChat *chat)
{
}
str = g_strdup_printf (_("Error sending message '%s': %s"),
- empathy_message_get_body (message),
+ message_body,
error);
empathy_chat_view_append_event (chat->view, str);
g_free (str);
break;
case TP_CHANNEL_GROUP_CHANGE_REASON_KICKED:
if (actor_name != NULL) {
- g_string_append_printf (s, _("%s was kicked by %s"),
+ /* translators: reverse the order of these arguments
+ * if the kicked should come before the kicker in your locale.
+ */
+ g_string_append_printf (s, _("%1$s was kicked by %2$s"),
name, actor_name);
} else {
g_string_append_printf (s, _("%s was kicked"), name);
break;
case TP_CHANNEL_GROUP_CHANGE_REASON_BANNED:
if (actor_name != NULL) {
- g_string_append_printf (s, _("%s was banned by %s"),
+ /* translators: reverse the order of these arguments
+ * if the banned should come before the banner in your locale.
+ */
+ g_string_append_printf (s, _("%1$s was banned by %2$s"),
name, actor_name);
} else {
g_string_append_printf (s, _("%s was banned"), name);
priv->tp_chat = g_object_ref (tp_chat);
connection = empathy_tp_chat_get_connection (priv->tp_chat);
- priv->account = empathy_account_manager_get_account (priv->account_manager,
+ priv->account = empathy_account_manager_get_account_for_connection (
+ priv->account_manager,
connection);
g_object_ref (priv->account);