summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2006-04-12 05:23:27 +0000
committerMiles Bader <miles@gnu.org>2006-04-12 05:23:27 +0000
commit163cb72dcb641bd2e68d3b6887cfef71bb1464ae (patch)
tree2c0eef4a12f4886deb2f2d2aed42423f5e1f6d1c /lisp
parent16a3b9b72cb7384be867dda93d9a6e71fd5e4847 (diff)
downloademacs-163cb72dcb641bd2e68d3b6887cfef71bb1464ae.tar.gz
emacs-163cb72dcb641bd2e68d3b6887cfef71bb1464ae.tar.bz2
emacs-163cb72dcb641bd2e68d3b6887cfef71bb1464ae.zip
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-214
Merge from gnus--rel--5.10 Patches applied: * gnus--rel--5.10 (patch 83) - Update from CVS
Diffstat (limited to 'lisp')
-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 @@
+2006-04-12 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-mime-view-part-as-charset): Ignore charset
+ that the part specifies.
+
+ * mm-decode.el (mm-display-part): Work with external parts and
+ usual parts similarly.
+
+ * mm-extern.el (mm-inline-external-body): Use mm-display-part
+ instead of gnus-display-mime.
+
+ * gnus-uu.el (gnus-uu-save-article): Put mml tags instead of part
+ tag to summarized topics part in order to encode non-ASCII text.
+
+2006-04-12 Kenichi Handa <handa@m17n.org>
+
+ * rfc2231.el (rfc2231-decode-encoded-string): Work on unibyte
+ buffer and then decode the buffer text if necessary.
+ (rfc2231-encode-string): Be sure to work on multibyte buffer at
+ first, and after mm-encode-body, change the buffer to unibyte.
+
2006-04-11 Reiner Steib <Reiner.Steib@gmx.de>
* 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."
specified charset."
(interactive (list nil current-prefix-arg))
(gnus-article-check-buffer)
- (let* ((handle (or handle (get-text-property (point) 'gnus-data)))
- contents charset
- (b (point))
- (inhibit-read-only t))
+ (let ((handle (or handle (get-text-property (point) 'gnus-data)))
+ (fun (get-text-property (point) 'gnus-callback))
+ (gnus-newsgroup-ignored-charsets 'gnus-all)
+ gnus-newsgroup-charset type charset)
(when handle
(if (mm-handle-undisplayer handle)
(mm-remove-part handle))
- (let ((gnus-newsgroup-charset
- (or (cdr (assq arg
- gnus-summary-show-article-charset-alist))
- (mm-read-coding-system "Charset: ")))
- (gnus-newsgroup-ignored-charsets 'gnus-all))
- (gnus-article-press-button)))))
+ (when fun
+ (setq gnus-newsgroup-charset
+ (or (cdr (assq arg gnus-summary-show-article-charset-alist))
+ (mm-read-coding-system "Charset: ")))
+ ;; Strip the charset parameter from `handle'.
+ (setq type (mm-handle-type
+ (if (equal (mm-handle-media-type handle)
+ "message/external-body")
+ (progn
+ (unless (mm-handle-cache handle)
+ (mm-extern-cache-contents handle))
+ (mm-handle-cache handle))
+ handle))
+ charset (assq 'charset (cdr type)))
+ (delq charset type)
+ (funcall fun handle)))))
(defun gnus-mime-view-part-externally (&optional handle)
"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."
"Date: %s\nFrom: %s\nSubject: %s Digest\n\n"
(message-make-date) name name))
(when (and message-forward-as-mime gnus-uu-digest-buffer)
- (insert "<#part type=message/rfc822>\nSubject: Topics\n\n"))
+ (insert
+ "<#mml type=message/rfc822>\nSubject: Topics\n\n<#/mml>\n")
+ (forward-line -1))
(insert "Topics:\n")))
(when (not (eq in-state 'end))
(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."
(mailcap-parse-mailcaps)
(if (mm-handle-displayed-p handle)
(mm-remove-part handle)
- (let* ((type (mm-handle-media-type handle))
+ (let* ((ehandle (if (equal (mm-handle-media-type handle)
+ "message/external-body")
+ (progn
+ (unless (mm-handle-cache handle)
+ (mm-extern-cache-contents handle))
+ (mm-handle-cache handle))
+ handle))
+ (type (mm-handle-media-type ehandle))
(method (mailcap-mime-info type))
(filename (or (mail-content-type-get
(mm-handle-disposition handle) 'filename)
@@ -680,8 +687,8 @@ external if displayed external."
(mm-handle-type handle) 'name)
"<file>"))
(external mm-enable-external))
- (if (and (mm-inlinable-p handle)
- (mm-inlined-p handle))
+ (if (and (mm-inlinable-p ehandle)
+ (mm-inlined-p ehandle))
(progn
(forward-line 1)
(mm-display-inline handle)
@@ -689,7 +696,7 @@ external if displayed external."
(when (or method
(not no-default))
(if (and (not method)
- (equal "text" (car (split-string type))))
+ (equal "text" (car (split-string type "/"))))
(progn
(forward-line 1)
(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."
(save-excursion
(save-restriction
(narrow-to-region (point) (point))
- (let* ((type (regexp-quote
- (mm-handle-media-type (mm-handle-cache handle))))
- ;; Force the part to be displayed (but if there is no
- ;; method to display, a user will be prompted to save).
- ;; See `gnus-mime-display-single'.
- (mm-inline-override-types nil)
- (mm-attachment-override-types
- (cons type mm-attachment-override-types))
- (mm-automatic-display (cons type mm-automatic-display))
- (mm-automatic-external-display
- (cons type mm-automatic-external-display))
- ;; Suppress adding of button to the cached part.
- (gnus-inhibit-mime-unbuttonizing nil))
- (gnus-display-mime (mm-handle-cache handle)))
- ;; Move undisplayer added to the cached handle to the parent.
- (mm-handle-set-undisplayer
- handle
- (mm-handle-undisplayer (mm-handle-cache handle)))
- (mm-handle-set-undisplayer (mm-handle-cache handle) nil)))))
+ (mm-display-part (mm-handle-cache handle))))
+ ;; Move undisplayer added to the cached handle to the parent.
+ (mm-handle-set-undisplayer
+ handle (mm-handle-undisplayer (mm-handle-cache handle)))
+ (mm-handle-set-undisplayer (mm-handle-cache handle) nil)))
(provide 'mm-extern)