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))