summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bvrcommands.c5
1 files changed, 3 insertions, 2 deletions
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č!