;ELC   
;;; compiled by nocturne@dragons-lair.MIT.EDU on Sat Nov 25 21:42:29 1995
;;; from file /mit/nocturne/home/lib/elisp/mutant-scrolling.el
;;; emacs version 19.25.92.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19")))
    (error "`/mit/nocturne/home/lib/elisp/mutant-scrolling.el' was compiled for Emacs 19"))

(byte-code "!\"\"" [require backquote defalias sip:abs (macro . #[(n) "\nDCBB" [let m n ((if (< m 0) (- m) m))] 3]) sip:same-sign (macro . #[(x y) "\nDCBBBBE" [let z y if < x (0) ((< z 0) (>= z 0))] 6])] 3)
(defvar sip:goal-column 0 "\
Current goal column for scrolling motion.  It is the column where
point was at the start of current run of scrolling commands.")
(defvar sip:default-motion nil "\
Default argument to scroll-up-in-place or scroll-down-in-place,
when repeated with no intervening command and no argument.  This is
the last argument used.")
(defvar sip:eob-motion nil "\
Amount of motion to be used by scroll-up-in-place or
scroll-down-in-place when repeated after hitting the end/beginning of
the buffer with no intervening command and no argument.  This is the
amount of vertical motion that was actually done on the last scroll
operation (which was less than requested, because of buffer
boundaries).")
(defvar sip:eob-blank-limit nil "\
This is the minimum amount of text that is required on the last
screen.  scroll-up-in-place will refuse to scroll any more than this.
Normally this is one less than the number of text line in the window.
However, if a sequence of scrolling commands starts with less text on
the last screen, this is remembered here.")
(defalias 'scroll-down-in-place #[(n) "	\"Ç" [scroll-in-place-command n -1 nil] 3 "\
Scroll text of current window downward ARG lines; or near full screen if
no ARG.  When calling from a program, supply a number as argument or nil.
Leaves point in same row and column of window." "P"])
(defalias 'scroll-up-in-place #[(n) "	\"Ç" [scroll-in-place-command n 1 nil] 3 "\
Scroll text of current window upward ARG lines; or near full screen if
no ARG.  When calling from a program, supply a number as argument or nil.
Leaves point in same row and column of window." "P"])
(defalias 'scroll-in-place-command #[(arg direction) " 	!	 = Ă ZZ\n!\f>?\nA \n!A \n\"8 \nM \n:[  \n=j [ y   W W Y) W [ )   l ۂ i	!bS!)_`	\" [!	`\")䍈.!" [selected-window window window-height minibuffer-window 0 1 height next-screen-context-lines lines prefix-numeric-value arg n last-command (scroll-down-in-place scroll-up-in-place) first-scroll nil moved zerop signal args-out-of-range sip:default-motion sip:eob-motion - z direction m track-eol 9999 sip:goal-column window-start vertical-motion sip:eob-blank-limit pos-visible-in-window-p 2 set-window-start foo (byte-code "	!b\nW& o  N!\"\n!\fU \nVQ \n\\![!\\\fWU  N!\"U !	`\")\fWk [m )\nW} [ )W \f\f!" [window-start window lines 0 ding message beginning-of-buffer error-message throw foo nil vertical-motion moved sip:eob-blank-limit 1 end-of-buffer error "Impossible zero value" set-window-start m sip:eob-motion] 4) move-to-column] 4 "\
Scroll text of current window ARG lines in DIRECTION direction.  If ARG
is null, scrolls almost entire window.  If ARG is '-, scrolls window in
- DIRECTION direction.  DIRECTION is either 1 or -1.  Leaves point in same
row and column of window."])
(provide (quote scroll-in-place))
