-;;; Functions for displaying various formats inline
-;;;
-
-(defun mm-inline-image (handle)
- (let ((type (cadr (split-string (caadr handle) "/")))
- image)
- (mm-with-unibyte-buffer
- (insert-buffer-substring (car handle))
- (mm-decode-content-transfer-encoding (nth 2 handle))
- (setq image (make-image-specifier
- (vector (intern type) :data (buffer-string)))))
- (let ((annot (make-annotation image nil 'text)))
- (set-extent-property annot 'mm t)
- (set-extent-property annot 'duplicable t)
- (setcar (nthcdr 3 handle) annot))))
-
-(defun mm-inline-text (handle)
- (let ((type (cadr (split-string (caadr handle) "/")))
- text buffer-read-only)
- (mm-with-unibyte-buffer
- (insert-buffer-substring (car handle))
- (mm-decode-content-transfer-encoding (nth 2 handle))
- (setq text (buffer-string)))
- (cond
- ((equal type "plain")
- (let ((b (point)))
- (insert text)
- (save-restriction
- (narrow-to-region b (point))
- (let ((charset (drums-content-type-get (nth 1 handle) 'charset)))
- (when charset
- (mm-decode-body charset nil)))
- (setcar
- (nthcdr 3 handle)
- `(lambda ()
- (let (buffer-read-only)
- (delete-region ,(set-marker (make-marker) (point-min))
- ,(set-marker (make-marker) (point-max)))))))))
- )))
-
-(defun mm-inline-audio (handle)
- (message "Not implemented"))
-
-;;;