diff --git a/src/aeso_scan.erl b/src/aeso_scan.erl index 6553dd5..acde020 100644 --- a/src/aeso_scan.erl +++ b/src/aeso_scan.erl @@ -98,6 +98,9 @@ unescape(Str) -> unescape(Str, []). %% TODO: numeric escapes unescape([$"], Acc) -> list_to_binary(lists:reverse(Acc)); +unescape([$\\, $x, D1, D2 | Chars ], Acc) -> + C = list_to_integer([D1, D2], 16), + unescape(Chars, [C | Acc]); unescape([$\\, Code | Chars], Acc) -> Ok = fun(C) -> unescape(Chars, [C | Acc]) end, case Code of diff --git a/test/contracts/basic_auth.aes b/test/contracts/basic_auth.aes index 94be85f..327f0f9 100644 --- a/test/contracts/basic_auth.aes +++ b/test/contracts/basic_auth.aes @@ -15,3 +15,5 @@ contract BasicAuth = entrypoint to_sign(h : hash, n : int) = Crypto.blake2b((h, n)) + entrypoint weird_string() : string = + "\x19Weird String\x42\nMore\n"