]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/vc/smerge-mode.el (smerge-start-session): Don't re-enable
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 18 Mar 2020 14:20:13 +0000 (10:20 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 18 Mar 2020 14:20:13 +0000 (10:20 -0400)
Don't do anything if smerge-mode is already enabled.

lisp/vc/smerge-mode.el

index 85868b91ecc6f5531b0c699d45beba4af30c3fc8..d0a83fd7c49e8ca63d23e4cb2b16bf9472d991b1 100644 (file)
@@ -1429,15 +1429,16 @@ with a \\[universal-argument] prefix, makes up a 3-way conflict."
     (smerge-remove-props (point-min) (point-max))))
 
 ;;;###autoload
-(defun smerge-start-session ()
+(defun smerge-start-session (&optional interactively)
   "Turn on `smerge-mode' and move point to first conflict marker.
 If no conflict maker is found, turn off `smerge-mode'."
-  (interactive)
-  (smerge-mode 1)
-  (condition-case nil
-      (unless (looking-at smerge-begin-re)
-        (smerge-next))
-    (error (smerge-auto-leave))))
+  (interactive "p")
+  (when (or (null smerge-mode) interactively)
+    (smerge-mode 1)
+    (condition-case nil
+        (unless (looking-at smerge-begin-re)
+          (smerge-next))
+      (error (smerge-auto-leave)))))
 
 (defcustom smerge-change-buffer-confirm t
   "If non-nil, request confirmation before moving to another buffer."