Namazu-devel-ja(旧)


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

Re: mhonarc.pl



中川@東京武蔵野です。

はじめまして。
私のところでも、2.0.10から2.0.12にバージョンアップしたときに
同じようになりました。

In Message-Id: <200211221123.UAA06547@xxxxxxxxxxxxxxxxxxxxxx> writes ...
> で話題になった、mhonarcのアーカイブをindexする際の、
> <TITLE>[hoge:00740] Re:
> よろしくおねがいします
> </TITLE>
> 
> の NMZ.field.subject が、
> 
> [hoge:00740] Re:
> 
> になる件です。

せっかく mhonarc_filterが件名を拾ってきているのを、
その後のmailnews::mailnews_filterたちが書き換えているのが
原因のような気がします。

mailnews_filterの後にmhonarc_filterを持っていって、
MHonArcのSubjectデータ(X-Subjectのところ)は、nkfでデコード後
取り入れるようにすると、とりあえずうまく行っています。

html_filterやmailnews_filterをmhonarc_filterの後に入れている意図が
掴めていないので、他のところで不具合が出ているかもしれません。

--- mhonarc.pl.orig	Tue Aug  6 14:00:56 2002
+++ mhonarc.pl	Tue Jan 14 10:18:54 2003
@@ -31,6 +31,7 @@
 require 'gfilter.pl';
 require 'html.pl';
 require 'mailnews.pl';
+use NKF ;
 
 #
 # This pattern specifies MHonArc's file names.
@@ -80,7 +81,6 @@
        return "is not a MHonArc message file! skipped."; # error
     } 
     
-    mhonarc_filter($contref, $weighted_str, $fields);
     html::html_filter($contref, $weighted_str, $fields, $headings);
 
     $$contref =~ s/^\s+//;
@@ -88,6 +88,8 @@
     mailnews::mailnews_filter($contref, $weighted_str, $fields);
     mailnews::mailnews_citation_filter($contref, $weighted_str);
 
+    mhonarc_filter($contref, $weighted_str, $fields);
+
     gfilter::line_adjust_filter($contref);
     gfilter::line_adjust_filter($weighted_str);
     gfilter::white_space_adjust_filter($contref);
@@ -156,9 +158,10 @@
 
     if ($mha_head =~ /<!--X-Subject: ([^-]+) -->/) {
        my $subject = uncommentize($1);
-       1  while ($subject =~ s/\A\s*(re|sv|fwd|fw)[\[\]\d]*[:>-]+\s*//i);
-       $subject =~ s/\A\s*\[[^\]]+\]\s*//;
-       $fields->{'subject'} = $subject;
+       $subject = nkf('-Zme',$subject) ;
+#      1  while ($subject =~ s/\A\s*(re|sv|fwd|fw)[\[\]\d]*[:>-]+\s*//i);
+#      $subject =~ s/\A\s*\[[^\]]+\]\s*//;
+       $fields->{'subject'} = $subject ;
     }
     if ($mha_head =~ /<!--X-From-R13: ([^-]+) -->/) {
        $fields->{'from'} = mrot13(uncommentize($1));
--