emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 4859809: Fix point motion when removing displayed M


From: Katsumi Yamaoka
Subject: [Emacs-diffs] master 4859809: Fix point motion when removing displayed MIME part
Date: Thu, 26 Feb 2015 06:39:47 +0000

branch: master
commit 48598095b3b777dfaa80fd85ba8246de6e18b3cd
Author: Katsumi Yamaoka <address@hidden>
Commit: Katsumi Yamaoka <address@hidden>

    Fix point motion when removing displayed MIME part
    
    * gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part):
    Fix point motion when removing displayed MIME part.
---
 lisp/gnus/ChangeLog   |    6 ++++--
 lisp/gnus/gnus-art.el |   17 +++++++++++++++--
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 454957e..af49782 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,7 +1,9 @@
 2015-02-26  Katsumi Yamaoka  <address@hidden>
 
-       * gnus-art.el (gnus-article-edit-part): Make jumping to the next part
-       really work when deleting or stripping.
+       * gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part):
+       Fix point motion when removing displayed MIME part.
+       (gnus-article-edit-part): Make jumping to the next part really work
+       when deleting or stripping.
        (gnus-mime-buttonize-attachments-in-header): Make header attachment
        buttons identical to the ones in the article body so as to work deleting
        and stripping.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index f88e7d5..5de4b58 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -5360,7 +5360,10 @@ Compressed files like .gz and .bz2 are decompressed."
                                                              'gnus-data))))
        (setq b btn))
       (if (and (not arg) (mm-handle-undisplayer handle))
-         (mm-remove-part handle)
+         (progn
+           (setq b (copy-marker b)
+                 btn (copy-marker btn))
+           (mm-remove-part handle))
        (cond
         ((not arg) nil)
         ((numberp arg)
@@ -5374,6 +5377,9 @@ Compressed files like .gz and .bz2 are decompressed."
          (forward-line 1))
        (mm-display-inline handle))
       ;; Toggle the button appearance between `[button]...' and `[button]'.
+      (when (markerp btn)
+       (setq btn (prog1 (marker-position btn)
+                   (set-marker btn nil))))
       (goto-char btn)
       (let ((displayed-p (mm-handle-displayed-p handle)))
        (gnus-insert-mime-button handle (get-text-property btn 'gnus-part)
@@ -5409,6 +5415,9 @@ Compressed files like .gz and .bz2 are decompressed."
                   '((gnus-treat-highlight-headers
                      gnus-article-highlight-headers))))
              (gnus-treat-article 'head)))))
+      (when (markerp b)
+       (setq b (prog1 (marker-position b)
+                 (set-marker b nil))))
       (goto-char b))))
 
 (defun gnus-mime-set-charset-parameters (handle charset)
@@ -5731,7 +5740,8 @@ all parts."
                point (previous-single-property-change start 'gnus-data))
          (if (mm-handle-displayed-p handle)
              ;; This will remove the part.
-             (setq retval (mm-display-part handle))
+             (setq point (copy-marker point)
+                   retval (mm-display-part handle))
            (let ((part (or (and (mm-inlinable-p handle)
                                 (mm-inlined-p handle)
                                 t)
@@ -5762,6 +5772,9 @@ all parts."
                                            ,(point-max-marker)))))))
                    (part
                     (mm-display-inline handle))))))
+      (when (markerp point)
+       (setq point (prog1 (marker-position point)
+                     (set-marker point nil))))
       (goto-char point)
       ;; Toggle the button appearance between `[button]...' and `[button]'.
       (let ((displayed-p (mm-handle-displayed-p handle)))



reply via email to

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