From: akira yamada Date: 2004-08-17T02:27:16+09:00 Subject: s=(1..255).to_a.pack("C*"); p(YAML.load(s.to_yaml)==s) #=> false On head of ruby_1_8, the following code returns false: s=(1..255).to_a.pack("C*") p(YAML.load(s.to_yaml)==s) #=> false How about the patch in [ruby-core:03280] and the following patch: --- ruby-1.8.2/lib/yaml/baseemitter.rb 6 May 2004 06:39:45 -0000 1.1.2.1 +++ ruby-1.8.2/lib/yaml/baseemitter.rb 16 Aug 2004 16:30:52 -0000 @@ -57,9 +57,6 @@ block += options(:Indent).to_s end end - if valx =~ /#{YAML::ESCAPE_CHAR}/ - valx = YAML::escape( valx ) - end if block[0] == ?> valx = fold( valx ) end @@ -133,8 +130,8 @@ chop_s = true end folded += value.slice!( 0, width.include?( last ) ? last + 1 : options(:BestWidth) ) - folded.chop! if chop_s folded += "\n" unless value.empty? + folded.chop! if chop_s end folded end A test: --- test/yaml/test_yaml.rb 16 May 2004 16:09:41 -0000 1.5.2.1 +++ test/yaml/test_yaml.rb 16 Aug 2004 17:24:48 -0000 @@ -100,6 +100,7 @@ 8: ": started string" EOY ) + assert_cycle((1..255).to_a.pack("C*")) end # -- akira yamada