X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=tm-rich.el;h=447f61b6d7591841a469f95d8fbbb534b64d4783;hb=8e18eb1fd95180a6ea115a00ce2f045815809b49;hp=e93e36a2e59de8ae336d51e281aa2e01a8a544b9;hpb=7ea8c7377706103d8f9afc39e3f29e5454ef6404;p=elisp%2Ftm.git diff --git a/tm-rich.el b/tm-rich.el index e93e36a..447f61b 100644 --- a/tm-rich.el +++ b/tm-rich.el @@ -1,108 +1,91 @@ ;;; -;;; $Id: tm-rich.el,v 2.2 1994/10/31 07:44:51 morioka Exp morioka $ +;;; tm-rich.el --- text/enriched and text/richtext style +;;; richtext filter for tm-view ;;; -;;; by MORIOKA Tomohiko -;;; modified by YAMATE Keiichirou +;;; Copyright (C) 1995 Free Software Foundation, Inc. +;;; Copyright (C) 1994 .. 1996 MORIOKA Tomohiko ;;; - -(provide 'tm-rich) +;;; Author: MORIOKA Tomohiko +;;; Version: +;;; $Id: tm-rich.el,v 7.5 1996/05/07 06:28:36 morioka Exp $ +;;; Keywords: mail, news, MIME, multimedia, richtext, enriched +;;; +;;; This file is part of tm (Tools for MIME). +;;; +;;; This program is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU General Public License as +;;; published by the Free Software Foundation; either version 2, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;;; General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with This program. If not, write to the Free Software +;;; Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +;;; +;;; Code: (require 'tm-view) -(defvar mime/text/enriched-face-list - '("bold" "italic" "fixed" "underline")) -(cond ((and (>= (string-to-int emacs-version) 19) window-system) - (require 'hilit19) - (defun mime/set-face-region (b e face) - (let ((sym (intern face))) - (if (eq sym 'italic) - (setq sym 'modeline) - ) - (if (member sym (face-list)) - (progn - (hilit-unhighlight-region b e) - (hilit-region-set-face b e sym) - )))) - ) - ((and (boundp 'NEMACS) NEMACS) - (setq mime/text/enriched-face-list - '("bold" "italic" "underline")) - (setq mime/text/enriched-face-attribute-alist - '(("bold" . inversed-region) - ("italic" . underlined-region) - ("underline" . underlined-region) - )) - (defun mime/set-face-region (beg end sym) - (attribute-add-narrow-attribute - (cdr (assoc sym mime/text/enriched-face-attribute-alist)) - beg end)) - ) - (t - (setq mime/text/enriched-face-list - nil) - (defun mime/set-face-region (beg end sym) +;;; @ content filters for tm-view +;;; + +(defun mime-viewer/filter-text/richtext (ctype params encoding) + (let* ((mode mime::preview/original-major-mode) + (m (assq mode mime-viewer/code-converter-alist)) + (charset (assoc "charset" params)) + ;; 1995/9/21 (c.f. tm-eng:105), 1995/10/3 (c.f. tm-eng:121) + ;; modified by Eric Ding + (beg (point-min)) (end (point-max)) ) - )) + (remove-text-properties beg end '(face nil)) + (mime/decode-region encoding beg end) + (if (and m (fboundp (setq m (cdr m)))) + (funcall m beg (point-max) charset encoding) + (mime-viewer/default-code-convert-region beg (point-max) + charset encoding) + ) + (richtext-decode beg (point-max)) + )) -(defun mime/decode-text/enriched-region (beg end) - (interactive "*r") - (save-excursion - (save-restriction - (narrow-to-region beg end) - (while (search-forward "\n" nil t) - (replace-match "") - ) - (goto-char beg) - (let (cmd str (fb (point)) fe b e) - (while (re-search-forward "<[^<>\n\r \t]+>" nil t) - (setq b (match-beginning 0)) - (setq cmd (buffer-substring (+ b 1) - (- (match-end 0) 1))) - (replace-match "") - (cond ((string= cmd "nl") - (if (= fb b) - (insert "\n") - (fill-region fb b t) - ) - (setq fb (point)) - ) - ((member (downcase cmd) mime/text/enriched-face-list) - (setq b (point)) - (save-excursion - (save-restriction - (if (re-search-forward (concat "") nil t) - (progn - (replace-match "") - (setq e (point)) - ) - (setq e end) - ))) - (mime/set-face-region b e cmd) - ))) - (fill-region fb (point-max) t) - (goto-char (point-max)) - (if (not (eq (preceding-char) ?\n)) - (insert "\n") - ) - )))) +(defun mime-viewer/filter-text/enriched (ctype params encoding) + (let* ((mode mime::preview/original-major-mode) + (m (assq mode mime-viewer/code-converter-alist)) + (charset (assoc "charset" params)) + ;; 1995/9/21 (c.f. tm-eng:105), 1995/10/3 (c.f. tm-eng:121) + ;; modified by Eric Ding + (beg (point-min)) (end (point-max)) + ) + (remove-text-properties beg end '(face nil)) + (mime/decode-region encoding beg end) + (if (and m (fboundp (setq m (cdr m)))) + (funcall m beg (point-max) charset encoding) + (mime-viewer/default-code-convert-region beg (point-max) + charset encoding) + ) + (enriched-decode beg (point-max)) + )) + + +;;; @ setting +;;; -(defun mime/decode-text/enriched (&optional ctl) - (interactive) - (save-excursion - (save-restriction - (let ((beg (point-min)) (end (point-max))) - (goto-char (point-min)) - (if (search-forward "\n\n" nil t) - (setq beg (match-end 0)) - ) - (mime/decode-text/enriched-region beg end) - )))) +(set-alist 'mime-viewer/content-filter-alist + "text/richtext" (function mime-viewer/filter-text/richtext)) +(set-alist 'mime-viewer/content-filter-alist + "text/enriched" (function mime-viewer/filter-text/enriched)) -(set-alist 'mime/content-filter-alist - "text/enriched" (function mime/decode-text/enriched)) -(set-alist 'mime/content-filter-alist - "text/richtext" (function mime/decode-text/enriched)) +;;; @ end +;;; + +(provide 'tm-rich) + +(run-hooks 'tm-rich-load-hook) +;;; tm-rich.el ends here