summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog4
-rw-r--r--lisp/smerge-mode.el14
2 files changed, 17 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a9cf6c9078b..1bfb518f40f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -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.
diff --git a/lisp/smerge-mode.el b/lisp/smerge-mode.el
index a33d21925b7..16693f8a5e3 100644
--- a/lisp/smerge-mode.el
+++ b/lisp/smerge-mode.el
@@ -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)