;ELC ;;; compiled by jwz@thalidomide on Sun May 15 00:45:10 1994 ;;; from file /th/jwz/emacs19/lisp/packages/vc.el ;;; emacs version 19.10 Lucid (beta23). ;;; bytecomp version 2.24; 26-Apr-94. ;;; 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"))) (error "This file was compiled for Emacs 19.")) (byte-code "!! \" B" [require vc-hooks ring assoc vc-parent-buffer minor-mode-alist (vc-parent-buffer vc-parent-buffer-name)] 3) (defvar vc-default-back-end nil "\ *Back-end actually used by this interface; may be SCCS or RCS. The value is only computed when needed to avoid an expensive search.") (defvar vc-suppress-confirm nil "\ *If non-nil, treat user as expert; suppress yes-no prompts on some things.") (defvar vc-keep-workfiles t "\ *If non-nil, don't delete working files after registering changes.") (defvar vc-initial-comment nil "\ *Prompt for initial comment when a file is registered.") (defvar vc-command-messages nil "\ *Display run messages from back-end commands.") (defvar vc-mistrust-permissions 'file-symlink-p "\ *Don't assume that permissions and ownership track version-control status.") (defvar vc-checkin-switches nil "\ *Extra switches passed to the checkin program by \\[vc-checkin].") (defvar vc-path (byte-code "!‡" [file-exists-p "/usr/sccs" ("/usr/sccs")] 2) "\ *List of extra directories to search for version control commands.") (defvar vc-maximum-comment-ring-size 32 "\ Maximum number of saved comments in the comment ring.") (defvar diff-switches "-c" "\ *A string or list of strings specifying switches to be be passed to diff.") (defvar vc-checkin-hook nil "\ *List of functions called after a checkin is done. See `run-hooks'.") (defvar vc-header-alist '((SCCS "%W%") (RCS "$Id$")) "\ *Header keywords to be inserted when `vc-insert-headers' is executed.") (defvar vc-static-header-alist '(("\\.c$" . "\n#ifndef lint\nstatic char vcid[] = \"%s\";\n#endif /* lint */\n")) "\ *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-comment-alist '((nroff-mode ".\\\"" "")) "\ *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-checkout-carefully (byte-code " U" [user-uid 0] 2) "\ *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.") (byte-code "!!!!!!\n! !! !!M" [boundp vc-log-entry-mode nil 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-names" vc-name-assoc-file vc-dired-mode make-variable-buffer-local vc-comment-ring vc-comment-ring-index vc-last-comment-match vc-file-clearprops #[(file) "\n \"\"" [setplist intern file vc-file-prop-obarray nil] 4]] 2) (fset 'vc-clear-context #[nil " \"‰" [fillarray vc-file-prop-obarray nil vc-comment-ring] 3 "\ Clear all cached file properties and the comment ring." nil]) (byte-code "M!ć" [vc-registration-error #[(file) "\" \"" [file error "File %s is not under version control" "Buffer %s is not associated with a file" buffer-name] 3] boundp vc-binary-assoc nil] 2) (fset 'vc-find-binary #[(name) " \n\"A $ B\nB)" [assoc name vc-binary-assoc locate-file exec-path nil 1 full] 6 "\ Look for a command anywhere on the subprocess-command search path."]) (fset 'vc-do-command #[(okstatus command file &rest flags) " !\n #pp ! \n  !q! L! !PL !\" \n C\"\n !\" \n&*dby\"W!eb \"#\n \" q-" [expand-file-name file vc-command-messages message "Running %s on %s..." command nil vc-name status vc-file squeezed camefrom obuf get-buffer-create "*vc*" make-local-variable vc-parent-buffer vc-parent-buffer-name " from " buffer-name erase-buffer file-name-directory default-directory mapcar #[(s) "\nC\"" [s append squeezed] 3] flags append "./" vc-path exec-path apply call-process t -1 okstatus pop-to-buffer shrink-window-if-larger-than-buffer error "Running %s...FAILED (%s)" format "status %d" "Running %s...OK"] 7 "\ 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; this is appended to an optional list of FLAGS."]) (byte-code "MMMMMMM" [vc-position-context #[(posn) " d\\^{E" [posn buffer-size 100] 6] 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] vc-revert-buffer1 #[(&optional arg no-confirm) "~`!!!p=!!!p \"*   \"  @ @qp@!\"@@UAo+ A F!b)  !!)," [vc-position-context marker-buffer mark-marker t nil boundp compilation-error-list curbuf mapcar #[(buffer) "q \n: @A! @A!= Ab *" [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"] vc-buffer-sync #[(&optional not-urgent) " \n \"! !" [buffer-modified-p nil vc-suppress-confirm y-or-n-p format "Buffer %s modified; save it? " buffer-name save-buffer not-urgent error "Aborted"] 4] vc-workfile-unchanged-p #[(file &optional want-differences-if-changed) " \" !8  ɉ?$U  # )*" [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] vc-next-action-on-file #[(file verbose &optional comment) "\n! \" ʉ \n!\n!\n\"ы\n!\n!!!Љ\"\n!\n! \n\"\n! #\n! \n! \n!\n#!\n #+" [nil vc-name file vc-file version owner vc-register verbose comment vc-initial-comment vc-checkout-writable-buffer-hook vc-log-after-operation-hook vc-checkout-writable-buffer 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 user-login-name "Sorry, you can't steal the lock on %s this way" vc-steal-lock read-string "Version to steal: " find-file vc-buffer-sync buffer-modified-p vc-backend-revert vc-resynch-window "New version level: " vc-checkin] 4] vc-next-action-dired #[(file rev comment) "q‹#" [vc-parent-buffer dired-map-over-marks ((byte-code "  \" # \")" [dired-get-filename file message "Processing %s..." vc-next-action-on-file nil comment "Processing %s...done"] 4)) nil t] 4]] 2) (fset 'vc-next-action #[(verbose) "" [nogo (byte-code " GU !lj%\")  !u\"!" [vc-dired-mode dired-get-marked-files files 1 find-file-other-window dired-get-filename 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 "\ Do the next logical checkin or checkout operation on the current file. 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. 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. For checkin, a prefix argument lets you specify the version number to use." "P"]) (fset 'vc-checkout-writable-buffer #[(&optional file) " \"" [vc-checkout file buffer-file-name t] 3 "\ Retrieve a writable copy of the latest version of the current buffer's file."]) (fset 'vc-register #[(&optional override comment) " !! U !!  \"!\"" [vc-name buffer-file-name error "This file is already registered" buffer-modified-p buffer-size 0 file-exists-p set-buffer-modified-p t vc-buffer-sync vc-admin override read-string format "Initial version level for %s: "] 6 "\ Register the current file into your version-control system." "P"]) (byte-code "MM" [vc-resynch-window #[(file &optional keep noquery) " \n \"! p!" [buffer-file-name file keep vc-revert-buffer1 t noquery vc-mode-line delete-window kill-buffer] 3] vc-start-entry #[(file rev comment msg action) "!p !q!!!\nL!!PL!  =! c!\")" [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 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]] 2) (fset 'vc-admin #[(file rev &optional comment) " \n ?%" [vc-start-entry file rev comment vc-initial-comment "Enter initial comment." vc-backend-admin] 6 "\ 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."]) (fset 'vc-checkout #[(file &optional writable) "\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 buffer-file-name vc-resynch-window t] 4 "\ Retrieve a copy of the latest version of the given file."]) (fset 'vc-steal-lock #[(file rev &optional owner) "\n!\n$!!!!!! \n#Չ\nEC&db\n# ٱ!" [owner vc-locking-user file y-or-n-p format "Take the lock on %s:%s from %s? " rev 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 "%s:%s" nil vc-finish-steal "I stole the lock on %s:%s, " current-time-string ".\n" message "Please explain why you stole the lock. Type C-c C-c when done."] 9 "\ Steal the lock on the current workfile." nil]) (fset 'vc-finish-steal #[(file version) " \n\" ĉ#" [vc-backend-steal file version vc-resynch-window t] 4]) (fset 'vc-checkin #[(file &optional rev comment) " %" [vc-checkin-hook vc-log-after-operation-hook vc-start-entry file rev comment "Enter a change comment." vc-backend-checkin] 6 "\ 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'). COMMENT is a comment string; if omitted, a buffer is popped up to accept a comment."]) (fset 'vc-comment-to-change-log #[(&optional whoami file-name) "! \"   ͉$ c )!! `Wyjq`*PPy`\"*\"![!m!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 "\ 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'." (byte-code " D" [current-prefix-arg prompt-for-change-log-name] 2)]) (fset 'vc-finish-logentry #[(&optional nocomment) "dbn ! ! \" q )   #)! !!!!)#!" [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-buffer-sync vc-log-operation vc-log-version error "No log operation is pending" 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 vc-log-after-operation-hook] 4 "\ Complete the operation implied by the current log entry." nil]) (fset 'vc-previous-comment #[(arg) " !X!  Vʪ W˪ \\\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 "\ Cycle backwards through comment history." "*p"]) (fset 'vc-next-comment #[(arg) " [!" [vc-previous-comment arg] 2 "\ Cycle forwards through comment history." "*p"]) (fset 'vc-comment-search-reverse #[(str) "\n !! T  W\"\"\\g W Z!!+" [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 "\ Searches backwards through comment history for substring match." "sComment substring: "]) (fset 'vc-comment-search-forward #[(str) "\n !!  Y\"\"ZhY Z!!+" [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 "\ Searches forwards through comment history for substring match." "sComment substring: "]) (fset 'vc-diff #[(historic &optional not-urgent) " !q !w !!! !!!! \"!!! 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*" buffer-size 0 t shrink-window-if-larger-than-buffer] 4 "\ 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." "P"]) (fset 'vc-version-diff #[(file rel1 rel2) "  !p!q!L!!PL  ӱ!q !!!ceb!)  #U  $!" [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 "\ 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." "FFile or directory to diff: \nsOlder version: \nsNewer version: "]) (fset 'vc-version-other-window #[(rev) " !q !w !Ș !\n \nR  ! \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 "\ 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." "sVersion to visit (default is latest version): "]) (fset 'vc-insert-headers #[nil " ! !w~ ! A\n@  \nA@ !\"A\"\",*" [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-deduce 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 @\"c" [string-match f buffer-file-name format hdstrings] 3]] 4 "\ 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'." nil]) (byte-code "!  \" # )! BB" [boundp vc-dired-prefix-map make-sparse-keymap map set-keymap-name define-key "v" vc-prefix-map minor-mode-map-alist vc-dired-mode] 4) (fset 'vc-dired-mode #[nil "‰" [t vc-dired-mode " under VC" vc-mode] 2 "\ 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."]) (fset 'vc-dired-reformat-line #[(x) "v Q# PO\n\nQ\")" [1 x "(" ")" re-search-forward "\\([0-9]+ \\).................\\( .*\\)" nil 0 " " 9 rep replace-match "\\1" "\\2" t] 4]) (fset 'vc-directory #[(verbose) " G! B \"p U?) ! eby \"ebت #." [nil default-directory dired-buf-mod-count dired-buf userlist filelist dl nonempty vc-file-tree-walk #[(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 "\ Show version-control status of all files under the current directory." "P"]) (fset 'vc-directory-18 #[(verbose) " !q \n!! U?) \"eb Ҫ #*" [nil default-directory dir nonempty get-buffer-create "*vc-status*" erase-buffer cd vc-file-tree-walk #[(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 "\ Show version-control status of all files under the current directory." "P"]) (byte-code "M!\"MMMMM" [emacs-version "18" vc-directory vc-directory-18 boundp compilation-old-error-list nil string-match "Lucid" vc-add-triple #[(name file rev) "\n! Q!db \nɱ p!)" [find-file vc-backend-subdirectory-name file "/" vc-name-assoc-file name " : " " " rev "\n" basic-save-buffer kill-buffer] 6] vc-record-rename #[(file newname) "\n! Q!eb\n!Q# Pɉ#i p!)" [find-file vc-backend-subdirectory-name file "/" vc-name-assoc-file re-search-forward ":" regexp-quote "$" nil t replace-match newname basic-save-buffer kill-buffer] 4] vc-lookup-triple #[(file name) "HY\nX)! QRC\"@" [name 0 firstchar 48 57 vc-master-info vc-backend-subdirectory-name file "/" vc-name-assoc-file " : " " \\(.+\\)"] 7] 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]] 3) (fset 'vc-create-snapshot #[(name) "  \"!)" [vc-locked-example locked error "File %s is locked" vc-file-tree-walk #[(f) " ! \"" [vc-name f vc-backend-assign-name name] 3]] 4 "\ 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." "sNew snapshot name: "]) (fset 'vc-retrieve-snapshot #[(name) "  \"!)" [vc-locked-example locked error "File %s is locked" vc-file-tree-walk #[(f) " !ď" [vc-name f nil (byte-code " #‡" [vc-backend-checkout f nil name] 4) ((error t))] 3]] 4 "\ 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." "sSnapshot name to retrieve: "]) (fset 'vc-print-log #[nil " !q !w ! !!!!͕͔Z!yneb!͕͔Z! !" [vc-dired-mode find-file-noselect dired-get-filename vc-parent-buffer pop-to-buffer buffer-file-name vc-name vc-backend-print-log get-buffer-create "*vc*" looking-at "=*\n" delete-char 0 -1 "[ \n ]+" shrink-window-if-larger-than-buffer vc-registration-error] 3 "\ List the change log of the current buffer in a window." nil]) (fset 'vc-revert-buffer #[nil " ! !w p\" \n   ! !\nq  ! ȉ#+" [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 "\ 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." nil]) (fset 'vc-cancel-version #[(norevert) " ! !w ! ! ʪ  \"!?? \"! ! \"+" [vc-dired-mode find-file-other-window dired-get-filename vc-parent-buffer pop-to-buffer vc-latest-version buffer-file-name 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 "\ Get rid of most recently checked in version of this file. A prefix argument means do not revert the buffer afterwards." "P"]) (fset 'vc-rename-file #[(old new) " !\n!!!!!! ! !! ! !!! !!!ڍ+\" ! \")\n\nq!!)) \"#" [get-file-buffer old oldbuf buffer-modified-p error "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 vc-backend-deduce file-name-directory "" file-name-nondirectory newbase newdir backend found (byte-code "\n\"!" [mapcar #[(s) " A= @ # !! \"*" [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 vc-backend-dispatch vc-record-rename] 7 "\ Rename file OLD to NEW, and rename its master file likewise." "fVC rename file: \nFRename to: "]) (fset 'vc-update-change-log #[(&rest args) " ! eb !  \"&=Ԫ\")" [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 mapcar #[(f) "\n!\n \nP!" [file-relative-name file-name-absolute-p f odefault] 3] 0 "done" "failed"] 11 "\ 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." (byte-code ": C  @! ! B Ag+P\n\n!\n#\")" [current-prefix-arg buffer-file-name nil buffer-list file buffers files vc-backend-deduce default-directory "RCS" RCS file-directory-p mapcar #[(f) "\n\"\nĕO\n" [string-match "\\(.*\\),v$" f 0 1] 3] directory-files "...\\|^[^.]\\|^.[^.]"] 7)]) (byte-code "MMMM" [vc-match-substring #[(bn) "{" [bn] 2] vc-parse-buffer #[(patterns &optional file properties) "\n\"" [mapcar #[(p) "eb\n\"\n#!   !)b* \n#! @ # )A" [string-match "\\\\(.*\\\\(" p "" nil latest-val latest-date re-search-forward t vc-match-substring 2 date 1 value file vc-file-setprop properties] 4] patterns] 3] vc-master-info #[(file fields &optional rfile properties) "!!q) \"!!\n  #p!)  \"" [file file-exists-p nil buf create-file-buffer erase-buffer insert-file-contents set-buffer-modified-p auto-save-mode vc-parse-buffer fields rfile properties kill-buffer mapcar #[(p) " \n#" [vc-file-setprop rfile p nil] 4]] 5] vc-log-info #[(command file patterns &optional properties) "!!q)#!  #p!) \"" [file file-exists-p nil buf get-buffer-create "*vc*" vc-do-command 0 command set-buffer-modified-p vc-parse-buffer patterns properties kill-buffer mapcar #[(p) " \n#" [vc-file-setprop file p nil] 4]] 5]] 2) (fset 'vc-locking-user #[(file) " !\n = !! ! ! !  8\"ͪ 8 U 8\" !)" [expand-file-name file vc-keep-workfiles vc-mistrust-permissions t vc-backend-subdirectory-name vc-file-newer vc-true-locking-user file-attributes attributes string-match ".r-..-..-." 8 nil 2 user-uid ".rw..-..-." user-login-name] 4 "\ Return the name of the person currently holding a lock on FILE. Return nil if there is no such person."]) (byte-code "MMM" [vc-true-locking-user #[(file) " ! \"" [vc-fetch-properties file vc-file-getprop vc-locking-user] 3] vc-latest-version #[(file) " ! \"" [vc-fetch-properties file vc-file-getprop vc-latest-version] 3] vc-your-latest-version #[(file) " ! \"" [vc-fetch-properties file vc-file-getprop vc-your-latest-version] 3]] 2) (fset 'vc-backend-dispatch '(macro . #[(f s r) " DDCEDE DEE" [let type vc-backend-deduce f cond eq 'SCCS s 'RCS r] 7 "\ Execute FORM1 or FORM2 depending on whether we're using SCCS or RCS."])) (byte-code "MMMMMMMMMMMMM" [vc-lock-file #[(file) " !\n\"\nŔŕO\nǔǕOQ)" [vc-name file master string-match "\\(.*/\\)s\\.\\(.*\\)" 1 "p." 2] 6] vc-fetch-properties #[(file) " != !D $ ! !QD $\n= !QF$)" [vc-backend-deduce file type SCCS vc-master-info vc-lock-file "^[^ ]+ [^ ]+ \\([^ ]+\\)" "^\\([^ ]+\\)" (vc-locking-user vc-locked-version) vc-name "^d D \\([^ ]+\\)" "^d D \\([^ ]+\\) .* " regexp-quote user-login-name " " (vc-latest-version vc-your-latest-version) RCS vc-log-info "rlog" "^locks: strict\n \\([^:]+\\)" "^locks: strict\n [^:]+: \\(.+\\)" "^revision[ ]+\\([0-9.]+\\).*\ndate: \\([ /0-9:]+\\);" "^revision[ ]+\\([0-9.]+\\)\n.*author: " ";" (vc-locking-user vc-locked-version vc-latest-version vc-your-latest-version)] 10] vc-backend-subdirectory-name #[(&optional file) " ! !ƪlj!" [symbol-name file vc-backend-deduce vc-default-back-end vc-find-binary "rcs" RCS SCCS] 3] vc-backend-admin #[(file &optional rev comment) " !\n!Ū \" !\n!Ū!ƪ\n = P PP\"@ ! !#& ! # = ᪁PP &) \"" [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" backend vc-do-command 0 "admin" 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-" "Registering %s...done"] 14] vc-backend-checkout #[(file &optional writable rev workfile) " \n\" !=  P \"P&= !! ժ\"َ !\" !\"#\n P& +  P%) !8#\n\")" [workfile file filename message "Checking out %s..." vc-backend-deduce type SCCS vc-do-command 0 "get" writable "-e" "-G" rev "-r" vc-lookup-triple RCS logior file-modes vc-name 128 t failed vc-modes ((byte-code "\n!\n!" [failed file-exists-p filename delete-file] 2)) "/bin/sh" "-c" format "umask %o; exec >\"$1\" || exit; shift; umask %o; exec co \"$@\"" logand lognot 511 default-file-modes "" "-l" "-p" nil "co" vc-file-setprop vc-checkout-time 5 file-attributes "Checking out %s...done"] 12] vc-backend-logentry-check #[(file) " != Yb!\n=)" [vc-backend-deduce file type SCCS buffer-size 512 error "Log must be less than 512 characters; point is now at pos 512" RCS nil] 3] vc-backend-checkin #[(file &optional rev comment) "\n\"\n!pq\n!=\n  PP&\n# =\nԪ PP&*\n#\n\"" [message "Checking in %s..." file get-file-buffer vc-backend-deduce type SCCS apply vc-do-command 0 "delta" rev "-r" "-y" comment vc-checkin-switches vc-keep-workfiles "get" RCS "ci" "-u" "-m" vc-file-setprop vc-locking-user nil "Checking in %s...done"] 9] vc-backend-revert #[(file) "\n\"\n!=\n$\n$ =\n%)\n#\n\"" [message "Reverting %s..." file vc-backend-deduce type SCCS vc-do-command 0 "unget" nil "get" RCS "co" "-f" "-u" vc-file-setprop vc-locking-user "Reverting %s...done"] 7] vc-backend-steal #[(file &optional rev) "\n\"\n!=\n\n\nP%\n\n\nP% =\n\nP\nP&)\n #\n\"" [message "Stealing lock on %s..." file vc-backend-deduce type SCCS vc-do-command 0 "unget" "-n" rev "-r" "get" "-g" RCS "rcs" "-M" "-u" "-l" vc-file-setprop vc-locking-user user-login-name "Stealing lock on %s...done"] 9] vc-backend-uncheck #[(file target) "\n\"\n!=\n\nP$ =\n\nP$)\n\"" [message "Removing last change from %s..." file vc-backend-deduce type SCCS vc-do-command 0 "rmdel" "-r" target RCS "rcs" "-o" "Removing last change from %s...done"] 7] vc-backend-print-log #[(file) " !=ƪ =) #" [vc-do-command 0 vc-backend-deduce file type SCCS "prs" RCS "rlog"] 5] vc-backend-assign-name #[(file name) " != !#\n= Q$)" [vc-backend-deduce file type SCCS vc-add-triple name vc-latest-version RCS vc-do-command 0 "rcs" "-n" ":"] 8] vc-backend-diff #[(file &optional oldvers newvers cmp) " != \" \" !=Ǫ=) !  P PF ?<C\" %=  A%+" [vc-backend-deduce file SCCS vc-lookup-triple oldvers newvers type "vcdiff" RCS "rcsdiff" vc-registration-error command append cmp "--brief" "-q" "-r" diff-switches options apply vc-do-command 2 status 1] 7]] 2) (fset 'vc-check-headers #[nil "eb !=#\n=#*" [vc-backend-deduce buffer-file-name type SCCS re-search-forward "%[MIRLBSDHTEGUYFPQCZWA]%" nil t RCS "\\$[A-Za-z---]+\\(: [ -#%-~-]*\\)?\\$"] 5 "\ Check if the current file has any headers in it." nil]) (fset 'vc-log-mode #[nil " ! !  !!!!\"" [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 "\ 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. vc-static-header-alist By default, version headers inserted in C files get stuffed in a static string area so that ident(RCS) 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). " nil]) (byte-code " \"#####" [vc-log-entry-mode make-sparse-keymap set-keymap-name define-key "" vc-next-comment "" vc-previous-comment "" vc-comment-search-reverse "" vc-comment-search-forward "" vc-finish-logentry] 4) (fset 'vc-file-tree-walk #[(func &rest args) " \n # \"" [vc-file-tree-walk-internal default-directory func args message "Traversing directory %s...done"] 4 "\ Walk recursively through default directory. Invoke FUNC f ARGS on each non-directory file f underneath it."]) (byte-code "MM" [vc-file-tree-walk-internal #[(file func args) " ! # \" !!\")" [file-directory-p file apply func args message "Traversing directory %s..." file-name-as-directory dir mapcar #[(f) "˜ P ! #)" [f "." ".." dir dirf file-symlink-p vc-file-tree-walk-internal func args] 4] directory-files] 4] vc-file-newer #[(file) "?\"?\"? !8V))" [file vc-file-getprop vc-name vc-file vc-file-timestamp time 5 file-attributes] 5]] 2) (fset 'vc-revision-diff #[(arg) " \"!  !#!" [buffer-modified-p sc-mode-expert y-or-n-p format "%s has been modified. Write it out? " buffer-name save-buffer arg vc-version-diff buffer-file-name read-string "Revision to compare against: " nil vc-diff] 4 "\ Compare the version being edited with the last checked-in revision. With a prefix argument prompt for revision to compare with." "P"]) (byte-code "MM" [vc-diff-since-revision #[nil "!" [vc-revision-diff (4)] 2 nil nil] vc-backend-checkout-in-buffer #[(file rev) "\n\"\n!=\n \n \"P& =\n  P&)\n\"" [message "Checking out %s..." file vc-backend-deduce type SCCS vc-do-command 0 "get" "-p" "-s" rev "-r" vc-lookup-triple RCS "co" "-q" "Checking out %s...done"] 11]] 2) (fset 'vc-visit-previous-revision #[(revision) " \" !R!\n !R \"qed\n% ) !! \n!  ! \n!+" [buffer-file-name error "There is no file associated with buffer %s" buffer-name file make-temp-name revision "current" "-" file-name-nondirectory other-file "<" ">" vc-backend-checkout-in-buffer "*vc*" write-region t 0 erase-buffer pop-to-buffer get-buffer-create insert-file normal-mode nil set-buffer-modified-p toggle-read-only delete-file] 6 "\ Show a previous revision of the current file" "sShow previous revision number: "]) (fset 'vc-rename-this-file #[(new) " \"! \"p!\n \n\"p! !*" [buffer-modified-p y-or-n-p format "%s has been modified. Write it out? " buffer-name save-buffer vc-rename-file buffer-file-name new find-file-noselect new-buffer old-buffer set-window-buffer selected-window pop-to-buffer bury-buffer] 4 "\ Rename the file of the current buffer. It als renames the source control archive with it" "FNew name: "]) (fset 'vc-update-directory #[nil " \n!q  \nʱp!!Ϗ cdbc) qed#)qeb)! !+" [save-some-buffers nil default-directory dir any-updated failed get-buffer-create "*vc-update*" erase-buffer "Updating " "\n\n" display-buffer sit-for 0 (vc-file-tree-walk #[(f) "!!\"! \"U?!˱ !" [f vc-registered file-newer-than-file-p vc-name vc-locking-user user-login-name vc-backend-diff nil 0 vc-backend-checkout "updated " "\n" t any-updated sit-for] 4]) ((error (byte-code "" [t failed] 1))) "No files needed to be updated\n" "\ndone\n" "*vc*" append-to-buffer pop-to-buffer error "update failed"] 4 "\ Updates the current directory by getting the latest copies of the files" nil]) (defconst vc-default-menu '(["NEXT-OPERATION" vc-next-action t nil] ["Update Current Directory" vc-update-directory t] "----" ["Revert File" vc-revert-buffer t nil] ["Rename File" vc-rename-this-file t nil] "----" ["Show Changes" vc-diff t] ["Show Changes Since Revision..." vc-diff-since-revision t] ["Visit Previous Revision..." vc-visit-previous-revision t] ["Show Edit History" vc-print-log t] "----" ["List Locked Files" (vc-directory '(16)) t] ["List Locked Files Any User" vc-directory t] ["List Registered Files" (vc-directory '(4)) t]) "\ Menubar entry for using the revision control system.") (defvar vc-cvs-menu '(["Update Current Directory" vc-cvs-update-directory t] ["Revert File" vc-revert-file t nil] "----" ["Show Changes" vc-show-changes t] ["Show Changes Since Revision..." vc-show-revision-changes t] ["Visit Previous Revision..." vc-visit-previous-revision t] ["Show File Status" vc-cvs-file-status t] ["Show Edit History" vc-show-history t]) "\ Menubar entry for using the revision control system with CVS.") (byte-code "M\n\n\"#\"!" [vc-sensitize-menu #[nil " \"@A!  !   @!H= Ԫ ! ֪ تIIGV I> I A.̇" [find-menu-item current-menubar ("VC") rest t case-fold-search buffer-file-name file-name-nondirectory buffer-name file vc-name vc-file nil owner command item vectorp 1 vc-next-action 0 "Register File" vc-locking-user "Check out File" user-login-name "Steal File Lock" "Check in File" 2 3 (vc-revert-buffer vc-rename-this-file vc-diff vc-diff-since-revision vc-visit-previous-revision vc-print-log)] 5] current-menubar assoc "VC" add-menu nil vc-default-menu add-hook activate-menubar-hook provide vc] 4)