From: Lars Ingebrigtsen Date: Wed, 19 Aug 2020 10:45:05 +0000 (+0200) Subject: Fix the [ command in speedbar mode X-Git-Tag: emacs-28.0.90~6519 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ba8cce26c83c195972a6952dd9546f7153bf93d3;p=emacs.git 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). --- 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."