aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond2014-11-22 05:21:09 -0500
committerEric S. Raymond2014-11-22 05:21:09 -0500
commit4fe5b7c0bbb77286ce2866c9237796d0587ce2a3 (patch)
tree9147a005c30d138e12885800c78d3f4a5a7b7bbb
parent354a07b57092b9231734a9d983d074bd4d542f62 (diff)
downloademacs-4fe5b7c0bbb77286ce2866c9237796d0587ce2a3.tar.gz
emacs-4fe5b7c0bbb77286ce2866c9237796d0587ce2a3.zip
More movement of master-related code to vc-filewise.el.
Goes with my 2014-11-22 lisp/ChangeLog entry.
-rw-r--r--lisp/vc/vc-hooks.el38
-rw-r--r--lisp/vc/vc-rcs.el4
-rw-r--r--lisp/vc/vc-sccs.el4
-rw-r--r--lisp/vc/vc-src.el4
4 files changed, 8 insertions, 42 deletions
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index 8ce7ec835cb..6f55a14b7ba 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -627,7 +627,8 @@ If FILE is not registered, this function always returns nil."
627 "`working-revision' not found: using the old `workfile-version' instead") 627 "`working-revision' not found: using the old `workfile-version' instead")
628 (vc-call-backend backend 'workfile-version file)) 628 (vc-call-backend backend 'workfile-version file))
629 629
630(defun vc-default-registered (backend file) 630;;;autoload
631(defun vc-master-registered (backend file)
631 "Check if FILE is registered in BACKEND using vc-BACKEND-master-templates." 632 "Check if FILE is registered in BACKEND using vc-BACKEND-master-templates."
632 (let ((sym (vc-make-backend-sym backend 'master-templates))) 633 (let ((sym (vc-make-backend-sym backend 'master-templates)))
633 (unless (get backend 'vc-templates-grabbed) 634 (unless (get backend 'vc-templates-grabbed)
@@ -637,41 +638,6 @@ If FILE is not registered, this function always returns nil."
637 (vc-file-setprop file 'vc-master-name result) 638 (vc-file-setprop file 'vc-master-name result)
638 nil)))) ; Not registered 639 nil)))) ; Not registered
639 640
640(defun vc-check-master-templates (file templates)
641 "Return non-nil if there is a master corresponding to FILE.
642
643TEMPLATES is a list of strings or functions. If an element is a
644string, it must be a control string as required by `format', with two
645string placeholders, such as \"%sRCS/%s,v\". The directory part of
646FILE is substituted for the first placeholder, the basename of FILE
647for the second. If a file with the resulting name exists, it is taken
648as the master of FILE, and returned.
649
650If an element of TEMPLATES is a function, it is called with the
651directory part and the basename of FILE as arguments. It should
652return non-nil if it finds a master; that value is then returned by
653this function."
654 (let ((dirname (or (file-name-directory file) ""))
655 (basename (file-name-nondirectory file)))
656 (catch 'found
657 (mapcar
658 (lambda (s)
659 (let ((trial (vc-possible-master s dirname basename)))
660 (when (and trial (file-exists-p trial)
661 ;; Make sure the file we found with name
662 ;; TRIAL is not the source file itself.
663 ;; That can happen with RCS-style names if
664 ;; the file name is truncated (e.g. to 14
665 ;; chars). See if either directory or
666 ;; attributes differ.
667 (or (not (string= dirname
668 (file-name-directory trial)))
669 (not (equal (file-attributes file)
670 (file-attributes trial)))))
671 (throw 'found trial))))
672 templates))))
673
674
675;; toggle-read-only is obsolete since 24.3, but since vc-t-r-o was made 641;; toggle-read-only is obsolete since 24.3, but since vc-t-r-o was made
676;; obsolete earlier, it is ok for the latter to be an alias to the former, 642;; obsolete earlier, it is ok for the latter to be an alias to the former,
677;; since the latter will be removed first. We can't just make it 643;; since the latter will be removed first. We can't just make it
diff --git a/lisp/vc/vc-rcs.el b/lisp/vc/vc-rcs.el
index 0b839a622e1..99019915490 100644
--- a/lisp/vc/vc-rcs.el
+++ b/lisp/vc/vc-rcs.el
@@ -90,7 +90,7 @@ to use --brief and sets this variable to remember whether it worked."
90 :group 'vc-rcs) 90 :group 'vc-rcs)
91 91
92;; This needs to be autoloaded because vc-rcs-registered uses it (via 92;; This needs to be autoloaded because vc-rcs-registered uses it (via
93;; vc-default-registered), and vc-hooks needs to be able to check 93;; vc-master-registered), and vc-hooks needs to be able to check
94;; for a registered backend without loading every backend. 94;; for a registered backend without loading every backend.
95;;;###autoload 95;;;###autoload
96(defcustom vc-rcs-master-templates 96(defcustom vc-rcs-master-templates
@@ -131,7 +131,7 @@ For a description of possible values, see `vc-check-master-templates'."
131;; every file that is visited. 131;; every file that is visited.
132;;;###autoload 132;;;###autoload
133(progn 133(progn
134(defun vc-rcs-registered (f) (vc-default-registered 'RCS f))) 134(defun vc-rcs-registered (f) (vc-master-registered 'RCS f)))
135 135
136(defun vc-rcs-state (file) 136(defun vc-rcs-state (file)
137 "Implementation of `vc-state' for RCS." 137 "Implementation of `vc-state' for RCS."
diff --git a/lisp/vc/vc-sccs.el b/lisp/vc/vc-sccs.el
index 780efc48e96..fc9c07277ae 100644
--- a/lisp/vc/vc-sccs.el
+++ b/lisp/vc/vc-sccs.el
@@ -75,7 +75,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
75 :group 'vc-sccs) 75 :group 'vc-sccs)
76 76
77;; This needs to be autoloaded because vc-sccs-registered uses it (via 77;; This needs to be autoloaded because vc-sccs-registered uses it (via
78;; vc-default-registered), and vc-hooks needs to be able to check 78;; vc-master-registered), and vc-hooks needs to be able to check
79;; for a registered backend without loading every backend. 79;; for a registered backend without loading every backend.
80;;;###autoload 80;;;###autoload
81(defcustom vc-sccs-master-templates 81(defcustom vc-sccs-master-templates
@@ -112,7 +112,7 @@ For a description of possible values, see `vc-check-master-templates'."
112;; every file that is visited. 112;; every file that is visited.
113;;;###autoload 113;;;###autoload
114(progn 114(progn
115(defun vc-sccs-registered (f) (vc-default-registered 'SCCS f))) 115(defun vc-sccs-registered (f) (vc-master-registered 'SCCS f)))
116 116
117(defun vc-sccs-state (file) 117(defun vc-sccs-state (file)
118 "SCCS-specific function to compute the version control state." 118 "SCCS-specific function to compute the version control state."
diff --git a/lisp/vc/vc-src.el b/lisp/vc/vc-src.el
index 520708c7eb0..56af2a5848c 100644
--- a/lisp/vc/vc-src.el
+++ b/lisp/vc/vc-src.el
@@ -123,7 +123,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
123 :group 'vc-src) 123 :group 'vc-src)
124 124
125;; This needs to be autoloaded because vc-src-registered uses it (via 125;; This needs to be autoloaded because vc-src-registered uses it (via
126;; vc-default-registered), and vc-hooks needs to be able to check 126;; vc-master-registered), and vc-hooks needs to be able to check
127;; for a registered backend without loading every backend. 127;; for a registered backend without loading every backend.
128;;;###autoload 128;;;###autoload
129(defcustom vc-src-master-templates 129(defcustom vc-src-master-templates
@@ -153,7 +153,7 @@ For a description of possible values, see `vc-check-master-templates'."
153;; every file that is visited. 153;; every file that is visited.
154;;;###autoload 154;;;###autoload
155(progn 155(progn
156(defun vc-src-registered (f) (vc-default-registered 'src f))) 156(defun vc-src-registered (f) (vc-master-registered 'src f)))
157 157
158(defun vc-src-state (file) 158(defun vc-src-state (file)
159 "SRC-specific version of `vc-state'." 159 "SRC-specific version of `vc-state'."