summaryrefslogtreecommitdiff
path: root/lisp/mail/rmail.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/mail/rmail.el')
-rw-r--r--lisp/mail/rmail.el25
1 files changed, 17 insertions, 8 deletions
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index af7ad220595..e29becedb6e 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -4310,8 +4310,6 @@ This has an effect only if a summary buffer exists."
(restore-buffer-modified-p nil)))))))
;;; Speedbar support for RMAIL files.
-(eval-when-compile (require 'speedbar))
-
(defcustom rmail-speedbar-match-folder-regexp "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$"
"Regexp matching Rmail folder names to be displayed in Speedbar.
Enabling this permits Speedbar to display your folders for easy
@@ -4326,12 +4324,12 @@ browsing, and moving of messages."
(defvar rmail-speedbar-key-map nil
"Keymap used when in rmail display mode.")
+(declare-function speedbar-make-specialized-keymap "speedbar" ())
+
(defun rmail-install-speedbar-variables ()
"Install those variables used by speedbar to enhance rmail."
- (if rmail-speedbar-key-map
- nil
+ (unless rmail-speedbar-key-map
(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)
@@ -4346,6 +4344,9 @@ browsing, and moving of messages."
(looking-at "<M> "))])
"Additional menu-items to add to speedbar frame.")
+(declare-function speedbar-insert-button "speedbar"
+ (text face mouse function &optional token prevline))
+
;; Make sure our special speedbar major mode is loaded
(if (featurep 'speedbar)
(rmail-install-speedbar-variables)
@@ -4387,19 +4388,27 @@ current message into that RMAIL folder."
(speedbar-insert-button file 'speedbar-file-face 'highlight
'rmail-speedbar-find-file nil t)))))))
+(eval-when-compile (require 'dframe))
+;; Part of the macro expansion of dframe-with-attached-buffer.
+;; At runtime, will be pulled in as a require of speedbar.
+(declare-function dframe-select-attached-frame "dframe" (&optional frame))
+(declare-function dframe-maybee-jump-to-attached-frame "dframe" ())
+
(defun rmail-speedbar-button (text token indent)
"Execute an rmail command specified by TEXT.
The command used is TOKEN. INDENT is not used."
- (speedbar-with-attached-buffer
+ (dframe-with-attached-buffer
(funcall token t)))
(defun rmail-speedbar-find-file (text token indent)
"Load in the rmail file TEXT.
TOKEN and INDENT are not used."
- (speedbar-with-attached-buffer
+ (dframe-with-attached-buffer
(message "Loading in RMAIL file %s..." text)
(rmail text)))
+(declare-function speedbar-do-function-pointer "speedbar" ())
+
(defun rmail-speedbar-move-message-to-folder-on-line ()
"If the current line is a folder, move current message to it."
(interactive)
@@ -4413,7 +4422,7 @@ TOKEN and INDENT are not used."
(defun rmail-speedbar-move-message (text token indent)
"From button TEXT, copy current message to the rmail file specified by TOKEN.
TEXT and INDENT are not used."
- (speedbar-with-attached-buffer
+ (dframe-with-attached-buffer
(message "Moving message to %s" token)
;; expand-file-name is needed due to the unhelpful way in which
;; rmail-output expands non-absolute filenames against rmail-default-file.