diff options
Diffstat (limited to 'gatchat/gatresult.c')
-rw-r--r-- | gatchat/gatresult.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gatchat/gatresult.c b/gatchat/gatresult.c index 8a6dfae4..f9924869 100644 --- a/gatchat/gatresult.c +++ b/gatchat/gatresult.c @@ -292,6 +292,36 @@ gboolean g_at_result_iter_next_number(GAtResultIter *iter, gint *number) return TRUE; } +gboolean g_at_result_iter_next_number_default(GAtResultIter *iter, gint dflt, + gint *number) +{ + unsigned int pos; + int len; + char *line; + + if (iter == NULL) + return FALSE; + + if (iter->l == NULL) + return FALSE; + + line = iter->l->data; + len = strlen(line); + + pos = skip_to_next_field(line, iter->line_pos, len); + + if (pos != iter->line_pos) { + iter->line_pos = pos; + + if (number) + *number = dflt; + + return TRUE; + } + + return g_at_result_iter_next_number(iter, number); +} + gboolean g_at_result_iter_next_range(GAtResultIter *iter, gint *min, gint *max) { int pos; |