Function: ediff-previous-difference
ediff-previous-difference is an interactive and byte-compiled function
defined in ediff-util.el.gz.
Signature
(ediff-previous-difference &optional ARG)
Documentation
Go to the previous difference.
With a prefix argument ARG, go back that many differences.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-util.el.gz
(defun ediff-previous-difference (&optional arg)
"Go to the previous difference.
With a prefix argument ARG, go back that many differences."
(interactive "p")
(ediff-barf-if-not-control-buffer)
(if (> ediff-current-difference -1)
(let ((n (max -1 (- ediff-current-difference (or arg 1))))
non-clash-skip skip-changed regexp-skip)
(ediff-visible-region)
(or (< n 0)
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
;; this won't exec if regexp-skip is t
(setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
skip-changed
(ediff-skip-merge-region-if-changed-from-default-p n))
(ediff-install-fine-diff-if-necessary n))
(while (and (> n -1)
(or
;; regexp skip
regexp-skip
;; skip clashes, if necessary
non-clash-skip
;; skipp changed regions
skip-changed
;; skip difference regions that differ in white space
(and ediff-ignore-similar-regions
(ediff-merge-region-is-non-clash n)
(or (eq (ediff-no-fine-diffs-p n) t)
(and (ediff-merge-job)
(eq (ediff-no-fine-diffs-p n) 'C)))
)))
(if (= 0 (mod (1+ n) 20))
(message "Skipped over region %d and counting ..." (1+ n)))
(setq n (1- n))
(or (< n 0)
(setq regexp-skip (funcall ediff-skip-diff-region-function n))
;; this won't exec if regexp-skip is t
(setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
skip-changed
(ediff-skip-merge-region-if-changed-from-default-p n))
(ediff-install-fine-diff-if-necessary n))
)
(message "")
(ediff-unselect-and-select-difference n)
) ; let
(ediff-visible-region)
(user-error "At beginning of the difference list")))