X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mcs-nemacs.el;h=9784ac6502d5ec22961d7771f6e4b8432643bcd4;hb=72f1a2a9c510a6cbe28e88faf73eafdb91bb3131;hp=c32fd6f7af5c184c917c4b6d2d444ddbf4ee7748;hpb=0df64d3b6ef5ae5212fd59ee13dd5f044b378ba6;p=elisp%2Fapel.git diff --git a/mcs-nemacs.el b/mcs-nemacs.el index c32fd6f..9784ac6 100644 --- a/mcs-nemacs.el +++ b/mcs-nemacs.el @@ -1,8 +1,8 @@ ;;; mcs-nemacs.el --- MIME charset implementation for Nemacs -;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko +;; Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc. -;; Author: MORIOKA Tomohiko +;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). @@ -34,12 +34,22 @@ (shift_jis . 1) )) +(defsubst lbt-to-string (lbt) + (cdr (assq lbt '((nil . nil) + (CRLF . "\r\n") + (CR . "\r") + (dos . "\r\n") + (mac . "\r")))) + ) + (defun mime-charset-to-coding-system (charset) (if (stringp charset) (setq charset (intern (downcase charset))) ) (cdr (assq charset mime-charset-coding-system-alist))) +(fset 'mime-charset-p 'mime-charset-to-coding-system) + (defun detect-mime-charset-region (start end) "Return MIME charset for region between START and END. \[emu-nemacs.el]" @@ -51,24 +61,30 @@ default-mime-charset 'us-ascii)) -(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. \[emu-nemacs.el]" - (let ((cs (mime-charset-to-coding-system charset))) + (let ((cs (mime-charset-to-coding-system charset)) + (nl (lbt-to-string lbt))) (and (numberp cs) (or (= cs 3) (save-excursion (save-restriction (narrow-to-region start end) - (convert-region-kanji-code start end 3 cs)))) - ))) + (convert-region-kanji-code start end 3 cs) + (if nl + (progn + (goto-char (point-min)) + (while (search-forward "\n" nil t) + (replace-match nl))) + ))) + )))) (defun decode-mime-charset-region (start end charset &optional lbt) "Decode the text between START and END as MIME CHARSET. \[emu-nemacs.el]" (let ((cs (mime-charset-to-coding-system charset)) - (nl (cdr (assq lbt '((CRLF . "\r\n") (CR . "\r") - (dos . "\r\n") (mac . "\r")))))) + (nl (lbt-to-string lbt))) (and (numberp cs) (or (= cs 3) (save-excursion @@ -83,12 +99,12 @@ ))) )))) -(defun encode-mime-charset-string (string charset) +(defun encode-mime-charset-string (string charset &optional lbt) "Encode the STRING as MIME CHARSET. [emu-nemacs.el]" - (let ((cs (mime-charset-to-coding-system charset))) - (if cs - (convert-string-kanji-code string 3 cs) - string))) + (with-temp-buffer + (insert string) + (encode-mime-charset-region (point-min)(point-max) charset lbt) + (buffer-string))) (defun decode-mime-charset-string (string charset &optional lbt) "Decode the STRING as MIME CHARSET. [emu-nemacs.el]" @@ -108,6 +124,7 @@ ;;; @ end ;;; -(provide 'mcs-nemacs) +(require 'product) +(product-provide (provide 'mcs-nemacs) (require 'apel-ver)) ;;; mcs-nemacs.el ends here