2003-06-11 Mikael Hallendal <micke@codefactory.se>
* docs/reference/loudmouth-sections.txt: Added new functions
* loudmouth/lm-message-node.c:
(_lm_message_node_new): Set node->raw_mode = FALSE.
(lm_message_node_get_raw_mode): Added
(lm_message_node_set_raw_mode): Added
(lm_message_node_to_string): Don't escape if raw_mode == TRUE
* loudmouth/lm-message-node.h: Added new functions.
--- a/ChangeLog Mon May 26 01:50:43 2003 +0000
+++ b/ChangeLog Wed Jun 11 16:44:10 2003 +0000
@@ -1,3 +1,15 @@
+2003-06-11 Mikael Hallendal <micke@codefactory.se>
+
+ * docs/reference/loudmouth-sections.txt: Added new functions
+
+ * loudmouth/lm-message-node.c:
+ (_lm_message_node_new): Set node->raw_mode = FALSE.
+ (lm_message_node_get_raw_mode): Added
+ (lm_message_node_set_raw_mode): Added
+ (lm_message_node_to_string): Don't escape if raw_mode == TRUE
+
+ * loudmouth/lm-message-node.h: Added new functions.
+
2003-04-26 Mikael Hallendal <micke@codefactory.se>
* loudmouth.spec.in: Enable gtk-doc
--- a/docs/reference/loudmouth-sections.txt Mon May 26 01:50:43 2003 +0000
+++ b/docs/reference/loudmouth-sections.txt Wed Jun 11 16:44:10 2003 +0000
@@ -53,6 +53,8 @@
lm_message_node_set_attribute
lm_message_node_get_child
lm_message_node_find_child
+lm_message_node_get_raw_mode
+lm_message_node_set_raw_mode
lm_message_node_ref
lm_message_node_unref
lm_message_node_to_string
--- a/loudmouth/lm-message-node.c Mon May 26 01:50:43 2003 +0000
+++ b/loudmouth/lm-message-node.c Wed Jun 11 16:44:10 2003 +0000
@@ -92,6 +92,7 @@
node->name = g_ascii_strdown (name, -1);
node->value = NULL;
+ node->raw_mode = FALSE;
node->attributes = NULL;
node->next = NULL;
node->prev = NULL;
@@ -350,6 +351,37 @@
}
/**
+ * lm_message_node_get_raw_mode:
+ * @node: an #LmMessageNode
+ *
+ * Checks if the nodes value should be sent as raw mode.
+ *
+ * Return value: %TRUE if nodes value should be sent as is and %FALSE if the value will be escaped before sending.
+ **/
+gboolean
+lm_message_node_get_raw_mode (LmMessageNode *node)
+{
+ g_return_val_if_fail (node != NULL, FALSE);
+
+ return node->raw_mode;
+}
+
+/**
+ * lm_message_node_set_raw_mode:
+ * @node: an #LmMessageNode
+ * @raw_mode: boolean specifying if node value should be escaped or not.
+ *
+ * Set @raw_mode to %TRUE if you don't want to escape the value. You need to make sure the value is valid XML yourself.
+ **/
+void
+lm_message_node_set_raw_mode (LmMessageNode *node, gboolean raw_mode)
+{
+ g_return_if_fail (node != NULL);
+
+ node->raw_mode = raw_mode;
+}
+
+/**
* lm_message_node_ref:
* @node: an #LmMessageNode
*
@@ -430,10 +462,14 @@
str = ret_val;
- tmp = g_markup_escape_text (node->value, -1);
- ret_val = g_strconcat (str, tmp, NULL);
+ if (node->raw_mode == FALSE) {
+ tmp = g_markup_escape_text (node->value, -1);
+ ret_val = g_strconcat (str, tmp, NULL);
+ g_free (tmp);
+ } else {
+ ret_val = g_strconcat (str, node->value, NULL);
+ }
g_free (str);
- g_free (tmp);
}
for (child = node->children; child; child = child->next) {
--- a/loudmouth/lm-message-node.h Mon May 26 01:50:43 2003 +0000
+++ b/loudmouth/lm-message-node.h Wed Jun 11 16:44:10 2003 +0000
@@ -26,7 +26,6 @@
#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
#endif
-
#include <glib.h>
typedef struct _LmMessageNode LmMessageNode;
@@ -34,6 +33,7 @@
struct _LmMessageNode {
gchar *name;
gchar *value;
+ gboolean raw_mode;
LmMessageNode *next;
LmMessageNode *prev;
@@ -63,6 +63,9 @@
const gchar *child_name);
LmMessageNode *lm_message_node_find_child (LmMessageNode *message_node,
const gchar *child_name);
+gboolean lm_message_node_get_raw_mode (LmMessageNode *node);
+void lm_message_node_set_raw_mode (LmMessageNode *node,
+ gboolean raw_mode);
LmMessageNode *lm_message_node_ref (LmMessageNode *node);
void lm_message_node_unref (LmMessageNode *node);
gchar * lm_message_node_to_string (LmMessageNode *node);