[telepathy-gabble/master] util.c: factor out find_namespace_of_prefix
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Tue Jul 28 07:55:54 PDT 2009
---
src/util.c | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/src/util.c b/src/util.c
index 70977e9..7cf253e 100644
--- a/src/util.c
+++ b/src/util.c
@@ -174,6 +174,23 @@ lm_message_node_get_child_any_ns (LmMessageNode *node, const gchar *name)
return NULL;
}
+static const gchar *
+find_namespace_of_prefix (LmMessageNode *node,
+ const gchar *prefix)
+{
+ gchar *attr = g_strdup_printf ("xmlns:%s", prefix);
+ const gchar *node_ns = NULL;
+
+ /* find the namespace in this node or its parents */
+ for (; (node != NULL) && (node_ns == NULL); node = node->parent)
+ {
+ node_ns = lm_message_node_get_attribute (node, attr);
+ }
+
+ g_free (attr);
+ return node_ns;
+}
+
const gchar *
lm_message_node_get_namespace (LmMessageNode *node)
{
@@ -183,16 +200,9 @@ lm_message_node_get_namespace (LmMessageNode *node)
if (x != NULL)
{
gchar *prefix = g_strndup (node->name, (x - node->name));
- gchar *attr = g_strdup_printf ("xmlns:%s", prefix);
-
- /* find the namespace in this node or its parents */
- for (node_ns = NULL; (node != NULL) && (node_ns == NULL); node = node->parent)
- {
- node_ns = lm_message_node_get_attribute (node, attr);
- }
+ node_ns = find_namespace_of_prefix (node, prefix);
g_free (prefix);
- g_free (attr);
}
else
{
--
1.5.6.5
More information about the telepathy-commits
mailing list