;;; ;;; gnus-charset.el --- MIME charset extension for Gnus ;;; ;;; Copyright (C) 1995 Free Software Foundation, Inc. ;;; Copyright (C) 1995,1996 MORIOKA Tomohiko ;;; ;;; Author: MORIOKA Tomohiko ;;; Created: 1996/8/6 ;;; Version: ;;; $Id: gnus-charset.el,v 0.1 1996/08/06 12:07:28 morioka Exp $ ;;; Keywords: news, MIME, multimedia, multilingual, encoded-word ;;; ;;; This file is not part of GNU Emacs yet. ;;; ;;; This program is free software; you can redistribute it and/or ;;; modify it under the terms of the GNU General Public License as ;;; published by the Free Software Foundation; either version 2, or ;;; (at your option) any later version. ;;; ;;; This program is distributed in the hope that it will be useful, ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;;; General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with This program. If not, write to the Free Software ;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;;; ;;; Code: (defvar running-xemacs (string-match "XEmacs" emacs-version)) (defvar running-xemacs-20 (and running-xemacs (= emacs-major-version 20))) ;;; @ newsgroup default charset ;;; (defvar gnus-newsgroup-default-charset-alist nil) (defun gnus-set-newsgroup-default-charset (newsgroup charset) "Set CHARSET for the NEWSGROUP as default MIME charset." (set-alist 'gnus-newsgroup-default-charset-alist (concat "^" (regexp-quote newsgroup) "\\($\\|\\.\\)") charset)) ;;; @ for mule (Multilingual support) ;;; (cond ((featurep 'mule) (cond ((boundp 'MULE) ; for MULE 1.* and 2.*. (defun gnus-set-nntp-coding-system () (define-service-coding-system gnus-nntp-service nil *noconv*) ) (add-hook 'gnus-open-server-hook 'gnus-set-nntp-coding-system) ) (running-xemacs-20 (or (boundp '*noconv*) (defconst *noconv* 'noconv) ))) (call-after-loaded 'nnheader (lambda () (defun nnheader-find-file-noselect (filename &optional nowarn rawfile) (let ((file-coding-system-for-read *noconv*)) (find-file-noselect filename nowarn rawfile) )) (defun nnheader-insert-file-contents-literally (filename &optional visit beg end replace) (let ((file-coding-system-for-read *noconv*)) (insert-file-contents-literally filename visit beg end replace) )) )) (call-after-loaded 'nnmail (lambda () (defun nnmail-find-file (file) "Insert FILE in server buffer safely. [tm-gnus5.el]" (set-buffer nntp-server-buffer) (erase-buffer) (let ((format-alist nil) (after-insert-file-functions ; for jam-code-guess (if (memq 'jam-code-guess-after-insert-file-function after-insert-file-functions) '(jam-code-guess-after-insert-file-function))) (file-coding-system-for-read *noconv*)) (condition-case () (progn (insert-file-contents file) t) (file-error nil)))) )) (defun gnus-prepare-save-mail-function () (setq file-coding-system *noconv*) ) (add-hook 'nnmail-prepare-save-mail-hook 'gnus-prepare-save-mail-function) (gnus-set-newsgroup-default-charset "alt.chinese" 'hz) (gnus-set-newsgroup-default-charset "alt.chinese.text.big5" 'big5) (gnus-set-newsgroup-default-charset "tw" 'big5) (gnus-set-newsgroup-default-charset "hk" 'big5) (gnus-set-newsgroup-default-charset "hkstar" 'big5) (gnus-set-newsgroup-default-charset "han" 'euc-kr) (gnus-set-newsgroup-default-charset "relcom" 'koi8-r) )) ;;; @ end ;;; (provide 'gnus-charset) ;;; gnus-charset.el ends here