1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

(smerge-auto-refine): New var.

(smerge-next, smerge-prev): Use it.
(smerge-batch-resolve): Ad-hoc trick for Arch's .rej files.
This commit is contained in:
Stefan Monnier 2007-10-20 01:52:22 +00:00
parent 05849e2ab9
commit 2daf4bc667
2 changed files with 17 additions and 1 deletions

View file

@ -79,6 +79,10 @@ Used in `smerge-diff-base-mine' and related functions."
:group 'smerge
:type 'boolean)
(defcustom smerge-auto-refine t
"Automatically highlight changes in detail as the user visits conflicts."
:type 'boolean)
(defface smerge-mine
'((((min-colors 88) (background light))
(:foreground "blue1"))
@ -252,7 +256,9 @@ Can be nil if the style is undecided, or else:
;;;;
;; Define smerge-next and smerge-prev
(easy-mmode-define-navigation smerge smerge-begin-re "conflict")
(easy-mmode-define-navigation smerge smerge-begin-re "conflict" nil nil
(if smerge-auto-refine
(condition-case nil (smerge-refine) (error nil))))
(defconst smerge-match-names ["conflict" "mine" "base" "other"])
@ -433,6 +439,12 @@ some major modes. Uses `smerge-resolve-function' to do the actual work."
(error "`smerge-batch-resolve' is to be used only with -batch"))
(while command-line-args-left
(let ((file (pop command-line-args-left)))
(if (string-match "\\.rej\\'" file)
;; .rej files should never contain diff3 markers, on the other hand,
;; in Arch, .rej files are sometimes used to indicate that the
;; main file has diff3 markers. So you can pass **/*.rej and
;; it will DTRT.
(setq file (substring file 0 (match-beginning 0))))
(message "Resolving conflicts in %s..." file)
(when (file-readable-p file)
(with-current-buffer (find-file-noselect file)