diff options
Diffstat (limited to 'blob.c')
-rw-r--r-- | blob.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -189,6 +189,22 @@ unsigned int blob_pull_uint(blob_t *b, int radix) return val; } +blob_t blob_pull_spn(blob_t *b, const blob_t reject) +{ + blob_t t = *b; + int i; + + for (i = 0; i < t.len; i++) { + if (memchr(reject.ptr, t.ptr[i], reject.len) == NULL) { + *b = BLOB_PTR_LEN(t.ptr + i, t.len - i); + return BLOB_PTR_LEN(t.ptr, i); + } + } + + *b = BLOB_NULL; + return t; +} + blob_t blob_pull_cspn(blob_t *b, const blob_t reject) { blob_t t = *b; |