X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=util%2Fstring-util.h;h=fb95a7402c892ebd95374148073796701ecc3a7c;hp=4c110a205ccfb5b2684183e79ca2147d1c891b69;hb=HEAD;hpb=8dcc38ce85ce084d3f0f3cbeac7e4a768e651614 diff --git a/util/string-util.h b/util/string-util.h index 4c110a20..80647c5f 100644 --- a/util/string-util.h +++ b/util/string-util.h @@ -26,6 +26,20 @@ char *strtok_len (char *s, const char *delim, size_t *len); /* Const version of strtok_len. */ const char *strtok_len_c (const char *s, const char *delim, size_t *len); +/* Simplified version of strtok_len, with a single delimiter. + * Handles escaping delimiters with \ + * Usage pattern: + * + * const char *tok = input; + * const char *delim = ';'; + * size_t tok_len = 0; + * + * while ((tok = strsplit_len (tok + tok_len, delim, &tok_len)) != NULL) { + * // do stuff with string tok of length tok_len + * } + */ +const char *strsplit_len (const char *s, char delim, size_t *len); + /* Return a talloced string with str sanitized. * * Whitespace characters (tabs and newlines) are replaced with spaces, @@ -77,7 +91,7 @@ unsigned int strcase_hash (const void *ptr); void strip_trailing (char *str, char ch); -const char* skip_space (const char *str); +const char *skip_space (const char *str); #ifdef __cplusplus }