(require 'mime-view)
-;;; @ buffer local variables in raw-buffer
-;;;
-
-(defvar mime-raw-representation-type nil
- "Representation-type of mime-raw-buffer.
-It must be nil, `binary' or `cooked'.
-If it is nil, `mime-raw-representation-type-alist' is used as default
-value.
-Notice that this variable is usually used as buffer local variable in
-raw-buffer.")
-
-(make-variable-buffer-local 'mime-raw-representation-type)
-
-
;;; @ code conversion
;;;
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 ((presentation-type
- (save-excursion
- (set-buffer mime-raw-buffer)
- (or mime-raw-representation-type
- (cdr (or (assq major-mode mime-raw-representation-type-alist)
- (assq t mime-raw-representation-type-alist)))
- ))))
- (save-restriction
- (insert-buffer-substring mime-raw-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
;;;
-(defun mime-preview-text/plain (entity situation)
+(defun mime-display-text/plain (entity situation)
(save-restriction
(narrow-to-region (point-max)(point-max))
(mime-text-insert-decoded-body entity)
(if (not (eq (char-after (1- (point))) ?\n))
(insert "\n")
)
- (mime-text-add-url-buttons)
- (run-hooks 'mime-preview-text/plain-hook)
+ (mime-add-url-buttons)
+ (run-hooks 'mime-display-text/plain-hook)
))
-(defun mime-preview-text/richtext (entity situation)
+(defun mime-display-text/richtext (entity situation)
(save-restriction
(narrow-to-region (point-max)(point-max))
(mime-text-insert-decoded-body entity)
(richtext-decode beg (point-max))
)))
-(defun mime-preview-text/enriched (entity situation)
+(defun mime-display-text/enriched (entity situation)
(save-restriction
(narrow-to-region (point-max)(point-max))
(mime-text-insert-decoded-body entity)