]> git.eshelyaron.com Git - emacs.git/commitdiff
(speedbar-frame-width): Make an inline function
authorNick Roberts <nickrob@snap.net.nz>
Fri, 17 Feb 2006 00:26:14 +0000 (00:26 +0000)
committerNick Roberts <nickrob@snap.net.nz>
Fri, 17 Feb 2006 00:26:14 +0000 (00:26 +0000)
instead of a macro.  Use frame-width.
(speedbar-try-completion, speedbar-update-contents)
(speedbar-timer-fn): Use consp.
(speedbar-update-localized-contents): Try to preserve point.

lisp/speedbar.el

index c3f949ead378ac6c70951ecacd2070fd32f13b71..4e639c586f240199a81817cce828575091c3cb1d 100644 (file)
@@ -1019,10 +1019,10 @@ selected.  If the speedbar frame is active, then select the attached frame."
                    (lambda () (let ((speedbar-update-flag t))
                                 (speedbar-timer-fn)))))
 
-(defmacro speedbar-frame-width ()
+(defsubst speedbar-frame-width ()
   "Return the width of the speedbar frame in characters.
 nil if it doesn't exist."
-  '(window-width (get-buffer-window speedbar-buffer)))
+  (frame-width speedbar-frame))
 
 (defun speedbar-mode ()
   "Major mode for managing a display of directories and tags.
@@ -2123,7 +2123,7 @@ Groups may optionally contain a position."
   "A wrapper for `try-completion'.
 Passes STRING and ALIST to `try-completion' if ALIST
 passes some tests."
-  (if (and (listp alist) (not (null alist))
+  (if (and (consp alist)
           (listp (car alist)) (stringp (car (car alist))))
       (try-completion string alist)
     nil))
@@ -2423,8 +2423,7 @@ name will have the function FIND-FUN and not token."
 
   ;; Choose the correct method of doodling.
   (if (and speedbar-mode-specific-contents-flag
-          (listp speedbar-special-mode-expansion-list)
-          speedbar-special-mode-expansion-list
+          (consp speedbar-special-mode-expansion-list)
           (local-variable-p
            'speedbar-special-mode-expansion-list
            (current-buffer)))
@@ -2463,12 +2462,14 @@ name will have the function FIND-FUN and not token."
            )
        (set-buffer speedbar-buffer)
        (speedbar-with-writable
-         (erase-buffer)
-         (dolist (func funclst)
-           (setq default-directory cbd)
-           (funcall func cbd 0))
-       (speedbar-reconfigure-keymaps)
-       (goto-char (point-min)))
+         (let* ((window (get-buffer-window speedbar-buffer 0))
+                (p (window-point window)))
+           (erase-buffer)
+           (dolist (func funclst)
+             (setq default-directory cbd)
+             (funcall func cbd 0))
+           (speedbar-reconfigure-keymaps)
+           (set-window-point window p)))
        ))))
 
 (defun speedbar-update-directory-contents ()
@@ -2572,7 +2573,6 @@ This should only be used by modes classified as special."
            ;; We do not erase the buffer because these functions may
            ;; decide NOT to update themselves.
            (funcall func specialbuff)))
-
       (goto-char (point-min))))
   (speedbar-reconfigure-keymaps))
 
@@ -2614,8 +2614,7 @@ Also resets scanner functions."
                (speedbar-maybe-add-localized-support (current-buffer))
                ;; Update for special mode all the time!
                (if (and speedbar-mode-specific-contents-flag
-                        (listp speedbar-special-mode-expansion-list)
-                        speedbar-special-mode-expansion-list
+                        (consp speedbar-special-mode-expansion-list)
                         (local-variable-p
                          'speedbar-special-mode-expansion-list
                          (current-buffer)))