;;; compiled by jimb@wookumz.gnu.ai.mit.edu on Wed Apr 15 04:15:43 1992
;;; from file /gd/gnu/emacs/emacs-18.58/lisp/simple.el
;;; emacs version 18.58.1.
;;; bytecomp version 2.01 beta; 13-aug-91.
;;; optimization is on; compiled with emacs18 compatibility.

(defun open-line (arg) "\
Insert a newline and leave point before it.
With arg, inserts that many newlines." (interactive "*p") (byte-code "n o? !V# c`SbS * !)" [flag forward-char -1 arg 0 10 1] 3))
(defun split-line nil "\
Split current line, moving portion beyond point vertically down." (interactive "*") (byte-code "!i`c\"\nb*" [skip-chars-forward " 	" pos col 10 indent-to 0] 3))
(defun quoted-insert (arg) "\
Read next input character and insert it.
Useful for inserting control characters.
You may also type up to 3 octal digits, to insert a character with that code" (interactive "*p") (byte-code " \nV 	c\nS )" [read-quoted-char char arg 0] 3))
(defun delete-indentation (&optional arg) "\
Join this line to previous and fix up whitespace at join.
With argument, join this line to following line." (interactive "*P") (byte-code "!\n !h= ``S\" " [forward-line 0 arg 1 10 delete-region fixup-whitespace] 3))
(defun fixup-whitespace nil "\
Fixup white space between objects around point.
Leave one space or none, according to the context." (interactive "*") (byte-code " ! !!)? c)" [delete-horizontal-space looking-at "^\\|\\s)\\|$" forward-char -1 "\\s(\\|\\s'" 32] 2))
(defun delete-horizontal-space nil "\
Delete all spaces and tabs around point." (interactive "*") (byte-code "!`!`\"" [skip-chars-backward " 	" delete-region skip-chars-forward] 4))
(defun just-one-space nil "\
Delete all spaces and tabs around point, leaving one space." (interactive "*") (byte-code "!gU ! c`!`\"" [skip-chars-backward " 	" 32 forward-char 1 delete-region skip-chars-forward] 4))
(defun delete-blank-lines nil "\
On blank line, delete all surrounding blank lines, leaving just one.
On isolated blank line, delete that one.
On nonblank line, delete all blank lines that follow it." (interactive "*") (byte-code "!!$ !?$ o$ !!?)\nK !	6 !`#H !`I e\"\nP 	?q  !`#n !`o d\")*" [nil singleblank thisblank forward-line 0 looking-at "[ 	]*$" "[ 	]*\n[ 	]*$" -1 1 delete-region re-search-backward "[^ 	\n]" t end-of-line re-search-forward] 7))
(defun back-to-indentation nil "\
Move point to the first non-whitespace character on this line." (interactive) (byte-code "!!" [forward-line 0 skip-chars-forward " 	"] 2))
(defun newline-and-indent nil "\
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." (interactive "*") (byte-code "`!`\"  " [delete-region skip-chars-backward " 	" newline indent-according-to-mode] 4))
(defun reindent-then-newline-and-indent nil "\
Reindent current line, insert newline, then indent the new line.
Indentation of both lines is done according to the current major mode,
which means that the current value of indent-line-function is called.
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." (interactive "*") (byte-code "`!`\" )  " [delete-region skip-chars-backward " 	" indent-according-to-mode newline] 4))
(byte-code "MM" [kill-forward-chars (lambda (arg) (byte-code "< @= ``\\\"" [arg - -1 kill-region] 4)) kill-backward-chars (lambda (arg) (byte-code "< @= ``Z\"" [arg - -1 kill-region] 4))] 2)
(defun backward-delete-char-untabify (arg &optional killp) "\
Delete characters backward, changing tabs into spaces.
Delete ARG chars, and kill (save in kill ring) if KILLP is non-nil.
Interactively, ARG is the prefix arg (default 1)
and KILLP is t if prefix arg is was specified." (interactive "*p\nP") (byte-code "	V2 o2 hU' i!iZ\"!)!	S *\"" [arg count 0 9 col forward-char -1 insert-char 32 delete-char 1 delete-backward-char killp] 4))
(defun zap-to-char (arg char) "\
Kill up to (but not including) ARG'th occurrence of CHAR.
Goes backward if ARG is negative; goes to end of buffer if CHAR not found." (interactive "*p\ncZap to char: ") (byte-code "`!$\" V `S `Tb`. V- d. e\"" [kill-region search-forward char-to-string char nil t arg 0] 7))
(defun beginning-of-buffer (&optional arg) "\
Move point to the beginning of the buffer; leave mark at previous position.
With arg N, put point N/10 of the way from the true beginning.
Don't use this in Lisp programs!
(goto-char (point-min)) is faster and does not set the mark." (interactive "P") (byte-code " 	*  V 	! \"\"+  	!\"\\\"+ eb	4 !" [push-mark arg buffer-size 10000 * prefix-numeric-value / 10 forward-line 1] 5))
(defun end-of-buffer (&optional arg) "\
Move point to the end of the buffer; leave mark at previous position.
With arg N, put point N/10 of the way from the true end.
Don't use this in Lisp programs!
(goto-char (point-max)) is faster and does not set the mark." (interactive "P") (byte-code " 	,  T V 	! \"\"(  	!\"\"Z- db	6 !" [push-mark arg buffer-size 10000 * prefix-numeric-value / 10 forward-line 1] 6))
(defun mark-whole-buffer nil "\
Put point at beginning and mark at end of buffer." (interactive) (byte-code "`!d!eb" [push-mark] 2))
(defun count-lines-region (start end) "\
Print number of lines in the region." (interactive "r") (byte-code "\"\"" [message "Region has %d lines" count-lines start end] 5))
(defun what-line nil "\
Print the current line number (in the buffer) of point." (interactive) (byte-code " !`\"T\"*" [widen forward-line 0 message "Line %d" count-lines 1] 5))
(defun count-lines (start end) "\
Return number of newlines between START and END." (byte-code "	\n\"eb  !Z*" [narrow-to-region start end buffer-size forward-line] 3))
(defun what-cursor-position nil "\
Print info on cursor position (on screen and within buffer)." (interactive) (byte-code "ged` V# ǉ\"S\\\"]\"2 ǉ\"S\"\\]\" U? ЂD  \"i\nU| 	U\\ \nTUm 	\n& & 	U \nTU !	\n&\n !&." [char beg end pos buffer-size total 50000 / 200 100 1 2 * percent window-hscroll 0 "" format " Hscroll=%d" hscroll col message "point=%d of %d(%d%%) <%d - %d>  column %d %s" "point=%d of %d(%d%%)  column %d %s" "Char: %s (0%o)  point=%d of %d(%d%%) <%d - %d>  column %d %s" single-key-description "Char: %s (0%o)  point=%d of %d(%d%%)  column %d %s"] 12))
(defun fundamental-mode nil "\
Major mode not specialized for anything in particular.
Other major modes are defined by comparison with this one." (interactive) (byte-code " " [kill-all-local-variables] 1))
(put (quote eval-expression) (quote disabled) t)
(defun eval-expression (expression) "\
Evaluate EXPRESSION and print value in minibuffer.
Value is also consed on to front of variable  values  's value." (interactive "xEval: ") (byte-code "	!\nB\n@\"" [eval expression values prin1 t] 3))
(defun edit-and-eval-command (prompt command) "\
Prompting with PROMPT, let user edit COMMAND and eval result.
COMMAND is a Lisp expression.  Let user edit that expression in
the minibuffer, then read and evaluate the result." (byte-code "\n!\"!" [eval read-minibuffer prompt prin1-to-string command] 5))
(byte-code "!\n !	#	#" [boundp repeat-complex-command-map copy-alist minibuffer-local-map define-key "p" previous-complex-command "n" next-complex-command] 4)
(defun repeat-complex-command (repeat-complex-command-arg) "\
Edit and re-evaluate last complex command, or ARGth from last.
A complex command is one which used the minibuffer.
The command is placed in the minibuffer as a Lisp form for editing.
The result is executed, repeating the command as changed.
If the command has been changed or is not the most recent previous command
it is added to the front of the command history.
Whilst editing the command, the following commands are available:
\\{repeat-complex-command-map}" (interactive "p") (byte-code "S	8' !$	@\"! 	B!)  *" [repeat-complex-command-arg command-history nil newcmd elt read-from-minibuffer "Redo: " prin1-to-string repeat-complex-command-map t equal eval ding] 6))
(defun next-complex-command (n) "\
Inserts the next element of `command-history' into the minibuffer." (interactive "p") (byte-code "	\nZ]G^	U 	U Ƃ !.  	S8!ceb)" [1 repeat-complex-command-arg n command-history narg error "No following item in command history" "No preceeding item command history" erase-buffer prin1-to-string] 3))
(defun previous-complex-command (n) "\
Inserts the previous element of `command-history' into the minibuffer." (interactive "p") (byte-code "	[!" [next-complex-command n] 2))
(defun goto-line (arg) "\
Goto line ARG, counting from line 1 at beginning of buffer." (interactive "NGoto line: ") (byte-code " b\n= S$ S!)" [widen 1 selective-display t re-search-forward "[\n]" nil end arg forward-line] 5))
(fset (quote advertised-undo) (quote undo))
(defun undo (&optional arg) "\
Undo some previous changes.
Repeat this command to undo more changes.
A numeric argument serves as a repeat count." (interactive "*p") (byte-code "   = !=  !' !	5  ?5  )" [buffer-modified-p modified selected-window minibuffer-window message "Undo!" last-command undo undo-start undo-more 1 this-command arg delete-auto-save-file-if-necessary] 2))
(defun shell-command (command &optional flag) "\
Execute string COMMAND in inferior shell; display output, if any.
Optional second arg non-nil (prefix arg, if interactive)
means insert output in current buffer after point (leave mark after it)." (interactive "sShell command: \nP") (byte-code "   & ``$" [flag barf-if-buffer-read-only push-mark call-process shell-file-name nil t "-c" command exchange-point-and-mark shell-command-on-region] 7))
(defun shell-command-on-region (start end command &optional flag interactive) "\
Execute string COMMAND in inferior shell with region as input.
Normally display output (if any) in temp buffer;
Prefix arg means replace the region with it.
Noninteractive args are START, END, COMMAND, FLAG.
Noninteractively FLAG means insert output in place of text from START to END,
and put point at the end, but don't alter the mark." (interactive "r\nsShell command on region: \nP\np") (byte-code "0 	 ` W	  ɉ&	. .  )!p=X d\"e\"edɉ&r q )&q V) !\" !)" [flag interactive mark swap push-mark call-process-region start end shell-file-name t nil "-c" command exchange-point-and-mark get-buffer-create "*Shell Command Output*" buffer delete-region erase-buffer buffer-size 0 set-window-start display-buffer 1 message "(Shell command completed with no output)"] 10))
(defun universal-argument nil "\
Begin a numeric argument for the following command.
Digits or minus sign following \\[universal-argument] make up the numeric argument.
\\[universal-argument] following the digits or minus sign ends the argument.
\\[universal-argument] without digits or minus sign provides 4 as argument.
Repeating \\[universal-argument] without digits or minus sign
 multiplies the argument by 4 each time." (interactive nil) (byte-code "	 U \" \n #+" [4 last-command-char nil char argstartchar c-u read-char * prefix-arg-internal] 5))
(fset (quote prefix-arg-internal) (quote (lambda (char c-u value) (byte-code "! W [= U2 	[\n  Y_ X_ !K L \"Z\\\n 4 \"\"=q  \n| \nC ! 	\" 	U )" [1 sign numberp value 0 -1 - nil char 45 c-u read-char 48 57 * 10 lookup-key global-map make-string universal-argument prefix-arg unread-command-char] 6))))
(defun digit-argument (arg) "\
Part of the numeric argument for the next command.
\\[universal-argument] following digits or minus sign ends the argument." (interactive "P") (byte-code "	#" [prefix-arg-internal last-command-char nil arg] 4))
(defun negative-argument (arg) "\
Begin a negative numeric argument for the next command.
\\[universal-argument] following digits or minus sign ends the argument." (interactive "P") (byte-code "#" [prefix-arg-internal 45 nil arg] 4))
(defun forward-to-indentation (arg) "\
Move forward ARG lines and position at first nonblank character." (interactive "p") (byte-code "	!!" [forward-line arg skip-chars-forward " 	"] 2))
(defun backward-to-indentation (arg) "\
Move backward ARG lines and position at first nonblank character." (interactive "p") (byte-code "	[!!" [forward-line arg skip-chars-forward " 	"] 2))
(defun kill-line (&optional arg) "\
Kill the rest of the current line; if no nonblanks there, kill thru newline.
With prefix argument, kill that many lines from point.
Negative arguments kill lines backward.

When calling from a program, nil means \"no arg\",
a number counts as a prefix arg." (interactive "*P") (byte-code "`	 	!!( m \"!% !(  `\"" [kill-region arg forward-line prefix-numeric-value signal end-of-buffer nil looking-at "[ 	]*$" 1 end-of-line] 5))
(defvar kill-ring nil "\
List of killed text sequences.")
(defconst kill-ring-max 30 "\
*Maximum length of kill ring before oldest elements are thrown away.")
(defvar kill-ring-yank-pointer nil "\
The tail of the kill ring whose car is the last thing yanked.")
(fset (quote kill-append) (quote (lambda (string before-p) (byte-code "	\n 	@P 	@P\"" [setcar kill-ring before-p string] 4))))
(defun kill-region (beg end) "\
Kill between point and mark.
The text is deleted but saved in the kill ring.
The command \\[yank] can retrieve it from there.
(If you want to kill and then yank immediately, use \\[copy-region-as-kill].)

This is the primitive for programs to kill text (as opposed to deleting it).
Supply two arguments, character numbers indicating the stretch of text
 to be killed.
Any command that calls this function is a \"kill command\".
If the previous command was also a kill command,
the text killed this time appends to the text killed last time
to make one entry in the kill ring." (interactive "*r") (byte-code "=L \n=L =L L ]^Z\\\"@@\nB\nGVB S\n\"\"\n)\"\"" [buffer-undo-list t last-command kill-region beg end buffer-read-only 100 undo-high-threshold delete-region kill-ring kill-ring-max setcdr nthcdr nil this-command kill-ring-yank-pointer copy-region-as-kill] 5))
(fset (quote kill-ring-save) (quote copy-region-as-kill))
(defun copy-region-as-kill (beg end) "\
Save the region as if killed, but don't kill it." (interactive "r") (byte-code "= \"W\"/ \"BGV/ S\"\"" [last-command kill-region kill-append buffer-substring beg end kill-ring kill-ring-max setcdr nthcdr nil this-command kill-ring-yank-pointer] 5))
(defun append-next-kill nil "\
Cause following command, if kill, to append to previous kill." (interactive) (byte-code "t " [kill-region this-command last-command] 2))
(defun rotate-yank-pointer (arg) "\
Rotate the yanking point in the kill ring." (interactive "p") (byte-code "GU !  	GZ\\	\"\")" [kill-ring length 0 error "Kill ring is empty" nthcdr % arg kill-ring-yank-pointer] 6))
(defun yank-pop (arg) "\
Replace just-yanked stretch of killed-text with a different stretch.
This command is allowed only immediately after a  yank  or a  yank-pop.
At such a time, the region contains a stretch of reinserted
previously-killed text.  yank-pop  deletes that text and inserts in its
place a different stretch of killed text.

With no argument, the previous kill is inserted.
With argument n, the n'th previous kill is inserted.
If n is negative, this is a more recent kill.

The sequence of kills wraps around, so that after the oldest one
comes the newest one." (interactive "*p") (byte-code "=\n !` W` \"	!`!@c-  )" [last-command yank error "Previous command was not a yank" this-command mark before delete-region rotate-yank-pointer arg set-mark kill-ring-yank-pointer exchange-point-and-mark] 3))
(defun yank (&optional arg) "\
Reinsert the last stretch of killed text.
More precisely, reinsert the stretch of killed text most recently
killed OR yanked.
With just C-U as argument, same but put point in front (and mark at end).
With argument n, reinsert the nth most recently killed stretch of killed
text.
See also the command \\[yank-pop]." (interactive "*P") (byte-code "	<\n  	= Ă 	S!`!@c	:(  " [rotate-yank-pointer arg 0 - -1 push-mark kill-ring-yank-pointer exchange-point-and-mark] 3))
(defun insert-buffer (buffer) "\
Insert after point the contents of BUFFER.
Puts mark after the inserted text.
BUFFER may be a buffer or a buffer name." (interactive "*bInsert buffer: ") (byte-code "	!\n 	!É	qed)	#`)!+" [bufferp buffer get-buffer nil newmark end start insert-buffer-substring push-mark] 4))
(defun append-to-buffer (buffer start end) "\
Append to specified buffer the text of the region.
It is inserted into that buffer before its point.

When calling from a program, give three arguments:
a buffer or the name of one, and two character numbers
specifying the portion of the current buffer to be copied." (interactive "BAppend to buffer: \nr") (byte-code "p\n!q#*" [oldbuf get-buffer-create buffer insert-buffer-substring start end] 4))
(defun prepend-to-buffer (buffer start end) "\
Prepend to specified buffer the text of the region.
It is inserted into that buffer after its point.

When calling from a program, give three arguments:
a buffer or the name of one, and two character numbers
specifying the portion of the current buffer to be copied." (interactive "BPrepend to buffer: \nr") (byte-code "p\n!q#+" [oldbuf get-buffer-create buffer insert-buffer-substring start end] 4))
(defun copy-to-buffer (buffer start end) "\
Copy to specified buffer the text of the region.
It is inserted into that buffer, replacing existing text there.

When calling from a program, give three arguments:
a buffer or the name of one, and two character numbers
specifying the portion of the current buffer to be copied." (interactive "BCopy to buffer: \nr") (byte-code "p\n!q #+" [oldbuf get-buffer-create buffer erase-buffer insert-buffer-substring start end] 4))
(defun mark nil "\
Return this buffer's mark value as integer, or nil if no mark.
If you are using this in an editing command, you are most likely making
a mistake; see the documentation of `set-mark'." (byte-code " !" [marker-position mark-marker] 2))
(defun set-mark (pos) "\
Set this buffer's mark to POS.  Don't use this function!
That is to say, don't use this function unless you want
the user to see that the mark has moved, and you want the previous
mark position to be lost.

Normally, when a new mark is set, the old one should go on the stack.
This is why most applications should use push-mark, not set-mark.

Novice emacs-lisp programmers often try to use the mark for the wrong
purposes.  The mark saves a location for the user's convenience.
Most editing commands should not alter the mark.
To remember a location for internal use in the Lisp program,
store it in a Lisp variable.  Example:

   (let ((beg (point))) (forward-line 1) (delete-region beg (point)))." (byte-code " \np#" [set-marker mark-marker pos] 4))
(defvar mark-ring nil "\
The list of saved former marks of the current buffer,
most recent first.")
(make-variable-buffer-local (quote mark-ring))
(defconst mark-ring-max 16 "\
*Maximum size of mark ring.  Start discarding off end if gets this big.")
(defun set-mark-command (arg) "\
Set mark at where point is, or jump to mark.
With no prefix argument, set mark, and push previous mark on mark ring.
With argument, jump to mark, and pop into mark off the mark ring.

Novice emacs-lisp programmers often try to use the mark for the wrong
purposes.  See the documentation of `set-mark' for more information." (interactive "P") (byte-code "    ! b " [arg push-mark mark error "No mark set in this buffer" pop-mark] 2))
(defun push-mark (&optional location nomsg) "\
Set mark at LOCATION (point, by default) and push old mark on mark ring.
Displays \"Mark set\" unless the optional second arg NOMSG is non-nil.

Novice emacs-lisp programmers often try to use the mark for the wrong
purposes.  See the documentation of `set-mark' for more information." (byte-code " %  !BGV% \"@\"S\"\"\n, `!B B  VB !" [mark copy-marker mark-marker mark-ring mark-ring-max move-marker nthcdr nil setcdr set-mark location nomsg executing-macro minibuffer-depth 0 message "Mark set"] 5))
(defun pop-mark nil "\
Pop off mark ring into the buffer's actual mark.
Does not set point.  Does nothing if mark ring is empty." (byte-code "$  !C\"@!@\"    A" [mark-ring nconc copy-marker mark-marker set-mark move-marker nil mark ding] 4))
(fset (quote exchange-dot-and-mark) (quote exchange-point-and-mark))
(defun exchange-point-and-mark nil "\
Put the mark where point is now, and point where the mark is now." (interactive nil) (byte-code "  !`!	b)Ň" [mark omark error "No mark set in this buffer" set-mark nil] 3))
(defun next-line (arg) "\
Move cursor vertically down ARG lines.
If there is no character in the target line exactly under the current column,
the cursor is positioned after the character in that line which spans this
column, or at the end of the line if it is not long enough.
If there is no line in the buffer after this one,
a newline character is inserted to create a line
and the cursor moves to that line.

The command \\[set-goal-column] can be used to create
a semipermanent goal column to which this command always moves.
Then it does not try to move vertically.

If you are thinking of using this in a Lisp program, consider
using `forward-line' instead.  It is usually easier to use
and more reliable (no dependence on goal column, etc.)." (interactive "p") (byte-code "U) `!\n`U h= c% \nb!)- !Ƈ" [arg 1 opoint forward-line 10 next-line-internal nil] 2))
(defun previous-line (arg) "\
Move cursor vertically up ARG lines.
If there is no character in the target line exactly over the current column,
the cursor is positioned after the character in that line which spans this
column, or at the end of the line if it is not long enough.

The command \\[set-goal-column] can be used to create
a semipermanent goal column to which this command always moves.
Then it does not try to move vertically.

If you are thinking of using this in a Lisp program, consider using
`forward-line' with negative argument instead..  It is usually easier
to use and more reliable (no dependence on goal column, etc.)." (interactive "p") (byte-code "	[!" [next-line-internal arg nil] 2))
(defconst track-eol nil "\
*Non-nil means vertical motion starting at the end of a line should keep to ends of lines.
This means moving to the end of each line moved onto.")
(defvar goal-column nil "\
*Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil.")
(defvar temporary-goal-column 0 "\
Current goal column for vertical motion.
It is the column where point was at the start of current run of vertical motion commands.")
(fset (quote next-line-internal) (quote (lambda (arg) (byte-code "= =  l Ă i!) 	!] 	VE !!!	S	+ 	W] !!	T	G c =n  w u !҇" [last-command next-line previous-line track-eol t temporary-goal-column integerp selective-display forward-line arg 0 vertical-motion 1 forward-char -1 goal-column end-of-line move-to-column nil] 3))))
(defun set-goal-column (arg) "\
Set the current horizontal position as a goal for \\[next-line] and \\[previous-line].
Those commands will move to this position in the line moved to
rather than trying to keep the same horizontal position.
With a non-nil argument, clears out the goal column
so that \\[next-line] and \\[previous-line] resume vertical motion." (interactive "P") (byte-code " ! i!\n\"" [arg nil goal-column message "No goal column" substitute-command-keys "Goal column %d (use \\[set-goal-column] with an arg to unset it)"] 3))
(defun transpose-chars (arg) "\
Interchange characters around point, moving forward one character.
With prefix arg ARG, effect is to take character before point
and drag it forward past ARG other characters (backward if ARG negative).
If no argument and at end of line, the previous two chars are exchanged." (interactive "*P") (byte-code " l !!\"" [arg forward-char -1 transpose-subr prefix-numeric-value] 4))
(defun transpose-words (arg) "\
Interchange words around point, leaving point at end of them.
With prefix arg ARG, effect is to take word before or around point
and drag it forward past ARG other words (backward if ARG negative).
If ARG is zero, the words around or after point and around or after mark
are interchanged." (interactive "*p") (byte-code "\n\"" [transpose-subr forward-word arg] 3))
(defun transpose-sexps (arg) "\
Like \\[transpose-words] but applies to sexps.
Does not work on a sexp that point is in the middle of
if it is a list or string." (interactive "*p") (byte-code "\n\"" [transpose-subr forward-sexp arg] 3))
(defun transpose-lines (arg) "\
Exchange current line and previous line, leaving point after both.
With argument ARG, takes previous line and moves it past ARG lines.
With argument 0, interchanges line point is in with line mark is in." (interactive "*p") (byte-code "\n\"" [transpose-subr (lambda (arg) (byte-code "U  m  !!" [arg 1 end-of-line newline forward-char forward-line] 2)) arg] 3))
(byte-code "MM" [transpose-subr (lambda (mover arg) (byte-code "U6 !`!` b!`!` ) Ve !`!`!`!` 	bS7 W !`!`!`!` Tf ," [nil end2 start2 end1 start1 arg 0 mover 1 -1 mark transpose-subr-1 exchange-point-and-mark] 5)) transpose-subr-1 (lambda nil (byte-code "	^\n]V !\n\"	\"	\"bc\nW0 \n9 \nGGZ\\bG!c*" [end1 end2 start1 start2 error "Don't have two things to transpose" buffer-substring word2 word1 delete-region delete-char] 4))] 2)
(defconst comment-column 32 "\
*Column to indent right-margin comments to.
Setting this variable automatically makes it local to the current buffer.")
(make-variable-buffer-local (quote comment-column))
(defconst comment-start nil "\
*String to insert to start a new comment, or nil if no comment syntax defined.")
(defconst comment-start-skip nil "\
*Regexp to match the start of a comment plus everything up to its body.
If there are any \\(...\\) pairs, the comment delimiter text is held to begin
at the place matched by the close of the first pair.")
(defconst comment-end "" "\
*String to insert to end a new comment.
Should be an empty string if comments are terminated by end-of-line.")
(defconst comment-indent-hook (quote (lambda nil comment-column)) "\
Function to compute desired indentation for a comment
given the character number it starts at.")
(defun indent-for-comment nil "\
Indent this line's comment to comment column, or insert an empty comment." (interactive "*") (byte-code "!\n ! `)	\n#G  !9 !bG !\"!\"`\ni 	U\\ \nbj !`\n\"	j{ b\" \ncc)," [forward-line 0 comment-start error "No comment syntax defined" end-of-line eolpos nil cpos indent begpos re-search-forward comment-start-skip move point-marker match-end 1 skip-chars-backward " 	" match-beginning "^ 	" comment-indent-hook delete-region set-marker comment-end] 4))
(defun set-comment-column (arg) "\
Set the comment column based on point.
With no arg, set the comment column to the current column.
With just minus as arg, kill any comment on this line.
With any other arg, set comment column to indentation of the previous comment
 and then align or create a comment on this line at that column." (interactive "P") (byte-code "=\n !3 !!!!!bi\n\n\") i\n\n\"" [arg - kill-comment nil forward-line 0 re-search-backward comment-start-skip re-search-forward match-beginning comment-column message "Comment column set to %d" indent-for-comment] 3))
(defun kill-comment (arg) "\
Kill the comment on this line, if any.
With argument, kill comments on that many lines starting with this one." (interactive "P") (byte-code " \n!!VB  `)	#2 !b!`\")\n; !S )" [barf-if-buffer-read-only prefix-numeric-value arg count forward-line 0 end-of-line eolpos re-search-forward comment-start-skip t match-beginning skip-chars-backward " 	" kill-region 1] 5))
(defun backward-word (arg) "\
Move backward until encountering the end of a word.
With argument, do this that many times.
In programs, it is faster to call forward-word with negative arg." (interactive "p") (byte-code "	[!" [forward-word arg] 2))
(defun mark-word (arg) "\
Set mark arg words away from point." (interactive "p") (byte-code "\n!`)!" [push-mark forward-word arg] 3))
(defun kill-word (arg) "\
Kill characters forward until encountering the end of a word.
With argument, do this that many times." (interactive "*p") (byte-code "`\n!`\"" [kill-region forward-word arg] 4))
(defun backward-kill-word (arg) "\
Kill characters backward until encountering the end of a word.
With argument, do this that many times." (interactive "*p") (byte-code "	[!" [kill-word arg] 2))
(defconst fill-prefix nil "\
*String for filling to insert at front of new line, or nil for none.
Setting this variable automatically makes it local to the current buffer.")
(byte-code "!M" [make-variable-buffer-local fill-prefix do-auto-fill (lambda nil (byte-code "`\nT!!n #!`*		bn)?C !`	U);  C 	b ))" [opoint move-to-column fill-column skip-chars-backward "^ 	\n" re-search-forward "[ 	]" t " 	" fill-point indent-new-comment-line] 4))] 2)
(defconst comment-multi-line nil "\
*Non-nil means \\[indent-new-comment-line] should continue same comment
on new line, with no new terminator or starter.")
(defun indent-new-comment-line nil "\
Break line at point and indent, continuing comment if presently within one.
The body of the continued comment is indented under the previous comment line." (interactive "*") (byte-code "!`!`\"ch `	!	#)h !lZ oZ 	!`	!	#)Z !1 bi`!\"))\n \n	 \"  !c! G\\l c! !+  c  *" [nil comstart comcol skip-chars-backward " 	" delete-region skip-chars-forward 10 comment-start-skip opoint forward-line -1 re-search-forward t match-beginning 0 win buffer-substring match-end comment-end comment-start comment-column equal "" comment-multi-line forward-char 1 indent-for-comment delete-char fill-prefix indent-according-to-mode] 4))
(defun auto-fill-mode (arg) "\
Toggle auto-fill mode.
With arg, turn auto-fill mode on iff arg is positive.
In auto-fill mode, inserting a space at a column beyond  fill-column
automatically breaks the line at a previous space." (interactive "P") (byte-code "	 	? !V ĉ !" [arg auto-fill-hook prefix-numeric-value 0 do-auto-fill set-buffer-modified-p buffer-modified-p] 3))
(defun turn-on-auto-fill nil "\
Unconditionally turn on Auto Fill mode." (byte-code "!" [auto-fill-mode 1] 2))
(defun set-fill-column (arg) "\
Set fill-column to current column, or to argument if given.
fill-column's value is separate for each buffer." (interactive "P") (byte-code "	!\n 	 i\n\"" [integerp arg fill-column message "fill-column set to %d"] 3))
(defun set-selective-display (arg) "\
Set selective-display to ARG; clear it if no arg.
When selective-display is a number > 0,
lines whose indentation is >= selective-display are not displayed.
selective-display's value is separate for each buffer." (interactive "P") (byte-code "=\n ! !  !\"\"\"\"" [selective-display t error "selective-display already in use for marked lines" arg prefix-numeric-value set-window-start selected-window window-start princ "selective-display set to " prin1 "."] 4))
(defun overwrite-mode (arg) "\
Toggle overwrite mode.
With arg, turn overwrite mode on iff arg is positive.
In overwrite mode, printing characters typed in replace existing text
on a one-for-one basis, rather than pushing it to the right." (interactive "P") (byte-code "	 	? !V !" [arg overwrite-mode prefix-numeric-value 0 set-buffer-modified-p buffer-modified-p] 2))
(defconst blink-matching-paren t "\
*Non-nil means show matching open-paren when close-paren is inserted.")
(defconst blink-matching-paren-distance 4000 "\
*If non-nil, is maximum distance to search for matching open-paren
when close-paren is inserted.")
(defun blink-matching-open nil "\
Move cursor momentarily to the beginning of the sexp before point." (byte-code "`eTV `Zf!U?  `0 e`Z]\"ˏ)X f!UX Sf fH\"\"U?`  b t ! b֊!n) !`T\" !! `\"\"  ! ? !," [char-syntax 2 92 blink-matching-paren oldpos nil blinkpos mismatch blink-matching-paren-distance narrow-to-region (byte-code "	\"" [scan-sexps oldpos -1 blinkpos] 3) ((error)) 36 logand lsh syntax-table -8 255 pos-visible-in-window-p sit-for 1 message "Matches %s" skip-chars-backward " 	" buffer-substring forward-line 0 forward-char skip-chars-forward "\n 	" end-of-line "Mismatched parentheses" "Unmatched parenthesis"] 6))
(byte-code "" [blink-matching-open blink-paren-hook] 1)
(defun keyboard-quit nil "\
Signal a  quit  condition." (interactive) (byte-code "\"" [signal quit nil] 3))
(define-key global-map "" (quote keyboard-quit))
(defun set-variable (var val) "\
Set VARIABLE to VALUE.  VALUE is a Lisp object.
When using this interactively, supply a Lisp expression for VALUE.
If you want VALUE to be a string, you must surround it with doublequotes." (interactive (byte-code "!\n\n\"!+D" [read-variable "Set variable: " var (funcall myhelp) minibuffer-help-form (lambda nil (byte-code "\n!!\n\"O!\n!' !\nJ!)ȑ" ["*Help*" prin1 var princ "\nDocumentation:\n" documentation-property variable-documentation 1 nil boundp 20 print-length "\n\nCurrent value: "] 5)) myhelp eval-minibuffer format "Set %s to value: "] 5)) (byte-code "	L" [var val] 2))
(byte-code "###	#	#	##	############	###	#0X 0!#0T0 )#	#	###	##@ A #	B C #D E #	F G #	H I #F J #	K L #M N #K O #K P #Q R #S T #ʁT #Q U #V W #X Y #Z [ #V \\ #] ^ #_ ` #a b #c d #e f #g h ##i j  M" [put narrow-to-region disabled t define-key ctl-x-map "n" "w" widen global-map "\n" newline-and-indent "" newline "" open-line esc-map split-line "" quoted-insert "^" delete-indentation "\\" delete-horizontal-space "m" back-to-indentation delete-blank-lines " " just-one-space "z" zap-to-char "=" count-lines-region what-cursor-position "" eval-expression repeat-complex-command "u" advertised-undo "" undo "!" shell-command "|" shell-command-on-region "" universal-argument 48 i 57 char-to-string digit-argument "-" negative-argument "" kill-line "" kill-region copy-region-as-kill append-next-kill "" yank "y" yank-pop "a" append-to-buffer " " set-mark-command "" exchange-point-and-mark "" next-line "" previous-line set-goal-column "" transpose-chars "t" transpose-words transpose-sexps transpose-lines ";" indent-for-comment "j" indent-new-comment-line set-comment-column "f" set-fill-column "$" set-selective-display "@" mark-word forward-word "b" backward-word "d" kill-word "" backward-kill-word "<" beginning-of-buffer ">" end-of-buffer "h" mark-whole-buffer mode-specific-command-prefix make-sparse-keymap] 5)
(defconst mode-specific-map (symbol-function (quote mode-specific-command-prefix)) "\
Keymap for characters following C-c.")
(define-key global-map "" (quote mode-specific-command-prefix))
