update.
[elisp/apel.git] / mcs-xm.el
index fdc565d..0fd6d8d 100644 (file)
--- a/mcs-xm.el
+++ b/mcs-xm.el
@@ -1,6 +1,6 @@
 ;;; mcs-xm.el --- MIME charset implementation for XEmacs-mule
 
-;; Copyright (C) 1997,1998 Free Software Foundation, Inc.
+;; Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Keywords: emulation, compatibility, Mule
 (require 'mcs-20)
 
 
-(defun encode-mime-charset-region (start end charset)
+(defun encode-mime-charset-region (start end charset &optional lbt)
   "Encode the text between START and END as MIME CHARSET."
-  (let ((cs (mime-charset-to-coding-system charset)))
+  (let ((cs (mime-charset-to-coding-system charset lbt)))
     (if cs
        (encode-coding-region start end cs)
       )))
 
 
 (defcustom mime-charset-decoder-alist
-  '((iso-2022-jp . decode-mime-charset-region-with-iso646-unification)
-    (iso-2022-jp-2 . decode-mime-charset-region-with-iso646-unification)
-    (x-ctext . decode-mime-charset-region-with-iso646-unification)
-    (hz-gb-2312 . decode-mime-charset-region-for-hz)
-    (t . decode-mime-charset-region-default))
+  (let ((alist
+        '((hz-gb-2312 . decode-mime-charset-region-for-hz)
+          (t . decode-mime-charset-region-default))))
+    (if (featurep 'utf-2000)
+       alist
+      (list*
+       '(iso-2022-jp . decode-mime-charset-region-with-iso646-unification)
+       '(iso-2022-jp-2 . decode-mime-charset-region-with-iso646-unification)
+       alist)))
   "Alist MIME-charset vs. decoder function."
   :group 'i18n
   :type '(repeat (cons mime-charset function)))
        (decode-coding-region start end cs)
       )))
 
-(defcustom mime-iso646-character-unification-alist
-  (eval-when-compile
-    (let (dest
-         (i 33))
-      (while (< i 92)
-       (setq dest
-             (cons (cons (char-to-string (make-char 'latin-jisx0201 i))
-                         (format "%c" i))
-                   dest))
-       (setq i (1+ i)))
-      (setq i 93)
-      (while (< i 126)
-       (setq dest
-             (cons (cons (char-to-string (make-char 'latin-jisx0201 i))
-                         (format "%c" i))
-                   dest))
-       (setq i (1+ i)))
-      (nreverse dest)))
-  "Alist unified string vs. canonical string."
-  :group 'i18n
-  :type '(repeat (cons string string)))
-
-(defcustom mime-unified-character-face nil
-  "*Face of unified character."
-  :group 'i18n
-  :type 'face)
-
-(defcustom mime-character-unification-limit-size 2048
-  "*Limit size to unify characters."
-  :group 'i18n
-  :type 'integer)
-
-(defun decode-mime-charset-region-with-iso646-unification (start end charset
-                                                                lbt)
-  (decode-mime-charset-region-default start end charset lbt)
-  (if (<= (- end start) mime-character-unification-limit-size)
-      (save-excursion
-       (let ((rest mime-iso646-character-unification-alist))
-         (while rest
-           (let ((pair (car rest)))
-             (goto-char (point-min))
-             (while (search-forward (car pair) nil t)
-               (let ((str (cdr pair)))
-                 (put-text-property 0 (length str)
-                                    'face mime-unified-character-face str)
-                 (replace-match str 'fixed-case 'literal)
-                 )
-               ))
-           (setq rest (cdr rest)))))
-    ))
+(unless (featurep 'utf-2000)
+  (require 'mcs-xmu))
 
 (defun decode-mime-charset-region-for-hz (start end charset lbt)
   (if lbt
                       (assq t mime-charset-decoder-alist)))))
     (funcall func start end charset lbt)))
 
-(defsubst encode-mime-charset-string (string charset)
+(defsubst encode-mime-charset-string (string charset &optional lbt)
   "Encode the STRING as MIME CHARSET."
-  (let ((cs (mime-charset-to-coding-system charset)))
+  (let ((cs (mime-charset-to-coding-system charset lbt)))
     (if cs
        (encode-coding-string string cs)
       string)))
     ((ascii korean-ksc5601)                            . euc-kr)
     ((ascii chinese-gb2312)                            . gb2312)
     ((ascii chinese-big5-1 chinese-big5-2)             . big5)
+    ((ascii thai-xtis)                                 . tis-620)
     ((ascii latin-iso8859-1 greek-iso8859-7
            latin-jisx0201 japanese-jisx0208-1978
            chinese-gb2312 japanese-jisx0208
            korean-ksc5601 japanese-jisx0212)           . iso-2022-jp-2)
-    ((ascii latin-iso8859-1 greek-iso8859-7
-           latin-jisx0201 japanese-jisx0208-1978
-           chinese-gb2312 japanese-jisx0208
-           korean-ksc5601 japanese-jisx0212
-           chinese-cns11643-1 chinese-cns11643-2)      . iso-2022-int-1)
+    ;; ((ascii latin-iso8859-1 greek-iso8859-7
+    ;;         latin-jisx0201 japanese-jisx0208-1978
+    ;;         chinese-gb2312 japanese-jisx0208
+    ;;         korean-ksc5601 japanese-jisx0212
+    ;;         chinese-cns11643-1 chinese-cns11643-2)      . iso-2022-int-1)
     ))
 
 
@@ -202,6 +159,7 @@ Return nil if corresponding MIME-charset is not found."
 ;;; @ end
 ;;;
 
-(provide 'mcs-xm)
+(require 'product)
+(product-provide (provide 'mcs-xm) (require 'apel-ver))
 
 ;;; mcs-xm.el ends here