emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r99368: Fix handling of arbitrary YAN


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r99368: Fix handling of arbitrary YANK-ACTION functions from compose-mail.
Date: Sun, 17 Jan 2010 18:34:53 -0500
User-agent: Bazaar (2.0.2)

------------------------------------------------------------
revno: 99368
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Sun 2010-01-17 18:34:53 -0500
message:
  Fix handling of arbitrary YANK-ACTION functions from compose-mail.
  
  * mail/sendmail.el (mail-yank-original): Set the mark if the
  specified function for yanking does not do it.
modified:
  lisp/ChangeLog
  lisp/mail/sendmail.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-01-17 21:31:25 +0000
+++ b/lisp/ChangeLog    2010-01-17 23:34:53 +0000
@@ -1,3 +1,8 @@
+2010-01-17  Chong Yidong  <address@hidden>
+
+       * mail/sendmail.el (mail-yank-original): Set the mark if the
+       specified function for yanking does not do it.
+
 2010-01-17  Dan Nicolaescu  <address@hidden>
 
        * vc.el (with-vc-properties): Deal with directory arguments.  (Bug#5298)

=== modified file 'lisp/mail/sendmail.el'
--- a/lisp/mail/sendmail.el     2010-01-13 08:35:10 +0000
+++ b/lisp/mail/sendmail.el     2010-01-17 23:34:53 +0000
@@ -1505,14 +1505,18 @@
   (interactive "P")
   (if mail-reply-action
       (let ((start (point))
-           (original mail-reply-action))
+           (original mail-reply-action)
+           (omark (mark t)))
        (and (consp original) (eq (car original) 'insert-buffer)
             (setq original (nth 1 original)))
        (if (consp original)
-           (apply (car original) (cdr original))
-         ;; If the original message is in another window in the same frame,
-         ;; delete that window to save screen space.
-         ;; t means don't alter other frames.
+           (progn
+             ;; Call yank function, and set the mark if it doesn't.
+             (apply (car original) (cdr original))
+             (if (eq omark (mark t))
+                 (push-mark (point))))
+         ;; If the original message is in another window in the same
+         ;; frame, delete that window to save space.
          (delete-windows-on original t)
          (with-no-warnings
            ;; We really want this to set mark.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]