X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-w3.el;h=32558c0f39a8482a7d0cb94ab530eedb0818461d;hb=1dc398f11cf935a529b21fadca5ee8b391925edc;hp=fec612ca560de1254ab461c19267690201c27f46;hpb=f411d6c5e65874eb30fbeb0c64483df8cccfdfee;p=elisp%2Fsemi.git diff --git a/mime-w3.el b/mime-w3.el index fec612c..32558c0 100644 --- a/mime-w3.el +++ b/mime-w3.el @@ -1,8 +1,8 @@ ;;; 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 +;; Author: MORIOKA Tomohiko ;; Keywords: HTML, MIME, multimedia, mail, news ;; This file is part of SEMI (Suite of Emacs MIME Interfaces). @@ -24,8 +24,10 @@ ;;; 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 @@ -43,7 +45,10 @@ )) (cons 'progn body))) +(defvar mime-w3-message-structure nil) + (defun mime-preview-text/html (entity situation) + (setq mime-w3-message-structure (mime-find-root-entity entity)) (goto-char (point-max)) (let ((p (point))) (insert "\n") @@ -51,11 +56,34 @@ (mime-save-background-color (save-restriction (narrow-to-region p p) - (mime-text-insert-decoded-body entity) - (w3-region p (point-max)) + (mime-insert-text-content entity) + (run-hooks 'mime-text-decode-hook) + (condition-case err + (w3-region p (point-max)) + (error (message "%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)) + buffer) + (when entity + (setq buffer (generate-new-buffer (format " *cid %s" url))) + (save-excursion + (set-buffer buffer) + (mime-insert-entity-content entity) + (if (boundp 'url-current-mime-type) + (setq url-current-mime-type (mime-entity-type/subtype entity))))) + buffer)) + +(if (fboundp 'url-register-protocol) + (url-register-protocol "cid" + 'url-cid + 'url-identity-expander) + (provide 'url-cid)) + ;;; @ end ;;;