[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18824: split diff-check-labels off diff-no-select
From: |
Ivan Shmakov |
Subject: |
bug#18824: split diff-check-labels off diff-no-select |
Date: |
Sat, 25 Oct 2014 09:17:49 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
Package: emacs
Severity: wishlist
Tags: patch
Please provide a separate diff-check-labels function to allow
for the code calling diff.el facilities to supply its own
--label= arguments to diff in place of diff.el-generated ones.
Possible patch, as well as the example usage, are MIMEd.
--
FSF associate member #7257 http://boycottsystemd.org/ … 3013 B6A0 230E 334A
--- a/lisp/vc/diff.el
+++ b/lisp/vc/diff.el
@@ -121,6 +121,15 @@ Possible values are:
nil -- no, it does not
check -- try to probe whether it does")
+(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)))
@@ -128,11 +137,7 @@ diff-no-select (old new &optional switches no-async buf)
(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
(let ((old "old") (new "new")
(target (get-buffer-create "*My Diff*"))
(labels (and (diff-check-labels)
(mapcar 'shell-quote-argument
(list "--label"
"*old revision*"
"--label"
"*new revision*")))))
(if labels
(let ((diff-use-labels nil)
(sw (nconc labels
(if (listp diff-switches)
diff-switches
(list diff-switches)))))
(diff-no-select old new switches nil target))
(diff-no-select old new nil nil target)))
- bug#18824: split diff-check-labels off diff-no-select,
Ivan Shmakov <=
- bug#18824: split diff-check-labels off diff-no-select, Stefan Monnier, 2014/10/25
- bug#18850: smerge-mode: use diff-check-labels, Ivan Shmakov, 2014/10/27
- bug#18850: smerge-mode: use diff-check-labels, Ivan Shmakov, 2014/10/27
- bug#18850: smerge-mode: use diff-check-labels, Stefan Monnier, 2014/10/27
- bug#18850: smerge-mode: use diff-check-labels, Ivan Shmakov, 2014/10/27
- bug#18850: smerge-mode: use diff-check-labels, Stefan Monnier, 2014/10/27
- bug#18850: smerge-mode: use diff-check-labels, Ivan Shmakov, 2014/10/28
- bug#18850: smerge-mode: use diff-check-labels, Stefan Monnier, 2014/10/28