mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rdoc/rdoc.rb (RDoc#read_file_contents): take care of BOM.
[ruby-dev:41452] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
790abc5991
commit
8e9f30887c
3 changed files with 22 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Sat May 29 12:05:51 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/rdoc/rdoc.rb (RDoc#read_file_contents): take care of BOM.
|
||||||
|
[ruby-dev:41452]
|
||||||
|
|
||||||
Sat May 29 10:12:36 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Sat May 29 10:12:36 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* gc.c (GC_PROF_TIMER_STOP): regularize `marked' to suppress
|
* gc.c (GC_PROF_TIMER_STOP): regularize `marked' to suppress
|
||||||
|
|
|
@ -406,11 +406,13 @@ The internal error was:
|
||||||
def read_file_contents(filename)
|
def read_file_contents(filename)
|
||||||
content = open filename, "rb" do |f| f.read end
|
content = open filename, "rb" do |f| f.read end
|
||||||
|
|
||||||
|
utf8 = content.sub!(/\A\xef\xbb\xbf/, '')
|
||||||
if defined? Encoding then
|
if defined? Encoding then
|
||||||
if /coding[=:]\s*([^\s;]+)/i =~ content[%r"\A(?:#!.*\n)?.*\n"]
|
if /coding[=:]\s*([^\s;]+)/i =~ content[%r"\A(?:#!.*\n)?.*\n"]
|
||||||
if enc = ::Encoding.find($1)
|
enc = ::Encoding.find($1)
|
||||||
content.force_encoding(enc)
|
end
|
||||||
end
|
if enc ||= (Encoding::UTF_8 if utf8)
|
||||||
|
content.force_encoding(enc)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,18 @@ class TestRDocRDoc < MiniTest::Unit::TestCase
|
||||||
assert_equal Encoding::UTF_8, contents.encoding
|
assert_equal Encoding::UTF_8, contents.encoding
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_read_file_contents_encoding_with_signature
|
||||||
|
skip "Encoding not implemented" unless defined? ::Encoding
|
||||||
|
|
||||||
|
@tempfile.write "\xEF\xBB\xBF""hi everybody"
|
||||||
|
@tempfile.flush
|
||||||
|
|
||||||
|
bug3360 = '[ruby-dev:41452]'
|
||||||
|
contents = @rdoc.read_file_contents @tempfile.path
|
||||||
|
assert_equal "hi everybody", contents, bug3360
|
||||||
|
assert_equal Encoding::UTF_8, contents.encoding, bug3360
|
||||||
|
end
|
||||||
|
|
||||||
def test_remove_unparsable
|
def test_remove_unparsable
|
||||||
file_list = %w[
|
file_list = %w[
|
||||||
blah.class
|
blah.class
|
||||||
|
|
Loading…
Reference in a new issue