aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/gnus/ChangeLog21
-rw-r--r--lisp/gnus/gnus-art.el30
-rw-r--r--lisp/gnus/gnus-uu.el4
-rw-r--r--lisp/gnus/mm-decode.el15
-rw-r--r--lisp/gnus/mm-extern.el24
5 files changed, 60 insertions, 34 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 087cdf14503..792fb2a5c0d 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,24 @@
12006-04-12 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-art.el (gnus-mime-view-part-as-charset): Ignore charset
4 that the part specifies.
5
6 * mm-decode.el (mm-display-part): Work with external parts and
7 usual parts similarly.
8
9 * mm-extern.el (mm-inline-external-body): Use mm-display-part
10 instead of gnus-display-mime.
11
12 * gnus-uu.el (gnus-uu-save-article): Put mml tags instead of part
13 tag to summarized topics part in order to encode non-ASCII text.
14
152006-04-12 Kenichi Handa <handa@m17n.org>
16
17 * rfc2231.el (rfc2231-decode-encoded-string): Work on unibyte
18 buffer and then decode the buffer text if necessary.
19 (rfc2231-encode-string): Be sure to work on multibyte buffer at
20 first, and after mm-encode-body, change the buffer to unibyte.
21
12006-04-11 Reiner Steib <Reiner.Steib@gmx.de> 222006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
2 23
3 * gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'. 24 * gnus-art.el (gnus-button-valid-localpart-regexp): Exclude `@'.
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index eed793d23ba..a4da4ae85f3 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -4477,19 +4477,29 @@ are decompressed."
4477specified charset." 4477specified charset."
4478 (interactive (list nil current-prefix-arg)) 4478 (interactive (list nil current-prefix-arg))
4479 (gnus-article-check-buffer) 4479 (gnus-article-check-buffer)
4480 (let* ((handle (or handle (get-text-property (point) 'gnus-data))) 4480 (let ((handle (or handle (get-text-property (point) 'gnus-data)))
4481 contents charset 4481 (fun (get-text-property (point) 'gnus-callback))
4482 (b (point)) 4482 (gnus-newsgroup-ignored-charsets 'gnus-all)
4483 (inhibit-read-only t)) 4483 gnus-newsgroup-charset type charset)
4484 (when handle 4484 (when handle
4485 (if (mm-handle-undisplayer handle) 4485 (if (mm-handle-undisplayer handle)
4486 (mm-remove-part handle)) 4486 (mm-remove-part handle))
4487 (let ((gnus-newsgroup-charset 4487 (when fun
4488 (or (cdr (assq arg 4488 (setq gnus-newsgroup-charset
4489 gnus-summary-show-article-charset-alist)) 4489 (or (cdr (assq arg gnus-summary-show-article-charset-alist))
4490 (mm-read-coding-system "Charset: "))) 4490 (mm-read-coding-system "Charset: ")))
4491 (gnus-newsgroup-ignored-charsets 'gnus-all)) 4491 ;; Strip the charset parameter from `handle'.
4492 (gnus-article-press-button))))) 4492 (setq type (mm-handle-type
4493 (if (equal (mm-handle-media-type handle)
4494 "message/external-body")
4495 (progn
4496 (unless (mm-handle-cache handle)
4497 (mm-extern-cache-contents handle))
4498 (mm-handle-cache handle))
4499 handle))
4500 charset (assq 'charset (cdr type)))
4501 (delq charset type)
4502 (funcall fun handle)))))
4493 4503
4494(defun gnus-mime-view-part-externally (&optional handle) 4504(defun gnus-mime-view-part-externally (&optional handle)
4495 "View the MIME part under point with an external viewer." 4505 "View the MIME part under point with an external viewer."
diff --git a/lisp/gnus/gnus-uu.el b/lisp/gnus/gnus-uu.el
index e9756547167..46f810b2fbb 100644
--- a/lisp/gnus/gnus-uu.el
+++ b/lisp/gnus/gnus-uu.el
@@ -839,7 +839,9 @@ When called interactively, prompt for REGEXP."
839 "Date: %s\nFrom: %s\nSubject: %s Digest\n\n" 839 "Date: %s\nFrom: %s\nSubject: %s Digest\n\n"
840 (message-make-date) name name)) 840 (message-make-date) name name))
841 (when (and message-forward-as-mime gnus-uu-digest-buffer) 841 (when (and message-forward-as-mime gnus-uu-digest-buffer)
842 (insert "<#part type=message/rfc822>\nSubject: Topics\n\n")) 842 (insert
843 "<#mml type=message/rfc822>\nSubject: Topics\n\n<#/mml>\n")
844 (forward-line -1))
843 (insert "Topics:\n"))) 845 (insert "Topics:\n")))
844 (when (not (eq in-state 'end)) 846 (when (not (eq in-state 'end))
845 (setq state (list 'middle)))) 847 (setq state (list 'middle))))
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 60cbb413473..5ee47a8ce26 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -672,7 +672,14 @@ external if displayed external."
672 (mailcap-parse-mailcaps) 672 (mailcap-parse-mailcaps)
673 (if (mm-handle-displayed-p handle) 673 (if (mm-handle-displayed-p handle)
674 (mm-remove-part handle) 674 (mm-remove-part handle)
675 (let* ((type (mm-handle-media-type handle)) 675 (let* ((ehandle (if (equal (mm-handle-media-type handle)
676 "message/external-body")
677 (progn
678 (unless (mm-handle-cache handle)
679 (mm-extern-cache-contents handle))
680 (mm-handle-cache handle))
681 handle))
682 (type (mm-handle-media-type ehandle))
676 (method (mailcap-mime-info type)) 683 (method (mailcap-mime-info type))
677 (filename (or (mail-content-type-get 684 (filename (or (mail-content-type-get
678 (mm-handle-disposition handle) 'filename) 685 (mm-handle-disposition handle) 'filename)
@@ -680,8 +687,8 @@ external if displayed external."
680 (mm-handle-type handle) 'name) 687 (mm-handle-type handle) 'name)
681 "<file>")) 688 "<file>"))
682 (external mm-enable-external)) 689 (external mm-enable-external))
683 (if (and (mm-inlinable-p handle) 690 (if (and (mm-inlinable-p ehandle)
684 (mm-inlined-p handle)) 691 (mm-inlined-p ehandle))
685 (progn 692 (progn
686 (forward-line 1) 693 (forward-line 1)
687 (mm-display-inline handle) 694 (mm-display-inline handle)
@@ -689,7 +696,7 @@ external if displayed external."
689 (when (or method 696 (when (or method
690 (not no-default)) 697 (not no-default))
691 (if (and (not method) 698 (if (and (not method)
692 (equal "text" (car (split-string type)))) 699 (equal "text" (car (split-string type "/"))))
693 (progn 700 (progn
694 (forward-line 1) 701 (forward-line 1)
695 (mm-insert-inline handle (mm-get-part handle)) 702 (mm-insert-inline handle (mm-get-part handle))
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el
index b736374f016..c574bd6156e 100644
--- a/lisp/gnus/mm-extern.el
+++ b/lisp/gnus/mm-extern.el
@@ -157,25 +157,11 @@ If NO-DISPLAY is nil, display it. Otherwise, do nothing after replacing."
157 (save-excursion 157 (save-excursion
158 (save-restriction 158 (save-restriction
159 (narrow-to-region (point) (point)) 159 (narrow-to-region (point) (point))
160 (let* ((type (regexp-quote 160 (mm-display-part (mm-handle-cache handle))))
161 (mm-handle-media-type (mm-handle-cache handle)))) 161 ;; Move undisplayer added to the cached handle to the parent.
162 ;; Force the part to be displayed (but if there is no 162 (mm-handle-set-undisplayer
163 ;; method to display, a user will be prompted to save). 163 handle (mm-handle-undisplayer (mm-handle-cache handle)))
164 ;; See `gnus-mime-display-single'. 164 (mm-handle-set-undisplayer (mm-handle-cache handle) nil)))
165 (mm-inline-override-types nil)
166 (mm-attachment-override-types
167 (cons type mm-attachment-override-types))
168 (mm-automatic-display (cons type mm-automatic-display))
169 (mm-automatic-external-display
170 (cons type mm-automatic-external-display))
171 ;; Suppress adding of button to the cached part.
172 (gnus-inhibit-mime-unbuttonizing nil))
173 (gnus-display-mime (mm-handle-cache handle)))
174 ;; Move undisplayer added to the cached handle to the parent.
175 (mm-handle-set-undisplayer
176 handle
177 (mm-handle-undisplayer (mm-handle-cache handle)))
178 (mm-handle-set-undisplayer (mm-handle-cache handle) nil)))))
179 165
180(provide 'mm-extern) 166(provide 'mm-extern)
181 167