;ELC ;;; compiled by jwz@thalidomide on Fri Dec 31 02:05:07 1993 ;;; from file /th/jwz/emacs19/lisp/pcl-cvs/pcl-cvs.el ;;; emacs version 19.9 Lucid (beta9). ;;; bytecomp version 2.22; 22-dec-93. ;;; 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 "!!" [require cookie provide pcl-cvs] 2) (defvar cvs-program "/usr/gnu/bin/cvs" "\ *Full path to the cvs executable.") (defvar cvs-diff-program "/usr/gnu/bin/diff" "\ *Full path to the diff program.") (defvar cvs-rmdir-program "/usr/gnu/bin/rmdir" "\ *Full path to the rmdir program. Typically /bin/rmdir.") (defvar cvs-shell "/bin/sh" "\ *Full path to a shell that can do redirection on stdout.") (defvar cvs-cvsroot nil "\ *Specifies where the (current) cvs master repository is. Overrides the $CVSROOT variable by sending \" -d dir\" to all cvs commands. This switch is useful if you have multiple CVS repositories.") (defvar cvs-stdout-file nil "\ Name of the file that holds the output that CVS sends to stdout. This variable is buffer local.") (defvar cvs-lock-file nil "\ Full path to a lock file that CVS is waiting for (or was waiting for).") (defvar cvs-bakprefix ".#" "\ The prefix that CVS prepends to files when rcsmerge'ing.") (defvar cvs-erase-input-buffer nil "\ *Non-nil if input buffers should be cleared before asking for new info.") (defvar cvs-auto-remove-handled nil "\ *Non-nil if cvs-mode-remove-handled should be called automatically. If this is set to any non-nil value entries that does not need to be checked in will be removed from the *cvs* buffer after every cvs-mode-commit command.") (defvar cvs-sort-ignore-file t "\ *Non-nil if cvs-mode-ignore should sort the .cvsignore automatically.") (defvar cvs-auto-revert-after-commit t "\ *Non-nil if committed buffers should be automatically reverted.") (defconst cvs-cursor-column 14 "\ Column to position cursor in in cvs-mode. Column 0 is left-most column.") (defvar cvs-mode-map nil "\ Keymap for the cvs mode.") (defvar cvs-edit-mode-map nil "\ Keymap for the cvs edit mode (used when editing cvs log messages).") (defvar cvs-buffer-name "*cvs*" "\ Name of the cvs buffer.") (defvar cvs-commit-prompt-buffer "*cvs-commit-message*" "\ Name of buffer in which the user is prompted for a log message when committing files.") (defvar cvs-commit-buffer-require-final-newline t "\ *t says silently put a newline at the end of commit log messages. Non-nil but not t says ask user whether to add a newline in each such case. nil means don't add newlines.") (defvar cvs-temp-buffer-name "*cvs-tmp*" "\ *Name of the cvs temporary buffer. Output from cvs is placed here by synchronous commands.") (defvar cvs-diff-ignore-marks nil "\ *Non-nil if cvs-diff and cvs-mode-diff-backup should ignore any marked files. Normally they run diff on the files that are marked (with cvs-mode-mark), or the file under the cursor if no files are marked. If this variable is set to a non-nil value they will always run diff on the file on the current line.") (defvar cvs-status-flags nil "\ *List of strings to pass to ``cvs status''.") (defvar cvs-log-flags nil "\ *List of strings to pass to ``cvs log''.") (defvar cvs-diff-flags nil "\ *List of strings to use as flags to pass to ``diff'' and ``cvs diff''. Used by cvs-mode-diff-cvs and cvs-mode-diff-backup. Set this to '(\"-u\") to get a Unidiff format, or '(\"-c\") to get context diffs.") (defvar cvs-update-prog-output-skip-regexp "$" "\ *A regexp that matches the end of the output from all cvs update programs. That is, output from any programs that are run by CVS (by the flag -u in the `modules' file - see cvs(5)) when `cvs update' is performed should terminate with a line that this regexp matches. It is enough that some part of the line is matched. The default (a single $) fits programs without output.") (defvar cvs-buffers-to-delete nil "\ List of temporary buffers that should be discarded as soon as possible. Due to a bug in emacs 18.57 the sentinel can't discard them reliably.") (defvar cvs-inhibit-copyright-message nil "\ *Non-nil means don't display a Copyright message in the ``*cvs*'' buffer.") (defconst pcl-cvs-version "1.05" "\ A string denoting the current release version of pcl-cvs.") (defconst cvs-startup-message (byte-code "‡" [cvs-inhibit-copyright-message "PCL-CVS release 1.05" "PCL-CVS release 1.05. Copyright (C) 1992, 1993 Per Cederqvist\nPcl-cvs comes with absolutely no warranty; for details consult the manual.\nThis is free software, and you are welcome to redistribute it under certain\nconditions; again, consult the TeXinfo manual for details."] 1) "\ *Startup message for CVS.") (defvar cvs-update-running nil "\ This is set to nil when no process is running, and to the process when a cvs update process is running.") (defvar cvs-cookie-handle nil "\ Handle for the cookie structure that is displayed in the *cvs* buffer.") (defvar cvs-mode-commit nil "\ Used internally by pcl-cvs.") (fset 'cvs-create-fileinfo #[(type dir file-name full-log) "‰ ‰&\nB" [CVS-FILEINFO vector nil type dir file-name full-log] 12 "\ Create a fileinfo from all parameters. Arguments: TYPE DIR FILE-NAME FULL-LOG. A fileinfo has the following fields: marked t/nil type One of UPDATED - file copied from repository MODIFIED - modified by you, unchanged in repository ADDED - added by you, not yet committed REMOVED - removed by you, not yet committed CVS-REMOVED- removed, since file no longer exists in the repository. MERGED - successful merge CONFLICT - conflict when merging REM-CONFLICT-removed in repository, but altered locally. MOD-CONFLICT-removed locally, changed in repository. REM-EXIST - removed locally, but still exists. DIRCHANGE - A change of directory. UNKNOWN - An unknown file. MOVE-AWAY - A file that is in the way. REPOS-MISSING- The directory has vanished from the repository. MESSAGE - This is a special fileinfo that is used to display a text that should be in full-log. dir Directory the file resides in. Should not end with slash. file-name The file name. backup-file Name of the backup file if MERGED or CONFLICT. cvs-diff-buffer A buffer that contains a 'cvs diff file'. backup-diff-buffer A buffer that contains a 'diff file backup-file'. full-log The output from cvs, unparsed. mod-time Modification time of file used for *-diff-buffer. handled True if this file doesn't require further action."]) (fset 'cvs-fileinfo->handled #[(cvs-fileinfo) "A" [cvs-fileinfo 0] 2 "\ Get the `handled' field from CVS-FILEINFO."]) (fset 'cvs-fileinfo->marked #[(cvs-fileinfo) "A" [cvs-fileinfo 1] 2 "\ Check if CVS-FILEINFO is marked."]) (fset 'cvs-fileinfo->type #[(cvs-fileinfo) "A" [cvs-fileinfo 2] 2 "\ Get type from CVS-FILEINFO. Type is one of UPDATED, MODIFIED, ADDED, REMOVED, CVS-REMOVED, MERGED, CONFLICT, REM-CONFLICT, MOD-CONFLICT, REM-EXIST, DIRCHANGE, UNKNOWN, MOVE-AWAY, REPOS-MISSING or MESSAGE."]) (fset 'cvs-fileinfo->dir #[(cvs-fileinfo) "A" [cvs-fileinfo 3] 2 "\ Get dir from CVS-FILEINFO. The directory name does not end with a slash. "]) (fset 'cvs-fileinfo->file-name #[(cvs-fileinfo) "A" [cvs-fileinfo 4] 2 "\ Get file-name from CVS-FILEINFO."]) (fset 'cvs-fileinfo->base-revision #[(cvs-fileinfo) "A" [cvs-fileinfo 5] 2 "\ Get the base revision from CVS-FILEINFO."]) (fset 'cvs-fileinfo->cvs-diff-buffer #[(cvs-fileinfo) "A" [cvs-fileinfo 6] 2 "\ Get cvs-diff-buffer from CVS-FILEINFO."]) (fset 'cvs-fileinfo->backup-diff-buffer #[(cvs-fileinfo) "A" [cvs-fileinfo 7] 2 "\ Get backup-diff-buffer from CVS-FILEINFO."]) (fset 'cvs-fileinfo->full-log #[(cvs-fileinfo) "A" [cvs-fileinfo 8] 2 "\ Get full-log from CVS-FILEINFO."]) (fset 'cvs-fileinfo->mod-time #[(cvs-fileinfo) "A" [cvs-fileinfo 9] 2 "\ Get mod-time from CVS-FILEINFO."]) (fset 'cvs-set-fileinfo->handled #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 0 newval] 3 "\ Set handled in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->marked #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 1 newval] 3 "\ Set marked in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->type #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 2 newval] 3 "\ Set type in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->dir #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 3 newval] 3 "\ Set dir in CVS-FILEINFO to NEWVAL. The directory should now end with a slash."]) (fset 'cvs-set-fileinfo->file-name #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 4 newval] 3 "\ Set file-name in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->base-revision #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 5 newval] 3 "\ Set base-revision in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->cvs-diff-buffer #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 6 newval] 3 "\ Set cvs-diff-buffer in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->backup-diff-buffer #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 7 newval] 3 "\ Set backup-diff-buffer in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->full-log #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 8 newval] 3 "\ Set full-log in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-set-fileinfo->mod-time #[(cvs-fileinfo newval) "A\nI" [cvs-fileinfo 9 newval] 3 "\ Set full-log in CVS-FILEINFO to NEWVAL."]) (fset 'cvs-fileinfo-p #[(object) "=" [object CVS-FILEINFO] 2 "\ Return t if OBJECT is a cvs-fileinfo."]) (fset 'cvs-use-temp-buffer #[nil " !! q  )" [default-directory dir display-buffer get-buffer-create cvs-temp-buffer-name nil buffer-read-only erase-buffer] 3 "\ Display a temporary buffer in another window and select it. The selected window will not be changed. The temporary buffer will be erased and writable."]) (fset 'cvs-update #[(directory &optional local) " \n# !" [cvs-do-update directory local nil switch-to-buffer cvs-buffer-name] 4 "\ Run a 'cvs update' in the current working directory. Feed the output to a *cvs* buffer and run cvs-mode on it. If optional prefix argument LOCAL is non-nil, 'cvs update -l' is run." (byte-code " $ D" [read-file-name "CVS Update (directory): " nil default-directory current-prefix-arg] 5)]) (fset 'cvs-update-other-window #[(directory &optional local) " \n# !" [cvs-do-update directory local nil switch-to-buffer-other-window cvs-buffer-name] 4 "\ Run a 'cvs update' in the current working directory. Feed the output to a *cvs* buffer, display it in the other window, and run cvs-mode on it. If optional prefix argument LOCAL is non-nil, 'cvs update -l' is run." (byte-code " $ D" [read-file-name "CVS Update other window (directory): " nil default-directory current-prefix-arg] 5)]) (fset 'cvs-filter #[(predicate list &rest extra-args) "B  @# @C Aj\nA*" [dummy-header nil head tail list apply predicate extra-args] 5 "\ Apply PREDICATE to each element on LIST. Args: PREDICATE LIST &rest EXTRA-ARGS. Return a new list consisting of those elements that PREDICATE returns non-nil for. If more than two arguments are given the remaining args are passed to PREDICATE."]) (fset 'cvs-mode-update-no-prompt #[nil " ‰#" [cvs-do-update default-directory nil] 4 "\ Run cvs update in current directory." nil]) (fset 'cvs-do-update #[(directory local dont-change-disc) " \n!\n\"!! !!  O!P!!!P! ! \" P! \"!!=!=!P$'Rq )!+,/\n%)!!P5 !\"\"!eؓ>!q?@ A )B>CDE$FGFHI؉JK L$\">q!!P5 !M?)NO!O,P!" [save-some-buffers file-exists-p cvs-program error "%s: file not found (check setting of cvs-program)" getenv "CVSROOT" cvs-cvsroot "Both cvs-cvsroot and environment variable CVSROOT unset." file-name-as-directory expand-file-name directory this-dir generate-new-buffer file-name-nondirectory 0 -1 "-update" update-buffer make-temp-name "TMPDIR" "/tmp" "pcl-cvs." temp-name nil args file-directory-p "%s is not a directory." "CVS" "%s does not contain CVS controlled files." cvs-update-running process-status run stop "Can't run two `cvs update' simultaneously." " -d " dont-change-disc " -n " " update " local " -l " default-directory make-local-variable cvs-stdout-file process-connection-type start-process "cvs" cvs-shell "-c" " " " > " ": " symbol-name mode-line-process set-buffer-modified-p buffer-modified-p set-process-sentinel cvs-sentinel set-process-filter cvs-update-filter process-mark get-buffer-create cvs-buffer-name buffer-read-only erase-buffer cvs-mode collection-create cvs-pp cvs-startup-message "---------- End -----" cvs-cookie-handle cookie-enter-first cvs-create-fileinfo MESSAGE "\n Running `cvs " "' in " "...\n" t cvs-delete-unused-temporary-buffers cvs-buffers-to-delete sit-for] 11 "\ Do a 'cvs update' in DIRECTORY. Args: DIRECTORY LOCAL DONT-CHANGE-DISC &optional NOTTHISWINDOW. If LOCAL is non-nil 'cvs update -l' is executed. If DONT-CHANGE-DISC is non-nil 'cvs -n update' is executed. Both LOCAL and DONT-CHANGE-DISC may be non-nil simultaneously. *Note*: DONT-CHANGE-DISC does not yet work. The parser gets confused."]) (fset 'cvs-delete-unused-temporary-buffers #[(list) "@!@A!B@!A!" [list nil get-buffer-window cvs-delete-unused-temporary-buffers kill-buffer] 3 "\ Delete all buffers on LIST that is not visible. Return a list of all buffers that still is alive."]) (put 'cvs-mode 'mode-class 'special) (fset 'cvs-mode #[nil "p!!  !!" [cvs-mode major-mode "CVS" mode-name nil mode-line-process buffer-flush-undo make-local-variable goal-column cvs-cursor-column use-local-map cvs-mode-map run-hooks cvs-mode-hook] 2 "\ \\Mode used for pcl-cvs, a frontend to CVS. To get the *cvs* buffer you should use ``\\[cvs-update]''. Full documentation is in the Texinfo file. These are the most useful commands: \\[cvs-mode-previous-line] Move up. \\[cvs-mode-next-line] Move down. \\[cvs-mode-commit] Commit file. \\[cvs-mode-update-no-prompt] Reupdate directory. \\[cvs-mode-mark] Mark file/dir. \\[cvs-mode-unmark] Unmark file/dir. \\[cvs-mode-mark-all-files] Mark all files. \\[cvs-mode-unmark-all-files] Unmark all files. \\[cvs-mode-find-file] Edit file/run Dired. \\[cvs-mode-find-file-other-window] Find file or run Dired in other window. \\[cvs-mode-remove-handled] Remove processed entries. \\[cvs-mode-add-change-log-entry-other-window] Write ChangeLog in other window. \\[cvs-mode-add] Add to repository. \\[cvs-mode-remove-file] Remove file. \\[cvs-mode-diff-cvs] Diff between base revision. \\[cvs-mode-diff-backup] Diff backup file. \\[cvs-mode-emerge] Run emerge on base revision/backup file. \\[cvs-mode-acknowledge] Delete line from buffer. \\[cvs-mode-ignore] Add file to the .cvsignore file. \\[cvs-mode-log] Run ``cvs log''. \\[cvs-mode-status] Run ``cvs status''. \\[cvs-mode-undo-local-changes] Revert the last checked in version - discard your changes to the file. Entry to this mode runs cvs-mode-hook. This description is updated for release 1.05 of pcl-cvs. All bindings: \\{cvs-mode-map}" nil]) (fset 'cvs-sentinel #[(proc msg) "\n!!\n\"\n!>pd` ʎ\n!q\n!!P !\n!\"\n!BB!+\n!?\n!q W bq+" [buffer-name process-buffer proc set-process-buffer nil process-status (signal exit) obuf omax opoint ((byte-code " !‡" [set-buffer-modified-p buffer-modified-p nil cvs-update-running] 2)) ": " symbol-name mode-line-process cvs-stdout-file out-file find-file-noselect stdout-buffer cvs-parse-update cvs-buffers-to-delete delete-file] 4 "\ Sentinel for the cvs update process. This is responsible for parsing the output from the cvs update when it is finished."]) (fset 'cvs-update-filter #[(proc string) "p Î !q !bc !`ȓ\n\"\n\n\"\"y!ДЕ{\nȉ˔˕{װ$\"``{qeb#ޔޕ|eb#y+," [match-data data old-buffer ((byte-code " !\nq" [store-match-data data old-buffer] 2)) process-buffer proc process-mark string nil tin-nth cvs-cookie-handle 1 tin-delete -1 looking-at "^cvs update: \\[..:..:..\\] waiting for \\(.*\\)lock in \\(.*\\)$" 2 cvs-lock-file cookie-enter-last cvs-create-fileinfo MESSAGE " Waiting for " "lock in " ".\n (type M-x cvs-delete-lock to delete it)" s cvs-buffer-name buffer-read-only re-search-forward "^[ ]*Status: .*\n" t 0 "^[ ]" " Status: " "\n"] 11 "\ Filter function for pcl-cvs. This function gets the output that CVS sends to stderr. It inserts it into (process-buffer proc) but it also checks if CVS is waiting for a lock file. If so, it inserts a message cookie in the *cvs* buffer."]) (fset 'cvs-delete-lock #[nil "\n!P!\n!\"!\nQ!\n!\" \n! @P! A n\n!P!)" [file-exists-p file-name-as-directory cvs-lock-file "#cvs.lock" cvs-filter cvs-lock-file-p directory-files error "No lock files found." yes-or-no-p "Really delete locks in " "? " locks delete-file cvs-remove-directory] 5 "\ Delete the lock file that CVS is waiting for. Note that this can be dangerous. You should only do this if you are convinced that the process that created the lock is dead." nil]) (fset 'cvs-remove-directory #[(dir) " ! ĉ % \" ! \"" [file-directory-p dir call-process cvs-rmdir-program nil error "Not a directory: %s" file-exists-p "Could not remove directory %s"] 6 "\ Remove a directory."]) (fset 'cvs-lock-file-p #[(file) "\n\"\n\"\n\"" [string-match "^#cvs.tfl.[0-9]+$" file "^#cvs.rfl.[0-9]+$" "^#cvs.wfl.[0-9]+$"] 3 "\ Return true if FILE looks like a CVS lock file."]) (fset 'cvs-skip-line #[(stdout stderr regexp &optional arg) " !y { p =Ǫ`$" [looking-at regexp 1 arg cvs-parse-error stdout stderr STDOUT STDERR] 5 "\ Like forward-line, but check that the skipped line matches REGEXP. Args: STDOUT STDERR REGEXP &optional ARG. If it doesn't match REGEXP a bug report is generated and displayed. STDOUT and STDERR is only used to do that. If optional ARG, a number, is given the ARGth parenthesized expression in the REGEXP is returned as a string. Point should be in column 1 when this function is called."]) (fset 'cvs-get-current-dir #[(root-dir dirname) "\nO\nP" [dirname "." root-dir 0 -1] 3 "\ Return current working directory, suitable for cvs-parse-update. Args: ROOT-DIR DIRNAME. Concatenates ROOT-DIR and DIRNAME to form an absolute path."]) (fset 'cvs-compare-fileinfos #[(a b) " !\n!Ç !\n!ć !=\n!=Ç\n!= !=ć !\n!" [cvs-fileinfo->dir a b t nil cvs-fileinfo->type DIRCHANGE cvs-fileinfo->file-name] 3 "\ Compare fileinfo A with fileinfo B and return t if A is `less'."]) (fset 'cvs-parse-error #[(stdout-buffer stderr-buffer err-buf pos) "S q cȱccccccccccccccq )q )=#  O! Z\"c!cc!\" ӱcG\"cccG\"cccc! !-" [pos cvs-buffer-name nil buffer-read-only erase-buffer "To: ceder@lysator.liu.se\n" "Subject: pcl-cvs " pcl-cvs-version " parse error.\n" "--text follows this line--\n\n" "This bug report is automatically generated by pcl-cvs\n" "because it doesn't understand some output from CVS. Below\n" "is detailed information about the error. Please send\n" "this, together with any information you think might be\n" "useful for me to fix the bug, to the address above. But\n" "please check the \"known problems\" section of the\n" "documentation first. Note that this buffer contains\n" "information that you might consider confidential. You\n" "are encouraged to read through it before sending it.\n" "\n" "Press C-c C-c to send this email.\n\n" "Please state the version of these programs you are using:\n" "RCS: \ndiff: \n\n" stdout-buffer buffer-string stdout stderr-buffer stderr err-buf STDOUT errstr string-match errline-end errline format "Offending line (%d chars): >" "<\n" "Sent to " symbol-name " at pos " "%d\n" "Emacs-version: " emacs-version "Pcl-cvs $" "Id:" "$" ": " "Id: pcl-cvs.el,v 1.93 1993/05/31 22:44:00 ceder Exp \n" "--- Contents of stdout buffer (%d chars) ---\n" "--- End of stdout buffer ---\n" "--- Contents of stderr buffer (%d chars) ---\n" "--- End of stderr buffer ---\n" "End of bug report.\n" require sendmail mail-mode error "CVS parse error - please report this bug."] 6 "\ Handle a parse error when parsing the output from cvs. Args: STDOUT-BUFFER STDERR-BUFFER ERR-BUF POS. ERR-BUF should be 'STDOUT or 'STDERR."]) (fset 'cvs-parse-update #[(stdout-buffer stderr-buffer) "B \n$ $\nA\" ! \n\" q eb e#+" [dummy nil head cvs-parse-stderr stdout-buffer stderr-buffer default-directory tail root-dir cvs-parse-stdout sort cvs-compare-fileinfos collection-clear cvs-cookie-handle collection-append-cookies cvs-remove-stdout-shadows cvs-remove-empty-directories cvs-buffer-name cvs-mode tin-goto-previous 1] 5 "\ Parse the output from `cvs update'. Args: STDOUT-BUFFER STDERR-BUFFER. This functions parses the from `cvs update' (which should be separated in its stdout- and stderr-components) and prints a pretty representation of it in the *cvs* buffer. Signals an error if unexpected output was detected in the buffer."]) (fset 'cvs-remove-stdout-shadows #[nil " \"" [collection-filter-tins cvs-cookie-handle #[(tin) " !?" [cvs-shadow-entry-p tin] 2]] 3 "\ Remove entries in the *cvs* buffer that comes from both stdout and stderr. If there is two entries for a single file the second one should be deleted. (Remember that sort uses a stable sort algorithm, so one can be sure that the stderr entry is always first)."]) (fset 'cvs-shadow-entry-p #[(tin) " \n\" \n\" \" ! !! !!= !=!= !=!= !=+" [tin-previous cvs-cookie-handle tin previous-tin tin-cookie curr prev cvs-fileinfo->file-name cvs-fileinfo->dir cvs-fileinfo->type CONFLICT MERGED MODIFIED REM-EXIST REMOVED] 4 "\ Return non-nil if TIN is a shadow entry. Args: TIN. A TIN is a shadow entry if the previous tin contains the same file."]) (fset 'cvs-parse-stderr #[(stdout-buffer stderr-buffer head dir) " " [((byte-code "qeb `dW@!yp!y`dW!yqyT!y`dW!yqy8!db.!\nƔƕ{\" Ҕҕ{$CAy!! Ɣƕ{!Ҕҕ{$CAy\n!y\n! Ɣƕ{!Ҕҕ{$CAy\n!y\n!y\n! Ɣƕ{!Ҕҕ{$CAy\n! Ɣƕ{Ҕҕ{$CAy\n! Ɣƕ{Ҕҕ{$CAy\n!`#y%!# #`{$CA)\n`щ)*+%#%$*%#%$)!%#%# )+`{$33*\"3CA)!%#%#%# )+`{$33CA) )+`{$33*\"3CA)+\n*ч" [stderr-buffer dir root-dir current-dir looking-at "updating of .* finished$" 1 "REMOTE FOLDER:.*" "phase 2.*" 2 "turn on remote mode$" "phase 3.*" "cvs update: Updating \\(.*\\)$" cvs-get-current-dir head cvs-create-fileinfo DIRCHANGE nil 0 "cvs update: warning: \\(.*\\) is not (any longer) pertinent" "cvs update: \\(.*\\) is no longer in the repository" CVS-REMOVED file-name-nondirectory "cvs update: warning: .* was lost$" "^cvs update: move away \\(.*\\); it is in the way$" MOVE-AWAY "^$" "^cvs update: \\[..:..:..\\] waiting for .*lock in " "cvs update: conflict: \\(.*\\) is modified but no longer in the repository$" REM-CONFLICT "cvs update: conflict: removed \\(.*\\) was modified by second party" MOD-CONFLICT "cvs update: \\(.*\\) should be removed and is still there" REM-EXIST "cvs update: in directory " start cvs-skip-line stdout-buffer regexp-quote "cvs [update aborted]: there is no repository " REPOS-MISSING filename initial-revision complex-start "^RCS file: .*$" "^retrieving revision \\(.*\\)$" "^retrieving revision .*$" "^Merging differences between [0-9.]+ and [0-9.]+ into \\(.*\\)$" "^\\(rcs\\)?merge\\( warning\\)?: overlaps during merge$" "^cvs update: conflicts found in " CONFLICT fileinfo cvs-set-fileinfo->base-revision "^\\(rcs\\)?merge\\( warning\\)?: overlaps or other problems during merge$" "^\\(rcs\\)?merge\\( warning\\)?: overlaps .*during merge$" "^cvs update: could not merge " "^cvs update: restoring .* from backup file " MERGED] 7)) head] 1 "\ Parse the output from CVS that is written to stderr. Args: STDOUT-BUFFER STDERR-BUFFER HEAD DIR STDOUT-BUFFER holds the output that cvs sent to stdout. It is only used to create a bug report in case there is a parse error. STDERR-BUFFER is the buffer that holds the output to parse. HEAD is a cons-cell, the head of the list that is built. DIR is the directory the `cvs update' was run in. This function returns the last cons-cell in the list that is built."]) (fset 'cvs-parse-stdout #[(stdout-buffer stderr-buffer head root-dir) "" [((byte-code "qeb`dW!Ôf!ǔǕ{P =˪ =ͪ =Ϫ =Ѫ =Ӫ =!O!הו{$ =\"CAy+! !y\"`$" [stdout-buffer looking-at "\\([MARCU?]\\) \\(.*\\)$" 1 c file-name-as-directory root-dir 2 full-path cvs-create-fileinfo 77 MODIFIED 65 ADDED 82 REMOVED 67 CONFLICT 85 UPDATED 63 UNKNOWN file-name-directory 0 -1 file-name-nondirectory fileinfo cvs-set-fileinfo->handled t head "cvs update: Executing" re-search-forward cvs-update-prog-output-skip-regexp cvs-parse-error stderr-buffer STDOUT] 6))] 1 "\ Parse the output from CVS that is written to stderr. Args: STDOUT-BUFFER STDERR-BUFFER HEAD ROOT-DIR STDOUT-BUFFER is the buffer that holds the output to parse. STDERR-BUFFER holds the output that cvs sent to stderr. It is only used to create a bug report in case there is a parse error. HEAD is a cons-cell, the head of the list that is built. ROOT-DIR is the directory the `cvs update' was run in. This function doesn't return anything particular."]) (fset 'cvs-pp #[(fileinfo) " ! !ê ! !Ǫ \n  = \n#  =  \n$  =  \n$  = \n#  =  \n$  =  \n$  = \n# = \n# = \n# = \n# = \n# = !\" = \n# =! = ! \n#c," [cvs-fileinfo->type fileinfo cvs-fileinfo->marked "*" " " cvs-fileinfo->file-name cvs-fileinfo->handled " " "ci" ci f s a UPDATED format "%s Updated %s" MODIFIED "%s Modified %s %s" MERGED "%s Merged %s %s" CONFLICT "%s Conflict %s" ADDED "%s Added %s %s" REMOVED "%s Removed %s %s" UNKNOWN "%s Unknown %s" CVS-REMOVED "%s Removed from repository: %s" REM-CONFLICT "%s Conflict: Removed from repository, changed by you: %s" MOD-CONFLICT "%s Conflict: Removed by you, changed in repository: %s" REM-EXIST "%s Conflict: Removed by you, but still exists: %s" DIRCHANGE "\nIn directory %s:" cvs-fileinfo->dir MOVE-AWAY "%s Move away %s - it is in the way" REPOS-MISSING " This repository is missing! Remove this dir manually." MESSAGE cvs-fileinfo->full-log "%s Internal error! %s"] 6 "\ Pretty print FILEINFO. Insert a printed representation in current buffer. For use by the cookie package."]) (byte-code " !#############################" [cvs-mode-map make-keymap suppress-keymap define-key " " cvs-mode-next-line "?" describe-mode "A" cvs-mode-add-change-log-entry-other-window "M" cvs-mode-mark-all-files "R" cvs-mode-revert-updated-buffers "U" cvs-mode-undo-local-changes "" cvs-mode-unmark-up " " cvs-mode-acknowledge "" "" cvs-mode-previous-line "" cvs-mode-unmark-all-files "a" cvs-mode-add "b" cvs-mode-diff-backup "c" cvs-mode-commit "d" cvs-mode-diff-cvs "e" cvs-mode-find-file "f" "g" cvs-mode-update-no-prompt "i" cvs-mode-ignore "l" cvs-mode-log "m" cvs-mode-mark "n" "o" cvs-mode-find-file-other-window "p" "q" bury-buffer "r" cvs-mode-remove-file "s" cvs-mode-status "x" cvs-mode-remove-handled "u" cvs-mode-unmark] 4) (fset 'cvs-get-marked #[(&optional ignore-marks) "\n\"\n`\"\n \"!=\n\n \"!# C)" [ignore-marks collection-collect-tin cvs-cookie-handle cvs-fileinfo->marked tin-locate sel cvs-fileinfo->type tin-cookie DIRCHANGE cvs-dir-member-p cvs-fileinfo->dir] 8 "\ Return a list of all selected tins. If there are any marked tins, and IGNORE-MARKS is nil, return them. Otherwise, if the cursor selects a directory, return all files in it. Otherwise return (a list containing) the file the cursor points to, or an empty list if it doesn't point to a file at all. Args: &optional IGNORE-MARKS."]) (fset 'cvs-dir-member-p #[(fileinfo dir) " !=? ! " [cvs-fileinfo->type fileinfo DIRCHANGE cvs-fileinfo->dir dir] 2 "\ Return true if FILEINFO represents a file in directory DIR."]) (fset 'cvs-dir-empty-p #[(tin) "\n \"!=\n \"?\n\n \"\"!=" [cvs-fileinfo->type tin-cookie cvs-cookie-handle tin DIRCHANGE tin-next] 6 "\ Return non-nil if TIN is a directory that is empty. Args: CVS-BUF TIN."]) (fset 'cvs-mode-revert-updated-buffers #[nil "\n\"" [cookie-map cvs-revert-fileinfo cvs-cookie-handle] 3 "\ Revert any buffers that are UPDATED, MERGED or CONFLICT." nil]) (fset 'cvs-revert-fileinfo #[(fileinfo) " ! ! !\n=\n=\n=q \"\")+" [cvs-fileinfo->type fileinfo type cvs-fileinfo->full-path file get-file-buffer buffer UPDATED MERGED CONFLICT buffer-modified-p error "%s: edited since last cvs-update." buffer-file-name revert-buffer dont-use-auto-save-file dont-ask] 3 "\ Revert the buffer that holds the file in FILEINFO if it has changed, and if the type is UPDATED, MERGED or CONFLICT."]) (fset 'cvs-mode-remove-handled #[nil " \" " [collection-filter-cookies cvs-cookie-handle #[(fileinfo) " !?" [cvs-fileinfo->handled fileinfo] 2] cvs-remove-empty-directories] 3 "\ Remove all lines that are handled. Empty directories are removed." nil]) (fset 'cvs-remove-empty-directories #[nil " \"" [collection-filter-tins cvs-cookie-handle #[(tin) " !?" [cvs-dir-empty-p tin] 2]] 3 "\ Remove empty directories in the *cvs* buffer."]) (fset 'cvs-mode-mark #[(pos) " \n\" \" != !# \" \" \n#*" [tin-locate cvs-cookie-handle pos tin tin-cookie sel cvs-fileinfo->type DIRCHANGE cookie-map #[(f dir) " \n\" \"ć" [cvs-dir-member-p f dir cvs-set-fileinfo->marked t] 3] cvs-fileinfo->dir cvs-set-fileinfo->marked t tin-invalidate tin-goto-next 1] 5 "\ Mark a fileinfo. Args: POS. If the fileinfo is a directory, all the contents of that directory are marked instead. A directory can never be marked. POS is a buffer position." "d"]) (fset 'cvs-committable #[(tin) " \n\" ! !? = = = = =*" [tin-cookie cvs-cookie-handle tin fileinfo cvs-fileinfo->type type cvs-fileinfo->handled MODIFIED ADDED REMOVED MERGED CONFLICT] 3 "\ Check if the TIN is committable. It is committable if it a) is not handled and b) is either MODIFIED, ADDED, REMOVED, MERGED or CONFLICT."]) (fset 'cvs-mode-commit #[nil "p \"! !!eb\n d! ! !*" [cvs-buf cvs-filter cvs-committable cvs-get-marked marked error "Nothing to commit!" pop-to-buffer get-buffer-create cvs-commit-prompt-buffer cvs-erase-input-buffer erase-buffer push-mark cvs-edit-mode make-local-variable cvs-commit-list message "Press C-c C-c when you are done editing."] 4 "\ Check in all marked files, or the current file. The user will be asked for a log message in a buffer. If cvs-erase-input-buffer is non-nil that buffer will be erased. Otherwise mark and point will be set around the entire contents of the buffer so that it is easy to kill the contents of the buffer with \\[kill-region]." nil]) (fset 'cvs-edit-done #[nil "!dVdSfU = \"!dbc)  !ped{!! !E#\"\"@\"!An)\"#qq& ,!" [cvs-commit-list error "You have already commited the files" 1 10 cvs-commit-buffer-require-final-newline t yes-or-no-p format "Buffer %s does not end in newline. Add one? " buffer-name save-some-buffers get-buffer cvs-buffer-name msg msg-buffer cc-buffer cc-list pop-to-buffer bury-buffer cvs-use-temp-buffer message "Committing..." cvs-execute-list cvs-program cvs-cvsroot "-d" "commit" "-m" "Something went wrong. Check the %s buffer carefully." cvs-temp-buffer-name ccl cvs-after-commit-function tin-cookie cvs-cookie-handle apply tin-invalidate nil cvs-auto-remove-handled cvs-mode-remove-handled "Committing... Done."] 9 "\ Commit the files to the repository." nil]) (fset 'cvs-after-commit-function #[(fileinfo) " \" ! !q ?\")*" [cvs-set-fileinfo->handled fileinfo t cvs-auto-revert-after-commit cvs-fileinfo->full-path file get-file-buffer buffer buffer-modified-p revert-buffer dont-use-auto-save-file dont-ask] 4 "\ Do everything that needs to be done when FILEINFO has been commited. The fileinfo->handle is set, and if the buffer is present it is reverted."]) (fset 'cvs-execute-list #[(tin-list program constant-args) "\n \n@\"!\n \n@\"! \n@\"!B\nAb!  \"c!##c׉!&U U)db+ )" [nil exitstatus tin-list cvs-fileinfo->dir tin-cookie cvs-cookie-handle arg-str arg-list current-dir cvs-fileinfo->file-name file-name-as-directory default-directory format "=== cd %s\n" "=== %s %s\n\n" program mapconcat (lambda (foo) foo) copy-sequence constant-args " " apply call-process t res 0 1] 9 "\ Run PROGRAM on all elements on TIN-LIST. Args: TIN-LIST PROGRAM CONSTANT-ARGS The PROGRAM will be called with pwd set to the directory the files reside in. CONSTANT-ARGS should be a list of strings. The arguments given to the program will be CONSTANT-ARGS followed by all the files (from TIN-LIST) that resides in that directory. If the files in TIN-LIST resides in different directories the PROGRAM will be run once for each directory (if all files in the same directory appears after each other). Any output from PROGRAM will be inserted in the current buffer. This function return nil if all went well, or the numerical exit status or a signal name as a string. Note that PROGRAM might be called several times. This will return non-nil if something goes wrong, but there is no way to know which process that failed."]) (fset 'cvs-execute-single-file-list #[(tin-list extractor program constant-args) " @\"!! @\"!=\"c !##c ȉ!&db*A2ԇ" [tin-list file-name-as-directory cvs-fileinfo->dir tin-cookie cvs-cookie-handle extractor arg-list default-directory t format "=== cd %s\n" "=== %s %s\n\n" program mapconcat (lambda (foo) foo) copy-sequence constant-args " " apply call-process nil] 9 "\ Run PROGRAM on all elements on TIN-LIST. Args: TIN-LIST EXTRACTOR PROGRAM CONSTANT-ARGS The PROGRAM will be called with pwd set to the directory the files reside in. CONSTANT-ARGS is a list of strings to pass as arguments to PROGRAM. The arguments given to the program will be CONSTANT-ARGS followed by the list that EXTRACTOR returns. EXTRACTOR will be called once for each file on TIN-LIST. It is given one argument, the cvs-fileinfo. It can return t, which means ignore this file, or a list of arguments to send to the program."]) (fset 'cvs-edit-mode #[nil " !!" [use-local-map cvs-edit-mode-map cvs-edit-mode major-mode "CVS Log" mode-name auto-fill-mode 1] 2 "\ \\Mode for editing cvs log messages. Commands: \\[cvs-edit-done] checks in the file when you are ready. This mode is based on fundamental mode." nil]) (byte-code " !##" [cvs-edit-mode-map make-sparse-keymap define-prefix-command cvs-control-c-prefix define-key "" "" cvs-edit-done] 4) (fset 'cvs-diffable #[(tins) "\n \n@\"!======\n@ B\nA)F )" [nil result tins cvs-fileinfo->type tin-cookie cvs-cookie-handle type MODIFIED UPDATED MERGED CONFLICT REMOVED ADDED] 5 "\ Return a list of all tins on TINS that it makes sense to run ``cvs diff'' on."]) (fset 'cvs-mode-diff-cvs #[(&optional ignore-marks) "backup-file tin-cookie cvs-cookie-handle tin file file-readable-p] 5 "\ Check if the TIN is backup-diffable. It must have a backup file to be diffable."]) (fset 'cvs-mode-diff-backup #[(&optional ignore-marks) "backup-file fileinfo error "%s has no backup file." file-name-as-directory cvs-fileinfo->dir cvs-fileinfo->file-name] 5 "\ Return the filename and the name of the backup file as a list. Signal an error if there is no backup file."]) (fset 'cvs-mode-find-file-other-window #[(pos) " \n\" \"!==!=p   \"!!  !q  * !!)!)" [tin-locate cvs-cookie-handle pos tin cvs-fileinfo->type tin-cookie type REMOVED CVS-REMOVED error "Can't visit a removed file." DIRCHANGE default-directory odir obuf file-name-as-directory cvs-fileinfo->dir dired-other-window find-file-other-window cvs-full-path "There is no file to find."] 6 "\ Select a buffer containing the file in another window. Args: POS" "d"]) (fset 'cvs-fileinfo->full-path #[(fileinfo) "\n!!\n!P" [file-name-as-directory cvs-fileinfo->dir fileinfo cvs-fileinfo->file-name] 3 "\ Return the full path for the file that is described in FILEINFO."]) (fset 'cvs-full-path #[(tin) "\n \"!" [cvs-fileinfo->full-path tin-cookie cvs-cookie-handle tin] 4 "\ Return the full path for the file that is described in TIN."]) (fset 'cvs-mode-find-file #[(pos) "p\n \"\n \"!==!=!!!q) !!*!*" [cvs-buf tin-locate cvs-cookie-handle pos tin tin-cookie fileinfo cvs-fileinfo->type type REMOVED CVS-REMOVED error "Can't visit a removed file." DIRCHANGE default-directory odir file-name-as-directory cvs-fileinfo->dir dired find-file cvs-full-path "There is no file to find."] 4 "\ Select a buffer containing the file in another window. Args: POS" "d"]) (fset 'cvs-mode-mark-all-files #[nil "\n\"" [cookie-map #[(cookie) " !=? \"ć" [cvs-fileinfo->type cookie DIRCHANGE cvs-set-fileinfo->marked t] 3] cvs-cookie-handle] 3 "\ Mark all files. Directories are not marked." nil]) (fset 'cvs-mode-unmark #[(pos) " \n\" \" != !# \" \" \n#*" [tin-locate cvs-cookie-handle pos tin tin-cookie sel cvs-fileinfo->type DIRCHANGE cookie-map #[(f dir) " \n\" \"Ň" [cvs-dir-member-p f dir cvs-set-fileinfo->marked nil t] 3] cvs-fileinfo->dir cvs-set-fileinfo->marked nil tin-invalidate tin-goto-next 1] 5 "\ Unmark a fileinfo. Args: POS." "d"]) (fset 'cvs-mode-unmark-all-files #[nil "\n\"" [cookie-map #[(cookie) " \"Ç" [cvs-set-fileinfo->marked cookie nil t] 3] cvs-cookie-handle] 3 "\ Unmark all files. Directories are also unmarked, but that doesn't matter, since they should always be unmarked." nil]) (fset 'cvs-do-removal #[(tins) " \" G\"! @   \"  !== !!==  \" B \" \"  \"+ A&)LJ" [cvs-use-temp-buffer mapcar cvs-insert-full-path tins yes-or-no-p format "Delete %d files? " nil files-to-remove tin tin-cookie cvs-cookie-handle fileinfo cvs-fileinfo->type type REMOVED CVS-REMOVED delete-file cvs-full-path UNKNOWN MOVE-AWAY tin-delete cvs-set-fileinfo->type cvs-set-fileinfo->handled tin-invalidate] 5 "\ Remove files. Args: TINS. TINS is a list of tins that the user wants to delete. The files are deleted. If the type of the tin is 'UNKNOWN the tin is removed from the buffer. If it is anything else the file is added to a list that should be `cvs remove'd and the tin is changed to be of type 'REMOVED. Returns a list of tins files that should be `cvs remove'd."]) (fset 'cvs-mode-remove-file #[nil " !?? !\nE#!!)" [cvs-do-removal cvs-get-marked files-to-remove cvs-use-temp-buffer message "removing from repository..." cvs-execute-list cvs-program cvs-cvsroot "-d" "remove" ("remove") error "CVS exited with non-zero exit status." "removing from repository... done."] 7 "\ Remove all marked files." nil]) (fset 'cvs-mode-undo-local-changes #[nil "  \" G\"! @\n \n\"  !=========\n!!\n B  \" \" \n\"= !\"=!=!= !\"\" A+ ! +,,E#!!))" [cvs-get-marked tins-to-undo cvs-use-temp-buffer mapcar cvs-insert-full-path yes-or-no-p format "Undo changes to %d files? " nil files-to-update tin tin-cookie cvs-cookie-handle fileinfo cvs-fileinfo->type type UPDATED MODIFIED MERGED CONFLICT CVS-REMOVED REM-CONFLICT MOVE-AWAY REMOVED delete-file cvs-full-path cvs-set-fileinfo->type cvs-set-fileinfo->handled t tin-invalidate MOD-CONFLICT error "Use cvs-mode-add instead on %s." cvs-fileinfo->file-name "Can't deal with a file you have removed and recreated." DIRCHANGE "Undo on directories not supported (yet)." ADDED "There is no old revision to get for %s" "cvs-mode-undo-local-changes: can't handle an %s" message "Regetting files from repository..." cvs-execute-list cvs-program cvs-cvsroot "-d" "update" ("update") "CVS exited with non-zero exit status." "Regetting files from repository... done."] 7 "\ Undo local changes to all marked files. The file is removed and `cvs update FILE' is run." nil]) (fset 'cvs-mode-acknowledge #[nil " \"" [mapcar #[(tin) " \n\"" [tin-delete cvs-cookie-handle tin] 3] cvs-get-marked] 3 "\ Remove all marked files from the buffer." nil]) (fset 'cvs-mode-unmark-up #[(pos) " \n# \"\" \")" [tin-goto-previous cvs-cookie-handle pos 1 tin cvs-set-fileinfo->marked tin-cookie nil tin-invalidate] 5 "\ Unmark the file on the previous line. Takes one argument POS, a buffer position." "d"]) (fset 'cvs-mode-previous-line #[(arg) " `\n#" [tin-goto-previous cvs-cookie-handle arg] 4 "\ Go to the previous line. If a prefix argument is given, move by that many lines." "p"]) (fset 'cvs-mode-next-line #[(arg) " `\n#" [tin-goto-next cvs-cookie-handle arg] 4 "\ Go to the next line. If a prefix argument is given, move by that many lines." "p"]) (fset 'cvs-add-file-update-buffer #[(tin) " \n\" != \" \n\"ɪ != \" \" \n\")" [tin-cookie cvs-cookie-handle tin fileinfo cvs-fileinfo->type UNKNOWN cvs-set-fileinfo->type ADDED tin-invalidate ADD REMOVED UPDATED cvs-set-fileinfo->handled t RESURRECT] 3 "\ Subfunction to cvs-mode-add. Internal use only. Update the display. Return non-nil if `cvs add' should be called on this file. Args: TIN. Returns 'ADD or 'RESURRECT."]) (fset 'cvs-add-sub #[(cvs-buf candidates) " @!= @\nB = @ B) A^\n *B" [nil resurrect add candidates cvs-add-file-update-buffer type ADD RESURRECT] 3 "\ Internal use only. Args: CVS-BUF CANDIDATES. CANDIDATES is a list of tins. Updates the CVS-BUF and returns a pair of lists. The first list is unknown tins that shall be `cvs add -m msg'ed. The second list is removed files that shall be `cvs add'ed (resurrected)."]) (fset 'cvs-mode-add #[nil "p \"@ A ! !  E#!! !  E#!!-" [buf cvs-add-sub cvs-get-marked result added resurrect read-from-minibuffer "Enter description: " msg cvs-use-temp-buffer message "Resurrecting files from repository..." cvs-execute-list cvs-program cvs-cvsroot "-d" "add" ("add") error "CVS exited with non-zero exit status." "Done." "Adding new files to repository..." "-m"] 9 "\ Add marked files to the cvs repository." nil]) (fset 'cvs-mode-ignore #[nil " \"" [mapcar #[(tin) "\n \"!=\n \"!\n \"" [cvs-fileinfo->type tin-cookie cvs-cookie-handle tin UNKNOWN cvs-append-to-ignore tin-delete] 4] cvs-get-marked] 3 "\ Arrange so that CVS ignores the selected files. This command ignores files that are not flagged as `Unknown'." nil]) (fset 'cvs-append-to-ignore #[(fileinfo) "" [((byte-code " !!P!qdbiUc !Ʊed# " [find-file-noselect file-name-as-directory cvs-fileinfo->dir fileinfo ".cvsignore" 0 "\n" cvs-fileinfo->file-name cvs-sort-ignore-file sort-lines nil save-buffer] 4))] 1 "\ Append the file in fileinfo to the .cvsignore file"]) (fset 'cvs-mode-status #[nil "  !\n BBB B#!!)" [save-some-buffers cvs-get-marked marked cvs-use-temp-buffer message "Running cvs status ..." cvs-execute-list cvs-program cvs-cvsroot "-d" "status" cvs-status-flags error "CVS exited with non-zero exit status." "Running cvs status ... Done."] 7 "\ Show cvs status for all marked files." nil]) (fset 'cvs-mode-log #[nil "  ! \nBBB\nB#!!)" [cvs-get-marked marked cvs-use-temp-buffer message "Running cvs log ..." cvs-execute-list cvs-program cvs-cvsroot "-d" "log" cvs-log-flags error "CVS exited with non-zero exit status." "Running cvs log ... Done."] 7 "\ Display the cvs log of all selected files." nil]) (fset 'cvs-byte-compile-files #[nil "  @! \" !) Aj)" [cvs-get-marked marked cvs-full-path filename string-match "\\.el$" byte-compile-file nil] 4 "\ Run byte-compile-file on all selected files that end in '.el'." nil]) (fset 'cvs-insert-full-path #[(tin) " !\"c" [format "%s\n" cvs-full-path tin] 4 "\ Insert full path to the file described in TIN in the current buffer."]) (fset 'cvs-mode-add-change-log-entry-other-window #[(pos) "p \"\"!!\n q\n*" [cvs-buf default-directory odir file-name-as-directory cvs-fileinfo->dir tin-cookie cvs-cookie-handle tin-locate pos add-change-log-entry-other-window] 8 "\ Add a ChangeLog entry in the ChangeLog of the current directory. Args: POS." "d"]) (fset 'print-cvs-tin #[(foo) " \n\"! \"! \" \"! \" \"! \" \"! \" \"*" [tin-cookie cvs-cookie-handle foo get-buffer-create "debug" stream cookie princ "==============\n" cvs-fileinfo->file-name "\n" cvs-fileinfo->dir cvs-fileinfo->full-log cvs-fileinfo->marked] 3 "\ Debug utility."]) (fset 'cvs-mode-emerge #[(pos) "p\n \"\n \"!=!! Ύ! !$?!*==!!!\" ؎! !%?!+\"*!*" [cvs-buf tin-locate cvs-cookie-handle pos tin tin-cookie fileinfo cvs-fileinfo->type type MODIFIED require emerge cvs-retrieve-revision-to-tmpfile tmp-file ((delete-file tmp-file)) emerge-files t cvs-fileinfo->full-path error "Emerge session failed" MERGED CONFLICT cvs-fileinfo->base-revision ancestor-file ((byte-code " !\n!" [delete-file tmp-file ancestor-file] 2)) emerge-files-with-ancestor cvs-fileinfo->backup-file "Can only emerge \"Modified\", \"Merged\" or \"Conflict\"%s" " files" "There is no file to emerge."] 8 "\ Emerge appropriate revisions of the selected file. Args: POS" "d"]) (fset 'cvs-retrieve-revision-to-tmpfile #[(fileinfo &optional revision) "!!Q!!\"! ΉQ!&U\"\"!!*" [make-temp-name file-name-as-directory getenv "TMPDIR" "/tmp" "pcl-cvs." revision temp-name cvs-kill-buffer-visiting message "Retrieving revision %s..." "Retrieving latest revision..." call-process cvs-shell nil "-c" cvs-program " update -p " "-r " " " "" cvs-fileinfo->full-path fileinfo " > " res 0 error "Something went wrong: %s" "Retrieving revision %s... Done." "Retrieving latest revision... Done." find-file-noselect] 13 "\ Retrieve the latest revision of the file in FILEINFO to a temporary file. If second optional argument REVISION is given, retrieve that revision instead."]) (fset 'cvs-fileinfo->backup-file #[(fileinfo) " !\n ! !R" [cvs-fileinfo->base-revision fileinfo cvs-bakprefix cvs-fileinfo->file-name "."] 5 "\ Construct the file name of the backup file for FILEINFO."]) (fset 'cvs-kill-buffer-visiting #[(filename) "  @! @! Am)" [buffer-list l buffer-file-name filename kill-buffer nil] 3 "\ If there is any buffer visiting FILENAME, kill it (without confirmation)."]) (fset 'cvs-change-cvsroot #[(newroot) " \"!P! " [file-directory-p expand-file-name "CVSROOT" newroot y-or-n-p "Warning: no CVSROOT found inside repository." " Change cvs-cvsroot anyhow?" cvs-cvsroot] 4 "\ Change the cvsroot." "DNew repository: "]) (byte-code "\n\"\"\"" [string-match "Lucid" emacs-version autoload pcl-cvs-fontify "pcl-cvs-lucid" add-hook cvs-mode-hook] 3)