This commit was generated by cvs2svn to compensate for changes in r434,
[elisp/tm.git] / tm-view.el
index cd3f386..1cb26da 100644 (file)
@@ -8,7 +8,7 @@
 ;;; modified by Steven L. Baur <steve@miranova.com>
 ;;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;;; Created: 1994/7/13 (1994/8/31 obsolete tm-body.el)
-;;; Version: $Revision: 7.63 $
+;;; Version: $Revision: 7.66 $
 ;;; Keywords: mail, news, MIME, multimedia
 ;;;
 ;;; This file is part of tm (Tools for MIME).
@@ -45,7 +45,7 @@
 ;;;
 
 (defconst mime-viewer/RCS-ID
-  "$Id: tm-view.el,v 7.63 1996/05/20 14:56:33 morioka Exp $")
+  "$Id: tm-view.el,v 7.66 1996/07/01 23:42:12 morioka Exp $")
 
 (defconst mime-viewer/version (get-version-string mime-viewer/RCS-ID))
 (defconst mime/viewer-version mime-viewer/version)
@@ -215,8 +215,8 @@ Each elements are regexp of field-name. [tm-view.el]")
             (let ((server (assoc "server" params)))
               (setq access-type (cdr access-type))
               (if server
-                  (format "[%s %s ([%s] %s)]\n" num subj
-                          access-type (cdr server))
+                  (insert (format "[%s %s ([%s] %s)]\n" num subj
+                                  access-type (cdr server)))
                 (let ((site (assoc-value "site" params))
                       (dir (assoc-value "directory" params))
                       )
@@ -680,85 +680,94 @@ The compressed face will be piped to this command.")
     )
   "Menu for MIME Viewer")
 
-(defvar mime/viewer-mode-map nil)
-(if (null mime/viewer-mode-map)
+(if running-xemacs
     (progn
-      (setq mime/viewer-mode-map (make-keymap))
-      (suppress-keymap mime/viewer-mode-map)
-      (define-key mime/viewer-mode-map
-       "u"        (function mime-viewer/up-content))
-      (define-key mime/viewer-mode-map
-       "p"        (function mime-viewer/previous-content))
-      (define-key mime/viewer-mode-map
-       "n"        (function mime-viewer/next-content))
-      (define-key mime/viewer-mode-map
-       " "        (function mime-viewer/scroll-up-content))
-      (define-key mime/viewer-mode-map
-       "\M- "     (function mime-viewer/scroll-down-content))
-      (define-key mime/viewer-mode-map
-       "\177"     (function mime-viewer/scroll-down-content))
-      (define-key mime/viewer-mode-map
-       "\C-m"     (function mime-viewer/next-line-content))
-      (define-key mime/viewer-mode-map
-       "\C-\M-m"  (function mime-viewer/previous-line-content))
-      (define-key mime/viewer-mode-map
-       "v"        (function mime-viewer/play-content))
-      (define-key mime/viewer-mode-map
-       "e"        (function mime-viewer/extract-content))
-      (define-key mime/viewer-mode-map
-       "\C-c\C-p" (function mime-viewer/print-content))
-      (define-key mime/viewer-mode-map
-       "x"        (function mime-viewer/display-x-face))
-      (define-key mime/viewer-mode-map
-       "a"        (function mime-viewer/follow-content))
-      (define-key mime/viewer-mode-map
-       "q"        (function mime-viewer/quit))
-      (define-key mime/viewer-mode-map
-       "h"        (function mime-viewer/show-summary))
-      (define-key mime/viewer-mode-map
-       "\C-c\C-x" (function mime-viewer/kill-buffer))
-      (define-key mime/viewer-mode-map
-        "<"        (function beginning-of-buffer))
-      (define-key mime/viewer-mode-map
-        ">"        (function end-of-buffer))
-      (if mouse-button-2
-         (define-key mime/viewer-mode-map
-           mouse-button-2 (function tm:button-dispatcher))
-       )
-      (cond (running-xemacs
-            (defvar mime-viewer/xemacs-popup-menu
-              (cons mime-viewer/menu-title
-                    (mapcar (function
-                             (lambda (item)
-                               (vector (nth 1 item)(nth 2 item) t)
-                               ))
-                            mime-viewer/menu-list)))
-            (defun mime-viewer/xemacs-popup-menu (event)
-              "Popup the menu in the MIME Viewer buffer"
-              (interactive "e")
-              (select-window (event-window event))
-              (set-buffer (event-buffer event))
-              (popup-menu 'mime-viewer/xemacs-popup-menu))
-            (define-key mime/viewer-mode-map
-              mouse-button-3 (function mime-viewer/xemacs-popup-menu))
-            )
-           ((>= emacs-major-version 19)
-            (define-key mime/viewer-mode-map [menu-bar mime-view]
-              (cons mime-viewer/menu-title
-                    (make-sparse-keymap mime-viewer/menu-title)))
-            (mapcar (function
-                     (lambda (item)
-                       (define-key mime/viewer-mode-map
-                         (vector 'menu-bar 'mime-view (car item))
-                         (cons (nth 1 item)(nth 2 item))
-                         )
-                       ))
-                    (reverse mime-viewer/menu-list)
-                    )
-            ))
+      (defvar mime-viewer/xemacs-popup-menu
+       (cons mime-viewer/menu-title
+             (mapcar (function
+                      (lambda (item)
+                        (vector (nth 1 item)(nth 2 item) t)
+                        ))
+                     mime-viewer/menu-list)))
+      (defun mime-viewer/xemacs-popup-menu (event)
+       "Popup the menu in the MIME Viewer buffer"
+       (interactive "e")
+       (select-window (event-window event))
+       (set-buffer (event-buffer event))
+       (popup-menu 'mime-viewer/xemacs-popup-menu))
       ))
 
-(defun mime/viewer-mode (&optional mother ctl encoding ibuf obuf)
+(defun mime-viewer/define-keymap (&optional mother)
+  (let ((mime/viewer-mode-map (if mother
+                                 (copy-keymap mother)
+                               (make-keymap))))
+    (suppress-keymap mime/viewer-mode-map)
+    (define-key mime/viewer-mode-map
+      "u"        (function mime-viewer/up-content))
+    (define-key mime/viewer-mode-map
+      "p"        (function mime-viewer/previous-content))
+    (define-key mime/viewer-mode-map
+      "n"        (function mime-viewer/next-content))
+    (define-key mime/viewer-mode-map
+      " "        (function mime-viewer/scroll-up-content))
+    (define-key mime/viewer-mode-map
+      "\M- "     (function mime-viewer/scroll-down-content))
+    (define-key mime/viewer-mode-map
+      "\177"     (function mime-viewer/scroll-down-content))
+    (define-key mime/viewer-mode-map
+      "\C-m"     (function mime-viewer/next-line-content))
+    (define-key mime/viewer-mode-map
+      "\C-\M-m"  (function mime-viewer/previous-line-content))
+    (define-key mime/viewer-mode-map
+      "v"        (function mime-viewer/play-content))
+    (define-key mime/viewer-mode-map
+      "e"         (function mime-viewer/extract-content))
+    (define-key mime/viewer-mode-map
+      "\C-c\C-p" (function mime-viewer/print-content))
+    (define-key mime/viewer-mode-map
+      "x"        (function mime-viewer/display-x-face))
+    (define-key mime/viewer-mode-map
+      "a"        (function mime-viewer/follow-content))
+    (define-key mime/viewer-mode-map
+      "q"        (function mime-viewer/quit))
+    (define-key mime/viewer-mode-map
+      "h"        (function mime-viewer/show-summary))
+    (define-key mime/viewer-mode-map
+      "\C-c\C-x" (function mime-viewer/kill-buffer))
+    (define-key mime/viewer-mode-map
+      "<"        (function beginning-of-buffer))
+    (define-key mime/viewer-mode-map
+      ">"        (function end-of-buffer))
+    (define-key mime/viewer-mode-map
+      "?"        (function describe-mode))
+    (if mouse-button-2
+       (define-key mime/viewer-mode-map
+         mouse-button-2 (function tm:button-dispatcher))
+      )
+    (cond (running-xemacs
+          (define-key mime/viewer-mode-map
+            mouse-button-3 (function mime-viewer/xemacs-popup-menu))
+          )
+         ((>= emacs-major-version 19)
+          (define-key mime/viewer-mode-map [menu-bar mime-view]
+            (cons mime-viewer/menu-title
+                  (make-sparse-keymap mime-viewer/menu-title)))
+          (mapcar (function
+                   (lambda (item)
+                     (define-key mime/viewer-mode-map
+                       (vector 'menu-bar 'mime-view (car item))
+                       (cons (nth 1 item)(nth 2 item))
+                       )
+                     ))
+                  (reverse mime-viewer/menu-list)
+                  )
+          ))
+    (use-local-map mime/viewer-mode-map)
+    (run-hooks 'mime-viewer/define-keymap-hook)
+    ))
+
+(defun mime/viewer-mode (&optional mother ctl encoding ibuf obuf
+                                  mother-keymap)
   "Major mode for viewing MIME message.
 
 Here is a list of the standard keys for mime/viewer-mode.
@@ -777,16 +786,11 @@ M-RET             Move to previous line
 v              Decode current content as `play mode'
 e              Decode current content as `extract mode'
 C-c C-p                Decode current content as `print mode'
-f              Display X-Face
+a              Followup to current content.
+x              Display X-Face
 q              Quit
 button-2       Move to point under the mouse cursor
                and decode current content as `play mode'
-
-
-Here are all the commands with their current binding,
-listed in key order:
-
-\\{mime/viewer-mode-map}
 "
   (interactive)
   (let ((buf (get-buffer mime/output-buffer-name)))
@@ -805,7 +809,7 @@ listed in key order:
          (progn
            (setq mime::preview/mother-buffer mother)
            ))
-      (use-local-map mime/viewer-mode-map)
+      (mime-viewer/define-keymap mother-keymap)
       (setq mime::preview/content-list (nth 1 ret))
       (goto-char
        (let ((ce (mime::preview-content-info/point-max