diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2020-08-19 12:45:05 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2020-08-19 12:45:05 +0200 |
commit | ba8cce26c83c195972a6952dd9546f7153bf93d3 (patch) | |
tree | f459d086f8cdaab7a96fb2ddc4c768aa5e2b6c51 | |
parent | b4e76ac077fabbdaad56223ff885ba4264c32534 (diff) | |
download | emacs-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.el | 28 |
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." |