summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-08-19 12:45:05 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2020-08-19 12:45:05 +0200
commitba8cce26c83c195972a6952dd9546f7153bf93d3 (patch)
treef459d086f8cdaab7a96fb2ddc4c768aa5e2b6c51
parentb4e76ac077fabbdaad56223ff885ba4264c32534 (diff)
downloademacs-ba8cce26c83c195972a6952dd9546f7153bf93d3.tar.gz
Fix the [ command in speedbar mode
* lisp/speedbar.el (speedbar-expand-line-descendants): Expand only the current line -- not all subsequent lines in the speedbar buffer (bug#35014).
-rw-r--r--lisp/speedbar.el28
1 files changed, 15 insertions, 13 deletions
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index e9c15b71ce6..5b98eb36bb9 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -3240,19 +3240,21 @@ With universal argument ARG, flush cached data."
"Expand the line under the cursor and all descendants.
Optional argument ARG indicates that any cache should be flushed."
(interactive "P")
- (speedbar-expand-line arg)
- ;; Now, inside the area expanded here, expand all subnodes of
- ;; the same descendant type.
- (save-excursion
- (speedbar-next 1) ;; Move into the list.
- (let ((err nil))
- (while (not err)
- (condition-case nil
- (progn
- (speedbar-expand-line-descendants arg)
- (speedbar-restricted-next 1))
- (error (setq err t))))))
- )
+ (save-restriction
+ (narrow-to-region (line-beginning-position)
+ (line-beginning-position 2))
+ (speedbar-expand-line arg)
+ ;; Now, inside the area expanded here, expand all subnodes of
+ ;; the same descendant type.
+ (save-excursion
+ (speedbar-next 1) ;; Move into the list.
+ (let ((err nil))
+ (while (not err)
+ (condition-case nil
+ (progn
+ (speedbar-expand-line-descendants arg)
+ (speedbar-restricted-next 1))
+ (error (setq err t))))))))
(defun speedbar-contract-line-descendants ()
"Expand the line under the cursor and all descendants."