%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/vc/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/vc/vc-cvs.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(put 'CVS 'vc-functions nil)
(defalias 'vc-cvs-revision-granularity #[0 "\300\207" [file] 1])
#@58 CVS-specific version of `vc-checkout-model'.

(fn FILES)
(defalias 'vc-cvs-checkout-model #[257 "\300\301!\203\302\207\211:\203\211@\202\211\303!\304\305\"\2066\306\305\2034\307\310\3118\262\"\2034\302\2025\312#\207" [getenv "CVSREAD" announce file-attributes vc-file-getprop vc-checkout-model vc-file-setprop string-match "r-..-..-." 8 implicit] 11 (#$ . 502)])
(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317\304\320\306\301&	\210\310\321\312\313\322DD\323\316\324\304\325\306\301&	\210\310\326\312\313\327DD\330\316\331\304\325\306\301&	\210\310\332\312\313\333DD\334\316\335\304\336\306\301&	\210\310\337\312\313\340DD\341\304\305\316\342\306\301&	\210\310\343\312\313\344DD\345\316\346\304\325\306\301&	\210\310\347\312\313\350DD\351\316\352\304\353\306\301&	\210\310\354\312\313\355DD\356\316\357\304\320\306\301&	\210\310\360\312\313\361DD\362\316\363\304\320\306\301&	\207" [custom-declare-group vc-cvs nil "VC CVS backend." :version "24.1" :group vc custom-declare-variable vc-cvs-global-switches funcall function #[0 "\300\207" [nil] 1] "Global switches to pass to any CVS command." :type (choice (const :tag "None" nil) (string :tag "Argument String") (repeat :tag "Argument List" :value (#1="") string)) "22.1" vc-cvs-register-switches #[0 "\300\207" [nil] 1] "Switches for registering a file into CVS.\nA string or list of strings passed to the checkin program by\n\\[vc-register].  If nil, use the value of `vc-register-switches'.\nIf t, use no switches." (choice (const :tag "Unspecified" nil) (const :tag "None" t) (string :tag "Argument String") (repeat :tag "Argument List" :value (#1#) string)) "21.1" vc-cvs-diff-switches #[0 "\300\207" [nil] 1] "String or list of strings specifying switches for CVS diff under VC.\nIf nil, use the value of `vc-diff-switches'.  If t, use no switches." (choice (const :tag "Unspecified" nil) (const :tag "None" t) (string :tag "Argument String") (repeat :tag "Argument List" :value (#1#) string)) vc-cvs-annotate-switches #[0 "\300\207" [nil] 1] "String or list of strings specifying switches for cvs annotate under VC.\nIf nil, use the value of `vc-annotate-switches'.  If t, use no\nswitches." (choice (const :tag "Unspecified" nil) (const :tag "None" t) (string :tag "Argument String") (repeat :tag "Argument List" :value (#1#) string)) "25.1" vc-cvs-header #[0 "\300\207" [("$Id$")] 1] "Header keywords to be inserted by `vc-insert-headers'." (repeat string) vc-cvs-use-edit #[0 "\300\207" [t] 1] "Non-nil means to use `cvs edit' to \"check out\" a file.\nThis is only meaningful if you don't use the implicit checkout model\n(i.e. if you have $CVSREAD set)." boolean vc-cvs-stay-local #[0 "\300\207" [only-file] 1] "Non-nil means use local operations when possible for remote repositories.\nThis avoids slow queries over the network and instead uses heuristics\nand past information to determine the current status of a file.\n\nIf value is the symbol `only-file', `vc-dir' will connect to the\nserver, but heuristics will be used to determine the status for\nall other VC operations.\n\nThe value can also be a regular expression or list of regular\nexpressions to match against the host name of a repository; then\nvc-cvs only stays local for hosts that match it.  Alternatively,\nthe value can be a list of regular expressions where the first\nelement is the symbol `except'; then vc-cvs always stays local\nexcept for hosts matched by these regular expressions." (choice (const :tag "Always stay local" t) (const :tag "Only for file operations" only-file) (const :tag "Don't stay local" nil) (list :format "\nExamine hostname and %v" :tag "Examine hostname ..." (set :format "%v" :inline t (const :format "%t" :tag "don't" except)) (regexp :format " stay local,\n%t: %v" :tag "if it matches") (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) "23.1" vc-cvs-sticky-date-format-string #[0 "\300\207" [#2="%c"] 1 #2#] "Format string for mode-line display of sticky date.\nFormat is according to `format-time-string'.  Only used if\n`vc-cvs-sticky-tag-display' is t." (string) vc-cvs-sticky-tag-display #[0 "\300\207" [t] 1] "Specify the mode-line display of sticky tags.\nValue t means default display, nil means no display at all.  If the\nvalue is a function or macro, it is called with the sticky tag and\nits type as parameters, in that order.  TYPE can have three different\nvalues: `symbolic-name' (TAG is a string), `revision-number' (TAG is a\nstring) and `date' (TAG is a date as returned by `encode-time').  The\nreturn value of the function or macro will be displayed as a string.\n\nHere's an example that will display the formatted date for sticky\ndates and the word \"Sticky\" for sticky tag names and revisions.\n\n  (lambda (tag type)\n    (cond ((eq type \\='date) (format-time-string\n                              vc-cvs-sticky-date-format-string tag))\n          ((eq type \\='revision-number) \"Sticky\")\n          ((eq type \\='symbolic-name) \"Sticky\")))\n\nHere's an example that will abbreviate to the first character only,\nany text before the first occurrence of `-' for sticky symbolic tags.\nIf the sticky tag is a revision number, the word \"Sticky\" is\ndisplayed.  Date and time is displayed for sticky dates.\n\n   (lambda (tag type)\n     (cond ((eq type \\='date) (format-time-string \"%Y%m%d %H:%M\" tag))\n           ((eq type \\='revision-number) \"Sticky\")\n           ((eq type \\='symbolic-name)\n            (condition-case nil\n                (progn\n                  (string-match \"\\\\([^-]*\\\\)\\\\(.*\\\\)\" tag)\n                  (concat (substring (match-string 1 tag) 0 1) \":\"\n                          (substring (match-string 2 tag) 1 nil)))\n              (error tag)))))       ; Fall-back to given tag name.\n\nSee also variable `vc-cvs-sticky-date-format-string'." (choice boolean function)] 10)
#@45 Check if FILE is CVS registered.

