;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:46:31 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/indent.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`indent.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(custom-declare-group 'indent nil "Indentation commands" :group 'editing)
#@69 *Default number of columns for margin-changing functions to indent.
(custom-declare-variable 'standard-indent '4 '(#$ . -688) :group 'indent :type 'integer)
#@34 Function to indent current line.
(defvar indent-line-function 'indent-to-left-margin (#$ . 851))
#@249 *Controls the operation of the TAB key.
If t, hitting TAB always just indents the current line.
If nil, hitting TAB indents the current line if point is at the left margin
  or in the line's indentation, otherwise it insert a `real' tab character.
(custom-declare-variable 'tab-always-indent 't '(#$ . -955) :group 'indent :type 'boolean)
#@51 Indent line in proper way for current major mode.
(defalias 'indent-according-to-mode #[nil " \207" [indent-line-function] 1 (#$ . 1300) nil])
#@339 Indent line in proper way for current major mode or insert a tab.
Depending on `tab-always-indent', either insert a tab or indent.
If initial point was within line's indentation, position after
the indentation.  Else stay at same point in text.
The function actually called to indent is determined by the value of
`indent-line-function'.
(defalias 'indent-for-tab-command #[(&optional prefix-arg) "\303=\204 	\204 i\304 V\203 \305\n!\207 \207" [indent-line-function tab-always-indent prefix-arg indent-to-left-margin current-indentation insert-tab] 2 (#$ . 1451) "P"])
(defalias 'insert-tab #[(&optional prefix-arg) "\305!\n\203 hz\306=\203 \307 \210\203 \310\311	\"\202% \f	i\f\245\\_j)\207" [prefix-arg count abbrev-mode indent-tabs-mode tab-width prefix-numeric-value 119 expand-abbrev insert-char 9] 4])
#@209 Indent all lines starting in the region sideways by ARG columns.
Called from a program, takes three arguments, START, END and ARG.
You can remove all indentation from a region by giving a large negative ARG.
(defalias 'indent-rigidly #[(start end arg) "\212b\210\305 	b\210n\204 \306y\210`W\203@ \307 \310\212\311\310w\210l)\n\2041 \312\313\f\\]\313\"\210`\311\310w\210`|\210*\306y\210\202 \310\211\223)\207" [end start eol-flag indent arg point-marker 1 current-indentation nil " 	" indent-to 0] 4 (#$ . 2277) "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) "\303 \210i\211	W\203$ 	\n\245\n_Z\nY\203 `\304\305x\210`|\210	j\2025 	V\2055 \306	\307\"\210`\303 \210`|)\207" [cur-col column tab-width back-to-indentation " " nil move-to-column t] 4 (#$ . 2814)])
#@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 "\212\301 \210\302\303m\203 o\204 `S\202 `\300\"\206 \302\\])\207" [left-margin back-to-indentation 0 get-text-property] 5 (#$ . 3219)])
#@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) "\304!\210\305\306w\210\307 i	\nV\203! \310\n\"\nV\205- \311u\202- \205- 	\nW\205- \312 *\207" [n cc lm force beginning-of-line " 	" nil current-left-margin move-to-column -1 indent-to-left-margin] 3 (#$ . 3587) (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 "\300\301 !\207" [indent-line-to current-left-margin] 2 (#$ . 4230)])
#@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) "\212\206 db\210\302 	\206 eb\210n\204 \303y\210`W\203. `\304\305\306\"\210`|\210\303y\210\202 \305\211\223)\207" [to from point-marker 1 move-to-left-margin nil t] 4 (#$ . 4412)])
#@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\203 \304!\212	b\210\305\306x\210n\203 `\nb\210\305\306w\210\307 )\310	\n\"\210\311	\n\312$\210\313	\n#\210\203A \212\314	\n\306\315\211%\210)\n\306\211\223\207" [lm from to auto-fill-function prefix-numeric-value " 	" nil point-marker delete-to-left-margin put-text-property left-margin indent-rigidly fill-region t] 6 (#$ . 4870) "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\203 \304!\212	b\210\305\306x\210n\203 `)\307	\n\310$\210\205+ \212\311	\n\306\312\211%)\207" [lm from to auto-fill-function prefix-numeric-value " 	" nil put-text-property right-margin fill-region t] 6 (#$ . 5415) "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) "\306\211\307\f#\310\n\f	%\211\203) \311\n\f	!%\210\n\202 \nW\205; \311\n\f	!%+\207" [from val end begin prop object nil get-text-property text-property-not-all put-text-property to func] 6 (#$ . 5843)])
#@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) "\203\n \305!\202 	\212\nb\210\306\307x\210n\203 `b\210\310 )\311\n\312\313$\210\314\n#\210\f\203< \212\315\n\307\316\211%\210)\307\211\223\207" [inc standard-indent from to auto-fill-function prefix-numeric-value " 	" nil point-marker alter-text-property left-margin #[(v) "[	\n\206 \303\\]\207" [left-margin inc v 0] 3] indent-rigidly fill-region t] 6 (#$ . 6426) "*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) "\203\n \304!\202 	\305\n[#\207" [inc standard-indent from to prefix-numeric-value increase-left-margin] 4 (#$ . 7182) "*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\203 \203 \306	!\202 \n\212\307\f\310\311$\210\205# \312\f\313\314\211%)\207" [inc current-prefix-arg standard-indent from to auto-fill-function prefix-numeric-value alter-text-property right-margin #[(v) "	\206 \302\\\207" [inc v 0] 2] fill-region nil t] 6 (#$ . 7677) "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) "\203\n \304!\202 	\305\n[#\207" [inc standard-indent from to prefix-numeric-value increase-right-margin] 4 (#$ . 8382) "*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) "\304!\210\305\306w\210	\203& 	\307\230\204& 	`d	G`\\^{\232\2038 	Gu\210\2028 \n\2038 \2038 \310!\2038 \311\225b\210\312 \313>\205B \305\306w\207" [n fill-prefix adaptive-fill-mode adaptive-fill-regexp beginning-of-line " 	" nil "" looking-at 0 current-justification (center right)] 5 (#$ . 8927) "p"])
#@144 Short cut function 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 (#$ . 9680))
#@505 Indent each nonblank line in the region.
With prefix 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.

When you call this from a program, START and END specify
the region to indent, and COLUMN specifies the indentation column.
If COLUMN is nil, then indent each line according to the mode.
(defalias 'indent-region #[(start end column) "\204m 	\2035 \212\nb\210\306 b\210\307	!`\nW\2053 \310\f!\204- n\203* l\204- 	c\210\311y\210\202 *\207\203> \n\"\207\212\nb\210\306 b\210n\204O \311y\210`\nW\203g n\203] l\204a  \210\311y\210\202O \n\312\211\223)\207\313!\212\nb\210\306 b\210n\204\202 \311y\210`\nW\203\237 `\314\312w\210`|\210l\204\231 \315\316\"\210\311y\210\202\202 \n\312\211\223)\207" [column fill-prefix end start regexp indent-region-function point-marker regexp-quote looking-at 1 nil prefix-numeric-value " 	" indent-to 0 indent-line-function] 3 (#$ . 9878) "r\nP"])
#@190 Indent a new line like previous nonblank line.
If the previous nonblank line has no indent points beyond the
column point starts at, this command does nothing.

See also `indent-relative'.
(defalias 'indent-relative-maybe #[nil "\300\301!\207" [indent-relative t] 2 (#$ . 10996) nil])
#@496 Space out to under next indent point in previous nonblank line.
An indent point is a non-whitespace character following whitespace.
The following line shows the indentation points in this line.
    ^         ^    ^     ^   ^           ^      ^  ^    ^
If the previous nonblank line has no indent points beyond the
column point starts at, `tab-to-tab-stop' is done instead, unless
this command is invoked with a numeric argument, in which case it
does nothing.

See also `indent-relative-maybe'.
(defalias 'indent-relative #[(&optional unindented-ok) "\203 hz\306=\203 \307 \210i\310\212\311 \210\312\313\310\314#\203M \212\315y\210`)\316\n!\210i\nV\2032 \317u\210\320\321!\204@ \f\204@ \322w\210\323w\210`U\204L i))	\203s \324 `\323\310x\210`|\210\325	\326\"\210`V\203k b\210\310\211\223)\202u \327 *\207" [abbrev-mode indent start-column end unindented-ok opoint 119 expand-abbrev nil beginning-of-line re-search-backward "^[^\n]" t 1 move-to-column -1 looking-at "[ 	]" "^ 	" " 	" point-marker indent-to 0 tab-to-tab-stop] 4 (#$ . 11288) "P"])
#@125 *List of tab stop positions used by `tab-to-tab-stop'.
This should be a list of integers, ordered from smallest to largest.
(custom-declare-variable 'tab-stop-list ''(8 16 24 32 40 48 56 64 72 80 88 96 104 112 120) '(#$ . -12355) :group 'indent :type '(repeat integer))
#@34 Keymap used in `edit-tab-stops'.
(defvar edit-tab-stops-map nil (#$ . 12631))
(byte-code "\204 \301 \302\303\304#\210\302\305\304#\210\301\207" [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 (#$ . 12879))
#@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\306\307\310!!\210\311	!\210\312\302!\210\313\314\315!\210\316\317 \210\f\211\2031 \320@\321\"\210\322c\210A\211\204! )\321\323c\210\324W\203Q \325\\c\210\326c\210T\211\202: \323c\210\321V\203g \327c\210S\211\202V )\330c\210eb\207" [edit-tab-stops-buffer edit-tab-stops-map indent-tabs-mode truncate-lines tab-stop-list tabs switch-to-buffer get-buffer-create "*Tab Stops*" use-local-map make-local-variable nil overwrite-mode 1 t erase-buffer indent-to 0 58 10 8 48 "         " "0123456789" "\nTo install changes, type C-c C-c" count] 4 (#$ . 13037) nil])
#@35 Put edited tab stops into effect.
(defalias 'edit-tab-stops-note-changes #[nil "\303\212\304b\210\303\210\305\306\303\307#\203 iB\202	 )\310p\311	!\210!\210)\312\313!\207" [tabs edit-tab-stops-buffer tab-stop-list nil 1 search-backward ":" t bury-buffer switch-to-buffer message "Tab stops installed"] 4 (#$ . 13950) 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 "\203 hz\304U\203 \305 \210	\211\203\" i\n@Y\203\" \nA\211\204 \n\2033 `\306\307!\210\n@j)\2025 \310c)\207" [abbrev-mode tab-stop-list tabs opoint 119 expand-abbrev delete-horizontal-space t 32] 3 (#$ . 14287) 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 "\211\203 i	@Y\203 	A\211\204 	\205M `\305	@\306\"\210\212\nb\210h\307=\205L g\310=\205L i\245_i\fV\203H h\307=\203H \311u\210\2026 `\n|)*)\207" [tab-stop-list tabs before tab-width tabend move-to-column t 32 9 -1] 4 (#$ . 14735) nil])
(byte-code "\303\304\305#\210\303	\306\307#\210\303\n\304\310#\210\303	\311\312#\207" [global-map esc-map ctl-x-map define-key "	" indent-for-tab-command "" indent-region indent-rigidly "i" tab-to-tab-stop] 4)
