--- 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);