changeset 111451:98299fb04891

net/browse-url.el (browse-url-mail): Insert body part of mailto url in mail buffer; make yank-action always a command that yanks original buffer.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Wed, 10 Nov 2010 00:02:44 +0000
parents eb9988805a37
children 457fd361982f
files lisp/ChangeLog lisp/net/browse-url.el
diffstat 2 files changed, 20 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Nov 09 22:17:36 2010 +0000
+++ b/lisp/ChangeLog	Wed Nov 10 00:02:44 2010 +0000
@@ -1,3 +1,9 @@
+2010-11-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* net/browse-url.el (browse-url-mail): Insert body part of mailto url
+	in mail buffer; make yank-action always a command that yanks original
+	buffer.
+
 2010-11-09  Glenn Morris  <rgm@gnu.org>
 
 	* progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
--- a/lisp/net/browse-url.el	Tue Nov 09 22:17:36 2010 +0000
+++ b/lisp/net/browse-url.el	Wed Nov 10 00:02:44 2010 +0000
@@ -1479,20 +1479,27 @@
 	   (to (assoc "To" alist))
 	   (subject (assoc "Subject" alist))
 	   (body (assoc "Body" alist))
-	   (rest (delete to (delete subject (delete body alist))))
+	   (rest (delq to (delq subject (delq body alist))))
 	   (to (cdr to))
 	   (subject (cdr subject))
 	   (body (cdr body))
 	   (mail-citation-hook (unless body mail-citation-hook)))
       (if (browse-url-maybe-new-window new-window)
 	  (compose-mail-other-window to subject rest nil
-				     (if body
-					 (list 'insert body)
-				       (list 'insert-buffer (current-buffer))))
+				     (list 'insert-buffer (current-buffer)))
 	(compose-mail to subject rest nil nil
-		      (if body
-			  (list 'insert body)
-			(list 'insert-buffer (current-buffer))))))))
+		      (list 'insert-buffer (current-buffer))))
+      (when body
+	(goto-char (point-min))
+	(unless (or (search-forward (concat "\n" mail-header-separator "\n")
+				    nil 'move)
+		    (bolp))
+	  (insert "\n"))
+	(goto-char (prog1
+		       (point)
+		     (insert (replace-regexp-in-string "\r\n" "\n" body))
+		     (unless (bolp)
+		       (insert "\n"))))))))
 
 ;; --- Random browser ---