diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-modem-helpers.c | 20 | ||||
-rw-r--r-- | src/mm-modem-helpers.h | 9 | ||||
-rw-r--r-- | src/tests/test-modem-helpers.c | 8 |
3 files changed, 25 insertions, 12 deletions
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c index 30dc54bb..78b0b818 100644 --- a/src/mm-modem-helpers.c +++ b/src/mm-modem-helpers.c @@ -888,17 +888,19 @@ mm_create_device_identifier (guint vid, struct CindResponse { char *desc; + gint idx; gint min; gint max; }; static CindResponse * -cind_response_new (const char *desc, gint min, gint max) +cind_response_new (const char *desc, gint idx, gint min, gint max) { CindResponse *r; char *p; g_return_val_if_fail (desc != NULL, NULL); + g_return_val_if_fail (idx >= 0, NULL); r = g_malloc0 (sizeof (CindResponse)); @@ -910,6 +912,7 @@ cind_response_new (const char *desc, gint min, gint max) desc++; } + r->idx = idx; r->max = max; r->min = min; return r; @@ -934,9 +937,17 @@ cind_response_get_desc (CindResponse *r) } gint +cind_response_get_index (CindResponse *r) +{ + g_return_val_if_fail (r != NULL, -1); + + return r->idx; +} + +gint cind_response_get_min (CindResponse *r) { - g_return_val_if_fail (r != NULL, 0); + g_return_val_if_fail (r != NULL, -1); return r->min; } @@ -944,7 +955,7 @@ cind_response_get_min (CindResponse *r) gint cind_response_get_max (CindResponse *r) { - g_return_val_if_fail (r != NULL, 0); + g_return_val_if_fail (r != NULL, -1); return r->max; } @@ -957,6 +968,7 @@ mm_parse_cind_response (const char *reply, GError **error) GHashTable *hash; GRegex *r; GMatchInfo *match_info; + gint idx = 0; g_return_val_if_fail (reply != NULL, NULL); @@ -992,7 +1004,7 @@ mm_parse_cind_response (const char *reply, GError **error) max = atoi (tmp); g_free (tmp); - resp = cind_response_new (desc, min, max); + resp = cind_response_new (desc, idx++, min, max); if (resp) g_hash_table_insert (hash, g_strdup (resp->desc), resp); diff --git a/src/mm-modem-helpers.h b/src/mm-modem-helpers.h index 21f174a2..ed3ada0f 100644 --- a/src/mm-modem-helpers.h +++ b/src/mm-modem-helpers.h @@ -70,10 +70,11 @@ char *mm_create_device_identifier (guint vid, gboolean debug); typedef struct CindResponse CindResponse; -GHashTable *mm_parse_cind_response (const char *reply, GError **error); -const char *cind_response_get_desc (CindResponse *r); -gint cind_response_get_min (CindResponse *r); -gint cind_response_get_max (CindResponse *r); +GHashTable *mm_parse_cind_response (const char *reply, GError **error); +const char *cind_response_get_desc (CindResponse *r); +gint cind_response_get_index (CindResponse *r); +gint cind_response_get_min (CindResponse *r); +gint cind_response_get_max (CindResponse *r); #endif /* MM_MODEM_HELPERS_H */ diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c index db18b25d..5627416a 100644 --- a/src/tests/test-modem-helpers.c +++ b/src/tests/test-modem-helpers.c @@ -1103,13 +1103,13 @@ test_cind_results (const char *desc, for (i = 0; i < expected_results_len; i++) { CindEntry *expected = &expected_results[i]; - CindEntry *compare; + CindResponse *compare; compare = g_hash_table_lookup (results, expected->desc); g_assert (compare); - - g_assert_cmpint (expected->min, ==, compare->min); - g_assert_cmpint (expected->max, ==, compare->max); + g_assert_cmpint (i, ==, cind_response_get_index (compare)); + g_assert_cmpint (expected->min, ==, cind_response_get_min (compare)); + g_assert_cmpint (expected->max, ==, cind_response_get_max (compare)); } g_hash_table_destroy (results); |