"The current version of speedbar.")
(defvar speedbar-incompatible-version "0.14beta4"
"This version of speedbar is incompatible with this version.
-Due to massive API changes (removing the use of the word PATH)
+Due to massive API changes (removing the use of the word PATH)
this version is not backward compatible to 0.14 or earlier.")
;; This file is part of GNU Emacs.
(looking-at "[0-9]+: *\\[[+-]\\] [^ \n]+ \\*?[!#]$"))]
)
"Additional menu items while in file-mode.")
-
+
(defvar speedbar-easymenu-definition-trailer
(append
(if (and (featurep 'custom) (fboundp 'custom-declare-variable))
(defalias 'speedbar-make-overlay
(if (featurep 'xemacs) 'make-extent 'make-overlay))
-(defalias 'speedbar-overlay-put
+(defalias 'speedbar-overlay-put
(if (featurep 'xemacs) 'set-extent-property 'overlay-put))
-(defalias 'speedbar-delete-overlay
+(defalias 'speedbar-delete-overlay
(if (featurep 'xemacs) 'delete-extent 'delete-overlay))
-(defalias 'speedbar-mode-line-update
+(defalias 'speedbar-mode-line-update
(if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
\f
;;; Mode definitions/ user commands
"Handle a delete frame event E.
If the deleted frame is the frame SPEEDBAR is attached to,
we need to delete speedbar also."
- (let ((frame-to-be-deleted (car (car (cdr e)))))
- (if (eq frame-to-be-deleted dframe-attached-frame)
- (delete-frame speedbar-frame)))
- )
+ (when (and speedbar-frame
+ (eq (car (car (cdr e))) ;; frame to be deleted
+ dframe-attached-frame))
+ (delete-frame speedbar-frame)))
;;;###autoload
(defun speedbar-get-focus ()
;; Backwards compatibility
(defalias 'speedbar-with-attached-buffer 'dframe-with-attached-buffer)
(defalias 'speedbar-maybee-jump-to-attached-frame 'dframe-maybee-jump-to-attached-frame)
-
+
(defun speedbar-set-mode-line-format ()
"Set the format of the mode line based on the current speedbar environment.
This gives visual indications of what is up. It EXPECTS the speedbar
(if tag-button-function 'speedbar-highlight-face nil)
tag-button-function tag-button-data))
))
-
+
(defun speedbar-change-expand-button-char (char)
"Change the expansion button character to CHAR for the current line."
(save-excursion
(defun speedbar-default-directory-list (directory index)
"Insert files for DIRECTORY with level INDEX at point."
- (speedbar-insert-files-at-point
+ (speedbar-insert-files-at-point
(speedbar-file-lists directory) index)
(speedbar-reset-scanners)
(if (= index 0)
(speedbar-insert-generic-list indent lst
'speedbar-tag-expand
'speedbar-tag-find))
-
+
(defun speedbar-insert-etags-list (indent lst)
"At level INDENT, insert the etags generated LST."
(speedbar-insert-generic-list indent lst
"Go to the line where FILE is."
(set-buffer speedbar-buffer)
-
+
(goto-char (point-min))
(let ((m nil))
(while (and (setq m (re-search-forward
(widen)
(let ((rf (speedbar-fetch-replacement-function 'speedbar-line-directory)))
(if rf (funcall rf depth) default-directory))))
-
+
(defun speedbar-files-line-directory (&optional depth)
"Retrieve the directoryname associated with the current line.
This may require traversing backwards from DEPTH and combining the default
(forward-char -2)
(speedbar-do-function-pointer))
(error (speedbar-position-cursor-on-line)))))
-
+
(defun speedbar-flush-expand-line ()
"Expand the line under the cursor and flush any cached information."
(interactive)
(speedbar-expand-line 1))
-
+
(defun speedbar-contract-line ()
"Contract the line under the cursor."
(interactive)
interested in."
(save-selected-window
-
+
(select-window (get-buffer-window speedbar-buffer t))
-
+
(set-buffer speedbar-buffer)
-
+
(if (<= (count-lines (point-min) (point-max))
(1- (window-height (selected-window))))
;; whole buffer fits