;ELC   
;;; compiled by rms@psilocin.gnu.ai.mit.edu on Fri Jul 26 17:22:47 1996
;;; from file /home/fsf/rms/e19/lisp/vc.el
;;; emacs version 19.31.96.2.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`vc.el' was compiled for Emacs 19.29 or later"))


(byte-code "!!\" B" [require vc-hooks ring assoc vc-parent-buffer minor-mode-alist (vc-parent-buffer vc-parent-buffer-name)] 3)
#@152 Execute FORM1, FORM2 or FORM3 for SCCS, RCS or CVS respectively.
If FORM3 is `RCS', use FORM2 for CVS as well as RCS.
(CVS shares some code with RCS).
(defalias 'vc-backend-dispatch '(macro . #[(f s r c) "DDCEDE	DE=& 	( DFE" [let type vc-backend f cond eq (quote SCCS) s (quote RCS) r (quote CVS) c RCS] 8 (#$ . 611)]))
#@76 *If non-nil, treat user as expert; suppress yes-no prompts on some things.
(defvar vc-suppress-confirm nil (#$ . -963))
#@68 *If non-nil, prompt for initial comment when a file is registered.
(defvar vc-initial-comment nil (#$ . -1089))
#@59 *If non-nil, display run messages from back-end commands.
(defvar vc-command-messages nil (#$ . -1207))
#@105 *A string or list of strings specifying extra switches passed 
to the checkin program by \[vc-checkin].
(defvar vc-checkin-switches nil (#$ . -1318))
#@107 *A string or list of strings specifying extra switches passed 
to the checkout program by \[vc-checkout].
(defvar vc-checkout-switches nil (#$ . -1475))
#@84 *A list of directory names ignored by functions that recursively 
walk file trees.
(defvar vc-directory-exclusion-list (quote ("SCCS" "RCS" "CVS")) (#$ . -1634))
#@55 Maximum number of saved comments in the comment ring.
(defconst vc-maximum-comment-ring-size 32 (#$ . 1802))
#@75 *A string or list of strings specifying switches to be be passed to diff.
(defvar diff-switches "-c" (#$ . -1917))
#@70 *List of functions called after a checkin is done.  See `run-hooks'.
(defvar vc-checkin-hook nil (#$ . -2038))
#@235 *List of functions called when a buffer is made writable.  See `run-hooks.'
This hook is only used when the version control system is CVS.  It
might be useful for sites who uses locking with CVS, or who uses link
farms to gold trees.
(defvar vc-make-buffer-writable-hook nil (#$ . -2156))
#@231 *Header keywords to be inserted by `vc-insert-headers'.
Must be a list of two-element lists, the first element of each must
be `RCS', `CVS', or `SCCS'.  The second element is the string to
be inserted for this particular backend.
(defvar vc-header-alist (quote ((SCCS "%W%") (RCS "$Id$") (CVS "$Id$"))) (#$ . -2452))
#@186 *Associate static header string templates with file types.  A %s in the
template is replaced with the first string associated with the file's
version-control type in `vc-header-alist'.
(defvar vc-static-header-alist (quote (("\\.c$" . "\n#ifndef lint\nstatic char vcid[] = \"%s\";\n#endif /* lint */\n"))) (#$ . -2776))
#@252 *Special comment delimiters to be used in generating vc headers only.
Add an entry in this list if you need to override the normal comment-start
and comment-end variables.  This will only be necessary if the mode language
is sensitive to blank lines.
(defvar vc-comment-alist (quote ((nroff-mode ".\\\"" ""))) (#$ . -3103))
#@143 *Non-nil means be extra-careful in checkout.
Verify that the file really is not locked
and that its contents match what the master file says.
(defvar vc-checkout-carefully (byte-code " U" [user-uid 0] 2) (#$ . -3434))
#@123 *The release number of your RCS installation, as a string.
If nil, VC itself computes this value when it is first needed.
(defvar vc-rcs-release nil (#$ . -3662))
#@124 *The release number of your SCCS installation, as a string.
If nil, VC itself computes this value when it is first needed.
(defvar vc-sccs-release nil (#$ . -3832))
#@123 *The release number of your CVS installation, as a string.
If nil, VC itself computes this value when it is first needed.
(defvar vc-cvs-release nil (#$ . -4004))
(byte-code "! B! B!  B!- B!: B!G 	BBBB!c B!!w !B! B! B" [boundp vc-log-entry-mode nil current-load-list vc-log-operation vc-log-after-operation-hook vc-checkout-writable-buffer-hook vc-checkout-writable-buffer vc-parent-buffer vc-parent-buffer-name vc-log-file vc-log-version "VC-names" vc-name-assoc-file vc-dired-mode make-variable-buffer-local vc-comment-ring make-ring vc-maximum-comment-ring-size vc-comment-ring-index vc-last-comment-match] 2)
(defalias 'file-executable-p-18 #[(f) "	!	 )" [file-modes f modes t] 3])
(defalias 'file-regular-p-18 #[(f) "	! \n@?)" [file-attributes f attributes] 3])
(byte-code "! MM! M" [boundp minor-mode-map-alist nil compilation-old-error-list file-executable-p file-executable-p-18 shrink-window-if-larger-than-buffer beginning-of-buffer fboundp file-regular-p file-regular-p-18] 2)
(defalias 'vc-backend-release #[(backend) "=, \nc ĉ&U( !q!@)c ͉=[ c ĉ&UV !q!@)c ͉=c " [backend RCS vc-rcs-release vc-do-command nil 2 "rcs" "-V" 0 get-buffer "*vc*" vc-parse-buffer (("^RCS version \\([0-9.]+ *.*\\)" 1)) unknown CVS vc-cvs-release 1 "cvs" "-v" (("^Concurrent Versions System (CVS) \\([0-9.]+\\)" 1)) SCCS vc-sccs-release] 7])
(defalias 'vc-release-greater-or-equal #[(r1 r2) "ƍ," [nil i2 i1 v2 v1 done (byte-code "\n\"l Õl \n\"!l 	\"l Õ\nl 	\"!l VF \"d WU \"d \n\fO	\nO\"\"l \"	\"{ \" \"" [string-match "^\\.?\\([0-9]+\\)" r1 0 i1 string-to-number match-string 1 v1 r2 i2 v2 throw done t nil vc-release-greater-or-equal] 7)] 4])
(defalias 'vc-backend-release-p #[(backend release) "!	\n\f=?- =( =- \f\"." [nil 0 vc-backend-release backend installation rs is ii ri r i unknown RCS CVS vc-release-greater-or-equal release] 8])
(defalias 'vc-trunk-p #[(rev) "\n\"=?" [string-match "\\`[0-9]+\\.[0-9]+\\'" rev nil] 3])
(defalias 'vc-branch-part #[(rev) "\"O" [rev 0 string-match "\\.[0-9]+\\'"] 5])
#@56 Clear all cached file properties and the comment ring.
(defalias 'vc-clear-context #[nil "	\"\f!" [fillarray vc-file-prop-obarray nil make-ring vc-maximum-comment-ring-size vc-comment-ring] 3 (#$ . 6336) nil])
(defalias 'vc-file-clear-masterprops #[(file) "	#	#	!= 	#L =@ 	#	#	#	#L =L 	#)" [vc-file-setprop file vc-latest-version nil vc-your-latest-version vc-backend type SCCS vc-master-locks RCS vc-default-branch vc-head-version vc-master-workfile-version CVS vc-cvs-status] 5])
(defalias 'vc-head-version #[(file) "	\" 	!	\"" [vc-file-getprop file vc-head-version vc-fetch-master-properties] 3])
(defalias 'vc-latest-on-branch-p #[(file) "	!= 	!	!s \n=l 	!		!7 	!	\"	h !q	!\"	!!QEC!@!b !!	)*s \n=s )" [vc-backend file type SCCS vc-workfile-version vc-latest-version RCS nil tip-version workfile-version vc-trunk-p vc-fetch-master-properties vc-file-getprop vc-head-version get-buffer-create "*vc-info*" vc-insert-file vc-name "^desc" vc-parse-buffer "^\\(" regexp-quote vc-branch-part "\\.[0-9]+\\)\ndate[ 	]+\\([0-9.]+\\);" 1 2 get-buffer kill-buffer CVS t] 6])
(defalias 'vc-registration-error #[(file) "	 \" \"" [file error "File %s is not under version control" "Buffer %s is not associated with a file" buffer-name] 3])
(byte-code "! B" [boundp vc-binary-assoc nil current-load-list] 2)
#@68 Look for a command anywhere on the subprocess-command search path.
(defalias 'vc-find-binary #[(name) "	\n\"A č" [assoc name vc-binary-assoc found (byte-code "\n\"Ç" [mapcar #[(s) " \nQ! \nBB\")" [s "/" name full file-executable-p vc-binary-assoc throw found] 3] exec-path nil] 3)] 3 (#$ . 7783)])
#@388 Execute a version-control command, notifying user and checking for errors.
Output from COMMAND goes to BUFFER, or *vc* if BUFFER is nil.  
The command is successful if its exit status does not exceed OKSTATUS.
The last argument of the command is the master name of FILE if LAST is 
`MASTER', or the workfile of FILE if LAST is `WORKFILE'; this is appended 
to an optional list of FLAGS.
(defalias 'vc-do-command #[(buffer okstatus command file last &rest flags) " !\n \f #pp# !\n\f\n!q!L!!PL\f\n \"k =k C\"= \n!G  O  O*C\"\"#\"!'\"'#R*B,*#&+db!y 1W \n!eb  \" #\f\"q." [file expand-file-name buffer "*vc*" vc-command-messages message "Running %s on %s..." command nil vc-name default-directory status olddir vc-file squeezed camefrom obuf get-buffer-create make-local-variable vc-parent-buffer vc-parent-buffer-name " from " buffer-name erase-buffer mapcar #[(s) " \nC\"" [s append squeezed] 3] flags last MASTER append WORKFILE pwd preflen 0 vc-path exec-path "PATH=" getenv "PATH" path-separator mapconcat identity process-environment t win32-quote-process-args apply call-process set-buffer-modified-p -1 okstatus pop-to-buffer shrink-window-if-larger-than-buffer error "Running %s...FAILED (%s)" format "status %d" "Running %s...OK"] 9 (#$ . 8115)])
(defalias 'vc-position-context #[(posn) " d\\^{E" [posn buffer-size 100] 6])
(defalias 'vc-find-position-by-context #[(context) "	8Ú d@ 	A@ ZW [	@b\n#; `Z\nGZb\n#? `\nGZ*)" [2 context context-string "" buffer-size diff 0 search-forward nil t] 5])
(defalias 'vc-buffer-context #[nil "`! !p=  !!! p \"*\n\f\f\nE," [vc-position-context marker-buffer mark-marker nil boundp compilation-error-list curbuf mapcar #[(buffer) "q	 \n:/ \f/ @A!( @A!=( A\f \f4 *" [buffer compilation-old-error-list compilation-error-list nil buffer-error-marked-p errors markerp marker-buffer t] 4] buffer-list reparse mark-active mark-context point-context] 7])
(defalias 'vc-restore-buffer-context #[(context) "@A@8\nJ \n@C \n@qp@!\"B @@UB A/ +\nA \f!W b)j !i !)+" [context 2 reparse mark-context point-context marker-position compilation-error-list error-pos compilation-last-buffer compile-reinitialize-errors (4) compilation-parsing-end vc-find-position-by-context new-point new-mark set-mark] 5])
(defalias 'vc-revert-buffer1 #[(&optional arg no-confirm) "~ \f#	!)" [vc-buffer-context context revert-buffer arg no-confirm t vc-restore-buffer-context] 4 nil "P"])
(defalias 'vc-buffer-sync #[(&optional not-urgent) "  	  \"!  ? !" [buffer-modified-p vc-suppress-confirm y-or-n-p format "Buffer %s modified; save it? " buffer-name save-buffer not-urgent error "Aborted"] 4])
(defalias 'vc-workfile-unchanged-p #[(file &optional want-differences-if-changed) "	\"	!8:  : 	ɉ?$U	4 5 #)*" [vc-file-getprop file vc-checkout-time 5 file-attributes lastmod checkout-time want-differences-if-changed vc-backend-diff nil 0 unchanged vc-file-setprop] 6])
(defalias 'vc-next-action-on-file #[(file verbose &optional comment) "	!	!É. \n\"\f( ͉	!= 	!=E 	!= T  \"! t 	!z \f!z \f!z !z p!\f \f! \f!\"! !	!U !\f	\f!?# \"	!B( 	\" ꋃ 	!	!! !݉\"	!\n=	!#!	!	!!%	!!		!!9>	!!\"= [	\"=s@ \"s߁A \"B 	\nC !	!#D 	!E 	! 	! ՁF !G 	!H 	݉#\nI !J 	#-" [vc-name file vc-backend nil buffer version owner vc-type vc-file vc-register verbose comment vc-initial-comment vc-checkout-writable-buffer-hook vc-log-after-operation-hook vc-checkout-writable-buffer CVS vc-cvs-status needs-checkout needs-merge vc-dired-mode yes-or-no-p format "%s is not up-to-date.  Merge in changes now? " buffer-name get-file-buffer buffer-modified-p switch-to-buffer-other-window vc-buffer-sync t "Buffer %s modified; merge file on disc anyhow? " error "Merge aborted" vc-backend-merge-news 0 message "Conflicts detected!" vc-resynch-buffer "%s needs update" vc-locking-user vc-checkout-carefully vc-workfile-unchanged-p ((byte-code "!eb\"! P!" [pop-to-buffer "*vc-diff*" insert-string format "Changes to %s since last lock:\n\n" file beep yes-or-no-p "File has unlocked changes, " "claim lock retaining changes? "] 4)) vc-backend-steal vc-mode-line "Revert to checked-in version, instead? " "Checkout aborted" vc-revert-buffer1 SCCS vc-checkout read-string "Branch or version to move to: " "Sorry, this is not implemented for SCCS" vc-latest-on-branch-p "This is not the latest version.  Really lock it?  " "Lock the latest version instead? " vc-trunk-p vc-workfile-version "" vc-branch-part user-login-name "Sorry, you can't steal the lock on %s this way" RCS vc-backend-release-p "5.6.2" "File is locked by %s" vc-steal-lock "Version to steal: " find-file-other-window find-file "Revert to master version? " vc-backend-revert vc-resynch-window "New version level: " vc-checkin] 6])
(defalias 'vc-next-action-dired #[(file rev comment) " p	ŉ	 \feb\f#)  ?? b! 	\"!#q\n!\f!\"+Bbyŉ\f#  5 )   	\"!#q\n!\f!\"+C. +" [current-window-configuration default-directory dired-dir dired-buffer configuration nil results found case-fold-search buffer-read-only dired-marker-regexp next-position regexp re-search-forward t point-marker sit-for 0 dired-get-filename p file message "Processing %s..." file-name-directory vc-next-action-on-file comment vc-dired-update-line set-window-configuration "Processing %s...done" 1 dired-move-to-filename] 5])
#@2026 Do the next logical checkin or checkout operation on the current file.
   If you call this from within a VC dired buffer with no files marked,
it will operate on the file in the current line.
   If you call this from within a VC dired buffer, and one or more
files are marked, it will accept a log message and then operate on
each one.  The log message will be used as a comment for any register
or checkin operations, but ignored when doing checkouts.  Attempted
lock steals will raise an error.
   A prefix argument lets you specify the version number to use.

For RCS and SCCS files:
   If the file is not already registered, this registers it for version
control and then retrieves a writable, locked copy for editing.
   If the file is registered and not locked by anyone, this checks out
a writable and locked file ready for editing.
   If the file is checked out and locked by the calling user, this
first checks to see if the file has changed since checkout.  If not,
it performs a revert.
   If the file has been changed, this pops up a buffer for entry
of a log message; when the message has been entered, it checks in the
resulting changes along with the log message as change commentary.  If
the variable `vc-keep-workfiles' is non-nil (which is its default), a
read-only copy of the changed file is left in place afterwards.
   If the file is registered and locked by someone else, you are given
the option to steal the lock.

For CVS files:
   If the file is not already registered, this registers it for version
control.  This does a "cvs add", but no "cvs commit".
   If the file is added but not committed, it is committed.
   If your working file is changed, but the repository file is
unchanged, this pops up a buffer for entry of a log message; when the
message has been entered, it checks in the resulting changes along
with the logmessage as change commentary.  A writable file is retained.
   If the repository file is changed, you are asked if you want to
merge in the changes into your working copy.
(defalias 'vc-next-action #[(verbose) "" [nogo (byte-code "(  \n#Ř ǉ#\" ǉ%\")5 !( A \"!" [vc-dired-mode dired-get-marked-files files mapconcat #[(f) "	!= 	!= 	!= ƇǇ	!$ ƇǇ" [vc-backend f CVS vc-cvs-status locally-modified locally-added "@" "" vc-locking-user] 2] "" vc-next-action-dired nil "dummy" vc-start-entry "Enter a change comment for the marked files." throw nogo vc-parent-buffer pop-to-buffer buffer-file-name vc-next-action-on-file verbose vc-registration-error] 6)] 2 (#$ . 14203) "P"])
#@78 Retrieve a writable copy of the latest version of the current buffer's file.
(defalias 'vc-checkout-writable-buffer #[(&optional file rev) "	  \f#" [vc-checkout file buffer-file-name t rev] 4 (#$ . 16799)])
#@61 Register the current file into your version-control system.
(defalias 'vc-register #[(&optional override comment) " !! \f! !\f( !( !) ?  U? !? ! N ![ \"!\"" [buffer-file-name error "No visited file" vc-name master file-exists-p "This file is already registered" y-or-n-p "Previous master file has vanished.  Make a new one? " buffer-modified-p buffer-size 0 set-buffer-modified-p t vc-buffer-sync vc-make-backup-files make-local-variable backup-inhibited vc-admin override read-string format "Initial version level for %s: "] 7 (#$ . 17018) "P"])
(defalias 'vc-resynch-window #[(file &optional keep noquery) "	! \n \"\"\"!p!" [buffer-file-name file keep remove-hook find-file-hooks vc-find-file-hook vc-revert-buffer1 t noquery add-hook vc-mode-line kill-buffer] 3])
(defalias 'vc-resynch-buffer #[(file &optional keep noquery) "	! \nq	\f#))" [get-file-buffer file buffer vc-resynch-window keep noquery] 5])
(defalias 'vc-start-entry #[(file rev comment msg action &optional after-hook) "\n ! p !q !!!\nL!!PL7 ! !G n  =e !s c!s \")" [file find-file-noselect parent comment get-buffer-create "*VC-log*" pop-to-buffer make-local-variable vc-parent-buffer vc-parent-buffer-name " from " buffer-name vc-mode-line vc-log-mode vc-log-after-operation-hook after-hook action vc-log-operation vc-log-file rev vc-log-version erase-buffer t vc-finish-logentry nil message "%s  Type C-c C-c when done." msg] 4])
#@197 Check a file into your version-control system.
FILE is the unmodified name of the file.  REV should be the base version
level to check it in under.  COMMENT, if specified, is the checkin comment.
(defalias 'vc-admin #[(file rev &optional comment) "	\n	 \f?&" [vc-start-entry file rev comment vc-initial-comment "Enter initial comment." vc-backend-admin nil] 7 (#$ . 18592)])
#@58 Retrieve a copy of the latest version of the given file.
(defalias 'vc-checkout #[(file &optional writable rev) "\n\" ! !\n	#\nˉ#" [string-match "^/[^/:]+:" file vc-find-binary "ftp" error "Sorry, you can't check out files over FTP" vc-backend-checkout writable rev vc-resynch-buffer t] 4 (#$ . 18981)])
#@41 Steal the lock on the current workfile.
(defalias 'vc-steal-lock #[(file rev &optional owner) "\n\n \f! \f# \f	\n#!' !!!!!  \n	\"\fEC&db	\" ۱!)" [nil file-description owner vc-locking-user file rev format "%s:%s" y-or-n-p "Take the lock on %s from %s? " error "Steal cancelled" pop-to-buffer get-buffer-create "*VC-mail*" expand-file-name "~/" default-directory auto-save-mode auto-save-default mail-mode erase-buffer mail-setup "Stolen lock on %s" vc-finish-steal "I stole the lock on %s, " current-time-string ".\n" message "Please explain why you stole the lock.  Type C-c C-c when done."] 9 (#$ . 19310)])
(defalias 'vc-finish-steal #[(file version) "	\n\"	! 	!q	ŉ#)" [vc-backend-steal file version get-file-buffer vc-resynch-window t] 4])
#@415 Check in the file specified by FILE.
The optional argument REV may be a string specifying the new version level
(if nil increment the current level).  The file is either retained with write
permissions zeroed, or deleted (according to the value of `vc-keep-workfiles').
If the back-end is CVS, a writable workfile is always kept.
COMMENT is a comment string; if omitted, a buffer is
popped up to accept a comment.
(defalias 'vc-checkin #[(file &optional rev comment) "	\n&" [vc-start-entry file rev comment "Enter a change comment." vc-backend-checkin vc-checkin-hook] 7 (#$ . 20130)])
#@230 Enter last VC comment into change log file for current buffer's file.
Optional arg (interactive prefix) non-nil means prompt for user name and site.
Second arg is file name of change log.  If nil, uses `change-log-default-name'.
(defalias 'vc-comment-to-change-log #[(&optional whoami file-name) "!\"	\f͉$	c )!- !  `WF yj5 `*PPy`\"*\"![!my !y c+" [require add-log ring-ref vc-comment-ring 0 ignore nil end add-log-current-defun-function comment add-change-log-entry whoami file-name t point-marker looking-at "\\s *\\s(" delete-char -2 just-one-space current-indentation indentation 1 paragraph-separate "\\|\\s *\\s(" paragraph-start fill-region skip-syntax-forward " " skip-syntax-backward "\n\n" "\n"] 5 (#$ . 20730) (byte-code "  D" [current-prefix-arg prompt-for-change-log-name] 2)])
#@58 Complete the operation implied by the current log entry.
(defalias 'vc-finish-logentry #[(&optional nocomment) " dbn  ! \"q%  )\n/ !\n !!!!)#)p #!-" [nocomment newline vc-backend-logentry-check vc-log-file ring-insert vc-comment-ring buffer-string vc-parent-buffer vc-dired-mode vc-buffer-sync vc-log-operation error "No log operation is pending" vc-log-version vc-log-after-operation-hook after-hook log-entry log-version log-file log-operation pop-to-buffer get-buffer "*VC-log*" logbuf delete-windows-on kill-buffer buffer-file-name vc-resynch-window vc-keep-workfiles t run-hooks] 5 (#$ . 21611) nil])
#@42 Cycle backwards through comment history.
(defalias 'vc-previous-comment #[(arg) "	!X ! K  4 	V& ʂ2 	W1 ˂2 	\\\n\"T\"	\"c)" [ring-length vc-comment-ring len 0 message "Empty comment ring" ding erase-buffer vc-comment-ring-index arg -1 1 mod "%d" ring-ref] 4 (#$ . 22309) "*p"])
#@41 Cycle forwards through comment history.
(defalias 'vc-next-comment #[(arg) "	[!" [vc-previous-comment arg] 2 (#$ . 22634) "*p"])
#@65 Searches backwards through comment history for substring match.
(defalias 'vc-comment-search-reverse #[(str) " \n  !!T		W? \"\"? \\# 	WP Z!S !+" [str "" vc-last-comment-match vc-comment-ring-index -1 regexp-quote ring-length vc-comment-ring n len string-match ring-ref 1 vc-previous-comment error "Not found"] 6 (#$ . 22771) "sComment substring: "])
#@64 Searches forwards through comment history for substring match.
(defalias 'vc-comment-search-forward #[(str) " \n  !!	Y= \"\"= Z\" YM Z!P !+" [str "" vc-last-comment-match vc-comment-ring-index 0 regexp-quote ring-length vc-comment-ring n len string-match ring-ref 1 vc-next-comment error "Not found"] 6 (#$ . 23183) "sComment substring: "])
#@289 Display diffs between file versions.
Normally this compares the current file and buffer with the most recent 
checked in version of that file.  This uses no arguments.
With a prefix argument, it reads the file name to use
and two version designators specifying which versions to compare.
(defalias 'vc-diff #[(historic &optional not-urgent) "\n  !q !\n  !) !- !? !D !!!\\ \" !q! U} \" !eb *?" [vc-dired-mode find-file-noselect dired-get-filename vc-parent-buffer pop-to-buffer historic call-interactively vc-version-diff buffer-file-name vc-name error "There is no version-control master associated with this buffer" nil unchanged file vc-registration-error vc-buffer-sync not-urgent vc-workfile-unchanged-p message "No changes to %s since latest version" vc-backend-diff "*vc-diff*" file-name-directory default-directory buffer-size 0 t shrink-window-if-larger-than-buffer] 4 (#$ . 23587) (list current-prefix-arg t)])
#@170 For FILE, report diffs between two stored versions REL1 and REL2 of it.
If FILE is a directory, generate diffs between versions for all registered
files in or below it.
(defalias 'vc-version-diff #[(file rel1 rel2) "  !a p!q!L!!PL 9 ? ӱ!q!\"!ceb!)#Ur $!" [rel1 "" nil rel2 file-directory-p file camefrom get-buffer-create "*vc-status*" make-local-variable vc-parent-buffer vc-parent-buffer-name " from " buffer-name erase-buffer "Diffs between " "last version checked in" " and " "current workfile(s)" ":\n\n" "*vc-diff*" cd vc-file-tree-walk default-directory #[(f) "\n\"\n!?! \n!! \n#! ed#" [message "Looking at %s" f file-directory-p vc-registered vc-backend-diff rel1 rel2 append-to-buffer "*vc-status*"] 4] pop-to-buffer "\nEnd of diffs.\n" set-buffer-modified-p vc-backend-diff 0 message "No changes to %s between %s and %s."] 5 (#$ . 24610) "FFile or directory to diff: \nsOlder version: \nsNewer version: "])
#@197 Visit version REV of the current buffer in another window.
If the current buffer is named `F', the version is named `F.~REV~'.
If `F.~REV~' already exists, it is used instead of being re-created.
(defalias 'vc-version-other-window #[(rev) "\n  !q !\n N !N Ș, !. \n\nR!H \n$!*!" [vc-dired-mode find-file-noselect dired-get-filename vc-parent-buffer pop-to-buffer buffer-file-name vc-name rev "" vc-latest-version version ".~" "~" filename file-exists-p vc-backend-checkout nil find-file-other-window vc-registration-error] 5 (#$ . 25632) "sVersion to visit (default is latest version): "])
#@177 Insert headers in a file for use with your version-control system.
Headers desired are inserted at the start of the buffer, and are pulled from
the variable `vc-header-alist'.
(defalias 'vc-insert-headers #[nil "	  ! !	 ~ # !c 	A\n@6 6 \nA@E E  !\"A\"b \",*" [vc-dired-mode find-file-other-window dired-get-filename vc-parent-buffer pop-to-buffer vc-check-headers y-or-n-p "Version headers already exist.  Insert another set? " major-mode vc-comment-alist delims comment-start "#" comment-start-vc comment-end "" comment-end-vc assoc vc-backend buffer-file-name vc-header-alist hdstrings mapcar #[(s) "\nı" [comment-start-vc "	" s comment-end-vc "\n"] 6] vc-static-header-alist #[(f) "	@\n\" 	A\f@\"c" [string-match f buffer-file-name format hdstrings] 3]] 4 (#$ . 26279) nil])
(defalias 'vc-clear-headers #[nil " eb# ! 	!)" [vc-buffer-context context re-search-forward "\\$\\([A-Za-z]+\\): [^\\$]+\\$" nil t replace-match "$\\1$" vc-restore-buffer-context] 4])
(derived-mode-init-mode-variables (quote vc-dired-mode))
#@348 The major mode used in VC directory buffers.  It is derived from Dired.
All Dired commands operate normally.  Users currently locking listed files
are listed in place of the file's owner and group.
Keystrokes bound to VC commands will execute as though they had been called
on a buffer attached to the file named in the current Dired buffer line.
(defalias 'vc-dired-mode #[nil " N #!!!!" [dired-mode special put vc-dired-mode t major-mode "Dired under VC" mode-name derived-mode-set-keymap derived-mode-set-syntax-table derived-mode-set-abbrev-table derived-mode-run-hooks] 4 (#$ . 27394) nil])
(byte-code "	#	#	#" [define-key vc-dired-mode-map "v" vc-prefix-map "g" vc-dired-update "=" vc-diff] 4)
(defalias 'vc-dired-state-info #[(file) "	!= 	!L \f= ƂO \f=$ ȂO \f=. ʂO \f=8 ̂O \f=B ΂O \f=O ЂO 	!)" [vc-backend file CVS vc-cvs-status cvs-state up-to-date nil needs-checkout "patch" locally-modified "modified" needs-merge "merge" unresolved-conflict "conflict" locally-added "added" vc-locking-user] 3])
(defalias 'vc-dired-reformat-line #[(x) "``b\f#\" \f#1 !!!A \f#A !!Q \nO !] QPO	Q!." [nil date-and-file owner perm limit pos re-search-forward "\\([drwxlts-]+ \\) *[0-9]+ \\([^ ]+\\) +[^ ]+ +[0-9]+\\( [^ 0-9]+ [0-9 ][0-9] .*\\)" t "\\([drwxlts-]+ \\) *[0-9]+ \\([^ ]+\\) +[0-9]+\\( [^ 0-9]+ [0-9 ][0-9] .*\\)" match-string 1 2 3 "\\([drwxlts-]+ \\) *[0-9]+\\( [^ 0-9]+ [0-9 ][0-9] .*\\)" x number-to-string "(" ")" "                 " 0 10 rep replace-match] 5])
(defalias 'vc-dired-update-line #[(file) "yu`yy\n`|\"yG[!!GOc\nb)!!" [0 2 start 1 insert-directory file dired-listing-switches -1 nil delete-char expand-file-name default-directory vc-dired-reformat-line vc-dired-state-info] 3])
(defalias 'vc-dired-update #[(verbose) "	\n\"" [vc-directory default-directory verbose] 3 nil "P"])
#@213 Show version-control status of the current directory and subdirectories.
Normally it creates a Dired buffer that lists only the locked files
in all these directories.  With a prefix argument, it lists all files.
(defalias 'vc-directory #[(dirname verbose) "!!GS= PGƉƉ	\n\f\"ы	!eby``|)yj \"eb! !c  #." [require dired expand-file-name dirname 47 "/" nil default-directory dired-buf-mod-count dired-buf old-dir statelist filelist dl nonempty vc-file-tree-walk #[(f) "	!' 	!\f & 	OB& B)" [vc-registered f vc-dired-state-info state verbose dl nil filelist statelist] 3] ((byte-code "	\nB#\nG=?)" [dired-internal-noselect dirname filelist dired-listing-switches vc-dired-mode dired-buf 0 nonempty] 4)) switch-to-buffer buffer-read-only 1 start 0 mapcar #[(x) "u\n!y" [2 vc-dired-reformat-line x 1] 2] t dired-next-line 2 "  " message "No files are currently %s under %s" verbose "registered" "locked"] 8 (#$ . 29382) "DDired under VC (directory): \nP"])
#@71 Show version-control status of all files under the current directory.
(defalias 'vc-directory-18 #[(verbose) "	!q \n!	\" U?), \"eb 7 ҂8 	#*" [nil default-directory dir nonempty get-buffer-create "*vc-status*" erase-buffer cd vc-file-tree-walk #[(f) "	! 	! \f 	#c)" [vc-registered f vc-locking-user user verbose format "%s	%s\n"] 5] buffer-size 0 pop-to-buffer t shrink-window-if-larger-than-buffer message "No files are currently %s under %s" verbose "registered" "locked"] 4 (#$ . 30471) "P"])
(byte-code "!\n M" [boundp minor-mode-map-alist vc-directory vc-directory-18] 2)
(defalias 'vc-add-triple #[(name file rev) "\n!!\"!\"!db\n˱ p!)" [find-file expand-file-name vc-name-assoc-file file-name-as-directory vc-backend-subdirectory-name file file-name-directory name "	:	" "	" rev "\n" basic-save-buffer kill-buffer] 8])
(defalias 'vc-record-rename #[(file newname) "\n!!\"!\"!eb!Q#- Pˉ#  p!)" [find-file expand-file-name vc-name-assoc-file file-name-as-directory vc-backend-subdirectory-name file file-name-directory re-search-forward ":" regexp-quote "$" nil t replace-match newname basic-save-buffer kill-buffer] 8])
(defalias 'vc-lookup-triple #[(file name) " HY \nX) !q	\f!\f!\"!\"!\fRDC!@!)" [name 0 firstchar 48 57 get-buffer-create "*vc-info*" vc-insert-file expand-file-name vc-name-assoc-file file-name-as-directory vc-backend-subdirectory-name file file-name-directory vc-parse-buffer "	:	" "	\\(.+\\)" 1 kill-buffer] 9])
(defalias 'vc-snapshot-precondition #[nil "Í)" [nil status vc-locked-example (byte-code "	\"" [vc-file-tree-walk default-directory #[(f) "	! 	! 	\"	! Ɖ" [vc-registered f vc-locking-user throw vc-locked-example get-file-buffer visited status] 3] status] 3)] 2])
#@209 Make a snapshot called NAME.
The snapshot is made from all registered files at or below the current
directory.  For each file, the version level of its latest
version becomes part of the named configuration.
(defalias 'vc-create-snapshot #[(name) " ; 	\" \")" [vc-snapshot-precondition result error "File %s is locked" vc-file-tree-walk default-directory #[(f) "	!\n 	\"" [vc-name f vc-backend-assign-name name] 3]] 4 (#$ . 32355) "sNew snapshot name: "])
#@214 Retrieve the snapshot called NAME.
This function fails if any files are locked at or below the current directory
Otherwise, all registered files are checked out (unlocked) at their version
levels in the snapshot.
(defalias 'vc-retrieve-snapshot #[(name) " ; \"  = !\n\"*" [vc-snapshot-precondition nil update result error "File %s is locked" visited yes-or-no-p "Update the affected buffers? " vc-file-tree-walk default-directory #[(f) "	!\n ď" [vc-name f nil (byte-code "	#\f 	Ɖ#" [vc-backend-checkout f nil name update vc-resynch-buffer t] 4) ((error t))] 3]] 4 (#$ . 32836) "sSnapshot name to retrieve: "])
#@56 List the change log of the current buffer in a window.
(defalias 'vc-print-log #[nil "\n  !q !\n \\ !\\ !!!!\f!G ЕДZ!y3 eb!X ЕДZ! )!" [vc-dired-mode find-file-noselect dired-get-filename vc-parent-buffer pop-to-buffer buffer-file-name vc-name file vc-backend-print-log get-buffer-create "*vc*" file-name-directory default-directory looking-at "=*\n" delete-char 0 -1 "[	\n\f ]+" shrink-window-if-larger-than-buffer vc-registration-error] 3 (#$ . 33491) nil])
#@269 Revert the current buffer's file back to the latest checked-in version.
This asks for confirmation if the buffer contents are not identical
to that version.
If the back-end is CVS, this will give you the most recent revision of
the file on the branch you are editing.
(defalias 'vc-revert-buffer #[nil "	  ! !	 p\"	\n\f	N !N  !D \"D  !G  !R \nq	p  !m \"m  !p  \f!\fȉ#," [vc-dired-mode find-file-other-window dired-get-filename vc-parent-buffer pop-to-buffer buffer-file-name nil vc-diff t changed obuf vc-suppress-confirm file yes-or-no-p "Discard changes? " window-dedicated-p selected-window one-window-p selected-frame make-frame-invisible delete-window error "Revert cancelled" vc-backend-revert vc-resynch-window] 6 (#$ . 34015) nil])
#@120 Get rid of most recently checked in version of this file.
A prefix argument means do not revert the buffer afterwards.
(defalias 'vc-cancel-version #[(norevert) "	  ! !	  !#  !L  !=3 !L  !A !L  !L ! !!] ӂa ! \"! } !? \" ⏈   !$ !& != )  !\"," [vc-dired-mode find-file-other-window dired-get-filename vc-parent-buffer pop-to-buffer vc-registered buffer-file-name vc-registration-error vc-backend CVS error "Unchecking files under CVS is dangerous and not supported in VC" vc-locking-user "This version is locked; use vc-revert-buffer to discard changes" vc-latest-on-branch-p "This is not the latest version--VC cannot cancel it" vc-workfile-version target vc-trunk-p "" vc-branch-part recent current-window-configuration config nil done yes-or-no-p format "Remove version %s from master? " norevert "Revert buffer to most recent remaining version? " vc-backend-uncheck err (byte-code "  \f#  \f#Ƈ" [norevert vc-backend-checkout buffer-file-name t recent vc-checkout nil done] 4) ((error (byte-code "qeb# !!% \n@\nA\"Ç" ["*vc*" search-forward "no side branches present for" nil t vc-branch-part recent set-window-configuration config signal err] 4))) set-visited-file-name vc-make-backup-files make-local-variable backup-inhibited t RCS buffer-read-only vc-clear-headers vc-mode-line message "Version %s has been removed from the master"] 4 (#$ . 34830) "P"])
#@62 Rename file OLD to NEW, and rename its master file likewise.
(defalias 'vc-rename-file #[(old new) "	!=\f !	!  !  !	!+ !	!6 !	!z 	!I !!X 	!!\\ !	!	!j 	!܍+\" 	! 		\") q	!)	!	!!))	!\"= 		\" \"=  \"= )" [vc-backend old CVS error "Renaming files under CVS is dangerous and not supported in VC" get-file-buffer oldbuf buffer-modified-p "Please save files before moving them" new "Already editing new file name" file-exists-p "New file already exists" vc-name oldmaster vc-locking-user "Please check in files before moving them" file-symlink-p vc-backend-subdirectory-name "This is not a safe thing to do in the presence of symbolic links" rename-file file-name-directory "" file-name-nondirectory newbase newdir backend found (byte-code "\n\"!" [mapcar #[(s) "	A=# 	@\f#! !\" \"*" [backend s format newdir newbase newmaster file-name-directory newmasterdir file-directory-p throw found] 5] vc-master-templates error "New file lacks a version control directory"] 3) buffer-read-only set-visited-file-name vc-mode-line set-buffer-modified-p nil type SCCS vc-record-rename RCS] 7 (#$ . 36356) "fVC rename file: \nFRename to: "])
#@430 Find change log file and add entries from recent RCS logs.
The mark is left at the end of the text prepended to the change log.
With prefix arg of C-u, only find log entries for the current buffer's file.
With any numeric prefix arg, find log entries for all files currently visited.
Otherwise, find log entries for all registered files in the default directory.
From a program, any arguments are passed to the `rcs2log' script.
(defalias 'vc-update-change-log #[(&rest args) "	  \f \f !   eb !L  \"&=P ݂Q \"+" [default-directory add-log-full-name user-full-name add-log-mailing-address user-mail-address mailing-address full-name odefault find-file-other-window find-change-log barf-if-buffer-read-only vc-buffer-sync undo-boundary push-mark message "Computing change log entries..." "Computing change log entries... %s" args apply call-process "rcs2log" nil t "-u" user-login-name "	" mapcar #[(f) "\n! \n \nP!" [file-relative-name file-name-absolute-p f odefault] 3] 0 "done" "failed"] 14 (#$ . 37636) (byte-code ": 	C8  4 @!- \f!- \fBA +P\n\n!N \n#\")" [current-prefix-arg buffer-file-name nil buffer-list file buffers files vc-backend default-directory "RCS" RCS file-directory-p mapcar #[(f) "\n\" \nĕO\n" [string-match "\\(.*\\),v$" f 0 1] 3] directory-files "...\\|^[^.]\\|^.[^.]"] 7)])
(defalias 'vc-backend-admin #[(file &optional rev comment) "	!\n ! ł 	\" !$ \nC !. łC !8 ƂC !B ΂C \n= 	Z P	Pg P\"@	!u 	!#&\n	!\" 	% = 	\" \" 炯 P P	&	 = 	 \" P&)	\"" [vc-file-clearprops file vc-default-back-end vc-find-binary "rcs" RCS SCCS message "Registering %s..." file-exists-p vc-backend-subdirectory-name "RCS" "SCCS" "CVS" CVS backend vc-do-command nil 0 "admin" MASTER rev "-r" "-fb" "-i" comment "-y" format rassq vc-master-templates file-name-directory "" file-name-nondirectory delete-file vc-keep-workfiles "get" "ci" vc-backend-release-p "5.6.4" "-u" "-t-" "cvs" WORKFILE "add" string-match "[^	\n ]" "-m" "Registering %s...done"] 16])
(defalias 'vc-backend-checkout #[(file &optional writable rev workfile) " 		!\" q	;' 	C) 	\n\n!\n	!= O ИO  	!!b Ղc \"ڎ	!\" !\"#  	\"P\f&+~	  	\"P\f&		#~=	!! Ղ \"	!\" !\"#P\f&+~18И8	&		!=HNZPh	!8g8P)\f&\nqeb#{1)	1#И		!1!?1!1P&)~@ =~A 	B ߁C P\f&*~ИցD 	B E F &KցD 	B 0	!G =0H E DИ?DP\f&\nss	!G =gI 	!\"!sJ 		!\"\"~	#)K 	!	L M  #	N O P 	!8#ǁQ \"." [workfile file get-file-buffer nil switches file-buffer filename message "Checking out %s..." vc-checkout-switches default-directory file-name-directory vc-backend type SCCS rev "" logior file-modes vc-name writable 128 0 t failed vc-modes ((byte-code " \n! \n!" [failed file-exists-p filename delete-file] 2)) apply vc-do-command "/bin/sh" MASTER "-c" format "if [ x\"$1\" = x ]; then shift; fi; 			       umask %o; exec >\"$1\" || exit; 			       shift; umask %o; exec get \"$@\"" logand lognot 511 default-file-modes "-e" "-p" "-r" vc-lookup-triple "get" vc-file-setprop vc-workfile-version RCS ((byte-code " \n! \n!" [failed file-exists-p filename delete-file] 2)) "if [ x\"$1\" = x ]; then shift; fi; 			       umask %o; exec >\"$1\" || exit; 			       shift; umask %o; exec co \"$@\"" "-l" new-version "rcs" "-b" "co" vc-checkout-model implicit "-f" workrev "*vc*" re-search-forward "^revision \\([0-9.]+\\).*\n" 1 vc-latest-on-branch-p vc-trunk-p vc-branch-part CVS ((byte-code " \n! \n!" [failed file-exists-p filename delete-file] 2)) WORKFILE "exec >\"$1\" || exit; shift; exec cvs update \"$@\"" "cvs" "update" "-A" manual "-w" zerop set-file-modes vc-file-clear-masterprops vc-locking-user user-login-name vc-checkout-time 5 file-attributes "Checking out %s...done"] 18])
(defalias 'vc-backend-logentry-check #[(file) "	!=  Y+ b!+ \n=$ ɂ+ \n=+ )" [vc-backend file type SCCS buffer-size 512 error "Log must be less than 512 characters; point is now at pos 512" RCS nil CVS] 3])
(defalias 'vc-backend-checkin #[(file rev comment) "\n\" \" \n! pq;( C* 	\n!\n!\f=o \nK PP	&	\n#\n#g\n%g\f=\n!\n\"  䂗 PP	&\n\n#\n#qeb# # {\n#!!\n!  !P&\"\nP&*g\f=gqeb#A\n{#G\n#W\n&\n#\n\n!8#+\n\"" [message "Checking in %s..." file comment string-match "[^	\n ]" "*** empty log message ***" get-file-buffer vc-checkin-switches switches vc-file-clear-masterprops vc-backend type SCCS apply vc-do-command nil 0 "delta" MASTER rev "-r" "-y" vc-file-setprop vc-locking-user none vc-workfile-version vc-keep-workfiles "get" RCS new-version old-version "ci" vc-backend-release-p "5.6.4" "-j" "-u" "-m" "*vc*" re-search-forward "new revision: \\([0-9.]+\\);" t "reverting to previous revision \\([0-9.]+\\)" 1 vc-branch-part "rcs" vc-trunk-p "-b" "5.6.2" CVS (byte-code " ! \f&\n* PP\f&\n" [rev vc-trunk-p apply vc-do-command nil 0 "cvs" file WORKFILE "ci" "-m" "intermediate" switches "-r" comment] 11) ((error (byte-code "	!= ! !" [vc-cvs-status file needs-merge error "Type C-x 0 C-x C-q to merge in changes" "Check-in failed"] 2))) "^\\(new\\|initial\\) revision: \\([0-9.]+\\)" 2 "cvs" WORKFILE "update" "-A" vc-checkout-time 5 file-attributes "Checking in %s...done"] 12])
(defalias 'vc-backend-revert #[(file) "\n\"\n!\n!=* \n&\n&V =B \n\n!P&V =V \n!\n&)\n#\n\n!8#\n\"" [message "Reverting %s..." file vc-file-clear-masterprops vc-backend type SCCS vc-do-command nil 0 "unget" MASTER "get" RCS "co" "-f" "-u" vc-workfile-version CVS delete-file "cvs" WORKFILE "update" vc-file-setprop vc-locking-user none vc-checkout-time 5 file-attributes "Reverting %s...done"] 11])
(defalias 'vc-backend-steal #[(file &optional rev) "\n\"\n!=8 \n\f \fP&\n\f2 \fP&] \f=S \n\fP\fP&] \f=] !)\n #\n\"" [message "Stealing lock on %s..." file vc-backend type SCCS vc-do-command nil 0 "unget" MASTER "-n" rev "-r" "get" "-g" RCS "rcs" "-M" "-u" "-l" CVS error "You cannot steal a CVS lock; there are no CVS locks to steal" vc-file-setprop vc-locking-user user-login-name "Stealing lock on %s...done"] 11])
(defalias 'vc-backend-uncheck #[(file target) "\n\"\n!= \n\fP&2 \f=2 \n\fP&)\n\"" [message "Removing last change from %s..." file vc-backend type SCCS vc-do-command nil 0 "rmdel" MASTER "-r" target RCS "rcs" "-o" "Removing last change from %s...done"] 9])
(defalias 'vc-backend-print-log #[(file) "	!= 	%3 \n=$ 	%3 \n=3 	&)" [vc-backend file type SCCS vc-do-command nil 0 "prs" MASTER RCS "rlog" CVS "cvs" WORKFILE] 8])
(defalias 'vc-backend-assign-name #[(file name) "	!= 		!#9 \n=) 	Q&9 \n=9 	&)" [vc-backend file type SCCS vc-add-triple name vc-latest-version RCS vc-do-command nil 0 "rcs" MASTER "-n" ":" CVS "cvs" WORKFILE "tag"] 10])
(defalias 'vc-backend-diff #[(file &optional oldvers newvers cmp) "	!= 	\"	\"3 \n=3 ' 	!	1 \n=?	\n=? \n= \n=I ̂J \n=V ςW 	` h Pq PF	? <  C\"	&= 		 A &	 \n 	 \n \n,E\n=B	!  	\"E	 ݂E	<C\"&E	&P/P<:=C&\nE	!)" [vc-backend file backend SCCS vc-lookup-triple oldvers newvers RCS vc-workfile-version cmp vc-rcsdiff-knows-brief no "vcdiff" "rcsdiff" command WORKFILE MASTER mode append "--brief" "-q" "-r" diff-switches options apply vc-do-command "*vc-diff*" 2 status 1 yes CVS "0" error "No revisions of %s exist" "diff" ("/dev/null") "cvs" vc-registration-error] 12])
(defalias 'vc-backend-merge-news #[(file) "\n\"\n!= !X \f=! !X \f=X \n!\n#\n#\n&!qeb#V ڂW ))\n\"" [message "Merging changes into %s..." file vc-backend type SCCS error "vc-backend-merge-news not meaningful for SCCS files" RCS "vc-backend-merge-news not meaningful for RCS files" CVS vc-file-clear-masterprops vc-file-setprop vc-workfile-version nil vc-locking-user vc-do-command 0 "cvs" WORKFILE "update" get-buffer "*vc*" re-search-forward "^cvs update: conflicts found in .*" t 1 "Merging changes into %s...done"] 8])
#@50 Check if the current file has any headers in it.
(defalias 'vc-check-headers #[nil "eb	!= #+ \n=$ #+ \n=+ *" [vc-backend buffer-file-name type SCCS re-search-forward "%[MIRLBSDHTEGUYFPQCZWA]%" nil t RCS "\\$[A-Za-z---]+\\(: [	 -#%-~-]*\\)?\\$" CVS] 5 (#$ . 46673) nil])
#@2449 Minor mode for driving version-control tools.
These bindings are added to the global keymap when you enter this mode:
\[vc-next-action]		perform next logical version-control operation on current file
\[vc-register]			register current file
\[vc-toggle-read-only]		like next-action, but won't register files
\[vc-insert-headers]		insert version-control headers in current file
\[vc-print-log]		display change history of current file
\[vc-revert-buffer]		revert buffer to latest version
\[vc-cancel-version]		undo latest checkin
\[vc-diff]		show diffs between file versions
\[vc-version-other-window]		visit old version in another window
\[vc-directory]		show all files locked by any user in or below .
\[vc-update-change-log]		add change log entry from recent checkins

While you are entering a change log message for a version, the following
additional bindings will be in effect.

\[vc-finish-logentry]	proceed with check in, ending log message entry

Whenever you do a checkin, your log comment is added to a ring of
saved comments.  These can be recalled as follows:

\[vc-next-comment]	replace region with next message in comment ring
\[vc-previous-comment]	replace region with previous message in comment ring
\[vc-comment-search-reverse]	search backward for regexp in the comment ring
\[vc-comment-search-forward]	search backward for regexp in the comment ring

Entry to the change-log submode calls the value of text-mode-hook, then
the value of vc-log-mode-hook.

Global user options:
	vc-initial-comment	If non-nil, require user to enter a change
				comment upon first checkin of the file.

	vc-keep-workfiles	Non-nil value prevents workfiles from being
				deleted when changes are checked in

        vc-suppress-confirm     Suppresses some confirmation prompts,
				notably for reversions.

	vc-header-alist		Which keywords to insert when adding headers
				with \[vc-insert-headers].  Defaults to
				'("%W%") under SCCS, '("$Id$") under 
				RCS and CVS.

	vc-static-header-alist	By default, version headers inserted in C files
				get stuffed in a static string area so that
				ident(RCS/CVS) or what(SCCS) can see them in
				the compiled object code.  You can override
				this by setting this variable to nil, or change
				the header template by changing it.

	vc-command-messages	if non-nil, display run messages from the
				actual version-control utilities (this is
				intended primarily for people hacking vc
				itself).

(defalias 'vc-log-mode #[nil "	!!\f	!!!!\"" [set-syntax-table text-mode-syntax-table use-local-map vc-log-entry-mode text-mode-abbrev-table local-abbrev-table vc-log-mode major-mode "VC-Log" mode-name make-local-variable vc-log-file vc-log-version vc-comment-ring-index set-buffer-modified-p nil buffer-file-name run-hooks text-mode-hook vc-log-mode-hook] 3 (#$ . 46983) nil])
(byte-code "%  #####" [vc-log-entry-mode make-sparse-keymap define-key "" vc-next-comment "" vc-previous-comment "" vc-comment-search-reverse "" vc-comment-search-forward "" vc-finish-logentry] 4)
#@98 Walk recursively through DIRNAME.
Invoke FUNC f ARGS on each non-directory file f underneath it.
(defalias 'vc-file-tree-walk #[(dirname func &rest args) "\n!\f#\n\"" [vc-file-tree-walk-internal expand-file-name dirname func args message "Traversing directory %s...done"] 4 (#$ . 50078)])
(defalias 'vc-file-tree-walk-internal #[(file func args) "	!\f 	\f#	!\"	!		!\")" [file-directory-p file apply func args message "Traversing directory %s..." abbreviate-file-name file-name-as-directory dir mapcar #[(f) "$ $ $ \fP!# 	#)" [f "." ".." vc-directory-exclusion-list dir dirf file-symlink-p vc-file-tree-walk-internal func args] 4] directory-files] 4])
(provide (quote vc))
