namazu-dev(ring)


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

Re: Namazu for Win32 binary snap release 20000215



Ken-ichi Hirose <kenzo-@xxxxxxxxxx> wrote:

>>調査は出来ない(というか能力が無い)のですが、試しにやってみました。
>># Mail で From: を消しました。たしかに Subject: を消しても大丈夫
>># でした。1.9.14 + 自分で make です。
>>● From: がないときは、NMZ.filed.from の該当行が『不明』になって
>> いる。
>>● Win32 で作った上記の INDEX を UNIX に持って来て、検索すると、
>> ちゃんと『不明』が出力される。だから、INDEX は正しいと思う。
>
>gettext 周りの話しのようなので、念のため nmz1915-20000215.exe とかも
>試してみていただけると変わるかもしれません。

あの、広瀬さんの環境ではどうなのですか? 


>>● ちなみに Win32 の namazu の出力をつけておきます。出力の最後の
>> item が該当部分です。euc-jp がベースで該当部分だけ壊れています。
>># 見る人が見れば一発でわかるかもしれない。。。
>
>みても、ぴんとこなかったです。。 ;-)

余計なカンマが入っていますね。これはたぶん src/result.c の

    /* Insert commas if the buf is a numeric string. */
    if (nmz_isnumstr(buf)) {
	commas(buf);
    }

の部分で挿入されています。で、 nmz_isnumstr() は nmz/util.c 

    int 
    nmz_isnumstr(const char *str)
    {
	int i, nonnum = 0;

	if (strlen(str) > 10) {  /* Too large number */
	    return 0;
	}

	for (i = 0; str[i] != '\0'; i++) {
	    if (! isdigit((int)str[i])) {
		nonnum = 1;
		return 0;
	    }
	}
	return 1;
    }

です。 isdigit() が狂っているのではないでしょうか。試しにこ
の部分を (str[i] >= '0' && str[i] <= '9') とするとどうなりま
す?  あるいは、 commas 関数を呼ばないようにするとか。

# あ、nonnum は不要ですね。消しておきます。 i も不要か。


>>高林> なんで著者の行だけ特別なのだろう…。
>>これは著者だけみたいですね。
>>(『不明』って漢字だからなにかしらあるんでしょう)
>
>#最悪 unknown と表示させるようにするとか。。

そういう安易な対策はもうこりごりです。

-- Satoru Takabayashi