diff --git a/src/shared/hfp.c b/src/shared/hfp.c
index 3256931..36c8c3e 100644
--- a/src/shared/hfp.c
+++ b/src/shared/hfp.c
{
int i = 0;
const char *data = result->data;
+ unsigned int offset;
skip_whitespace(result);
if (data[result->offset] != '"')
return false;
- result->offset++;
+ offset = result->offset;
+ offset++;
- while (data[result->offset] != '\0' && data[result->offset] != '"') {
+ while (data[offset] != '\0' && data[offset] != '"') {
if (i == len)
return false;
- buf[i++] = data[result->offset];
- result->offset++;
+ buf[i++] = data[offset];
+ offset++;
}
if (i == len)
buf[i] = '\0';
- if (data[result->offset] == '"')
- result->offset++;
+ if (data[offset] == '"')
+ offset++;
else
return false;
+ result->offset = offset;
+
skip_whitespace(result);
next_field(result);
uint8_t len)
{
const char *data = result->data;
+ unsigned int offset;
int i = 0;
char c;
if (c == '"' || c == ')' || c == '(')
return false;
- while (data[result->offset] != '\0' && data[result->offset] != ','
- && data[result->offset] != ')') {
+ offset = result->offset;
+
+ while (data[offset] != '\0' && data[offset] != ',' &&
+ data[offset] != ')') {
if (i == len)
return false;
- buf[i++] = data[result->offset];
- result->offset++;
+ buf[i++] = data[offset];
+ offset++;
}
if (i == len)
buf[i] = '\0';
+ result->offset = offset;
+
next_field(result);
return true;