diff options
author | Katsumi Yamaoka <yamaoka@jpl.org> | 2013-10-23 03:35:49 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2013-10-23 03:35:49 +0000 |
commit | 967a72c957b41e7af82ddfae8487066d6735f5b8 (patch) | |
tree | 90bf3eec77e848cd64e4cb141e6894891c3e065c /lisp/gnus/nndoc.el | |
parent | ee4282cde213499f9334c0e689e4daf1bb9928e1 (diff) | |
download | emacs-967a72c957b41e7af82ddfae8487066d6735f5b8.tar.gz |
lisp/gnus/mm-decode.el (mm-dissect-buffer): Revert last change
lisp/gnus/nndoc.el (nndoc-dissect-mime-parts-sub): Ditto
The problem that motivated those changes was attributed to a broken
mail sender, and has been fixed.
Diffstat (limited to 'lisp/gnus/nndoc.el')
-rw-r--r-- | lisp/gnus/nndoc.el | 54 |
1 files changed, 4 insertions, 50 deletions
diff --git a/lisp/gnus/nndoc.el b/lisp/gnus/nndoc.el index 9c28cb12807..b17a7a6ecd8 100644 --- a/lisp/gnus/nndoc.el +++ b/lisp/gnus/nndoc.el @@ -968,61 +968,15 @@ PARENT is the message-ID of the parent summary line, or nil for none." (goto-char head-begin) (setq content-type (message-fetch-field "Content-Type")) (when content-type - (with-temp-buffer - (insert content-type) - (goto-char (point-min)) - (when (re-search-forward ";[\t\n ]*name=\\([\"']\\|\\([^\t\n\r ]+\\)\\)" - nil t) - (setq subject (or (match-string 2) - (progn - (goto-char (match-beginning 1)) - (condition-case nil - (progn - (forward-sexp 1) - (buffer-substring - (1+ (match-beginning 1)) (1- (point)))) - (error nil))))))) - (when (or (string-match "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" - content-type) - ;; Guess Content-Type from the file name extention. - ;; Some mailer sends a part without type like this: - ;; Content-Type: ; name="IMG_3156.JPG" - ;; Content-Disposition: attachment; filename="IMG_3156.JPG" - (let ((tem (message-fetch-field "Content-Disposition")) - (case-fold-search t) - len) - (when (and - (setq tem - (or (and tem - (mail-content-type-get - (mail-header-parse-content-disposition - tem) - 'filename)) - subject)) - (setq tem (file-name-extension tem)) - (require 'mailcap) - (setq content-type - (cdr (assoc (concat "." (downcase tem)) - mailcap-mime-extensions))) - (string-match "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" - content-type)) - (save-match-data - (goto-char (point-min)) - (when (re-search-forward "^Content-Type:\\([^;]*\\);" - nil t) - (setq len (- (match-end 1) (match-beginning 1) - (length content-type) 1) - head-end (- head-end len) - body-begin (- body-begin len) - body-end (- body-end len)) - (replace-match (concat "Content-Type: " content-type - ";")))) - t))) + (when (string-match + "^ *\\([^ \t\n/;]+\\)/\\([^ \t\n/;]+\\)" content-type) (setq type (downcase (match-string 1 content-type)) subtype (downcase (match-string 2 content-type)) message-rfc822 (and (string= type "message") (string= subtype "rfc822")) multipart-any (string= type "multipart"))) + (when (string-match ";[ \t\n]*name=\\([^ \t\n;]+\\)" content-type) + (setq subject (match-string 1 content-type))) (when (string-match "boundary=\"?\\([^\"\n]*[^\" \t\n]\\)" content-type) (setq boundary-regexp (concat "^--" (regexp-quote |