/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