# HG changeset patch # User Andr Spiegel # Date 1081695801 0 # Node ID 507f2c9467257d0ed3571705eb44ba40b9e97fec # Parent 6accc4c8d7cbe10beb091c44934cf38f8d775eee (vc-arg-list): Function removed. (vc-default-workfile-unchanged-p): Use condition-case to check for backward compatibility. diff -r 6accc4c8d7cb -r 507f2c946725 lisp/vc-hooks.el --- a/lisp/vc-hooks.el Sun Apr 11 09:58:19 2004 +0000 +++ b/lisp/vc-hooks.el Sun Apr 11 15:03:21 2004 +0000 @@ -6,7 +6,7 @@ ;; Author: FSF (see vc.el for full credits) ;; Maintainer: Andre Spiegel -;; $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 @@ (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 @@ (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.