]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from gnus--devo--0
authorMiles Bader <miles@gnu.org>
Tue, 1 Sep 2009 07:59:50 +0000 (07:59 +0000)
committerMiles Bader <miles@gnu.org>
Tue, 1 Sep 2009 07:59:50 +0000 (07:59 +0000)
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1632

lisp/gnus/ChangeLog
lisp/gnus/mml.el

index 9f0cc223cfd805bf4747b5bb6952719c99677e13..3548afa1584d65d483e322d3e8d31c6963e9bf81 100644 (file)
@@ -3,6 +3,11 @@
        * gnus-salt.el (gnus-pick-mouse-pick-region): Use forward-line rather
        than goto-line.
 
+2009-08-31  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * mml.el (mml-attach-file, mml-attach-buffer, mml-attach-external):
+       Don't move point if the command is invoked inside the message header.
+
 2009-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * spam.el (spam-ifile-path, spam-bogofilter-path, spam-sa-learn-path)
index 796470bd17fed3bd4a5104c4553a6d26cdc7b152..bac8a5aaaf01783e7873e049b5ac85ae06f9b966 100644 (file)
@@ -1292,14 +1292,24 @@ body) or \"attachment\" (separate from the body)."
          (description (mml-minibuffer-read-description))
          (disposition (mml-minibuffer-read-disposition type nil file)))
      (list file type description disposition)))
-  (unless (message-in-body-p) (goto-char (point-max)))
-  (mml-insert-empty-tag 'part
-                       'type type
-                       ;; icicles redefines read-file-name and returns a
-                       ;; string w/ text properties :-/
-                       'filename (mm-substring-no-properties file)
-                       'disposition (or disposition "attachment")
-                       'description description))
+  ;; Don't move point if this command is invoked inside the message header.
+  (let ((head (unless (message-in-body-p)
+               (prog1
+                   (point)
+                 (goto-char (point-max))))))
+    (mml-insert-empty-tag 'part
+                         'type type
+                         ;; icicles redefines read-file-name and returns a
+                         ;; string w/ text properties :-/
+                         'filename (mm-substring-no-properties file)
+                         'disposition (or disposition "attachment")
+                         'description description)
+    (when head
+      (unless (prog1
+                 (pos-visible-in-window-p)
+               (goto-char head))
+       (message "The file \"%s\" has been attached at the end of the message"
+                (file-name-nondirectory file))))))
 
 (defun mml-dnd-attach-file (uri action)
   "Attach a drag and drop file.
@@ -1335,10 +1345,21 @@ BUFFER is the name of the buffer to attach.  See
          (description (mml-minibuffer-read-description))
          (disposition (mml-minibuffer-read-disposition type nil)))
      (list buffer type description disposition)))
-  (unless (message-in-body-p) (goto-char (point-max)))
-  (mml-insert-empty-tag 'part 'type type 'buffer buffer
-                       'disposition disposition
-                       'description description))
+  ;; Don't move point if this command is invoked inside the message header.
+  (let ((head (unless (message-in-body-p)
+               (prog1
+                   (point)
+                 (goto-char (point-max))))))
+    (mml-insert-empty-tag 'part 'type type 'buffer buffer
+                         'disposition disposition
+                         'description description)
+    (when head
+      (unless (prog1
+                 (pos-visible-in-window-p)
+               (goto-char head))
+       (message
+        "The buffer \"%s\" has been attached at the end of the message"
+        buffer)))))
 
 (defun mml-attach-external (file &optional type description)
   "Attach an external file into the buffer.
@@ -1349,9 +1370,19 @@ TYPE is the MIME type to use."
          (type (mml-minibuffer-read-type file))
          (description (mml-minibuffer-read-description)))
      (list file type description)))
-  (unless (message-in-body-p) (goto-char (point-max)))
-  (mml-insert-empty-tag 'external 'type type 'name file
-                       'disposition "attachment" 'description description))
+  ;; Don't move point if this command is invoked inside the message header.
+  (let ((head (unless (message-in-body-p)
+               (prog1
+                   (point)
+                 (goto-char (point-max))))))
+    (mml-insert-empty-tag 'external 'type type 'name file
+                         'disposition "attachment" 'description description)
+    (when head
+      (unless (prog1
+                 (pos-visible-in-window-p)
+               (goto-char head))
+       (message "The file \"%s\" has been attached at the end of the message"
+                (file-name-nondirectory file))))))
 
 (defun mml-insert-multipart (&optional type)
   (interactive (list (completing-read "Multipart type (default mixed): "