]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add trim config key
authorBastian Dehn <hhaalo@arcor.de>
Sat, 2 Mar 2024 18:38:57 +0000 (19:38 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 2 Mar 2024 18:38:57 +0000 (19:38 +0100)
src/kds_s2000w_config.c

index 34ae85dda7f69f25244cbf10e90fca9b641145e3..310271b9f6f22b996a9b24a47cbe6e8b67d1e7ec 100644 (file)
@@ -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);