[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r117041: Gnus: Make gnus-mime-inline-part and gnus-m
From: |
Katsumi Yamaoka |
Subject: |
[Emacs-diffs] trunk r117041: Gnus: Make gnus-mime-inline-part and gnus-mime-inline-part work similarly |
Date: |
Fri, 02 May 2014 09:44:40 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 117041
revision-id: address@hidden
parent: address@hidden
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Fri 2014-05-02 09:44:34 +0000
message:
Gnus: Make gnus-mime-inline-part and gnus-mime-inline-part work similarly
* gnus-art.el (gnus-mime-inline-part): Redisplay a button so as to show
the displaying state of a part.
(gnus-mime-inline-part): Don't insert a newline in the beginning of
a part like gnus-mime-inline-part doesn't; work for XEmacs.
* mm-decode.el (mm-display-part): Don't insert a newline in the top.
(mm-shr): Make undisplayer unbreakable.
* mm-view.el (mm-inline-image-emacs, mm-inline-image-xemacs): Don't
insert excessive newline.
(mm-inline-text-html-render-with-w3m, mm-inline-text)
(mm-insert-inline): Make undisplayer unbreakable.
modified:
lisp/gnus/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1433
lisp/gnus/gnus-art.el gnusart.el-20091113204419-o5vbwnq5f7feedwu-1108
lisp/gnus/mm-decode.el
mmdecode.el-20091113204419-o5vbwnq5f7feedwu-1971
lisp/gnus/mm-view.el mmview.el-20091113204419-o5vbwnq5f7feedwu-1976
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog 2014-05-01 07:59:33 +0000
+++ b/lisp/gnus/ChangeLog 2014-05-02 09:44:34 +0000
@@ -1,3 +1,18 @@
+2014-05-02 Katsumi Yamaoka <address@hidden>
+
+ * gnus-art.el (gnus-mime-inline-part): Redisplay a button so as to show
+ the displaying state of a part.
+ (gnus-mime-inline-part): Don't insert a newline in the beginning of
+ a part like gnus-mime-inline-part doesn't; work for XEmacs.
+
+ * mm-decode.el (mm-display-part): Don't insert a newline in the top.
+ (mm-shr): Make undisplayer unbreakable.
+
+ * mm-view.el (mm-inline-image-emacs, mm-inline-image-xemacs): Don't
+ insert excessive newline.
+ (mm-inline-text-html-render-with-w3m, mm-inline-text)
+ (mm-insert-inline): Make undisplayer unbreakable.
+
2014-05-01 Katsumi Yamaoka <address@hidden>
* gnus-art.el (gnus-mm-display-part):
@@ -6,7 +21,7 @@
2014-04-30 Katsumi Yamaoka <address@hidden>
* gnus-art.el (gnus-mm-display-part): Don't move point while toggling
- a part; redisplay a button (enbugged in 2014-02-05).
+ a part; redisplay a button (enbugged in 2014-03-23).
2014-04-27 Teodor Zlatanov <address@hidden>
=== modified file 'lisp/gnus/gnus-art.el'
--- a/lisp/gnus/gnus-art.el 2014-05-01 07:59:33 +0000
+++ b/lisp/gnus/gnus-art.el 2014-05-02 09:44:34 +0000
@@ -5300,12 +5300,25 @@
Compressed files like .gz and .bz2 are decompressed."
(interactive (list nil current-prefix-arg))
(gnus-article-check-buffer)
- (unless handle
- (setq handle (get-text-property (point) 'gnus-data)))
- (when handle
- (let ((b (point))
- (inhibit-read-only t)
- contents charset coding-system)
+ (let* ((inhibit-read-only t)
+ (b (point))
+ (btn ;; position where the MIME button exists
+ (if handle
+ (if (eq handle (get-text-property b 'gnus-data))
+ b
+ (article-goto-body)
+ (or (text-property-any (point) (point-max) 'gnus-data handle)
+ (text-property-any (point-min) (point) 'gnus-data handle)))
+ (setq handle (get-text-property b 'gnus-data))
+ b))
+ contents charset coding-system)
+ (when handle
+ (when (= b (prog1
+ btn
+ (setq btn (previous-single-property-change
+ (next-single-property-change btn 'gnus-data)
+ 'gnus-data))))
+ (setq b btn))
(if (and (not arg) (mm-handle-undisplayer handle))
(mm-remove-part handle)
(mm-with-unibyte-buffer
@@ -5332,8 +5345,35 @@
((mm-handle-undisplayer handle)
(mm-remove-part handle)))
(forward-line 1)
- (mm-display-inline handle)
- (goto-char b)))))
+ (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)
+ (text-property-any (point) (point-max) 'gnus-data nil))
+ (let* ((end (text-property-any (point) (point-max) 'gnus-data nil))
+ (annots (annotations-at end)))
+ (delete-region (point)
+ ;; FIXME: why isn't this simply `end'?
+ (if annots (1+ end) end))
+ (dolist (annot annots)
+ (set-extent-endpoints annot (point) (point)))))
+ (unless (search-backward "\n\n" nil t)
+ ;; We're in the article header.
+ (delete-char -1)
+ (dolist (ovl (gnus-overlays-in btn (point)))
+ (gnus-overlay-put ovl 'gnus-button-attachment-extra t)
+ (gnus-overlay-put ovl 'face nil))
+ (save-restriction
+ (message-narrow-to-field)
+ (let ((gnus-treatment-function-alist
+ '((gnus-treat-highlight-headers
+ gnus-article-highlight-headers))))
+ (gnus-treat-article 'head))))
+ (goto-char b))))
(defun gnus-mime-set-charset-parameters (handle charset)
"Set CHARSET to parameters in HANDLE.
@@ -5650,6 +5690,9 @@
(when win
(select-window win)
(goto-char point)))
+ (setq point (previous-single-property-change
+ (next-single-property-change point 'gnus-data)
+ 'gnus-data))
(forward-line)
(if (mm-handle-displayed-p handle)
;; This will remove the part.
@@ -5673,27 +5716,29 @@
(mm-handle-media-type handle))))))
(goto-char point)
;; Toggle the button appearance between `[button]...' and `[button]'.
- (let ((end (next-single-property-change point 'gnus-data))
- start)
- (delete-region
- (setq start (previous-single-property-change end 'gnus-data))
- end)
- (gnus-insert-mime-button
- handle id (list (mm-handle-displayed-p handle)))
- (setq end (point))
- (if (search-backward "\n\n" nil t)
- (goto-char end)
- ;; We're in the article header.
- (delete-char -1)
- (dolist (ovl (gnus-overlays-in start (1- end)))
- (gnus-overlay-put ovl 'gnus-button-attachment-extra t)
- (gnus-overlay-put ovl 'face nil))
- (save-restriction
- (message-narrow-to-field)
- (let ((gnus-treatment-function-alist
- '((gnus-treat-highlight-headers
- gnus-article-highlight-headers))))
- (gnus-treat-article 'head)))))
+ (gnus-insert-mime-button handle id (list (mm-handle-displayed-p handle)))
+ (if (featurep 'emacs)
+ (delete-region
+ (point) (text-property-any (point) (point-max) 'gnus-data nil))
+ (let* ((end (text-property-any (point) (point-max) 'gnus-data nil))
+ (annots (annotations-at end)))
+ (delete-region (point)
+ ;; FIXME: why isn't this simply `end'?
+ (if annots (1+ end) end))
+ (dolist (annot annots)
+ (set-extent-endpoints annot (point) (point)))))
+ (unless (search-backward "\n\n" nil t)
+ ;; We're in the article header.
+ (delete-char -1)
+ (dolist (ovl (gnus-overlays-in point (point)))
+ (gnus-overlay-put ovl 'gnus-button-attachment-extra t)
+ (gnus-overlay-put ovl 'face nil))
+ (save-restriction
+ (message-narrow-to-field)
+ (let ((gnus-treatment-function-alist
+ '((gnus-treat-highlight-headers
+ gnus-article-highlight-headers))))
+ (gnus-treat-article 'head))))
(goto-char point)
(if (window-live-p window)
(select-window window)))
=== modified file 'lisp/gnus/mm-decode.el'
--- a/lisp/gnus/mm-decode.el 2014-03-23 23:13:36 +0000
+++ b/lisp/gnus/mm-decode.el 2014-05-02 09:44:34 +0000
@@ -821,7 +821,6 @@
'inline)
((and (mm-inlinable-p ehandle)
(mm-inlined-p ehandle))
- (forward-line 1)
(mm-display-inline handle)
'inline)
((or method
@@ -1868,7 +1867,7 @@
handle
`(lambda ()
(let ((inhibit-read-only t))
- (delete-region ,(point-min-marker)
+ (delete-region ,(copy-marker (point-min) t)
,(point-max-marker))))))))
(defvar shr-map)
=== modified file 'lisp/gnus/mm-view.el'
--- a/lisp/gnus/mm-view.el 2014-03-23 23:13:36 +0000
+++ b/lisp/gnus/mm-view.el 2014-05-02 09:44:34 +0000
@@ -96,19 +96,19 @@
(- (nth 3 edges) (nth 1 edges)))))))
image))
b)
- (insert "\n\n")
+ (insert "\n")
(mm-handle-set-undisplayer
handle
`(lambda ()
(let ((b ,b)
(inhibit-read-only t))
(remove-images b b)
- (delete-region b (+ b 2)))))))
+ (delete-region b (1+ b)))))))
(defun mm-inline-image-xemacs (handle)
(when (featurep 'xemacs)
- (insert "\n\n")
- (forward-char -2)
+ (insert "\n")
+ (forward-char -1)
(let ((annot (make-annotation (mm-get-image handle) nil 'text))
(inhibit-read-only t))
(mm-handle-set-undisplayer
@@ -117,7 +117,7 @@
(let ((b ,(point-marker))
(inhibit-read-only t))
(delete-annotation ,annot)
- (delete-region (- b 2) b))))
+ (delete-region (1- b) b))))
(set-extent-property annot 'mm t)
(set-extent-property annot 'duplicable t))))
@@ -217,7 +217,7 @@
handle
`(lambda ()
(let ((inhibit-read-only t))
- (delete-region ,(point-min-marker)
+ (delete-region ,(copy-marker (point-min) t)
,(point-max-marker)))))))))
(defvar mm-w3m-standalone-supports-m17n-p (if (featurep 'mule) 'undecided)
@@ -391,7 +391,7 @@
handle
`(lambda ()
(let ((inhibit-read-only t))
- (delete-region ,(point-min-marker)
+ (delete-region ,(copy-marker (point-min) t)
,(point-max-marker))))))))
(defun mm-insert-inline (handle text)
@@ -404,7 +404,7 @@
handle
`(lambda ()
(let ((inhibit-read-only t))
- (delete-region ,(copy-marker b)
+ (delete-region ,(copy-marker b t)
,(copy-marker (point))))))))
(defun mm-inline-audio (handle)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r117041: Gnus: Make gnus-mime-inline-part and gnus-mime-inline-part work similarly,
Katsumi Yamaoka <=