;ELC   
;;; compiled by jwz@thalidomide on Mon Jan  3 17:53:53 1994
;;; from file /th/jwz/emacs19/lisp/emulators/tpu-extras.el
;;; emacs version 19.9 Lucid (beta12).
;;; bytecomp version 2.22; 22-dec-93.
;;; 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 "This file was compiled for Emacs 19."))

(defconst tpu-extras-revision "!Revision: 1.6 !" "\
Revision number of the TPU-edt extras.")
(defconst tpu-top-scroll-margin 0 "\
*Scroll margin at the top of the screen.
Interpreted as a percent of the current window size.")
(defconst tpu-bottom-scroll-margin 0 "\
*Scroll margin at the bottom of the screen.
Interpreted as a percent of the current window size.")
(defvar tpu-backward-char-like-tpu t "\
*If non-nil, in free cursor mode backward-char (left-arrow) works
just like TPU/edt.  Otherwise, backward-char will move to the end of
the previous line when starting from a line beginning.")
(defvar tpu-cursor-free nil "\
If non-nil, let the cursor roam free.")
(byte-code "\n>\nB\"" [tpu-gnu-emacs18-p tpu-set-cursor-free edit-picture-hook add-hook picture-mode-hook] 3)
(fset 'tpu-write-file-hook #[nil " 	 " [buffer-modified-p tpu-cursor-free picture-clean] 1 "\
Eliminate whitespace at ends of lines, if the cursor is free."])
(byte-code "	>	B" [tpu-write-file-hook write-file-hooks] 2)
(fset 'tpu-top-check #[(beg lines) " 	_¥W!ZW!)" [window-height tpu-top-scroll-margin 100 margin beg recenter lines] 2 "\
Enforce scroll margin at the top of screen."])
(fset 'tpu-bottom-check #[(beg lines) " \n_å\\	ZZV!	\\V[!+" [window-height height tpu-bottom-scroll-margin 100 1 margin difference beg recenter lines] 3 "\
Enforce scroll margin at the bottom of screen."])
(fset 'tpu-forward-char #[(num) "\n!\nu" [tpu-cursor-free picture-forward-column num] 2 "\
Move right ARG characters (left if ARG is negative)." "p"])
(fset 'tpu-backward-char #[(num) "\n!\n!n! \nS!\n!" [tpu-cursor-free backward-char num tpu-backward-char-like-tpu picture-backward-column 1 picture-end-of-line] 2 "\
Move left ARG characters (right if ARG is negative)." "p"])
(fset 'tpu-next-line #[(num) " \nm!!	\"ǉ)" [tpu-current-line beg tpu-cursor-free picture-move-down num next-line-internal tpu-bottom-check next-line this-command] 3 "\
Move to next line.
Prefix argument serves as a repeat count." "p"])
(fset 'tpu-previous-line #[(num) " \n![!	\"ǉ)" [tpu-current-line beg tpu-cursor-free picture-move-up num next-line-internal tpu-top-check previous-line this-command] 3 "\
Move to previous line.
Prefix argument serves as a repeat count." "p"])
(fset 'tpu-next-beginning-of-line #[(num) " !Zy	\")" [tpu-current-line beg backward-char 1 num tpu-top-check] 3 "\
Move to beginning of line; if at beginning, move to beginning of next line.
Accepts a prefix argument for the number of lines to move." "p"])
(fset 'tpu-next-end-of-line #[(num) " \n`Wy `	Xy )u	\")" [tpu-current-line beg tpu-cursor-free 1 num picture-end-of-line nil tpu-bottom-check] 3 "\
Move to end of line; if at end, move to end of next line.
Accepts a prefix argument for the number of lines to move." "p"])
(fset 'tpu-previous-end-of-line #[(num) " \nZ!Z	\")" [tpu-current-line beg tpu-cursor-free picture-end-of-line 1 num tpu-top-check] 3 "\
Move EOL upward.
Accepts a prefix argument for the number of lines to move." "p"])
(fset 'tpu-current-end-of-line #[nil "`	 `U!)" [beg tpu-cursor-free picture-end-of-line nil message "You are already at the end of a line."] 2 "\
Move point to end of current line." nil])
(fset 'tpu-forward-line #[(num) " !	\"y)Ƈ" [tpu-current-line beg next-line-internal num tpu-bottom-check 0 nil] 3 "\
Move to beginning of next line.
Prefix argument serves as a repeat count." "p"])
(fset 'tpu-backward-line #[(num) " [!	\"y)Ƈ" [tpu-current-line beg next-line-internal num tpu-top-check 0 nil] 3 "\
Move to beginning of previous line.
Prefix argument serves as repeat count." "p"])
(fset 'tpu-paragraph #[(num) "  UȪ	\nU˪\n	_ͥ_ͥ\\ZZ]!`)!`)bZy`)!`Vy)U!	Z!`V!!`W^!." [nil left tpu-current-line beg window-height height tpu-top-scroll-margin 0 10 top-percent tpu-bottom-scroll-margin 15 bottom-percent 100 top-margin 1 bottom-up-margin bottom-margin move-to-window-line top bottom 2 far tpu-advance tpu-next-paragraph num recenter tpu-previous-paragraph] 4 "\
Move to the next paragraph in the current direction.
A repeat count means move that many paragraphs." "p"])
(fset 'tpu-page #[(num) "  UȪ	\nU˪\n	_ͥ_ͥ\\ZZ]!`)!`)bZy`)!`Vy)U!	Z!`V!!`W^!." [nil left tpu-current-line beg window-height height tpu-top-scroll-margin 0 10 top-percent tpu-bottom-scroll-margin 15 bottom-percent 100 top-margin 1 bottom-up-margin bottom-margin move-to-window-line top bottom 2 far tpu-advance forward-page num recenter backward-page] 4 "\
Move to the next page in the current direction.
A repeat count means move that many pages." "p"])
(fset 'tpu-scroll-window-down #[(num) "  S_ƥ_[!	\"+" [tpu-current-line beg window-height height num tpu-percent-scroll 100 lines next-line-internal tpu-top-check] 3 "\
Scroll the display down to the next section.
A repeat count means scroll that many sections." "p"])
(fset 'tpu-scroll-window-up #[(num) "  S_ƥ_!	\"+" [tpu-current-line beg window-height height num tpu-percent-scroll 100 lines next-line-internal tpu-bottom-check] 3 "\
Scroll the display up to the next section.
A repeat count means scroll that many sections." "p"])
(fset 'tpu-search-internal #[(pat &optional quiet) "  UȪ	\nU˪\n	_ͥ_ͥ\\ZZ]!`)!`)bZy`)\"`Vy)U!	Z!`V!`W^!." [nil left tpu-current-line beg window-height height tpu-top-scroll-margin 0 10 top-percent tpu-bottom-scroll-margin 15 bottom-percent 100 top-margin 1 bottom-up-margin bottom-margin move-to-window-line top bottom 2 far tpu-search-internal-core pat quiet tpu-searching-forward recenter] 4 "\
Search for a string or regular expression."])
(byte-code "!KM!KM!KM" [fboundp tpu-old-newline newline tpu-old-do-auto-fill do-auto-fill tpu-old-newline-and-indent newline-and-indent] 2)
(fset 'newline #[(&optional num) " \n\n!	\n\")" [tpu-current-line beg num 1 tpu-old-newline tpu-bottom-check] 3 "\
Insert a newline.  With arg, insert that many newlines.
In Auto Fill mode, can break the preceding line if no numeric arg.
This is the TPU-edt version that respects the bottom scroll margin." "p"])
(fset 'newline-and-indent #[nil "  	\")" [tpu-current-line beg tpu-old-newline-and-indent tpu-bottom-check 1] 3 "\
Insert a newline, then indent according to major mode.
Indentation is done using the current indent-line-function.
In programming language modes, this is the same as TAB.
In some text modes, where TAB inserts a tab, this indents
to the specified left-margin column.  This is the TPU-edt
version that respects the bottom scroll margin." nil])
(fset 'do-auto-fill #[nil "  	\")" [tpu-current-line beg tpu-old-do-auto-fill tpu-bottom-check 1] 3 "\
TPU-edt version that respects the bottom scroll margin."])
(fset 'tpu-set-scroll-margins #[(top bottom) "OĘ!!_ \\S 		OĘ	!\n	!_ \\S \nt\n#" [top "" -1 nil "%" string-to-int tpu-top-scroll-margin 100 window-height bottom tpu-bottom-scroll-margin message "Scroll margins set.  Top = %s%%, Bottom = %s%%"] 4 "\
Set scroll margins." "sEnter top scroll margin (N lines or N%% or RETURN for current value): \nsEnter bottom scroll margin (N lines or N%% or RETURN for current value): "])
(fset 'tpu-set-cursor-free #[nil "#!" [t tpu-cursor-free substitute-key-definition tpu-set-cursor-free tpu-set-cursor-bound GOLD-map message "The cursor will now move freely about the screen."] 4 "\
Allow the cursor to move freely about the screen." nil])
(fset 'tpu-set-cursor-bound #[nil " #!" [picture-clean nil tpu-cursor-free substitute-key-definition tpu-set-cursor-bound tpu-set-cursor-free GOLD-map message "The cursor is now bound to the flow of your text."] 4 "\
Constrain the cursor to the flow of the text." nil])
