changeset 104889:18c2aea5083c

2009-09-09 Katsumi Yamaoka <yamaoka@jpl.org> * gnus-util.el (gnus-float-time): Alias to float-time if it exists. * ecomplete.el (with-no-warnings): Define it for old Emacsen. (ecomplete-add-item): Don't use (featurep 'xemacs) to check if float-time is available; suppress compile warning for time-to-seconds. 2009-09-07 Katsumi Yamaoka <yamaoka@jpl.org> * mm-encode.el (mm-encode-buffer): Don't force 7bit encoding since MTA may break data. Suggested by Dmitri Paduchikh <dpaduch@k66.ru>. Add the optional argument `encoding' that overrides the default. * mml.el (mml-generate-mime-1): Pass encoding defined by a user to mm-encode-buffer. 2009-09-02 Karl Kleinpaste <karl@kleinpaste.org> * gnus-art.el (gnus-article-read-summary-keys): Fix gnus-buffer-configuration's value temporarily used.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Wed, 09 Sep 2009 09:28:43 +0000
parents b3fb8c98c899
children 2e22af528b76
files lisp/gnus/ChangeLog lisp/gnus/ecomplete.el lisp/gnus/gnus-art.el lisp/gnus/gnus-util.el lisp/gnus/mm-encode.el lisp/gnus/mml.el
diffstat 6 files changed, 56 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Wed Sep 09 02:38:50 2009 +0000
+++ b/lisp/gnus/ChangeLog	Wed Sep 09 09:28:43 2009 +0000
@@ -1,3 +1,20 @@
+2009-09-09  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* gnus-util.el (gnus-float-time): Alias to float-time if it exists.
+
+	* ecomplete.el (with-no-warnings): Define it for old Emacsen.
+	(ecomplete-add-item): Don't use (featurep 'xemacs) to check if
+	float-time is available; suppress compile warning for time-to-seconds.
+
+2009-09-07  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-encode.el (mm-encode-buffer): Don't force 7bit encoding since MTA
+	may break data.  Suggested by Dmitri Paduchikh <dpaduch@k66.ru>.
+	Add the optional argument `encoding' that overrides the default.
+
+	* mml.el (mml-generate-mime-1): Pass encoding defined by a user to
+	mm-encode-buffer.
+
 2009-09-04  Glenn Morris  <rgm@gnu.org>
 
 	* qp.el (quoted-printable-encode-string): Use mm-enable-multibyte, or
@@ -15,6 +32,11 @@
 	* rfc2047.el (rfc2047-encode-message-header): Use default-value rather
 	than default-enable-multibyte-characters.
 
+2009-09-02  Karl Kleinpaste  <karl@kleinpaste.org>
+
+	* gnus-art.el (gnus-article-read-summary-keys):
+	Fix gnus-buffer-configuration's value temporarily used.
+
 2009-09-02  Glenn Morris  <rgm@gnu.org>
 
 	* gnus-util.el (gnus-float-time): New function.
--- a/lisp/gnus/ecomplete.el	Wed Sep 09 02:38:50 2009 +0000
+++ b/lisp/gnus/ecomplete.el	Wed Sep 09 09:28:43 2009 +0000
@@ -27,6 +27,11 @@
 (eval-when-compile
   (require 'cl))
 
+(eval-when-compile
+  (unless (fboundp 'with-no-warnings)
+    (defmacro with-no-warnings (&rest body)
+      `(progn ,@body))))
+
 (defgroup ecomplete nil
   "Electric completion of email addresses and the like."
   :group 'mail)
@@ -56,9 +61,11 @@
 (defun ecomplete-add-item (type key text)
   (let ((elems (assq type ecomplete-database))
 	(now (string-to-number
-	      (format "%.0f" (if (featurep 'xemacs)
-				 (time-to-seconds (current-time))
-			       (float-time)))))
+	      (format "%.0f" (if (and (fboundp 'float-time)
+				      (subrp (symbol-function 'float-time)))
+				 (float-time)
+			       (with-no-warnings
+				 (time-to-seconds (current-time)))))))
 	entry)
     (unless elems
       (push (setq elems (list type)) ecomplete-database))
--- a/lisp/gnus/gnus-art.el	Wed Sep 09 02:38:50 2009 +0000
+++ b/lisp/gnus/gnus-art.el	Wed Sep 09 09:28:43 2009 +0000
@@ -6367,9 +6367,9 @@
 		 (gnus-configure-windows 'article)
 		 (unless (setq win (get-buffer-window summary-buffer 'visible))
 		   (let ((gnus-buffer-configuration
-			  '(article ((vertical 1.0
-					       (summary 0.25 point)
-					       (article 1.0))))))
+			  '((article ((vertical 1.0
+						(summary 0.25 point)
+						(article 1.0)))))))
 		     (gnus-configure-windows 'article))
 		   (setq win (get-buffer-window summary-buffer 'visible)))
 		 (gnus-select-frame-set-input-focus (window-frame win))
--- a/lisp/gnus/gnus-util.el	Wed Sep 09 02:38:50 2009 +0000
+++ b/lisp/gnus/gnus-util.el	Wed Sep 09 09:28:43 2009 +0000
@@ -285,12 +285,14 @@
 	(and (= (car fdate) (car date))
 	     (> (nth 1 fdate) (nth 1 date))))))
 
-(defun gnus-float-time (&optional time)
-  "Convert time value TIME to a floating point number.
+(eval-and-compile
+  (if (and (fboundp 'float-time)
+	   (subrp (symbol-function 'float-time)))
+      (defalias 'gnus-float-time 'float-time)
+    (defun gnus-float-time (&optional time)
+      "Convert time value TIME to a floating point number.
 TIME defaults to the current time."
-  (if (featurep 'xemacs)
-      (time-to-seconds (or time (current-time)))
-    (float-time time)))
+      (with-no-warnings (time-to-seconds (or time (current-time)))))))
 
 ;;; Keymap macros.
 
--- a/lisp/gnus/mm-encode.el	Wed Sep 09 02:38:50 2009 +0000
+++ b/lisp/gnus/mm-encode.el	Wed Sep 09 09:28:43 2009 +0000
@@ -137,22 +137,19 @@
    (t
     (error "Unknown encoding %s" encoding))))
 
-(defun mm-encode-buffer (type)
-  "Encode the buffer which contains data of MIME type TYPE.
+(defun mm-encode-buffer (type &optional encoding)
+  "Encode the buffer which contains data of MIME type TYPE by ENCODING.
 TYPE is a string or a list of the components.
+The optional ENCODING overrides the encoding determined according to
+TYPE and `mm-content-transfer-encoding-defaults'.
 The encoding used is returned."
-  (let* ((mime-type (if (stringp type) type (car type)))
-	 (encoding
-	  (or (and (listp type)
-		   (cadr (assq 'encoding type)))
-	      (mm-content-transfer-encoding mime-type)))
-	 (bits (mm-body-7-or-8)))
-    ;; We force buffers that are 7bit to be unencoded, no matter
-    ;; what the preferred encoding is.
-    ;; Only if the buffers don't contain lone lines.
-    (when (and (eq bits '7bit) (not (mm-long-lines-p 76)))
-      (setq encoding bits))
-    (mm-encode-content-transfer-encoding encoding mime-type)
+  (let ((mime-type (if (stringp type) type (car type))))
+    (mm-encode-content-transfer-encoding
+     (or encoding
+	 (setq encoding (or (and (listp type)
+				 (cadr (assq 'encoding type)))
+			    (mm-content-transfer-encoding mime-type))))
+     mime-type)
     encoding))
 
 (defun mm-insert-headers (type encoding &optional file)
--- a/lisp/gnus/mml.el	Wed Sep 09 02:38:50 2009 +0000
+++ b/lisp/gnus/mml.el	Wed Sep 09 09:28:43 2009 +0000
@@ -585,7 +585,9 @@
 			(unless raw
 			  (setq charset	(mm-encode-body charset))))
 		    (insert contents)))))
-	      (setq encoding (mm-encode-buffer type)
+	      (if (setq encoding (cdr (assq 'encoding cont)))
+		  (setq encoding (intern (downcase encoding))))
+	      (setq encoding (mm-encode-buffer type encoding)
 		    coded (mm-string-as-multibyte (buffer-string))))
 	    (mml-insert-mime-headers cont type charset encoding nil)
 	    (insert "\n" coded))))