From: Timo Sirainen Date: Tue, 8 Dec 2009 18:33:27 +0000 (-0500) Subject: config parser: If line ends with '\' continuation, remove extra whitespace before it. X-Git-Tag: 2.0.beta1~53 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c8154bfaf4f08f4b1b038ae4483ea703789c9be6;p=thirdparty%2Fdovecot%2Fcore.git config parser: If line ends with '\' continuation, remove extra whitespace before it. --HG-- branch : HEAD --- diff --git a/src/config/config-parser.c b/src/config/config-parser.c index 075bdf4661..6d075237ff 100644 --- a/src/config/config-parser.c +++ b/src/config/config-parser.c @@ -503,8 +503,11 @@ config_parse_line(struct parser_context *ctx, char *line, string_t *full_line, if (len > 0 && line[len-1] == '\\') { /* continues in next line */ - line[len-1] = '\0'; - str_append(full_line, line); + len--; + while (IS_WHITE(line[len-1])) + len--; + str_append_n(full_line, line, len); + str_append_c(full_line, ' '); return CONFIG_LINE_TYPE_SKIP; } if (str_len(full_line) > 0) { diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index 61be436be0..4ff39e7cef 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -246,8 +246,11 @@ prevfile: if (len > 0 && line[len-1] == '\\') { /* continues in next line */ - line[len-1] = '\0'; - str_append(full_line, line); + len--; + while (IS_WHITE(line[len-1])) + len--; + str_append_n(full_line, line, len); + str_append_c(full_line, ' '); continue; } if (str_len(full_line) > 0) {