diff -r e72546725c77 -r c9a158da6c32 src/lib/BasicUnescapingProcessor.h --- a/src/lib/BasicUnescapingProcessor.h Mon Nov 30 00:12:16 2020 +0100 +++ b/src/lib/BasicUnescapingProcessor.h Sun Oct 31 17:30:40 2021 +0100 @@ -38,11 +38,12 @@ if (i + 1 < length && ch == ESC) { ch = s[i + 1]; if (ch == 'n') put(result, '\n', i); - else if (ch == 'r') put(result, '\r', i); + else if (ch == 'r') put(result, '\r', i); // TODO: should be 0x0d, not 0x0a like \n else if (ch == 't') put(result, '\t', i); else if (ch == 's') put(result, ' ', i); // TODO: Reconsider what is „basic“ escaping and should be supported. else if (ch == '"') put(result, ch, i); // The delimiters (\n,]",') are already unescaped during the first stage in the INIReader while parsing (the delimiter relevant to given environment is unescaped, e.g. \" in "quoted" value). else if (ch == '\'') put(result, ch, i); // So it does not necessary to do it here. But someone might write a="xxx\'zzz" however it is superfluous because a="xxx'zzz" will also work. + else if (ch == '[') put(result, ch, i); else if (ch == ']') put(result, ch, i); else if (ch == ':') put(result, ch, i); else if (ch == ';') put(result, ch, i);