From 9d44a73ad0576de0145b08f2c707469bc4133176 Mon Sep 17 00:00:00 2001 From: Artem Pavlenko Date: Mon, 2 Jul 2018 15:07:41 +0200 Subject: [PATCH] fix - add single quoted string escaped chars support + allow backtracking when escaped characters are not part of /u, /U. /x encodings (ref https://github.com/mapnik/mapnik/commit/3433397c30461729183e1d1d0bc3a26dafba2875#commitcomment-29512684) --- include/mapnik/expression_grammar_x3_def.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/mapnik/expression_grammar_x3_def.hpp b/include/mapnik/expression_grammar_x3_def.hpp index dd7d40eba..7f644f4c9 100644 --- a/include/mapnik/expression_grammar_x3_def.hpp +++ b/include/mapnik/expression_grammar_x3_def.hpp @@ -315,14 +315,14 @@ namespace mapnik { namespace grammar { auto const single_quoted_string = x3::rule {} = lit('\'') >> no_skip[*(unesc_char[append] | - //(lit('\\') > escaped_unicode[append]) // FIXME (!) - //| + (lit('\\') >> escaped_unicode[append]) + | (~char_('\''))[append])] > lit('\''); auto const double_quoted_string = x3::rule {} = lit('"') >> no_skip[*(unesc_char[append] | - (lit('\\') > escaped_unicode[append]) + (lit('\\') >> escaped_unicode[append]) | (~char_('"'))[append])] > lit('"');