;;; ;;; mew-bitmap-mule.el ;; Copyright (C) 1996,1997 OKUNISHI Fujikazu ;; Copyright (C) 1996,1997 MORIOKA Tomohiko ;; ;; Author: OKUNISHI Fujikazu ;; MORIOKA Tomohiko ;; Maintainer: OKUNISHI Fujikazu (wanted ;-p) ;; Version: ;; $Id: mew-bitmap-mule.el,v 0.08 1997/10/21 OKUNISHI Fujikazu Exp $ ;; Created: 1996/08/20 ;; Revised: 1997/10/21 ;; ;;; Commentary: ;; If you want to display X-Face inline, please add the following ;; to the appropriate init file (i.e. `~/.emacs'): ;; ;; (if window-system ;; (progn ;; ;; to decode X-Face field: ;; (setq mew-opt-show-x-face t) ;; ;; to decode/encode face-marks: !!! *very* slow !!! ;; (setq mew-opt-show-face-mark t) ;; (require 'mew-bitmap-mule))) ;; ;; Of course, `bitmap-mule', `tl', and `compface' packages are ;; additionally required. You can find them as following name(s): ;; bitmap-mule , tl: ;; `tm-7.106.tar.gz' (`tm-oomori' package), or later ;; (+ `tm-7.100.3-os2.tar.gz' or later) ;; `compface.tar.gz' ;; ;; Enjoy! (^_^) ;;; Code: (defconst mew-bitmap-mule/version "v0.08") ;; Hook (defvar mew-bitmap-mule-post-load-hook nil) ;; Variables (defvar mew-opt-show-x-face nil "*Show decoded X-Face inline, if non-nil and if you run Mew on Mule,XEmacs. [mew-bitmap-mule.el]") (defvar mew-opt-show-face-mark nil "*Display face-marks decoded/encoded, if non-nil and if you run Mew on Mule,XEmacs [mew-bitmap-mule.el]") (defvar running-xemacs (string-match "XEmacs" emacs-version)) ;;(defvar uncompface-program "uncompface.exe") ;;; easy-menu "Menu" (defvar mew-bitmap-mule-summary/virtual-mode-menu-spec '("Bitmap-mule") "*Menu for mew-bitmap-mule, used in Mew summary/virtual mode. [mew-bitmap-mule.el]" ) (if mew-opt-show-x-face (nconc mew-bitmap-mule-summary/virtual-mode-menu-spec '(["Toggle decode X-Face" mew-toggle-x-face-decode t]) )) (if mew-opt-show-face-mark (nconc mew-bitmap-mule-summary/virtual-mode-menu-spec '(["Toggle decode face-marks" mew-toggle-smiley-decode t]) )) (add-hook 'mew-init-hook (function (lambda () (easy-menu-define mew-bitmap-mule-menu mew-summary-mode-map "Menu for mew-bitmap-mule, used in Mew summary/virtual mode. [mew-bitmap-mule.el]" mew-bitmap-mule-summary/virtual-mode-menu-spec) (easy-menu-define mew-bitmap-mule-menu mew-virtual-mode-map "Menu for mew-bitmap-mule, used in Mew summary/virtual mode. [mew-bitmap-mule.el]" mew-bitmap-mule-summary/virtual-mode-menu-spec) ))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @ Function ;;; ;; X-Face (defun mew-x-face-decode-inline-buffer () (if mew-opt-show-x-face (x-face-decode-message-header) () ;; NOP )) ;; toggle decode X-Face (defun mew-toggle-x-face-decode () (interactive) (cond (mew-opt-show-x-face (message "Skip decoding X-Face") (setq mew-opt-show-x-face nil)) (t (message "Decode X-Face") (setq mew-opt-show-x-face t)) ) (mew-summary-display)) ;; Face-Marks (defun mew-smiley-decode-inline-buffer () (if mew-opt-show-face-mark (smiley-buffer) () ;; NOP )) ;; toggle decode Face-Marks (defun mew-toggle-smiley-decode () (interactive) (cond (mew-opt-show-face-mark (message "Skip decoding face marks") (setq mew-opt-show-face-mark nil)) (t (message "Decode face marks") (setq mew-opt-show-face-mark t)) )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; @ Main ;;; (and window-system (cond (running-xemacs ;; highlight-headers でも使えば良いのかな? ) ((featurep 'mule) (if mew-opt-show-x-face (progn (autoload 'x-face-decode-message-header "x-face-mule") (add-hook 'mew-summary-display-message-filter-hook 'mew-x-face-decode-inline-buffer) ;; xxx )) (if mew-opt-show-face-mark (progn (autoload 'smiley-buffer "smiley-mule" nil t) (add-hook 'mew-summary-display-message-filter-hook 'mew-smiley-decode-inline-buffer) ;; xxx ;; for yank (mu-cite/supercite) (add-hook 'mu-cite/post-cite-hook 'smiley-encode-buffer) ;; mu-cite (add-hook 'sc-post-hook 'smiley-encode-buffer) ;; supercite )) ))) ;;; filter (defun mew-summary-display-message-filter () (save-excursion (set-buffer (mew-buffer-message)) (goto-char (point-min)) (let ((buffer-read-only nil)) (run-hooks 'mew-summary-display-message-filter-hook) ))) ;;; hook (add-hook 'mew-message-hook 'mew-summary-display-message-filter) ;;; End (provide 'mew-bitmap-mule) (run-hooks 'mew-bitmap-mule-post-load-hook) ;;; mew-bitmap-mule.el ends here