Namazu-devel-ja(旧)


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

Re: make check が通らない (IRIX 5.3)



寺西です。

teranisi@xxxxxxxxx wrote:
> 
> IRIX 5.3 の環境で make check が通らないので、
...
> mknmz-4, mknmz-5 の find に -print オプションを付ける
> ことで、環境変数LANGが C の場合は、make check を全てパス
> することができるようになりました。

IRIX 5.3 環境で、pdf の処理を行わない場合は、
環境変数 LANG に ja_JP.EUC を付けても make check 
は、全て PASS します。

pdftotext で data/ja/acrobat3.pdf を変換して
得られた acrobat3.txt を開いて見ると、

---------------------------------------------------
Namazu<A1><A0>は手軽に使えることを第一に目指した
日本語全文検索システムです。このファイルはテスト用です。
<A1><A0><A1><A0><A1><A0><A1><A0><A1><A0><A1><A0>
<A1><A0><A1><A0>
<A1><A0>
test@namazu。org<A1><A0>
<A1><A0>

^L
---------------------------------------------------
というように制御コード(?)のようなものが含まれています。

十分確認していませんが、NMZ.w に <A1><A0>... な
コードが含まれている状態だと、
存在する文字列であっても、検索に引っ掛からないことが
あるようです。
# これは NMZ.w に入っていることが問題だと言っている
# わけではありません。(念のため)

結果、make check に失敗します。

# そういえば、何方かが pdftotext の問題を指摘して
# いたような。

これは、pdftotext の問題なのですが、namazu 側を手直し
したところ、問題が解決しました。
単純に <A1><A0> を空白に変更しただけです。

具体的には filter/gfilter.pl の

sub white_space_adjust_filter ($) {
    my ($text) = @_;

# add
    $$text =~ s/\xA1\xA0/  /g;
#

    $$text =~ s/[ \t]+/ /g;
           :
           :

と、1行追加しただけです。pdf.pl で対処すべきかとも思った
のですが、簡単なのでこちらに追加してみました。

さて、この変更によるnamazuへの悪影響はないと思うのですが、
いかがでしょう。(変換処理が少し重くなるが)

# EUC コードの第2バイトが A1 で、第1バイトが A0 って有り得る?

もし問題がないようでしたら、namazu のソースに反映して
いただきたいと思います。
--
寺西