[PATCHv3 5/6] shared/hfp: Add function to get string
flat view
STALE4621d
From: Marcin Kraglak <hidden>
Date: 2014-02-28 09:22:37
Subsystem:
the rest · Maintainer:
Linus Torvalds
It will look for quoted sting and write it to given buffer. --- src/shared/hfp.c | 33 +++++++++++++++++++++++++++++++++ src/shared/hfp.h | 2 ++ 2 files changed, 35 insertions(+)
diff --git a/src/shared/hfp.c b/src/shared/hfp.c
index 7f576d9..08b72a3 100644
--- a/src/shared/hfp.c
+++ b/src/shared/hfp.c@@ -277,6 +277,39 @@ bool hfp_gw_result_close_container(struct hfp_gw_result *result) return true; } +bool hfp_gw_result_get_string(struct hfp_gw_result *result, char *buf, + uint8_t len) +{ + int i = 0; + const char *data = result->data; + + skip_whitespace(result); + + if (data[result->offset] != '"') + return false; + + result->offset++; + + while (data[result->offset] != '\0' && data[result->offset] != '"') { + if (i < len) + buf[i++] = data[result->offset]; + result->offset++; + } + + if (i < len) + buf[i++] = '\0'; + + if (data[result->offset] == '"') + result->offset++; + else + return false; + + skip_whitespace(result); + next_field(result); + + return true; +} + static void process_input(struct hfp_gw *hfp) { char *str, *ptr;
diff --git a/src/shared/hfp.h b/src/shared/hfp.h
index 46067b7..84b5016 100644
--- a/src/shared/hfp.h
+++ b/src/shared/hfp.h@@ -116,3 +116,5 @@ bool hfp_gw_unregister_prefix_handler(struct hfp_gw *hfp, char *prefix); bool hfp_gw_result_get_number(struct hfp_gw_result *result, int *val); bool hfp_gw_result_open_container(struct hfp_gw_result *result); bool hfp_gw_result_close_container(struct hfp_gw_result *result); +bool hfp_gw_result_get_string(struct hfp_gw_result *result, char *buf, + uint8_t len);
--
1.8.5.3