/soc/2015/koosha/main: b1a13e0b7296: xmlnode.c: introduce two fu...
Koosha Khajehmoogahi
koosha at posteo.de
Mon Aug 10 10:17:34 EDT 2015
Changeset: b1a13e0b72967bf4133883f0bba2e6e3f7472ec9
Author: Koosha Khajehmoogahi <koosha at posteo.de>
Date: 2015-08-10 02:00 +0200
Branch: default
URL: https://hg.pidgin.im/soc/2015/koosha/main/rev/b1a13e0b7296
Description:
xmlnode.c: introduce two functions for checking boolean attributes
diffstat:
libpurple/protocols/jabber/jabber.c | 2 +-
libpurple/xmlnode.c | 9 +++++++++
libpurple/xmlnode.h | 16 ++++++++++++++++
3 files changed, 26 insertions(+), 1 deletions(-)
diffs (57 lines):
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -359,7 +359,7 @@ void jabber_stream_management_parse(Jabb
resume = purple_xmlnode_get_attrib(packet, "resume");
account = purple_connection_get_account(js->gc);
- resume_enabled = resume && (purple_strequal(resume, "1") || purple_strequal(resume, "true"));
+ resume_enabled = resume && purple_xmlnode_is_attrib_true(resume);
purple_debug_info( "jabber", "Stream management %s resumption is enabled.\n",
resume_enabled ? "with" : "without" );
diff --git a/libpurple/xmlnode.c b/libpurple/xmlnode.c
--- a/libpurple/xmlnode.c
+++ b/libpurple/xmlnode.c
@@ -255,6 +255,15 @@ purple_xmlnode_get_attrib_with_namespace
return NULL;
}
+gboolean purple_xmlnode_is_attrib_true(const char *attr)
+{
+ return (!g_ascii_strcasecmp(attr, "true") || !g_ascii_strcasecmp(attr, "1"));
+}
+
+gboolean purple_xmlnode_is_attrib_false(const char *attr)
+{
+ return !g_ascii_strcasecmp(attr, "false") || !g_ascii_strcasecmp(attr, "0");
+}
void purple_xmlnode_set_namespace(PurpleXmlNode *node, const char *xmlns)
{
diff --git a/libpurple/xmlnode.h b/libpurple/xmlnode.h
--- a/libpurple/xmlnode.h
+++ b/libpurple/xmlnode.h
@@ -242,6 +242,22 @@ const char *purple_xmlnode_get_attrib_wi
void purple_xmlnode_remove_attrib(PurpleXmlNode *node, const char *attr);
/**
+ * purple_xmlnode_is_attrib_true:
+ * @attrib: The attribute to check.
+ *
+ * Checks whether the given attribute has true value ("1" or "true")
+ */
+gboolean purple_xmlnode_is_attrib_true(const char *attrib);
+
+/**
+ * purple_xmlnode_is_attrib_false:
+ * @attrib: The attribute to check.
+ *
+ * Checks whether the given attribute has false value ("0" or "false")
+ */
+gboolean purple_xmlnode_is_attrib_false(const char *attrib);
+
+/**
* purple_xmlnode_remove_attrib_with_namespace:
* @node: The node to remove an attribute from
* @attr: The attribute to remove
More information about the Commits
mailing list