summaryrefslogtreecommitdiff
path: root/lisp/gnus/nndoc.el
diff options
context:
space:
mode:
authorKatsumi Yamaoka <yamaoka@jpl.org>2013-10-23 03:35:49 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2013-10-23 03:35:49 +0000
commit967a72c957b41e7af82ddfae8487066d6735f5b8 (patch)
tree90bf3eec77e848cd64e4cb141e6894891c3e065c /lisp/gnus/nndoc.el
parentee4282cde213499f9334c0e689e4daf1bb9928e1 (diff)
downloademacs-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.el54
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