summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/ChangeLog5
-rw-r--r--lisp/gnus/mml.el61
2 files changed, 51 insertions, 15 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 9f0cc223cfd..3548afa1584 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -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)
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index 796470bd17f..bac8a5aaaf0 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -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): "