/incoming/mew-1.94.2/mew-mule3.el
Emacs Lisp | 236 lines | 138 code | 35 blank | 63 comment | 0 complexity | d751fd39b903d34982eedc5b4ffca284 MD5 | raw file
- ;;; mew-mule3.el --- Environment of Mule version 3 for Mew
- ;; Author: Kazu Yamamoto <Kazu@Mew.org>
- ;; Created: Mar 20, 1997
- ;; Revised: Aug 30, 1999
- ;;; Code:
- (defconst mew-mule3-version "mew-mule3.el version 0.14")
- ;; must be here
- (if (fboundp 'find-coding-system)
- (fset 'mew-coding-system-p (symbol-function 'find-coding-system))
- (fset 'mew-coding-system-p (symbol-function 'coding-system-p)))
- ;; In the context of Mew, 'charset' means MIME charset.
- ;; 'cs' means the internal representation of Emacs (was known as Mule).
- ;;
- ;; User CS definitions
- ;;
- ;; iso-2022-7bit-ss2 is iso-2022-jp-2
- (cond
- (mew-xemacs-p
- (copy-coding-system 'no-conversion 'mew-cs-text)
- (copy-coding-system 'no-conversion-unix 'mew-cs-text-lf)
- (copy-coding-system 'no-conversion-dos 'mew-cs-text-crlf)
- (copy-coding-system 'no-conversion-mac 'mew-cs-text-cr))
- (t
- (define-coding-system-alias 'mew-cs-text 'raw-text)
- (define-coding-system-alias 'mew-cs-text-lf 'raw-text-unix)
- (define-coding-system-alias 'mew-cs-text-crlf 'raw-text-dos)
- (define-coding-system-alias 'mew-cs-text-cr 'raw-text-mac)))
- (defvar mew-cs-dummy 'binary)
- (defvar mew-cs-binary 'binary)
- (defvar mew-cs-text-for-read 'mew-cs-text)
- (defvar mew-cs-text-for-write 'mew-cs-text-lf)
- (defvar mew-cs-autoconv 'undecided)
- (defvar mew-cs-7bit 'iso-2022-7bit-ss2)
- (defvar mew-cs-7bit-crlf 'iso-2022-7bit-ss2-dos)
- (defvar mew-cs-mime-trans 'iso-2022-7bit-ss2)
- (defvar mew-cs-rfc822-trans 'iso-2022-7bit-ss2)
- (defvar mew-cs-draft 'iso-2022-7bit-ss2)
- (defvar mew-cs-scan 'ctext)
- (defvar mew-cs-infile 'undecided) ;; guess in +draft
- (defvar mew-cs-outfile 'iso-2022-7bit-ss2)
- (defvar mew-cs-virtual (if (mew-coding-system-p 'ctext-unix)
- 'ctext-unix 'ctext)) ;; ^M as it is
- (defvar mew-cs-pick 'euc-jp)
- (defvar mew-cs-database
- '(("us-ascii" (ascii) nil "7bit"
- nil "Q")
- ("iso-8859-1" (ascii latin-iso8859-1) iso-8859-1 "quoted-printable"
- iso-8859-1 "Q")
- ("iso-8859-2" (ascii latin-iso8859-2) iso-8859-2 "quoted-printable"
- iso-8859-2 "Q")
- ("iso-8859-3" (ascii latin-iso8859-3) iso-8859-3 "quoted-printable"
- iso-8859-3 "Q")
- ("iso-8859-4" (ascii latin-iso8859-4) iso-8859-4 "quoted-printable"
- iso-8859-4 "Q")
- ("koi8-r" (ascii cyrillic-iso8859-5) koi8-r "quoted-printable"
- koi8-r "Q")
- ("iso-8859-6" (ascii arabic-iso8859-6) iso-8859-6 "base64"
- iso-8859-6 "B")
- ("iso-8859-7" (ascii greek-iso8859-7) iso-8859-7 "base64"
- iso-8859-7 "B")
- ("iso-8859-8" (ascii hebrew-iso8859-8) iso-8859-8 "base64"
- iso-8859-8 "B")
- ("iso-8859-9" (ascii latin-iso8859-9) iso-8859-9 "quoted-printable"
- iso-8859-9 "Q")
- ("tis-620" (ascii thai-tis620) tis620 "base64"
- tis620 "B")
- ("iso-2022-jp"
- (ascii latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978)
- iso-2022-jp "7bit"
- iso-2022-jp "B")
- ("euc-kr" (ascii korean-ksc5601) euc-kr "base64"
- euc-kr "B")
- ("iso-2022-kr" (ascii korean-ksc5601) iso-2022-kr "7bit"
- euc-kr "B")
- ("gb2312" (ascii chinese-gb2312) cn-gb-2312 "base64"
- cn-gb-2312 "B")
- ("hz-gb-2312" (ascii chinese-gb2312) hz-gb-2312 "7bit"
- hz-gb-2312 "B")
- ("big5" (ascii chinese-big5-1 chinese-big5-2)
- chinese-big5 "base64"
- chinese-big5 "B")
- ("iso-2022-jp-2"
- (ascii
- latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978 japanese-jisx0212
- chinese-gb2312 korean-ksc5601 latin-iso8859-1 greek-iso8859-7)
- iso-2022-7bit-ss2 "7bit"
- iso-2022-7bit-ss2 "B")
- ;; charset-to-cs purpose only
- ("euc-jp" nil euc-japan)
- ("shift_jis" nil shift_jis)
- ("cn-gb" nil cn-gb-2312) ;; the same as gb2312 above
- ("cn-big5" nil chinese-big5) ;; the same as big5 above
- ("iso-2022-cn" nil iso-2022-cn)
- ("iso-2022-cn-ext" nil iso-2022-cn-ext)
- ("iso-2022-int-1" nil iso-2022-int-1)
- ))
- ;;
- ;; Leading characters
- ;;
- (defvar mew-lc-ascii 'ascii)
- (defvar mew-lc-jp 'japanese-jisx0208)
- (defvar mew-lc-kana 'katakana-jisx0201)
- (defalias 'mew-make-char 'make-char)
- (defalias 'mew-char-charset 'char-charset)
- ;;
- ;; CS
- ;;
- (defalias 'mew-find-cs-region 'find-charset-region)
- ;; to internal
- (defun mew-cs-decode-region (beg end cs)
- (if cs (decode-coding-region beg end cs)))
- ;; to extenal
- (defun mew-cs-encode-region (beg end cs)
- (if cs (encode-coding-region beg end cs)))
- ;; to internal
- (defun mew-cs-decode-string (str cs)
- (if cs (decode-coding-string str cs) str))
- ;; to external
- (defun mew-cs-encode-string (str cs)
- (if cs (encode-coding-string str cs) str))
- ;;
- ;; Process environment
- ;;
- (defun mew-set-process-cs (process read write)
- (set-process-coding-system process read write))
- (defmacro mew-plet (&rest body)
- `(let ((call-process-hook nil)
- (coding-system-for-read 'binary)
- (coding-system-for-write 'binary))
- ,@body))
- (defmacro mew-piolet (read write &rest body)
- `(let ((call-process-hook nil)
- (coding-system-for-read ,read)
- (coding-system-for-write ,write))
- ,@body))
- (defmacro mew-pioalet (read write arg &rest body)
- `(let ((call-process-hook nil)
- (coding-system-for-read ,read)
- (coding-system-for-write ,write)
- (file-name-coding-system ,arg))
- ,@body))
- (defmacro mew-flet (&rest body)
- `(let ((coding-system-for-read 'binary)
- (coding-system-for-write 'binary)
- jam-zcat-filename-list
- jka-compr-compression-info-list)
- ,@body))
- (defmacro mew-frwlet (read write &rest body)
- `(let ((coding-system-for-read ,read)
- (coding-system-for-write ,write)
- jam-zcat-filename-list
- jka-compr-compression-info-list)
- ,@body))
- ;;
- ;; Post conversion
- ;;
- (defun mew-cs-post-conv (cs) ()) ;; not necessary because internally applied
- ;;
- ;;
- ;;
- (cond
- ((and mew-temacs-p (string< emacs-version "20.2.90"))
- (fset 'mew-aref (symbol-function 'sref))
- (fset 'mew-charlen (symbol-function 'char-bytes)))
- (t
- (fset 'mew-aref (symbol-function 'aref))
- (defmacro mew-charlen (c) (` 1)))
- )
- ;;
- ;;
- ;;
- (require 'mew-mule)
- (provide 'mew-mule3)
- ;;; Copyright Notice:
- ;; Copyright (C) 1997, 1998, 1999 Mew developing team.
- ;; All rights reserved.
- ;; Redistribution and use in source and binary forms, with or without
- ;; modification, are permitted provided that the following conditions
- ;; are met:
- ;;
- ;; 1. Redistributions of source code must retain the above copyright
- ;; notice, this list of conditions and the following disclaimer.
- ;; 2. Redistributions in binary form must reproduce the above copyright
- ;; notice, this list of conditions and the following disclaimer in the
- ;; documentation and/or other materials provided with the distribution.
- ;; 3. Neither the name of the team nor the names of its contributors
- ;; may be used to endorse or promote products derived from this software
- ;; without specific prior written permission.
- ;;
- ;; THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS'' AND
- ;; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- ;; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- ;; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TEAM OR CONTRIBUTORS BE
- ;; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- ;; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- ;; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- ;; BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- ;; WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- ;; OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- ;; IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- ;;; mew-mule3.el ends here