From 05c0886ff9cff8e2f3e74cb42e9b2a16a267d779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= <hugo@lysator.liu.se> Date: Tue, 19 Sep 2023 16:57:14 +0200 Subject: [PATCH] Allow escaping of literal linebreaks. --- muppet/puppet/format/parser.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/muppet/puppet/format/parser.py b/muppet/puppet/format/parser.py index 828e03b..ad28c52 100644 --- a/muppet/puppet/format/parser.py +++ b/muppet/puppet/format/parser.py @@ -141,7 +141,12 @@ class rich_char(ParseDirective): case '$': return parser.get(s('$') | r'\$') case _: - return parser.get(self.c) + # Literal linebreaks can apparently be escaped inside + # "rich" strings (thankfully not inside 'plain' strings). + try: + return parser.get(s("\\\n") & self.c) + except ParseError: + return parser.get(self.c) class ParserFormatter(Serializer[ParseDirective]): -- GitLab