From e8a138788f00d8f75659e6799ca304f7d73fcf28 Mon Sep 17 00:00:00 2001 From: keiichi Date: Thu, 21 Jan 1999 08:24:53 +0000 Subject: [PATCH] (lbt-to-string): New inline function. (encode-mime-charset-region): Add new optional argument `lbt'. (encode-mime-charset-string): Ditto. --- mcs-nemacs.el | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/mcs-nemacs.el b/mcs-nemacs.el index c32fd6f..388db8a 100644 --- a/mcs-nemacs.el +++ b/mcs-nemacs.el @@ -34,6 +34,14 @@ (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))) @@ -51,24 +59,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 +97,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]" -- 1.7.10.4