[ruby-list:37710] Re: TMail : RFC2231エンコードについて

From: Minero Aoki <aamine@...>
Date: 2003-05-21 07:10:35 UTC
List: ruby-list #37710
青木です。

  In mail "[ruby-list:37709] Re: TMail : RFC2231エンコードについて"
    Minero Aoki <aamine@loveruby.net> wrote:

> ようするに、%'* をエンコードしてないのがまずいんですね。
> 修正します。

すぐに 0.10.8 を出しますが、念のため最小のパッチを付けときます。
だいたい村上さんの修正と同じです。
-------------------------------------------------------------------
青木峰郎

diff -u -p -r1.32 -r1.33
--- lib/tmail/encode.rb	18 May 2003 21:37:58 -0000	1.32
+++ lib/tmail/encode.rb	21 May 2003 07:11:58 -0000	1.33
@@ -266,7 +266,7 @@ module TMail
     end
 
     def encode_value( str )
-      str.gsub(TOKEN_UNSAFE) {|s| '%%%02x' % s[0] }
+      str.gsub(RFC2231_UNSAFE) {|s| '%%%02X' % s[0] }
     end
 
     private
diff -u -p -r1.1 -r1.2
--- lib/tmail/utils.rb	18 May 2003 21:37:58 -0000	1.1
+++ lib/tmail/utils.rb	21 May 2003 07:11:58 -0000	1.2
@@ -41,6 +41,7 @@ module TMail
     PHRASE_UNSAFE = /[#{Regexp.quote aspecial}#{control}]/n
     TOKEN_UNSAFE  = /[#{Regexp.quote tspecial}#{control}#{lwsp}]/n
     CONTROL_CHAR  = /[#{control}]/n
+    RFC2231_UNSAFE = /[#{Regexp.quote tspecial}#{control}#{lwsp}\*\'\%]/n
 
     def atom_safe?( str )
       not ATOM_UNSAFE === str

In This Thread