mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Fixes ticket:110 (more UTF-16 problems)
Missing include for UndefinedNamespaceException was causing errors in some cases. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13816 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b3ab1dbf34
commit
06f2b5b1d8
4 changed files with 18 additions and 6 deletions
|
@ -135,6 +135,7 @@ module REXML
|
|||
def initialize(arg, block_size=500, encoding=nil)
|
||||
@er_source = @source = arg
|
||||
@to_utf = false
|
||||
|
||||
# Determining the encoding is a deceptively difficult issue to resolve.
|
||||
# First, we check the first two bytes for UTF-16. Then we
|
||||
# assume that the encoding is at least ASCII enough for the '>', and
|
||||
|
@ -146,13 +147,16 @@ module REXML
|
|||
str = @source.read( 2 )
|
||||
if encoding
|
||||
self.encoding = encoding
|
||||
elsif /\A(?:\xfe\xff|\xff\xfe)/n =~ str
|
||||
self.encoding = check_encoding( str )
|
||||
elsif (0xef == str[0] && 0xbb == str[1])
|
||||
elsif 0xfe == str[0] && 0xff == str[1]
|
||||
@line_break = "\000>"
|
||||
elsif 0xff == str[0] && 0xfe == str[1]
|
||||
@line_break = ">\000"
|
||||
elsif 0xef == str[0] && 0xbb == str[1]
|
||||
str += @source.read(1)
|
||||
str = '' if (0xbf == str[2])
|
||||
@line_break = ">"
|
||||
else
|
||||
@line_break = '>'
|
||||
@line_break = ">"
|
||||
end
|
||||
super str+@source.readline( @line_break )
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue