;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:48:03 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/replace.el
;;; in Emacs version 23.4
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

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


#@69 Non-nil means `query-replace' should preserve case in replacements.
(custom-declare-variable 'case-replace 't '(#$ . 535) :type 'boolean :group 'matching)
(byte-code "\301B\302\301!\204 \303\301\304\"\210\304\207" [current-load-list query-replace-history default-boundp set-default nil] 3)
#@150 Default values of FROM-STRING and TO-STRING for `query-replace'.
This is a cons cell (FROM-STRING . TO-STRING), or nil if there is
no default value.
(defvar query-replace-defaults nil (#$ . 835))
#@98 Non-nil means `query-replace' uses the last search string.
That becomes the "string to replace".
(defvar query-replace-interactive nil (#$ . 1037))
#@220 History list to use for the FROM argument of `query-replace' commands.
The value of this variable should be a symbol; that symbol
is used as a variable to hold a history list for the strings
or patterns to be replaced.
(custom-declare-variable 'query-replace-from-history-variable ''query-replace-history '(#$ . 1192) :group 'matching :type 'symbol :version "20.3")
#@211 History list to use for the TO argument of `query-replace' commands.
The value of this variable should be a symbol; that symbol
is used as a variable to hold a history list for replacement
strings or patterns.
(custom-declare-variable 'query-replace-to-history-variable ''query-replace-history '(#$ . 1565) :group 'matching :type 'symbol :version "20.3")
#@69 Non-nil means `query-replace' and friends ignore read-only matches.
(custom-declare-variable 'query-replace-skip-read-only 'nil '(#$ . 1926) :type 'boolean :group 'matching :version "22.1")
#@61 Non-nil means to show what actual replacement text will be.
(custom-declare-variable 'query-replace-show-replacement 't '(#$ . 2122) :type 'boolean :group 'matching :version "23.1")
#@62 Non-nil means to highlight matches during query replacement.
(custom-declare-variable 'query-replace-highlight 't '(#$ . 2310) :type 'boolean :group 'matching)
#@245 Controls the lazy-highlighting during query replacements.
When non-nil, all text in the buffer matching the current match
is highlighted lazily using isearch lazy highlighting (see
`lazy-highlight-initial-delay' and `lazy-highlight-interval').
(custom-declare-variable 'query-replace-lazy-highlight 't '(#$ . 2477) :type 'boolean :group 'lazy-highlight :group 'matching :version "22.1")
(custom-declare-face 'query-replace '((t (:inherit isearch))) "Face for highlighting query replacement matches." :group 'matching :version "22.1")
(defalias 'query-replace-descr #[(string) "\301\302\303#\207" [string mapconcat isearch-text-char-description ""] 4])
#@172 Query and return the `from' argument of a query-replace operation.
The return value can also be a pair (FROM . TO) indicating that the user
wants to replace FROM with TO.
(defalias 'query-replace-read-from #[(prompt regexp-flag) "\203 	\203\f \n\202 @\207\306\212\307\203' \310\311\312@!\312A!$\202, \310\313\"\306\211\211\306\314&)\315G!\203O \203O @\316A	\"B\202\212 \317\306\314$\210	\203\210 \320\321\"\203\210 \322\323\"\211\324\230\203x \325\326!\210\202\203 \327\230\203\203 \325\330!\210\331\332!\210)*\207" [query-replace-interactive regexp-flag regexp-search-ring search-ring history-add-new-input query-replace-defaults nil read-from-minibuffer format "%s (default %s -> %s): " query-replace-descr "%s: " t zerop query-replace-compile-replacement add-to-history string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" match-string 3 "\\n" message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead" "\\t" "Note: `\\t' here doesn't match a tab; to do that, just type TAB" sit-for 2 prompt query-replace-from-history-variable from match] 9 (#$ . 3137)])
#@136 Maybe convert a regexp replacement TO to Lisp.
Returns a list suitable for `perform-replace' if necessary,
the original string if not.
(defalias 'query-replace-compile-replacement #[(to regexp-flag) "\203\232 \306\307	\"\203\232 \310\211\211\311\225	\311\f\312ZOB	\fSH	\f\310O\n\313=\2034 \314B\202v \n\315=\203v \316	!\317\f@DB\f@9\204[ \f@\242\320=\203m 	\311H\321U\204m \306\322	\fA#\fA=\203m \fAT\202o \fA	\310O)\306\307	\"\204 \323\324	B\"\237\325	!\210\326	A\203\225 \327	B\202\227 	@+B\207	\207" [regexp-flag to char list pos end string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" nil 0 2 35 (number-to-string replace-count) 44 read-from-string replace-quote quote 40 " " delete "" replace-match-string-symbols replace-eval-replacement concat] 4 (#$ . 4274)])
#@66 Query and return the `to' argument of a query-replace operation.
(defalias 'query-replace-read-to #[(from prompt regexp-flag) "\306\212\307\310\311\312	\313\n!#\307\211\211\n\314&\315\f\307\314$\210\n\fB\f+\"\207" [history-add-new-input prompt from query-replace-to-history-variable to query-replace-defaults query-replace-compile-replacement nil read-from-minibuffer format "%s %s with: " query-replace-descr t add-to-history regexp-flag] 9 (#$ . 5072)])
(defalias 'query-replace-read-args #[(prompt regexp-flag &optional noerror) "\204 \306 \210\307	\n\"\211:\203 A@\202 \310	\n#\fE*\207" [noerror prompt regexp-flag from to current-prefix-arg barf-if-buffer-read-only query-replace-read-from query-replace-read-to] 5])
#@1178 Replace some occurrences of FROM-STRING with TO-STRING.
As each match is found, the user must type a character saying
what to do with it.  For directions, type \[help-command] at that time.

In Transient Mark mode, if the mark is active, operate on the contents
of the region.  Otherwise, operate from point to the end of the buffer.

If `query-replace-interactive' is non-nil, the last incremental search
string is used as FROM-STRING--you don't have to specify it with the
minibuffer.

Matching is independent of case if `case-fold-search' is non-nil and
FROM-STRING has no uppercase letters.  Replacement transfers the case
pattern of the old text to the new text, if `case-replace' and
`case-fold-search' are non-nil and FROM-STRING has no uppercase
letters.  (Transferring the case pattern means that if the old text
matched is all caps, or capitalized, then its replacement is upcased
or capitalized.)

Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace
only matches surrounded by word boundaries.
Fourth and fifth arg START and END specify the region to operate on.

To customize possible responses, change the "bindings" in `query-replace-map'.
(defalias 'query-replace #[(from-string to-string &optional delimited start end) "\305	\306\307\n\307\211\f&	\207" [from-string to-string delimited start end perform-replace t nil] 10 (#$ . 5822) (let ((common (query-replace-read-args (concat "Query replace" (if current-prefix-arg " word" #1="") (if (and transient-mark-mode mark-active) " in region" #1#)) nil))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))])
(define-key esc-map "%" 'query-replace)
#@2129 Replace some things after point matching REGEXP with TO-STRING.
As each match is found, the user must type a character saying
what to do with it.  For directions, type \[help-command] at that time.

In Transient Mark mode, if the mark is active, operate on the contents
of the region.  Otherwise, operate from point to the end of the buffer.

If `query-replace-interactive' is non-nil, the last incremental search
regexp is used as REGEXP--you don't have to specify it with the
minibuffer.

Matching is independent of case if `case-fold-search' is non-nil and
REGEXP has no uppercase letters.  Replacement transfers the case
pattern of the old text to the new text, if `case-replace' and
`case-fold-search' are non-nil and REGEXP has no uppercase letters.
(Transferring the case pattern means that if the old text matched is
all caps, or capitalized, then its replacement is upcased or
capitalized.)

Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace
only matches surrounded by word boundaries.
Fourth and fifth arg START and END specify the region to operate on.

In TO-STRING, `\&' stands for whatever matched the whole of REGEXP,
and `\=\N' (where N is a digit) stands for
whatever what matched the Nth `\(...\)' in REGEXP.
`\?' lets you edit the replacement text in the minibuffer
at the given position for each replacement.

In interactive calls, the replacement text can contain `\,'
followed by a Lisp expression.  Each
replacement evaluates that expression to compute the replacement
string.  Inside of that expression, `\&' is a string denoting the
whole match as a string, `\N' for a partial match, `\#&' and `\#N'
for the whole or a partial match converted to a number with
`string-to-number', and `\#' itself for the number of replacements
done so far (starting with zero).

If the replacement expression is a symbol, write a space after it
to terminate it.  One space there, if any, will be discarded.

When using those Lisp features interactively in the replacement
text, TO-STRING is actually made a list instead of a string.
Use \[repeat-complex-command] after this command for details.
(defalias 'query-replace-regexp #[(regexp to-string &optional delimited start end) "\305	\306\211\n\307\211\f&	\207" [regexp to-string delimited start end perform-replace t nil] 10 (#$ . 7587) (let ((common (query-replace-read-args (concat "Query replace" (if current-prefix-arg " word" #1="") " regexp" (if (and transient-mark-mode mark-active) " in region" #1#)) t))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))])
(define-key esc-map [67108901] 'query-replace-regexp)
#@1653 Replace some things after point matching REGEXP with the result of TO-EXPR.

Interactive use of this function is deprecated in favor of the
`\,' feature of `query-replace-regexp'.  For non-interactive use, a loop
using `search-forward-regexp' and `replace-match' is preferred.

As each match is found, the user must type a character saying
what to do with it.  For directions, type \[help-command] at that time.

TO-EXPR is a Lisp expression evaluated to compute each replacement.  It may
reference `replace-count' to get the number of replacements already made.
If the result of TO-EXPR is not a string, it is converted to one using
`prin1-to-string' with the NOESCAPE argument (which see).

For convenience, when entering TO-EXPR interactively, you can use `\&' or
`\0' to stand for whatever matched the whole of REGEXP, and `\N' (where
N is a digit) to stand for whatever matched the Nth `\(...\)' in REGEXP.
Use `\#&' or `\#N' if you want a number instead of a string.
In interactive use, `\#' in itself stands for `replace-count'.

In Transient Mark mode, if the mark is active, operate on the contents
of the region.  Otherwise, operate from point to the end of the buffer.

If `query-replace-interactive' is non-nil, the last incremental search
regexp is used as REGEXP--you don't have to specify it with the
minibuffer.

Preserves case in each replacement if `case-replace' and `case-fold-search'
are non-nil and REGEXP has no uppercase letters.

Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace
only matches that are surrounded by word boundaries.
Fourth and fifth arg START and END specify the region to operate on.
(defalias 'query-replace-regexp-eval #[(regexp to-expr &optional delimited start end) "\305\306	B\307\310\n\311\211\f&	\207" [regexp to-expr delimited start end perform-replace replace-eval-replacement t literal nil] 10 (#$ . 10322) (progn (barf-if-buffer-read-only) (let* ((from (let ((query-replace-to-history-variable nil)) (query-replace-read-from "Query replace regexp" t))) (to (list (read-from-minibuffer (format "Query replace regexp %s with eval: " (query-replace-descr from)) nil nil t query-replace-to-history-variable from t)))) (replace-match-string-symbols to) (list from (car to) current-prefix-arg (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end)))))])
(make-obsolete 'query-replace-regexp-eval "for interactive use, use the special `\\,' feature of\n`query-replace-regexp' instead.  Non-interactively, a loop\nusing `search-forward-regexp' and `replace-match' is preferred." "22.1")
#@867 Replace some matches for REGEXP with various strings, in rotation.
The second argument TO-STRINGS contains the replacement strings, separated
by spaces.  This command works like `query-replace-regexp' except that
each successive replacement uses the next successive replacement string,
wrapping around from the last such string to the first.

In Transient Mark mode, if the mark is active, operate on the contents
of the region.  Otherwise, operate from point to the end of the buffer.

Non-interactively, TO-STRINGS may be a list of replacement strings.

If `query-replace-interactive' is non-nil, the last incremental search
regexp is used as REGEXP--you don't have to specify it with the minibuffer.

A prefix argument N says to use each replacement string N times
before rotating to the next.
Fourth and fifth arg START and END specify the region to operate on.
(defalias 'map-query-replace-regexp #[(regexp to-strings &optional n start end) "\306	<\203\f 	\202? 	G\307U\204? \310\311	\"\2033 \312	\307\310\311	\"OC\"	\310\311	\"T\306O\211\202 \312	C\"\313\211\202 \314\n\315\211\306\306\f&	)\207" [replacements to-strings regexp n start end nil 0 string-match " " append "" perform-replace t] 11 (#$ . 12951) (let* ((from (if query-replace-interactive (car regexp-search-ring) (read-from-minibuffer "Map query replace (regexp): " nil nil nil 'query-replace-history nil t))) (to (read-from-minibuffer (format "Query replace %s with (space-separated strings): " (query-replace-descr from)) nil nil nil 'query-replace-history from t))) (list from to (and current-prefix-arg (prefix-numeric-value current-prefix-arg)) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))])
#@1153 Replace occurrences of FROM-STRING with TO-STRING.
Preserve case in each match if `case-replace' and `case-fold-search'
are non-nil and FROM-STRING has no uppercase letters.
(Preserving case means that if the string matched is all caps, or capitalized,
then its replacement is upcased or capitalized.)

In Transient Mark mode, if the mark is active, operate on the contents
of the region.  Otherwise, operate from point to the end of the buffer.

Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace
only matches surrounded by word boundaries.
Fourth and fifth arg START and END specify the region to operate on.

If `query-replace-interactive' is non-nil, the last incremental search
string is used as FROM-STRING--you don't have to specify it with the
minibuffer.

This function is usually the wrong thing to use in a Lisp program.
What you probably want is a loop like this:
  (while (search-forward FROM-STRING nil t)
    (replace-match TO-STRING nil t))
which will run faster and will not set the mark or print anything.
(You may need a more complex loop if FROM-STRING can match the null string
and TO-STRING is also null.)
(defalias 'replace-string #[(from-string to-string &optional delimited start end) "\305	\306\211\n\306\211\f&	\207" [from-string to-string delimited start end perform-replace nil] 10 (#$ . 14713) (let ((common (query-replace-read-args (concat "Replace" (if current-prefix-arg " word" #1="") " string" (if (and transient-mark-mode mark-active) " in region" #1#)) nil))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))])
#@2021 Replace things after point matching REGEXP with TO-STRING.
Preserve case in each match if `case-replace' and `case-fold-search'
are non-nil and REGEXP has no uppercase letters.

In Transient Mark mode, if the mark is active, operate on the contents
of the region.  Otherwise, operate from point to the end of the buffer.

Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace
only matches surrounded by word boundaries.
Fourth and fifth arg START and END specify the region to operate on.

In TO-STRING, `\&' stands for whatever matched the whole of REGEXP,
and `\=\N' (where N is a digit) stands for
whatever what matched the Nth `\(...\)' in REGEXP.
`\?' lets you edit the replacement text in the minibuffer
at the given position for each replacement.

In interactive calls, the replacement text may contain `\,'
followed by a Lisp expression used as part of the replacement
text.  Inside of that expression, `\&' is a string denoting the
whole match, `\N' a partial match, `\#&' and `\#N' the respective
numeric values from `string-to-number', and `\#' itself for
`replace-count', the number of replacements occurred so far.

If your Lisp expression is an identifier and the next letter in
the replacement string would be interpreted as part of it, you
can wrap it with an expression like `\,(or \#)'.  Incidentally,
for this particular case you may also enter `\#' in the
replacement text directly.

When using those Lisp features interactively in the replacement
text, TO-STRING is actually made a list instead of a string.
Use \[repeat-complex-command] after this command for details.

If `query-replace-interactive' is non-nil, the last incremental search
regexp is used as REGEXP--you don't have to specify it with the minibuffer.

This function is usually the wrong thing to use in a Lisp program.
What you probably want is a loop like this:
  (while (re-search-forward REGEXP nil t)
    (replace-match TO-STRING nil nil))
which will run faster and will not set the mark or print anything.
(defalias 'replace-regexp #[(regexp to-string &optional delimited start end) "\305	\306\307\n\306\211\f&	\207" [regexp to-string delimited start end perform-replace nil t] 10 (#$ . 16417) (let ((common (query-replace-read-args (concat "Replace" (if current-prefix-arg " word" #1="") " regexp" (if (and transient-mark-mode mark-active) " in region" #1#)) t))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))])
#@158 History list for some commands that read regular expressions.

Maximum length of the history list is determined by the value
of `history-length', which see.
(defvar regexp-history nil (#$ . 18978))
#@437 Read regexp as a string using the regexp history and some useful defaults.
Prompt for a regular expression with PROMPT (without a colon and
space) in the minibuffer.  The optional argument DEFAULT-VALUE
provides the value to display in the minibuffer prompt that is
returned if the user just types RET.
Values available via M-n are the string at point, the last isearch
regexp, the last isearch string, and the last replacement regexp.
(defalias 'read-regexp #[(prompt &optional default-value) "\306\206\f 	\300N\206\f \307 \206 \310!\n@\306@\206 \310!\fJ@F\311\312\313\314\310\"\"!\313\315\203@ \316\317\320!#\202E \316\321\"\313\211\211\322\323&\211\310\232\203_ \206g \202g \324\322\"\210,\207" [find-tag-default-function major-mode regexp-search-ring search-ring query-replace-from-history-variable defaults regexp-quote find-tag-default "" delete-dups delq nil delete read-from-minibuffer format "%s (default %s): " query-replace-descr "%s: " regexp-history t add-to-history history-add-new-input default-value prompt input] 9 (#$ . 19183)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\207" [defalias delete-non-matching-lines keep-lines delete-matching-lines flush-lines count-matches how-many] 3)
#@106 Read arguments for `keep-lines' and friends.
Prompt for a regexp with PROMPT.
Value is a list, (REGEXP).
(defalias 'keep-lines-read-args #[(prompt) "\301!\302\211\303F\207" [prompt read-regexp nil t] 4 (#$ . 20442)])
#@1149 Delete all lines except those containing matches for REGEXP.
A match split across lines preserves all the lines it lies in.
When called from Lisp (and usually interactively as well, see below)
applies to all lines starting after point.

If REGEXP contains upper case characters (excluding those preceded by `\')
and `search-upper-case' is non-nil, the matching is case-sensitive.

Second and third arg RSTART and REND specify the region to operate on.
This command operates on (the accessible part of) all lines whose
accessible part is entirely contained in the region determined by RSTART
and REND.  (A newline ending a line counts as part of that line.)

Interactively, in Transient Mark mode when the mark is active, operate
on all lines whose accessible part is entirely contained in the region.
Otherwise, the command applies to all lines starting after point.
When calling this function from Lisp, you can pretend that it was
called interactively by passing a non-nil INTERACTIVE argument.

This function starts looking for the next match from the end of
the previous match.  Hence, it ignores matches that overlap
a previously found match.
(defalias 'keep-lines #[(regexp &optional rstart rend interactive) "\203! 	^b\210\212	]b\210n\204 m\204 \306y\210\307 )\202M \n\203E \203E \f\203E \310 \311 b\210n\204? m\204? \306y\210\307 \202J `\312 b\210\212n\204U \313y\210`\203g \203g \314\315\"\202h `	W\203\271 \316	\317#\204\202 	|\210\202\235 \212\306\224b\210\306y\210`)W\203\234 |\210)\212\313y\210`)`	W\203k \306\224\306\225U\203k \313u\210\202k +	\320\211\223\210\320\207" [rstart rend interactive transient-mark-mode mark-active case-fold-search 0 point-marker region-beginning region-end point-max-marker 1 isearch-no-upper-case-p t re-search-forward move nil search-upper-case regexp start end] 4 (#$ . 20668) (byte-code "\300 \210\301\302!\207" [barf-if-buffer-read-only keep-lines-read-args "Keep lines containing match for regexp"] 2)])
#@1134 Delete lines containing matches for REGEXP.
When called from Lisp (and usually when called interactively as
well, see below), applies to the part of the buffer after point.
The line point is in is deleted if and only if it contains a
match for regexp starting after point.

If REGEXP contains upper case characters (excluding those preceded by `\')
and `search-upper-case' is non-nil, the matching is case-sensitive.

Second and third arg RSTART and REND specify the region to operate on.
Lines partially contained in this region are deleted if and only if
they contain a match entirely contained in it.

Interactively, in Transient Mark mode when the mark is active, operate
on the contents of the region.  Otherwise, operate from point to the
end of (the accessible portion of) the buffer.  When calling this function
from Lisp, you can pretend that it was called interactively by passing
a non-nil INTERACTIVE argument.

If a match is split across lines, all the lines it lies in are deleted.
They are deleted _before_ looking for the next match.  Hence, a match
starting on the same line at which another match ended is ignored.
(defalias 'flush-lines #[(regexp &optional rstart rend interactive) "\203 	^b\210\306	]!\2021 \n\203) \203) \f\203) \307 \306\310 !\202. `\311 b\210\203B \203B \312\313\"\202C \212`	W\203g \314	\313#\203g \212\315\224b\210\315y\210`)\316y\210`|\210\202E *	\317\211\223\210\317\207" [rstart rend interactive transient-mark-mode mark-active case-fold-search copy-marker region-beginning region-end point-max-marker isearch-no-upper-case-p t re-search-forward 0 1 nil search-upper-case regexp] 4 (#$ . 22667) (byte-code "\300 \210\301\302!\207" [barf-if-buffer-read-only keep-lines-read-args "Flush lines containing match for regexp"] 2)])
#@815 Print and return number of matches for REGEXP following point.
When called from Lisp and INTERACTIVE is omitted or nil, just return
the number, do not print it; if INTERACTIVE is t, the function behaves
in all respects as if it had been called interactively.

If REGEXP contains upper case characters (excluding those preceded by `\')
and `search-upper-case' is non-nil, the matching is case-sensitive.

Second and third arg RSTART and REND specify the region to operate on.

Interactively, in Transient Mark mode when the mark is active, operate
on the contents of the region.  Otherwise, operate from point to the
end of (the accessible portion of) the buffer.

This function starts looking for the next match from the end of
the previous match.  Hence, it ignores matches that overlap
a previously found match.
(defalias 'how-many #[(regexp &optional rstart rend interactive) "\212\203 	^b\210	]\202- \n\203& \203& \f\203& \306 \307 \202* `db\210\310\311\203@ \203@ \312\313\"\202A `	W\203m `\314	\313#\203m `U\203e \315u\210\202F T\202F \n\203\202 \316\317\211\315U\203 \320\202\200 \321#\210,\207" [rstart rend interactive transient-mark-mode mark-active case-fold-search region-beginning region-end 0 nil isearch-no-upper-case-p t re-search-forward 1 message "%d occurrence%s" "" "s" search-upper-case regexp opoint count] 5 (#$ . 24464) (keep-lines-read-args "How many matches for regexp")])
#@26 Keymap for `occur-mode'.
(defvar occur-mode-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\307#\210\303\311\312#\210\303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323\324#\210\303\325\326#\210\303\327\330#\210\303\331\332#\210\303\333\334#\210\303\335\302 #\210\303\336\337\340\341!\342BB#\210\303\343\344\340\345!\334\346\340\347!\350\351\257#\210\303\352	#\210\303\353\344\340\354!\332\346\340\355!\257#\210\303\356\344\340\357!\330\346\340\360!\257#\210\303\361\344\340\362!\326\346\340\363!\257#\210\303\364\344\340\365!\324\346\340\366!\257#\210\303\367\344\340\370!\322\346\340\371!\257#\210\303\372	#\210\303\373\344\340\374!\312\346\340\375!\257#\210\303\376\344\340\377!\307\346\340\201@ !\257#\210\303\201A \344\340\201B !\314\346\340\201C !\257#\210\303\201D \344\340\201E !\316\346\340\201F !\257#\210\303\201G \344\340\201H !\320\346\340\201I !\257#\210)\207" [map menu-bar-separator make-sparse-keymap define-key [mouse-2] occur-mode-mouse-goto "" occur-mode-goto-occurrence "" "o" occur-mode-goto-occurrence-other-window "" occur-mode-display-occurrence "\356" occur-next "\360" occur-prev "r" occur-rename-buffer "c" clone-buffer "g" revert-buffer "q" quit-window "z" kill-this-buffer "" next-error-follow-minor-mode [menu-bar] [menu-bar occur] cons purecopy "Occur" (map) [next-error-follow-minor-mode] menu-item "Auto Occurrence Display" :help "Display another occurrence when moving the cursor" :button (:toggle and (default-boundp 'next-error-follow-minor-mode) (default-value 'next-error-follow-minor-mode)) [separator-1] [kill-this-buffer] "Kill occur buffer" "Kill the current *Occur* buffer" [quit-window] "Quit occur window" "Quit the current *Occur* buffer.  Bury it, and maybe delete the selected frame" [revert-buffer] "Revert occur buffer" "Replace the text in the *Occur* buffer with the results of rerunning occur" [clone-buffer] "Clone occur buffer" "Create and return a twin copy of the current *Occur* buffer" [occur-rename-buffer] "Rename occur buffer" "Rename the current *Occur* buffer to *Occur: original-buffer-name*." [separator-2] [occur-mode-goto-occurrence-other-window] "Go To Occurrence Other Window" "Go to the occurrence the current line describes, in another window" [occur-mode-goto-occurrence] "Go To Occurrence" "Go to the occurrence the current line describes" [occur-mode-display-occurrence] "Display Occurrence" "Display in another window the occurrence the current line describes" [occur-next] "Move to next match" "Move to the Nth (default 1) next match in an Occur mode buffer" [occur-prev] "Move to previous match" "Move to the Nth (default 1) previous match in an Occur mode buffer"] 10) (#$ . 25906))
#@93 Arguments to pass to `occur-1' to revert an Occur mode buffer.
See `occur-revert-function'.
(defvar occur-revert-arguments nil (#$ . 28663))
#@36 Hook run when entering Occur mode.
(custom-declare-variable 'occur-mode-hook ''(turn-on-font-lock) '(#$ . 28810) :type 'hook :group 'matching)
#@47 Hook run by Occur when there are any matches.
(custom-declare-variable 'occur-hook 'nil '(#$ . 28959) :type 'hook :group 'matching)
#@209 Hook run by Occur after locating an occurrence.
This will be called with the cursor position at the occurrence.  An application
for this is to reveal context in an outline-mode when the occurrence is hidden.
(custom-declare-variable 'occur-mode-find-occurrence-hook 'nil '(#$ . 29098) :type 'hook :group 'matching)
(put 'occur-mode 'mode-class 'special)
#@279 Major mode for output from \[occur].
\<occur-mode-map>Move point to one of the items in this buffer, then use
\[occur-mode-goto-occurrence] to go to the occurrence that the item refers to.
Alternatively, click \[occur-mode-mouse-goto] on an item to go to it.

\{occur-mode-map}
(defalias 'occur-mode #[nil "\305 \210\306!\210\307\310\311\303!\210\312\311\313!\210\314\315\316\317\320$\210\321\322\323!\207" [occur-mode-map major-mode mode-name revert-buffer-function next-error-function kill-all-local-variables use-local-map occur-mode "Occur" make-local-variable occur-revert-function occur-revert-arguments add-hook change-major-mode-hook font-lock-defontify nil t occur-next-error run-mode-hooks occur-mode-hook] 5 (#$ . 29459) nil])
#@48 Handle `revert-buffer' for Occur mode buffers.
(defalias 'occur-revert-function #[(ignore1 ignore2) "\301\302\303\304 C\"\"\207" [occur-revert-arguments apply occur-1 append buffer-name] 5 (#$ . 30208)])
(defalias 'occur-mode-find-occurrence #[nil "\301`\302\"\211\204 \303\304!\210\305\306!!\204 \303\307!\210)\207" [pos get-text-property occur-target error "No occurrence on this line" buffer-live-p marker-buffer "Buffer for this occurrence was killed"] 4])
(defalias 'occur-mode-mouse-goto 'occur-mode-goto-occurrence)
#@50 Go to the occurrence the current line describes.
(defalias 'occur-mode-goto-occurrence #[(&optional event) "\204	 \305 \202o r\306\211:\203# \3078:\203 \307\202 \3108\202) \311 `\312\313F)\211@)!q\210\212\211:\203J \3078:\203D \307\202E \3108\202P \311 `\312\313F)\314	8\206i 	A@:\203f 	A@@\202i 	A@)b\210\305 *\315\211\316\317\f!!\210\fb\210\320\321!+\207" [event position same-window-regexps same-window-buffer-names pos occur-mode-find-occurrence window-buffer 2 1 selected-window (0 . 0) 0 5 nil pop-to-buffer marker-buffer run-hooks occur-mode-find-occurrence-hook] 6 (#$ . 30743) (list last-nonmenu-event)])
#@69 Go to the occurrence the current line describes, in another window.
(defalias 'occur-mode-goto-occurrence-other-window #[nil "\301 \302\303!!\210b\210\304\305!)\207" [pos occur-mode-find-occurrence switch-to-buffer-other-window marker-buffer run-hooks occur-mode-find-occurrence-hook] 3 (#$ . 31379) nil])
#@70 Display in another window the occurrence the current line describes.
(defalias 'occur-mode-display-occurrence #[nil "\306 \307\211\211\310\311!!\312 \313\314\315 \"r\316\216\317\n!\210b\210\320\321!.\207" [same-window-regexps same-window-buffer-names window pos save-selected-window-alist save-selected-window-window occur-mode-find-occurrence nil display-buffer marker-buffer selected-window mapcar #[(frame) "\301!B\207" [frame frame-selected-window] 3] frame-list ((byte-code "\304\211\203( \n@\305	@!\203! \306	A!\203! \307	@	A\310#\210\nA\211\204 *\306!\2034 \311\310\"\210\304\207" [save-selected-window-alist elt #1=#:--cl-dolist-temp-- save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window norecord select-window] 5)) select-window run-hooks occur-mode-find-occurrence-hook] 4 (#$ . 31694) nil])
(defalias 'occur-find-match #[(n search message) "\204 \304\305\306V\2058 \n`\307\"\211\203# \310	\307\"\203# \n	\307\"	\203- 	b\210\2021 \311!\210S\211\202	 )\207" [n r search message 1 nil 0 occur-match get-text-property error] 4])
#@65 Move to the Nth (default 1) next match in an Occur mode buffer.
(defalias 'occur-next #[(&optional n) "\301\302\303#\207" [n occur-find-match next-single-property-change "No more matches"] 4 (#$ . 32799) "p"])
#@69 Move to the Nth (default 1) previous match in an Occur mode buffer.
(defalias 'occur-prev #[(&optional n) "\301\302\303#\207" [n occur-find-match previous-single-property-change "No earlier matches"] 4 (#$ . 33016) "p"])
#@119 Move to the Nth (default 1) next match in an Occur mode buffer.
Compatibility function for \[next-error] invocations.
(defalias 'occur-next-error #[(&optional argp reset) "rp\306\211\211\307!\2056 \n\205 p=?\2056 rq\210\f\203/ \203+  \2025 \310\2025 	\2055 	 ),\203> p\202C \311\306\211\312#q\210\203M e\202f \313W\203Y \314 \202f \313V\203e \315 \202f `b\210\316\317!\313V\203x \320\202y \321\322#\210\323p\310\"\211\203\214 \324`\"\210)\325 )\207" [extra-test-exclusive extra-test-inclusive avoid-current buffer next-error-function reset nil buffer-name t next-error-find-buffer #[nil "\301=\207" [major-mode occur-mode] 2] 0 line-beginning-position line-end-position occur-find-match abs previous-single-property-change next-single-property-change "No more matches" get-buffer-window set-window-point occur-mode-goto-occurrence argp win] 5 (#$ . 33245) "p"])
(custom-declare-face 'match '((((class color) (min-colors 88) (background light)) :background "yellow1") (((class color) (min-colors 88) (background dark)) :background "RoyalBlue3") (((class color) (min-colors 8) (background light)) :background "yellow" :foreground "black") (((class color) (min-colors 8) (background dark)) :background "blue" :foreground "white") (((type tty) (class mono)) :inverse-video t) (t :background "gray")) "Face used to highlight matches permanently." :group 'matching :version "22.1")
#@223 Default number of context lines included around `list-matching-lines' matches.
A negative number means to include that many lines before the match.
A positive number means to include that many lines both before and after.
(custom-declare-variable 'list-matching-lines-default-context-lines '0 '(#$ . 34652) :type 'integer :group 'matching)
(defalias 'list-matching-lines 'occur)
#@138 Face used by \[list-matching-lines] to show the text that matches.
If the value is nil, don't highlight the matching portions specially.
(custom-declare-variable 'list-matching-lines-face ''match '(#$ . 35038) :type 'face :group 'matching)
#@132 Face used by \[list-matching-lines] to show the names of buffers.
If the value is nil, don't highlight the buffer names specially.
(custom-declare-variable 'list-matching-lines-buffer-name-face ''underline '(#$ . 35285) :type 'face :group 'matching)
#@177 Text properties to discard when copying lines to the *Occur* buffer.
The value should be a list of text properties to discard or t,
which means to discard all text properties.
(custom-declare-variable 'occur-excluded-properties ''(read-only invisible intangible field mouse-face help-echo local-map keymap yank-handler follow-link) '(#$ . 35542) :type '(choice (const :tag "All" t) (repeat symbol)) :group 'matching :version "22.1")
(defalias 'occur-accumulate-lines #[(count &optional keep-props) "\212\306V\307\211\211\310!\204\210 \f\203 m\202 o\204\210 \f\203& \311\202' \312\\\313 \314 \203R \315\316!\203R \203R \317\n	\320\321$\203R \322\323!\203R \323\n	\"\210\203s \321=\204s \n	{\324\306G$\210)\202w \325\n	\"B\f\203\202 \312\202\203 \311y\210\202 \237-\207" [count end beg result forwardp keep-props 0 nil zerop -1 1 line-beginning-position line-end-position boundp jit-lock-mode text-property-not-all fontified t fboundp jit-lock-fontify-now remove-list-of-text-properties buffer-substring-no-properties occur-excluded-properties str] 5])
(defalias 'occur-read-primary-args #[nil "\302\303@\"	\205\f \304	!D\207" [regexp-history current-prefix-arg read-regexp "List lines matching regexp" prefix-numeric-value] 3])
#@440 Rename the current *Occur* buffer to *Occur: original-buffer-name*.
Here `original-buffer-name' is the buffer name were Occur was originally run.
When given the prefix argument, or called non-interactively, the renaming
will not clobber the existing buffer(s) of that name, but use
`generate-new-buffer-name' instead.  You can add this to `occur-hook'
if you always want a separate *Occur* buffer for each buffer where you
invoke `occur'.
(defalias 'occur-rename-buffer #[(&optional unique-p interactive-p) "r\305=\203 p\202 \306\307!q\210\310\311\312\313	\211AA)@\314#\315Q\206% \f?\")\207" [major-mode occur-revert-arguments x unique-p interactive-p occur-mode get-buffer "*Occur*" rename-buffer "*Occur: " mapconcat buffer-name "/" "*"] 7 (#$ . 36809) "P\np"])
#@665 Show all lines in the current buffer containing a match for REGEXP.
This function can not handle matches that span more than one line.

Each line is displayed with NLINES lines before and after, or -NLINES
before if NLINES is negative.
NLINES defaults to `list-matching-lines-default-context-lines'.
Interactively it is the prefix arg.

The lines are shown in a buffer named `*Occur*'.
It serves as a menu to find any of the occurrences in this buffer.
\<occur-mode-map>\[describe-mode] in that buffer will explain how.

If REGEXP contains upper case characters (excluding those preceded by `\')
and `search-upper-case' is non-nil, the matching is case-sensitive.
(defalias 'occur #[(regexp &optional nlines) "\302	pC#\207" [regexp nlines occur-1] 4 (#$ . 37585) (occur-read-primary-args)])
#@248 Show all lines in buffers BUFS containing a match for REGEXP.
This function acts on multiple buffers; otherwise, it is exactly like
`occur'.  When you invoke this command interactively, you must specify
the buffer names that you want, one by one.
(defalias 'multi-occur #[(bufs regexp &optional nlines) "\303	\n#\207" [regexp nlines bufs occur-1] 4 (#$ . 38384) (byte-code "\304\305p\306#C\307\304\310=\203 \311\202 \312\307\306#\211\313\230\204+ \314\300	\"\210\202 \315\316\"\237+\317 B\207" [bufs buf ido-ignore-item-temp-list read-buffer-function read-buffer "First buffer to search: " t nil ido-read-buffer "Next buffer to search (C-j to end): " "Next buffer to search (RET to end): " "" add-to-list mapcar get-buffer occur-read-primary-args] 4)])
#@233 Show all lines matching REGEXP in buffers specified by BUFREGEXP.
Normally BUFREGEXP matches against each buffer's visited file name,
but if you specify a prefix argument, it matches against the buffer name.
See also `multi-occur'.
(defalias 'multi-occur-in-matching-buffers #[(bufregexp regexp &optional allbufs) "\205 \302	\303\304\303\305\306\307 \"\"#\207" [bufregexp regexp occur-1 nil delq mapcar #[(buf) "\203 \303	\304\n!\"\202 \305\n!\205 \303	\305\n!\"\205 \n\207" [allbufs bufregexp buf string-match buffer-name buffer-file-name] 4] buffer-list] 8 (#$ . 39157) (byte-code "@\304\n\203\f \305\202 \306\307\211\211\300%\211\310\232\203 	\202 *\311 B\207" [regexp-history default current-prefix-arg input read-from-minibuffer "List lines in buffers whose names match regexp: " "List lines in buffers whose filenames match regexp: " nil "" occur-read-primary-args] 7)])
(defalias 'occur-1 #[(regexp nlines bufs &optional buf-name) "\203\n \306\232\203 \307\310!\210	\204 \311\312\313\312\314\315\n\"\"	\314\316\"\235\2031 r\317	!q\210\320 \210)\321	!r\fq\210\322 \210\323\211'\324 \210\325\f(\206O )*\203` +\203` \326\323\"\202b *,\312-.\323=?&	/G0\nG0Z1\327\3300\211\331U\203\211 \306\202\212 \332\3331!\203\225 \306\202\232 \334\3351\"\333/!\203\245 \336\202\252 \334\337/\"/\331U\203\265 \306\202\266 \340&\210*(\nE2/\341U\203\317 \342\f!\202\340 \343\f!\210\f3\3234\344\312!\210\345\346!.\207" [regexp buf-name bufs active-bufs occur-buf buffer-undo-list "" error "Occur doesn't work with the empty regexp" "*Occur*" nil delq mapcar #[(buf) "\301!\205 \207" [buf buffer-live-p] 2] buffer-name get-buffer rename-uniquely get-buffer-create occur-mode t erase-buffer occur-engine isearch-no-upper-case-p message "Searched %d buffer%s%s; %s match%s for `%s'" 1 "s" zerop format " (%d killed)" "no" "%d" "es" 0 kill-buffer display-buffer set-buffer-modified-p run-hooks occur-hook inhibit-read-only nlines list-matching-lines-default-context-lines case-fold-search search-upper-case list-matching-lines-buffer-name-face list-matching-lines-face occur-excluded-properties count bufcount diff occur-revert-arguments next-error-last-buffer buffer-read-only] 11])
(defalias 'occur-engine-add-prefix #[(lines) "\301\302\"\207" [lines mapcar #[(line) "\301\302Q\207" [line "       :" "\n"] 3]] 3])
(defalias 'occur-engine #[(regexp buffers out-buf nlines case-fold-search title-face prefix-face match-face keep-props) "rq\210\306\307\307\211\203\362@\310\f!\203\353\306\311\306\307\211\211\211\312\313rq\210`)89:;<=>?@Ar\fq\210	\204M \314\315!\203M \212eb\210m\204\232`>\316B\307\313#\211<\203\204ATA\306\224?@\317><\"S\\@\212?b\210\320 =\321 <)\322 \211;?\307\223\210C\203\271 \323\324!\203\271 \203\271 \325=<\326\313$\203\271 \327\330!\203\271 \330=<\"\210C\203\332 D\313=\204\332 =<{:\331\306:GD:$\210\202\342 \332=<\"::G\306EFEFW\203\333B:E#\203\334\306\224\306\225\335\336G\205\337GD\":$\210\306\225\211E\202\354 *\340\341\342\343@\"\335H\205)\344\345\313\346\347\350;\351BBBBBB\"#\341:\346\352C\350;\353\313\354\355&	\341\356\350;#QIJ\306U\203]I\202e\357IJC#Krq\210`Kc\210`LMJ\306U\204\360c\210-<b\210<\203\224@T@\311y\210\202Q db\210\202Q *\361A!\204\351\nA\\rq\2108b\210`\307LM\342\362A\211\311U\203\303\312\202\304\363B\364\f!%c\210`L\334ML\335N\205\336\365ND\366\fD\"#\210*eb\210).\nA\211\204 *	\203\373\367	!\210\n+\207" [out-buf coding globalcount buffers buf #1=#:--cl-dolist-temp-- 0 nil buffer-live-p 1 "" t local-variable-p buffer-file-coding-system re-search-forward count-lines line-beginning-position line-end-position make-marker boundp jit-lock-mode text-property-not-all fontified fboundp jit-lock-fontify-now remove-list-of-text-properties buffer-substring-no-properties string-match add-text-properties append (occur-match t) face apply propertize format "%7d:" (font-lock-face prefix-face) occur-prefix mouse-face (highlight) occur-target (follow-link t help-echo "mouse-2: go to this occurrence") highlight follow-link help-echo "mouse-2: go to this occurrence" "\n" occur-context-lines "-------\n" zerop "%d match%s for \"%s\" in buffer: %s\n" "es" buffer-name font-lock-face occur-title set-buffer-file-coding-system headerpt inhibit-field-text-motion curstring marker endpt begpt origpt matchbeg lines matches regexp keep-props occur-excluded-properties start len match-face prefix-face out-line nlines data end beg title-face] 13])
(defalias 'occur-context-lines #[(out-line nlines keep-props) "\303\304\305\306\307!T[	\"A\237!\nC\244\310V\205 \305\306T	\"A!\244\"\207" [nlines keep-props out-line apply concat occur-engine-add-prefix occur-accumulate-lines abs 0] 7])
#@40 Help message while in `query-replace'.
(defconst query-replace-help "Type Space or `y' to replace one match, Delete or `n' to skip to next,\nRET or `q' to exit, Period to replace one match and exit,\nComma to replace but not move point immediately,\nC-r to enter recursive edit (\\[exit-recursive-edit] to get out again),\nC-w to delete match and recursive edit,\nC-l to clear the screen, redisplay, and offer same replacement again,\n! to replace all remaining matches with no more questions,\n^ to move point back to previous match,\nE to edit the replacement string" (#$ . 43955))
#@301 Keymap that defines the responses to questions in `query-replace'.
The "bindings" in this map are not commands; they are answers.
The valid answers include `act', `skip', `act-and-show',
`exit', `act-and-exit', `edit', `delete-and-edit', `recenter',
`automatic', `backup', `exit-prefix', and `help'.
(defvar query-replace-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\306#\210\302\310\306#\210\302\311\304#\210\302\312\306#\210\302\313\304#\210\302\314\306#\210\302\315\316#\210\302\317\316#\210\302\320\321#\210\302\322\323#\210\302\324\323#\210\302\325\323#\210\302\326\327#\210\302\330\331#\210\302\332\333#\210\302\334\335#\210\302\336\337#\210\302\340\341#\210\302\342\343#\210\302\344\343#\210\302\345\343#\210\302\346\343#\210\302\347\350#\210\302\351\350#\210\302\352\353#\210\302\354\353#\210)\207" [map make-sparse-keymap define-key " " act "" skip [delete] [backspace] "y" "n" "Y" "N" "e" edit-replacement "E" "," act-and-show "q" exit "" [return] "." act-and-exit "" edit "" delete-and-edit "\f" recenter "!" automatic "^" backup "" help [f1] [help] "?" "" quit "" "" exit-prefix [escape]] 4) (#$ . 44546))
#@455 Keymap that defines additional bindings for multi-buffer replacements.
It extends its parent map `query-replace-map' with new bindings to
operate on a set of buffers/files.  The difference with its parent map
is the additional answers `automatic-all' to replace all remaining
matches in all remaining buffers with no more questions, and
`exit-current' to skip remaining matches in the current buffer
and to continue with the next buffer in the sequence.
(defvar multi-query-replace-map (byte-code "\302 \303	\"\210\304\305\306#\210\304\307\310#\210)\207" [map query-replace-map make-sparse-keymap set-keymap-parent define-key "Y" automatic-all "N" exit-current] 4) (#$ . 45728))
#@373 Process a list (and any sub-lists), expanding certain symbols.
Symbol  Expands To
N     (match-string N)           (where N is a string of digits)
#N    (string-to-number (match-string N))
&     (match-string 0)
#&    (string-to-number (match-string 0))
#     replace-count

Note that these symbols must be preceded by a backslash in order to
type them using Lisp syntax.
(defalias 'replace-match-string-symbols #[(n) ":\205s @:\203 \302@!\210\202l @9\203l \303@!\304\305	\"\2030 \306\307	!D\240\210\202k \304\310	\"\203G \307\306\307	\311\312O!DD\240\210\202k 	\313\230\203T \314\240\210\202k 	\315\230\203a \316\240\210\202k 	\317\230\203k \320\240\210)A\211\202 \207" [n name replace-match-string-symbols symbol-name string-match "^[0-9]+$" match-string string-to-number "^#[0-9]+$" 1 nil "&" (match-string 0) "#&" (string-to-number (match-string 0)) "#" replace-count] 8 (#$ . 46419)])
(defalias 'replace-eval-replacement #[(expression replace-count) "\302!\211;\203 	\202 \303	\304\")\207" [expression replacement eval prin1-to-string t] 4])
#@268 Quote a replacement string.
This just doubles all backslashes in REPLACEMENT and
returns the resulting string.  If REPLACEMENT is not
a string, it is first passed through `prin1-to-string'
with the `noescape' argument set.

`match-data' is preserved across the call.
(defalias 'replace-quote #[(replacement) "\302 \303\216\304\305\211	;\203 	\202 \306	\307\"\307\211%*\207" [save-match-data-internal replacement match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) replace-regexp-in-string "\\\\" prin1-to-string t] 6 (#$ . 47492)])
(defalias 'replace-loop-through-replacements #[(data replace-count) "\303H	U\203' \303	\304H\\I\210\305HA\305\n:\203! \n\202$ \306HI\210)\305H@\207" [data replace-count next 0 1 2 3] 5])
#@169 Like `match-data', but markers in REUSE get invalidated.
If NEW is non-nil, it is set and returned instead of fresh data,
but coerced to the correct value of INTEGERS.
(defalias 'replace-match-data #[(integers reuse &optional new) "\203 \303!\210	=\203 \n?\304	@!=\203 \206! \305\n	\306#\207" [new reuse integers set-match-data markerp match-data t] 4 (#$ . 48274)])
#@390 Make a replacement with `replace-match', editing `\?'.
NEWTEXT, FIXEDCASE, LITERAL are just passed on.  If NOEDIT is true, no
check for `\?' is made to save time.  MATCH-DATA is used for the
replacement.  In case editing is done, it is changed to use markers.

The return value is non-nil if there has been no `\?' or NOEDIT was
passed in.  If LITERAL is set, no checking is done, anyway.
(defalias 'replace-match-maybe-edit #[(newtext fixedcase literal noedit match-data) "\204+ 	\204+ \305\306\307\n\"\203+ \310\311\312\313\305\211\n\314%\314\224TB\315\316\211#\"\316\202\n \317!\210\312\n\f#\210	\207" [literal noedit newtext match-data fixedcase t string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)" read-string "Edit replacement string: " replace-match "" 3 replace-match-data nil set-match-data] 8 (#$ . 48655)])
#@176 Function to use when searching for strings to replace.
It is used by `query-replace' and `replace-string', and is called
with three arguments, as if it were `search-forward'.
(defvar replace-search-function 'search-forward (#$ . 49498))
#@243 Function to use when searching for regexps to replace.
It is used by `query-replace-regexp', `replace-regexp',
`query-replace-regexp-eval', and `map-query-replace-regexp'.
It is called with three arguments, as if it were
`re-search-forward'.
(defvar replace-re-search-function 're-search-forward (#$ . 49742))
#@578 Subroutine of `query-replace'.  Its complexity handles interactive queries.
Don't use this in your own program unless you want to query and set the mark
just as `query-replace' does.  Instead, write a simple loop like this:

  (while (re-search-forward "foo[ \t]+bar" nil t)
    (replace-match "foobar" nil nil))

which will run faster and probably do exactly what you want.  Please
see the documentation of `replace-match' to find out how to simulate
`case-replace'.

This function returns nil if and only if there were no matches to
make, or the user didn't cancel the call.
(defalias 'perform-replace #[(from-string replacements query-flag regexp-flag delimited-flag &optional repeat-count map start end) "\204 	\n\203 \203 \306\307\310 !!\210\f\203& \203& \311@A\"\202' \fB\205. \f?CA?\206; A\312=\nA\203G D\202I EF@G\313\211HI\313J\314K\313L\315M\313\211NO\313\211PQ\314R\n\205| \316\317\320\321!S#3T\203\364 \322TU]!QTU^b\210\313VW\204\240 V\203\363 X\203\277 Y\203\277 \323 \203\277 \324\325!\203\277 \326\325\327\330 \331 \"\"\210V\204\337 W\332=\204\331 W\242\333=\203\337 WA\204\337 \313W\202\363 W\242\333=\203\354 WAW\313Y\334\335!\210)\336\337Z!\"\340=\203\313\314O[;\203[I\313[\2020[@;\2030\\\204$\341\\\342\337\\\211[\211$B[]\203K\343F\344A\203C@\202G\345@!\344QG^\203S\313_\346 \210\347 \210\350\216K\203~m\204~Q\203p`QY\204~R:\203\206RA@b\210\351\314HR#\202\321R\203\236FGQ\314#\205\321\351\314H\"\202\321`TdW\205\321Q\203\262`TQW\205\321``\341u\210FGQ\314#\203\313\351\314H\"\202\320`b\210\313)\211H\203~H@HA@U?\211N\205A?\206\352G!\205\353 \211a@aA@U?\205a)Rb\203\354H@HA@\355\313$\204[[\203/\356H!\210[@[AM\"I\n\204l\n\204VJ\204V\357H@HA@TUG]\206RA\f&\210\360IC\nJH%JMTM\202[\347 \210\313\211\211\211cdeff\204a\356H!\210\357\315\224\315\225TUG]\206\227A\f&\210\313g\203\270\353 h\361\216\356H!\210\362IC\n#*\202\272Iij\3633\364@!\364i!#\210*\365 d\356H!\210\337d!d\336d\"\211c\366=\203\367\220\370\371]\203\365\372\202\366\373A\203\377\374\202 \373@\375I\376\320k!\260!\210rlq\210\377 )\221\210\202Ac\201r =\203-\313K\314f\202Ac\201s =\203B\314O\313K\314f\202Ac\201t =\203\213L\203tL\211AL@\211m@b\210mA@e\351\314H\201u m8#H)\202A\363\201v !\210\201w \201x !\210\201y \341!\210\202Ac\201z =\203\265e\204\254\360IC\nJH%JMTM\314\211fe\202Ac\201{ =\203\342e\204\326\360IC\nJH%JMTM\313K\314\211fe\202Ac\201| =\203e\204A\360IC\nJH%JMTM\351\314H\"H\314e\202Ac\201} =\204 c\340=\203Me\2048\360IC\nJH%JMTM\314f\313\314ec\340=\203A\314O\202Ac\201~ =\203\\\314f\202Ac\201 =\203v\201\200 \211no\201\200  \210*\202Ac\201\201 =\203\273\201\202  p\351\313H\211#H\315\224b\210\212\201\203 \213\210)pb\210p\313\211\223\210)A\203AN\203A\352G!\205\266\353 R\202Ac\201\204 =\203\376\351\313H\211#H\201\205 \201\206 I\"I\313Je\203\347\356H!\210\202\370\360IC\nJH%J\314e\314f\202Ac\201\207 =\203(\201\210 \373\314\211#\210\351\313H\"H\201\211  \210\212\201\212  \210)\314e\202A\201\213 o\313K\201\214 \201\215 d!q\"q\314f^\203Rc\201\216 >\204R\313_c\201 =\204{\313P\202{`e\211\203q\315\224\315\225pE\202t\353\314!ELBL,\202[)q\204\231\363\201\217 M\211\341U\203\224\373\202\227\201\220 #\210K\203\243L\206\245O.\207" [map query-replace-map query-flag minibuffer-auto-raise case-fold-search search-upper-case raise-frame window-frame minibuffer-window isearch-no-upper-case-p literal nil t 0 apply propertize substitute-command-keys "Query replacing %s with %s: (\\<query-replace-map>\\[help] for help) " copy-marker display-selections-p x-selection-owner-p PRIMARY x-set-selection buffer-substring-no-properties region-beginning region-end lambda only run-hooks deactivate-mark-hook lookup-key vector automatic-all 1 replace-loop-through-replacements re-search-forward "\\b" regexp-quote push-mark undo-boundary ((replace-dehighlight)) replace-match-data looking-at match-data text-property-not-all read-only set-match-data replace-highlight replace-match-maybe-edit ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) match-substitute-replacement message query-replace-descr read-event help "*Help*" princ "Query replacing " "word " "" "regexp " " with " ".\n\n" help-mode from-string regexp-flag case-replace nocasify replace-re-search-function replace-search-function search-function search-string real-match-data next-replacement noedit keep-going stack replace-count nonempty-match multi-buffer recenter-last-op limit match-again minibuffer-prompt-properties start end force transient-mark-mode select-active-regions mark-active last-input-event replacements repeat-count delimited-flag query-replace-lazy-highlight isearch-lazy-highlight-last-string opoint match query-replace-skip-read-only def key replaced done query-replace-show-replacement save-match-data-internal replacement-presentation message-log-max query-replace-help standard-output elt last-command this-command opos unread-command-events exit exit-current backup 2 "No previous match" ding no-terminate sit-for act act-and-exit act-and-show automatic skip recenter recenter-top-bottom edit point-marker ((recursive-edit)) edit-replacement read-string "Edit replacement string: " delete-and-edit replace-match replace-dehighlight recursive-edit mode-exited append listify-key-sequence (skip backup) "Replaced %d occurrence%s" "s"] 12 (#$ . 50059)])
(byte-code "\301B\302\301!\204 \303\301\304\"\210\304\207" [current-load-list replace-overlay default-boundp set-default nil] 3)
(defalias 'replace-highlight #[(match-beg match-end range-beg range-end string regexp case-fold) "\203# 	\203 \306	\np$\210\202# \307\n\"\310	\311\312#\210\310	\313\314#\210\f\205C \315\316\315\317\".\207" [query-replace-highlight replace-overlay match-beg match-end query-replace-lazy-highlight string move-overlay make-overlay overlay-put priority 1001 face query-replace nil t isearch-lazy-highlight-new-loop regexp case-fold isearch-error isearch-forward isearch-case-fold-search search-whitespace-regexp isearch-regexp isearch-string range-beg range-end] 6])
(defalias 'replace-dehighlight #[nil "\203 \304!\210	\205 \302\n!\210\305\211\207" [replace-overlay query-replace-lazy-highlight lazy-highlight-cleanup isearch-lazy-highlight-last-string delete-overlay nil] 2])
