From: Katsumi Yamaoka Date: Fri, 26 May 2017 08:07:58 +0000 (+0000) Subject: Work for application/x-tar-gz and image/svg+xml X-Git-Tag: emacs-26.0.90~521^2~264 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4de0737c9b5ae8939763ad70085f02e1eace4032;p=emacs.git Work for application/x-tar-gz and image/svg+xml ;; Try inlining the attachment in the article <87wp94dzj6.fsf@gmail.com> ;; of bug#27078 in the Emacs bug list using Gnus. * lisp/gnus/mm-archive.el (mm-archive-decoders): Add a decoder for application/x-tar-gz. (mm-dissect-archive): Error out if a decoder is not found. * lisp/gnus/mm-decode.el (mm-get-image): Allow image/svg+xml. --- diff --git a/lisp/gnus/mm-archive.el b/lisp/gnus/mm-archive.el index 5ac8761f6b5..103cc89c357 100644 --- a/lisp/gnus/mm-archive.el +++ b/lisp/gnus/mm-archive.el @@ -30,15 +30,18 @@ '(("application/ms-tnef" t "tnef" "-f" "-" "-C") ("application/zip" nil "unzip" "-j" "-x" "%f" "-d") ("application/x-gtar-compressed" nil "tar" "xzf" "-" "-C") + ("application/x-tar-gz" nil "tar" "xzf" "-" "-C") ("application/x-tar" nil "tar" "xf" "-" "-C"))) (defun mm-archive-decoders () mm-archive-decoders) (defun mm-dissect-archive (handle) - (let ((decoder (cddr (assoc (car (mm-handle-type handle)) - mm-archive-decoders))) - (dir (make-temp-file - (expand-file-name "emm." mm-tmp-directory) 'dir))) + (let* ((type (car (mm-handle-type handle))) + (decoder (cddr (assoc type mm-archive-decoders))) + dir) + (unless decoder + (error "No decoder found for %s" type)) + (setq dir (make-temp-file (expand-file-name "emm." mm-tmp-directory) 'dir)) (set-file-modes dir #o700) (unwind-protect (progn diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 5b8aeb3ca31..c6a0be36c40 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1555,6 +1555,8 @@ be determined." "xbm") ((equal type "x-portable-bitmap") "pbm") + ((equal type "svg+xml") + "svg") (t type))) (or (mm-handle-cache handle) (mm-with-unibyte-buffer