aboutsummaryrefslogtreecommitdiff
path: root/libmm-common/mm-common-helpers.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-12-26 21:26:23 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:37 +0100
commitd81d1d9d6a05e8c0024e887158c585c0c1540633 (patch)
treeb47ed9807a7b5ae0b7ed3e7608fa0d88b04b92c8 /libmm-common/mm-common-helpers.c
parent9868d757c75f8d06ca435ae99bc8caa8f36a00ac (diff)
libmm-common: handle exact mask matches when building capabilities string
Diffstat (limited to 'libmm-common/mm-common-helpers.c')
-rw-r--r--libmm-common/mm-common-helpers.c34
1 files changed, 21 insertions, 13 deletions
diff --git a/libmm-common/mm-common-helpers.c b/libmm-common/mm-common-helpers.c
index 2b851d65..c36c4d99 100644
--- a/libmm-common/mm-common-helpers.c
+++ b/libmm-common/mm-common-helpers.c
@@ -23,25 +23,33 @@ mm_common_get_capabilities_string (MMModemCapability caps)
{
GFlagsClass *flags_class;
GString *str;
- MMModemCapability it;
- gboolean first = TRUE;
str = g_string_new ("");
flags_class = G_FLAGS_CLASS (g_type_class_ref (MM_TYPE_MODEM_CAPABILITY));
- for (it = MM_MODEM_CAPABILITY_POTS; /* first */
- it <= MM_MODEM_CAPABILITY_LTE_ADVANCED; /* last */
- it = it << 1) {
- if (caps & it) {
- GFlagsValue *value;
+ if (caps == MM_MODEM_CAPABILITY_NONE) {
+ GFlagsValue *value;
+
+ value = g_flags_get_first_value (flags_class, caps);
+ g_string_append (str, value->value_nick);
+ } else {
+ MMModemCapability it;
+ gboolean first = TRUE;
+
+ for (it = MM_MODEM_CAPABILITY_POTS; /* first */
+ it <= MM_MODEM_CAPABILITY_LTE_ADVANCED; /* last */
+ it = it << 1) {
+ if (caps & it) {
+ GFlagsValue *value;
- value = g_flags_get_first_value (flags_class, it);
- g_string_append_printf (str, "%s%s",
- first ? "" : ", ",
- value->value_nick);
+ value = g_flags_get_first_value (flags_class, it);
+ g_string_append_printf (str, "%s%s",
+ first ? "" : ", ",
+ value->value_nick);
- if (first)
- first = FALSE;
+ if (first)
+ first = FALSE;
+ }
}
}
g_type_class_unref (flags_class);