2011年7月26日

[Namazu-devel-ja 1866] Re:stable-2-0 に 2.0.21 を反映

臼田です

On 2011/07/25, at 21:07, SATOH Fumiyasu wrote:

> さとうふみやす @ OSSTech です。
>
> At Mon, 25 Jul 2011 20:13:28 +0900,
> Yukio USUDA wrote:

>> また、 UTF-8 の文字列は現在変換を省略していますが、
>> UTF-8 から UTF-8 への変換として iconv に渡してしまえば
>> 不正文字を '?' に置換してもらえるということはないでしょうか?
>
> iconv(3) は EILSEQ か EINVAL で失敗するだけで、不正文字を ? に
> 変えることはしません。GNU libc の iconv(3) であれば
> 変換先エンコーディング名に「//IGNORE」を付ければ、変換
> できない文字を捨ててくれるようですが、GNU libc 以外では
> 使えません。
>

さっそく試してみました。
以下のような修正で HEAD の tests/ja-namazu-cgi-3 は PASS できました。

実装の違いが大きいので iconv は GNU に限定したいという話が
以前あったような気もしますが、
「//IGNORE」を使ってよいということであればとりあえず EUC-JP 不正
文字の出力は防げそうです。


Index: nmz/codeconv.c
===================================================================
RCS file: /storage/cvsroot/namazu/nmz/codeconv.c,v
retrieving revision 1.46
diff -u -r1.46 codeconv.c
--- nmz/codeconv.c 6 Jul 2011 11:18:10 -0000 1.46
+++ nmz/codeconv.c 25 Jul 2011 14:52:26 -0000
@@ -263,7 +263,11 @@
nmz_from_to(tmp, tmpsize, "UTF-8", "ISO-2022-JP");
} else {
tmpsize = strlen(tmp) + 1;
- nmz_from_to(tmp, tmpsize, "UTF-8", encoding);
+ char *tmpencode;
+ tmpencode = malloc(strlen(encoding) + 9);
+ strcpy(tmpencode, encoding);
+ strcat(tmpencode, "//IGNORE");
+ nmz_from_to(tmp, tmpsize, "UTF-8", tmpencode);
}
}

cvs diff: Diffing pl
cvs diff: Diffing pltests
cvs diff: Diffing po
cvs diff: Diffing scheme
cvs diff: Diffing scripts
cvs diff: Diffing src
cvs diff: Diffing template
cvs diff: Diffing tests
Index: tests/ja-namazu-cgi-3
===================================================================
RCS file: /storage/cvsroot/namazu/tests/ja-namazu-cgi-3,v
retrieving revision 1.2
diff -u -r1.2 ja-namazu-cgi-3
--- tests/ja-namazu-cgi-3 22 Jul 2011 13:22:45 -0000 1.2
+++ tests/ja-namazu-cgi-3 25 Jul 2011 14:52:27 -0000
@@ -45,7 +45,7 @@
pwd=`pwd`
tmprc="$pwd/../src/.namazurc"
echo "Index ../tests/idx1" > $tmprc
-echo "Lang ja" >> $tmprc
+echo "Lang ja_JP.eucJP" >> $tmprc
duprcs
cd ../src

cvs diff: Diffing tests/data
cvs diff: Diffing tests/data/decodebase64

臼田幸生
_______________________________________________
Namazu-devel-ja mailing list
Namazu-devel-ja@xxxxx
http://www.namazu.org/cgi-bin/mailman/listinfo/namazu-devel-ja


投稿者 xml-rpc : 2011年7月26日 00:00
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/105210
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。