emacs-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]