src/lib/BasicUnescapingProcessor.h
branchv_0
changeset 33 c9a158da6c32
parent 28 0e7c57d48d1e
--- 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);