;ELC ;;; compiled by rms@mole.gnu.ai.mit.edu on Sun Jun 18 09:45:46 1995 ;;; from file /home/fsf/rms/e19/lisp/vc.el ;;; emacs version 19.28.95.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.28.90"))) (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) " DDCEDE DE =& ( DFE" [let type vc-backend f cond eq (quote SCCS) s (quote RCS) r (quote CVS) c RCS] 8 (#$ . 610)])) #@76 *If non-nil, treat user as expert; suppress yes-no prompts on some things. (defvar vc-suppress-confirm nil (#$ . -962)) #@56 *Prompt for initial comment when a file is registered. (defvar vc-initial-comment nil (#$ . -1088)) #@47 *Display run messages from back-end commands. (defvar vc-command-messages nil (#$ . -1194)) #@65 *Extra switches passed to the checkin program by \[vc-checkin]. (defvar vc-checkin-switches nil (#$ . -1292)) #@67 *Extra switches passed to the checkout program by \[vc-checkout]. (defvar vc-checkout-switches nil (#$ . -1408)) #@73 *Directory names ignored by functions that recursively walk file trees. (defvar vc-directory-exclusion-list (quote ("SCCS" "RCS" "CVS")) (#$ . -1527)) #@55 Maximum number of saved comments in the comment ring. (defconst vc-maximum-comment-ring-size 32 (#$ . 1684)) #@75 *A string or list of strings specifying switches to be be passed to diff. (defvar diff-switches "-c" (#$ . -1799)) #@70 *List of functions called after a checkin is done. See `run-hooks'. (defvar vc-checkin-hook nil (#$ . -1920)) #@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 (#$ . -2038)) #@71 *Header keywords to be inserted when `vc-insert-headers' is executed. (defvar vc-header-alist (quote ((SCCS "%W%") (RCS "$Id$") (CVS "$Id$"))) (#$ . -2333)) #@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"))) (#$ . -2497)) #@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 ".\\\"" ""))) (#$ . -2824)) #@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) (#$ . -3155)) (byte-code "! B! B!  B!- B!: B!G B B B B!c B!!t 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 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 file-regular-p file-regular-p-18] 2) #@56 Clear all cached file properties and the comment ring. (defalias 'vc-clear-context #[nil " \"‰" [fillarray vc-file-prop-obarray nil vc-comment-ring] 3 (#$ . 4299) 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-top-version CVS vc-cvs-status] 5]) (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]) (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 (#$ . 5217)]) #@362 Execute a version-control command, notifying user and checking for errors. The command is successful if its exit status does not exceed OKSTATUS. Output from COMMAND goes to buffer *vc*. 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 #[(okstatus command file last &rest flags) " !\n #pp  ! \n \f !q! L! !PL\n \" `=`\f C\"\f=!G O O*\f C\"\f!\"\"!&!&#R)B)\" \f& *db!y / W!eb   \" #\n \"q ." [expand-file-name file vc-command-messages message "Running %s on %s..." command nil vc-name default-directory status olddir vc-file squeezed camefrom obuf get-buffer-create "*vc*" make-local-variable vc-parent-buffer vc-parent-buffer-name " from " buffer-name erase-buffer mapcar #[(s) " \nC\"" [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 apply call-process t 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 (#$ . 5549)]) (defalias 'vc-position-context #[(posn) " d\\^{E" [posn buffer-size 100] 6]) (defalias 'vc-find-position-by-context #[(context) " 8Úd@ A@ ZW [ @b\n#;` Z\nGZb\n#?`\nGZ*)" [2 context context-string "" buffer-size diff 0 search-forward nil t] 5]) (defalias 'vc-revert-buffer1 #[(&optional arg no-confirm) "~`! !p= !!#p \"*\n \f \"\nq\n@h\n@qp @!\" g @@Ug AW+\nA\n7 !b)\f\f!!)," [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 revert-buffer arg no-confirm marker-position error-pos compilation-last-buffer compile-reinitialize-errors (4) compilation-parsing-end vc-find-position-by-context new-point new-mark set-mark] 7 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\" %̉  != !l \"lԋU ! !!a!Ӊ\" ! =!= P% #)! != \n \"  ! ! #=' !현' ! !' \"!  \" ! !U! ?# \"={;{ a!L #] @A& !);B # !CD!E ! ! ׁF!G ! Ӊ# ݁H!I \f\n#," [vc-name file vc-backend nil 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-locking-user vc-checkout-carefully vc-workfile-unchanged-p t ((byte-code "!eb \"! P!" [pop-to-buffer "*vc*" 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 yes-or-no-p "Revert to checked-in version, instead? " error "Checkout aborted." vc-revert-buffer1 SCCS read-string "Branch or version to move to: " rev RCS vc-do-command 0 "rcs" MASTER "-b" vc-checkout "Sorry, this is not implemented for SCCS." user-login-name "Sorry, you can't steal the lock on %s this way" vc-steal-lock "Version to steal: " vc-workfile-version "0" vc-latest-version vc-buffer-sync format "%s is not up-to-date. Merge in changes now? " buffer-name buffer-modified-p "Buffer %s modified; merge file on disc anyhow? " "Merge aborted" vc-backend-merge-news message "Conflicts detected!" vc-resynch-window "%s needs update" buffer-read-only "Trunk version to move to: " "" "cvs" WORKFILE "update" "-A" vc-file-setprop run-hooks vc-make-buffer-writable-hook find-file "Revert to master version? " vc-backend-revert "New version level: " vc-checkin] 8]) (defalias 'vc-next-action-dired #[(file rev comment) "q É  \neb\n#&  ?? \\ b!Ћ\fB by É\n#V  1) dҋ. \n!)" [vc-parent-buffer current-window-configuration 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 ((byte-code "  \" # \")" [dired-get-filename file message "Processing %s..." vc-next-action-on-file nil comment "Processing %s...done"] 4)) 1 ((byte-code "  \" # \")Ň" [dired-get-filename file message "Processing %s..." vc-next-action-on-file nil comment "Processing %s...done"] 4)) dired-move-to-filename set-window-configuration] 5]) #@2156 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 the file has not been changed, neither in your working area or in the repository, a message is printed and nothing is done. 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 "$ GU\n@!#Ɖ%\") 1 !$ = \"!" [vc-dired-mode dired-get-marked-files files 1 find-file-other-window vc-start-entry nil "Enter a change comment for the marked files." vc-next-action-dired throw nogo vc-parent-buffer pop-to-buffer buffer-file-name vc-next-action-on-file verbose vc-registration-error] 7)] 2 (#$ . 11140) "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 (#$ . 13728)]) #@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 (#$ . 13947) "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-start-entry #[(file rev comment msg action &optional after-hook) "\n! p !q!!!\nL!!PL5! !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 " (no file)" 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 (#$ . 15383)]) #@58 Retrieve a copy of the latest version of the given file. (defalias 'vc-checkout #[(file &optional writable rev) "\n\"!!\n #\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 buffer-file-name vc-resynch-window t] 4 (#$ . 15772)]) #@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 (#$ . 16127)]) (defalias 'vc-finish-steal #[(file version) " \n\" ! !q ʼn#)" [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 (#$ . 16947)]) #@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 )!-! `WFyj5`*PPy`\"*\"![!my!yc+" [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 (#$ . 17547) (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 !\f!\f \" q\n. )\fB\f  #)F! !!!!)l#!)" [nocomment newline vc-backend-logentry-check vc-log-file vc-comment-ring make-ring vc-maximum-comment-ring-size ring-insert buffer-string vc-parent-buffer vc-dired-mode vc-buffer-sync vc-log-operation vc-log-version error "No log operation is pending" vc-log-after-operation-hook after-hook 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] 4 (#$ . 18428) 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 (#$ . 19119) "*p"]) #@41 Cycle forwards through comment history. (defalias 'vc-next-comment #[(arg) " [!" [vc-previous-comment arg] 2 (#$ . 19444) "*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 (#$ . 19581) "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 (#$ . 19993) "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!!! \\\"!!! 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*" file-name-directory default-directory buffer-size 0 t shrink-window-if-larger-than-buffer] 4 (#$ . 20397) "P"]) #@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) "  !_p!q!L!!PL 9 ?ӱ!q !!!ceb!)  #Up  $!" [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*" cd vc-file-tree-walk #[(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 (#$ . 21389) "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 (#$ . 22385) "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@EE !\"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 (#$ . 23032) nil]) (byte-code "!  B #!)) BB" [boundp vc-dired-prefix-map make-sparse-keymap current-load-list define-key "v" vc-prefix-map minor-mode-map-alist vc-dired-mode] 4) #@337 The augmented Dired minor mode used in VC directory buffers. 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 "‰" [t vc-dired-mode " under VC" vc-mode] 2 (#$ . 24081)]) (defalias 'vc-dired-reformat-line #[(x) "v 7#YƔbcƕTbcƕƔZZ!ƕƔZZOc) @ Q#Y POQ\")" [1 x re-search-forward "\\([0-9]+ \\)\\([^ ]+\\)\\( .*\\)" nil 0 2 "(" ")" delete-char 17 " " 7 "\\([0-9]+ \\).................\\( .*\\)" " " 9 rep replace-match "\\1" "\\2" t] 5]) #@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 #[(verbose) "\n!G!\nB\f\"p U?)N\f! eby \"eb\\YقZ\n#." [nil expand-file-name default-directory dired-buf-mod-count dired-buf userlist filelist dl nonempty vc-file-tree-walk #[(f) " !' !\f & OB& B)" [vc-registered f vc-locking-user user verbose dl nil filelist userlist] 3] dired dired-listing-switches buffer-size 0 pop-to-buffer vc-dired-mode buffer-read-only 1 mapcar #[(x) "u\n!y" [2 vc-dired-reformat-line x 1] 2] t message "No files are currently %s under %s" verbose "registered" "locked"] 6 (#$ . 24855) "P"]) #@71 Show version-control status of all files under the current directory. (defalias 'vc-directory-18 #[(verbose) " !q \n!! U?) +\"eb 6҂7 #*" [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 (#$ . 25708) "P"]) (byte-code "!\nM" [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) "HY\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-locked-example #[nil "" [vc-locked-example (byte-code "!‡" [vc-file-tree-walk #[(f) " ! ! \"" [vc-registered f vc-locking-user throw vc-locked-example] 3] nil] 2)] 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-locked-example locked error "File %s is locked" vc-file-tree-walk #[(f) " !\n \"" [vc-name f vc-backend-assign-name name] 3]] 4 (#$ . 27504) "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) "  \"!)" [vc-locked-example locked error "File %s is locked" vc-file-tree-walk #[(f) " !\nď" [vc-name f nil (byte-code " #‡" [vc-checkout f nil name] 4) ((error t))] 3]] 4 (#$ . 27957) "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!y3eb!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 (#$ . 28461) 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  :\f0!: !>\nq F  ! ȉ#+" [vc-dired-mode find-file-other-window dired-get-filename vc-parent-buffer pop-to-buffer buffer-file-name vc-diff nil t changed obuf file vc-suppress-confirm yes-or-no-p "Discard changes? " delete-window error "Revert cancelled" vc-backend-revert vc-resynch-window] 5 (#$ . 28985) 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) " !  ! !=!! ! !  <΂= \"!??j  \"^!e !j \"+" [vc-dired-mode find-file-other-window dired-get-filename vc-parent-buffer pop-to-buffer vc-backend buffer-file-name CVS error "Unchecking files under CVS is dangerous and not supported in VC" vc-latest-version target vc-your-latest-version yours "Remove your version %s from master? " "Version %s was not your change. Remove it anyway? " prompt yes-or-no-p format vc-backend-uncheck norevert "Revert buffer to most recent remaining version? " vc-mode-line vc-checkout nil] 5 (#$ . 29670) "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) set-visited-file-name set-buffer-modified-p nil type SCCS vc-record-rename RCS] 7 (#$ . 30446) "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) " ! eb ! >  \"&=BقC\")" [default-directory 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 " " user-full-name user-mail-address mapcar #[(f) "\n! \n \nP!" [file-relative-name file-name-absolute-p f odefault] 3] 0 "done" "failed"] 14 (#$ . 31679) (byte-code ": C8  4 @!-\f!-\fB 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= YP PfP\"@ !t !#& !! $= !䂤PP &= ޘ?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 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" "-u" "-t-" "cvs" WORKFILE "add" "-m" "Registering %s...done"] 15]) (defalias 'vc-backend-checkout #[(file &optional writable rev workfile) " \n\" !pq !=u !!\f3͂4\"Ҏ !\" !\"#\n\f\\!i !\"P$& + \f! !\"P$& #=? !!\f͂\" !\" !\"#\n\f!P$&\f+ \f!!P !..P)$&qeb#5 {#; #)=j !P$&\f* !z!P$& #* !\f # !8#\n\")" [workfile file filename message "Checking out %s..." get-file-buffer vc-backend type SCCS 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" rev "-r" vc-lookup-triple vc-checkout-switches nil "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" "co" workrev "*vc*" re-search-forward "^revision \\([0-9.]+\\).*\n" 1 CVS ((byte-code "\n!\n!" [failed file-exists-p filename delete-file] 2)) WORKFILE "exec >\"$1\" || exit; shift; exec cvs update \"$@\"" "cvs" "update" vc-file-clear-masterprops vc-locking-user user-login-name vc-checkout-time 5 file-attributes "Checking out %s...done"] 17]) (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\n!=X\n5P P&\n#\n#h\n$h=\n!\nvނwP P&\n#\n#qeb##{\n#!!\n!!P%\nP%*h=h!\n& \n P P& qeb#C\n{#I\n#X\n&\n#\n\n!8#*\n!\n\"" [message "Checking in %s..." file comment "" "*** empty log message ***" get-file-buffer vc-backend type SCCS apply vc-do-command 0 "delta" MASTER rev "-r" "-y" vc-checkin-switches vc-file-setprop vc-locking-user none vc-workfile-version nil vc-keep-workfiles "get" RCS new-version old-version "ci" "-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" CVS "cvs" WORKFILE "intermediate" "^\\(new\\|initial\\) revision: \\([0-9.]+\\)" 2 "update" "-A" vc-checkout-time 5 file-attributes vc-file-clear-masterprops "Checking in %s...done"] 11]) (defalias 'vc-backend-revert #[(file) "\n\"\n!=\"\n%\n%K\f=9\n\n!P&K\f=K\n!\n%)\n#\n\n!8#\n\"" [message "Reverting %s..." file vc-backend type SCCS vc-do-command 0 "unget" MASTER nil "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"] 10]) (defalias 'vc-backend-steal #[(file &optional rev) "\n\"\n!=6\n  P&\n 0 P&Z\f=P\n P P&Z\f=Z!)\n #\n\"" [message "Stealing lock on %s..." file vc-backend type SCCS vc-do-command 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"] 10]) (defalias 'vc-backend-uncheck #[(file target) "\n\"\n!=\n P%.\f=.\n P%)\n\"" [message "Removing last change from %s..." file vc-backend type SCCS vc-do-command 0 "rmdel" MASTER "-r" target RCS "rcs" "-o" "Removing last change from %s...done"] 8]) (defalias 'vc-backend-print-log #[(file) " != $/\n=\" $/\n=/ %)" [vc-backend file type SCCS vc-do-command 0 "prs" MASTER RCS "rlog" CVS "cvs" WORKFILE] 7]) (defalias 'vc-backend-assign-name #[(file name) " != !#6\n=' Q%6\n=6 &)" [vc-backend file type SCCS vc-add-triple name vc-latest-version RCS vc-do-command 0 "rcs" MASTER "-n" ":" CVS "cvs" WORKFILE "tag"] 9]) (defalias 'vc-backend-diff #[(file &optional oldvers newvers cmp) " != \" \"'\n=' ' !\n=3\n=\n==ɂ> \n=ĴKT \\ PePF?z