From 76dfacee1f7e347fb7dada038c6d54decbda7b29 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 2 Mar 2024 19:27:16 +0100 Subject: [PATCH] trim value after whitespace --- src/kds_s2000w_config.c | 28 ++++++++++++++++++++++++++-- tests/kds_s2000w_read_config_tests.c | 2 +- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index d23ff29..34ae85d 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -15,7 +15,7 @@ typedef struct { char* value; } config_value; -void trim_whitespace_before(config_value* value) +void trim_value_whitespace_before(config_value* value) { int before = 0; while(value->value[before] == ' ') { @@ -33,6 +33,30 @@ void trim_whitespace_before(config_value* value) value->value_length = new_length; } +void trim_value_whitespace_after(config_value* value) +{ + int after = 0; + while(value->value[after] != ' ') { + after++; + } + + int new_length = after + 1; + char* new_value = malloc(sizeof(char) * new_length); + memcpy(new_value, value->value, new_length); + new_value[new_length - 1] = '\0'; + + free(value->value); + value->value = NULL; + value->value = new_value; + value->value_length = new_length; +} + +void trim_value(config_value* value) +{ + trim_value_whitespace_before(value); + trim_value_whitespace_after(value); +} + void get_line(const char* config_stream, config_line* line) { while(config_stream[line->length] != '\n') { @@ -85,7 +109,7 @@ void loadConfig(program_config* config, const char* config_stream) get_line(config_stream, &line); get_key(&line, &value); get_value(&line, &value); - trim_whitespace_before(&value); + trim_value(&value); config->scanner_url = malloc(sizeof(char) * value.value_length); memcpy(config->scanner_url, value.value, value.value_length); diff --git a/tests/kds_s2000w_read_config_tests.c b/tests/kds_s2000w_read_config_tests.c index b0fd420..8786239 100644 --- a/tests/kds_s2000w_read_config_tests.c +++ b/tests/kds_s2000w_read_config_tests.c @@ -3,7 +3,7 @@ START_TEST(kds_s2000w_config_read_parameter) { - const char* input_stream = "scanner_url = http://scanner.example.com\n"; + const char* input_stream = "scanner_url = http://scanner.example.com \n"; program_config* config = malloc(sizeof(program_config)); loadConfig(config, input_stream); -- 2.39.5