ruby-changes:2985
From: ko1@a...
Date: 22 Dec 2007 17:00:17 +0900
Subject: [ruby-changes:2985] shugo - Ruby:r14477 (trunk): * lib/net/imap.rb (encode_utf7): accept UTF-8 strings.
shugo 2007-12-22 17:00:04 +0900 (Sat, 22 Dec 2007) New Revision: 14477 Modified files: trunk/ChangeLog trunk/lib/net/imap.rb trunk/test/net/imap/test_imap.rb Log: * lib/net/imap.rb (encode_utf7): accept UTF-8 strings. * lib/net/imap.rb (decode_utf7): return UTF-8 strings. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/net/imap.rb?r1=14477&r2=14476 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14477&r2=14476 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/net/imap/test_imap.rb?r1=14477&r2=14476 Index: ChangeLog =================================================================== --- ChangeLog (revision 14476) +++ ChangeLog (revision 14477) @@ -1,3 +1,9 @@ +Sat Dec 22 16:58:49 2007 Shugo Maeda <shugo@r...> + + * lib/net/imap.rb (encode_utf7): accept UTF-8 strings. + + * lib/net/imap.rb (decode_utf7): return UTF-8 strings. + Sat Dec 22 15:56:36 2007 NAKAMURA Usaku <usa@r...> * transcode_data_japanese: typo. Index: lib/net/imap.rb =================================================================== --- lib/net/imap.rb (revision 14476) +++ lib/net/imap.rb (revision 14477) @@ -852,19 +852,19 @@ end base64.unpack("m")[0].unpack("n*").pack("U*") end - } + }.force_encoding("UTF-8") end # Encode a string from UTF-8 format to modified UTF-7. def self.encode_utf7(s) - return s.gsub(/(&)|([^\x20-\x25\x27-\x7e]+)/n) { |x| + return s.gsub(/(&)|([^\x20-\x25\x27-\x7e]+)/u) { |x| if $1 "&-" else base64 = [x.unpack("U*").pack("n*")].pack("m") "&" + base64.delete("=\n").tr("/", ",") + "-" end - } + }.force_encoding("ASCII-8BIT") end private Index: test/net/imap/test_imap.rb =================================================================== --- test/net/imap/test_imap.rb (revision 14476) +++ test/net/imap/test_imap.rb (revision 14477) @@ -3,12 +3,14 @@ class IMAPTest < Test::Unit::TestCase def test_encode_utf7 - s = Net::IMAP.encode_utf7("\357\274\241\357\274\242\357\274\243") - assert_equal("&,yH,Iv8j-", s) + utf8 = "\357\274\241\357\274\242\357\274\243".force_encoding("UTF-8") + s = Net::IMAP.encode_utf7(utf8) + assert_equal("&,yH,Iv8j-".force_encoding("UTF-8"), s) end def test_decode_utf7 s = Net::IMAP.decode_utf7("&,yH,Iv8j-") - assert_equal("\357\274\241\357\274\242\357\274\243", s) + utf8 = "\357\274\241\357\274\242\357\274\243".force_encoding("UTF-8") + assert_equal(utf8, s) end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml