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

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



こんばんは田村です。
長々とお付き合い済みません。

On Sat, 21 Oct 2006 02:42:49 +0900, Takashi SHIRAI wrote:

>  Mac OS X の実態を良く知らないのですが、Normalization Forms
> 付の UTF-8 を吐く IME が用意されているんでしょうか?

[yuji:~] yuji% echo -n が|wc (メールからコピペした物、)
       0       1       3
[yuji:~] yuji% echo -n が|wc (純正ことえりの物、)
       0       1       3
[yuji:~] yuji% echo -n が|wc (egbridge Universalの物、)
       0       1       3

となりました??。
余談ですが、コマンドライン編集して

[yuji:~] yuji% echo -n が|wc (メールからコピペして)
       0       1       3
[yuji:~] yuji% echo -n ??? | wc (コマンドライン編集)
       0       1       5

何てことになったりする事も、これが先日言っていた shell の件
でしょうか?

>  なので、何のために正規化しているのか今一つ定かではありませ
> んね。単に新しもの好きだったのかも。だからわざわざ勉強してま
> でつき合う筋合いはないと思いますよ。
>  Apple は仕様を売ってるんじゃなくて実装を売ってる筈なので、
> end user の視点からは「濁点仮名のファイル名が扱えないぞ」と
> 一言文句を言ってやれば十分でしょう。

Apple には、一応この件に関しては、その旨レポートしましたが、
「ターミナル上での日本語環境は想定外」とか言われそうな気が...

web 等でもターミナル上での日本語環境構築について書かれた
物は良く目にしますが、こういう問題があると言うのは初めて
知りました。

勉強うんぬんというのは、いつも私は日本語環境でつまずく物ですから
有る程度の文字コード関係の知識はあった方がいいかなと。
そうでないと今回のように問題があった時の切り分けも難しいので。

>  なので、内蔵 IME を使って入力すれば普通にファイル名を編集
> 可能だと思います。

なるほど、これも実はあんまり興味を持って見ていなかった、と言うか
重要性を感じていなかったのですが、こういう利点があるのですね、
試して見ます。

ところで本題です、起動オプションのほうが良くわからないので、
始めに素の fd v2.09 で以下の .fd2rc で確認しました。

-----.fd2rc-----
#SORTTYPE=1
UNICODEBUFFER=1
LANGUAGE=""
DEFKCODE=""
INPUTKCODE=""
PTYINKCODE=""
PTYOUTKCODE=""
FNAMEKCODE=""
MESSAGELANG="C"
PAGER=lv
EDITOR=vim
-----.fd2rc-----

./fd で起動。

「/Users/yuji/012345678901234567」において、
日本語ファイル名が消える現象あり。

「/Users/yuji/Documents/10 blog」においても
日本語ファイル名が消える現象あり。

「/Users/yuji/Documents」以下において
ASCII なディレクトリ名が消える現象あり。
(頻度は日本語ファイル名よりは低い)

「/User2/yuji/Documents/10 blog」において、
日本語ファイル名が消える現象あり。

「/User2/yuji/Documents」において、
ASCII なファイル名が消える現象あり。
(頻度は日本語ファイル名よりは低い)

[FDclone-users:00627] の作業をした後の fd 。
同じ .fd2rc ./fd にて起動で確認しました。

「/Users/yuji/012345678901234567」
「/Users/yuji/Documents/10 blog」
「/Users/yuji/Documents」
「/User2/yuji/Documents/10 blog」
「/User2/yuji/Documents」

以上のディレクトリにおいて、ファイル名が消える現象は
確認できません(日本語、ASCII 両方とも消えません)。
少なくとも素の fd v2.09 の場合と同じ位の回数で確認
しました(大体15回くらい)。

次に [FDclone-users:00628] の件を確認。
一度素の状態の fd v2.09 を make して、上記と同じくファイル名
が消える事を確認しました。
次に、

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

まずこれだけ変更して見ましたが、ファイル名の消える現象は
確認できませんでした(消えません)。
次に、

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

こちらだけの変更で確認して見ました。
>  realloc2() だけ変更して直るというのは考えにくいのですが、
> malloc2() だけ変更して直るということは結構あり得るので、それ
> を確認することで多少絞り込みが可能になります。

すみませんどこまで、と言うのがわからなかったので、始めに
realloc(ptr, size * 16)
の方だけ変更して見ました。

「/Users/yuji/012345678901234567」
「/Users/yuji/Documents/10 blog」
「/Users/yuji/Documents」
「/User2/yuji/Documents/10 blog」
「/User2/yuji/Documents」

において、日本語ファイル名、ASCII ファイル名ともに消える現象
有りです。ただ、たまたまなのかどうなのか ASCII ファイル名の
消える確率は非常に低いです、危うく見逃すとこでした。
(20回に1回あるかどうか位)

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

後者と言うのがこちらを指すのか?と思い2ヶ所の変更です。
結果は上記のディレクトリでファイル名の消える現象は確認できません
でした(消えません)。結果から察するに、前者と言うのが
 malloc() 2ヶ所で、後者と言うのが realloc() 1ヶ所と言う
事だったですか?、
もしそうするとこれでは中途半端な検証になってしまいますか?

---
yuji tamura