* lisp/files.el (save-some-buffers-action-alist): Fix 'view-mode'.

Use 'view-mode-enter' instead of 'view-buffer' to ignore the 'special'
mode-class that prevents some modes from binding 'q' to 'exit-action'
that should call 'exit-recursive-edit' (bug#76745).
This commit is contained in:
Juri Linkov 2025-03-19 21:09:10 +02:00
parent a77f10305c
commit 7016d1c8e3

View file

@ -6288,7 +6288,10 @@ Before and after saving the buffer, this function runs
(if (not enable-recursive-minibuffers)
(progn (display-buffer buf)
(setq other-window-scroll-buffer buf))
(view-buffer buf (lambda (_) (exit-recursive-edit)))
;; Like 'view-buffer' but ignore 'special' mode-class
;; because 'q' should call 'exit-action' in any case:
(switch-to-buffer buf)
(view-mode-enter nil (lambda (_) (exit-recursive-edit)))
(recursive-edit))
;; Return nil to ask about BUF again.
nil)
@ -6307,7 +6310,10 @@ Before and after saving the buffer, this function runs
(if (not enable-recursive-minibuffers)
(progn (display-buffer diffbuf)
(setq other-window-scroll-buffer diffbuf))
(view-buffer diffbuf (lambda (_) (exit-recursive-edit)))
;; Like 'view-buffer' but ignore 'special' mode-class
;; because 'q' should call 'exit-action' in any case:
(switch-to-buffer diffbuf)
(view-mode-enter nil (lambda (_) (exit-recursive-edit)))
(recursive-edit))))
;; Return nil to ask about BUF again.
nil)