1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* ext/psych/parser.c: fall back to any encoding if the external

encoding is wrong.  [ruby-core:44163]
* test/psych/test_encoding.rb: fix test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tenderlove 2012-04-06 17:09:03 +00:00
parent 6111599230
commit 85e4c89675
3 changed files with 11 additions and 4 deletions

View file

@ -1,3 +1,9 @@
Sat Apr 7 02:07:00 2012 Aaron Patterson <aaron@tenderlovemaking.com>
* ext/psych/parser.c: fall back to any encoding if the external
encoding is wrong. [ruby-core:44163]
* test/psych/test_encoding.rb: fix test
Fri Apr 6 16:24:24 2012 Martin Duerst <duerst@it.aoyama.ac.jp>
* struct.c (documentation for rb_struct_members_m):

View file

@ -146,10 +146,11 @@ static VALUE transcode_io(VALUE src, int * parser_encoding)
return src;
}
rb_raise(rb_eArgError, "YAML file must be UTF-8, UTF-16LE, or UTF-16BE, not %s",
rb_enc_name(rb_enc_from_index(io_external_enc_index)));
/* If the external encoding is something we don't know how to handle,
* fall back to YAML_ANY_ENCODING. */
*parser_encoding = YAML_ANY_ENCODING;
return Qnil;
return src;
}
#endif

View file

@ -57,7 +57,7 @@ module Psych
# If the external encoding isn't utf8, utf16le, or utf16be, we cannot
# process the file.
File.open(t.path, 'r', :encoding => 'SHIFT_JIS') do |f|
assert_raises ArgumentError do
assert_raises Psych::SyntaxError do
Psych.load(f)
end
end