diff options
author | André Spiegel <spiegel@gnu.org> | 1995-11-02 09:36:01 +0000 |
---|---|---|
committer | André Spiegel <spiegel@gnu.org> | 1995-11-02 09:36:01 +0000 |
commit | 99e76ddadef34ac2a6821c530b0d2fd97f239664 (patch) | |
tree | 032d263bc20c7a2299f3c1ef77e580b1f7bbb1de | |
parent | 318880476ed9a7af897cfc3c0d26becc7a855756 (diff) | |
download | emacs-99e76ddadef34ac2a6821c530b0d2fd97f239664.tar.gz emacs-99e76ddadef34ac2a6821c530b0d2fd97f239664.tar.bz2 emacs-99e76ddadef34ac2a6821c530b0d2fd97f239664.zip |
(vc-backend-diff): Use new variable vc-rcsdiff-knows-brief.
-rw-r--r-- | lisp/vc.el | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/lisp/vc.el b/lisp/vc.el index 54d43ef08a5..d550dd4a277 100644 --- a/lisp/vc.el +++ b/lisp/vc.el @@ -2138,13 +2138,13 @@ From a program, any arguments are passed to the `rcs2log' script." (setq oldvers (vc-lookup-triple file oldvers)) (setq newvers (vc-lookup-triple file newvers))) ((eq backend 'RCS) - (if (not oldvers) (setq oldvers (vc-workfile-version file))))) + (if (not oldvers) (setq oldvers (vc-workfile-version file))) + ;; If we know that --brief is not supported, don't try it. + (setq cmp (and cmp (not (eq vc-rcsdiff-knows-brief 'no)))))) ;; SCCS and RCS shares a lot of code. (cond ((or (eq backend 'SCCS) (eq backend 'RCS)) - (let* ((command (if (eq backend 'SCCS) - "vcdiff" - "rcsdiff")) + (let* ((command (if (eq backend 'SCCS) "vcdiff" "rcsdiff")) (mode (if (eq backend 'RCS) 'WORKFILE 'MASTER)) (options (append (list (and cmp "--brief") "-q" @@ -2156,11 +2156,17 @@ From a program, any arguments are passed to the `rcs2log' script." (list diff-switches))))) (status (apply 'vc-do-command "*vc-diff*" 2 command file mode options))) - ;; Some RCS versions don't understand "--brief"; work around this. + ;; If --brief didn't work, do a double-take and remember it + ;; for the future. (if (eq status 2) - (apply 'vc-do-command "*vc-diff*" 1 command file 'WORKFILE - (if cmp (cdr options) options)) - status))) + (prog1 + (apply 'vc-do-command "*vc-diff*" 1 command file 'WORKFILE + (if cmp (cdr options) options)) + (if cmp (setq vc-rcsdiff-knows-brief 'no))) + ;; If --brief DID work, remember that, too. + (and cmp (not vc-rcsdiff-knows-brief) + (setq vc-rcsdiff-knows-brief 'yes)) + status))) ;; CVS is different. ((eq backend 'CVS) (if (string= (vc-workfile-version file) "0") ;CVS |