diff lisp/international/mule-cmds.el @ 23087:4ae12d3c8c30

(select-message-coding-system): New function. (set-language-environment-coding-systems): Set default-sendmail-coding-system.
author Kenichi Handa <handa@m17n.org>
date Mon, 24 Aug 1998 01:46:43 +0000
parents 82a27d5b4582
children 0e28574df9af
line wrap: on
line diff
--- a/lisp/international/mule-cmds.el	Mon Aug 24 01:46:43 1998 +0000
+++ b/lisp/international/mule-cmds.el	Mon Aug 24 01:46:43 1998 +0000
@@ -489,6 +489,29 @@
 
 (setq select-safe-coding-system-function 'select-safe-coding-system)
 
+(defun select-message-coding-system ()
+  "Return a coding system to encode the outgoing message of the current buffer.
+It at first tries the first coding system found in these variables
+in this order:
+  (1) local value of `buffer-file-coding-system'
+  (2) value of `sendmail-coding-system'
+  (3) value of `default-buffer-file-coding-system'
+  (4) value of `default-sendmail-coding-system'
+If the found coding system can't encode the current buffer,
+or none of them are bound to a coding system,
+it asks a user to select a proper coding system."
+  (let ((coding (or (and (local-variable-p 'buffer-file-coding-system)
+			 buffer-file-coding-system)
+		    sendmail-coding-system
+		    default-buffer-file-coding-system
+		    default-sendmail-coding-system)))
+    (if (eq coding 'no-conversion)
+	;; We should never use no-conversion for outgoing mails.
+	(setq coding nil))
+    (if (fboundp select-safe-coding-system-function)
+	(funcall select-safe-coding-system-function
+		 (point-min) (point-max) coding)
+      coding)))
 
 ;;; Language support staffs.
 
@@ -1189,6 +1212,7 @@
     (if priority
 	(let ((categories (mapcar 'coding-system-category priority)))
 	  (set-default-coding-systems default-coding)
+	  (setq default-sendmail-coding-system default-coding)
 	  (set-coding-priority categories)
 	  (while priority
 	    (set (car categories) (car priority))