]> git.eshelyaron.com Git - emacs.git/commitdiff
make smerge-vc-next-conflict wrap around
authorKonstantin Kharlamov <Hi-Angel@yandex.ru>
Tue, 16 Feb 2021 11:49:30 +0000 (12:49 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 16 Feb 2021 11:49:53 +0000 (12:49 +0100)
* lisp/vc/smerge-mode.el:
(smerge-vc-next-conflict): While searching for conflict markers,
wrap search around if current file is the last one with conflicts
(bug#46538).

lisp/vc/smerge-mode.el

index c66a4fb2d6a539b2bec3bb342cb44f4d2a3de771..782c799273ce80a5d18d30821bb16e0377917f06 100644 (file)
@@ -1468,12 +1468,12 @@ found, uses VC to try and find the next file with conflict."
          (if (and (buffer-modified-p) buffer-file-name)
              (save-buffer))
          (vc-find-conflicted-file)
-         (if (eq buffer (current-buffer))
-             ;; Do nothing: presumably `vc-find-conflicted-file' already
-             ;; emitted a message explaining there aren't any more conflicts.
-             nil
-           (goto-char (point-min))
-           (smerge-next)))))))
+         (when (eq buffer (current-buffer))
+           ;; Try to find a conflict marker in current file above the point.
+           (let ((prev-pos (point)))
+             (goto-char (point-min))
+             (unless (ignore-errors (not (smerge-next)))
+               (goto-char prev-pos)))))))))
 
 (provide 'smerge-mode)