;ELC
;;; Compiled by LTX@Xue-LingTaos-MacBook-Pro.local on Wed Mar 16 23:09:46 2011
;;; from file /Users/LTX/Projects/Emacs/emacs/lisp/scroll-lock.el
;;; in Emacs version 24.0.50.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@30 Keymap for Scroll Lock mode.
(defvar scroll-lock-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210)\207" [map make-sparse-keymap define-key [remap next-line] scroll-lock-next-line [remap previous-line] scroll-lock-previous-line [remap forward-paragraph] scroll-lock-forward-paragraph [remap backward-paragraph] scroll-lock-backward-paragraph] 4) (#$ . 545))
#@65 Used for saving the state of `scroll-preserve-screen-position'.
(defvar scroll-lock-preserve-screen-pos-save scroll-preserve-screen-position (#$ . 960))
(make-variable-buffer-local 'scroll-lock-preserve-screen-pos-save)
#@62 Like `temporary-goal-column' but for scroll-lock-* commands.
(defvar scroll-lock-temporary-goal-column 0 (#$ . 1186))
#@101 Non-nil if Scroll-Lock mode is enabled.
Use the command `scroll-lock-mode' to change this variable.
(defvar scroll-lock-mode nil (#$ . 1311))
(make-variable-buffer-local 'scroll-lock-mode)
#@256 Buffer-local minor mode for pager-like scrolling.
Keys which normally move point by line or paragraph will scroll
the buffer by the respective amount of lines instead and point
will be kept vertically fixed relative to window boundaries
during scrolling.
(defalias 'scroll-lock-mode #[(&optional arg) "\305 	\306=\203\n?\202\307	!\310V\211\203#\311\303!\210\312\202%\f\313\314\n\203/\315\2020\316\"\210\317\320!\203Q\305 \203D\305 \232\203Q\321\322\n\203N\323\202O\324\"\210)\325 \210\n\207" [#1=#:last-message arg scroll-lock-mode scroll-preserve-screen-position scroll-lock-preserve-screen-pos-save current-message toggle prefix-numeric-value 0 make-local-variable always run-hooks scroll-lock-mode-hook scroll-lock-mode-on-hook scroll-lock-mode-off-hook called-interactively-p any message "Scroll-Lock mode %sabled" "en" "dis" force-mode-line-update] 4 (#$ . 1507) (list (or current-prefix-arg 'toggle))])
(byte-code "\301\302\303\304\211%\207" [scroll-lock-mode-map add-minor-mode scroll-lock-mode " ScrLck" nil] 6)
#@58 Update `scroll-lock-temporary-goal-column' if necessary.
(defalias 'scroll-lock-update-goal-column #[nil "\302>?\205\ni\211\207" [last-command scroll-lock-temporary-goal-column (scroll-lock-next-line scroll-lock-previous-line scroll-lock-forward-paragraph scroll-lock-backward-paragraph)] 2 (#$ . 2554)])
#@52 Like `move-to-column' but cater for wrapped lines.
(defalias 'scroll-lock-move-to-column #[(column) "n\204\301\302`\303 Z\304 \"!\204\305!\207\306 `Z^u\207" [column zerop mod line-beginning-position window-width move-to-column line-end-position] 4 (#$ . 2868)])
#@42 Scroll up ARG lines keeping point fixed.
(defalias 'scroll-lock-next-line #[(&optional arg) "\204\302\303 \210\304d!\203y\210\202\305!\210\306	!\207" [arg scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column pos-visible-in-window-p scroll-up scroll-lock-move-to-column] 2 (#$ . 3142) "p"])
#@42 Scroll up ARG lines keeping point fixed.
(defalias 'scroll-lock-previous-line #[(&optional arg) "\204\302\303 \210\304\305\306\217\210\307	!\207" [arg scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column nil (scroll-down arg) ((beginning-of-buffer (byte-code "[y\207" [arg] 1))) scroll-lock-move-to-column] 3 (#$ . 3462) "p"])
#@49 Scroll down ARG paragraphs keeping point fixed.
(defalias 'scroll-lock-forward-paragraph #[(&optional arg) "\204\302\303 \210\304\305`\212\306!\210`)\"!\210\307	!\207" [arg scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column scroll-up count-screen-lines forward-paragraph scroll-lock-move-to-column] 5 (#$ . 3814) "p"])
#@47 Scroll up ARG paragraphs keeping point fixed.
(defalias 'scroll-lock-backward-paragraph #[(&optional arg) "\204\303\304 \210\212\305!\210`)\306\307\310\217\210)\311\n!\207" [arg goal scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column backward-paragraph nil (byte-code "\301\302`\"!\207" [goal scroll-down count-screen-lines] 4) ((beginning-of-buffer (goto-char goal))) scroll-lock-move-to-column] 3 (#$ . 4160) "p"])
(provide 'scroll-lock)
