Function: ediff-save-diff-region
ediff-save-diff-region is a byte-compiled function defined in
ediff-util.el.gz.
Signature
(ediff-save-diff-region N BUF-TYPE REG)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-util.el.gz
;; Save Nth diff of buffer BUF-TYPE (A, B, or C).
;; That is to say, the Nth diff on the `ediff-killed-diffs-alist'. REG
;; is the region to save. It is redundant here, but is passed anyway, for
;; convenience.
(defun ediff-save-diff-region (n buf-type reg)
(let* ((n-th-diff-saved (assoc n ediff-killed-diffs-alist))
(buf (ediff-get-buffer buf-type))
(this-buf-n-th-diff-saved (assoc buf (cdr n-th-diff-saved))))
(if this-buf-n-th-diff-saved
;; either nothing saved for n-th diff and buffer or we OK'ed
;; overriding
(setcdr this-buf-n-th-diff-saved reg)
(if n-th-diff-saved ;; n-th diff saved, but for another buffer
(nconc n-th-diff-saved (list (cons buf reg)))
(setq ediff-killed-diffs-alist ;; create record for n-th diff
(cons (list n (cons buf reg))
ediff-killed-diffs-alist))))
(message "Saving old diff region #%d of buffer %S. To recover, type `r%s'"
(1+ n) buf-type
(if ediff-merge-job
"" (downcase (symbol-name buf-type))))
))