X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fmm-decode.el;h=1278d118c6b68f88b2455f9ef4050472dfa6a632;hp=6ec226fe02e77c61ee3bbc80d4d9b9632872c193;hb=bbe68edb313e02acb4557e5cc4ff2f87a41ca66c;hpb=87e2f61d051414fdc3fb4235570411b89785e9cf diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 6ec226fe0..1278d118c 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -249,6 +249,8 @@ before the external MIME handler is invoked." ("message/partial" mm-inline-partial identity) ("message/external-body" mm-inline-external-body identity) ("text/.*" mm-inline-text identity) + ("application/x-.?tar\\(-.*\\)?" mm-archive-dissect-and-inline identity) + ("application/zip" mm-archive-dissect-and-inline identity) ("audio/wav" mm-inline-audio (lambda (handle) (and (or (featurep 'nas-sound) (featurep 'native-sound)) @@ -298,6 +300,9 @@ before the external MIME handler is invoked." "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" + "application/x-gtar-compressed" + "application/x-tar" + "application/zip" ;; Mutt still uses this even though it has already been withdrawn. "application/pgp") "List of media types that are to be displayed inline. @@ -654,12 +659,23 @@ Postpone undisplaying of viewers for types in (if (equal "text/plain" (car ctl)) (assoc 'format ctl) t)) + ;; Guess what the type of application/octet-stream parts should + ;; really be. + (let ((filename (cdr (assq 'filename (cdr cdl))))) + (when (and (equal (car ctl) "application/octet-stream") + filename + (string-match "\\.\\([^.]+\\)$" filename)) + (let ((new-type (mailcap-extension-to-mime (match-string 1 filename)))) + (when new-type + (setcar ctl new-type))))) (let ((handle (mm-make-handle (mm-copy-to-buffer) ctl cte nil cdl description nil id)) (decoder (assoc (car ctl) mm-archive-decoders))) (if (and decoder - (executable-find (cadr decoder))) + ;; Do automatic decoding + (cadr decoder) + (executable-find (caddr decoder))) (mm-dissect-archive handle) handle)))) @@ -1756,6 +1772,10 @@ If RECURSIVE, search recursively." (string-to-number (match-string 2))) mm-extra-numeric-entities))) (replace-match (char-to-string char)))) + ;; Remove "soft hyphens". + (goto-char (point-min)) + (while (search-forward "­" nil t) + (replace-match "" t t)) (libxml-parse-html-region (point-min) (point-max)))) (unless (bobp) (insert "\n"))