[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/ediff-merg.el
From: |
Juanma Barranquero |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/ediff-merg.el |
Date: |
Tue, 04 Feb 2003 06:13:36 -0500 |
Index: emacs/lisp/ediff-merg.el
diff -c emacs/lisp/ediff-merg.el:1.22 emacs/lisp/ediff-merg.el:1.23
*** emacs/lisp/ediff-merg.el:1.22 Mon Jan 7 23:36:01 2002
--- emacs/lisp/ediff-merg.el Tue Feb 4 06:13:36 2003
***************
*** 58,67 ****
:type '(radio (const default-A) (const default-B) (const combined))
:group 'ediff-merge)
! (defcustom ediff-combination-pattern
'("<<<<<<< variant A" A ">>>>>>> variant B" B "####### Ancestor" Ancestor
"======= end")
"*Pattern to be used for combining difference regions in buffers A and B.
! The value must be a list of the form
(STRING1 bufspec1 STRING2 bufspec2 STRING3 bufspec3 STRING4)
where bufspec is the symbol A, B, or Ancestor. For instance, if the value is
'(STRING1 A STRING2 Ancestor STRING3 B STRING4) then the
--- 58,67 ----
:type '(radio (const default-A) (const default-B) (const combined))
:group 'ediff-merge)
! (defcustom ediff-combination-pattern
'("<<<<<<< variant A" A ">>>>>>> variant B" B "####### Ancestor" Ancestor
"======= end")
"*Pattern to be used for combining difference regions in buffers A and B.
! The value must be a list of the form
(STRING1 bufspec1 STRING2 bufspec2 STRING3 bufspec3 STRING4)
where bufspec is the symbol A, B, or Ancestor. For instance, if the value is
'(STRING1 A STRING2 Ancestor STRING3 B STRING4) then the
***************
*** 93,99 ****
A region is considered to have been changed if it is different from the
current
default (`default-A', `default-B', `combined') and it hasn't been marked as
`prefer-A' or `prefer-B'.
! A region is considered to have been changed also when it is marked as
as `prefer-A', but is different from the corresponding difference region in
Buffer A or if it is marked as `prefer-B' and is different from the region in
Buffer B."
--- 93,99 ----
A region is considered to have been changed if it is different from the
current
default (`default-A', `default-B', `combined') and it hasn't been marked as
`prefer-A' or `prefer-B'.
! A region is considered to have been changed also when it is marked as
as `prefer-A', but is different from the corresponding difference region in
Buffer A or if it is marked as `prefer-B' and is different from the region in
Buffer B."
***************
*** 111,117 ****
;; If ediff-skip-changed-regions, check if the merge region differs from
;; the current default. If a region is different from the default, it means
;; that the user has made determination as to how to merge for this particular
! ;; region.
(defsubst ediff-skip-merge-region-if-changed-from-default-p (n)
(and ediff-skip-merge-regions-that-differ-from-default
(ediff-merge-changed-from-default-p n 'prefers-too)))
--- 111,117 ----
;; If ediff-skip-changed-regions, check if the merge region differs from
;; the current default. If a region is different from the default, it means
;; that the user has made determination as to how to merge for this particular
! ;; region.
(defsubst ediff-skip-merge-region-if-changed-from-default-p (n)
(and ediff-skip-merge-regions-that-differ-from-default
(ediff-merge-changed-from-default-p n 'prefers-too)))
***************
*** 137,143 ****
(setq combo-region
(concat combo-region
region-delim "\n"
! (ediff-get-region-contents
n region-spec ediff-control-buffer)))
(error ""))
(setq pattern-list (cdr (cdr pattern-list)))
--- 137,143 ----
(setq combo-region
(concat combo-region
region-delim "\n"
! (ediff-get-region-contents
n region-spec ediff-control-buffer)))
(error ""))
(setq pattern-list (cdr (cdr pattern-list)))
***************
*** 161,167 ****
(while (< n ediff-number-of-differences)
(ediff-set-state-of-diff-in-all-buffers n ctl-buf)
(setq n (1+ n)))))
!
(defun ediff-set-state-of-diff-in-all-buffers (n ctl-buf)
(let ((regA (ediff-get-region-contents n 'A ctl-buf))
(regB (ediff-get-region-contents n 'B ctl-buf))
--- 161,167 ----
(while (< n ediff-number-of-differences)
(ediff-set-state-of-diff-in-all-buffers n ctl-buf)
(setq n (1+ n)))))
!
(defun ediff-set-state-of-diff-in-all-buffers (n ctl-buf)
(let ((regA (ediff-get-region-contents n 'A ctl-buf))
(regB (ediff-get-region-contents n 'B ctl-buf))
***************
*** 190,201 ****
(ediff-set-state-of-diff n 'B nil)
(ediff-set-state-of-diff n 'C nil)))
))
!
(defun ediff-set-merge-mode ()
(normal-mode t)
(remove-hook 'local-write-file-hooks 'ediff-set-merge-mode))
!
;; Go over all diffs starting with DIFF-NUM and copy regions into buffer C
;; according to the state of the difference.
;; Since ediff-copy-diff refuses to copy identical diff regions, there is
--- 190,201 ----
(ediff-set-state-of-diff n 'B nil)
(ediff-set-state-of-diff n 'C nil)))
))
!
(defun ediff-set-merge-mode ()
(normal-mode t)
(remove-hook 'local-write-file-hooks 'ediff-set-merge-mode))
!
;; Go over all diffs starting with DIFF-NUM and copy regions into buffer C
;; according to the state of the difference.
;; Since ediff-copy-diff refuses to copy identical diff regions, there is
***************
*** 217,223 ****
(if remerging "Re-merging" "Merging")
n
ediff-number-of-differences))
!
(setq state-of-merge (ediff-get-state-of-merge n))
(if remerging
--- 217,223 ----
(if remerging "Re-merging" "Merging")
n
ediff-number-of-differences))
!
(setq state-of-merge (ediff-get-state-of-merge n))
(if remerging
***************
*** 225,260 ****
;; (reg-B (ediff-get-region-contents n 'B ediff-control-buffer))
;; (reg-C (ediff-get-region-contents n 'C ediff-control-buffer)))
(let ()
!
;; if region was edited since it was first set by default
(if (or (ediff-merge-changed-from-default-p n)
;; was preferred
(string-match "prefer" state-of-merge))
;; then ignore
(setq do-not-copy t))
!
;; change state of merge for this diff, if necessary
(if (and (string-match "\\(default\\|combined\\)" state-of-merge)
(not do-not-copy))
(ediff-set-state-of-merge
n (format "%S" ediff-default-variant)))
))
!
;; state-of-merge may have changed via ediff-set-state-of-merge, so
;; check it once again
(setq state-of-merge (ediff-get-state-of-merge n))
!
(or do-not-copy
(if (string= state-of-merge "combined")
;; use n+1 because ediff-combine-diffs works via user numbering
;; of diffs, which is 1+ to what ediff uses internally
(ediff-combine-diffs (1+ n) 'batch)
! (ediff-copy-diff
n (if (string-match "-A" state-of-merge) 'A 'B) 'C 'batch)))
(setq n (1+ n)))
(message "Merging buffers A & B into C ... Done")
))
!
(defun ediff-re-merge ()
"Remerge unmodified diff regions using a new default. Start with the
current region."
--- 225,260 ----
;; (reg-B (ediff-get-region-contents n 'B ediff-control-buffer))
;; (reg-C (ediff-get-region-contents n 'C ediff-control-buffer)))
(let ()
!
;; if region was edited since it was first set by default
(if (or (ediff-merge-changed-from-default-p n)
;; was preferred
(string-match "prefer" state-of-merge))
;; then ignore
(setq do-not-copy t))
!
;; change state of merge for this diff, if necessary
(if (and (string-match "\\(default\\|combined\\)" state-of-merge)
(not do-not-copy))
(ediff-set-state-of-merge
n (format "%S" ediff-default-variant)))
))
!
;; state-of-merge may have changed via ediff-set-state-of-merge, so
;; check it once again
(setq state-of-merge (ediff-get-state-of-merge n))
!
(or do-not-copy
(if (string= state-of-merge "combined")
;; use n+1 because ediff-combine-diffs works via user numbering
;; of diffs, which is 1+ to what ediff uses internally
(ediff-combine-diffs (1+ n) 'batch)
! (ediff-copy-diff
n (if (string-match "-A" state-of-merge) 'A 'B) 'C 'batch)))
(setq n (1+ n)))
(message "Merging buffers A & B into C ... Done")
))
!
(defun ediff-re-merge ()
"Remerge unmodified diff regions using a new default. Start with the
current region."
***************
*** 266,279 ****
default-variant-alist)))
(setq ediff-default-variant
(intern
! (completing-read
(format "Current merge default is `%S'. New default: "
ediff-default-variant)
actual-alist nil 'must-match)))
(ediff-do-merge ediff-current-difference 'remerge)
(ediff-recenter)
))
!
(defun ediff-shrink-window-C (arg)
"Shrink window C to just one line.
With a prefix argument, returns window C to its normal size.
--- 266,279 ----
default-variant-alist)))
(setq ediff-default-variant
(intern
! (completing-read
(format "Current merge default is `%S'. New default: "
ediff-default-variant)
actual-alist nil 'must-match)))
(ediff-do-merge ediff-current-difference 'remerge)
(ediff-recenter)
))
!
(defun ediff-shrink-window-C (arg)
"Shrink window C to just one line.
With a prefix argument, returns window C to its normal size.
***************
*** 307,322 ****
`ediff-combination-pattern'."
(interactive "P")
(setq n (if (numberp n) (1- n) ediff-current-difference))
!
(let (reg-combined)
;;(setq regA (ediff-get-region-contents n 'A ediff-control-buffer)
;; regB (ediff-get-region-contents n 'B ediff-control-buffer))
;;(setq reg-combined (ediff-make-combined-diff regA regB))
(setq reg-combined (ediff-get-combined-region n))
!
(ediff-copy-diff n nil 'C batch-invocation reg-combined))
(or batch-invocation (ediff-jump-to-difference (1+ n))))
!
;; Checks if the region in buff C looks like a combination of the regions
;; in buffers A and B. Return a list (reg-a-beg reg-a-end reg-b-beg
reg-b-end)
--- 307,322 ----
`ediff-combination-pattern'."
(interactive "P")
(setq n (if (numberp n) (1- n) ediff-current-difference))
!
(let (reg-combined)
;;(setq regA (ediff-get-region-contents n 'A ediff-control-buffer)
;; regB (ediff-get-region-contents n 'B ediff-control-buffer))
;;(setq reg-combined (ediff-make-combined-diff regA regB))
(setq reg-combined (ediff-get-combined-region n))
!
(ediff-copy-diff n nil 'C batch-invocation reg-combined))
(or batch-invocation (ediff-jump-to-difference (1+ n))))
!
;; Checks if the region in buff C looks like a combination of the regions
;; in buffers A and B. Return a list (reg-a-beg reg-a-end reg-b-beg
reg-b-end)
***************
*** 331,337 ****
(mrgreg-end (ediff-get-diff-posn 'C 'end region-num))
(pattern-list ediff-combination-pattern)
delim reg-beg reg-end delim-regs-list)
!
(if combined
(ediff-with-current-buffer ediff-buffer-C
(while pattern-list
--- 331,337 ----
(mrgreg-end (ediff-get-diff-posn 'C 'end region-num))
(pattern-list ediff-combination-pattern)
delim reg-beg reg-end delim-regs-list)
!
(if combined
(ediff-with-current-buffer ediff-buffer-C
(while pattern-list
***************
*** 364,370 ****
(reg-C (ediff-get-region-contents diff-num 'C ediff-control-buffer)))
(setq state-of-merge (ediff-get-state-of-merge diff-num))
!
;; if region was edited since it was first set by default
(or (and (string= state-of-merge "default-A")
(not (string= reg-A reg-C)))
--- 364,370 ----
(reg-C (ediff-get-region-contents diff-num 'C ediff-control-buffer)))
(setq state-of-merge (ediff-get-state-of-merge diff-num))
!
;; if region was edited since it was first set by default
(or (and (string= state-of-merge "default-A")
(not (string= reg-A reg-C)))
***************
*** 380,386 ****
(string= state-of-merge "prefer-B")
(not (string= reg-B reg-C)))
)))
!
;;; Local Variables:
;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
--- 380,386 ----
(string= state-of-merge "prefer-B")
(not (string= reg-B reg-C)))
)))
!
;;; Local Variables:
;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/ediff-merg.el,
Juanma Barranquero <=