[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:
文字化け
>>>>> In [emacs-w3m : No.01590]
>>>>> TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> wrote:
土屋さん> ;; でもって、Mule2 用の w3m-detect-coding-region() を
土屋さん> ;; お願いします > 山岡さん
はーい。
Mule 1 と 2 には code-detect-region という built-in 関数があって、
pces-om.el で detect-coding-region という alias が定義されていま
すが、w3m-om.el に限っては前者がそのまま使えますね。[1]
Mule 1,2 の coding-category は mule.el の関数 set-coding-priority
の冒頭に書いてある 8種類で、このリストを直接に引き出す手段があり
ません。もしかしたらこんなもの↓を持つ必要があるかもしれません。
(defvar w3m-om-default-coding-priority-list
(sort '(*coding-category-big5*
*coding-category-bin*
*coding-category-internal*
*coding-category-iso-7*
*coding-category-iso-8-1*
*coding-category-iso-8-2*
*coding-category-iso-else*
*coding-category-sjis*)
'coding-priority<)
"*List of default coding categories in descending order of priority.")
Mule 1,2 の coding priority は各 category の symbol に付加された
`priority' という property の値で定義されています。例えば sjis
だったら
(get '*coding-category-sjis* 'priority)
=> 1
といった具合。関数 `coding-priority<' はこの数値の大小比較を行なっ
ています。
これらの優先度を変更する方法は Mule 1 の japanese.el や
korean.el で行なわれている方法が参考になります。
;; japanese.el
(setq *coding-category-iso-8-2* *euc-japan*)
(set-coding-priority
'(*coding-category-iso-8-2*
*coding-category-sjis*
*coding-category-iso-8-1*
*coding-category-big5*))
;; korean.el
(set-coding-priority
'(*coding-category-iso-8-2*
*coding-category-iso-8-1*))
(setq *coding-category-iso-8-2* *euc-korea*)
;; Mule 2 では japanese.el と同じことを mule.el で行なっています
;; が、korean.el の処理に相当するものが無くなってしまったみたい
;; ですね。
すみません、具体的な実装については後で考えます。が、どなたか [2]
先にやって下さっても構いません。
[1] 鶏頭のぼくには detect-coding-region に統一されていた方が嬉し
いかと言うとそうでもないのです。APEL を使わずに済むときはオ
リジナルを使った方がソースコードの可読性が良くなるし、むしろ
鶏頭が変に混乱しないで済む、というのが近ごろの経験則です。
[2] どなたか、って言っても土屋さんとぼく以外に古い Mule を実戦配
備している人はいらっしゃいましたっけ?
--
Katsumi Yamaoka <yamaoka@jpl.org>