X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mcharset.el;h=44a65cb63d7eacdefe25c4b5b30fde60ec478ee8;hb=ac4b34cee507bf4c839d83e3793309f06054b177;hp=3b02f6c2dfdf1d4dad2f320d233cbe5a247d8055;hpb=e47c19a9f98b560818385fb4fd7dca6b14f36767;p=elisp%2Fapel.git diff --git a/mcharset.el b/mcharset.el index 3b02f6c..44a65cb 100644 --- a/mcharset.el +++ b/mcharset.el @@ -1,8 +1,8 @@ ;;; mcharset.el --- MIME charset API -;; Copyright (C) 1997,1998 Free Software Foundation, Inc. +;; Copyright (C) 1997,1998,1999 Free Software Foundation, Inc. -;; Author: MORIOKA Tomohiko +;; Author: MORIOKA Tomohiko ;; Keywords: emulation, compatibility, Mule ;; This file is part of APEL (A Portable Emacs Library). @@ -25,6 +25,7 @@ ;;; Code: (require 'poe) +(require 'pcustom) (cond ((featurep 'mule) (cond ((featurep 'xemacs) @@ -46,6 +47,27 @@ (require 'mcs-ltn1) )) +(defcustom default-mime-charset-for-write + (if (and (fboundp 'find-coding-system) + (find-coding-system 'utf-8)) + 'utf-8 + default-mime-charset) + "Default value of MIME-charset for encoding. +It may be used when suitable MIME-charset is not found. +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. +It must be nil or function. +If it is nil, variable `default-mime-charset-for-write' is used. +If it is a function, interface must be (TYPE CHARSETS &rest ARGS). +CHARSETS is list of charset. +If TYPE is 'region, ARGS has START and END." + :group 'i18n + :type '(choice function (const nil))) (defun charsets-to-mime-charset (charsets) "Return MIME charset from list of charset CHARSETS. @@ -69,6 +91,24 @@ Return nil if suitable mime-charset is not found." (setq rest (cdr rest))) )))) +(defun find-mime-charset-by-charsets (charsets &optional mode &rest args) + "Like `charsets-to-mime-charset', but it does not return nil. + +When suitable mime-charset is not found and variable +`default-mime-charset-detect-method-for-write' is not nil, +`find-mime-charset-by-charsets' calls the variable as function and +return the return value of the function. +Interface of the function is (MODE CHARSETS &rest ARGS). + +When suitable mime-charset is not found and variable +`default-mime-charset-detect-method-for-write' is nil, +variable `default-mime-charset-for-write' is returned." + (or (charsets-to-mime-charset charsets) + (if default-mime-charset-detect-method-for-write + (apply default-mime-charset-detect-method-for-write + mode charsets args) + default-mime-charset-for-write))) + ;;; @ end ;;;