(when handle
(mm-with-part handle
(buffer-string))))))
- shr-inhibit-images shr-blocked-images charset)
+ shr-inhibit-images shr-blocked-images charset char)
(if (and (boundp 'gnus-summary-buffer)
(buffer-name gnus-summary-buffer))
(with-current-buffer gnus-summary-buffer
(narrow-to-region (point) (point))
(shr-insert-document
(mm-with-part handle
- (when (and charset
- (setq charset (mm-charset-to-coding-system charset))
- (not (eq charset 'ascii)))
- (insert (prog1
- (mm-decode-coding-string (buffer-string) charset)
- (erase-buffer)
- (mm-enable-multibyte))))
+ (insert (prog1
+ (if (and charset
+ (setq charset
+ (mm-charset-to-coding-system charset))
+ (not (eq charset 'ascii)))
+ (mm-decode-coding-string (buffer-string) charset)
+ (mm-string-as-multibyte (buffer-string)))
+ (erase-buffer)
+ (mm-enable-multibyte)))
+ (goto-char (point-min))
+ (setq case-fold-search t)
+ (while (re-search-forward
+ "&#\\(?:x\\([89][0-9a-f]\\)\\|\\(1[2-5][0-9]\\)\\);" nil t)
+ (when (setq char
+ (cdr (assq (if (match-beginning 1)
+ (string-to-number (match-string 1) 16)
+ (string-to-number (match-string 2)))
+ mm-extra-numeric-entities)))
+ (replace-match (char-to-string char))))
(libxml-parse-html-region (point-min) (point-max))))
(mm-handle-set-undisplayer
handle