comparison lisp/tm/tm-view.el @ 70:131b0175ea99 r20-0b30

Import from CVS: tag r20-0b30
author cvs
date Mon, 13 Aug 2007 09:02:59 +0200
parents 56c54cf7c5b6
children 54cc21c15cbb
comparison
equal deleted inserted replaced
69:804d1389bcd6 70:131b0175ea99
1 ;;; tm-view.el --- interactive MIME viewer for GNU Emacs 1 ;;; tm-view.el --- interactive MIME viewer for GNU Emacs
2 2
3 ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. 3 ;; Copyright (C) 1995,1996 Free Software Foundation, Inc.
4 4
5 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp> 5 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
6 ;; Created: 1994/7/13 (1994/8/31 obsolete tm-body.el) 6 ;; Created: 1994/7/13 (1994/8/31 obsolete tm-body.el)
7 ;; Version: $Revision: 1.6 $ 7 ;; Version: $Revision: 1.1.1.1 $
8 ;; Keywords: mail, news, MIME, multimedia 8 ;; Keywords: mail, news, MIME, multimedia
9 9
10 ;; This file is part of tm (Tools for MIME). 10 ;; This file is part of tm (Tools for MIME).
11 11
12 ;; This program is free software; you can redistribute it and/or 12 ;; This program is free software; you can redistribute it and/or
40 40
41 ;;; @ version 41 ;;; @ version
42 ;;; 42 ;;;
43 43
44 (defconst mime-viewer/RCS-ID 44 (defconst mime-viewer/RCS-ID
45 "$Id: tm-view.el,v 1.6 1997/08/21 06:24:14 steve Exp $") 45 "$Id: tm-view.el,v 1.1.1.1 1996/12/18 22:43:37 steve Exp $")
46 46
47 (defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID)) 47 (defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID))
48 (defconst mime/viewer-version mime-viewer/version) 48 (defconst mime/viewer-version mime-viewer/version)
49 49
50 50
72 ((type . "image/jpeg") 72 ((type . "image/jpeg")
73 (method "tm-image" nil 'file 'type 'encoding 'mode 'name) 73 (method "tm-image" nil 'file 'type 'encoding 'mode 'name)
74 (mode "play" "print") 74 (mode "play" "print")
75 ) 75 )
76 ((type . "image/gif") 76 ((type . "image/gif")
77 (method "tm-image" nil 'file 'type 'encoding 'mode 'name)
78 (mode "play" "print")
79 )
80 ((type . "image/png")
81 (method "tm-image" nil 'file 'type 'encoding 'mode 'name) 77 (method "tm-image" nil 'file 'type 'encoding 'mode 'name)
82 (mode "play" "print") 78 (mode "play" "print")
83 ) 79 )
84 ((type . "image/tiff") 80 ((type . "image/tiff")
85 (method "tm-image" nil 'file 'type 'encoding 'mode 'name) 81 (method "tm-image" nil 'file 'type 'encoding 'mode 'name)
382 ;;; @@ following method 378 ;;; @@ following method
383 ;;; 379 ;;;
384 380
385 (defvar mime-viewer/following-method-alist nil) 381 (defvar mime-viewer/following-method-alist nil)
386 382
387 (defvar mime-viewer/following-required-fields-list
388 '("From"))
389
390 383
391 ;;; @@ X-Face 384 ;;; @@ X-Face
392 ;;; 385 ;;;
393 386
394 ;; hack from Gnus 5.0.4. 387 ;; hack from Gnus 5.0.4.
734 )) 727 ))
735 728
736 (defun mime-viewer/define-keymap (&optional mother) 729 (defun mime-viewer/define-keymap (&optional mother)
737 (let ((mime/viewer-mode-map (if mother 730 (let ((mime/viewer-mode-map (if mother
738 (copy-keymap mother) 731 (copy-keymap mother)
739 (make-keymap) 732 (make-keymap))))
740 ))) 733 (suppress-keymap mime/viewer-mode-map)
741 (or mother
742 (suppress-keymap mime/viewer-mode-map))
743 (define-key mime/viewer-mode-map 734 (define-key mime/viewer-mode-map
744 "u" (function mime-viewer/up-content)) 735 "u" (function mime-viewer/up-content))
745 (define-key mime/viewer-mode-map 736 (define-key mime/viewer-mode-map
746 "p" (function mime-viewer/previous-content)) 737 "p" (function mime-viewer/previous-content))
747 (define-key mime/viewer-mode-map 738 (define-key mime/viewer-mode-map
748 "n" (function mime-viewer/next-content)) 739 "n" (function mime-viewer/next-content))
749 (define-key mime/viewer-mode-map 740 (define-key mime/viewer-mode-map
750 "\e\t" (function mime-viewer/previous-content))
751 (define-key mime/viewer-mode-map
752 "\t" (function mime-viewer/next-content))
753 (define-key mime/viewer-mode-map
754 " " (function mime-viewer/scroll-up-content)) 741 " " (function mime-viewer/scroll-up-content))
755 (define-key mime/viewer-mode-map 742 (define-key mime/viewer-mode-map
756 "\M- " (function mime-viewer/scroll-down-content)) 743 "\M- " (function mime-viewer/scroll-down-content))
757 (define-key mime/viewer-mode-map 744 (define-key mime/viewer-mode-map
758 "\177" (function mime-viewer/scroll-down-content)) 745 "\177" (function mime-viewer/scroll-down-content))
761 (define-key mime/viewer-mode-map 748 (define-key mime/viewer-mode-map
762 "\C-\M-m" (function mime-viewer/previous-line-content)) 749 "\C-\M-m" (function mime-viewer/previous-line-content))
763 (define-key mime/viewer-mode-map 750 (define-key mime/viewer-mode-map
764 "v" (function mime-viewer/play-content)) 751 "v" (function mime-viewer/play-content))
765 (define-key mime/viewer-mode-map 752 (define-key mime/viewer-mode-map
766 "e" (function mime-viewer/extract-content)) 753 "e" (function mime-viewer/extract-content))
767 (define-key mime/viewer-mode-map 754 (define-key mime/viewer-mode-map
768 "\C-c\C-p" (function mime-viewer/print-content)) 755 "\C-c\C-p" (function mime-viewer/print-content))
769 (define-key mime/viewer-mode-map 756 (define-key mime/viewer-mode-map
770 "x" (function mime-viewer/display-x-face)) 757 "x" (function mime-viewer/display-x-face))
771 (define-key mime/viewer-mode-map 758 (define-key mime/viewer-mode-map
816 803
817 key feature 804 key feature
818 --- ------- 805 --- -------
819 806
820 u Move to upper content 807 u Move to upper content
821 p or M-TAB Move to previous content 808 p Move to previous content
822 n or TAB Move to next content 809 n Move to next content
823 SPC Scroll up or move to next content 810 SPC Scroll up or move to next content
824 M-SPC or DEL Scroll down or move to previous content 811 M-SPC Scroll down or move to previous content
812 DEL Scroll down or move to previous content
825 RET Move to next line 813 RET Move to next line
826 M-RET Move to previous line 814 M-RET Move to previous line
827 v Decode current content as `play mode' 815 v Decode current content as `play mode'
828 e Decode current content as `extract mode' 816 e Decode current content as `extract mode'
829 C-c C-p Decode current content as `print mode' 817 C-c C-p Decode current content as `print mode'
991 rcnum)) 979 rcnum))
992 (setq fields (std11-collect-field-names) 980 (setq fields (std11-collect-field-names)
993 rcnum (cdr rcnum)) 981 rcnum (cdr rcnum))
994 ) 982 )
995 ) 983 )
996 (let ((rest mime-viewer/following-required-fields-list))
997 (while rest
998 (let ((field-name (car rest)))
999 (or (std11-field-body field-name)
1000 (insert
1001 (format
1002 (concat field-name
1003 ": "
1004 (save-excursion
1005 (set-buffer the-buf)
1006 (set-buffer mime::preview/mother-buffer)
1007 (set-buffer mime::preview/article-buffer)
1008 (std11-field-body field-name)
1009 )
1010 "\n")))
1011 ))
1012 (setq rest (cdr rest))
1013 ))
1014 (mime/decode-message-header) 984 (mime/decode-message-header)
1015 ) 985 )
1016 (let ((f (cdr (assq mode mime-viewer/following-method-alist)))) 986 (funcall (cdr (assq mode mime-viewer/following-method-alist))
1017 (if (functionp f) 987 new-buf)
1018 (funcall f new-buf)
1019 (message
1020 (format
1021 "Sorry, following method for %s is not implemented yet."
1022 mode))
1023 ))
1024 )))) 988 ))))
1025 989
1026 (defun mime-viewer/display-x-face () 990 (defun mime-viewer/display-x-face ()
1027 (interactive) 991 (interactive)
1028 (save-window-excursion 992 (save-window-excursion
1059 (let* ((pcl mime::preview/content-list) 1023 (let* ((pcl mime::preview/content-list)
1060 (p (point)) 1024 (p (point))
1061 (i (- (length pcl) 1)) 1025 (i (- (length pcl) 1))
1062 beg) 1026 beg)
1063 (catch 'tag 1027 (catch 'tag
1064 (while (> i 0) 1028 (while (>= i 0)
1065 (setq beg (mime::preview-content-info/point-min (nth i pcl))) 1029 (setq beg (mime::preview-content-info/point-min (nth i pcl)))
1066 (if (> p beg) 1030 (if (> p beg)
1067 (throw 'tag (goto-char beg)) 1031 (throw 'tag (goto-char beg))
1068 ) 1032 )
1069 (setq i (- i 1)) 1033 (setq i (- i 1))