Function: replace--push-stack
replace--push-stack is a macro defined in replace.el.gz.
Signature
(replace--push-stack REPLACED SEARCH-STR NEXT-REPLACE NEXT-REPLACEMENT MATCH-AGAIN STACK)
Source Code
;; Defined in /usr/src/emacs/lisp/replace.el.gz
;; A macro because we push STACK, i.e. a local var in `perform-replace'.
(defmacro replace--push-stack (replaced search-str next-replace next-replacement match-again stack)
(declare (indent 0) (debug (form form form form form gv-place)))
`(push (list (point) ,replaced
;; If the replacement has already happened, all we need is the
;; current match start and end. We could get this with a trivial
;; match like
;; (save-excursion (goto-char (match-beginning 0))
;; (search-forward (match-string 0))
;; (match-data t))
;; if we really wanted to avoid manually constructing match data.
;; Adding current-buffer is necessary so that match-data calls
;; can return markers which are appropriate for editing.
(if ,replaced
(list
(match-beginning 0) (match-end 0) (current-buffer))
(match-data))
,search-str ,next-replace ,next-replacement ,match-again)
,stack))