[Date Prev][Date Next][Thread Prev][][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>