[comp.os.minix] ELLE sharfile

ast@cs.vu.nl (Andy Tanenbaum) (12/20/87)

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
: --------------------------- cut here --------------------------
PATH=/bin:/usr/bin
echo Extracting \d\e\f\p\r\f\.\e
sed 's/^X//' > \d\e\f\p\r\f\.\e << '+ END-OF-FILE '\d\e\f\p\r\f\.\e
X;;;
X;;; ELLE Default Command Profile - "defprf.e"
X;;;
X;;;	This file is input to the ellec program.  It defines the default
X;;; command key bindings that ELLE uses, in the absence of an individual
X;;; user profile.
X;;;	These defaults attempt to emulate the default EMACS command key
X;;; bindings.  Differences, where known, are commented.
X;;;
X;;;	"ELLE" means the function is unique to ELLE.
X;;;	E/G: (cmd altnam) "thisname";
X;;;		"E:" refers to TOPS-20 EMACS, "G:" refers to Gnu Emacs.
X;;;		(cmd) This function exists but is bound to "cmd" instead.
X;;;		    (*) function exists but is not bound to any specific key.
X;;;		    ()  function does not exist.
X;;;		    (=) function exists, with same binding (normally omitted)
X;;;		altnam  Name by which this function is known.
X;;;		"thisname" - name of function bound to this command.
X;;;		    -    means the command is unbound (undefined).
X
X(keyallunbind)		; Flush any predefined bindings
X
X(keybind ^@ "Set/Pop Mark")
X(keybind ^A "Beginning of Line")
X(keybind ^B "Backward Character")
X; ^C not bound.  			; E: ()- G: mode-specific-command-prefix
X(keybind ^D "Delete Character")
X(keybind ^E "End of Line")
X(keybind ^F "Forward Character")
X(keybind ^H "Backward Character")	; G: (^B) help-command
X(keybind ^I "Indent According to Mode")
X(keybind ^J "Indent New Line")
X(keybind ^K "Kill Line")
X(keybind ^L "New Window")
X(keybind ^M "CRLF")
X(keybind ^N "Down Real Line")
X(keybind ^O "Open Line")
X(keybind ^P "Up Real Line")
X(keybind ^Q "Quoted Insert")
X(keybind ^R "Reverse Search")
X(keybind ^S "Incremental Search")
X(keybind ^T "Transpose Characters")
X(keybind ^U "Universal Arg")
X(keybind ^V "Next Screen")
X(keybind ^W "Kill Region")
X(keybind ^X "Prefix Extend")
X(keybind ^Y "Un-kill")
X; ^Z not bound			; E: Prefix Control-Meta;  G: suspend-emacs
X(keybind ^[ "Prefix Meta")
X(keybind "^\" "Debug Mode")	; ELLE. E: () Prefix Meta;  G: () -
X; ^] not bound.			; E+G: Abort Recursive Edit
X(keybind ^^ "Hit Breakpoint")	; ELLE. E: () Prefix Control;  G: () -
X(keybind ^_ "Describe")		; E: (M-?) Help;  G: (^H-k) undo
X(keybind " " "Insert Self")
X(keybind ! "Insert Self")
X(keybind """" "Insert Self")
X(keybind # "Insert Self")
X(keybind $ "Insert Self")
X(keybind % "Insert Self")
X(keybind & "Insert Self")
X(keybind ' "Insert Self")
X(keybind "(" "Insert Self")
X(keybind ")" "Insert Self")
X(keybind * "Insert Self")
X(keybind + "Insert Self")
X(keybind , "Insert Self")
X(keybind - "Insert Self")
X(keybind . "Insert Self")
X(keybind / "Insert Self")
X(keybind 0 "Insert Self")
X(keybind 1 "Insert Self")
X(keybind 2 "Insert Self")
X(keybind 3 "Insert Self")
X(keybind 4 "Insert Self")
X(keybind 5 "Insert Self")
X(keybind 6 "Insert Self")
X(keybind 7 "Insert Self")
X(keybind 8 "Insert Self")
X(keybind 9 "Insert Self")
X(keybind : "Insert Self")
X(keybind ";" "Insert Self")
X(keybind < "Insert Self")
X(keybind = "Insert Self")
X(keybind > "Insert Self")
X(keybind ? "Insert Self")
X(keybind @ "Insert Self")
X(keybind A "Insert Self")
X(keybind B "Insert Self")
X(keybind C "Insert Self")
X(keybind D "Insert Self")
X(keybind E "Insert Self")
X(keybind F "Insert Self")
X(keybind G "Insert Self")
X(keybind H "Insert Self")
X(keybind I "Insert Self")
X(keybind J "Insert Self")
X(keybind K "Insert Self")
X(keybind L "Insert Self")
X(keybind M "Insert Self")
X(keybind N "Insert Self")
X(keybind O "Insert Self")
X(keybind P "Insert Self")
X(keybind Q "Insert Self")
X(keybind R "Insert Self")
X(keybind S "Insert Self")
X(keybind T "Insert Self")
X(keybind U "Insert Self")
X(keybind V "Insert Self")
X(keybind W "Insert Self")
X(keybind X "Insert Self")
X(keybind Y "Insert Self")
X(keybind Z "Insert Self")
X(keybind [ "Insert Self")
X(keybind "\" "Insert Self")
X(keybind ] "Insert Self")
X(keybind ^ "Insert Self")
X(keybind _ "Insert Self")
X(keybind ` "Insert Self")
X(keybind a "Insert Self")
X(keybind b "Insert Self")
X(keybind c "Insert Self")
X(keybind d "Insert Self")
X(keybind e "Insert Self")
X(keybind f "Insert Self")
X(keybind g "Insert Self")
X(keybind h "Insert Self")
X(keybind i "Insert Self")
X(keybind j "Insert Self")
X(keybind k "Insert Self")
X(keybind l "Insert Self")
X(keybind m "Insert Self")
X(keybind n "Insert Self")
X(keybind o "Insert Self")
X(keybind p "Insert Self")
X(keybind q "Insert Self")
X(keybind r "Insert Self")
X(keybind s "Insert Self")
X(keybind t "Insert Self")
X(keybind u "Insert Self")
X(keybind v "Insert Self")
X(keybind w "Insert Self")
X(keybind x "Insert Self")
X(keybind y "Insert Self")
X(keybind z "Insert Self")
X(keybind { "Insert Self")
X(keybind | "Insert Self")
X(keybind } "Insert Self")
X(keybind ~ "Insert Self")
X(keybind DEL "Backward Delete Character")
X
X; Meta chars
X
X(keybind M-^B "Move to Window Bottom")	; ELLE (ima). E+G:()-
X(keybind M-^L "Goto Line")		; E:();  G:(* goto-line) -
X(keybind M-^N "Scroll Window Down")	; ELLE (ima). E+G:()- forward-list
X(keybind M-^P "Scroll Window Up")	; ELLE (ima). E+G:()- backward-list
X(keybind M-^R "Reverse String Search")	; E:(*); G:(* search-backward) -
X(keybind M-^S "String Search")		; E:(*); G:(* search-forward) isearch-forward-regexp
X(keybind M-^T "Move to Window Top")	; ELLE (ima). E+G:()-
X(keybind M-^W "Append Next Kill")
X(keybind M-^X "Select Existing Buffer")	; ELLE (ima). E+G:()-
X(keybind M-^^ "Shrink Window")		; ELLE (ima). E+G:()-
X(keybind M-% "Query Replace")
X(keybind M-- "Negative Argument")
X(keybind M-0 "Argument Digit")
X(keybind M-1 "Argument Digit")
X(keybind M-2 "Argument Digit")
X(keybind M-3 "Argument Digit")
X(keybind M-4 "Argument Digit")
X(keybind M-5 "Argument Digit")
X(keybind M-6 "Argument Digit")
X(keybind M-7 "Argument Digit")
X(keybind M-8 "Argument Digit")
X(keybind M-9 "Argument Digit")
X(keybind "M-;" "Indent for Comment")
X(keybind M-< "Goto Beginning")
X(keybind M-> "Goto End")
X(keybind M-[ "Backward Paragraph")
X(keybind "M-\" "Delete Horizontal Space")
X(keybind M-] "Forward Paragraph")
X(keybind M-B "Backward Word")
X(keybind M-C "Uppercase Initial")
X(keybind M-D "Kill Word")
X(keybind M-F "Forward Word")
X(keybind M-G "Fill Region")
X(keybind M-H "Mark Paragraph")
X(keybind M-I "Indent Relative")		; E+G: (*) Tab to Tab Stop
X(keybind M-L "Lowercase Word")
X(keybind M-M "Back to Indentation")
X(keybind M-N  "Next Line")		; E:(*); G:(* forward-line) -
X(keybind M-O "VT100 button hack")	; ELLE. E+G: () -
X(keybind M-P  "Previous Line")		; E:(*); G:() -
X(keybind M-Q "Fill Paragraph")
X(keybind M-T "Transpose Words")
X(keybind M-U "Uppercase Word")
X(keybind M-V "Previous Screen")
X(keybind M-W "Copy Region")
X(keybind M-Y "Un-kill Pop")
X(keybind M-~ "Buffer Not Modified")
X(keybind M-DEL "Backward Kill Word")
X
X; Extended commands
X
X(keybind X-^B "List Buffers")
X(keybind X-^C "Write File Exit")	; ELLE (ima). E:()-; G: (= save-buffers-kill-emacs)
X(keybind X-^E "Write Region")		; E:(*)-;    G:(*) eval-last-sexp
X(keybind X-^F "Find File")
X(keybind X-^K "Write Last Kill")	; ELLE (mnx). E+G:()-
X(keybind X-^L "Lowercase Region")
X(keybind X-^M "EOL CRLF Mode")		; ELLE.  E+G: ()-
X(keybind X-^O "Delete Blank Lines")
X(keybind X-^P "Set Profile")		; ELLE.  E+G: () Mark Page
X(keybind X-^R "Read File")
X(keybind X-^S "Save File")
X(keybind X-^U "Uppercase Region")
X(keybind X-^V "Visit File")
X(keybind X-^W "Write File")
X(keybind X-^X "Exchange Point and Mark")
X(keybind X-^Z "Return to Superior")	; G:() suspend-emacs
X(keybind X-! "Push to Inferior")	; ELLE.  E:(*)-; G:()-
X(keybind X-$  "Replace in Line")	; ELLE (mnx). E+G:()-
X(keybind X-% "Replace String")		; E+G: (*) -
X(keybind "X-(" "Start Kbd Macro")
X(keybind "X-)" "End Kbd Macro")
X(keybind X-* "View Kbd Macro")		; E: (*)-; G: ()-
X(keybind X-. "Set Fill Prefix")
X(keybind X-0 "Delete Window")		; E: ()-
X(keybind X-1 "One Window")
X(keybind X-2 "Two Windows")
X(keybind X-8 "Standout Window")		; ELLE.  E+G:()-
X(keybind X-9 "Two Mode Windows")	; ELLE.  E+G:()-
X(keybind X-= "What Page")		; E+G: (*) What Cursor Position
X(keybind X-^ "Grow Window")
X(keybind X-B "Select Buffer")
X(keybind X-E "Execute Kbd Macro")
X(keybind X-F "Set Fill Column")
X(keybind X-I "Insert File")		; E: (*) Info
X(keybind X-K "Kill Buffer")
X(keybind X-O "Other Window")
X(keybind X-S "Save All Files")		; E:(*)-; G:(= save-some-buffers)
X(keybind X-T "Auto Fill Mode")		; E:(*) Transpose Regions;  G:(*)-
X(keybind X-DEL "Backward Kill Line")	; ELLE(ico)  E+G:() Backward Kill Sentence
X
X; IMAGEN-specific functions, not bound.
X;(keybind ""  "Text Mode")		; IMAGEN E:(*);	G:(*)
X;(keybind ""  "Execute Unix Command")	; IMAGEN E:();	G:(M-! shell-command)
X;(keybind ""  "Execute Make")		; IMAGEN E:(* Compile); G:(* compile)
X;(keybind ""  "Find Next Error")	; IMAGEN E:();	G:(X-` next-error)
X
X; SUN Mouse functions, for menuitem selection.
X;(menuitem "Stuff Selection")	; SUN
X;(menuitem "Select Region")	; SUN
X
X; Forget completely about these.
X;(keybind ""  "ICO Extend Command")	; ICONOGRAPHICS
X;(keybind ""  "ICO Typeset Funs")	; ICONOGRAPHICS
X;(keybind ""  "ICO Spec Input Funs")	; ICONOGRAPHICS
X
+ END-OF-FILE defprf.e
chmod 'u=rw,g=r,o=r' \d\e\f\p\r\f\.\e
set `sum \d\e\f\p\r\f\.\e`
sum=$1
case $sum in
55136)	:;;
*)	echo 'Bad sum in '\d\e\f\p\r\f\.\e >&2
esac
echo Extracting \.\e\l\l\e\p\r\o\.\e
sed 's/^X//' > \.\e\l\l\e\p\r\o\.\e << '+ END-OF-FILE '\.\e\l\l\e\p\r\o\.\e
X; This is the default user profile to emulate "mined" (MINIX editor),
X; as per Andy Tanenbaum.
X
X(keyallunbind)
X
X; Insert self
X(keybind A "Insert Self")
X(keybind B "Insert Self")
X(keybind C "Insert Self")
X(keybind D "Insert Self")
X(keybind E "Insert Self")
X(keybind F "Insert Self")
X(keybind G "Insert Self")
X(keybind H "Insert Self")
X(keybind I "Insert Self")
X(keybind J "Insert Self")
X(keybind K "Insert Self")
X(keybind L "Insert Self")
X(keybind M "Insert Self")
X(keybind N "Insert Self")
X(keybind O "Insert Self")
X(keybind P "Insert Self")
X(keybind Q "Insert Self")
X(keybind R "Insert Self")
X(keybind S "Insert Self")
X(keybind T "Insert Self")
X(keybind U "Insert Self")
X(keybind V "Insert Self")
X(keybind W "Insert Self")
X(keybind X "Insert Self")
X(keybind Y "Insert Self")
X(keybind Z "Insert Self")
X(keybind a "Insert Self")
X(keybind b "Insert Self")
X(keybind c "Insert Self")
X(keybind d "Insert Self")
X(keybind e "Insert Self")
X(keybind f "Insert Self")
X(keybind g "Insert Self")
X(keybind h "Insert Self")
X(keybind i "Insert Self")
X(keybind j "Insert Self")
X(keybind k "Insert Self")
X(keybind l "Insert Self")
X(keybind m "Insert Self")
X(keybind n "Insert Self")
X(keybind o "Insert Self")
X(keybind p "Insert Self")
X(keybind q "Insert Self")
X(keybind r "Insert Self")
X(keybind s "Insert Self")
X(keybind t "Insert Self")
X(keybind u "Insert Self")
X(keybind v "Insert Self")
X(keybind w "Insert Self")
X(keybind x "Insert Self")
X(keybind y "Insert Self")
X(keybind z "Insert Self")
X(keybind 0 "Insert Self")
X(keybind 1 "Insert Self")
X(keybind 2 "Insert Self")
X(keybind 3 "Insert Self")
X(keybind 4 "Insert Self")
X(keybind 5 "Insert Self")
X(keybind 6 "Insert Self")
X(keybind 7 "Insert Self")
X(keybind 8 "Insert Self")
X(keybind 9 "Insert Self")
X(keybind / "Insert Self")
X(keybind : "Insert Self")
X(keybind < "Insert Self")
X(keybind = "Insert Self")
X(keybind > "Insert Self")
X(keybind ? "Insert Self")
X(keybind @ "Insert Self")
X(keybind [ "Insert Self")
X(keybind ] "Insert Self")
X(keybind ^ "Insert Self")
X(keybind # "Insert Self")
X(keybind $ "Insert Self")
X(keybind % "Insert Self")
X(keybind & "Insert Self")
X(keybind ' "Insert Self")
X(keybind * "Insert Self")
X(keybind + "Insert Self")
X(keybind , "Insert Self")
X(keybind - "Insert Self")
X(keybind . "Insert Self")
X(keybind ! "Insert Self")
X(keybind " " "Insert Self")
X(keybind """" "Insert Self")
X(keybind "(" "Insert Self")
X(keybind ")" "Insert Self")
X(keybind ";" "Insert Self")
X(keybind "\" "Insert Self")
X(keybind _ "Insert Self")
X(keybind ` "Insert Self")
X(keybind { "Insert Self")
X(keybind | "Insert Self")
X(keybind } "Insert Self")
X(keybind ~ "Insert Self")
X
X; CTRL char
X(keybind ^A "Beginning of Line")
X(keybind ^B "Backward Word")
X(keybind ^C "Copy Region")
X(keybind ^D "Scroll Window Up")
X(keybind ^E "New Window")
X(keybind ^F "Forward Word")
X(keybind ^H "Backward Delete Character")
X(keybind ^I "Insert Self")
X; open
X(keybind ^K "Kill Region")
X(keybind ^L "Replace in Line")
X(keybind ^M "CRLF")
X(keybind ^N "Kill Word")
X(keybind ^O "Open Line")
X(keybind ^P "Backward Kill Word")
X(keybind ^Q "Write Last Kill")
X(keybind ^R "Replace String")
X(keybind ^S "Push to Inferior")
X(keybind ^T "Kill Line")
X(keybind ^U "Scroll Window Down")
X(keybind ^V "Find File")
X(keybind ^W "Save File")
X(keybind ^X "Prefix Extend")
X(keybind ^Y "Un-kill")
X(keybind ^Z "End of Line")
X(keybind "^\" "Quoted Insert")
X(keybind ^_ "Move to Window Bottom")
X(keybind ^^ "Set/Pop Mark")
X(keybind ^] "Goto Line")
X
X; ESC char
X(keybind ^[ "Prefix Meta")
X(keybind M-0 "Argument Digit")
X(keybind M-1 "Argument Digit")
X(keybind M-2 "Argument Digit")
X(keybind M-3 "Argument Digit")
X(keybind M-4 "Argument Digit")
X(keybind M-5 "Argument Digit")
X(keybind M-6 "Argument Digit")
X(keybind M-7 "Argument Digit")
X(keybind M-8 "Argument Digit")
X(keybind M-9 "Argument Digit")
X(keybind M-A "Append Next Kill")
X(keybind M-B "Select Buffer")
X(keybind M-C "Uppercase Word")
X(keybind M-E "Execute Kbd Macro")
X(keybind M-F "Find File")
X(keybind M-G "Insert File")
X(keybind M-H "Describe")
X(keybind M-I "Uppercase Initial")
X(keybind M-K "Kill Buffer")
X(keybind M-L "Lowercase Region")
X(keybind M-M "Mark Paragraph")
X(keybind M-N "Buffer Not Modified")
X(keybind M-O "Lowercase Word")
X(keybind M-P "Forward Paragraph")
X(keybind M-Q "Query Replace")
X(keybind M-R "Set Profile")
X(keybind M-S "Select Existing Buffer")
X(keybind M-T "Transpose Characters")
X(keybind M-U "Uppercase Region")
X(keybind M-W "Transpose Words")
X(keybind M-X "Return to Superior")
X(keybind M-Y "Un-kill Pop")
X(keybind M-Z "Incremental Search")
X(keybind M-^ "Exchange Point and Mark")
X(keybind M-* "View Kbd Macro")
X(keybind M-[ "Prefix Extend")
X(keybind M-] "Backward Paragraph")
X(keybind M-= "Delete Horizontal Space")
X(keybind M-| "Delete Blank Lines")
X(keybind "M-," "Move to Window Top")
X(keybind "M-;" "Indent for Comment")
X(keybind "M-." "Indent Relative")
X(keybind "M-/" "Start Kbd Macro")
X(keybind "M-\" "End Kbd Macro")
X
X
X; CTRL-X char
X(keybind X-1 "One Window")
X(keybind X-2 "Two Windows")
X(keybind X-A "Up Real Line")
X(keybind X-B "Down Real Line")
X(keybind X-C "Forward Character")
X(keybind X-D "Backward Character")
X(keybind X-G "List Buffers")
X(keybind X-H "Goto Beginning")
X(keybind X-L "Grow Window")
X(keybind X-N "Other Window")
X(keybind X-P "Shrink Window")
X(keybind X-S "Reverse String Search")
X(keybind X-T "String Search")
X(keybind X-U "Next Screen")
X(keybind X-V "Previous Screen")
X(keybind X-W "New Window")
X(keybind X-X "Return to Superior")
X(keybind X-Y "Goto End")
X
X(keybind X-^A "Up Real Line")
X(keybind X-^B "Down Real Line")
X(keybind X-^C "Forward Character")
X(keybind X-^D "Backward Character")
X(keybind X-^G "List Buffers")
X(keybind X-^H "Goto Beginning")
X(keybind X-^L "Grow Window")
X(keybind X-^N "Other Window")
X(keybind X-^P "Shrink Window")
X(keybind X-^S "Reverse String Search")
X(keybind X-^T "String Search")
X(keybind X-^U "Next Screen")
X(keybind X-^V "Previous Screen")
X(keybind X-^W "New Window")
X(keybind X-^X "Return to Superior")
X(keybind X-^Y "Goto End")
X
X
X(keybind DEL "Delete Character")
+ END-OF-FILE .ellepro.e
chmod 'u=rw,g=r,o=r' \.\e\l\l\e\p\r\o\.\e
set `sum \.\e\l\l\e\p\r\o\.\e`
sum=$1
case $sum in
54638)	:;;
*)	echo 'Bad sum in '\.\e\l\l\e\p\r\o\.\e >&2
esac
echo Extracting \h\e\l\p\.\d\a\t
sed 's/^X//' > \h\e\l\p\.\d\a\t << '+ END-OF-FILE '\h\e\l\p\.\d\a\t
XThis file describes all ELLE functions, and is in a specific format for use
Xby the "Describe" function (normally invoked by the command ^_).
X	Each function is identified by a number (which matches its
Xinternal index as defined by deffun.e), and by a name to the right of
Xthe number.  All text up to the first blank line is considered part of
Xthe documentation for that function.
X
X<F0> -- undefined --
X	This command does not have any defined function assigned to it.
X
X<F1> Insert Self
X	The character is inserted into the buffer.
X
X<F2> Quoted Insert
X	Reads a character and inserts it.
X
X<F3> CRLF
X	Insert CRLF (End Of Line), or move onto blank line.
X	A blank line is one containing only spaces and tabs
X	(which are killed if we move onto it).  Single blank lines
X	(followed by nonblank lines) are not eaten up this way.
X
X<F4> Forward Character
X	Moves forward one character.
X	With argument, moves that many characters forward.
X	Negative args move backward.
X
X<F5> Backward Character
X	Moves back one character.
X	With argument, moves that many characters backward.
X	Negative args move forward.
X
X<F6> Delete Character
X	Deletes character after point.
X	With argument, kills (and saves) that many characters.
X	Negative args kill characters backward.
X
X<F7> Backward Delete Character
X	Deletes character before point.
X	With argument, kills (and saves) that many characters.
X	Negative args kill characters forward.
X
X<F8> Delete Horizontal Space
X	Deletes all spaces and tabs around point.
X
X<F9> Transpose Characters
X	Transposes the characters before and after the cursor.
X
X<F10> Forward Word
X	Moves forward over one word.
X
X<F11> Backward Word
X	Moves backward over one word.
X
X<F12> Kill Word
X	Kills next word.
X
X<F13> Backward Kill Word
X	Kills last word.
X
X<F14> Transpose Words
X	Transposes the words before and after the cursor.
X
X<F15> Uppercase Word
X	Converts one word to upper case, moving past it.
X	With arg, applies to that many words backward or forward.
X
X<F16> Lowercase Word
X	Converts one word to lower case, moving past it.
X	With arg, applies to that many words backward or forward.
X
X<F17> Uppercase Initial
X	Puts next word in lower case, but capitalize initial.
X	With arg, applies to that many words backward or forward.
X
X<F18> reserved
X
X<F19> reserved
X
X<F20> Beginning of Line
X	Moves to beginning of line.
X
X<F21> End of Line
X	Moves to end of line.
X
X<F22> Next Line
X	Moves to beginning of next line.
X
X<F23> Previous Line
X	Moves to beginning of previous line.
X
X<F24> Down Real Line
X	Moves down vertically to next real line.
X	Continuation lines are skipped.  If given after the
X	last LF in the buffer, makes a new one at the end.
X
X<F25> Up Real Line
X	Moves up vertically to next real line.
X	Continuation lines are skipped.
X
X<F26> Open Line
X	Inserts an EOL (End Of Line) after point.
X	Differs from ordinary insertion in that point remains
X	before the inserted characters.
X	With argument, inserts several EOLs.
X
X<F27> Delete Blank Lines
X	Kills all blank lines around point.
X
X<F28> Kill Line
X	Kills to end of line, or kills an end of line (EOL).
X	At the end of a line (only blanks following), kills through the EOL.
X	Otherwise, kills the rest of the line but not the EOL.
X	With argument (positive or negative), kills specified number of lines.
X	Killed text is pushed onto the kill ring for retrieval.
X
X<F29> Backward Kill Line
X	Kills from point backwards to beginning of line.
X	With argument, same as Kill Line with negative arg.
X
X<F30> Goto Line
X	Goes to the line number specified by the argument.  The first
X	line in the buffer is line 1.
X
X<F31> reserved
X
X<F32> reserved
X
X<F33> reserved
X
X<F34> reserved
X
X<F35> Set/Pop Mark
X	Sets or pops the mark.
X
X<F36> Exchange Point and Mark
X	Exchanges positions of point and mark.
X
X<F37> Kill Region
X	Kills from point to mark.
X
X<F38> Copy Region
X	Sticks region into kill-ring without killing it.
X	Like killing and getting back, but doesn't mark buffer modified.
X
X<F39> Uppercase Region
X	Converts region between point and mark to upper case.
X
X<F40> Lowercase Region
X	Converts region between point and mark to lower case.
X
X<F41> Fill Region
X	Fills the region between point and mark.
X
X<F42> reserved
X
X<F43> reserved
X
X<F44> reserved
X
X<F45> Forward Paragraph
X	Moves forward to end of paragraph.
X	Paragraphs are delimited by blank lines or by
X	lines which start with "." or "-".
X
X<F46> Backward Paragraph
X	Moves backward to beginning of paragraph.
X
X<F47> Mark Paragraph
X	Puts point and mark around this paragraph.
X
X<F48> Fill Paragraph
X	Fills (or adjusts) this (or next) paragraph.
X	Point stays the same (but text may move past it due to filling).
X
X<F49> reserved
X
X<F50> Select Buffer
X	Selects or creates buffer with specified name.
X	If there is a buffer with that name, it is selected.
X	Otherwise, a buffer with that name is created and selected.
X
X<F51> Select Existing Buffer
X	Like Select Buffer but never creates a new buffer.  A partial
X	name may be given.
X
X<F52> Kill Buffer
X	Kills the specified buffer.
X
X<F53> List Buffers
X	Lists names, lengths, and files of all buffers.
X
X<F54> Buffer Not Modified
X	Pretends that this buffer hasn't been modified.
X	The "*" flag will disappear.
X
X<F55> EOL CRLF Mode
X	Toggles the interpretation of EOL (End-Of-Line) for the current
X	buffer.  An EOL may be either a CR-LF (Carriage-Return = ^M,
X	and LineFeed = ^J) together, or a LF alone.
X	In LF mode: LF alone is considered to be EOL.
X		This is the normal mode for Unix systems.
X	In CRLF mode: both CR and LF must exist to be counted as an EOL.
X		This is the normal mode for TOPS-20 systems.
X
X<F56> Goto Beginning
X	Goes to beginning of buffer.
X
X<F57> Goto End
X	Goes to end of buffer.
X
X<F58> What Page
X	Reports current position in the buffer in terms of the page
X	# and line # from the start of the buffer.
X
X<F59> reserved
X
X<F60> Find File
X	Visits (read) a file in its own buffer.
X	If the file is already in some buffer, selects that buffer.
X	Otherwise, visits the file in a buffer named after the file.
X
X<F61> Read File
X	Reads file into current buffer.  Same as Visit File.
X
X<F62> Visit File
X	Same as Read File.  Reads specified file into current buffer.
X
X<F63> Insert File
X	Inserts contents of file into existing text.
X	The pointer is left at the beginning, and the mark at the end.
X
X<F64> Save File
X	Saves buffer if it has been modified,
X	by writing it out to the file associated with it.
X
X<F65> Save All Files
X	Attempts to save all modified files.
X	With no argument, asks whether to save each one.
X	With any argument, saves all without asking.
X
X<F66> Write File
X	Writes buffer out to specified file.
X
X<F67> Write Region
X	Writes region out to specified file.
X
X<F68> Write Last Kill
X	Asks for a filename and writes out the most recently killed
X	stuff to that file.
X
X<F69> reserved
X
X<F70> Two Windows
X	Shows two windows and selects window 2.
X
X<F71> One Window
X	Shows only one window.
X
X<F72> Other Window
X	Selects other window.
X
X<F73> Grow Window
X	Makes this window use more lines.  Argument is number of extra
X	lines (can be negative).
X
X<F74> Shrink Window
X	Shrinks the current window by one line.  This is the same thing
X	as using Grow Window on the other window.
X	With argument, shrinks that many lines.
X
X<F75> Delete Window
X	Like "One Window" but ends up with different window.
X	If using 2 windows, deletes the current window, and
X	the other window becomes the single remaining window.
X
X<F76> Standout Window
X	Toggles the display standout mode for the current window.
X	With argument of 4, toggles the standout mode for the non-buffer
X	parts of the screen, such as the ELLE mode line.
X	With argument of 0, turns standout mode off for all windows.
X
X<F77> Two Mode Windows
X	Sets the two-mode-window flag, which is checked whenever there are
X	two windows in use.  Normally set to 1 at startup.
X	With argument of:
X		0 - Use only 1 mode line (at the bottom).
X		1 - Use 2 mode lines only if they are in standout mode.
X		2 - Always use 2 mode lines, one for each window.
X	With no argument, toggles the current setting between 0 and 2.
X
X<F78> New Window
X	Chooses new window putting point at center, top or bottom.
X	With no argument, clears the screen and chooses a window
X	which has point roughly at the center.
X	An argument gives the line to put point on.
X	C-U as argument redisplays only the line containing point.
X
X<F79> Next Screen
X	Moves down to display next screenful of text.
X	With argument, moves window down <arg> times (negative moves up).
X
X<F80> Previous Screen
X	Moves up to display previous screenful of text.
X	With arg, moves window back <arg> times.
X
X<F81> Other New Screen
X	If using 2 windows, runs "Next Screen" on other window.
X
X<F82> Line to Window Border 
X	Picks a new window such that the current line is at the top of the
X	window.
X	With any argument, makes the current line be at the bottom instead.
X
X<F83> Scroll Window Up
X	Scrolls the text up by one line, moving stuff out of the top.
X	With argument, scrolls that many lines.
X
X<F84> Scroll Window Down
X	Scrolls the text down by one line, moving stuff out of the bottom.
X	With argument, scrolls that many lines.
X
X<F85> Move to Window Top
X	Moves cursor to top line of window.
X
X<F86> Move to Window Bottom
X	Moves cursor to bottom line of window (or end of buffer).
X
X<F87> reserved
X
X<F88> reserved
X
X<F89> reserved
X
X<F90> Set Profile
X	Asks for the name of an ELLE profile file
X	and sets the command mappings as specified by the file.
X
X<F91> Prefix Meta
X	Sets Meta-bit of following character.
X	E.G. Turns a following A into Meta-A.
X
X<F92> Prefix Extend
X	This is an extended command prefix with many subcommands.
X
X<F93> Universal Arg
X	Sets argument or multiplies it by four.
X	Followed by digits, uses them to specify the
X	argument for the command after the digits.
X	If not followed by digits, multiplies the argument by four.
X
X<F94> Negative Argument
X	Starts an argument collection, like Universal Arg, but
X	makes the resulting arg negative.
X
X<F95> Argument Digit
X	Collects an argument for the next command, starting with this
X	digit.
X
X<F96> VT100 Button Hack
X	Attempts to map VT-100 function buttons into something
X	useful.  Not really supported.
X
X<F97> Describe
X	Asks the user for a command and displays a brief description
X	of the function it invokes.
X
X<F98> reserved
X
X<F99> reserved
X
X<F100> Start Kbd Macro
X	Starts collecting a keyboard macro.  Everything typed
X	after this command, up to an "End Kbd Macro" command, will
X	be both executed and stored as the definition of the current
X	keyboard macro.
X
X<F101> End Kbd Macro
X	Stops collecting a keyboard macro.
X
X<F102> Execute Kbd Macro
X	Executes the currently defined keyboard macro.
X
X<F103> View Kbd Macro
X	Shows the currently defined keyboard macro.
X
X<F105> Un-kill
X	Re-inserts the last stuff killed.
X	Puts point after it and the mark before it.
X
X<F106> Un-kill Pop 
X	Corrects after Un-kill to use an earlier kill.
X	Requires that the region contain the most recent killed stuff,
X	as it does immediately after using Un-kill.
X	It is deleted and replaced with the previous killed stuff,
X	which is rotated to the front of the ring buffer.
X
X<F107> Append Next Kill
X	Makes following kill commands append to last batch.
X	Thus, C-K C-K, cursor motion, this command, and C-K C-K,
X	generate one block of killed stuff, containing two lines.
X
X<F108> reserved
X
X<F109> reserved
X
X<F110> String Search
X	Searches forward for string.  Asks for a string; CR or ESCAPE
X	terminates the string.
X
X<F111> Reverse String Search
X	Searches backward for string.  Asks for a string; CR or ESCAPE
X	terminates the string.
X
X<F112> Incremental Search
X	Searches for character string as you type it.
X	C-Q quotes special characters.  DEL cancels last character.
X	C-S repeats the search, forward, and C-R repeats it backward.
X	C-R or C-S with search string empty changes the direction of search
X	or brings back search string from previous search.
X	ESCAPE exits the search; with search string empty
X	it switches to non-incremental String Search.
X	Other Control and Meta chars exit the search and then are executed.
X	If not all the input string can be found, the rest is not discarded.
X	You can rub it out, discard it all with C-G, exit,
X	or use C-R or C-S to search the other way.
X	Quitting a successful search aborts the search and moves point back;
X	quitting a failing search just discards whatever input wasn't found.
X
X<F113> Reverse Search
X	Does reverse Incremental Search.
X	See info for Incremental Search.
X
X<F114> Replace String
X	Replaces one string with another, globally.
X	Works by calling Query Replace and pretending you typed a !.
X
X<F115> Query Replace
X	Replaces a string interactively.
X	Asks for "Replace string:" (you type old string, eg FOO)
X	Then asks " with string:" (you type new string, eg BAR)
X	Then moves to and shows each each occurrence of FOO,
X	and you must then type a character to say what to do:
X	? => Shows brief summary of this list.
X	Space => replace it with BAR and show next FOO.
X	DEL => don't replace, but show next FOO.
X	^L => redisplay screen.
X	^ => return to site of previous FOO (actually, jump to mark).
X	! => replace all remaining FOOs without asking.
X	ESCAPE => just exit.
X	. => replace this FOO and exit.
X	, => replace this FOO and show result, waiting for next command.
X	Not yet: ^W => kill this FOO and enter recursive editing level.
X	Not yet: ^R => enter recursive editing level.
X	Any other character exits and is read again.
X
X<F116> Replace in Line
X	Like Replace String but only operates on the current line.
X	Asks for the string to replace, then the string to replace it with.
X
X<F117> Set Fill Column
X	Sets fill column to numeric arg or current column.
X	If there is an argument, that is used.
X	Otherwise, the current position of the cursor is used.
X	The Fill Column variable controls where Auto Fill mode
X	and Fill Paragraph put the right margin.
X
X<F118> Set Fill Prefix
X	EMACS: Defines Fill Prefix from current line.
X	All of the current line up to point becomes the value
X	of Fill Prefix.  Auto Fill Mode and Linefeed insert the
X	prefix on each line;  ^R Fill Region assumes that each
X	non-blank line starts with the prefix (which is ignored
X	for filling purposes).
X	To stop using a Fill Prefix, do ^R Set Fill Prefix
X	at the front of a line.
X
X<F119> Auto Fill Mode
X	Turns Auto Fill mode on and off.  When on, the word
X	"Fill" will appear in the mode line, and typing a space
X	when beyond the current Fill Column will cause the
X	current line to be automatically filled.
X
X<F120> Text Mode
X	An IMAGEN-specific function.  Resembles Auto Fill Mode.
X
X<F121> Indent According to Mode
X	Indents suitably for the major mode.
X	In Fundamental mode, just inserts a tab.
X
X<F122> Indent New Line
X	Inserts CRLF (End Of Line), then indents the second line.
X	Uses the definitions of CR and Tab to do the work.
X
X<F123> Back to Indentation
X	Moves to end of current line's indentation.
X
X<F124> Indent for Comment
X	Moves to start of existing comment or creates new one,
X	and indents it to start in Comment Column.
X	This doesn't work well yet.
X
X<F125> Indent Relative
X	Attempts to indent current line by the same amount as the
X	previous line.
X
X<F126> reserved
X
X<F127> reserved
X
X<F128> reserved
X
X<F129> Match Bracket
X	Similar to EMACS' "Show Matching Paren".
X
X<F130> Push to Inferior
X	Starts an inferior shell process.  Exitting this shell will
X	return to ELLE.
X
X<F131> Return to Superior
X	If system permits, returns directly to superior shell in a way which
X	allows later continuation of ELLE.  Otherwise, asks "Quit?" and
X	warns of modified buffers if any exist.  Responding "Y" and CR
X	will then cause ELLE to exit permanently (no continuation possible).
X
X<F132> Write File Exit
X	Calls "Save All Files" and then exits (no continuation possible).
X
X; 133-139 reserved
X
X<F140> Hit Breakpoint
X	This is a debugging function which calls the "bkpt"
X	routine in ELLE, assuming that the user has set a
X	debugging breakpoint there.  If no breakpoint has
X	been set (by ADB or otherwise) then nothing happens.
X
X<F141> Debug Mode
X	With no argument, turns self-checking on and off.  When
X	self-checking is on, the data structures will be verified
X	after each top-level command.  (This may be quite slow).
X	With an argument, invokes ELLE's debug/diagnostic mode, which
X	has the prompt "D>".  Type "?" and CR for a list of subcommands.
X
X; 142-149 reserved
X
XIMAGEN-specific functions.  These can only exist in the IMAGEN configuration
Xof ELLE.
X
X<F150> Execute Unix Command
X	An IMAGEN-specific function.
X
X<F151> Execute Make
X	An IMAGEN-specific function.
X
X<F152> Find Next Error
X	An IMAGEN-specific function.
X
X
XICONOGRAPHICS-dependent functions.  These will not be found in
Xanything other than the ICONOGRAPHICS configuration of ELLE.
X
X<F153> ICO Extend Command
X	An Iconographics-specific function.
X
X<F154> ICO Typeset Funs
X	An Iconographics-specific function.
X
X<F155> ICO Spec Input Funs
X	An Iconographics-specific function.
X
X
XSUN-specific functions.
X	These functions are used to handle text selection and stuffing
Xwhen using the mouse version of ELLE.
X
X<F156> Stuff Selection
X	Inserts the current mouse text selection into the buffer.
X
X<F157> Select Region
X	Makes the current region be the current mouse text selection.
X
X
+ END-OF-FILE help.dat
chmod 'u=rw,g=r,o=r' \h\e\l\p\.\d\a\t
set `sum \h\e\l\p\.\d\a\t`
sum=$1
case $sum in
41527)	:;;
*)	echo 'Bad sum in '\h\e\l\p\.\d\a\t >&2
esac
exit 0