Function: replace--push-stack
replace--push-stack is a macro defined in replace.el.gz.
Signature
(replace--push-stack REPLACED SEARCH-STR NEXT-REPLACE 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 stack)
(declare (indent 0) (debug (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 t))
,search-str ,next-replace)
,stack))