Add \xHH Unicode escape code to basic strings
diff --git a/src/tomli/_parser.py b/src/tomli/_parser.py
index 3cb340e..111ceae 100644
--- a/src/tomli/_parser.py
+++ b/src/tomli/_parser.py
@@ -465,7 +465,7 @@
pos = skip_chars(src, pos, TOML_WS)
-def parse_basic_str_escape(
+def parse_basic_str_escape( # noqa: C901
src: str, pos: Pos, *, multiline: bool = False
) -> tuple[Pos, str]:
escape_id = src[pos : pos + 2]
@@ -484,6 +484,8 @@
pos += 1
pos = skip_chars(src, pos, TOML_WS_AND_NEWLINE)
return pos, ""
+ if escape_id == "\\x":
+ return parse_hex_char(src, pos, 2)
if escape_id == "\\u":
return parse_hex_char(src, pos, 4)
if escape_id == "\\U":
diff --git a/tests/data/valid/multiline-basic-str/replacements.json b/tests/data/valid/multiline-basic-str/replacements.json
new file mode 100644
index 0000000..8a7f209
--- /dev/null
+++ b/tests/data/valid/multiline-basic-str/replacements.json
@@ -0,0 +1,5 @@
+{
+ "tab": {"type":"string","value":"\t"},
+ "upper-j": {"type":"string","value":"J"},
+ "upper-j-2": {"type":"string","value":"J"}
+}
diff --git a/tests/data/valid/multiline-basic-str/replacements.toml b/tests/data/valid/multiline-basic-str/replacements.toml
new file mode 100644
index 0000000..00adf72
--- /dev/null
+++ b/tests/data/valid/multiline-basic-str/replacements.toml
@@ -0,0 +1,3 @@
+tab = "\x09"
+upper-j = "\x4a"
+upper-j-2 = "\x4A"