X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fgrab_file%2Ftest%2Frun-grab.c;h=c9f242609697423e38483af5b0181a5cd9b3fbc9;hp=060607d54fbd9dcb21fb85a4082dd689a0a82d20;hb=HEAD;hpb=a209c6d5be264dc0fc64cea6f9e750d44deaf157 diff --git a/ccan/grab_file/test/run-grab.c b/ccan/grab_file/test/run-grab.c index 060607d5..c9f24260 100644 --- a/ccan/grab_file/test/run-grab.c +++ b/ccan/grab_file/test/run-grab.c @@ -7,7 +7,30 @@ #include #include #include -#include +#include + +static char **strsplit(const void *ctx, const char *string, const char *delims) +{ + char **lines = NULL; + unsigned int max = 64, num = 0; + + lines = talloc_array(ctx, char *, max+1); + + while (*string != '\0') { + unsigned int len = strcspn(string, delims); + lines[num] = talloc_array(lines, char, len + 1); + memcpy(lines[num], string, len); + lines[num][len] = '\0'; + string += len; + string += strspn(string, delims) ? 1 : 0; + if (++num == max) + lines = talloc_realloc(ctx, lines, char *, max*=2 + 1); + } + lines[num] = NULL; + + /* Shrink, so talloc_get_size works */ + return talloc_realloc(ctx, lines, char *, num+1); +} int main(int argc, char *argv[])