[Macemacsjp-users 776] Re: patch for utf-8m

Back to archive index

Seiji Zenitani zenit****@tkg*****
2005年 11月 20日 (日) 06:32:02 JST


おはようございます。銭谷です。

On 2005/11/20, at 1:27, irodo****@irodo***** wrote:

> 本庄です。
>
> utf-8m ですが、UFS ボリューム上ではうまく動作し 
> ないことがわかりました
> ので、動作するようエンコード側(?)の処理を 
> 追加してみました。
> patch を添付します。elisp は見よう見まねで書いて 
> いるのでかなりいい加減
> です。より良い実装があったら修正してください。
>
pre-write-conversion を使った逆変換は
utf-8m 作成時 (mac-utf のさらに前) に
当然考えたんですけど、いくつかの理由で
途中でやめてしまいました。

1.
テキストファイルをこのエンコーディングで保存す 
ると
が→か+” に分解されるなど、バッファ内の表示 
が崩れてしまう。
これは本庄さんのバージョンでも発現します。

2.
C-xC-f でファイルを開くとき、ミニバッファ中で
スペースキーでファイル名を補完しようとすると、
エラーを起こす。
本庄さんの修正バージョンではエラーは出ませんが、
アクセント記号を含むフォルダ(例:étoir)で
補完文字列にゴミが入ってしまいます。

このうち、1. は、ファイル名としての利用に
問題がなければ気にしなくて良いかもしれません。
2. は、境界処理の工夫などで
なんとか対処できないものでしょうか?


> 以下は emacs とファイルシステムとの関係を簡単に 
> まとめたものです。興味
> のない方は飛ばしてください。
>
>
> **********************************************************************
> HFS+ の環境ではファイルシステム側で NFC/NFD の差 
> を吸収してくれるようで
> すが、UFS ではそのような変換が行われないため、 
> 現状の utf-8m では以下の
> ような状況が起きていると考えられます。
> UFS で起こっている状況は NFS やその他のファイル 
> システムでも起こる可能
> 性があります。
>
> 開く
>   1. ファイル名を読む (NFD)
>   2. utf-8m が UTF-8 NFC に変換する (NFD -> NFC)
>   3. ファイルを要求する
>   HFS+ の場合
>     4. システムがファイル名を変換する (NFC -> NFD)
>     5. ファイルが開く
>   UFS の場合
>     4. ファイルがみつからないためエラー
>
> 保存する
>   1. ファイル名を作成する (NFC)
>   2. ファイルを保存する
>   HFS+ の場合
>     3. システムがファイル名を変換する (NFC -> NFD)
>     4. ファイルが保存される (NFD)
>   UFS の場合
>     3. ファイルが保存される (NFC)
> **********************************************************************
>
「保存」の振る舞いは上記のとおりです。
「開く」ときの振る舞いは僕もよくわかっていませ 
んが、
上記の説明で

・UFS ボリューム上で utf-8(m)-NFC のファイルを作成す 
ると
 今度は「開く」ことができる。
・UFS 上では、同じディレクトリ内に
 NFC と NFD のファイルを作ってしまう

といった現象も説明できると思います。

-- 
銭谷誠司
zenit****@tkg*****



Macemacsjp-users メーリングリストの案内
Back to archive index