diff --git a/lib/sass/engine.rb b/lib/sass/engine.rb index 71bafd37..5f15519d 100644 --- a/lib/sass/engine.rb +++ b/lib/sass/engine.rb @@ -427,8 +427,8 @@ WARNING Script.var_warning(name, @line, line.offset + 1, @options[:filename]) if line.text[0] == ?! expr = parse_script(value, :offset => line.offset + line.text.index(value)) - expr.context = :equals - Tree::VariableNode.new(name, expr, op == '||=') + expr.context = :equals if op =~ /=$/ + Tree::VariableNode.new(name, expr, op =~ /^\|\|/) end def parse_comment(line) diff --git a/lib/sass/script.rb b/lib/sass/script.rb index f6d3a0e8..468e6874 100644 --- a/lib/sass/script.rb +++ b/lib/sass/script.rb @@ -14,7 +14,7 @@ module Sass module Script # The regular expression used to parse variables. # @private - MATCH = /^[!\$](#{Sass::SCSS::RX::IDENT})\s*((?:\|\|)?=)\s*(.+)/ + MATCH = /^[!\$](#{Sass::SCSS::RX::IDENT})\s*((?:\|\|)?[:=])\s*(.+)/ # The regular expression used to validate variables without matching. # @private diff --git a/lib/sass/tree/variable_node.rb b/lib/sass/tree/variable_node.rb index 3590bfc2..488bf9fa 100644 --- a/lib/sass/tree/variable_node.rb +++ b/lib/sass/tree/variable_node.rb @@ -17,7 +17,7 @@ module Sass protected def to_src(tabs, opts, fmt) - "#{' ' * tabs}$#{@name} #{'||' if @guarded}= #{@expr.to_sass}#{semi fmt}\n" + "#{' ' * tabs}$#{@name} #{'||' if @guarded}: #{@expr.to_sass}#{semi fmt}\n" end # Loads the new variable value into the environment.