« 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))

Comments

Post a comment




Remember Me?