From a494deed8bfe2d315917388465a39b5804e31a83 Mon Sep 17 00:00:00 2001 From: sijanec Date: Tue, 19 Jan 2021 23:35:10 +0100 Subject: ?e now explodes empty strings too --- bin/bvr-compose-html | Bin 36712 -> 36712 bytes bin/bvr-compose-single | Bin 36568 -> 36568 bytes src/bvrcommands.c | 5 +++-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/bvr-compose-html b/bin/bvr-compose-html index fdfd428..e311aeb 100755 Binary files a/bin/bvr-compose-html and b/bin/bvr-compose-html differ diff --git a/bin/bvr-compose-single b/bin/bvr-compose-single index ad757b6..1ef4359 100755 Binary files a/bin/bvr-compose-single and b/bin/bvr-compose-single differ diff --git a/src/bvrcommands.c b/src/bvrcommands.c index a1738dc..f160731 100644 --- a/src/bvrcommands.c +++ b/src/bvrcommands.c @@ -510,7 +510,8 @@ int bvr_handle_explode(FILE * input, FILE * output) { char * string1 = bvr_var_get(item); char * string2 = bvr_var_get(value); char * token; - char * rest = string1; + char * rest = malloc(sizeof(char)*(strlen(string1)+1)); + strcpy(rest, string1); char * charpointer; int index = strlen(item); size_t len = 0; @@ -518,7 +519,7 @@ int bvr_handle_explode(FILE * input, FILE * output) { item[index++] = '['; item[index] = '\0'; index = 0; - while ((token = strtok_r(rest, string2, &rest))) { + while ((token = strsep(&rest, string2))) { // strsep handles empty strings as well charpointer = strrchr(item, BVR_ARRAY_INDEX_CHAR); sprintf(charpointer+1, "%d" BVR_ARRAY_AFTER_INDEX, index++); /* keys must always have 128 bytes more space allocated */ return_value = return_value != SUCCESS ? return_value : bvr_var_set(item, token); // če je bila prej napaka pač ne poskušamo več! -- cgit v1.2.3