emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r117109: lisp/gnus/gnus-art.el (gnus-mime-inline-par


From: Katsumi Yamaoka
Subject: [Emacs-diffs] trunk r117109: lisp/gnus/gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part): Don't delete next part button; keep spacing between buttons
Date: Thu, 15 May 2014 06:53:52 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117109
revision-id: address@hidden
parent: address@hidden
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Thu 2014-05-15 06:53:44 +0000
message:
  lisp/gnus/gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part): Don't 
delete next part button; keep spacing between buttons
modified:
  lisp/gnus/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-1433
  lisp/gnus/gnus-art.el          gnusart.el-20091113204419-o5vbwnq5f7feedwu-1108
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2014-05-14 08:50:51 +0000
+++ b/lisp/gnus/ChangeLog       2014-05-15 06:53:44 +0000
@@ -1,3 +1,8 @@
+2014-05-15  Katsumi Yamaoka  <address@hidden>
+
+       * gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part): Don't
+       delete next part button; keep spacing between buttons.
+
 2014-05-14  Katsumi Yamaoka  <address@hidden>
 
        * gnus-art.el (gnus-mime-inline-part, gnus-mm-display-part):

=== modified file 'lisp/gnus/gnus-art.el'
--- a/lisp/gnus/gnus-art.el     2014-05-14 08:50:51 +0000
+++ b/lisp/gnus/gnus-art.el     2014-05-15 06:53:44 +0000
@@ -5311,14 +5311,14 @@
                    (text-property-any (point-min) (point) 'gnus-data handle)))
            (setq handle (get-text-property b 'gnus-data))
            b))
-        contents charset coding-system)
+        start contents charset coding-system)
     (when handle
       (when (= b (prog1
                     btn
-                  (setq btn (previous-single-property-change
-                             (or (next-single-property-change btn 'gnus-data)
-                                 (point-max))
-                             'gnus-data))))
+                  (setq start (next-single-property-change btn 'gnus-data
+                                                           nil (point-max))
+                        btn (previous-single-property-change start
+                                                             'gnus-data))))
        (setq b btn))
       (if (and (not arg) (mm-handle-undisplayer handle))
          (mm-remove-part handle)
@@ -5345,25 +5345,29 @@
                    (mm-read-coding-system "Charset: "))))
         ((mm-handle-undisplayer handle)
          (mm-remove-part handle)))
-       (forward-line 1)
+       (goto-char start)
        (mm-display-inline handle))
       ;; Toggle the button appearance between `[button]...' and `[button]'.
       (goto-char btn)
-      (gnus-insert-mime-button handle (get-text-property btn 'gnus-part)
-                              (list (mm-handle-displayed-p handle)))
-      (if (featurep 'emacs)
-         (delete-region
-          (point)
-          (or (text-property-any (point) (point-max) 'gnus-data nil)
-              (point-max)))
-       (let* ((end (text-property-any (point) (point-max) 'gnus-data nil))
-              (annots (annotations-at end)))
-         (delete-region (point)
-                        (if end
-                            (if annots (1+ end) end)
-                          (point-max)))
-         (dolist (annot annots)
-           (set-extent-endpoints annot (point) (point)))))
+      (let ((displayed-p (mm-handle-displayed-p handle)))
+       (gnus-insert-mime-button handle (get-text-property btn 'gnus-part)
+                                (list displayed-p))
+       (if (featurep 'emacs)
+           (delete-region
+            (point)
+            (next-single-property-change (point) 'gnus-data nil (point-max)))
+         (let* ((end (next-single-property-change (point) 'gnus-data))
+                (annots (annotations-at (or end (point-max)))))
+           (delete-region (point)
+                          (if end
+                              (if annots (1+ end) end)
+                            (point-max)))
+           (dolist (annot annots)
+             (set-extent-endpoints annot (point) (point)))))
+       (unless (or displayed-p (eolp))
+         ;; Add extra newline.
+         (insert (propertize (buffer-substring (1- (point)) (point))
+                             'gnus-undeletable t))))
       (unless (search-backward "\n\n" nil t)
        ;; We're in the article header.
        (delete-char -1)
@@ -5686,17 +5690,16 @@
             (with-current-buffer gnus-summary-buffer
               gnus-newsgroup-ignored-charsets)
           nil))
-       retval)
+       start retval)
     (unwind-protect
        (progn
          (let ((win (gnus-get-buffer-window (current-buffer) t)))
            (when win
              (select-window win)
              (goto-char point)))
-         (setq point (previous-single-property-change
-                      (or (next-single-property-change point 'gnus-data)
-                          (point-max))
-                      'gnus-data))
+         (setq start (next-single-property-change point 'gnus-data
+                                                  nil (point-max))
+               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))
@@ -5708,7 +5711,7 @@
                               (setq retval (mm-display-part handle)))
                              (unless (zerop (buffer-size))
                                (buffer-string))))))
-             (forward-line)
+             (goto-char start)
              (cond ((stringp part)
                     (save-restriction
                       (narrow-to-region (point)
@@ -5729,20 +5732,24 @@
                     (mm-display-inline handle))))))
       (goto-char point)
       ;; Toggle the button appearance between `[button]...' and `[button]'.
-      (gnus-insert-mime-button handle id (list (mm-handle-displayed-p handle)))
-      (if (featurep 'emacs)
-         (delete-region
-          (point)
-          (or (text-property-any (point) (point-max) 'gnus-data nil)
-              (point-max)))
-       (let* ((end (text-property-any (point) (point-max) 'gnus-data nil))
-              (annots (annotations-at end)))
-         (delete-region (point)
-                        (if end
-                            (if annots (1+ end) end)
-                          (point-max)))
-         (dolist (annot annots)
-           (set-extent-endpoints annot (point) (point)))))
+      (let ((displayed-p (mm-handle-displayed-p handle)))
+       (gnus-insert-mime-button handle id (list displayed-p))
+       (if (featurep 'emacs)
+           (delete-region
+            (point)
+            (next-single-property-change (point) 'gnus-data nil (point-max)))
+         (let* ((end (next-single-property-change (point) 'gnus-data))
+                (annots (annotations-at (or end (point-max)))))
+           (delete-region (point)
+                          (if end
+                              (if annots (1+ end) end)
+                            (point-max)))
+           (dolist (annot annots)
+             (set-extent-endpoints annot (point) (point)))))
+       (unless (or displayed-p (eolp))
+         ;; Add extra newline.
+         (insert (propertize (buffer-substring (1- (point)) (point))
+                             'gnus-undeletable t))))
       (unless (search-backward "\n\n" nil t)
        ;; We're in the article header.
        (delete-char -1)


reply via email to

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