From f34b6ed982c334fd74578fc824402a8157d14531 Mon Sep 17 00:00:00 2001 From: Hans Svensson Date: Thu, 12 Sep 2019 21:17:01 +0200 Subject: [PATCH] Fix numeric escapes --- src/aeso_scan.erl | 3 +++ test/contracts/basic_auth.aes | 2 ++ 2 files changed, 5 insertions(+) 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"