From f80f005c602654abe137f152a5128c8abd81f9a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20L=2E=20=C5=A0ijanec?= Date: Sun, 3 May 2020 21:00:05 +0200 Subject: variables setting and getting now works from bvr scripts note to future self: don't make this a turing complete language --- src/bvrcommands.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 src/bvrcommands.c (limited to 'src/bvrcommands.c') diff --git a/src/bvrcommands.c b/src/bvrcommands.c new file mode 100644 index 0000000..2e0761b --- /dev/null +++ b/src/bvrcommands.c @@ -0,0 +1,92 @@ +#pragma once +#include +#include +char bvr_var_skip_separator_chars(FILE * input) { + char input_char = fgetc(input); + while(input_char == ' ' || input_char == CLOSING_COMMAND_TAG_CHAR_1 || input_char == ',' || input_char == ';' || input_char == EOF || + input_char == '\0' || input_char == '\n') { + input_char = fgetc(input); + } + return input_char; +} +int bvr_handle_get(FILE * input, FILE * output) { + char item[BVR_MAX_VARIABLE_SIZE+1]; + char input_char = bvr_var_skip_separator_chars(input); + int i = 0; + while(input_char != ' ' && input_char != CLOSING_COMMAND_TAG_CHAR_1 && input_char != ',' && input_char != ';' && input_char != EOF && + input_char != '\0' && input_char != '\n' && i < BVR_MAX_VARIABLE_SIZE) { + item[i++] = input_char; + input_char = fgetc(input); + } + item[i++] = '\0'; + fprintf(output, "%s", bvr_var_get(item)); + fflush(output); + return SUCCESS; +} +int bvr_handle_set(FILE * input, FILE * output) { + char item[BVR_MAX_VARIABLE_SIZE+1]; + char value[BVR_MAX_VARIABLE_SIZE+1]; + char input_char = bvr_var_skip_separator_chars(input); + int i = 0; + while(input_char != ' ' && input_char != CLOSING_COMMAND_TAG_CHAR_1 && input_char != ',' && input_char != ';' && input_char != EOF && + input_char != '\0' && input_char != '\n' && i < BVR_MAX_VARIABLE_SIZE) { + item[i++] = input_char; + input_char = fgetc(input); + } + item[i++] = '\0'; + i = 0; + input_char = bvr_var_skip_separator_chars(input); + while(input_char != ' ' && input_char != CLOSING_COMMAND_TAG_CHAR_1 && input_char != ',' && input_char != ';' && input_char != EOF && + input_char != '\0' && input_char != '\n' && i < BVR_MAX_VARIABLE_SIZE) { + value[i++] = input_char; + input_char = fgetc(input); + } + value[i++] = '\0'; + return bvr_var_set(item, value); + fflush(output); + return SUCCESS; +} +int bvr_handle_include(FILE * input, FILE * output) { + char item[BVR_MAX_VARIABLE_SIZE+1]; + char input_char = bvr_var_skip_separator_chars(input); + int i = 0; + while(input_char != ' ' && input_char != CLOSING_COMMAND_TAG_CHAR_1 && input_char != ',' && input_char != ';' && input_char != EOF && + input_char != '\0' && input_char != '\n' && i < BVR_MAX_VARIABLE_SIZE) { + item[++i] = input_char; + input_char = fgetc(input); + } + item[++i] = '\0'; + fprintf(output, "%s", bvr_var_get(item)); + fflush(output); + return SUCCESS; +} +int bvr_handle_move(FILE * input, FILE * output) { + char item[BVR_MAX_VARIABLE_SIZE+1]; + char value[BVR_MAX_VARIABLE_SIZE+1]; + char input_char = bvr_var_skip_separator_chars(input); + int i = 0; + while(input_char != ' ' && input_char != CLOSING_COMMAND_TAG_CHAR_1 && input_char != ',' && input_char != ';' && input_char != EOF && + input_char != '\0' && input_char != '\n' && i < BVR_MAX_VARIABLE_SIZE) { + item[++i] = input_char; + input_char = fgetc(input); + } + item[++i] = '\0'; + i = 0; + input_char = bvr_var_skip_separator_chars(input); + value[i] = input_char; + while(input_char != ' ' && input_char != CLOSING_COMMAND_TAG_CHAR_1 && input_char != ',' && input_char != ';' && input_char != EOF && + input_char != '\0' && input_char != '\n' && i < BVR_MAX_VARIABLE_SIZE) { + value[++i] = input_char; + input_char = fgetc(input); + } + value[++i] = '\0'; + return bvr_var_mv(item, value); + fflush(output); + return SUCCESS; + +} +int bvr_handle_info(FILE * input, FILE * output) { + // fprintf(stderr, "[bvrcommands.c] bvr_handle_info: bvr bVerbose HTPCMS %d.%d.%d\n", BVR_VER_MAJOR, BVR_VER_MINOR, BVR_VER_PATCH); + fprintf(output, "\nbvr bVerbose HTPCMS %d.%d.%d\n", BVR_VER_MAJOR, BVR_VER_MINOR, BVR_VER_PATCH); + return SUCCESS; +} -- cgit v1.2.3