From 5fec9f5db9f9bc56577a7a76b32fd49ebe36800b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Volker=20Wei=C3=9Fmann?= Date: Sun, 4 Sep 2022 12:16:14 +0200 Subject: Fixed string escaping in AstPrinter --- mesonbuild/ast/printer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mesonbuild/ast/printer.py b/mesonbuild/ast/printer.py index a0b92bb..b095f53 100644 --- a/mesonbuild/ast/printer.py +++ b/mesonbuild/ast/printer.py @@ -72,9 +72,13 @@ class AstPrinter(AstVisitor): self.append(str(node.value), node) node.lineno = self.curr_line or node.lineno + def escape(self, val: str) -> str: + return val.translate(str.maketrans({'\'': '\\\'', + '\\': '\\\\'})) + def visit_StringNode(self, node: mparser.StringNode) -> None: assert isinstance(node.value, str) - self.append("'" + node.value + "'", node) + self.append("'" + self.escape(node.value) + "'", node) node.lineno = self.curr_line or node.lineno def visit_FormatStringNode(self, node: mparser.FormatStringNode) -> None: -- cgit v1.1