]> git.eshelyaron.com Git - emacs.git/commitdiff
No longer depends on speedbspec for byte compile.
authorKarl Heuer <kwzh@gnu.org>
Fri, 10 Jul 1998 16:46:21 +0000 (16:46 +0000)
committerKarl Heuer <kwzh@gnu.org>
Fri, 10 Jul 1998 16:46:21 +0000 (16:46 +0000)
(rmail-speedbar-match-folder-regexp) new variable.
(rmail-speedbar-menu-items) Updated speedbar menu items.
(rmail-speedbar-key-map) New keymap.
(rmail-install-speedbar-variables) New function.
Install speedbar keymap only when speedbar is loaded.
(rmail-speedbar-buttons) Use `rmail-speedbar-match-folder-regexp'.

lisp/mail/rmail.el
lisp/speedbspec.el [deleted file]

index d7a25ea705917f3d37e4a9849567fc53ce9adfda..dc23ec3d2f4bc04739092490edbe61e51ddc7409 100644 (file)
@@ -3170,20 +3170,45 @@ This has an effect only if a summary buffer exists."
            (add-text-properties (point-min) (point-max) '(rmail-fontified t))
            (font-lock-fontify-region (point-min) (point-max))
            (and (not modified) (buffer-modified-p) (set-buffer-modified-p nil)))))))
-
+\f
 ;;; Speedbar support for RMAIL files.
-(eval-when-compile (require 'speedbspec))
+(eval-when-compile (require 'speedbar))
+
+(defvar rmail-speedbar-match-folder-regexp "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$"
+  "*This regex us used to match folder names to be displayed in speedbar.
+Enabling this will permit speedbar to display your folders for easy
+browsing, and moving of messages.")
 
 (defvar rmail-speedbar-last-user nil
   "The last user to be displayed in the speedbar.")
 
+(defvar rmail-speedbar-key-map nil
+  "Keymap used when in rmail display mode.")
+
+(defun rmail-install-speedbar-variables ()
+  "Install those variables used by speedbar to enhance rmail."
+  (if rmail-speedbar-key-map
+      nil
+    (setq rmail-speedbar-key-map (speedbar-make-specialized-keymap))
+
+    (define-key rmail-speedbar-key-map "e" 'speedbar-edit-line)
+    (define-key rmail-speedbar-key-map "r" 'speedbar-edit-line)
+    (define-key rmail-speedbar-key-map "\C-m" 'speedbar-edit-line)
+    (define-key rmail-speedbar-key-map "M"
+      'rmail-speedbar-move-message-to-folder-on-line)))
+
 (defvar rmail-speedbar-menu-items
-  '(["Browse Item On Line" speedbar-edit-line t]
-    ["Move message to folder" rmail-move-message-to-folder-on-line
+  '(["Read Folder" speedbar-edit-line t]
+    ["Move message to folder" rmail-speedbar-move-message-to-folder-on-line
      (save-excursion (beginning-of-line)
                     (looking-at "<M> "))])
   "Additional menu-items to add to speedbar frame.")
 
+;; Make sure our special speedbar major mode is loaded
+(if (featurep 'speedbar)
+    (rmail-install-speedbar-variables)
+  (add-hook 'speedbar-load-hook 'rmail-install-speedbar-variables))
+
 (defun rmail-speedbar-buttons (buffer)
   "Create buttons for BUFFER containing rmail messages.
 Click on the address under Reply to: to reply to this person.
@@ -3215,7 +3240,7 @@ current message into that RMAIL folder."
       (let* ((case-fold-search nil)
             (df (directory-files (save-excursion (set-buffer buffer)
                                                  default-directory)
-                                 nil "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$")))
+                                 nil rmail-speedbar-match-folder-regexp)))
        (while df
          (speedbar-insert-button "<M>" 'speedbar-button-face 'highlight
                                  'rmail-speedbar-move-message (car df))
@@ -3236,7 +3261,7 @@ TOKEN and INDENT are not used."
    (message "Loading in RMAIL file %s..." text)
    (find-file text)))
 
-(defun rmail-move-message-to-folder-on-line ()
+(defun rmail-speedbar-move-message-to-folder-on-line ()
   "If the current line is a folder, move current message to it."
   (interactive)
   (save-excursion
diff --git a/lisp/speedbspec.el b/lisp/speedbspec.el
deleted file mode 100644 (file)
index 23d63d1..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-;;; speedbspec --- Buffer specialized configurations for speedbar
-
-;; Copyright (C) 1997, 1998 Free Software Foundation
-;;
-;; Author: Eric M. Ludlam <zappo@gnu.ai.mit.edu>
-;; Version: 0.2
-;; Keywords: file, tags, tools
-;;
-;; This file is part of GNU Emacs.
-;; GNU Emacs 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.
-;;
-;; GNU Emacs 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 GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Commentary:
-;;
-;;   Speedbar provides a frame in which files, and locations in
-;; files are displayed.  These functions provide some mode-specific
-;; displays for some existing emacs modes.
-;;
-;;   To provide special service to all the modes supported by this file,
-;; put the following in your .emacs file.
-;;
-;; (require 'speedbspec)
-;;
-;;   This will load in the known functions, and the mode-enabling code
-;; into 'change-major-mode-hook.
-;;
-;;   You can interactivly try to enable speedbar specialized modes by
-;; calling the function `speedbar-add-localized-speedbar-support' and
-;; disable it with `speedbar-remove-localized-speedbar-support'.
-;;
-;;   This file requires speedbar.
-
-;;; Change log:
-;;  0.1   - Initial revision requiring speedbar 0.5
-;;  0.1.1 - `buffer-live-p' replacement on old emacsen
-;;  0.2   - Moved actual work code into their own files.
-;;          Check and load files that need loading before checking for the
-;;             menu variable.
-;;          Made the functions to turn on/off speedbar support interactive.
-;;             It is *not* a minor-mode, it mearly enables special speedbar
-;;             behaviors.
-;;  0.2.1 - Fix for emacs 20 when checking for autoload functions.
-
-;;; Code:
-(require 'speedbar)
-
-;;; Compatibility:
-;;
-;; Thanks: ptype@dra.hmg.gb
-(if (fboundp 'buffer-live-p)
-    nil
-  (defun buffer-live-p (buffer)
-    "Determine if the buffer is alive."
-    (memq buffer (buffer-list))))
-
-\f
-;;; Generic add-new-special-mode stuff
-;;
-(defvar speedbar-localized-buffer-queue nil
-  "List of buffers to localize for speedbar.")
-
-(defun speedbar-add-localized-speedbar-support-to-q ()
-  "Add speedbar support to all buffers in `speedbar-localized-buffer-queue'."
-  (remove-hook 'post-command-hook
-              'speedbar-add-localized-speedbar-support-to-q)
-  (while speedbar-localized-buffer-queue
-    (speedbar-add-localized-speedbar-support
-     (car speedbar-localized-buffer-queue))
-    (setq speedbar-localized-buffer-queue
-         (cdr speedbar-localized-buffer-queue))))
-
-(defun speedbar-add-localized-speedbar-support (buffer)
-  "Add localized speedbar support to BUFFER's mode if it is available."
-  (interactive "bBuffer: ")
-  (if (stringp buffer) (setq buffer (get-buffer buffer)))
-  (if (not (buffer-live-p buffer))
-      nil
-    (save-excursion
-      (set-buffer buffer)
-      (save-match-data
-       (let ((ms (symbol-name major-mode))
-             v tmp)
-         (if (not (string-match "-mode$" ms))
-             nil ;; do nothing to broken mode
-           (setq ms (substring ms 0 (match-beginning 0)))
-           (setq v (intern-soft (concat ms "-speedbar-buttons")))
-           (if (not v)
-               nil ;; do nothing if not defined
-             ;; If it is autoloaded, we need to load it now so that
-             ;; we have access to the varialbe -speedbar-menu-items.
-             ;; Is this XEmacs safe?
-             (let ((sf (symbol-function v)))
-               (if (and (listp sf) (eq (car sf) 'autoload))
-                   (load-library (car (cdr sf)))))
-             (set (make-local-variable 'speedbar-special-mode-expansion-list)
-                  (list v))
-             (setq v (intern-soft (concat ms "-speedbar-menu-items")))
-             (if (not v)
-                 nil ;; don't add special menus
-               (make-local-variable 'speedbar-easymenu-definition-special)
-               (setq speedbar-easymenu-definition-special
-                     (symbol-value v))))))))))
-
-(defun speedbar-remove-localized-speedbar-support (buffer)
-  "Remove any traces that BUFFER supports speedbar in a specialized way."
-  (save-excursion
-    (set-buffer buffer)
-    (kill-local-variable 'speedbar-special-mode-expansion-list)
-    (kill-local-variable 'speedbar-easymenu-definition-special)))
-  
-(defun speedbar-change-major-mode ()
-  "Run when the major mode is changed."
-  (setq speedbar-localized-buffer-queue
-       (add-to-list 'speedbar-localized-buffer-queue (current-buffer)))
-  (add-hook 'post-command-hook 'speedbar-add-localized-speedbar-support-to-q))
-
-(add-hook 'change-major-mode-hook 'speedbar-change-major-mode)
-(add-hook 'find-file-hooks 'speedbar-change-major-mode)
-
-(provide 'speedbspec)
-;;; speedbspec ends here