diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/gnus/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/gnus/mml.el | 61 | 
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): " | 
