;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; 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))#@62 Like `temporary-goal-column' but for scroll-lock-* commands.
(make-variable-buffer-local 'scroll-lock-preserve-screen-pos-save)
(defvar scroll-lock-temporary-goal-column 0 (#$ . 601))#@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))#@965 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 the variable `scroll-lock-mode'.

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

(fn &optional ARG)
(make-variable-buffer-local 'scroll-lock-mode)
(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 \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] 8 (#$ . 938) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar scroll-lock-mode-hook nil)#@58 Update `scroll-lock-temporary-goal-column' if necessary.
(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)
(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 (#$ . 2795)])#@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 (#$ . 3563)])#@62 Scroll up ARG lines keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-next-line-always-scroll #[256 "\211\204 \210\301\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 (#$ . 3836) "p"])
(defalias 'scroll-lock-next-line #[256 "\211\204 \210\301\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 (#$ . 3836) "p"])
(defalias 'scroll-lock-previous-line #[256 "\211\204 \210\301\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 (#$ . 3836) "p"])#@69 Scroll down ARG paragraphs keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-forward-paragraph #[256 "\211\204 \210\301\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 (#$ . 4730) "p"])#@67 Scroll up ARG paragraphs keeping point fixed.

(fn &optional ARG)
(defalias 'scroll-lock-backward-paragraph #[256 "\211\204 \210\301\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 (#$ . 5085) "p"])
(provide 'scroll-lock)
