X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Fsemi.git;a=blobdiff_plain;f=mime-w3.el;h=6c3789d7ab9a4736409787647e9b73a6f1966120;hp=a3d3349c9511341b1184b1d3147e1f37f3f4378d;hb=HEAD;hpb=cc0a722ec13e11cd7aa00db6929cb2505d1c9556 diff --git a/mime-w3.el b/mime-w3.el index a3d3349..6c3789d 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). @@ -19,12 +19,14 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Code: -(require 'w3) +(condition-case nil + (require 'w3) + (error nil)) (require 'mime) (defmacro mime-put-keymap-region (start end keymap) @@ -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") @@ -53,10 +58,32 @@ (narrow-to-region p p) (mime-insert-text-content entity) (run-hooks 'mime-text-decode-hook) - (w3-region p (point-max)) + (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 ;;;