# HG changeset patch # User Miles Bader # Date 1251791990 0 # Node ID d44c1d7690e7fab5c5ca58a9ae763140114cf883 # Parent e921f11e061162c2714fd0347addf87f0b31da83 Merge from gnus--devo--0 Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1632 diff -r e921f11e0611 -r d44c1d7690e7 lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Tue Sep 01 07:46:01 2009 +0000 +++ b/lisp/gnus/ChangeLog Tue Sep 01 07:59:50 2009 +0000 @@ -3,6 +3,11 @@ * gnus-salt.el (gnus-pick-mouse-pick-region): Use forward-line rather than goto-line. +2009-08-31 Katsumi Yamaoka + + * 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 * spam.el (spam-ifile-path, spam-bogofilter-path, spam-sa-learn-path) diff -r e921f11e0611 -r d44c1d7690e7 lisp/gnus/mml.el --- a/lisp/gnus/mml.el Tue Sep 01 07:46:01 2009 +0000 +++ b/lisp/gnus/mml.el Tue Sep 01 07:59:50 2009 +0000 @@ -1292,14 +1292,24 @@ (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 @@ (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 (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): "