-;;; @ coding system
-;;;
-
-(defun character-encode-string (str coding-system)
- "Encode the string STR which is encoded in CODING-SYSTEM.
-\[emu-mule.el]"
- (code-convert-string str *internal* coding-system)
- )
-
-(defun character-decode-string (str coding-system)
- "Decode the string STR which is encoded in CODING-SYSTEM.
-\[emu-mule.el]"
- (let ((len (length str))
- ret)
- (while (and
- (< 0 len)
- (null
- (setq ret
- (code-convert-string (substring str 0 len)
- coding-system *internal*))
- ))
- (setq len (1- len))
- )
- (concat ret (substring str len))
- ))
-
-(defun character-encode-region (start end coding-system)
- "Encode the text between START and END which is
-encoded in CODING-SYSTEM. [emu-mule.el]"
- (code-convert start end *internal* coding-system)
- )
-
-(defun character-decode-region (start end coding-system)
- "Decode the text between START and END which is
-encoded in CODING-SYSTEM. [emu-mule.el]"
- (code-convert start end coding-system *internal*)
- )
-
-(defmacro as-binary-process (&rest body)
- (` (let (selective-display ; Disable ^M to nl translation.
- ;; Mule
- mc-flag
- (default-process-coding-system (cons *noconv* *noconv*))
- program-coding-system-alist)
- (,@ body)
- )))
-
-
-;;; @ MIME charset
-;;;
-
-(defvar charsets-mime-charset-alist
- (list
- (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-arb) 'iso-8859-6)
- (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-big5-1 lc-big5-2) 'big5)
- (cons (list lc-ascii lc-cn lc-jp lc-kr lc-jp2
- lc-ltn1 lc-grk) 'iso-2022-jp-2)
- (cons (list lc-ascii lc-cn lc-jp lc-kr lc-jp2
- lc-cns1 lc-cns2 lc-ltn1 lc-grk) 'iso-2022-int-1)
- ))
-
-(defvar default-mime-charset 'iso-2022-int-1)
-
-(defvar mime-charset-coding-system-alist
- '((iso-8859-1 . *ctext*)
- (gb2312 . *euc-china*)
- (koi8-r . *koi8*)
- (iso-2022-jp-2 . *iso-2022-ss2-7*)
- (x-iso-2022-jp-2 . *iso-2022-ss2-7*)
- (shift_jis . *sjis*)
- (x-shiftjis . *sjis*)
- ))
-
-(defun mime-charset-to-coding-system (charset)
- (if (stringp charset)
- (setq charset (intern (downcase charset)))
- )
- (or (cdr (assq charset mime-charset-coding-system-alist))
- (let ((cs (intern (concat "*" (symbol-name charset) "*"))))
- (and (coding-system-p cs) cs)
- )))
-
-(defun detect-mime-charset-region (start end)
- "Return MIME charset for region between START and END.
-\[emu-mule.el]"
- (charsets-to-mime-charset
- (cons lc-ascii (find-charset-region start end))))
-
-(defun encode-mime-charset-region (start end charset)
- "Encode the text between START and END which is
-encoded in MIME CHARSET. [emu-mule.el]"
- (let ((cs (mime-charset-to-coding-system charset)))
- (if cs
- (code-convert start end *internal* cs)
- )))
-
-(defun encode-mime-charset-string (string charset)
- "Encode the STRING which is encoded in MIME CHARSET. [emu-mule.el]"
- (let ((cs (mime-charset-to-coding-system charset)))
- (if cs
- (code-convert-string string *internal* cs)
- string)))
-
-
-;;; @ character
-;;;
-
-(defalias 'char-charset 'char-leading-char)
-
-(defalias 'char-length 'char-bytes)
-
-(defalias 'char-columns 'char-width)
-
-
-;;; @ string
-;;;
-
-(defalias 'string-columns 'string-width)
-
-(defalias 'string-to-int-list 'string-to-char-list)