;;; vc-sccs.el --- support for SCCS version-control
-;; Copyright (C) 1992,93,94,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2001, 2004 Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
-;; $Id: vc-sccs.el,v 1.21 2003/02/04 12:11:54 lektu Exp $
+;; $Id$
;; This file is part of GNU Emacs.
(if (file-ownership-preserved-p file)
'edited
(vc-user-login-name owner-uid))
- ;; Strange permissions.
- ;; Fall through to real state computation.
- (vc-sccs-state file)))
- (vc-sccs-state file))))
+ ;; Strange permissions.
+ ;; Fall through to real state computation.
+ (vc-sccs-state file))))
+ (vc-sccs-state file)))
(defun vc-sccs-workfile-version (file)
"SCCS-specific version of `vc-workfile-version'."
(with-temp-buffer
- (vc-insert-file (vc-name file) "^\001e")
+ ;; The workfile version is always the latest version number.
+ ;; To find this number, search the entire delta table,
+ ;; rather than just the first entry, because the
+ ;; first entry might be a deleted ("R") version.
+ (vc-insert-file (vc-name file) "^\001e\n\001[^s]")
(vc-parse-buffer "^\001d D \\([^ ]+\\)" 1)))
(defun vc-sccs-checkout-model (file)
'locking)
(defun vc-sccs-workfile-unchanged-p (file)
- "SCCS-specific implementation of vc-workfile-unchanged-p."
+ "SCCS-specific implementation of `vc-workfile-unchanged-p'."
(zerop (apply 'vc-do-command nil 1 "vcdiff" (vc-name file)
(list "--brief" "-q"
(concat "-r" (vc-workfile-version file))))))
;;; History functions
;;;
-(defun vc-sccs-print-log (file)
+(defun vc-sccs-print-log (file &optional buffer)
"Get change log associated with FILE."
- (vc-do-command nil 0 "prs" (vc-name file)))
+ (vc-do-command buffer 0 "prs" (vc-name file)))
(defun vc-sccs-logentry-check ()
"Check that the log entry in the current buffer is acceptable for SCCS."
(goto-char 512)
(error "Log must be less than 512 characters; point is now at pos 512")))
-(defun vc-sccs-diff (file &optional oldvers newvers)
+(defun vc-sccs-diff (file &optional oldvers newvers buffer)
"Get a difference report using SCCS between two versions of FILE."
(setq oldvers (vc-sccs-lookup-triple file oldvers))
(setq newvers (vc-sccs-lookup-triple file newvers))
- (apply 'vc-do-command "*vc-diff*" 1 "vcdiff" (vc-name file)
+ (apply 'vc-do-command (or buffer "*vc-diff*") 1 "vcdiff" (vc-name file)
(append (list "-q"
(and oldvers (concat "-r" oldvers))
(and newvers (concat "-r" newvers)))
(provide 'vc-sccs)
+;; arch-tag: d751dee3-d7b3-47e1-95e3-7ae98c052041
;;; vc-sccs.el ends here