Subject: 24.0.92; vc-register; use deduced backend for checking registered
From: OKAZAKI Tetsurou <[email-masked]>
To: [email-masked]
Date: Tue, 24 Jan 2012 11:35:52 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

Current implementation of `vc-register' fails to register an unregistered item
which is already registered to another backend.

Using `vc-call-backend' with deduced `backend' instead of `vc-backend' and
`vc-registered' resolves this issue.

=== modified file 'lisp/vc/vc.el'
*** lisp/vc/vc.el	2012-01-19 07:21:25 +0000
--- lisp/vc/vc.el	2012-01-20 19:55:38 +0000
*************** first backend that could register the fi
*** 1277,1287 ****
      (dolist (fname files)
        (let ((bname (get-file-buffer fname)))
  	(unless fname (setq fname buffer-file-name))
! 	(when (vc-backend fname)
! 	  (if (vc-registered fname)
! 	      (error "This file is already registered")
! 	    (unless (y-or-n-p "Previous master file has vanished.  Make a new one? ")
! 	      (error "Aborted"))))
  	;; Watch out for new buffers of size 0: the corresponding file
  	;; does not exist yet, even though buffer-modified-p is nil.
  	(when bname
--- 1277,1284 ----
      (dolist (fname files)
        (let ((bname (get-file-buffer fname)))
  	(unless fname (setq fname buffer-file-name))
! 	(when (vc-call-backend backend 'registered fname)
! 	  (error "This file is already registered"))
  	;; Watch out for new buffers of size 0: the corresponding file
  	;; does not exist yet, even though buffer-modified-p is nil.
  	(when bname