]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
config parser: If line ends with '\' continuation, remove extra whitespace before it.
authorTimo Sirainen <tss@iki.fi>
Tue, 8 Dec 2009 18:33:27 +0000 (13:33 -0500)
committerTimo Sirainen <tss@iki.fi>
Tue, 8 Dec 2009 18:33:27 +0000 (13:33 -0500)
--HG--
branch : HEAD

src/config/config-parser.c
src/lib-settings/settings.c

index 075bdf46614703f6ed9f01d25b3ec9f710ccf38c..6d075237ff1a86f5dc022b503129ddeaf548b896 100644 (file)
@@ -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) {
index 61be436be0c29ee005059668c7c36b1dbf0f39f4..4ff39e7cef33445de384ffe736c13e9d34a92c69 100644 (file)
@@ -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) {