summaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2010-09-17 16:04:30 +0100
committerJonny Lamb <jonny.lamb@collabora.co.uk>2010-09-17 16:04:30 +0100
commitdbcc6bc084e74efed8493be9250803d4900a8ea1 (patch)
tree1a1313879357f70b432d5957da3fc5c7fff21ccc /src/util.c
parent43d0312f2710ca7cda69780c40d16824eadb4d11 (diff)
util: add gabble_flag_from_nick
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c
index 15dc1aee..ca249491 100644
--- a/src/util.c
+++ b/src/util.c
@@ -1406,3 +1406,29 @@ gabble_disco_identity_array_free (GPtrArray *arr)
g_ptr_array_free (arr, TRUE);
}
+
+/* Like wocky_enum_from_nick, but for GFlagsValues instead. */
+gboolean
+gabble_flag_from_nick (GType flag_type,
+ const gchar *nick,
+ guint *value)
+{
+ GFlagsClass *klass = g_type_class_ref (flag_type);
+ GFlagsValue *flag_value;
+
+ g_return_val_if_fail (klass != NULL, FALSE);
+ g_return_val_if_fail (value != NULL, FALSE);
+
+ flag_value = g_flags_get_value_by_nick (klass, nick);
+ g_type_class_unref (klass);
+
+ if (flag_value != NULL)
+ {
+ *value = flag_value->value;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}