From 2dfd3c1be71cbe3fec218f05fe89778d33c0c82d Mon Sep 17 00:00:00 2001 From: morioka Date: Wed, 23 Dec 1998 02:56:45 +0000 Subject: [PATCH] (default-mime-charset-for-write): New user option. (default-mime-charset-detect-method-for-write): New user option. (detect-mime-charset-region): Refer `default-mime-charset-detect-method-for-write' or `default-mime-charset-for-write' if suitable mime-charset is not found. --- mcs-20.el | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/mcs-20.el b/mcs-20.el index e608ac3..9e63e3d 100644 --- a/mcs-20.el +++ b/mcs-20.el @@ -123,9 +123,32 @@ It must be symbol." :group 'i18n :type 'mime-charset) -(defsubst detect-mime-charset-region (start end) +(defcustom default-mime-charset-for-write + (if (find-coding-system 'utf-8) + 'utf-8 + default-mime-charset) + "Default value of MIME-charset for encoding. +It is used when MIME-charset is not specified. +It must be symbol." + :group 'i18n + :type 'mime-charset) + +(defcustom default-mime-charset-detect-method-for-write + nil + "Function called when suitable MIME-charset is not found to encode." + :group 'i18n + :type '(choice function (const nil))) + +(defun detect-mime-charset-region (start end) "Return MIME charset for region between START and END." - (charsets-to-mime-charset (find-charset-region start end))) + (let ((charsets (find-charset-region start end))) + (charsets-to-mime-charset + charsets + (if default-mime-charset-detect-method-for-write + (funcall default-mime-charset-detect-method-for-write + 'region start end charsets) + default-mime-charset-for-write) + ))) (defun write-region-as-mime-charset (charset start end filename &optional append visit lockname) -- 1.7.10.4