summaryrefslogtreecommitdiff
path: root/lisp/vc/smerge-mode.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2020-03-18 10:20:13 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2020-03-18 10:20:13 -0400
commit299744e083342e43deece03bc0691feb190ccc54 (patch)
tree304ace8a64e8587c1f5eb4838e3ce9c320d928b2 /lisp/vc/smerge-mode.el
parentf189e5dc1020db9b41e77488d6290d6e7f032b13 (diff)
downloademacs-299744e083342e43deece03bc0691feb190ccc54.tar.gz
* lisp/vc/smerge-mode.el (smerge-start-session): Don't re-enable
Don't do anything if smerge-mode is already enabled.
Diffstat (limited to 'lisp/vc/smerge-mode.el')
-rw-r--r--lisp/vc/smerge-mode.el15
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/vc/smerge-mode.el b/lisp/vc/smerge-mode.el
index 85868b91ecc..d0a83fd7c49 100644
--- a/lisp/vc/smerge-mode.el
+++ b/lisp/vc/smerge-mode.el
@@ -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."