changeset 36047:e1126269be53

(speedbar-frame-parameters): No toolbar lines. (speedbar-line-file): Return nil if not a file. (speedbar-buffers-line-path): Return file for tags, and dir for files.
author Eric M. Ludlam <zappo@gnu.org>
date Mon, 12 Feb 2001 16:31:44 +0000
parents e86b87b9797e
children bb49f3a3ce34
files lisp/speedbar.el
diffstat 1 files changed, 20 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/speedbar.el	Mon Feb 12 14:50:08 2001 +0000
+++ b/lisp/speedbar.el	Mon Feb 12 16:31:44 2001 +0000
@@ -1,9 +1,9 @@
 ;;; speedbar --- quick access to files and tags in a frame
 
-;;; Copyright (C) 1996, 97, 98, 99, 00 Free Software Foundation
+;;; Copyright (C) 1996, 97, 98, 99, 2000, 01 Free Software Foundation
 
 ;; Author: Eric M. Ludlam <zappo@gnu.org>
-;; Version: 0.11
+;; Version: 0.11a
 ;; Keywords: file, tags, tools
 
 ;; This file is part of GNU Emacs.
@@ -347,6 +347,7 @@
 				       (width . 20)
 				       (border-width . 0)
 				       (menu-bar-lines . 0)
+				       (tool-bar-lines . 0)
 				       (unsplittable . t))
   "*Parameters to use when creating the speedbar frame in Emacs.
 Any parameter supported by a frame may be added.  The parameter `height'
@@ -3294,7 +3295,9 @@
       (if f
 	  (let* ((depth (string-to-int (match-string 1)))
 		 (path (speedbar-line-path depth)))
-	    (concat path f))
+	    (if (file-exists-p (concat path f))
+		(concat path f)
+	      nil))
 	nil))))
 
 (defun speedbar-goto-this-file (file)
@@ -4030,13 +4033,20 @@
 (defun speedbar-buffers-line-path (&optional depth)
   "Fetch the full path to the file (buffer) specified on the current line.
 Optional argument DEPTH specifies the current depth of the back search."
-  (end-of-line)
-  ;; Buffers are always at level 0
-  (if (not (re-search-backward "^0:" nil t))
-      nil
-    (let* ((bn (speedbar-line-text))
-	   (buffer (if bn (get-buffer bn))))
-      (if buffer (file-name-directory (buffer-file-name buffer))))))
+  (save-excursion
+    (end-of-line)
+    (let ((start (point)))
+      ;; Buffers are always at level 0
+      (if (not (re-search-backward "^0:" nil t))
+	  nil
+	(let* ((bn (speedbar-line-text))
+	       (buffer (if bn (get-buffer bn))))
+	  (if buffer
+	      (if (save-excursion
+		    (end-of-line)
+		    (eq start (point)))
+		  (file-name-directory (buffer-file-name buffer))
+		(buffer-file-name buffer))))))))
 
 (defun speedbar-buffer-click (text token indent)
   "When the users clicks on a buffer-button in speedbar.