This commit was generated by cvs2svn to compensate for changes in r533,
[elisp/tm.git] / tm-mule.el
index cd406f9..61d81e2 100644 (file)
@@ -1,39 +1,39 @@
 ;;;
-;;; $Id: tm-mule.el,v 6.1 1995/06/11 13:28:21 morioka Exp $
+;;; tm-mule.el --- tm definitions depended on Mule
 ;;;
+;;; Copyright (C) 1995 Free Software Foundation, Inc.
+;;; Copyright (C) 1994 .. 1996 MORIOKA Tomohiko
+;;;
+;;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;;; Version:
+;;;    $Id: tm-mule.el,v 7.9 1996/04/16 13:42:44 morioka Exp $
+;;; Keywords: mail, news, MIME, multimedia, multilingual, encoded-word
+;;;
+;;; This file is part of tm (Tools for MIME).
+;;;
+;;; 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:
 
+(require 'emu)
 (require 'tl-list)
-(require 'tl-mule)
 
-(if (not (fboundp 'member))
-    (require 'tl-18)
-  )
 
-;;; @ variables
+;;; @ coding-system
 ;;;
 
-(defvar mime/default-coding-system *ctext*)
-
-(defvar mime/lc-charset-and-encoding-alist
-  (list
-   (cons lc-ascii nil)
-   (cons lc-jp   '("ISO-2022-JP" . "B"))
-   (cons lc-cn   '("ISO-2022-CN" . "B"))
-   (cons lc-kr   '("EUC-KR"      . "B"))
-   (cons lc-ltn1 '("ISO-8859-1"  . "Q"))
-   (cons lc-ltn2 '("ISO-8859-2"  . "Q"))
-   (cons lc-ltn3 '("ISO-8859-3"  . "Q"))
-   (cons lc-ltn4 '("ISO-8859-4"  . "Q"))
-   (cons lc-crl  '("ISO-8859-5"  . "B"))
-;;;(cons lc-arb  '("ISO-8859-6"  . "B"))
-   (cons lc-grk  '("ISO-8859-7"  . "B"))
-   (cons lc-hbw  '("ISO-8859-8"  . "B"))
-   (cons lc-ltn5 '("ISO-8859-9"  . "Q"))
-   ))
-
-(defvar mime/latin-lc-list
-  (list lc-ascii lc-ltn1 lc-ltn2 lc-ltn3 lc-ltn4 lc-ltn5))
-
 (defvar mime/charset-coding-system-alist
   '(("ISO-2022-JP"     . *iso-2022-ss2-7*)
     ("ISO-2022-JP-2"   . *iso-2022-ss2-7*)
     ("ISO-8859-3"      . *iso-8859-3*)
     ("ISO-8859-4"      . *iso-8859-4*)
     ("ISO-8859-5"      . *iso-8859-5*)
+    ("KOI8-R"          . *koi8*)
     ("ISO-8859-7"      . *iso-8859-7*)
     ("ISO-8859-8"      . *iso-8859-8*)
     ("ISO-8859-9"      . *iso-8859-9*)
+    ("ISO-2022-INT-1"  . *iso-2022-int-1*)
+    ("SHIFT_JIS"       . *sjis*)
+    ("X-SHIFTJIS"      . *sjis*)
     ))
 
-(defvar mime/charset-lc-alist
+
+;;; @ leading-character and charset
+;;;
+
+(defvar mime/lc-charset-alist
   (list
-   (cons "ISO-8859-1" lc-ltn1) ; Latin-1
-   (cons "ISO-8859-2" lc-ltn2) ; Latin-2
-   (cons "ISO-8859-3" lc-ltn3) ; Latin-3
-   (cons "ISO-8859-4" lc-ltn4) ; Latin-4
-   (cons "ISO-8859-5" lc-crl ) ; Cyrillic
-;;;(cons "ISO-8859-6" lc-arb ) ; Arabic
-   (cons "ISO-8859-7" lc-grk ) ; Greek
-   (cons "ISO-8859-8" lc-hbw ) ; Hebrew
-   (cons "ISO-8859-9" lc-ltn5) ; Latin-5
+   (cons (list lc-ascii)         "US-ASCII")
+   (cons (list lc-ascii lc-ltn1) "ISO-8859-1")
+   (cons (list lc-ascii lc-ltn2) "ISO-8859-2")
+   (cons (list lc-ascii lc-ltn3) "ISO-8859-3")
+   (cons (list lc-ascii lc-ltn4) "ISO-8859-4")
+;;;(cons (list lc-ascii lc-crl)  "ISO-8859-5")
+   (cons (list lc-ascii lc-crl)  "KOI8-R")
+   (cons (list lc-ascii lc-grk)  "ISO-8859-7")
+   (cons (list lc-ascii lc-hbw)  "ISO-8859-8")
+   (cons (list lc-ascii lc-ltn5) "ISO-8859-9")
+   (cons (list lc-ascii lc-jp)   "ISO-2022-JP")
+   (cons (list lc-ascii lc-kr)   "EUC-KR")
+   (cons (list lc-ascii
+              lc-jp lc-cn
+              lc-kr lc-jp2
+              lc-ltn1 lc-grk) "ISO-2022-JP-2")
+   (cons (list lc-ascii
+              lc-jp lc-cn
+              lc-kr lc-jp2
+              lc-cns1 lc-cns2
+              lc-ltn1 lc-grk) "ISO-2022-INT-1")
    ))
 
+(defvar mime/unknown-charset "ISO-2022-INT-1")
 
-;;; @ define charset and encoding
-;;;
-(defun mime/set-charset-and-encoding (lc cs charset encoding)
-  (setq mime/lc-charset-and-encoding-alist
-       (put-alist lc (cons charset encoding)
-                  mime/lc-charset-and-encoding-alist))
-  (if cs
-      (setq mime/charset-coding-system-alist
-           (put-alist charset cs mime/charset-coding-system-alist))
-    (setq mime/charset-lc-alist
-         (put-alist charset lc mime/charset-lc-alist))
-    ))
-;;; example
+
+;;; @ functions
 ;;;
-;;; (mime/set-charset-and-encoding lc-kr *euc-kr* "EUC-KR" "B")
-;;; (mime/set-charset-and-encoding lc-koi8 nil "KOI8" "B")
-
-
-(defun mime/remove-leading-character (str)
-  (let ((dest "") (i 0) (len (length str)) chr)
-    (while (< i len)
-      (setq chr (elt str i))
-      (if (< chr 128)
-         (progn
-           (setq dest (concat dest (char-to-string chr)))
-           (setq i (+ i 1))
-           )
-       (progn
-         (setq dest (concat dest (char-to-string (elt str (+ i 1)))))
-         (setq i (+ i 2))
-         ))
-      )
-    dest))
-
-(defun mime/insert-leading-character (str lc)
-  (let ((lc-str (char-to-string lc))
-       (dest "")
-       (i 0) (len (length str))
-       chr chr-str)
-    (while (< i len)
-      (setq chr (elt str i))
-      (setq chr-str (char-to-string chr))
-      (setq dest (concat dest
-                        (if (< chr 128)
-                            chr-str
-                          (concat lc-str chr-str)
-                          )))
-      (setq i (+ i 1))
-      )
-    dest))
 
 (defun mime/convert-string-to-emacs (charset str)
   (let ((cs (cdr (assoc charset mime/charset-coding-system-alist))))
-    (cond (cs
-          (code-convert-string str cs *internal*)
-          )
-         (t
-          (let ((lc (cdr (assoc charset mime/charset-lc-alist))))
-            (if lc
-                (mime/insert-leading-character str lc)
-              str)
-            )))))
+    (if cs
+       (code-convert-string str cs *internal*)
+      )))
 
 (defun mime/convert-string-from-emacs (str charset)
   (let ((cs (cdr (assoc charset mime/charset-coding-system-alist))))
-    (cond (cs
-          (code-convert-string str *internal* cs)
-          )
-         (t
-          (if (assoc charset mime/charset-lc-alist)
-              (mime/remove-leading-character str)
-            str)))))
-
-;; by mol. 1993/10/4
-(defun mime/decode-encoded-text (charset encoding str)
-  (mime/convert-string-to-emacs
-   charset
-   (cond ((string-match "^B$" encoding)
-         (mime/base64-decode-string str))
-        ((string-match "^Q$" encoding)
-         (mime/Quoted-Printable-decode-string str))
-        (t (message "unknown encoding %s" encoding) str)
-        )))
-
+    (if cs
+       (code-convert-string str *internal* cs)
+      )))
 
 (defun mime/code-convert-region-to-emacs (beg end charset &optional encoding)
   (if (stringp charset)
       )))
 
 
-(run-hooks 'tm-mule-load-hook)
+;;; @ end
+;;;
 
 (provide 'tm-mule)
+
+(run-hooks 'tm-mule-load-hook)
+
+;;; tm-mule.el ends here