From d0bc782f75bba6cf3dab63cfbadcb4bcaede2ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=BCndler?= Date: Fri, 8 Dec 2023 16:33:38 +0100 Subject: [PATCH] Fix pretty prenting of strings in complex data structures --- crates/uplc/src/pretty.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/crates/uplc/src/pretty.rs b/crates/uplc/src/pretty.rs index 11d0365d..1aa74af3 100644 --- a/crates/uplc/src/pretty.rs +++ b/crates/uplc/src/pretty.rs @@ -273,9 +273,15 @@ impl Constant { match self { Constant::Integer(i) => RcDoc::as_string(i), Constant::ByteString(bs) => RcDoc::text("#").append(RcDoc::text(hex::encode(bs))), - Constant::String(s) => RcDoc::text("\"") - .append(RcDoc::text(s)) - .append(RcDoc::text("\"")), + Constant::String(s) => RcDoc::text("\"").append(RcDoc::text( + String::from_utf8( + s.as_bytes() + .iter() + .flat_map(|c| escape_default(*c).collect::>()) + .collect(), + ) + .unwrap(), + )), Constant::Unit => RcDoc::text("()"), Constant::Bool(b) => RcDoc::text(if *b { "True" } else { "False" }), Constant::ProtoList(_, items) => RcDoc::text("[")