diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-25 04:44:32 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-06-25 04:44:32 +0000 |
commit | f94c46a7454c50311654579c90108ea8de4ef07f (patch) | |
tree | 035c72dcd722f8f86f9b396a4f7b6ffe39847c62 /lib | |
parent | 30e263fc07fb66bb0a545da5540fecaf37d8c071 (diff) | |
download | ruby-f94c46a7454c50311654579c90108ea8de4ef07f.tar.gz |
* 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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/erb.rb | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/erb.rb b/lib/erb.rb index e1f0782855..d48d00ac3e 100644 --- a/lib/erb.rb +++ b/lib/erb.rb @@ -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 |