diff options
| author | Eric S. Raymond | 2014-11-22 05:21:09 -0500 |
|---|---|---|
| committer | Eric S. Raymond | 2014-11-22 05:21:09 -0500 |
| commit | 4fe5b7c0bbb77286ce2866c9237796d0587ce2a3 (patch) | |
| tree | 9147a005c30d138e12885800c78d3f4a5a7b7bbb | |
| parent | 354a07b57092b9231734a9d983d074bd4d542f62 (diff) | |
| download | emacs-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.el | 38 | ||||
| -rw-r--r-- | lisp/vc/vc-rcs.el | 4 | ||||
| -rw-r--r-- | lisp/vc/vc-sccs.el | 4 | ||||
| -rw-r--r-- | lisp/vc/vc-src.el | 4 |
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 | |||
| 643 | TEMPLATES is a list of strings or functions. If an element is a | ||
| 644 | string, it must be a control string as required by `format', with two | ||
| 645 | string placeholders, such as \"%sRCS/%s,v\". The directory part of | ||
| 646 | FILE is substituted for the first placeholder, the basename of FILE | ||
| 647 | for the second. If a file with the resulting name exists, it is taken | ||
| 648 | as the master of FILE, and returned. | ||
| 649 | |||
| 650 | If an element of TEMPLATES is a function, it is called with the | ||
| 651 | directory part and the basename of FILE as arguments. It should | ||
| 652 | return non-nil if it finds a master; that value is then returned by | ||
| 653 | this 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'." |