[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: Show coding-system on mode-line



>>>>> In [emacs-w3m : No.01787] 
>>>>>	TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> wrote:

土> 確かに、set-buffer-file-coding-system() だと副作用が心配なので、以
土> 下のようにしたらどうでしょうか?
土> 手元で使っている限りでは問題なさそうでしたので、commit しました。

Mule だと変化しません(;_;)
`set-buffer-file-coding-system' も主として buffer-file-coding-system
を替えるだけ(*1)のようですし、Mule でも APEL で set-file-coding-system
に alias されています。
手元では特に問題もなさそうなので、そちらを使うようにしました。

*1: FSF Emacs では (set-buffer-modified-p t) とされてしまうというのが
    あります。現状では w3m-goto-url でその後 nil にしているので問題は
    ありませんが、コード上分かりにくいので、直後で nil にした方が良い
    ですかね?

土> ;; このように表示されるようになると、about://source/... で表示したとき
土> ;; の文字コードが一致しないのが少し気になってきますね。

ああ、about://source/... は
 (1) w3m-about-source でデコード
 (2) w3m-about-retrieve で w3m-coding-system でエンコード
 (3) w3m-exec でデコード
としているので、常に w3m-coding-system になるのですね。

これと関連しますが、about://source/... を表示している時に 
`C' (w3m-redisplay-with-charset) を実行すると、指定の coding-system
は (3) のデコード時に使われるので期待しない動きになります。

ということで、以下のようにしてみました。

2001-10-16  ARISAWA Akihiro  <ari@mbf.sphere.ne.jp>

	* w3m.el (w3m-attributes): When URL matches `about://source/',
	returns nil as its content-charset.
	(w3m-about-retrieve): When URL matches `about://source/',
	don't call `encode-coding-region'.
	(w3m-about-source): Don't call `w3m-decode-region'.


;; w3m-view-source する前に `C' を実行していれば、そこで指定された
;; coding-system で decode されて欲しいところ。

-- 
有沢 明宏
ちょうど昨日 Mule を入れたところでした。