MIME-encoding is value of field 'encoding of SITUATION. It must be
'nil or string. MIME-charset is value of field \"charset\" of
SITUATION. It must be symbol."
- (let* ((buffer (mime-entity-buffer entity))
- (presentation-type
- (save-excursion
- (set-buffer buffer)
- (or mime-raw-representation-type
- (cdr (or (assq major-mode mime-raw-representation-type-alist)
- (assq t mime-raw-representation-type-alist)))
- ))))
- (insert-buffer-substring buffer
- (mime-entity-body-start entity)
- (mime-entity-body-end entity))
- (let ((encoding (mime-entity-encoding entity)))
- (mime-decode-region (point-min) (point-max) encoding)
- (if (or (eq presentation-type 'binary)
- (not (member encoding '(nil "7bit" "8bit" "binary"))))
- (decode-mime-charset-region (point-min)(point-max)
- (or (mime-content-type-parameter
- (mime-entity-content-type entity)
- "charset")
- default-mime-charset))
- )))
+ (let ((str (mime-entity-content entity)))
+ (insert
+ (if (and (mime-entity-cooked-p entity)
+ (member (mime-entity-encoding entity)
+ '(nil "7bit" "8bit" "binary")))
+ str
+ (decode-mime-charset-string str
+ (or (mime-content-type-parameter
+ (mime-entity-content-type entity)
+ "charset")
+ default-mime-charset))
+ )))
(run-hooks 'mime-text-decode-hook)
)
-;;; @ for URL
-;;;
-
-(require 'browse-url)
-
-(defvar mime-text-url-regexp
- "\\(http\\|ftp\\|file\\|gopher\\|news\\|telnet\\|wais\\|mailto\\):\\(//[-a-zA-Z0-9_.]+:[0-9]*\\)?[-a-zA-Z0-9_=?#$@~`%&*+|\\/.,]*[-a-zA-Z0-9_=#$@~`%&*+|\\/]"
- "*Regexp to match URL in text/plain body.")
-
-(defun mime-text-browse-url (&optional url)
- (if (fboundp browse-url-browser-function)
- (if url
- (funcall browse-url-browser-function url)
- (call-interactively browse-url-browser-function))
- (if (fboundp mime-button-mother-dispatcher)
- (call-interactively mime-button-mother-dispatcher)
- )
- ))
-
-(defsubst mime-text-add-url-buttons ()
- "Add URL-buttons for text body."
- (goto-char (point-min))
- (while (re-search-forward mime-text-url-regexp nil t)
- (let ((beg (match-beginning 0))
- (end (match-end 0)))
- (mime-add-button beg end #'mime-text-browse-url
- (list (buffer-substring beg end)))
- )))
-
-(defun mime-text-add-url-buttons-maybe ()
- "Add URL-buttons if 'browse-url-browser-function is not 'nil."
- (if browse-url-browser-function
- (mime-text-add-url-buttons)
- ))
-
-
;;; @ content filters for mime-text
;;;
(if (not (eq (char-after (1- (point))) ?\n))
(insert "\n")
)
- (mime-text-add-url-buttons)
+ (mime-add-url-buttons)
(run-hooks 'mime-display-text/plain-hook)
))