diff options
author | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2010-09-17 16:04:30 +0100 |
---|---|---|
committer | Jonny Lamb <jonny.lamb@collabora.co.uk> | 2010-09-17 16:04:30 +0100 |
commit | dbcc6bc084e74efed8493be9250803d4900a8ea1 (patch) | |
tree | 1a1313879357f70b432d5957da3fc5c7fff21ccc /src/util.c | |
parent | 43d0312f2710ca7cda69780c40d16824eadb4d11 (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.c | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -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; + } +} |