OSDN Git Service

Fix: MIME encode ISO-2022-JP after US-ASCII is broken. [ruby-dev:39722]
authorNARUSE Yui <naruse@users.sourceforge.jp>
Thu, 19 Nov 2009 11:50:14 +0000 (20:50 +0900)
committerNARUSE Yui <naruse@users.sourceforge.jp>
Thu, 19 Nov 2009 11:50:14 +0000 (20:50 +0900)
nkf.c
nkf_test.pl

diff --git a/nkf.c b/nkf.c
index 9e52ce3..9bda6e2 100644 (file)
--- a/nkf.c
+++ b/nkf.c
@@ -4849,10 +4849,13 @@ mime_putc(nkf_char c)
                    return;
                }
            }
-           (*o_mputc)(c);
-           base64_count++;
+           if (c != 0x1B) {
+               (*o_mputc)(c);
+               base64_count++;
+               return;
+           }
        }
-       return;
+       else return;
     }
 
     if (mimeout_mode <= 0) {
index 7780677..5a7a5cb 100644 (file)
@@ -428,10 +428,10 @@ printf "%-40s", "Microsoft UCS Mapping :";
 printf "%-40s", "CP932 to UTF-16BE :";
     &test("$nkf --ic=cp932 --oc=utf-16be",$example{'ms_ucs_map_1_sjis'},$example{'ms_ucs_map_1_utf16_ms'});
 
-# X0201 \e$B2>L>\e(B
+# X0201 仮名
 # X0201->X0208 conversion
 # X0208 aphabet -> ASCII
-# X0201 \e$BAj8_JQ49\e(B
+# X0201 相互変換
 
 print "\nX0201 test\n\n";
 
@@ -1004,6 +1004,14 @@ eofeof
 printf "%-40s", "test_data/bugs10904";
     &test("$nkf -Mj",$example{'test_data/bugs10904'},$example{'test_data/bugs10904.ans'});
 
+printf "%-40s", "test_data/ruby-dev:39722";
+    &test("$nkf -Mj",<<eom,<<eom);
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaあ
+eom
+=?US-ASCII?Q?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa?=
+ =?US-ASCII?Q?aaaaaaaaaaaaaaaaa?= =?ISO-2022-JP?B?GyRCJCIbKEI=?=
+eom
+
     if (!NKF) {
 printf "%-40s", "Guess NL";
 &command_tests(