X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mcs-xm.el;h=0fd6d8d54b6f74cebcec41fb95c636e0c2a0de01;hb=f601b82c55f8002e6c1044193d10041f62792f2a;hp=19cbc2baa06b9dc041e70b31e2863dc9a97fafd3;hpb=aeac12b7e4e0184363e6a3f1cf5a6e10b0195ae2;p=elisp%2Fapel.git diff --git a/mcs-xm.el b/mcs-xm.el index 19cbc2b..0fd6d8d 100644 --- 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 ;; Keywords: emulation, compatibility, Mule @@ -41,11 +41,15 @@ (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))) @@ -56,56 +60,8 @@ (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 start) - (while (search-forward (car pair) end 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 @@ -165,6 +121,7 @@ ((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 @@ -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