From 4cc83d7fa1ad64522d4c375b5436d1e0dc6398a0 Mon Sep 17 00:00:00 2001 From: Mobeen Ahmed Date: Thu, 6 Aug 2026 00:36:14 +0000 Subject: [PATCH] config: support backslash-newline line continuation (#611) Fixes #611 --- common/lib/config.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/common/lib/config.c b/common/lib/config.c index 8322fe91..bc3433a0 100644 --- a/common/lib/config.c +++ b/common/lib/config.c @@ -410,6 +410,24 @@ int init_config(size_t config_size) { // add trailing newline if not present config_addr[config_size - 2] = '\n'; + // handle backslash-newline line continuation + size_t write = 0; + for (size_t read = 0; read < config_size; read++) { + if (config_addr[read] == '\\' && read + 1 < config_size) { + if (config_addr[read + 1] == '\n') { + read++; + continue; + } + if (config_addr[read + 1] == '\r' && read + 2 < config_size && config_addr[read + 2] == '\n') { + read += 2; + continue; + } + } + config_addr[write++] = config_addr[read]; + } + + config_size = write; + size_t config_alloc_size = config_size; // remove windows carriage returns and spaces at the start and end of lines, if any