From e2cef717da50fcb5c1e3a58b35b34dc13a5f3fb1 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 1 Feb 2012 16:31:29 +0800 Subject: [PATCH] Fix view-buffer-other-window/frame handling of special modes. * view.el (view-buffer-other-window, view-buffer-other-frame): Handle special modes like view-buffer. (view-buffer): Simplify. Fixes: debbugs:10650 --- lisp/ChangeLog | 4 ++++ lisp/view.el | 18 +++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 152acc03f1..7d05f85f24 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2012-02-01 Chong Yidong + * view.el (view-buffer-other-window, view-buffer-other-frame): + Handle special modes like view-buffer (Bug#10650). + (view-buffer): Simplify. + * frame.el (set-frame-font): Tweak meaning of third argument. * dynamic-setting.el (font-setting-change-default-font): Use diff --git a/lisp/view.el b/lisp/view.el index 035f8c61d9..4a21997109 100644 --- a/lisp/view.el +++ b/lisp/view.el @@ -311,13 +311,9 @@ file: Users may suspend viewing in order to modify the buffer. Exiting View mode will then discard the user's edits. Setting EXIT-ACTION to `kill-buffer-if-not-modified' avoids this." (interactive "bView buffer: ") - (if (eq (with-current-buffer buffer - (get major-mode 'mode-class)) - 'special) - (progn - (switch-to-buffer buffer) - (message "Not using View mode because the major mode is special")) - (switch-to-buffer buffer) + (switch-to-buffer buffer) + (if (eq (get major-mode 'mode-class) 'special) + (message "Not using View mode because the major mode is special") (view-mode-enter nil exit-action))) ;;;###autoload @@ -339,7 +335,9 @@ this argument instead of explicitly setting `view-exit-action'." (interactive "bIn other window view buffer:\nP") (let ((pop-up-windows t)) (pop-to-buffer buffer t)) - (view-mode-enter nil exit-action)) + (if (eq (get major-mode 'mode-class) 'special) + (message "Not using View mode because the major mode is special") + (view-mode-enter nil exit-action))) ;;;###autoload (defun view-buffer-other-frame (buffer &optional not-return exit-action) @@ -360,7 +358,9 @@ this argument instead of explicitly setting `view-exit-action'." (interactive "bView buffer in other frame: \nP") (let ((pop-up-frames t)) (pop-to-buffer buffer t)) - (view-mode-enter nil exit-action)) + (if (eq (get major-mode 'mode-class) 'special) + (message "Not using View mode because the major mode is special") + (view-mode-enter nil exit-action))) ;;;###autoload (define-minor-mode view-mode -- 2.39.2