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

[FDclone-users:00627] Re: 仕切り直します。



こんばんは田村です。
すみません仕事が忙しく沈んでおりました。

ここのところ、ASCII のみのファイル名が消える現象の再現確率
が低いのか、確認できないのですが。

素の fd v2.09 にて、
./fd -FNAMEKCODE=utf8-mac -UNICODEBUFFER=1 '/User2/yuji/Documents/10 
blog'
として起動し、日本語を含むファイル名が消えるのを確認する。

以下作業して見ました。

On Mon, 09 Oct 2006 06:42:10 +0900, Takashi SHIRAI wrote:

>  [FDclone-users:00610] で libc.c: strdup2() の検証を行なっ
> て貰いましたが、同じことを malloc2() と realloc2() でも行な
> ってみましょう。
>  strdup2() の直前に malloc2() と realloc2() の実体がありま
> す。その中に malloc() が二箇所と realloc() が一箇所あります。
> その引数の「size」を「size * 16」くらいに増やしてみましょう。

-----libc.c-----
	if (!size || !(tmp = (char *)malloc(size * 16))) {
-----libc.c-----

-----libc.c-----
	|| !(tmp = (ptr) ? (char *)realloc(ptr, size * 16) : (char 
*)malloc(size * 16)))
	{
-----libc.c-----

これで良いのでしょうか?
順番にやって見たのですが、この時点で日本語を含むファイル名が
消える現象は確認できなくなりました。

>  strdup2() の下には strndup2() があってこの中にも malloc()
> があるので、この引数も「i * 16 + 1」くらいに増やします。つい
> でに strdup2() の引数も「n * 16 + 1」にしましょう。

-----libc.c-----
	if (!(tmp = (char *)malloc((ALLOC_T)i * 16 + 1))) error
-----libc.c-----

-----libc.c-----
	if (!(tmp = (char *)malloc((ALLOC_T)n * 16 + 1))) error
-----libc.c-----

こうで良いのでしょうか?
ここまでの作業で、日本語を含むファイル名が消える現象は確認できません。
いろいろな条件にて、確認作業中です。

ただ、これまでの確認作業中に気になる点が何点か、
出てきました。確認して報告します。
---
yuji tamura