# HG changeset patch # User Katsumi Yamaoka # Date 1271637174 0 # Node ID 0f1b71b92989cc6bd0daa7b45208edac23f7d9fc # Parent ac3787d5aa1f3c8cfaeecbc0026f2773e57fd400# Parent 1721e46585215875184ef805918cd2a18b58aeb9 Merge from mainline. diff -r ac3787d5aa1f -r 0f1b71b92989 etc/NEWS --- a/etc/NEWS Sun Apr 18 23:17:16 2010 +0000 +++ b/etc/NEWS Mon Apr 19 00:32:54 2010 +0000 @@ -148,6 +148,8 @@ * Incompatible Lisp Changes in Emacs 24.1 +** Test for special mode-class was moved from view-file to view-buffer. + ** Passing a nil argument to a minor mode function now turns the mode ON unconditionally. diff -r ac3787d5aa1f -r 0f1b71b92989 lisp/ChangeLog --- a/lisp/ChangeLog Sun Apr 18 23:17:16 2010 +0000 +++ b/lisp/ChangeLog Mon Apr 19 00:32:54 2010 +0000 @@ -1,3 +1,13 @@ +2010-04-18 Juri Linkov + + Test for special mode-class in view-buffer instead of view-file (bug#5513). + + * view.el (view-file, view-buffer): Move test for special mode-class + from view-file to view-buffer. + + * tar-mode.el (tar-extract): Turn if's into one cond + like in arc-mode.el. + 2010-04-18 Juri Linkov Add 7z archive format support (bug#5475). diff -r ac3787d5aa1f -r 0f1b71b92989 lisp/arc-mode.el --- a/lisp/arc-mode.el Sun Apr 18 23:17:16 2010 +0000 +++ b/lisp/arc-mode.el Mon Apr 19 00:32:54 2010 +0000 @@ -1062,8 +1062,8 @@ (archive-maybe-update t)) (or (not (buffer-name buffer)) (cond - (view-p (view-buffer - buffer (and just-created 'kill-buffer-if-not-modified))) + (view-p + (view-buffer buffer (and just-created 'kill-buffer-if-not-modified))) ((eq other-window-p 'display) (display-buffer buffer)) (other-window-p (switch-to-buffer-other-window buffer)) (t (switch-to-buffer buffer)))))) diff -r ac3787d5aa1f -r 0f1b71b92989 lisp/tar-mode.el --- a/lisp/tar-mode.el Sun Apr 18 23:17:16 2010 +0000 +++ b/lisp/tar-mode.el Mon Apr 19 00:32:54 2010 +0000 @@ -852,14 +852,12 @@ (set (make-local-variable 'tar-superior-descriptor) descriptor) (setq buffer-read-only read-only-p) (tar-subfile-mode 1))) - (if view-p - (view-buffer - buffer (and just-created 'kill-buffer-if-not-modified)) - (if (eq other-window-p 'display) - (display-buffer buffer) - (if other-window-p - (switch-to-buffer-other-window buffer) - (switch-to-buffer buffer))))))) + (cond + (view-p + (view-buffer buffer (and just-created 'kill-buffer-if-not-modified))) + ((eq other-window-p 'display) (display-buffer buffer)) + (other-window-p (switch-to-buffer-other-window buffer)) + (t (switch-to-buffer buffer)))))) (defun tar-extract-other-window () diff -r ac3787d5aa1f -r 0f1b71b92989 lisp/view.el --- a/lisp/view.el Sun Apr 18 23:17:16 2010 +0000 +++ b/lisp/view.el Mon Apr 19 00:32:54 2010 +0000 @@ -262,13 +262,7 @@ (unless (file-exists-p file) (error "%s does not exist" file)) (let ((had-a-buf (get-file-buffer file)) (buffer (find-file-noselect file))) - (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")) - (view-buffer buffer (and (not had-a-buf) 'kill-buffer-if-not-modified))))) + (view-buffer buffer (and (not had-a-buf) 'kill-buffer-if-not-modified)))) ;;;###autoload (defun view-file-other-window (file) @@ -334,10 +328,16 @@ Exiting View mode will then discard the user's edits. Setting EXIT-ACTION to `kill-buffer-if-not-modified' avoids this." (interactive "bView buffer: ") - (let ((undo-window (list (window-buffer) (window-start) (window-point)))) - (switch-to-buffer buffer) - (view-mode-enter (cons (selected-window) (cons nil undo-window)) - exit-action))) + (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")) + (let ((undo-window (list (window-buffer) (window-start) (window-point)))) + (switch-to-buffer buffer) + (view-mode-enter (cons (selected-window) (cons nil undo-window)) + exit-action)))) ;;;###autoload (defun view-buffer-other-window (buffer &optional not-return exit-action)