Mercurial > dovecot > core-2.2
changeset 19627:7c7e554860c6
config: Fixed '\' line continuation to work again.
This had been broken for many years.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sun, 24 Jan 2016 22:06:30 +0200 |
parents | d9905cfd13fd |
children | 9642acb1940a |
files | src/config/config-parser-private.h src/config/config-parser.c src/config/old-set-parser.c |
diffstat | 3 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/config/config-parser-private.h Sun Jan 24 20:07:58 2016 +0200 +++ b/src/config/config-parser-private.h Sun Jan 24 22:06:30 2016 +0200 @@ -6,6 +6,7 @@ enum config_line_type { CONFIG_LINE_TYPE_SKIP, + CONFIG_LINE_TYPE_CONTINUE, CONFIG_LINE_TYPE_ERROR, CONFIG_LINE_TYPE_KEYVALUE, CONFIG_LINE_TYPE_KEYFILE,
--- a/src/config/config-parser.c Sun Jan 24 20:07:58 2016 +0200 +++ b/src/config/config-parser.c Sun Jan 24 22:06:30 2016 +0200 @@ -601,7 +601,7 @@ len--; str_append_n(full_line, line, len); str_append_c(full_line, ' '); - return CONFIG_LINE_TYPE_SKIP; + return CONFIG_LINE_TYPE_CONTINUE; } if (str_len(full_line) > 0) { str_append(full_line, line); @@ -843,6 +843,8 @@ switch (type) { case CONFIG_LINE_TYPE_SKIP: break; + case CONFIG_LINE_TYPE_CONTINUE: + i_unreached(); case CONFIG_LINE_TYPE_ERROR: ctx->error = p_strdup(ctx->pool, value); break; @@ -969,6 +971,8 @@ type = config_parse_line(&ctx, line, full_line, &key, &value); str_truncate(ctx.str, ctx.pathlen); + if (type == CONFIG_LINE_TYPE_CONTINUE) + continue; T_BEGIN { handled = old_settings_handle(&ctx, type, key, value);
--- a/src/config/old-set-parser.c Sun Jan 24 20:07:58 2016 +0200 +++ b/src/config/old-set-parser.c Sun Jan 24 22:06:30 2016 +0200 @@ -579,6 +579,7 @@ { switch (type) { case CONFIG_LINE_TYPE_SKIP: + case CONFIG_LINE_TYPE_CONTINUE: case CONFIG_LINE_TYPE_ERROR: case CONFIG_LINE_TYPE_INCLUDE: case CONFIG_LINE_TYPE_INCLUDE_TRY: