X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-i18n.el;h=7e3f2f39f00322a2e95b2ae3a08d504f1ef2b8c6;hb=b76ba0439872f45741c9ab8cfa7ad9d632c5a0f0;hp=24142e5635f9581e681ba7ba7cc74a63bc4e438a;hpb=512e115aa2c7bee04303781b57e37f8a4ea719e6;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-i18n.el b/lisp/gnus-i18n.el index 24142e5..7e3f2f3 100644 --- a/lisp/gnus-i18n.el +++ b/lisp/gnus-i18n.el @@ -25,20 +25,17 @@ ;;; Code: -(require 'gnus-sum) -(require 'gnus-util) - ;;; @ newsgroup default charset ;;; (defvar gnus-newsgroup-default-charset-alist - '(("^\\(fj\\|tnn\\|japan\\)\\." . iso-2022-jp-2) - ("^han\\." . euc-kr) - ("^relcom\\." . koi8-r) - ("^alt\\.chinese\\.text\\.big5" . cn-big5) - ("^hk\\(star\\)?\\." . cn-big5) - ("^tw\\." . cn-big5) - ("^alt\\.chinese" . hz-gb-2312) + '(("\\(^\\|:\\)\\(fj\\|tnn\\|japan\\)\\." . iso-2022-jp-2) + ("\\(^\\|:\\)han\\." . euc-kr) + ("\\(^\\|:\\)relcom\\." . koi8-r) + ("\\(^\\|:\\)alt\\.chinese\\.text\\.big5" . cn-big5) + ("\\(^\\|:\\)hk\\(star\\)?\\." . cn-big5) + ("\\(^\\|:\\)tw\\." . cn-big5) + ("\\(^\\|:\\)alt\\.chinese" . hz-gb-2312) ) "Alist of newsgroup patterns vs. corresponding default MIME charset. Each element looks like (REGEXP . SYMBOL). REGEXP is pattern for @@ -47,12 +44,14 @@ newsgroup name. SYMBOL is MIME charset or coding-system.") (defun gnus-set-newsgroup-default-charset (newsgroup charset) "Set CHARSET for the NEWSGROUP as default MIME charset." (let* ((ng-regexp (concat "^" (regexp-quote newsgroup) "\\($\\|\\.\\)")) - (pair (assoc ng-regexp gnus-newsgroup-default-charset-alist))) + (pair (assoc ng-regexp gnus-newsgroup-default-charset-alist)) + ) (if pair (setcdr pair charset) (setq gnus-newsgroup-default-charset-alist (cons (cons ng-regexp charset) - gnus-newsgroup-default-charset-alist))))) + gnus-newsgroup-default-charset-alist)) + ))) ;;; @ localization @@ -62,46 +61,31 @@ newsgroup name. SYMBOL is MIME charset or coding-system.") "Set up `default-mime-charset' of summary buffer. It is specified by variable `gnus-newsgroup-default-charset-alist' \(cf. function `gnus-set-newsgroup-default-charset')." - ;; We are in `nntp-server-buffer' now. (if (buffer-live-p gnus-summary-buffer) - (let* ((qgroup (save-excursion - (set-buffer gnus-summary-buffer) - gnus-newsgroup-name)) - (rgroup (gnus-group-real-name qgroup)) - alist pair charset) - (setq charset (catch 'found - ;; First, use "qualified" newsgroup name. - (setq alist gnus-newsgroup-default-charset-alist) - (while (setq pair (car alist)) - (if (string-match (car pair) qgroup) - (throw 'found (cdr pair))) - (setq alist (cdr alist))) - ;; Next, try "real" newsgroup name. - (setq alist gnus-newsgroup-default-charset-alist) - (while (setq pair (car alist)) - (if (string-match (car pair) rgroup) - (throw 'found (cdr pair))) - (setq alist (cdr alist))))) + (let ((charset + (catch 'found + (let ((group + (save-excursion + (set-buffer gnus-summary-buffer) + gnus-newsgroup-name)) + (alist gnus-newsgroup-default-charset-alist)) + (while alist + (let ((pair (car alist))) + (if (string-match (car pair) group) + (throw 'found (cdr pair)) + )) + (setq alist (cdr alist))) + )))) (if charset - (progn - (save-excursion - ;; Set `default-mime-charset' in summary buffer. - (set-buffer gnus-summary-buffer) - (make-local-variable 'default-mime-charset) - (setq default-mime-charset charset)) - ;; Also set `default-mime-charset' in current buffer. - (make-local-variable 'default-mime-charset) - (setq default-mime-charset charset)) - ;; Reset `default-mime-charset' in current buffer. + (progn + (save-excursion + (set-buffer gnus-summary-buffer) + (make-local-variable 'default-mime-charset) + (setq default-mime-charset charset)) + (make-local-variable 'default-mime-charset) + (setq default-mime-charset charset)) (kill-local-variable 'default-mime-charset))))) -(defun gnus-get-summary-default-charset () - "Get the value of `default-mime-charset' from summary buffer." - (and (buffer-live-p gnus-summary-buffer) - (save-excursion - (set-buffer gnus-summary-buffer) - default-mime-charset))) - ;;; @ end ;;;