diff --git a/lib/sass/scss/rx.rb b/lib/sass/scss/rx.rb index 5837cfad..986c6d80 100644 --- a/lib/sass/scss/rx.rb +++ b/lib/sass/scss/rx.rb @@ -18,9 +18,14 @@ module Sass H = /[0-9a-f]/i NL = /\n|\r\n|\r|\f/ - NONASCII = /[\200-\377]/ UNICODE = /\\#{H}{1,6}[ \t\r\n\f]?/ - ESCAPE = /#{UNICODE}|\\[ -~\200-\377]/ + s = if Haml::Util.ruby1_8? + '\200-\377' + else + '\u{80}-\u{D7FF}\u{E000}-\u{FFFD}\u{10000}-\u{10FFFF}' + end + NONASCII = /[#{s}]/ + ESCAPE = /#{UNICODE}|\\[ -~#{s}]/ NMSTART = /[a-z]|#{NONASCII}|#{ESCAPE}/i NMCHAR = /[a-z0-9_-]|#{NONASCII}|#{ESCAPE}/i STRING1 = /\"((?:[^\n\r\f\\"]|\\#{NL}|#{ESCAPE})*)\"/ diff --git a/test/sass/scss/css_test.rb b/test/sass/scss/css_test.rb index ab3cb24f..6af8cf6c 100755 --- a/test/sass/scss/css_test.rb +++ b/test/sass/scss/css_test.rb @@ -1,4 +1,5 @@ #!/usr/bin/env ruby +# -*- coding: utf-8 -*- require File.dirname(__FILE__) + '/test_helper' require 'sass/scss/css_parser' @@ -48,6 +49,13 @@ baz {bar: baz} SCSS end + def test_unicode + assert_parses <