From a4fd5371bde21e1291ee36d447109c2c0d4d415e Mon Sep 17 00:00:00 2001 From: Bernd Amend Date: Sun, 23 May 2021 12:03:44 +0200 Subject: [PATCH] fix handling of $ in strings ChaiScript#553 --- include/chaiscript/language/chaiscript_parser.hpp | 4 ++++ unittests/instring_eval_more.chai | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/include/chaiscript/language/chaiscript_parser.hpp b/include/chaiscript/language/chaiscript_parser.hpp index 95bc55af..abcecefe 100644 --- a/include/chaiscript/language/chaiscript_parser.hpp +++ b/include/chaiscript/language/chaiscript_parser.hpp @@ -1369,6 +1369,10 @@ namespace chaiscript } } + if (cparser.saw_interpolation_marker) { + match.push_back('$'); + } + return cparser.is_interpolated; }(); diff --git a/unittests/instring_eval_more.chai b/unittests/instring_eval_more.chai index 17768f82..585865ed 100644 --- a/unittests/instring_eval_more.chai +++ b/unittests/instring_eval_more.chai @@ -2,3 +2,7 @@ assert_equal("\$ {4 + 5}", "$ {4 + 5}") assert_equal("\$9", "$${4+5}") assert_equal("Value: \${4 + 5}", "Value: \${4 + 5}") assert_equal("Value: \$9", "Value: \$${4 + 5}") +assert_equal("\$code\$", "$code$") +assert_equal("\$\$", "$$") +assert_equal("\$", "$") +assert_equal("\${", "\${") // ensure this doesn't fail