Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MHonArc 2.6.3 のバグ(?)について



寺西です。

Tadamasa Teranishi wrote:
>  
> いろいろと MHonArc 2.6.3 を触っていると、バグに遭遇しました。
> 
> MHonArc 処理後の HTML の本文に JIS コードに含まれる '<' がある
> 場合、これを &lt; に変換するというものです。
> mknmz では pre_codeconv の euc に変換時に正しく変換できず、文字化けが
> 発生します。

これに対する MHonArc 2.6.3 用のパッチを作りました。
ただし、iso-2022-jp で使用することを前提にしていますので、他のコード
を処理する場合には不具合が生じるかもしれません。
日本語しか使わないのであれば、大丈夫かと思います。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E
Only in MHonArc2.6.3.new: Makefile
diff -r -U3 MHonArc2.6.3/lib/ewhutil.pl MHonArc2.6.3.new/lib/ewhutil.pl
--- MHonArc2.6.3/lib/ewhutil.pl	Sun Apr  6 08:49:38 2003
+++ MHonArc2.6.3.new/lib/ewhutil.pl	Fri May  2 19:04:37 2003
@@ -26,6 +26,8 @@
 
 package mhonarc;
 
+require 'iso2022jp.pl';
+
 my $HTMLSpecials = '"&<>';
 my %HTMLSpecials = (
   '"'	=> '&quot;',
@@ -53,7 +55,9 @@
     return ''  unless scalar(@_) && defined($_[0]);
     my $txt   = shift;
     my $txt_r = ref($txt) ? $txt : \$txt;
-    $$txt_r =~ s/([$HTMLSpecials])/$HTMLSpecials{$1}/go;
+#    $$txt_r =~ s/([$HTMLSpecials])/$HTMLSpecials{$1}/go;
+    $$txt_r = iso_2022_jp::str2html($$txt_r);
+    $$txt_r =~ s/^(\033\([BJ])//mg;
     $$txt_r;
 }
 
@@ -61,7 +65,9 @@
     return ''  unless scalar(@_) && defined($_[0]);
     my $txt   = shift;
     my $txt_r = ref($txt) ? $txt : \$txt;
-    $$txt_r =~ s/([$HTMLSpecials])/$HTMLSpecials{$1}/go;
+#    $$txt_r =~ s/([$HTMLSpecials])/$HTMLSpecials{$1}/go;
+    $$txt_r = iso_2022_jp::str2html($$txt_r);
+    $$txt_r =~ s/^(\033\([BJ])//mg;
     $$txt_r;
 }
 
@@ -101,7 +107,8 @@
     $$str_r =~ s/\&lt;/</g;
     $$str_r =~ s/\&gt;/>/g;
     $$str_r =~ s/\&amp;/\&/g;
-    $$str_r =~ s/\&quot;/\&/g;
+#    $$str_r =~ s/\&quot;/\&/g;
+    $$str_r =~ s/\&quot;/"/g;
     $$str_r =~ s/\&#[xX]0*40;/@/g;
     $$str_r =~ s/\&#64;/@/g;
     $$str_r;
diff -r -U3 MHonArc2.6.3/lib/iso2022jp.pl MHonArc2.6.3.new/lib/iso2022jp.pl
--- MHonArc2.6.3/lib/iso2022jp.pl	Thu Dec  5 05:00:39 2002
+++ MHonArc2.6.3.new/lib/iso2022jp.pl	Fri May  2 18:57:44 2003
@@ -80,6 +80,8 @@
 			$ascii_text =~ s%\&%\&amp;%g;
 			$ascii_text =~ s%<%\&lt;%g;
 			$ascii_text =~ s%>%\&gt;%g;
+			$ascii_text =~ s%"%\&quot;%g;
+			$ascii_text =~ s%@%\&#x40;%g;
 			## Convert URLs to hyperlinks
 			$ascii_text =~ s%($HUrlExp)%<a href="$1">$1</a>%gio
 			    unless $nourl;