Bug #6393 ยป 0002-rdoc-non-binary-multibyte.patch
| lib/rdoc/parser.rb | ||
|---|---|---|
|
have_encoding = s.respond_to? :encoding
|
||
|
if have_encoding then
|
||
|
return false if s.encoding != Encoding::ASCII_8BIT and s.valid_encoding?
|
||
|
end
|
||
|
return true if s[0, 2] == Marshal.dump('')[0, 2] or s.index("\x00")
|
||
|
if have_encoding then
|
||
|
s.force_encoding Encoding.default_external
|
||
|
mode = "r"
|
||
|
s.sub!(/\A#!.*\n/, '') # assume shebang line isn't longer than 1024.
|
||
|
encoding = s[/^\s*\#\s*(?:-\*-\s*)?(?:en)?coding:\s*\([^\s;]+?\)(?:-\*-)?/, 1]
|
||
|
mode = "r:#{encoding}" if encoding
|
||
|
s = File.open(file, mode) {|f| f.gets(nil, 1024)}
|
||
|
not s.valid_encoding?
|
||
|
else
|
||