;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.


#@30 Keymap for Scroll Lock mode.
(defvar scroll-lock-mode-map (define-keymap "<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 "S-<down>" 'scroll-lock-next-line-always-scroll) (#$ . 83))#@65 Used for saving the state of `scroll-preserve-screen-position'.
(defvar scroll-lock-preserve-screen-pos-save scroll-preserve-screen-position (#$ . 443))
(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 (#$ . 668))#@101 Non-nil if Scroll-Lock mode is enabled.
Use the command `scroll-lock-mode' to change this variable.
(defvar scroll-lock-mode nil (#$ . 791))
(make-variable-buffer-local 'scroll-lock-mode)#@951 Buffer-local minor mode for pager-like scrolling.

When enabled, keys that 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.

Note that the default key binding to `scroll' will not work on
MS-Windows systems if `w32-scroll-lock-modifier' is non-nil.

This is a minor mode.  If called interactively, toggle the
`Scroll-Lock mode' mode.  If the prefix argument is positive,
enable the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `scroll-lock-mode'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

(fn &optional ARG)
(defalias 'scroll-lock-mode #[256 "\304 \305=\203 ?\202 \247\203 \306W\203 \307\202 \310\311\301!\2031 \312\300	\"\2031 \300	B\203@ \n\313\302!\210\314\202B \315\316\203L \317\202M \320\"\210\321\322!\203p \304 \203a \211\304 \232\203p \323\324\325\203l \326\202m \327\330$\210\210\331 \210\207" [scroll-lock-mode local-minor-modes scroll-preserve-screen-position scroll-lock-preserve-screen-pos-save current-message toggle 1 nil t boundp delq 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 "%s %sabled%s" "Scroll-Lock mode" "en" "dis" " in current buffer" force-mode-line-update] 7 (#$ . 985) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar scroll-lock-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\310\211%\207" [scroll-lock-mode-map scroll-lock-mode-hook variable-documentation put "Hook run after entering or leaving `scroll-lock-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode scroll-lock-mode " ScrLck"] 6)#@58 Update `scroll-lock-temporary-goal-column' if necessary.
(defalias 'scroll-lock-update-goal-column #[0 "\302>?\205\n i\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 (#$ . 3242)])#@65 Like `move-to-column' but cater for wrapped lines.

(fn COLUMN)
(defalias 'scroll-lock-move-to-column #[257 "n\204 \300`\301 Z\302 \"\303U\204 \304!\207\211\305 `Z^u\207" [mod line-beginning-position window-width 0 move-to-column line-end-position] 4 (#$ . 3553)])#@62 Scroll up ARG lines keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-next-line-always-scroll #[256 "\211\204 \301\262\302 \210\3031 \304!0\210\202 \210db\210\305\301!\210\306!\207" [scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column (end-of-buffer) scroll-up recenter scroll-lock-move-to-column] 3 (#$ . 3826) "p"])#@62 Scroll up ARG lines keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-next-line #[256 "\211\204 \301\262\302 \210\303d!\203 \211y\210\202 \304!\210\305!\207" [scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column pos-visible-in-window-p scroll-up scroll-lock-move-to-column] 3 (#$ . 4184) "p"])#@62 Scroll up ARG lines keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-previous-line #[256 "\211\204 \301\262\302 \210\3031 \304!0\210\202 \210\211[y\210\305!\207" [scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column (beginning-of-buffer) scroll-down scroll-lock-move-to-column] 3 (#$ . 4517) "p"])#@69 Scroll down ARG paragraphs keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-forward-paragraph #[256 "\211\204 \301\262\302 \210\303\304`\212\305!\210`)\"!\210\306!\207" [scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column scroll-up count-screen-lines forward-paragraph scroll-lock-move-to-column] 6 (#$ . 4855) "p"])#@67 Scroll up ARG paragraphs keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-backward-paragraph #[256 "\211\204 \301\262\302 \210\212\303!\210`)\3041! \305\306`\"!0\266\202& \210\211b\266\307!\207" [scroll-lock-temporary-goal-column 1 scroll-lock-update-goal-column backward-paragraph (beginning-of-buffer) scroll-down count-screen-lines scroll-lock-move-to-column] 6 (#$ . 5211) "p"])
(provide 'scroll-lock)
