2 ;;; $Id: tinyrich.el,v 1.1 1995/07/05 16:21:36 morioka Exp $
4 ;;; by MORIOKA Tomohiko <morioka@jaist.ac.jp>
5 ;;; modified by YAMATE Keiichirou <ics9118@sem1.info.osaka-cu.ac.jp>
8 (defvar mime/text/enriched-face-list
9 '("bold" "italic" "fixed" "underline"))
11 (cond ((and (>= emacs-major-version 19) window-system)
12 (defun mime/set-face-region (b e face)
13 (let ((sym (intern face)))
14 (if (member sym (face-list))
15 (let ((overlay (make-overlay b e)))
16 (overlay-put overlay 'face 'bold)
19 ((and (boundp 'NEMACS) NEMACS)
20 (setq mime/available-face-list
21 '("bold" "italic" "underline"))
22 (setq mime/available-face-attribute-alist
23 '(("bold" . inversed-region)
24 ("italic" . underlined-region)
25 ("underline" . underlined-region)
27 (defun mime/set-face-region (beg end sym)
28 (attribute-add-narrow-attribute
29 (cdr (assoc sym mime/available-face-attribute-alist))
33 (setq mime/text/richtext-face-list nil)
34 (defun mime/set-face-region (beg end sym)
38 (defun enriched-decode (beg end)
42 (narrow-to-region beg end)
44 (while (re-search-forward "[ \t]*\\(\n+\\)[ \t]*" nil t)
45 (let ((str (buffer-substring (match-beginning 1)
47 (if (string= str "\n")
49 (replace-match (substring str 1))
52 (let (cmd str (fb (point)) fe b e)
53 (while (re-search-forward "<\\(<\\|[^<>\n\r \t]+>\\)" nil t)
54 (setq b (match-beginning 0))
55 (setq cmd (buffer-substring b (match-end 0)))
56 (if (string= cmd "<<")
59 (setq cmd (downcase (substring cmd 1 (- (length cmd) 1))))
61 (cond ((string= cmd "param")
65 (if (search-forward "</param>" nil t)
74 ((member cmd mime/text/enriched-face-list)
78 (if (re-search-forward (concat "</" cmd ">") nil t)
85 (mime/set-face-region b e cmd)
87 (goto-char (point-max))
88 (if (not (eq (preceding-char) ?\n))