}
}
/* word boundary not found yet */
- tok_append_truncated(tok, data + start, i - start);
+ if (i > start)
+ tok_append_truncated(tok, data + start, i - start);
*skip_r = i;
/* return the last token */
}
}
i_assert(i >= start_pos && size >= start_pos);
- tok_append_truncated(tok, data + start_pos, i - start_pos);
+ if (i > start_pos)
+ tok_append_truncated(tok, data + start_pos, i - start_pos);
*skip_r = i;
if (size == 0 && tok->token->used > 0) {
} else {
/* continuing previous data */
i_assert(tok->prev_skip <= size);
- ret = tok->v->next(tok, data + tok->prev_skip,
+
+ const unsigned char *data_next;
+ if (data != NULL)
+ data_next = data + tok->prev_skip;
+ else {
+ i_assert(tok->prev_skip == 0 && size == 0);
+ data_next = NULL;
+ }
+ ret = tok->v->next(tok, data_next,
size - tok->prev_skip, &skip,
token_r, error_r);
}