[Squeak-ja: 2447] Re: MacOSX で FileDirectry fileNames の全角数字が半角になる

Tetsuya HAYASHI tetha @ st.rim.or.jp
2005年 5月 18日 (水) 19:45:46 JST


高橋さん、こんにちは
みなさん、どうも
林徹也です。

On 2005/05/18, at 16:21, Kouji takahashi wrote:

>  高橋@池袋です。
>
> MacOSX(10.3.9)上の Squeak 3.7.3Bete4jpc.app で  
> fileNameを取得すると全角数字が
> 半角数字に入れ替わってしまうようです。

私のところの Tiger (10.4.1) と Squeak  
3.8.6Beta6.app でも同じ問題が
確認できました。

> 例)本来のファイル名 取得されるファイル名
> × test1.txt → test1.txt
> × テスト1.txt → テスト1.txt
> ○ test1.txt
> ○ テスト1.txt
>
> ファイル・リストで上記のような名前のファイルを含むフォルダを見 
> るとファイル名は半角数字で
> 表示され、×印のファイル名では下側paneに内容表示をさせよ 
> うとするとデバッガが起動します。
>
> image側の問題では無く
> FileDirectry>>primLookupEntryIn:index: のレベルで誤ったファイ 
> ル名が返っているようです。

ご指摘の通り、これは、VM の問題かと推察されます。
Carbon Squeak VM は、ディレクトリのエントリを取得する際に、古い 
APIを
使ってるので内部的に UTF-8 <-> ShiftJIS と相互に変換して動 
いており、
さらに、UTF-8について Apple では decomposed な 
ものを用いてる関係から
起きてる問題ではないかと思われます。

今手元で確認できないのですが…
もし、よければどなたか、VM ソースの中の  
CFStringNormalize 関数で引数
の定数を以下のように

kCFStringNormalizationFormKC
     → kCFStringNormalizationFormC

kCFStringNormalizationFormKD
     → kCFStringNormalizationFormD

変更してビルドしたものだとどうなるでしょうか?


--
Tetsuya HAYASHI <tetha @ st.rim.or.jp>
PGP: 5C 7D 4C 07 DA 73 74 C4  1F 6D 87 EE FD 09 0D FE




Squeak-ja メーリングリストの案内