changeset 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 b8519672d451
children c610862b85d0
files lisp/ChangeLog lisp/smerge-mode.el
diffstat 2 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Oct 20 01:50:38 2007 +0000
+++ b/lisp/ChangeLog	Sat Oct 20 01:52:22 2007 +0000
@@ -1,5 +1,9 @@
 2007-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* smerge-mode.el (smerge-auto-refine): New var.
+	(smerge-next, smerge-prev): Use it.
+	(smerge-batch-resolve): Ad-hoc trick for Arch's .rej files.
+
 	* emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
 	Add `body' arg.  Cleanup the check-narrow-maybe/re-narrow-maybe mess.
 
--- 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)