(describe-function-1): Don't print extra newline
[bpt/emacs.git] / lisp / vc-sccs.el
index f8a98f5..b8957b9 100644 (file)
@@ -258,7 +258,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile."
 If FILE is a directory, all version-controlled files beneath are checked out.
 EDITABLE non-nil means that the file should be writable and
 locked.  REV is the revision to check out."
-  (if (file-directory-p file) 
+  (if (file-directory-p file)
       (mapc 'vc-sccs-checkout (vc-expand-dirs (list file)))
     (let ((file-buffer (get-file-buffer file))
          switches)
@@ -293,7 +293,7 @@ are expanded to all version-controlled subfiles."
       (error "SCCS backend doesn't support directory-level rollback."))
   (dolist (file files)
          (let ((discard (vc-working-revision file)))
-           (if (null (yes-or-no-p (format "Remove version %s from %s history? " 
+           (if (null (yes-or-no-p (format "Remove version %s from %s history? "
                                           discard file)))
                (error "Aborted"))
            (message "Removing revision %s from %s..." discard file)
@@ -304,7 +304,7 @@ are expanded to all version-controlled subfiles."
 (defun vc-sccs-revert (file &optional contents-done)
   "Revert FILE to the version it was based on. If FILE is a directory,
 revert all subfiles."
-  (if (file-directory-p file) 
+  (if (file-directory-p file)
       (mapc 'vc-sccs-revert (vc-expand-dirs (list file)))
     (vc-sccs-do-command nil 0 "unget" (vc-name file))
     (vc-sccs-do-command nil 0 "get" (vc-name file))
@@ -315,7 +315,7 @@ revert all subfiles."
 
 (defun vc-sccs-steal-lock (file &optional rev)
   "Steal the lock on the current workfile for FILE and revision REV."
-  (if (file-directory-p file) 
+  (if (file-directory-p file)
       (mapc 'vc-sccs-steal-lock (vc-expand-dirs (list file)))
     (vc-sccs-do-command nil 0 "unget"
                        (vc-name file) "-n" (if rev (concat "-r" rev)))
@@ -325,7 +325,7 @@ revert all subfiles."
 (defun vc-sccs-modify-change-comment (files rev comment)
   "Modify (actually, append to) the change comments for FILES on a specified REV."
   (dolist (file (vc-expand-dirs files))
-    (vc-sccs-do-command nil 0 "cdc" (vc-name file) 
+    (vc-sccs-do-command nil 0 "cdc" (vc-name file)
                         (concat "-y" comment) (concat "-r" rev))))
 
 \f
@@ -352,12 +352,20 @@ revert all subfiles."
 
 \f
 ;;;
-;;; Snapshot system
+;;; Tag system.  SCCS doesn't have tags, so we simulate them by maintaining
+;;; our own set of name-to-revision mappings.
 ;;;
 
-(defun vc-sccs-assign-name (file name)
-  "Assign to FILE's latest revision a given NAME."
-  (vc-sccs-add-triple name file (vc-working-revision file)))
+(defun vc-sccs-create-tag (backend dir name branchp)
+  (when branchp
+    (error "SCCS backend %s does not support module branches" backend))
+  (let ((result (vc-tag-precondition dir)))
+    (if (stringp result)
+       (error "File %s is not up-to-date" result)
+      (vc-file-tree-walk
+       dir
+       (lambda (f)
+        (vc-sccs-add-triple name f (vc-working-revision f)))))))
 
 \f
 ;;;
@@ -373,7 +381,7 @@ revert all subfiles."
 (defun vc-sccs-rename-file (old new)
   ;; Move the master file (using vc-rcs-master-templates).
   (vc-rename-master (vc-name old) new vc-sccs-master-templates)
-  ;; Update the snapshot file.
+  ;; Update the tag file.
   (with-current-buffer
       (find-file-noselect
        (expand-file-name vc-sccs-name-assoc-file
@@ -390,9 +398,6 @@ revert all subfiles."
 ;;; Internal functions
 ;;;
 
-(defun vc-sccs-root (dir)
-  (vc-find-root dir "SCCS" t))
-
 ;; This function is wrapped with `progn' so that the autoload cookie
 ;; copies the whole function itself into loaddefs.el rather than just placing
 ;; a (autoload 'vc-sccs-search-project-dir "vc-sccs") which would not
@@ -446,7 +451,7 @@ The result is a list of the form ((REVISION . USER) (REVISION . USER) ...)."
     (kill-buffer (current-buffer))))
 
 (defun vc-sccs-lookup-triple (file name)
-  "Return the numeric revision corresponding to a named snapshot of FILE.
+  "Return the numeric revision corresponding to a named tag of FILE.
 If NAME is nil or a revision number string it's just passed through."
   (if (or (null name)
          (let ((firstchar (aref name 0)))