Skip to content
Snippets Groups Projects
Commit d5a7a8a6 authored by Craig Tiller's avatar Craig Tiller
Browse files

Add missing function

parent 7cdad96f
No related branches found
No related tags found
No related merge requests found
...@@ -267,5 +267,28 @@ int gpr_stricmp(const char *a, const char *b) { ...@@ -267,5 +267,28 @@ int gpr_stricmp(const char *a, const char *b) {
return ca - cb; return ca - cb;
} }
static void add_string_to_split(const char *beg, const char *end, char ***strs,
size_t *nstrs, size_t *capstrs) {
char *out = gpr_malloc((size_t)(end - beg) + 1);
memcpy(out, beg, end - beg);
out[end - beg] = 0;
if (*nstrs == *capstrs) {
*capstrs = GPR_MAX(8, 2 * *capstrs);
*strs = gpr_realloc(*strs, sizeof(*strs) * *capstrs);
}
(*strs)[*nstrs] = out;
++*nstrs;
}
void gpr_string_split(const char *input, const char *sep, char ***strs, void gpr_string_split(const char *input, const char *sep, char ***strs,
size_t *nstrs) {} size_t *nstrs) {
char *next;
*strs = NULL;
*nstrs = 0;
size_t capstrs = 0;
while ((next = strstr(input, sep))) {
add_string_to_split(input, next, strs, nstrs, &capstrs);
input = next + strlen(sep);
}
add_string_to_split(input, input + strlen(input), strs, nstrs, &capstrs);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment