summaryrefslogtreecommitdiff
path: root/src/text-helper.c
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2007-06-14 09:27:11 +0000
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2007-06-14 09:27:11 +0000
commit304d5e33a45f6f1d469c7b54b041ffc99a554e55 (patch)
tree37761d26c9e0e895a1246630af27d4ee18276af8 /src/text-helper.c
parentb0b1c83f78e2a5be60ef7d1f05a1ee5477026768 (diff)
downloadtelepathy-salut-304d5e33a45f6f1d469c7b54b041ffc99a554e55.tar.gz
text-helper: add text_helper_create_message_groupchat
20070614092711-7fe3f-6bb01027e7c056509dffa821d5fca7d02144b439.gz
Diffstat (limited to 'src/text-helper.c')
-rw-r--r--src/text-helper.c103
1 files changed, 75 insertions, 28 deletions
diff --git a/src/text-helper.c b/src/text-helper.c
index 1ed91b17..33b7ff7c 100644
--- a/src/text-helper.c
+++ b/src/text-helper.c
@@ -52,48 +52,95 @@ add_text(GibberXmppStanza *stanza, const gchar *text) {
"body", text, GIBBER_W3C_NS_XHTML);
}
-GibberXmppStanza *
-text_helper_create_message(const gchar *from, const gchar *to,
- TpChannelTextMessageType type,
- const gchar *text,
- GError **error)
+GibberXmppStanza *
+create_message_stanza (const gchar *from,
+ const gchar *to,
+ TpChannelTextMessageType type,
+ const gchar *text,
+ GError **error)
{
GibberXmppStanza *stanza;
- if (type > TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE) {
- DEBUG ("invalid message type %u", type);
+ if (type > TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE)
+ {
+ DEBUG ("invalid message type %u", type);
- g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
- "invalid message type: %u", type);
+ g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
+ "invalid message type: %u", type);
- return NULL;
- }
- stanza = gibber_xmpp_stanza_new("message");
-
- switch (type) {
- case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
- case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION:
- gibber_xmpp_node_set_attribute(stanza->node, "type", "chat");
- break;
- case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE:
- case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY:
- gibber_xmpp_node_set_attribute(stanza->node, "type", "normal");
- break;
- }
-
- gibber_xmpp_node_set_attribute(stanza->node, "from", from);
- gibber_xmpp_node_set_attribute(stanza->node, "to", to);
+ return NULL;
+ }
+ stanza = gibber_xmpp_stanza_new ("message");
+
+ gibber_xmpp_node_set_attribute (stanza->node, "from", from);
+ gibber_xmpp_node_set_attribute (stanza->node, "to", to);
if (type == TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION)
{
gchar *tmp;
tmp = g_strconcat ("/me ", text, NULL);
- add_text(stanza, tmp);
+ add_text (stanza, tmp);
g_free (tmp);
}
else
{
- add_text(stanza, text);
+ add_text (stanza, text);
+ }
+
+ return stanza;
+}
+
+GibberXmppStanza *
+text_helper_create_message (const gchar *from,
+ const gchar *to,
+ TpChannelTextMessageType type,
+ const gchar *text,
+ GError **error)
+{
+ GibberXmppStanza *stanza;
+
+ stanza = create_message_stanza (from, to, type, text, error);
+ if (stanza == NULL)
+ return NULL;
+
+ switch (type)
+ {
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION:
+ gibber_xmpp_node_set_attribute (stanza->node, "type", "chat");
+ break;
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE:
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY:
+ gibber_xmpp_node_set_attribute (stanza->node, "type", "normal");
+ break;
+ }
+
+ return stanza;
+}
+
+GibberXmppStanza *
+text_helper_create_message_groupchat (const gchar *from,
+ const gchar *to,
+ TpChannelTextMessageType type,
+ const gchar *text,
+ GError **error)
+{
+ GibberXmppStanza *stanza;
+
+ stanza = create_message_stanza (from, to, type, text, error);
+ if (stanza == NULL)
+ return NULL;
+
+ switch (type)
+ {
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_NORMAL:
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_ACTION:
+ gibber_xmpp_node_set_attribute (stanza->node, "type", "groupchat");
+ break;
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_NOTICE:
+ case TP_CHANNEL_TEXT_MESSAGE_TYPE_AUTO_REPLY:
+ gibber_xmpp_node_set_attribute (stanza->node, "type", "normal");
+ break;
}
return stanza;