* lib/erb.rb (ERB::Compiler:Buffer#new): push magic comment first.

* lib/erb.rb (ERB::Compiler#compile): fix for broken input.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2008-06-25 04:44:32 +00:00
Родитель 30e263fc07
Коммит f94c46a745
2 изменённых файлов: 10 добавлений и 5 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Wed Jun 25 13:42:44 2008 NARUSE, Yui <naruse@ruby-lang.org>
* lib/erb.rb (ERB::Compiler:Buffer#new): push magic comment first.
* lib/erb.rb (ERB::Compiler#compile): fix for broken input.
Wed Jun 25 12:10:01 2008 NARUSE, Yui <naruse@ruby-lang.org>
* lib/erb.rb (ERB::Compiler#compile): magic comment needs LF.

Просмотреть файл

@ -486,10 +486,10 @@ class ERB
end
class Buffer # :nodoc:
def initialize(compiler)
def initialize(compiler, enc=nil)
@compiler = compiler
@line = []
@script = ""
@script = enc ? "#coding:#{enc.to_s}\n" : ""
@compiler.pre_cmd.each do |x|
push(x)
end
@ -517,11 +517,10 @@ class ERB
end
def compile(s)
out = Buffer.new(self)
out.push("# -*- coding: #{s.encoding} -*-\n")
out = Buffer.new(self, s.encoding)
content = ''
scanner = make_scanner(s)
scanner = make_scanner(s.dup.force_encoding("ASCII-8BIT"))
scanner.scan do |token|
if scanner.stag.nil?
case token