]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/vc-sccs.el (vc-sccs-do-command): New fun. Use the "sccs" command.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 19 Apr 2008 21:53:55 +0000 (21:53 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 19 Apr 2008 21:53:55 +0000 (21:53 +0000)
(vc-sccs-register, vc-sccs-checkin, vc-sccs-find-revision)
(vc-sccs-checkout, vc-sccs-rollback, vc-sccs-revert)
(vc-sccs-steal-lock, vc-sccs-modify-change-comment)
(vc-sccs-print-log): Use it.
* lisp/vc-hooks.el (vc-path): Remove SCCS-specific hack.
* lib-src/vcdiff: Use "sccs get" rather than "get"; leave PATH alone.

lib-src/ChangeLog
lib-src/vcdiff
lisp/ChangeLog
lisp/vc-hooks.el
lisp/vc-sccs.el

index 86448ddbde6fed0763725648081be87b33b4c98b..ab8d490faefac8d84a2d210066282fac2c37f518 100644 (file)
@@ -1,3 +1,7 @@
+2008-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * vcdiff: Use "sccs get" rather than "get"; leave PATH alone.
+
 2008-04-18  Steve Grubb  <sgrubb@redhat.com>  (tiny change)
 
        * vcdiff: Use mktemp (CVE-2008-1694).
index cb977709db013f130a96edf7ca5cd80facc558fd..1fd4f3078fa0cfb8433054905b14e52bb94e3e13 100755 (executable)
@@ -27,7 +27,8 @@
 DIFF="diff"
 usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
 
-PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
+# Now that we use `sccs get' rather than just `get', we don't need this.
+# PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
 
 echo="echo"
 sid1= sid2=
@@ -85,14 +86,14 @@ do
        s.* | */s.*)
                if
                        rev1=`mktemp /tmp/geta.XXXXXXXX`
-                       get -s -p -k $sid1 "$f" > $rev1 &&
+                       sccs get -s -p -k $sid1 "$f" > $rev1 &&
                        case $sid2 in
                        '')
                                workfile=`expr " /$f" : '.*/s.\(.*\)'`
                                ;;
                        *)
                                rev2=`mktemp /tmp/getb.XXXXXXXX`
-                               get -s -p -k $sid2 "$f" > $rev2
+                               sccs get -s -p -k $sid2 "$f" > $rev2
                                workfile=$rev2
                        esac
                then
index 93779a34e3a87aecefa0528ab418732f340157ac..a28b779c631d890de36a2ef094a2a1111289ef5b 100644 (file)
@@ -1,5 +1,13 @@
 2008-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * vc-sccs.el (vc-sccs-do-command): New fun.  Use the "sccs" command.
+       (vc-sccs-register, vc-sccs-checkin, vc-sccs-find-revision)
+       (vc-sccs-checkout, vc-sccs-rollback, vc-sccs-revert)
+       (vc-sccs-steal-lock, vc-sccs-modify-change-comment)
+       (vc-sccs-print-log): Use it.
+
+       * vc-hooks.el (vc-path): Remove SCCS-specific hack.
+
        * emacs-lisp/lisp-mode.el (lisp-mode-auto-fill): Make it an alias.
        * progmodes/scheme.el (scheme-mode-variables): Don't use it.
 
index a812443f00442580ff3622eee740f7f0e3361312..e6956c80c75f76fbf060c9d85c0c1aa76c340899 100644 (file)
@@ -84,10 +84,7 @@ An empty list disables VC altogether."
   :type '(repeat string)
   :group 'vc)
 
