From 20f86795e5d86cee2d5da0ea0601c920a6de0f34 Mon Sep 17 00:00:00 2001 From: Natalie Weizenbaum Date: Wed, 7 Nov 2018 13:39:01 -0800 Subject: [PATCH] Avoid stripping escapes in more places --- doc-src/SASS_CHANGELOG.md | 2 +- lib/sass/scss/css_parser.rb | 7 ++++++- lib/sass/scss/parser.rb | 5 +++-- lib/sass/selector/pseudo.rb | 2 +- lib/sass/tree/rule_node.rb | 3 ++- lib/sass/tree/visitors/perform.rb | 2 +- lib/sass/tree/visitors/to_css.rb | 2 +- lib/sass/util.rb | 26 ++++++++++++++++++++++---- 8 files changed, 37 insertions(+), 12 deletions(-) diff --git a/doc-src/SASS_CHANGELOG.md b/doc-src/SASS_CHANGELOG.md index f65a85e37..739fb0a99 100644 --- a/doc-src/SASS_CHANGELOG.md +++ b/doc-src/SASS_CHANGELOG.md @@ -5,7 +5,7 @@ ## 3.7.2 (Unreleased) -* Fix another escaped-whitespace edge case. +* Fix more escaped-whitespace edge cases. ## 3.7.1 (7 November 2018) diff --git a/lib/sass/scss/css_parser.rb b/lib/sass/scss/css_parser.rb index f4592ea74..69890ff86 100644 --- a/lib/sass/scss/css_parser.rb +++ b/lib/sass/scss/css_parser.rb @@ -47,7 +47,12 @@ def ruleset def keyframes_ruleset start_pos = source_position return unless (selector = keyframes_selector) - block(node(Sass::Tree::KeyframeRuleNode.new(selector.strip), start_pos), :ruleset) + block( + node( + Sass::Tree::KeyframeRuleNode.new( + Sass::Util.strip_except_escapes(selector)), + start_pos), + :ruleset) end @sass_script_parser = Sass::Script::CssParser diff --git a/lib/sass/scss/parser.rb b/lib/sass/scss/parser.rb index 74214741e..55d1e1b73 100644 --- a/lib/sass/scss/parser.rb +++ b/lib/sass/scss/parser.rb @@ -992,8 +992,9 @@ def value! # This results in a dramatic speed increase. if (val = tok(STATIC_VALUE)) # If val ends with escaped whitespace, leave it be. - val = val.lstrip.sub(/(?]