From: Heesob Park Date: 2011-01-05T15:25:43+09:00 Subject: [ruby-core:34083] [Ruby 1.9-Bug#4232][Open] unexpected behavior of '#{}' in irb Bug #4232: unexpected behavior of '#{}' in irb http://redmine.ruby-lang.org/issues/show/4232 Author: Heesob Park Status: Open, Priority: Normal Category: lib, Target version: 1.9.x ruby -v: ruby 1.9.3dev (2010-12-31 trunk 30439) [i386-mswin32_90] In Ruby 1.9.x, C:\work>irb irb(main):001:0> a = '#{%}' irb(main):002:0" C:\work>irb irb(main):001:0> a = '#{#}' irb(main):002:0> In Ruby 1.8.6, C:\work>irb irb(main):001:0> a = '#{%}' => "\#{%}" irb(main):002:0> C:\work>irb irb(main):001:0> a = '#{#}' => "\#{#}" irb(main):002:0> Here is a patch: --- ruby-lex.rb 2011-01-05 15:05:31.000000000 +0900 +++ ruby-lex.rb.new 2011-01-05 15:05:08.000000000 +0900 @@ -1046,7 +1046,7 @@ while ch = getc if @quoted == ch and nest == 0 break - elsif ch == "#" and peek(0) == "{" + elsif @ltype != "'" && ch == "#" and peek(0) == "{" identify_string_dvar elsif @ltype != "'" && @ltype != "]" && @ltype != ":" and ch == "#" subtype = true ---------------------------------------- http://redmine.ruby-lang.org