[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 8ad9932 1/2: Don't bind standard-output in substitute-command-key
From: |
Stefan Kangas |
Subject: |
master 8ad9932 1/2: Don't bind standard-output in substitute-command-keys |
Date: |
Sun, 1 Nov 2020 12:59:49 -0500 (EST) |
branch: master
commit 8ad9932f1163506370ee05a0d7a2f2d5d57c0fd1
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>
Don't bind standard-output in substitute-command-keys
This fixes a regression with regards to the old C version of
substitute-command-keys.
* lisp/help.el (substitute-command-keys): Don't bind standard-output.
See Bug#39149.
* test/lisp/help-tests.el
(help-tests--was-in-buffer): New variable.
(help-substitute-command-keys/menu-filter-in-correct-buffer): New
test.
---
lisp/help.el | 3 +--
test/lisp/help-tests.el | 20 ++++++++++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/lisp/help.el b/lisp/help.el
index 795f7e7..df055d6 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1013,8 +1013,7 @@ Otherwise, return a new string (without any text
properties)."
(insert string)
(goto-char (point-min))
(while (< (point) (point-max))
- (let ((standard-output (current-buffer))
- (orig-point (point))
+ (let ((orig-point (point))
end-point active-maps
close generate-summary)
(cond
diff --git a/test/lisp/help-tests.el b/test/lisp/help-tests.el
index 079b111..b6dffb2 100644
--- a/test/lisp/help-tests.el
+++ b/test/lisp/help-tests.el
@@ -361,6 +361,26 @@ C-b undefined
")))))
+(defvar help-tests--was-in-buffer nil)
+
+(ert-deftest help-substitute-command-keys/menu-filter-in-correct-buffer ()
+ "Evaluate menu-filter in the original buffer. See Bug#39149."
+ (unwind-protect
+ (progn
+ (define-key global-map (kbd "C-c C-l r")
+ `(menu-item "2" identity
+ :filter ,(lambda (cmd)
+ (setq help-tests--was-in-buffer
+ (current-buffer))
+ cmd)))
+ (with-temp-buffer
+ (substitute-command-keys "\\[identity]")
+ (should (eq help-tests--was-in-buffer
+ (current-buffer)))))
+ (setq help-tests--was-in-buffer nil)
+ (define-key global-map (kbd "C-c C-l r") nil)
+ (define-key global-map (kbd "C-c C-l") nil)))
+
(provide 'help-tests)
;;; help-tests.el ends here