1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-02 08:22:22 +00:00

Check labels in smerge-mode

* 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.
This commit is contained in:
Ivan Shmakov 2019-06-25 23:22:19 +02:00 committed by Lars Ingebrigtsen
parent 4217398de3
commit 3942821425
2 changed files with 17 additions and 8 deletions

View 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

View 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)