-(defcustom vc-path
-  (if (file-directory-p "/usr/sccs")
-      '("/usr/sccs")
-    nil)
+(defcustom vc-path nil
   "List of extra directories to search for version control commands."
   :type '(repeat directory)
   :group 'vc)
index d2288d0da6dfa19d5ff8e9e647067d77d6c5f160..3bcc10416b8352a22be701e9962f32e317fc7c3b 100644 (file)
 ;;; Customization options
 ;;;
 
+;; ;; Maybe a better solution is to not use "get" but "sccs get".
+;; (defcustom vc-sccs-path
+;;   (let ((path ()))
+;;     (dolist (dir '("/usr/sccs" "/usr/lib/sccs" "/usr/libexec/sccs"))
+;;       (if (file-directory-p dir)
+;;           (push dir path)))
+;;     path)
+;;   "List of extra directories to search for SCCS commands."
+;;   :type '(repeat directory)
+;;   :group 'vc)
+
 (defcustom vc-sccs-register-switches nil
   "*Extra switches for registering a file in SCCS.
 A string or list of strings passed to the checkin program by
@@ -90,17 +101,16 @@ For a description of possible values, see `vc-check-master-templates'."
 \f
 ;;; Properties of the backend
 
-(defun vc-sccs-revision-granularity ()
-     'file)
+(defun vc-sccs-revision-granularity () 'file)
 
 ;;;
 ;;; State-querying functions
 ;;;
 
-;;; The autoload cookie below places vc-sccs-registered directly into
-;;; loaddefs.el, so that vc-sccs.el does not need to be loaded for
-;;; every file that is visited.  The definition is repeated below
-;;; so that Help and etags can find it.
+;; The autoload cookie below places vc-sccs-registered directly into
+;; loaddefs.el, so that vc-sccs.el does not need to be loaded for
+;; every file that is visited.  The definition is repeated below
+;; so that Help and etags can find it.
 
 ;;;###autoload (defun vc-sccs-registered(f) (vc-default-registered 'SCCS f))
 (defun vc-sccs-registered (f) (vc-default-registered 'SCCS f))
@@ -181,6 +191,11 @@ For a description of possible values, see `vc-check-master-templates'."
 ;;; State-changing functions
 ;;;
 
+(defun vc-sccs-do-command (buffer okstatus command file-or-list &rest flags)
+  ;; (let ((load-path (append vc-sccs-path load-path)))
+  ;;   (apply 'vc-do-command buffer okstatus command file-or-list flags))
+  (apply 'vc-do-command buffer okstatus "sccs" file-or-list command flags))
+
 (defun vc-sccs-create-repo ()
   "Create a new SCCS repository."
   ;; SCCS is totally file-oriented, so all we have to do is make the directory
@@ -203,7 +218,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile."
       (let ((vc-name
             (or project-file
                 (format (car vc-sccs-master-templates) dirname basename))))
-       (apply 'vc-do-command nil 0 "admin" vc-name
+       (apply 'vc-sccs-do-command nil 0 "admin" vc-name
               (and rev (not (string= rev "")) (concat "-r" rev))
               "-fb"
               (concat "-i" (file-relative-name file))
@@ -211,7 +226,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile."
               (vc-switches 'SCCS 'register)))
       (delete-file file)
       (if vc-keep-workfiles
-         (vc-do-command nil 0 "get" (vc-name file))))))
+         (vc-sccs-do-command nil 0 "get" (vc-name file))))))
 
 (defun vc-sccs-responsible-p (file)
   "Return non-nil if SCCS thinks it would be responsible for registering FILE."
@@ -223,15 +238,15 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile."
 (defun vc-sccs-checkin (files rev comment)
   "SCCS-specific version of `vc-backend-checkin'."
   (dolist (file files)
-    (apply 'vc-do-command nil 0 "delta" (vc-name file)
+    (apply 'vc-sccs-do-command nil 0 "delta" (vc-name file)
           (if rev (concat "-r" rev))
           (concat "-y" comment)
           (vc-switches 'SCCS 'checkin))
     (if vc-keep-workfiles
-       (vc-do-command nil 0 "get" (vc-name file)))))
+       (vc-sccs-do-command nil 0 "get" (vc-name file)))))
 
 (defun vc-sccs-find-revision (file rev buffer)
-  (apply 'vc-do-command
+  (apply 'vc-sccs-do-command
         buffer 0 "get" (vc-name file)
         "-s" ;; suppress diagnostic output
         "-p"
@@ -263,7 +278,7 @@ locked.  REV is the revision to check out."
          (and rev (or (string= rev "")
                        (not (stringp rev)))
                (setq rev nil))
-         (apply 'vc-do-command nil 0 "get" (vc-name file)
+         (apply 'vc-sccs-do-command nil 0 "get" (vc-name file)
                 (if editable "-e")
                 (and rev (concat "-r" (vc-sccs-lookup-triple file rev)))
                 switches))))
@@ -279,13 +294,14 @@ locked.  REV is the revision to check out."
                                           discard file)))
                (error "Aborted"))
            (message "Removing revision %s from %s..." discard file)
-           (vc-do-command nil 0 "rmdel" (vc-name file) (concat "-r" discard))
-           (vc-do-command nil 0 "get" (vc-name file) nil))))
+           (vc-sccs-do-command nil 0 "rmdel"
+                                (vc-name file) (concat "-r" discard))
+           (vc-sccs-do-command nil 0 "get" (vc-name file) nil))))
 
 (defun vc-sccs-revert (file &optional contents-done)
   "Revert FILE to the version it was based on."
-  (vc-do-command nil 0 "unget" (vc-name file))
-  (vc-do-command nil 0 "get" (vc-name file))
+  (vc-sccs-do-command nil 0 "unget" (vc-name file))
+  (vc-sccs-do-command nil 0 "get" (vc-name file))
   ;; Checking out explicit revisions is not supported under SCCS, yet.
   ;; We always "revert" to the latest revision; therefore
   ;; vc-working-revision is cleared here so that it gets recomputed.
@@ -293,14 +309,16 @@ locked.  REV is the revision to check out."
 
 (defun vc-sccs-steal-lock (file &optional rev)
   "Steal the lock on the current workfile for FILE and revision REV."
-  (vc-do-command nil 0 "unget" (vc-name file) "-n" (if rev (concat "-r" rev)))
-  (vc-do-command nil 0 "get" (vc-name file) "-g" (if rev (concat "-r" rev))))
+  (vc-sccs-do-command nil 0 "unget"
+                      (vc-name file) "-n" (if rev (concat "-r" rev)))
+  (vc-sccs-do-command nil 0 "get"
+                      (vc-name file) "-g" (if rev (concat "-r" rev))))
 
 (defun vc-sccs-modify-change-comment (files rev comment)
   "Modify (actually, append to) the change comments for FILES on a specified REV."
   (dolist (file files)
-    (vc-do-command nil 0 "cdc" (vc-name file) 
-                  (concat "-y" comment) (concat "-r" rev))))
+    (vc-sccs-do-command nil 0 "cdc" (vc-name file) 
+                        (concat "-y" comment) (concat "-r" rev))))
 
 \f
 ;;;
@@ -309,7 +327,7 @@ locked.  REV is the revision to check out."
 
 (defun vc-sccs-print-log (files &optional buffer)
   "Get change log associated with FILES."
-  (vc-do-command buffer 0 "prs" (mapcar 'vc-name files)))
+  (vc-sccs-do-command buffer 0 "prs" (mapcar 'vc-name files)))
 
 (defun vc-sccs-wash-log ()
   "Remove all non-comment information from log output."