Mercurial > emacs
diff lisp/smerge-mode.el @ 85465:b9fe84d8ca5a
(smerge-auto-refine): New var.
(smerge-next, smerge-prev): Use it.
(smerge-batch-resolve): Ad-hoc trick for Arch's .rej files.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 20 Oct 2007 01:52:22 +0000 |
parents | 13cb05eb9f29 |
children | 786d3a985758 4b09bb044f38 |
line wrap: on
line diff
--- a/lisp/smerge-mode.el Sat Oct 20 01:50:38 2007 +0000 +++ b/lisp/smerge-mode.el Sat Oct 20 01:52:22 2007 +0000 @@ -79,6 +79,10 @@ :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 @@ ;;;; ;; 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 @@ (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)