diff --git a/src/config.c b/src/config.c index a2b35f1..a8be6d8 100644 --- a/src/config.c +++ b/src/config.c @@ -677,9 +677,6 @@ bool config_read_line(struct config_ctx *ctx, const char *input) size_t len, cleaned_len = 0; char *line, *comment; bool ret = true; - bool found_equals = false; - bool found_value_start = false; - size_t value_end = 0; /* This is what strchrnul is for, but that isn't portable. */ comment = strchr(input, COMMENT_CHAR); @@ -695,35 +692,9 @@ bool config_read_line(struct config_ctx *ctx, const char *input) goto out; } - /* Remove preceding and trailing whitespaces before value - First pass: find the actual end of the value (trim trailing spaces) */ - for (size_t i = len; i > 0; --i) { - if (!char_is_space(input[i - 1])) { - value_end = i; - break; - } - } - - /* Second pass: clean according to KEY = VALUE rules */ - for (size_t i = 0; i < value_end; ++i) { - if (!found_equals) { - /* Before '=': remove all whitespace */ - if (input[i] == '=') { - line[cleaned_len++] = input[i]; - found_equals = true; - } else if (!char_is_space(input[i])) { - line[cleaned_len++] = input[i]; - } - } else if (!found_value_start) { - /* After '=' but before value: skip whitespace until first non-space */ - if (!char_is_space(input[i])) { - line[cleaned_len++] = input[i]; - found_value_start = true; - } - } else { - /* Within value: preserve all characters including spaces */ + for (size_t i = 0; i < len; ++i) { + if (!char_is_space(input[i])) line[cleaned_len++] = input[i]; - } } if (!cleaned_len)