diff --git a/Rakefile b/Rakefile index e63ecceb0..a1c9a13ef 100644 --- a/Rakefile +++ b/Rakefile @@ -63,41 +63,30 @@ namespace :test do desc "Run sass-spec tests against the local code." task :spec do - require "yaml" - sass_spec_options = YAML.load_file(scope("test/sass-spec.yml")) - enabled = sass_spec_options.delete(:enabled) - unless enabled - puts "SassSpec tests are disabled." - next - end - if ruby_version_at_least?("1.9.2") - old_load_path = $:.dup + old_load_path = $:.dup + begin + $:.unshift(File.join(File.dirname(__FILE__), "lib")) begin - $:.unshift(File.join(File.dirname(__FILE__), "lib")) - begin - require 'sass_spec' - rescue LoadError - puts "You probably forgot to run: bundle exec rake" - raise - end - default_options = { - :spec_directory => SassSpec::SPEC_DIR, - :engine_adapter => SassEngineAdapter.new, - :generate => false, - :tap => false, - :skip => false, - :verbose => false, - :filter => "", - :limit => -1, - :unexpected_pass => false, - :nuke => false, - } - SassSpec::Runner.new(default_options.merge(sass_spec_options)).run || exit(1) - ensure - $:.replace(old_load_path) + require 'sass_spec' + rescue LoadError + puts "You probably forgot to run: bundle exec rake" + raise end - else - "Skipping sass-spec on ruby versions less than 1.9.2" + SassSpec::Runner.new( + language_version: get_version[/^\d+\.\d+/], + spec_directory: SassSpec::SPEC_DIR, + engine_adapter: SassEngineAdapter.new, + generate: false, + tap: false, + skip: false, + verbose: false, + filter: "", + limit: -1, + unexpected_pass: false, + nuke: false, + ).run || exit(1) + ensure + $:.replace(old_load_path) end end end diff --git a/doc-src/SASS_CHANGELOG.md b/doc-src/SASS_CHANGELOG.md index 2aca4529f..739fb0a99 100644 --- a/doc-src/SASS_CHANGELOG.md +++ b/doc-src/SASS_CHANGELOG.md @@ -3,6 +3,10 @@ * Table of contents {:toc} +## 3.7.2 (Unreleased) + +* Fix more escaped-whitespace edge cases. + ## 3.7.1 (7 November 2018) * Properly handle escaped whitespace and other unusual characters. 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 5331747a7..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(/(?] diff --git a/test/sass-spec.yml b/test/sass-spec.yml deleted file mode 100644 index afb55658e..000000000 --- a/test/sass-spec.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -:enabled: true -:language_version: '3.5'