]> git.eshelyaron.com Git - emacs.git/commitdiff
Check labels in smerge-mode
authorIvan Shmakov <ivan@siamics.net>
Tue, 25 Jun 2019 21:22:19 +0000 (23:22 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 25 Jun 2019 21:23:01 +0000 (23:23 +0200)
* lisp/vc/diff.el (diff-check-labels): Separated out into its own
function (bug#18850)...
(diff-no-select): ... from here.

* lisp/vc/smerge-mode.el (smerge-diff): Use diff-check-labels.

lisp/vc/diff.el
lisp/vc/smerge-mode.el

index 523be87bc497c11225a08735fdfc6cd19d7b6aa8..5fa771f5f1e16843f819c34c889a65617b1e7bf3 100644 (file)
@@ -123,6 +123,15 @@ Possible values are:
 
 (defvar diff-default-directory)
 
+(defun diff-check-labels (&optional force)
+  (if (not (or force (eq 'check diff-use-labels)))
+      diff-use-labels
+    (setq diff-use-labels
+         (with-temp-buffer
+           (when (ignore-errors
+                   (call-process diff-command nil t nil "--help"))
+             (if (search-backward "--label" nil t) t))))))
+
 (defun diff-no-select (old new &optional switches no-async buf)
   ;; Noninteractive helper for creating and reverting diff buffers
   (unless (bufferp new) (setq new (expand-file-name new)))
@@ -130,11 +139,7 @@ Possible values are:
   (or switches (setq switches diff-switches)) ; If not specified, use default.
   (unless (listp switches) (setq switches (list switches)))
   (or buf (setq buf (get-buffer-create "*Diff*")))
-  (when (eq 'check diff-use-labels)
-    (setq diff-use-labels
-         (with-temp-buffer
-           (when (ignore-errors (call-process diff-command nil t nil "--help"))
-             (if (search-backward "--label" nil t) t)))))
+  (diff-check-labels)
   (let* ((old-alt (diff-file-local-copy old))
         (new-alt (diff-file-local-copy new))
         (command
index 6b1df6603dfed9df693270a54ba1e67d9c3e368e..f032b0841678415b71d2e92008986dfaefb5716e 100644 (file)
@@ -44,6 +44,7 @@
 ;;; Code:
 
 (eval-when-compile (require 'cl-lib))
+(require 'diff)                                ;For diff-check-labels.
 (require 'diff-mode)                    ;For diff-refine.
 (require 'newcomment)
 
@@ -1243,9 +1244,12 @@ spacing of the \"Lower\" chunk."
            (let ((status
                   (apply 'call-process diff-command nil t nil
                          (append smerge-diff-switches
-                                 (list "-L" (concat name1 "/" file)
-                                       "-L" (concat name2 "/" file)
-                                       file1 file2)))))
+                                 (and (diff-check-labels)
+                                      (list "--label"
+                                            (concat name1 "/" file)
+                                            "--label"
+                                            (concat name2 "/" file)))
+                                 (list file1 file2)))))
              (if (eq status 0) (insert "No differences found.\n"))))
          (goto-char (point-min))
          (diff-mode)