diff --git a/ChangeLog b/ChangeLog index eaa1e5e..9d5c111 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Sat Apr 7 10:28:40 2012 Aaron Patterson + + * ext/psych/lib/psych.rb: bumping up psych version to match release. + * ext/psych/psych.gemspec: ditto + +Sat Apr 7 02:07:00 2012 Aaron Patterson + + * 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 + Wed Apr 4 18:29:15 2012 NAKAMURA Usaku * test/ruby/test_sleep.rb (TestSleep#test_sleep_5sec): syntax error. diff --git a/ext/psych/lib/psych.rb b/ext/psych/lib/psych.rb index 8257820..1895be6 100644 --- a/ext/psych/lib/psych.rb +++ b/ext/psych/lib/psych.rb @@ -93,7 +93,7 @@ require 'psych/handlers/document_stream' module Psych # The version is Psych you're using - VERSION = '1.3.1' + VERSION = '1.3.2' # The version of libyaml Psych is using LIBYAML_VERSION = Psych.libyaml_version.join '.' diff --git a/ext/psych/parser.c b/ext/psych/parser.c index 9808c6b..6f4c456 100644 --- a/ext/psych/parser.c +++ b/ext/psych/parser.c @@ -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 diff --git a/test/psych/test_encoding.rb b/test/psych/test_encoding.rb index 8efb676..1abee0d 100644 --- a/test/psych/test_encoding.rb +++ b/test/psych/test_encoding.rb @@ -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