[mew-dist 18204] Re: C-cC-l vs file-coding-system
Shun-ichi TAHARA ( 田原 俊一 )
jado at example.com
2001年 7月 25日 (水) 03:07:52 JST
From: Kazu Yamamoto (山本和彦) <kazu at example.com>
Message-Id: <20010725.002555.86408287.kazu at example.com>
> > set-language-environment-coding-systems() から必要な部分だけ抜き出して、
> > mew-set-language-environment-coding-systems() とか作って実験してもらえ
> > ませんか? (結構簡単そうです。)
>
> 時間ができたので作ってみました。anon cvs で、お試しあれ。
XEmacsでは、[mew-dist 18202] のようにしないとダメですね。
# このへん関数構成が全然違う…
さて、
From: Shun-ichi TAHARA (田原 俊一) <jado at example.com>
Message-Id: <20010725.011813.846937928.jado at example.com>
> ただし、これでは、ユーザがcoding-priorityを設定しているとまずいですの
> で、上記設定を保存して復元する枠組みが欲しいところですが、取り急ぎとい
> うことでこれは保留。
実際にここまでやる必要があるかどうかはともかくとして、これもやってみま
した。
(setq lenv (mew-set-language-environment-coding-systems lang))
で、元の priority を保存した後で切り替え
(when (and (not askcs) lenv)
(mew-reset-coding-systems (car lenv) (cdr lenv)))
で、元に戻します。
XEmacs21用のコード (XEmacs-21.4.3 で確認):
(defun mew-reset-coding-systems (priority categories)
(let (category checked-categories)
(while priority
(unless (memq (setq category (car categories)) checked-categories)
(set-coding-category-system category (car priority))
(setq checked-categories (cons category checked-categories)))
(setq priority (cdr priority)
categories (cdr categories)))
(set-coding-priority-list (nreverse checked-categories))))
(defun mew-set-language-environment-coding-systems (language-name)
(let ((priority (get-language-info language-name 'coding-priority)))
(if priority
(let* ((categories (mapcar 'coding-system-category priority))
(orig-categories (coding-priority-list))
(orig-priority (mapcar 'coding-category-system orig-categories)))
(mew-reset-coding-systems priority categories)
(cons orig-priority orig-categories)))))
Emacs-20.7用のコード(例によって未確認 (__)):
(defun mew-reset-coding-systems (priority categories)
(set-coding-priority categories)
(while priority
(set (car categories) (car priority))
(setq priority (cdr priority) categories (cdr categories)))
(update-coding-systems-internal))
(defun mew-set-language-environment-coding-systems (language-name)
(let ((priority (get-language-info language-name 'coding-priority)))
(if priority
(let* ((categories (mapcar 'coding-system-category priority))
(orig-categories coding-category-list)
(orig-priority (mapcar 'eval orig-categories)))
(mew-reset-coding-systems priority categories)
(cons orig-property orig-categories)))))
_______________________________
田原 俊一 jado at example.com, shunichi_tahara at example.com
http://flowernet.gr.jp/jado/
FingerPrint: 16 9E 70 3B 05 86 5D 08 B8 4C 47 3A E7 E9 8E D9
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
Mew-dist メーリングリストの案内