From: Dmitry Gutov Date: Sun, 6 Oct 2024 01:31:31 +0000 (+0300) Subject: help-setup-xref: Keep the local values only of some variables X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cfdc6b58d0d41a3dbcb57fd2a63f4460f929d8af;p=emacs.git help-setup-xref: Keep the local values only of some variables * lisp/help-mode.el (help-setup-xref): Kill all local variables, saving ones that are known to need to be preserved (bug#73637). (cherry picked from commit e776df2a3eae0454ea85287e15ebba649bf8e918) --- diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 46004b41c2a..ec69a392a96 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -510,28 +510,19 @@ This should be called very early, before the output buffer is cleared, because we want to record the \"previous\" position of point so we can restore it properly when going back." (with-current-buffer (help-buffer) - ;; Disable `outline-minor-mode' in a reused Help buffer - ;; created by `describe-bindings' that enables this mode. - (when (bound-and-true-p outline-minor-mode) - (outline-minor-mode -1) - (mapc #'kill-local-variable - '(outline-search-function - outline-regexp - outline-heading-end-regexp - outline-level - outline-minor-mode-cycle - outline-minor-mode-highlight - outline-minor-mode-use-buttons - outline-default-state - outline-default-rules))) - (when help-xref-stack-item - (push (cons (point) help-xref-stack-item) help-xref-stack) - (setq help-xref-forward-stack nil)) - (when interactive-p - (let ((tail (nthcdr 10 help-xref-stack))) - ;; Truncate the stack. - (if tail (setcdr tail nil)))) - (setq help-xref-stack-item item))) + (let ((stack-item help-xref-stack-item) + (stack help-xref-stack)) + (kill-all-local-variables) + (setq help-xref-stack-item stack-item + help-xref-stack stack) + (when help-xref-stack-item + (push (cons (point) help-xref-stack-item) help-xref-stack) + (setq help-xref-forward-stack nil)) + (when interactive-p + (let ((tail (nthcdr 10 help-xref-stack))) + ;; Truncate the stack. + (if tail (setcdr tail nil)))) + (setq help-xref-stack-item item)))) (defvar help-xref-following nil "Non-nil when following a help cross-reference.")