Namazu-devel-ja(旧)


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

Re: (proposal) uncompressing documents before indexing (namazu-bugs-ja#113)



<af40c3698cd2c7b5b83bd7da35324dc4@xxxxxxxxxxx>の記事において
zunda@xxxxxxxさんは書きました。

>> この件は、 namazu-bugs-en id19(と20) でお伝えしましたが、こちらの
>> 意図としましては、このような「壊れた」man pageをインデックスさせ
>> られてしまう場合に、mknmzが終了してしまわないようにできればいいの
>> ではないか、ということでした。

  複数の現象について書かれていたので、そういう問題だということを読みと
るのに時間がかかってしまいました。

  SIGPIPE を trap するコードは一部のフィルタに入っていたのですが、これ
は全体で面倒をみた方がよいだろうということで、mknmz 本体で trap するよ
う改良しました。このメールの末尾に該当個所の差分を添付しておきます。
  これでこの問題は解決すると思います。

# できれば、簡潔に一つの現象について一つのレポートという形で報告してい
# ただけると嬉しいです。
-- 
NOKUBI Takatsugu
E-mail: knok@xxxxxxxxxxxxx
	knok@xxxxxxxxxx / knok@xxxxxxxxxx

Index: scripts/mknmz.in
===================================================================
RCS file: /storage/cvsroot/namazu/scripts/mknmz.in,v
retrieving revision 1.85.4.23
diff -u -r1.85.4.23 mknmz.in
--- scripts/mknmz.in	2002/02/13 07:39:15	1.85.4.23
+++ scripts/mknmz.in	2002/03/15 08:35:41
@@ -790,8 +790,11 @@
 	        || die _("unable to require ") . 
 		    "\"$var::REQUIRE_ACTIONS{$mtype}.pl\"\n";
 	    my $err = undef;
-	    eval '$err = ' . $var::REQUIRE_ACTIONS{$mtype} .
-	      '::filter($orig_cfile, $contref, $weighted_str, $headings, $fields);';
+	    {
+		local $SIG{'PIPE'} = \&trapintr;
+		eval '$err = ' . $var::REQUIRE_ACTIONS{$mtype} .
+		  '::filter($orig_cfile, $contref, $weighted_str, $headings, $fields);';
+	    }
 	    if ($err) {
 		return ($file_size, $file_size, 0, "$mtype; x-error=$err");
 	    }
@@ -2451,6 +2454,11 @@
     }
     print $fh_info "\n";
     return;
+}
+
+sub trapintr {
+    my ($signame) = @_;
+    print STDERR "Warning: signal $signame occured.\n";
 }
 
 #