Fix display-buffer-override-next-command (bug#71654)
authorRodrigo Kassick <kassick@gmail.com>
Wed, 19 Jun 2024 21:04:08 +0000 (23:04 +0200)
committerAndrea Corallo <acorallo@gnu.org>
Wed, 19 Jun 2024 21:27:49 +0000 (23:27 +0200)
* lisp/window.el (display-buffer-override-next-command):
display-buffer-overriding-action's car can be either a function or a
list of functions. When a function,
(push action (car display-buffer-overriding-action)) will create a
cons-cell (action . function) instead of a list. In the clear-fun
callback, trying to
(delq action (car display-buffer-overriding-action)) causes an
wrong-type-argument error.

Copyright-paperwork-exempt: yes

lisp/window.el

index 0cfe7df73d56410929e3f7a6149d5b183d0ab10d..cb2eea11d137cd66d6904eae838e804adc4eaac4 100644 (file)
@@ -9305,6 +9305,9 @@ to deactivate this overriding action."
     (when echofun
       (add-hook 'prefix-command-echo-keystrokes-functions echofun))
     (setq switch-to-buffer-obey-display-actions t)
+    (unless (listp (car display-buffer-overriding-action))
+      (setcar display-buffer-overriding-action
+              (list (car display-buffer-overriding-action))))
     (push action (car display-buffer-overriding-action))
     exitfun))