diff options
author | sijanec <anton@sijanec.eu> | 2021-01-19 14:24:46 +0100 |
---|---|---|
committer | sijanec <anton@sijanec.eu> | 2021-01-19 14:24:46 +0100 |
commit | 0725d1263f602f2088e3fab29f056231f9677e98 (patch) | |
tree | 77884f2ffb895a3afd352073ee05eed5a3172d9f /src/bvrcommands.c | |
parent | added while loops, simple intager math (diff) | |
download | bverbose-0725d1263f602f2088e3fab29f056231f9677e98.tar bverbose-0725d1263f602f2088e3fab29f056231f9677e98.tar.gz bverbose-0725d1263f602f2088e3fab29f056231f9677e98.tar.bz2 bverbose-0725d1263f602f2088e3fab29f056231f9677e98.tar.lz bverbose-0725d1263f602f2088e3fab29f056231f9677e98.tar.xz bverbose-0725d1263f602f2088e3fab29f056231f9677e98.tar.zst bverbose-0725d1263f602f2088e3fab29f056231f9677e98.zip |
Diffstat (limited to 'src/bvrcommands.c')
-rw-r--r-- | src/bvrcommands.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/bvrcommands.c b/src/bvrcommands.c index a3c5dba..b7d14e3 100644 --- a/src/bvrcommands.c +++ b/src/bvrcommands.c @@ -414,6 +414,23 @@ int bvr_handle_while(FILE * input, FILE * output) { fflush(output); return return_value; } +int bvr_handle_join(FILE * input, FILE * output) { + char operation = fgetc(input); + int return_value = SUCCESS; + char chars_to_break_value[69] = " "; + strlcat(chars_to_break_value, BVR_CHARS_TO_BREAK_VALUE, sizeof(chars_to_break_value)); + char * item = bvr_commands_get_value(input, chars_to_break_value); + char * value = bvr_commands_get_value(input, chars_to_break_value); + char * stvar1 = bvr_var_get(item); + char * stvar2 = bvr_var_get(value); + strncat(stvar1, stvar2, (BVR_MAX_VARIABLE_SIZE-strlen(stvar1))-1); + return_value = bvr_var_set(item, stvar1); + free(item); + free(value); + item = NULL; + value = NULL; + return return_value; +} int bvr_handle_math(FILE * input, FILE * output) { char operation = fgetc(input); int return_value = SUCCESS; @@ -467,14 +484,21 @@ int bvr_handle_explode(FILE * input, FILE * output) { char * rest = string1; char * charpointer; int index = strlen(item); + size_t len = 0; + char lenst[69]; item[index++] = '['; item[index] = '\0'; index = 0; while ((token = strtok_r(rest, string2, &rest))) { charpointer = strrchr(item, BVR_ARRAY_INDEX_CHAR); snprintf(charpointer+1, (BVR_MAX_VARIABLE_SIZE-(charpointer-string1))-4, "%d" BVR_ARRAY_AFTER_INDEX, index++); - return_value = return_value != SUCCESS ? return_value : bvr_var_set(charpointer, token); // če je bila prej napaka pač ne poskušamo več! + return_value = return_value != SUCCESS ? return_value : bvr_var_set(item, token); // če je bila prej napaka pač ne poskušamo več! + len++; } + charpointer = strrchr(item, BVR_ARRAY_INDEX_CHAR); + snprintf(charpointer+1, (BVR_MAX_VARIABLE_SIZE-(charpointer-string1))-4, "#" BVR_ARRAY_AFTER_INDEX, index++); + snprintf(lenst, 69-1, "%lu", len); + return_value = return_value != SUCCESS ? return_value : bvr_var_set(item, lenst); free(item); free(value); item = NULL; |