Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
「不明」 problem again
- From: Satoru Takabayashi <satoru-t@xxxxxxxxxxxxxxxxxx>
- Date: Fri, 25 Feb 2000 17:06:24 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 00018
- References: <20000225133839Y.satoru-t@is.aist-nara.ac.jp> <20000225.134926.113206947.shirai@rdmg.mgcs.mei.co.jp> <20000225.143203.60103789.shirai@rdmg.mgcs.mei.co.jp>
namazu-devel-ja へ振ります
Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx> wrote:
>白井> http://www.forest.impress.co.jp/article/2000/02/22/namazu.gif
>
>なんか症状が違うような気がしたので From: を外して試して見たら、
>sjis ベースだと上記の GIF の様になります。
(snip)
> ADDRESS : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
>00000A70 : 0A 0A 0A 31 31 2E 20 8E C0 8C B1 20 28 83 58 83 ...11. 実験 (スコ
>00000A80 : 52 83 41 3A 20 32 29 0A 92 98 8E D2 3A 20 95 73 ア: 2).著者: 不
> ~~~~ 不
>00000A90 : 96 0A 93 FA 95 74 3A 20 57 65 64 2C 20 38 20 44 ..日付: Wed, 8 D
> ~~~
(snip)
> ADDRESS : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 0123456789ABCDEF
>00000000 : 95 73 96 BE 0A 不明.
>
>## うぅ、一バイト落ちている。。。
% LANG=ja_JP.SJIS namazu foo ~/Namazu/bar
と実行しても手元の環境では問題ありません。
「一バイト落ちている」という症状からすると、field.c の
nmz_get_field_data() が呼び出している nmz_chomp が原因かもし
れません (UNIXでは問題なく動く)。この辺りを中心に調べていた
だけます? > Windows利用者の方
void
nmz_chomp(char *str)
{
int i;
for (i = strlen(str) - 1; i >= 0; i--) {
if (*(str + i) == '\n' || *(str + i) == '\r'
|| *(str + i) == ' ' || *(str + i) == '\t')
{
*(str + i) = '\0';
} else {
break;
}
}
}
ところで、上のコードでは *(str + i) と書いていますが、
str[i] の方が自然ですよね? 大昔に聞いた「ポインタで宣言した
ならポインタらしく扱いなさい」という話 (出典は不明) の悪影響
だと思います。一般的にはどうなのだろう。
あるいは、次のように書き直した方がわかりやすいでしょうか。
void
nmz_chomp(char *str)
{
char *p = str + strlen(str) - 1;
for (; p >= str; p--) {
if (*p == '\n' || *p == '\r' || *p == ' ' || *p == '\t') {
*p = '\0';
} else {
break;
}
}
}
-- Satoru Takabayashi