;;; mime-w3.el --- mime-view content filter for text
-;; Copyright (C) 1994,1995,1996,1997,1998 Free Software Foundation, Inc.
+;; Copyright (C) 1994,95,96,97,98,99,2000 Free Software Foundation, Inc.
-;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Author: MORIOKA Tomohiko <tomo@m17n.org>
;; Keywords: HTML, MIME, multimedia, mail, news
;; This file is part of SEMI (Suite of Emacs MIME Interfaces).
;;; Code:
-(require 'w3)
-(require 'mime-text)
+(condition-case nil
+ (require 'w3)
+ (error nil))
+(require 'mime)
(defmacro mime-put-keymap-region (start end keymap)
`(put-text-property ,start ,end
',(if (featurep 'xemacs)
'keymap
'local-map)
- ,keymap)
- )
+ ,keymap))
+
+(defmacro mime-save-background-color (&rest body)
+ (if (featurep 'xemacs)
+ `(let ((color (color-name (face-background 'default))))
+ (prog1
+ (progn ,@body)
+ (font-set-face-background 'default color (current-buffer))
+ ))
+ (cons 'progn body)))
+
+(defvar mime-w3-message-structure nil)
(defun mime-preview-text/html (entity situation)
- (save-restriction
- (narrow-to-region (point-max)(point-max))
- (mime-text-insert-decoded-body entity)
- (let ((beg (point-min)))
- (remove-text-properties beg (point-max) '(face nil))
- (w3-region beg (point-max))
- (mime-put-keymap-region beg (point-max) w3-mode-map)
+ (setq mime-w3-message-structure (mime-find-root-entity entity))
+ (goto-char (point-max))
+ (let ((p (point)))
+ (insert "\n")
+ (goto-char p)
+ (mime-save-background-color
+ (save-restriction
+ (narrow-to-region p p)
+ (mime-insert-text-content entity)
+ (run-hooks 'mime-text-decode-hook)
+ (condition-case err
+ (w3-region p (point-max))
+ (error (message (format "%s" err))))
+ (mime-put-keymap-region p (point-max) w3-mode-map)
+ ))))
+
+(defun url-cid (url &optional proxy-info)
+ (let ((entity
+ (mime-find-entity-from-content-id (mime-uri-parse-cid url)
+ mime-w3-message-structure)))
+ (when entity
+ (mime-insert-entity-content entity)
+ (setq url-current-mime-type (mime-entity-type/subtype entity))
)))
+(url-register-protocol "cid"
+ 'url-cid
+ 'url-identity-expander)
+
;;; @ end
;;;