From 30c191aa7ecbb46cde477f521edadd8e745b2c16 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 2 Mar 2024 19:38:57 +0100 Subject: [PATCH] add trim config key --- src/kds_s2000w_config.c | 48 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index 34ae85d..310271b 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -15,6 +15,47 @@ typedef struct { char* value; } config_value; +void trim_key_whitespace_before(config_value* value) +{ + int before = 0; + while(value->key[before] == ' ') { + before++; + } + + int new_length = value->key_length - before; + char* new_value = malloc(sizeof(char) * new_length); + memcpy(new_value, value->key + before, new_length); + + free(value->key); + value->key = NULL; + value->key = new_value; + value->key_length = new_length; +} + +void trim_key_whitespace_after(config_value* value) +{ + int after = 0; + while(value->key[after] != ' ') { + after++; + } + + int new_length = after + 1; + char* new_value = malloc(sizeof(char) * new_length); + memcpy(new_value, value->key, new_length); + new_value[new_length - 1] = '\0'; + + free(value->key); + value->key = NULL; + value->key = new_value; + value->key_length = new_length; +} + +void trim_key(config_value* value) +{ + trim_key_whitespace_before(value); + trim_key_whitespace_after(value); +} + void trim_value_whitespace_before(config_value* value) { int before = 0; @@ -26,7 +67,6 @@ void trim_value_whitespace_before(config_value* value) char* new_value = malloc(sizeof(char) * new_length); memcpy(new_value, value->value + before, new_length); - free(value->value); value->value = NULL; value->value = new_value; @@ -51,8 +91,10 @@ void trim_value_whitespace_after(config_value* value) value->value_length = new_length; } -void trim_value(config_value* value) +void trim_config_value(config_value* value) { + trim_key_whitespace_before(value); + trim_key_whitespace_after(value); trim_value_whitespace_before(value); trim_value_whitespace_after(value); } @@ -109,7 +151,7 @@ void loadConfig(program_config* config, const char* config_stream) get_line(config_stream, &line); get_key(&line, &value); get_value(&line, &value); - trim_value(&value); + trim_config_value(&value); config->scanner_url = malloc(sizeof(char) * value.value_length); memcpy(config->scanner_url, value.value, value.value_length); -- 2.39.5