;ELC   
;;; compiled by kwzh@hal.gnu.ai.mit.edu on Mon Apr 17 19:43:40 1995
;;; from file /gd/gnu/emacs/19.0/lisp/indent.el
;;; emacs version 19.28.90.26.
;;; 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 "`/gd/gnu/emacs/19.0/lisp/indent.el' was compiled for Emacs 19"))


#@68 Default number of columns for margin-changing functions to indent.
(defvar standard-indent 4 (#$ . 481))
#@34 Function to indent current line.
(defvar indent-line-function (quote indent-to-left-margin) (#$ . 592))
#@51 Indent line in proper way for current major mode.
(defalias 'indent-according-to-mode #[nil " " [indent-line-function] 1 (#$ . 702) nil])
#@51 Indent line in proper way for current major mode.
(defalias 'indent-for-tab-command #[nil "=	   " [indent-line-function indent-to-left-margin insert-tab] 2 (#$ . 848) nil])
(defalias 'insert-tab #[nil "  \n c\fi\fT_j" [abbrev-mode expand-abbrev indent-tabs-mode 9 tab-width] 3])
#@132 Indent all lines starting in the region sideways by ARG columns.
Called from a program, takes three arguments, START, END and ARG.
(defalias 'indent-rigidly #[(start end arg) "b \nbn y`WF  wl)7 \\]\"`w`|*y ŉ)" [end point-marker start 1 current-indentation nil eol-flag indent " 	" indent-to 0 arg] 4 (#$ . 1152) "r\np"])
#@158 Indent current line to COLUMN.
This function removes or adds spaces and tabs at beginning of line
only if necessary.  It leaves point at end of indentation.
(defalias 'indent-line-to #[(column) " i\nW \nj! 	\nV! \n\"` `|)" [back-to-indentation cur-col column move-to-column t] 4 (#$ . 1527)])
#@183 Return the left margin to use for this line.
This is the value of the buffer-local variable `left-margin' plus the value
of the `left-margin' text-property at the start of the line.
(defalias 'current-left-margin #[nil " \nm o `S `\" \\])" [back-to-indentation 0 left-margin get-text-property] 5 (#$ . 1841)])
#@315 Move to the left margin of the current line.
With optional argument, move forward N-1 lines first.
The column moved to is the one given by the `current-left-margin' function.
If the line's indentation appears to be wrong, and this command is called
interactively or with optional argument FORCE, it will be fixed.
(defalias 'move-to-left-margin #[(&optional n force) "	!  > ! wi	V2 \n\"V@ !@ \n@ 	W@  *" [beginning-of-line n current-left-margin lm current-justification (right center) move-to-column " 	" nil cc force backward-char 1 indent-to-left-margin] 4 (#$ . 2174) (list (prefix-numeric-value current-prefix-arg) t)])
#@67 Indent current line to the column given by `current-left-margin'.
(defalias 'indent-to-left-margin #[nil " !" [indent-line-to current-left-margin] 2 (#$ . 2839)])
#@208 Remove left margin indentation from a region.
This deletes to the column given by `current-left-margin'.
In no case will it delete non-whitespace.
Args FROM and TO are optional; default is the whole buffer.
(defalias 'delete-to-left-margin #[(&optional from to) " db \n ebn y`W. `\"`|y ŉ)" [to point-marker from 1 move-to-left-margin nil t] 4 (#$ . 3012)])
#@118 Set the left margin of the region to WIDTH.
If `auto-fill-mode' is active, re-fill the region to fit the new margin.
(defalias 'set-left-margin #[(from to lm) "t 	!\nbxn `bw )\n\"\n	$\n	#B \n͉%)ĉ" [prefix-numeric-value lm from " 	" nil to point-marker delete-to-left-margin put-text-property left-margin indent-rigidly auto-fill-function fill-region t] 6 (#$ . 3405) "r\nNSet left margin to column: "])
#@119 Set the right margin of the region to WIDTH.
If `auto-fill-mode' is active, re-fill the region to fit the new margin.
(defalias 'set-right-margin #[(from to lm) "t 	!\nbxn `)\n	$. \nʉ%)" [prefix-numeric-value lm from " 	" nil put-text-property to right-margin auto-fill-function fill-region t] 6 (#$ . 3857) "r\nNSet right margin to width: "])
#@279 Programmatically change value of a text-property.
For each region between FROM and TO that has a single value for PROPERTY,
apply FUNCTION to that value and sets the property to the function's result.
Optional fifth argument OBJECT specifies the string or buffer to operate on.
(defalias 'alter-text-property #[(from to prop func &optional object) "\f#\f	\n%/ \f\n!% \f	WC \f	\n!%+" [from nil val end begin get-text-property prop object text-property-not-all to put-text-property func] 6 (#$ . 4235)])
#@311 Increase or decrease the left-margin of the region.
With no prefix argument, this adds `standard-indent' of indentation.
A prefix arg (optional third arg INC noninteractively) specifies the amount
to change the margin by, in characters.
If `auto-fill-mode' is active, re-fill the region to fit the new margin.
(defalias 'increase-left-margin #[(from to inc) "\n ! \nbxn `b )$#\fB Ή%)ŉ" [inc prefix-numeric-value standard-indent from " 	" nil to point-marker alter-text-property left-margin #[(v) "[	\n \\]" [left-margin inc v 0] 3] indent-rigidly auto-fill-function fill-region t] 6 (#$ . 4789) "*r\nP"])
#@306 Make the left margin of the region smaller.
With no prefix argument, decrease the indentation by `standard-indent'.
A prefix arg (optional third arg INC noninteractively) specifies the amount
to change the margin by, in characters.
If `auto-fill-mode' is active, re-fill the region to fit the new margin.
(defalias 'decrease-left-margin #[(from to inc) "\n ! \n\f[#" [inc prefix-numeric-value standard-indent increase-left-margin from to] 4 (#$ . 5456) "*r\nP"])
#@359 Increase the right-margin of the region.
With no prefix argument, increase the right margin by `standard-indent'.
A prefix arg (optional third arg INC noninteractively) specifies the amount
to change the margin by, in characters.  A negative argument decreases
the right margin width.
If `auto-fill-mode' is active, re-fill the region to fit the new margin.
(defalias 'increase-right-margin #[(from to inc) "t  \n! $	& ̉%)" [inc prefix-numeric-value current-prefix-arg standard-indent alter-text-property from to right-margin #[(v) "	 \\" [inc v 0] 2] auto-fill-function fill-region nil t] 6 (#$ . 5937) "r\nP"])
#@354 Make the right margin of the region smaller.
With no prefix argument, decrease the right margin by `standard-indent'.
A prefix arg (optional third arg INC noninteractively) specifies the amount
of width to remove, in characters.  A negative argument increases
the right margin width.
If `auto-fill-mode' is active, re-fills region to fit in new margin.
(defalias 'decrease-right-margin #[(from to inc) "\n ! \n\f[#" [inc prefix-numeric-value standard-indent increase-right-margin from to] 4 (#$ . 6589) "*r\nP"])
#@391 Move to the beginning of the text on this line.
With optional argument, move forward N-1 lines first.
From the beginning of the line, moves past the left-margin indentation, the
fill-prefix, and any indentation used for centering or right-justifying the
line, but does not move past any whitespace that was explicitly inserted 
(such as a tab used to indent the first line of a paragraph).
(defalias 'beginning-of-line-text #[(&optional n) "	!w\f& \fŘ& \f`d\fG`\\^{6 \fGu6 6 !6 ɕb >@ w" [beginning-of-line n " 	" nil fill-prefix "" adaptive-fill-mode looking-at adaptive-fill-regexp 0 current-justification (center right)] 5 (#$ . 7120) "p"])
#@149 Function which is short cut to indent region using indent-according-to-mode.
A value of nil means really run indent-according-to-mode on each line.
(defvar indent-region-function nil (#$ . 7797))
#@374 Indent each nonblank line in the region.
With no argument, indent each line using `indent-according-to-mode',
or use `indent-region-function' to do the whole region if that's non-nil.
If there is a fill prefix, make each line start with the fill prefix.
With argument COLUMN, indent each line to that column.
Called from a program, takes three args: START, END and COLUMN.
(defalias 'indent-region #[(start end column) "q 	7 \nb \fb	!`\nW5 !/ n, l/ 	cy *	B 	\f\n\"\nb \fbnS y`\nWk na le \n yS \nˉ)!\nb \fbn y`\nW `w`|l \"y \nˉ)" [column fill-prefix end point-marker start regexp-quote regexp looking-at 1 indent-region-function indent-line-function nil prefix-numeric-value " 	" indent-to 0] 3 (#$ . 8000) "r\nP"])
#@48 Indent a new line like previous nonblank line.
(defalias 'indent-relative-maybe #[nil "!" [indent-relative t] 2 (#$ . 8799) nil])
#@254 Space out to under next indent point in previous nonblank line.
An indent point is a non-whitespace character following whitespace.
If the previous nonblank line has no indent points beyond the
column point starts at, `tab-to-tab-stop' is done instead.
(defalias 'indent-relative #[(&optional unindented-ok) "  iy#L y`)\n\f!i\fV- !!= = \nw\nw`\nUK i))v  `x`|\"`Vm b)x  *" [abbrev-mode expand-abbrev nil indent start-column 0 re-search-backward "^[^\n]" t 1 end move-to-column backward-char looking-at "[ 	]" unindented-ok "^ 	" " 	" point-marker opoint indent-to tab-to-tab-stop] 4 (#$ . 8939) "P"])
#@126 *List of tab stop positions used by `tab-to-tab-stops'.
This should be a list of integers, ordered from smallest to largest.
(defvar tab-stop-list (quote (8 16 24 32 40 48 56 64 72 80 88 96 104 112 120)) (#$ . -9614))
#@34 Keymap used in `edit-tab-stops'.
(defvar edit-tab-stops-map nil (#$ . 9838))
(byte-code "  ##" [edit-tab-stops-map make-sparse-keymap define-key "" edit-tab-stops-note-changes ""] 4)
#@104 Buffer whose tab stops are being edited--in case
the variable `tab-stop-list' is local in that buffer.
(defvar edit-tab-stops-buffer nil (#$ . 10049))
#@294 Edit the tab stops used by `tab-to-tab-stop'.
Creates a buffer *Tab Stops* containing text describing the tab stops.
A colon indicates a column where there is a tab stop.
You can add or remove colons and then do \<edit-tab-stops-map>\[edit-tab-stops-note-changes] to make changes take effect.
(defalias 'edit-tab-stops #[nil "p!!!!!\f 8 @\"cA% )cWX \\ccTA cVn cS] )ceb" [edit-tab-stops-buffer switch-to-buffer get-buffer-create "*Tab Stops*" use-local-map edit-tab-stops-map make-local-variable indent-tabs-mode nil overwrite-mode 1 t truncate-lines erase-buffer tab-stop-list tabs indent-to 0 58 count 10 8 48 "         " "0123456789" "\nTo install changes, type C-c C-c"] 4 (#$ . 10207) nil])
#@35 Put edited tab stops into effect.
(defalias 'edit-tab-stops-note-changes #[nil "b# i	B	 )p!!		)!" [nil tabs 1 search-backward ":" t bury-buffer switch-to-buffer edit-tab-stops-buffer tab-stop-list message "Tab stops installed"] 4 (#$ . 10986) nil])
#@186 Insert spaces or tabs to next defined tab-stop column.
The variable `tab-stop-list' is a list of columns at which there are tab stops.
Use \[edit-tab-stops] to edit them interactively.
(defalias 'tab-to-tab-stop #[nil "  \n i@Y A 0 `x`\f|@j)2 c)" [abbrev-mode expand-abbrev tab-stop-list tabs opoint " 	" nil 32] 3 (#$ . 11268) nil])
#@175 Move point to next defined tab-stop column.
The variable `tab-stop-list' is a list of columns at which there are tab stops.
Use \[edit-tab-stops] to edit them interactively.
(defalias 'move-to-tab-stop #[nil " i	@Y 	A 	Q `	@\"\nbh=P g=P i_iVL h=L u9 `\n|)*)" [tab-stop-list tabs before move-to-column t 32 9 tab-width tabend -1] 4 (#$ . 11637) nil])
(byte-code "	#\f##\f#" [define-key global-map "	" indent-for-tab-command esc-map "" indent-region ctl-x-map indent-rigidly "i" tab-to-tab-stop] 4)
