X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/0aac98ac25a96f19d007438a5037822b92702594..4d71d2471aaf341791fd728287bf8db62aebb3ba:/lisp/view.el diff --git a/lisp/view.el b/lisp/view.el index 329d3738ed..3f0a6dc325 100644 --- a/lisp/view.el +++ b/lisp/view.el @@ -1,7 +1,7 @@ ;;; view.el --- peruse file or buffer without editing -;; Copyright (C) 1985, 1989, 1994-1995, 1997, 2000-2012 -;; Free Software Foundation, Inc. +;; Copyright (C) 1985, 1989, 1994-1995, 1997, 2000-2015 Free Software +;; Foundation, Inc. ;; Author: K. Shane Hartman ;; Maintainer: Inge Frick @@ -199,6 +199,7 @@ This is local in each buffer, once it is used.") (define-key map "\C-?" 'View-scroll-page-backward) ;; (define-key map "f" 'View-scroll-page-forward) (define-key map " " 'View-scroll-page-forward) + (define-key map [?\S-\ ] 'View-scroll-page-backward) (define-key map "o" 'View-scroll-to-buffer-end) (define-key map ">" 'end-of-buffer) (define-key map "<" 'beginning-of-buffer) @@ -321,7 +322,7 @@ own View-like bindings." (view-mode-enter nil exit-action))) ;;;###autoload -(defun view-buffer-other-window (buffer &optional not-return exit-action) +(defun view-buffer-other-window (buffer &optional _not-return exit-action) "View BUFFER in View mode in another window. Emacs commands editing the buffer contents are not available; instead, a special set of commands (mostly letters and @@ -348,7 +349,7 @@ own View-like bindings." (view-mode-enter nil exit-action))) ;;;###autoload -(defun view-buffer-other-frame (buffer &optional not-return exit-action) +(defun view-buffer-other-frame (buffer &optional _not-return exit-action) "View BUFFER in View mode in another frame. Emacs commands editing the buffer contents are not available; instead, a special set of commands (mostly letters and @@ -407,8 +408,8 @@ Digits provide prefix arguments. \\[View-scroll-to-buffer-end] scroll so that buffer end is at last line of window. SPC scroll forward \"page size\" lines. With prefix scroll forward prefix lines. -DEL scroll backward \"page size\" lines. - With prefix scroll backward prefix lines. +DEL, S-SPC scroll backward \"page size\" lines. + With prefix scroll backward prefix lines. \\[View-scroll-page-forward-set-page-size] like \\[View-scroll-page-forward] but with prefix sets \"page size\" to prefix. \\[View-scroll-page-backward-set-page-size] like \\[View-scroll-page-backward] but with prefix sets \"page size\" to prefix. \\[View-scroll-half-page-forward] scroll forward \"half page size\" lines. With prefix, sets @@ -461,16 +462,13 @@ then \\[View-leave], \\[View-quit] and \\[View-kill-and-leave] will return to th Entry to view-mode runs the normal hook `view-mode-hook'." :lighter " View" :keymap view-mode-map - (if view-mode (view-mode-enable) (view-mode-disable))) + (if view-mode (view--enable) (view--disable))) -(defun view-mode-enable (&optional run-view-mode-hook) - "Turn on View mode. -Run `view-mode-hook' when RUN-VIEW-MODE-HOOK is non-nil." +(defun view--enable () ;; Always leave view mode before changing major mode. ;; This is to guarantee that the buffer-read-only variable is restored. - (add-hook 'change-major-mode-hook 'view-mode-disable nil t) - (setq view-mode t - view-page-size nil + (add-hook 'change-major-mode-hook 'view--disable nil t) + (setq view-page-size nil view-half-page-size nil view-old-buffer-read-only buffer-read-only buffer-read-only t) @@ -481,25 +479,26 @@ Run `view-mode-hook' when RUN-VIEW-MODE-HOOK is non-nil." (format "continue viewing %s" (if (buffer-file-name) (file-name-nondirectory (buffer-file-name)) - (buffer-name))))) - (force-mode-line-update) - (when run-view-mode-hook - (run-hooks 'view-mode-hook))) + (buffer-name)))))) + +(define-obsolete-function-alias 'view-mode-enable 'view-mode "24.4") (defun view-mode-disable () "Turn off View mode." - (remove-hook 'change-major-mode-hook 'view-mode-disable t) + (declare (obsolete view-mode "24.4")) + (view-mode -1)) + +(defun view--disable () + (remove-hook 'change-major-mode-hook 'view--disable t) (and view-overlay (delete-overlay view-overlay)) - (force-mode-line-update) - ;; Calling toggle-read-only while View mode is enabled + ;; Calling read-only-mode while View mode is enabled ;; sets view-read-only to t as a buffer-local variable - ;; after exiting View mode. That arranges that the next toggle-read-only + ;; after exiting View mode. That arranges that the next read-only-mode ;; will reenable View mode. ;; Canceling View mode in any other way should cancel that, too, - ;; so that View mode stays off if toggle-read-only is called. + ;; so that View mode stays off if read-only-mode is called. (if (local-variable-p 'view-read-only) (kill-local-variable 'view-read-only)) - (setq view-mode nil) (if (boundp 'Helper-return-blurb) (setq Helper-return-blurb view-old-Helper-return-blurb)) (if buffer-read-only @@ -562,8 +561,7 @@ This function runs the normal hook `view-mode-hook'." (setq view-exit-action exit-action)) (unless view-mode - (view-mode-enable t) - (force-mode-line-update) + (view-mode 1) (unless view-inhibit-help-message (message "%s" (substitute-command-keys "\ @@ -590,7 +588,7 @@ current buffer. " (when view-mode (let ((buffer (window-buffer))) (unless view-no-disable-on-exit - (view-mode-disable)) + (view-mode -1)) (unless exit-only (cond @@ -601,8 +599,7 @@ current buffer. " (quit-window))) (when exit-action - (funcall exit-action buffer)) - (force-mode-line-update))))) + (funcall exit-action buffer)))))) (defun View-exit () "Exit View mode but stay in current buffer."