summaryrefslogtreecommitdiff
path: root/lisp/vc-hooks.el
diff options
context:
space:
mode:
authorAndré Spiegel <spiegel@gnu.org>2004-04-11 15:03:21 +0000
committerAndré Spiegel <spiegel@gnu.org>2004-04-11 15:03:21 +0000
commitf88363810a6ad1f22f275bcacda054d1c06294dc (patch)
tree3b1dd450d1e16a7f48ec51115abd402c2048c448 /lisp/vc-hooks.el
parentee213e98dfa7618d9ef5a4cce9350976de9213f7 (diff)
downloademacs-f88363810a6ad1f22f275bcacda054d1c06294dc.tar.gz
(vc-arg-list): Function removed.
(vc-default-workfile-unchanged-p): Use condition-case to check for backward compatibility.
Diffstat (limited to 'lisp/vc-hooks.el')
-rw-r--r--lisp/vc-hooks.el27
1 files changed, 13 insertions, 14 deletions
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el
index f08c5fc1dfa..80b9766caa0 100644
--- a/lisp/vc-hooks.el
+++ b/lisp/vc-hooks.el
@@ -6,7 +6,7 @@
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
-;; $Id: vc-hooks.el,v 1.164 2004/03/26 06:06:39 spiegel Exp $
+;; $Id: vc-hooks.el,v 1.165 2004/03/28 17:38:03 monnier Exp $
;; This file is part of GNU Emacs.
@@ -266,16 +266,6 @@ It is usually called via the `vc-call' macro."
(defmacro vc-call (fun file &rest args)
;; BEWARE!! `file' is evaluated twice!!
`(vc-call-backend (vc-backend ,file) ',fun ,file ,@args))
-
-(defun vc-arg-list (backend fun)
- "Return the argument list of BACKEND function FUN."
- (let ((f (symbol-function (vc-find-backend-function backend fun))))
- (if (listp f)
- ;; loaded from .el file
- (cadr f)
- ;; loaded from .elc file
- (aref f 0))))
-
(defsubst vc-parse-buffer (pattern i)
"Find PATTERN in the current buffer and return its Ith submatch."
@@ -472,12 +462,21 @@ and does not employ any heuristic at all."
(defun vc-default-workfile-unchanged-p (backend file)
"Check if FILE is unchanged by diffing against the master version.
Return non-nil if FILE is unchanged."
- (zerop (if (> (length (vc-arg-list backend 'diff)) 4)
+ (zerop (condition-case err
;; If the implementation supports it, let the output
;; go to *vc*, not *vc-diff*, since this is an internal call.
(vc-call diff file nil nil "*vc*")
- ;; for backward compatibility
- (vc-call diff file))))
+ (wrong-number-of-arguments
+ ;; If this error came from the above call to vc-BACKEND-diff,
+ ;; try again without the optional buffer argument (for
+ ;; backward compatibility). Otherwise, resignal.
+ (if (or (not (eq (cadr err)
+ (indirect-function
+ (vc-find-backend-function (vc-backend file)
+ 'diff))))
+ (not (eq (caddr err) 5)))
+ (signal wrong-number-of-arguments err)
+ (vc-call diff file))))))
(defun vc-workfile-version (file)
"Return the version level of the current workfile FILE.