[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:7103] Bug? of unix-to-dos-filename and dos-to-unix-filename



From: Kyotaro HORIGUCHI <horiguti@xxxxxxxxxxx> さん曰く
Subject: Re: [MD:7103] Bug? of unix-to-dos-filename and dos-to-unix-filename
Message-ID: <20051221.193937.104350188.horiguti@xxxxxxxxxxxxxxxxxxxx>
Date: Wed, 21 Dec 2005 19:39:37 +0900 (JST)

> >  2バイト目が 8f になるとこうなるみたいですね.
> >  'ワ', 'o', 'э', '縁', '随', etc..
> 
> たとえば "c:/随/tmp.txt" は normalize_filename の入り口では以下の
> ようなバイト列になっています. 00 bf 00 は内部コード? 
> 
> "c:/" 00 bf 00 "/tmp.txt"

ふーむ。わからん。

> 以下のようにすれば一応ちゃんとやってくれますが, 特に日本語環境で
> ではこんなようなことを単純に内部的にやってしまえばよいというのわけ
> ではないのは皆さんご承知のとおり.
> 
> (let ((coding
>        (or file-name-coding-system default-file-name-coding-system)))
>   (decode-coding-string 
>    (unix-to-dos-filename (encode-coding-string "c:/随/tmp.txt" coding))
>    coding))

elisp だけなら elisp で unix|dos-to-dos|unix-filename() を作っちゃ
えば良いのだけど、'C' でも unix_to_dos_filename() 呼んだりしてい
るからなぁ。

ちなみに、今回気付いたのは、mw32-sh-get-file-info が動かないなぁ?
からです。これは、'C' レベルで unix_to_dos_filename() を call し
ているから救えない。

> 内部コードのままマジメに追いかけるしかないんですか?

とりあえず ticket は書いた。

## さてどうする?は全然わかんない。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)