X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=tm-mule.el;h=61d81e2b338f6a690191645ad9af0eb8f673635d;hb=8e18eb1fd95180a6ea115a00ce2f045815809b49;hp=420d7e65862daf80d1aed6a0375cf992a09a965a;hpb=83545c0017fdbc9bf61032c5d5e80a7555483fbe;p=elisp%2Ftm.git diff --git a/tm-mule.el b/tm-mule.el index 420d7e6..61d81e2 100644 --- a/tm-mule.el +++ b/tm-mule.el @@ -1,36 +1,39 @@ ;;; -;;; $Id: tm-mule.el,v 6.4 1995/08/27 13:33:13 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 +;;; 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) -;;; @ 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*) @@ -43,100 +46,61 @@ ("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))))) - + (if cs + (code-convert-string str *internal* cs) + ))) (defun mime/code-convert-region-to-emacs (beg end charset &optional encoding) (if (stringp charset) @@ -157,3 +121,5 @@ (provide 'tm-mule) (run-hooks 'tm-mule-load-hook) + +;;; tm-mule.el ends here