(fn FILE)
(defalias 'vc-cvs-registered #[257 "\301!\206\302\303!\304\305\306\307\"!\205Q\211\302\230\206Q\310\311!r\211q\210\312\313\314\315\316!\317\"\320$\216\321!\210eb\210\322\323\324!\325Q\304\326#\203M\327 \210\330!\210\326\202N\304*\262)\207" [case-fold-search file-name-directory "" file-name-nondirectory nil file-readable-p expand-file-name "CVS/Entries" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 vc-cvs-get-entries re-search-forward "^/" regexp-quote "/[^/]" t beginning-of-line vc-cvs-parse-entry] 10 (#$ . 6392)])
#@48 CVS-specific version of `vc-state'.

(fn FILE)
(defalias 'vc-cvs-state #[257 "\301!\203\302\303\"\211\304>\203\305!\202\211\207\306\307!r\211q\210\310\311\312\313\314!\315\"\316$\216\317\320!!\210\321\322\323\311\324$\210)\325\323!*\207" [process-file-side-effects vc-cvs-stay-local-p vc-file-getprop vc-state (up-to-date edited nil) vc-cvs-state-heuristic generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 cd file-name-directory nil vc-cvs-command t "status" vc-cvs-parse-status] 8 (#$ . 7053)])
#@42 CVS-specific state heuristic.

(fn FILE)
(defalias 'vc-cvs-state-heuristic #[257 "\300\301\"\302!\3038\262\232\203\304\202+\305!\306\230\203\"\307\202+\204*\310\202+\311\207" [vc-file-getprop vc-checkout-time file-attributes 5 up-to-date vc-working-revision "0" added unregistered edited] 5 (#$ . 7640)])
#@59 CVS-specific version of `vc-working-revision'.

(fn FILE)
(defalias 'vc-cvs-working-revision #[257 "\300!\210\301\302\"\207" [vc-cvs-registered vc-file-getprop vc-working-revision] 4 (#$ . 7966)])
#@262 Return a string for `vc-mode-line' to put in the mode line for FILE.
Compared to the default implementation, this function does two things:
Handle the special case of a CVS file that is added but not yet
committed and support display of sticky tags.

(fn FILE)
(defalias 'vc-cvs-mode-line-string #[257 "\300\301\"\302\303\304\"\305\306\307#\262\211\262\310G\306U\203\202,\311\312#\262\313\314R\307#\207" [vc-file-getprop vc-cvs-sticky-tag nil vc-default-mode-line-string CVS get-text-property 0 help-echo propertize format-message "%s on the `%s' branch" "[" "]"] 9 (#$ . 8172)])
(autoload 'vc-switches "vc")
#@234 Register FILES into the CVS version-control system.
COMMENT can be used to provide an initial description of FILES.
Passes either `vc-cvs-register-switches' or `vc-register-switches'
to the CVS command.

(fn FILES &optional COMMENT)
(defalias 'vc-cvs-register #[513 "\300\211\203$\211@\301!\204\302!\203\303\304!!B\262A\266\202\202\210\211\203-\305!\210\210\306\307\300\310\311\205E\312\313\"\205E\314P\315\316\317\"&\207" [nil vc-cvs-responsible-p vc-cvs-could-register directory-file-name file-name-directory vc-cvs-register apply vc-cvs-command 0 "add" string-match "[^	\n ]" "-m" vc-switches CVS register] 12 (#$ . 8805)])
#@69 Return non-nil if CVS thinks it is responsible for FILE.

(fn FILE)
(defalias 'vc-cvs-responsible-p #[257 "\300\301\302\300!\203
\202\303!\"!\207" [file-directory-p expand-file-name "CVS" file-name-directory] 6 (#$ . 9464)])
#@144 Return non-nil if FILE could be registered in CVS.
This is only possible if CVS is managing FILE's directory or one of
its parents.

(fn FILE)
(defalias 'vc-cvs-could-register #[257 "\211\211;\203*\211\300!\211\262\232\204*\211\203*\301\302\303\"!\203\"\304\202%\305!\262\202\211\304=\207" [file-name-directory file-exists-p expand-file-name "CVS/Entries" t directory-file-name] 6 (#$ . 9702)])
#@81 CVS-specific version of `vc-backend-checkin'.

(fn FILES COMMENT &optional REV)
(defalias 'vc-cvs-checkin #[770 "\211\203E\300!\204E\301!\204\302\303\"\210\202E\304\305\306\307\310\311C&\210\304\305\306\307\312\313C&\210\314\315\316\317\320\321!\322\"\323\324%\"\210\304\305\306\325\326\205U\313P\327	P\330\331\332\"&\333q\210eb\210\211\307U\204\220\334\335\306\336#\203\202\314\337\"\210\302\340\341\342!\"\210\202\220\343p!\210eb\210\344 \210\302\345!\210G\325U\203\262\346@\347\350\351eb\210\334\306\336#\205\253\352!\266\202#\210\202\267\314\353\"\210\314\354\"\210\205\317\301!?\205\317\305\306\307\312\355%\207" [vc-cvs-valid-revision-number-p vc-cvs-valid-symbolic-tag-name-p error "%s is not a valid symbolic tag name" apply vc-cvs-command nil 0 "tag" "-b" "update" "-r" mapc make-byte-code 257 "\301\302\300#\207" vconcat vector [vc-file-setprop vc-cvs-sticky-tag] 5 "\n\n(fn FILE)" 1 "ci" "-m" vc-switches CVS checkin "*vc*" re-search-forward "Up-to-date check failed" t #[257 "\300\301\302#\207" [vc-file-setprop vc-state needs-merge] 5 "\n\n(fn FILE)"] "%s" substitute-command-keys "Up-to-date check failed: type \\[vc-next-action] to merge in changes" pop-to-buffer shrink-window-if-larger-than-buffer "Check-in failed" vc-file-setprop vc-working-revision "^\\(new\\|initial\\) revision: \\([0-9.]+\\)" 2 match-string vc-file-clearprops #[257 "\300\301\302#\207" [vc-file-setprop vc-checkout-model nil] 5 "\n\n(fn FILE)"] "-A"] 14 (#$ . 10115)])
#@24 

(fn FILE REV BUFFER)
(defalias 'vc-cvs-find-revision #[771 "\300\301\302\303\304\205\305\230?\205\306	P\307\310\311\312\"&	\207" [apply vc-cvs-command 0 "-Q" "update" "" "-r" "-p" vc-switches CVS checkout] 15 (#$ . 11632)])
#@111 Checkout a revision of FILE into the working area.
REV is the revision to check out.

(fn FILE &optional REV)
(defalias 'vc-cvs-checkout #[513 "\302\303\"\210r\304!\206
pq\210\305!\203G\211\204G\306C!\307=\204w\2030\310\311\312\313$\210\202w\314\315\316!\317\"\"\210	\232\203w\320\321!\210\202w\322\323\311#\210\324\310\311\312\325\326\205p\327=?\205p\330\230\203l\331\202p\332P\333\334\335\"&\210\336\334\"\210)\302\337\"\207" [vc-cvs-use-edit buffer-file-name message "Checking out %s..." get-file-buffer file-exists-p vc-cvs-checkout-model implicit vc-cvs-command nil 0 "edit" set-file-modes logior file-modes 128 read-only-mode -1 vc-file-setprop vc-working-revision apply "-w" "update" t "" "-A" "-r" vc-switches CVS checkout vc-mode-line "Checking out %s...done"] 13 (#$ . 11877)])
#@13 

(fn FILE)
(defalias 'vc-cvs-delete-file #[257 "\300\301\302\303\304%\207" [vc-cvs-command nil 0 "remove" "-f"] 7 (#$ . 12705)])
(autoload 'vc-default-revert "vc")
#@95 Revert FILE to the working revision on which it was based.

(fn FILE &optional CONTENTS-DONE)
(defalias 'vc-cvs-revert #[513 "\301\302#\210\303C!\304=?\205$\203\305\306\307\310$\207\311\312\313!\314\"\"\207" [vc-cvs-use-edit vc-default-revert CVS vc-cvs-checkout-model implicit vc-cvs-command nil 0 "unedit" set-file-modes logand file-modes 3949] 7 (#$ . 12877)])
#@66 Accept a file merge request, prompting for revisions.

(fn FILE)
(defalias 'vc-cvs-merge-file #[257 "\300\301\302QC\303#\304\211\305\230\203\306!\262\202@\307!\2041\300\310C\303\304\311!\312P%\262\2029\262\311!\262\313#\262\207" [vc-read-revision "Merge " " from branch or revision (default news on current branch): " CVS nil "" vc-cvs-merge-news vc-branch-p "Second revision: " vc-branch-part "." vc-cvs-merge] 11 (#$ . 13257)])
#@162 Merge changes into current working copy of FILE.
The changes are between FIRST-REVISION and SECOND-REVISION.

(fn FILE FIRST-REVISION &optional SECOND-REVISION)
(defalias 'vc-cvs-merge #[770 "\300\301\302\303\304\305P\305P&\210\306\307\310#\210r\311\312!q\210eb\210\313\314\301\315#\2032\306\307\316#\210\317\2029\306\307\310#\210\302)\207" [vc-cvs-command nil 0 "update" "-kk" "-j" vc-file-setprop vc-state edited get-buffer "*vc*" re-search-forward "conflicts during merge" t conflict 1] 12 (#$ . 13717)])
#@51 Merge in any new changes made to FILE.

(fn FILE)
(defalias 'vc-cvs-merge-news #[257 "\301\302\"\210\303\304\305#\210\306\307\211\310$\210r\311\312!q\210eb\210\313\314\307\315#\203.\303\316\317\320!#\210\2024\303\316\307#\210\321 \305=\203?\305\202\244\313\322\323\324\325\326\"GT\"!\327Q\307\315#\203\235\317\330!\204j\317\320!\331\230\204j\317\320!\332\230\203\201\303\333\334#\210\303\304\335!\3368\262#\210\305\202\244\317\320!\337\230\203\223\303\333\340#\210\305\202\244\303\333\341#\210\320\202\244\342\312!\210\343\344!\301\345\"\210)\207" [default-directory message "Merging changes into %s..." vc-file-setprop vc-checkout-time 0 vc-cvs-command nil "update" get-buffer "*vc*" re-search-forward "^Merging differences between [0-9.]* and \\([0-9.]*\\) into" t vc-working-revision match-string 1 buffer-size "^\\([CMUP] \\)?" regexp-quote substring expand-file-name "." "\\( already contains the differences between \\)?" 2 "U " "P " vc-state up-to-date file-attributes 5 "M " edited conflict pop-to-buffer error "Couldn't analyze cvs update result" "Merging changes into %s...done"] 9 (#$ . 14242)])
#@147 Modify the change comments for FILES on a specified REV.
Will fail unless you have administrative privileges on the repo.

(fn FILES REV COMMENT)
(defalias 'vc-cvs-modify-change-comment #[771 "\300\301\302\303\304\305R%\207" [vc-cvs-command nil 0 "admin" "-m" ":"] 12 (#$ . 15383)])
#@155 Print commit log associated with FILES into specified BUFFER.
Remaining arguments are ignored.

(fn FILES BUFFER &optional SHORTLOG START-REVISION LIMIT)
(defalias 'vc-cvs-print-log #[1282 "\300\301!\210\302\303!\203\304\202\305\306$\210rq\210\307\310!\210)\211\205%\311\207" [require vc-rcs vc-cvs-command vc-cvs-stay-local-p async 0 "log" vc-exec-after #[0 "\300 \207" [vc-rcs-print-log-cleanup] 1] limit-unsupported] 10 (#$ . 15678)])
#@43 Get comment history of a file.

(fn FILE)
(defalias 'vc-cvs-comment-history #[257 "\300\301\302#\207" [vc-call-backend RCS comment-history] 5 (#$ . 16133)])
(autoload 'vc-version-backup-file "vc")
#@117 Get a difference report using CVS between two revisions of FILE.

(fn FILES &optional OLDVERS NEWVERS BUFFER ASYNC)
(defalias 'vc-cvs-diff #[1281 "\302\211\205	\303!\302\211\211\203~\211@\203!\304\230\203&\305!\262\211\304\230\203/\302\262\306\"\204;\202?\306\"\307!\203n\211\203n\310\311\f\206S\312\313\314\302\315\316\302\317\"\320\n!\320\n!D\"&\210\321\262\202tB\262)\266A\266\202\202
\210\203\260\310\322\206\213\312\203\223\323\202\224\313\314\f\205\237\324
P\f\205\250\324
P\316\325\317\"&\262\203\270\313\202\271\211)\207" [process-file-side-effects coding-system-for-read nil vc-cvs-stay-local-p "" vc-working-revision vc-version-backup-file vc-coding-system-for-diff apply vc-do-command "*vc-diff*" 1 "diff" append vc-switches diff file-relative-name 0 vc-cvs-command async "-r" CVS] 25 (#$ . 16338)])
(defconst vc-cvs-annotate-first-line-re "^[0-9]")
#@30 

(fn FILTER PROCESS STRING)
(defalias 'vc-cvs-annotate-process-filter #[771 "\301\302\"P\262\303\"\204\304\302#\207\305\306!\307\"\211\306!=\204)\310\"\210\266\311\312\224\"\"\207" [vc-cvs-annotate-first-line-re process-get output string-match process-put advice--remove-function process-filter vc-cvs-annotate-process-filter set-process-filter substring 0] 8 (#$ . 17270)])
#@158 Execute "cvs annotate" on FILE, inserting the contents in BUFFER.
Optional arg REVISION is a revision to annotate from.

(fn FILE BUFFER &optional REVISION)
(defalias 'vc-cvs-annotate-command #[770 "\301\302\303!\203\304\202\305\306\307\310\311\312\"\205!\313	PC\"&\210\314!\211\203P\315\316\317\305\320\321\322!\323\"\324$\317\325\326\321\322!\327\"\330\331%B\262\332\333$\202`rq\210eb\210\334!\210e`S|)\207" [vc-cvs-annotate-first-line-re apply vc-cvs-command vc-cvs-stay-local-p async 0 "annotate" append vc-switches cvs annotate "-r" get-buffer-process advice--add-function :around make-byte-code "\301\300!\207" vconcat vector [process-filter] 2 257 "\301\300\"\207" [set-process-filter] 4 "\n\n(fn GV--VAL)" vc-cvs-annotate-process-filter nil re-search-forward] 14 (#$ . 17672)])
#@96 Return the current time, based at midnight of the current day, and
encoded as fractional days.
(defalias 'vc-cvs-annotate-current-time #[0 "\300\301\302\303\211\211\304\305 \233%!\207" [vc-annotate-convert-time apply encode-time 0 3 decode-time] 8 (#$ . 18489)])
#@96 Return the time of the next annotation (as fraction of days)
systime, or nil if there is none.
(defalias 'vc-cvs-annotate-time #[0 "`\302\303\"\304\211\211\204]\305\306!\203]\307\310\311!!\312\310\313!!\314\236A\307\310\315!!\316V\203/\317\202:\320V\2039\321\202:\322\\\262\323\211T\303\322\225\322\224Z\324\325\322\211\211\f\f\f&!B\211\262	$\266\211\205i@\\b\210\211A*\207" [inhibit-read-only inhibit-modification-hooks get-text-property vc-cvs-annotate-time t looking-at "^\\S-+\\s-+\\S-+\\s-+\\([0-9]+\\)-\\(\\sw+\\)-\\([0-9]+\\)): " string-to-number match-string 1 intern 2 ((Jan . 1) (Feb . 2) (Mar . 3) (Apr . 4) (May . 5) (Jun . 6) (Jul . 7) (Aug . 8) (Sep . 9) (Oct . 10) (Nov . 11) (Dec . 12)) 3 69 2000 100 1900 0 put-text-property vc-annotate-convert-time encode-time] 19 (#$ . 18758)])
(defalias 'vc-cvs-annotate-extract-revision-at-line #[0 "\212\300 \210\301\302\303 \304#\205\305\306!)\207" [beginning-of-line re-search-forward "^\\([0-9]+\\.[0-9]+\\(\\.[0-9]+\\)*\\) +(" line-end-position t match-string-no-properties 1] 4])
#@17 

(fn FILE REV)
(defalias 'vc-cvs-previous-revision #[514 "\300\301\302$\207" [vc-call-backend RCS previous-revision] 7 (#$ . 19829)])
#@17 

(fn FILE REV)
(defalias 'vc-cvs-next-revision #[514 "\300\301\302$\207" [vc-call-backend RCS next-revision] 7 (#$ . 19972)])
#@14 

(fn FILES)
(defalias 'vc-cvs-update-changelog #[257 "\300\301\302#\207" [vc-call-backend RCS update-changelog] 5 (#$ . 20107)])
#@195 Assign to DIR's current revision a given NAME.
If BRANCHP is non-nil, the name is created as a branch (and the current
workspace is immediately moved to that new branch).

(fn DIR NAME BRANCHP)
(defalias 'vc-cvs-create-tag #[771 "\300\301\302\303\304\205\f\305&\210\211\205\300\301\302\306\307&\207" [vc-cvs-command nil 0 "tag" "-c" "-b" "update" "-r"] 11 (#$ . 20245)])
#@186 Retrieve a tag at and below DIR.
NAME is the name of the tag; if it is empty, do a `cvs update'.
If UPDATE is non-nil, then update (resynch) any affected buffers.

(fn DIR NAME UPDATE)
(defalias 'vc-cvs-retrieve-tag #[771 "r\301\302!q\210\303\304 \210\203\305\230\203!\306\307\310\303\311$\210\202/\306\307\310\303\311\312	&\210\262\205\256eb\210m?\205\256\313\314!\203\250\315\316\317!\"\316\320!\321!\211\203\246\322\230\204^\323\230\203{\324\325\326#\210\324\327\303#\210\324\330\331!\3328\262#\210\202\231\333\230\204\207\334\230\203\231\324\325\335#\210\324\327\303#\210\324\330\310#\210\324\336#\210\337\307\211#\210\266\320y\210\2026)\266\202)\207" [default-directory get-buffer-create "*vc*" nil erase-buffer "" vc-cvs-command t 0 "update" "-r" looking-at "\\([CMUP]\\) \\(.*\\)" expand-file-name match-string 2 1 find-buffer-visiting "U" "P" vc-file-setprop vc-state up-to-date vc-working-revision vc-checkout-time file-attributes 5 "M" "C" edited vc-cvs-sticky-tag vc-resynch-buffer] 14 (#$ . 20636)])
#@71 Return non-nil if version backups should be made for FILE.

(fn FILE)
(defalias 'vc-cvs-make-version-backups-p #[257 "\300!\207" [vc-cvs-stay-local-p] 3 (#$ . 21700)])
#@50 Check if the current file has any headers in it.
(defalias 'vc-cvs-check-headers #[0 "\212eb\210\300\301\302\303#)\207" [re-search-forward "\\$[A-Za-z\300-\326\330-\366\370-\377]+\\(: [	 -#%-~\240-\377]*\\)?\\$" nil t] 4 (#$ . 21875)])
#@236 A wrapper around `vc-do-command' for use in vc-cvs.el.
The difference to vc-do-command is that this function always invokes `cvs',
and that it passes `vc-cvs-global-switches' to it before FLAGS.

(fn BUFFER OKSTATUS FILES &rest FLAGS)
(defalias 'vc-cvs-command #[899 "\301\302\206\303\304;\203B\202\305\"&\207" [vc-cvs-global-switches apply vc-do-command "*vc*" "cvs" append] 13 (#$ . 22118)])
#@161 Return non-nil if VC should stay local when handling FILE.
If FILE is a list of files, return non-nil if any of them
individually should stay local.

(fn FILE)
(defalias 'vc-cvs-stay-local-p #[257 "\211<\203
\301\302\303\304\"\"\207\2119\203\211\202y\305!\203#\306!\202&\307!\310\311\"\206u\312\311\313!\211\204;\314\202r\315\242\316=\203L\302\262A\262:\203Z\317\320\321#\262\322\"\203f\211\202h\211?\203o\323\202p\314\262\262#\323=\262\207" [vc-cvs-stay-local delq nil mapcar #[257 "\300!\207" [vc-cvs-stay-local-p] 3 "\n\n(fn ARG)"] file-directory-p directory-file-name file-name-directory vc-file-getprop vc-cvs-stay-local-p vc-file-setprop vc-cvs-repository-hostname no t except mapconcat identity "\\|" string-match yes] 12 (#$ . 22537)])
#@74 Hostname of the CVS server associated to workarea DIRNAME.

(fn DIRNAME)
(defalias 'vc-cvs-repository-hostname #[257 "\303\304\"\305!\2056\306\307!r\211q\210\310\311\312\313\314!\315\"\316$\216\206\"	\317!\210)eb\210\316\320`\321 {!8*\262\207" [file-name-coding-system default-file-name-coding-system coding-system-for-read expand-file-name "CVS/Root" file-readable-p generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 vc-insert-file vc-cvs-parse-root line-end-position] 9 (#$ . 23328)])
#@56 parse user@host/path into (user@host /path)

(fn PATH)
(defalias 'vc-cvs-parse-uhp #[257 "\300\301\"\203\302\303\"\302\304\"D\207\305D\207" [string-match "\\([^/]+\\)\\(/.*\\)" match-string 1 2 nil] 5 (#$ . 23901)])
#@491 Split CVS ROOT specification string into a list of fields.
A CVS root specification of the form
  [:METHOD:][[USER@]HOSTNAME]:?/path/to/repository
is converted to a normalized record with the following structure:
  (METHOD USER HOSTNAME CVS-ROOT).
The default METHOD for a CVS root of the form
  /path/to/repository
is `local'.
The default METHOD for a CVS root of the form
  [USER@]HOSTNAME:/path/to/repository
is `ext'.
For an empty string, nil is returned (invalid CVS root).

(fn ROOT)
(defalias 'vc-cvs-parse-root #[257 "\300\301P\302\"A\211G\211\303U\203\304\202V\211\305U\203.\306@!\211@\203&\307\202'\310B\262\202V\211\311U\203B@\312\232?\205V\307B\202V\211\313U\203TA@\306\3118!B\202VA\211\205\244\211@A@\206c\312\3118\304\211\314\315\"\203~\316\305\"\262\316\311\"\262\202\201\262\211\312\232\203\212\304\262\211\203\235\310\232\203\235\211\302Q\262\304\262F\266\205\207" [split-string "x:" ":" 0 nil 1 vc-cvs-parse-uhp "ext" "local" 2 "" 3 string-match "\\(.*\\)@\\(.*\\)" match-string] 13 (#$ . 24130)])
#@218 Parse output of "cvs status" command in the current buffer.
Set file properties accordingly.  Unless FULL is t, parse only
essential information. Note that this can never set the `ignored'
state.

(fn &optional FULL)
(defalias 'vc-cvs-parse-status #[256 "\300\211\211eb\210\301\302!\203\303\304\305!!\262\306\307\310#\210\305y\210\202\311\312\300\313#\205\344\301\314!\211\262\2034\315\225b\210\311\316\300\313#\205\344\303\304\305!!\262\311\317\300\313#\203Q\304\305!\202R\320\262\203h\311\321\300\313#\203h\306\322\304\323!#\210\306\307\324\325\"\203\206\306\326\327	!\3308\262#\210\331\202\343\324\332\"\203\222\333\202\343\324\334\"\203\236\335\202\343\324\336\"\203\262\203\256\337\202\343\340\202\343\324\341\"\203\276\342\202\343\324\343\"\203\312\344\202\343\324\345\"\203\326\346\202\343\324\320\"\203\342\310\202\343\333#\207" [nil looking-at "\\? \\(.*\\)" expand-file-name match-string 1 vc-file-setprop vc-state unregistered re-search-forward "^File: " t "no file " 0 "\\=\\([^ 	]+\\)" "\\=[ 	]+Status: \\(.*\\)" "Unknown" "\\(RCS Version\\|RCS Revision\\|Repository revision\\):[	 ]+\\([0-9.]+\\)" vc-latest-revision 2 string-match "Up-to-date" vc-checkout-time file-attributes 5 up-to-date "Locally Modified" edited "Needs Merge" needs-merge "Needs \\(Checkout\\|Patch\\)" missing needs-update "Locally Added" added "Locally Removed" removed "File had conflicts " conflict] 13 (#$ . 25199)])
#@24 

(fn UPDATE-FUNCTION)
(defalias 'vc-cvs-after-dir-status #[257 "\300\301eb\210m\204J\302\303!\203 \304\305!\306\300f\"ADB\262\202D\302\307!\2035\304\305!\310DB\262\305y\210\202D\302\311!\203D\304\305!\312DB\262\305y\210\202!\207" [nil ((63 . unregistered) (65 . added) (67 . conflict) (77 . edited) (80 . needs-merge) (82 . removed) (85 . needs-update)) looking-at "^[ACMPRU?] \\(.*\\)$" match-string 1 assoc "cvs update: warning: \\(.*\\) was lost" missing "cvs update: New directory `\\(.*\\)' -- ignored" unregistered] 7 (#$ . 26671)])
#@115 Find the CVS state of all files in DIR, using only local information.

(fn DIR UPDATE-FUNCTION &optional BASEDIR)
(defalias 'vc-cvs-dir-status-heuristic #[770 "\300\211\211\211\211\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312	!\210eb\210m\204z\313\314!\2038\315\316\317!\n\"B\262\202t\313\320!\203t\316\317!\262\315\n\"\262\321\322\"\206W\323\324\"\262\325=\204t\203m\326\"\202nDB\262\317y\210\202 *\210\211\211\203\232\211@\327\330\300\f\206\217#\"\262A\266\202\202}\210\203\243\202\247!\207" [nil generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 vc-cvs-get-entries looking-at "D/\\([^/]*\\)////" expand-file-name match-string 1 "/\\([^/]*\\)/[^/-]" vc-file-getprop vc-state vc-cvs-parse-entry t up-to-date file-relative-name append vc-cvs-dir-status-heuristic] 16 (#$ . 27235)])
#@130 Create a list of conses (file . state) for FILES in DIR.
Query all files in DIR if files is nil.

(fn DIR FILES UPDATE-FUNCTION)
(defalias 'vc-cvs-dir-status-files #[771 "\300!\204\211\203\211\301=\204\302\"\210\303p\304\305\306\307\310&\210\311\312\313\314\315\316!\317\"\320$!\207" [vc-cvs-stay-local-p only-file vc-cvs-dir-status-heuristic vc-cvs-command async "-f" "-n" "-q" "update" vc-exec-after make-byte-code 0 "\301\300!\207" vconcat vector [vc-cvs-after-dir-status] 2] 12 (#$ . 28160)])
#@64 Read the content of FILE and return it as a string.

(fn FILE)
(defalias 'vc-cvs-file-to-string #[257 "\3001&\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312!\210eb\210`d{*\2620\207\210\313\207" [(file-error) generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents nil] 8 (#$ . 28677)])
#@81 Extract and represent per-directory properties of a CVS working copy.

(fn DIR)
(defalias 'vc-cvs-dir-extra-headers #[257 "\30015\301\302!r\211q\210\303\304\305\306\307!\310\"\311$\216\312\313!\210eb\210\314\315!\203(\316\317!\210`dS{\320P*\2620\2027\210\321\3221e\301\302!r\211q\210\303\304\305\306\307!\323\"\311$\216\312\324!\210eb\210\325\321w\210e`{\320P*\2620\202g\210\321\203y\326\327\330\331#\326\330\332#P\202z\333\203\214\326\334\330\331#\326\330\332#P\202\215\333\335\336!\205\311\337\336!\340\341\"\203\256\326\342\330\331#\326\343\344\"\330\332#P\202\307\340\345\"\203\306\326\346\330\331#\326\343\344\"\330\332#P\202\307\333\262Q\207" [(file-error) generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 insert-file-contents "CVS/Root" looking-at ":ext:" delete-char 5 "\n" nil (file-error) [buffer-name kill-buffer] "CVS/Repository" "^\n" propertize "Repository : " face font-lock-type-face font-lock-variable-name-face "" "Module     : " file-readable-p "CVS/Tag" vc-cvs-file-to-string string-match "\\`T" "Tag        : " substring 1 "\\`D" "Date       : "] 11 (#$ . 29071)])
#@272 Insert the CVS/Entries file from below DIR into the current buffer.
This function ensures that the correct coding system is used for that,
which may not be the one that is used for the files' contents.
CVS/Entries should only be accessed through this function.

(fn DIR)
(defalias 'vc-cvs-get-entries #[257 "\206	\303\304\305\"!)\207" [file-name-coding-system default-file-name-coding-system coding-system-for-read vc-insert-file expand-file-name "CVS/Entries"] 5 (#$ . 30263)])
#@63 Return non-nil if TAG is a valid symbolic tag name.

(fn TAG)
(defalias 'vc-cvs-valid-symbolic-tag-name-p #[257 "\300\301\"\205\f\300\302\"?\207" [string-match "^[a-zA-Z]" "[^a-z0-9A-Z_-]"] 4 (#$ . 30753)])
#@61 Return non-nil if TAG is a valid revision number.

(fn TAG)
(defalias 'vc-cvs-valid-revision-number-p #[257 "\300\301\"\205\f\300\302\"?\207" [string-match "^[0-9]" "[^0-9.]"] 4 (#$ . 30969)])
#@100 Parse and return the sticky tag as a string.
`match-data' is protected.

(fn MATCH-TYPE MATCH-TAG)
(defalias 'vc-cvs-parse-sticky-tag #[514 "\302 \303\304\230\203
\305\202\"\306\230\203!\307!\203\310\202\"\311\202\"\303\312\313\314\315\316!\317\"\320$\216\211\321\267\202\233\322\323\"\210\324\325\326\"!\324\325\320\"!\324\325\327\"!\324\325\330	\"!\324\325\331\n\"!\324\325\332\"!\333V\203o\334\202{\335V\203z\336\202{\313\\\337\n&\262	\266\202\233\262\202\233\262\340\267\202\276\303\202\314\211\341\267\202\272\342	\"\202\314\202\314\202\314\303\202\314\343!\203\313\"\202\314\303)\207" [vc-cvs-sticky-tag-display vc-cvs-sticky-date-format-string match-data nil "D" date "T" vc-cvs-valid-symbolic-tag-name-p symbolic-name revision-number make-byte-code 0 "\301\300!\207" vconcat vector [set-match-data] 2 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (date 53 symbolic-name 146 revision-number 152)) string-match "\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)" string-to-number match-string 1 3 4 5 6 69 2000 100 1900 encode-time #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nil 161 t 165)) #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (date 171 symbolic-name 178 revision-number 182)) format-time-string functionp] 19 (#$ . 31172)])
#@214 Parse a line from CVS/Entries.
Compare modification time to that of the FILE, set file properties
accordingly.  However, `vc-state' is set only if optional arg SET-STATE
is non-nil.

(fn FILE &optional SET-STATE)
(defalias 'vc-cvs-parse-entry #[513 "\300\301!\203\302\303\304#\210\302\305\306#\210\211\205\210\302\307\310#\207\300\311!\205\210\302\305\312\313!#\210\302\314\315\312\316!\312\317!\"#\210\312\320!\321!\3178\262\322\323!\210\324\325P!\326\327\"\204w\211@\203w\330\331\"\330\332!\331\"U\203w\302\303#\210\205\206\302\307\333#\202\206\302\303\304#\210\205\206\302\307\334#\266\203\207" [looking-at "/[^/]+/0/" vc-file-setprop vc-checkout-time 0 vc-working-revision "0" vc-state added "/[^/]+/\\([^/]*\\)/\\([^/]*\\)/\\([^/]*\\)/\\(.\\|\\)\\(.*\\)" match-string 1 vc-cvs-sticky-tag vc-cvs-parse-sticky-tag 4 5 2 file-attributes require parse-time parse-time-string " +0000" string-match "\\+" time-convert integer encode-time up-to-date edited] 9 (#$ . 32647)])
#@13 

(fn FILE)
(defalias 'vc-cvs-revision-table #[257 "\302\303!\302\304\305!r\211q\210\306\307\310\311\312!\313\"\314$\216\315\316\302\317$\210eb\210\320\321\302\316#\203F\322\323!\203F\324\325!\324\314!BB\262\325y\210\202/\320\326\302\316#\203X\324\325!B\262\202F*\262*\207" [default-directory process-file-side-effects nil file-name-directory generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 vc-cvs-command t "log" re-search-forward "^symbolic names:\n" looking-at "^	\\(.*\\): \\(.*\\)" match-string 1 "^revision \\([0-9.]+\\)"] 11 (#$ . 33655)])
#@14 

(fn FILES)
(defalias 'vc-cvs-revision-completion-table #[257 "\300C\211\301\302\303\304\305\306\"\307\"\310\311%\312\"\240\210\211\242\207" [nil completion-table-dynamic make-byte-code 257 "\302\301\242!\203\301\303\304\305\306\307\300!\310\"\311$ \240\210\301\242\207" vconcat vector [functionp make-byte-code 0 "\301\300@!\207" vconcat vector [vc-cvs-revision-table] 2] 8 "\n\n(fn STRING)" do-switch-buffer] 11 (#$ . 34300)])
#@57 Return the administrative directory of FILE.

(fn FILE)
(defalias 'vc-cvs-find-admin-dir #[257 "\300\301\"\207" [vc-find-root "CVS"] 4 (#$ . 34742)])
#@1009 Ignore FILE under CVS.
FILE is either absolute or relative to DIRECTORY.  The non-directory
part of FILE is written unmodified into the ignore file and is
therefore evaluated by CVS as an ignore pattern which follows
glob(7) syntax.  If the pattern should match any of the special
characters `?*[\' literally, they must be escaped with a
backslash.

CVS processes one ignore file for each subdirectory.  Patterns
are separated by whitespace and only match files in the same
directory.  Since FILE can be a relative filename with leading
directories, FILE is expanded against DIRECTORY to determine the
correct absolute filename.  The directory part of the resulting name
is then used to determine the location of the ignore file.  The
non-directory part of the name is used as pattern for the ignore file.

Since patterns are whitespace-separated, filenames containing spaces
cannot be represented directly.  A work-around is to replace such
spaces with question marks.

(fn FILE &optional DIRECTORY REMOVE)
(defalias 'vc-cvs-ignore #[769 "\300\301\"!\262\302\303!\304!\"\207" [directory-file-name expand-file-name vc-cvs-append-to-ignore file-name-directory file-name-nondirectory] 7 (#$ . 34901)])
#@224 In DIR, add STR to the .cvsignore file.
If OLD-DIR is non-nil, then this is a directory that we don't want
to hear about anymore.  If SORT is non-nil, sort the lines of the
ignore file.

(fn DIR STR &optional OLD-DIR SORT)
(defalias 'vc-cvs-append-to-ignore #[1026 "r\302\303\304\"!q\210\3051:\2056\306	!\307=\2056	\306!\211\2051\310C\"\311=\2061\312!\313>\262\262?0\202>\210\202F\203F\314	\315\"\210eb\210\316 \317\320\321\322\323!\324\"\325$\216\326\327\330!\331Q\332\333#?\205\206n\204m\334c\210\203v\335\202w\334\261\210\203\204\336\332ed#\210\337 )\262)\207" [buffer-read-only buffer-file-name find-file-noselect expand-file-name ".cvsignore" (error) vc-backend CVS vc-checkout-model implicit vc-state (edited needs-merge conflict) vc-checkout t match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 re-search-forward "^" regexp-quote "$" nil move "\n" "/\n" sort-lines save-buffer] 11 (#$ . 36113)])
(provide 'vc-cvs)

Zerion Mini Shell 1.0