X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Fgnus-art.el;h=0d5d4cbc33101fb5a384dd4b097e4d7c3c4fa66b;hb=9d2f1c1d52309374ab82bd567194d8dc38e14912;hp=b3f65a260c7b0d708ca41948c25775ecc939bb14;hpb=75294d11d022f35c3c3fa3d818c92a59e1d8e2f7;p=elisp%2Fgnus.git- diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index b3f65a2..0d5d4cb 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2624,9 +2624,20 @@ always hide." (article-really-strip-banner (gnus-parameter-banner gnus-newsgroup-name))) (when gnus-article-address-banner-alist - (let ((from (caar (mail-header-parse-addresses - (gnus-fetch-original-field "from"))))) - (when from + ;; It is necessary to encode from fields before checking, + ;; because `mail-header-parse-addresses' does not work + ;; (reliably) on decoded headers. And more, it is + ;; impossible to use `gnus-fetch-original-field' here, + ;; because `article-strip-banner' may be called in draft + ;; buffers to preview them. + (let ((from (save-restriction + (widen) + (article-narrow-to-head) + (mail-fetch-field "from")))) + (when (and from + (setq from + (caar (mail-header-parse-addresses + (mail-encode-encoded-word-string from))))) (catch 'found (dolist (pair gnus-article-address-banner-alist) (when (string-match (car pair) from) @@ -4417,6 +4428,8 @@ Deleting parts may malfunction or destroy the article; continue? ") (or (mail-content-type-get (mm-handle-disposition data) 'filename) none)) (type (mm-handle-media-type data))) + (unless data + (error "No MIME part under point")) (with-current-buffer (mm-handle-buffer data) (let ((bsize (format "%s" (buffer-size)))) (erase-buffer)