« Intel MacでVMware??? | Main | どうしようもないねえ。 »
2006年3月11日
choose_write_coding_system
[ カテゴリ:
Emacsen
]
save-bufferすると、自動的に適切なcoding systemが選択されます。 実際はwrite-regionがやっていて、 もっと正確にはfileio.cのchoose_write_coding_systemがこの作業をしています。 このことからもわかるように、 lispレベルでは、選択されるであろうcoding systemをwrite-regionをする前に知ることはできません。
でも、file-name-handlerを書いたりすると、 実際にファイルに書く前にchoose_write_coding_sysmemの返り値を知りたくなります。 ここで、この関数の中を見てみるとemacs_openするより先にVlast_coding_system_usedが設定されています。 これを使えば、以下のようなお行儀の悪い方法で目的を達成できます。
(condition-case nil
(write-region start end "/")
(file-error last-coding-system-used))