;ELC
;;; Compiled by LTX@Xue-LingTaos-MacBook-Pro.local on Wed Mar 16 23:19:26 2011
;;; from file /Users/LTX/Projects/Emacs/emacs/lisp/vc/pcvs-defs.el
;;; in Emacs version 24.0.50.1
;;; with all optimizations.

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

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

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


(require 'pcvs-util)
#@43 *Name or full path of the cvs executable.
(defvar cvs-program "cvs" (#$ . -567))
#@87 *Version of `cvs' installed on your system.
It must be in the (MAJOR . MINOR) format.
(defvar cvs-version (byte-code "\300\301\302\217\207" [nil (byte-code "\302\303!rq\210\304\216\305	\306\307\306\310%\210eb\210\311\312\306\307#\205(\313\314\315!!\313\314\316!!B+\207" [#1=#:temp-buffer cvs-program generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) call-process nil t "-v" re-search-forward "(CVS\\(NT\\)?) \\([0-9]+\\)\\.\\([0-9]+\\)" string-to-number match-string 1 2] 6) ((error))] 3) (#$ . -654))
#@172 *Name or full path of the best diff program you've got.
NOTE:  there are some nasty bugs in the context diff variants of some vendor
versions, such as the one in SunOS-4.
(defvar cvs-diff-program (byte-code "\301\300!\203\n\206\302\207" [diff-command boundp "diff"] 2) (#$ . -1226))
(custom-declare-group 'pcl-cvs nil "Special support for the CVS versioning system." :version "21.1" :group 'tools :prefix "cvs-")
#@26 Path to your cvsrc file.
(custom-declare-variable 'cvs-cvsrc-file '(convert-standard-filename "~/.cvsrc") '(#$ . 1649) :group 'pcl-cvs :type '(file))
#@192 Index of the first shared flag.
If set to 4, for instance, a numeric argument smaller than 4 will
select a non-shared flag, while a numeric argument greater than 3
will select a shared-flag.
(defvar cvs-shared-start 4 (#$ . 1806))
#@64 List of flags whose settings is shared among several commands.
(defvar cvs-shared-flags (make-list cvs-shared-start nil) (#$ . 2043))
#@329 *Specifies where the (current) cvs master repository is.
Overrides the environment variable $CVSROOT by sending " -d dir" to
all CVS commands. This switch is useful if you have multiple CVS
repositories. It can be set interactively with \[cvs-change-cvsroot.]
There is no need to set this if $CVSROOT is set to a correct value.
(defvar cvs-cvsroot nil (#$ . -2184))
#@348 If up-to-date files should be acknowledged automatically.
If T, they will be removed from the *cvs* buffer after every command.
If DELAYED, they will be removed from the *cvs* buffer before every command.
If STATUS, they will only be removed after a `cvs-mode-status' command.
Else, they will never be automatically removed from the *cvs* buffer.
(custom-declare-variable 'cvs-auto-remove-handled 'nil '(#$ . 2557) :group 'pcl-cvs :type '(choice (const nil) (const status) (const delayed) (const t)))
#@156 If ALL, directory entries will never be shown.
If HANDLED, only non-handled directories will be shown.
If EMPTY, only non-empty directories will be shown.
(custom-declare-variable 'cvs-auto-remove-directories ''handled '(#$ . 3065) :group 'pcl-cvs :type '(choice (const :tag "No" nil) (const all) (const handled) (const empty)))
#@60 Non-nil if changed files should automatically be reverted.
(custom-declare-variable 'cvs-auto-revert 't '(#$ . 3400) :group 'pcl-cvs :type '(boolean))
#@72 Non-nil if `cvs-mode-ignore' should sort the .cvsignore automatically.
(custom-declare-variable 'cvs-sort-ignore-file 't '(#$ . 3557) :group 'pcl-cvs :type '(boolean))
#@286 If non-nil, tagging can only be applied to directories.
Tagging should generally be applied a directory at a time, but sometimes it is
useful to be able to tag a single file.  The normal way to do that is to use
`cvs-mode-force-command' so as to temporarily override the restrictions,
(custom-declare-variable 'cvs-force-dir-tag 't '(#$ . 3732) :group 'pcl-cvs :type '(boolean))
#@324 Non-nil if cvs mode commands should ignore any marked files.
Normally they run 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 by default run on the file on the
current line.  See also `cvs-invert-ignore-marks'
(custom-declare-variable 'cvs-default-ignore-marks 'nil '(#$ . 4118) :group 'pcl-cvs :type '(boolean))
(byte-code "\301B\302\301!\204\303\301\304\"\210\305\301\306\307#\207" [current-load-list cvs-diff-ignore-marks default-boundp set-default t make-obsolete-variable cvs-invert-ignore-marks "21.1"] 4)
#@167 List of cvs commands that invert the default ignore-mark behavior.
Commands in this set will use the opposite default from the one set
in `cvs-default-ignore-marks'.
(custom-declare-variable 'cvs-invert-ignore-marks '(let ((l nil)) (unless (equal cvs-diff-ignore-marks cvs-default-ignore-marks) (push "diff" l)) (when (and cvs-force-dir-tag (not cvs-default-ignore-marks)) (push "tag" l)) l) '(#$ . 4754) :group 'pcl-cvs :type '(set (const "diff") (const "tag") (const "ignore")))
#@302 Ask for confirmation before removing files.
Non-nil means that PCL-CVS will ask confirmation before removing files
except for files whose content can readily be recovered from the repository.
A value of `list' means that the list of files to be deleted will be
displayed when asking for confirmation.
(custom-declare-variable 'cvs-confirm-removals 't '(#$ . 5242) :group 'pcl-cvs :type '(choice (const list) (const t) (const nil)))
#@107 Default message to use when adding files.
If set to nil, `cvs-mode-add' will always prompt for a message.
(custom-declare-variable 'cvs-add-default-message 'nil '(#$ . 5681) :group 'pcl-cvs :type '(choice (const :tag "Prompt" nil) (string)))
(byte-code "\301B\302\301!\204\303\301\304\"\210\305\301\306\307#\207" [current-load-list cvs-diff-buffer-name default-boundp set-default "*cvs-diff*" make-obsolete-variable cvs-buffer-name-alist "21.1"] 4)
#@216 Jump to the modified area when finding a file.
If non-nil, `cvs-mode-file-file' will place the cursor at the beginning of
the modified area.  If the file is not locally modified, this will obviously
have no effect.
(custom-declare-variable 'cvs-find-file-and-jump 'nil '(#$ . 6141) :group 'pcl-cvs :type '(boolean))
#@549 Buffer name and mode to be used for each command.
This is a list of elements of the form

	(CMD BUFNAME MODE &optional POSTPROC)

CMD is the name of the command.
BUFNAME is an expression that should evaluate to a string used as
  a buffer name.  It can use the variable CMD if it wants to.
MODE is the command to use to setup the buffer.
POSTPROC is a function that should be executed when the command terminates

The CMD used for `cvs-mode-commit' is "message".  For that special
  case, POSTPROC is called just after MODE with special arguments.
(custom-declare-variable 'cvs-buffer-name-alist ''(("diff" cvs-diff-buffer-name diff-mode) ("status" "*cvs-info*" cvs-status-mode) ("tree" "*cvs-info*" cvs-status-mode) ("message" "*cvs-commit*" nil log-edit) ("log" "*cvs-info*" log-view-mode)) '(#$ . 6464) :group 'pcl-cvs :type '(repeat (list (choice (const "diff") (const "status") (const "tree") (const "message") (const "log") (string)) (choice (const "*vc-diff*") (const "*cvs-info*") (const "*cvs-commit*") (const (expand-file-name "*cvs-commit*")) (const (format "*cvs-%s*" cmd)) (const (expand-file-name (format "*cvs-%s*" cmd))) (sexp :value "my-cvs-info-buffer") (const nil)) (choice (function-item diff-mode) (function-item cvs-edit-mode) (function-item cvs-status-mode) function (const nil)) (set :inline t (choice (function-item cvs-status-cvstrees) (function-item cvs-status-trees) function)))))
#@135 Name of the cvs buffer.
This expression will be evaluated in an environment where DIR is set to
the directory name of the cvs buffer.
(defvar cvs-buffer-name '(expand-file-name "*cvs*" dir) (#$ . 7880))
#@94 *Name of the cvs temporary buffer.
Output from cvs is placed here for asynchronous commands.
(defvar cvs-temp-buffer-name " *cvs-tmp*" (#$ . -8089))
#@78 Pair of functions to be used for resp.  diff'ing and merg'ing interactively.
(custom-declare-variable 'cvs-idiff-imerge-handlers '(if (fboundp 'ediff) '(cvs-ediff-diff . cvs-ediff-merge) '(cvs-emerge-diff . cvs-emerge-merge)) '(#$ . 8244) :group 'pcl-cvs :type '(choice (const :tag "Ediff" (cvs-ediff-diff . cvs-ediff-merge)) (const :tag "Emerge" (cvs-emerge-diff . cvs-emerge-merge))))
#@33 Run after `cvs-mode' was setup.
(defvar cvs-mode-hook nil (#$ . 8637))
#@51 (Buffer local) what to do once the process exits.
(defvar cvs-postprocess nil (#$ . 8714))
#@286 When to reuse an existing cvs buffer.
Alternatives are:
 CURRENT: just reuse the current buffer if it is a cvs buffer
 SAMEDIR: reuse any cvs buffer displaying the same directory
 SUBDIR:  or reuse any cvs buffer displaying any sub- or super- directory
 ALWAYS:  reuse any cvs buffer.
(custom-declare-variable 'cvs-reuse-cvs-buffer ''subdir '(#$ . 8812) :group 'pcl-cvs :type '(choice (const always) (const subdir) (const samedir) (const current)))
#@72 (Buffer local) The temporary buffer associated with this *cvs* buffer.
(defvar cvs-temp-buffer nil (#$ . 9267))
#@137 Full path to a lock file that CVS is waiting for (or was waiting for).
This variable is buffer local and only used in the *cvs* buffer.
(defvar cvs-lock-file nil (#$ . 9386))
#@68 Regexp matching the possible names of locks in the CVS repository.
(defvar cvs-lock-file-regexp "^#cvs\\.\\([trw]fl\\.[-.a-z0-9]+\\|lock\\)\\'" (#$ . 9567))
#@45 Column to position cursor in in `cvs-mode'.
(defconst cvs-cursor-column 22 (#$ . 9730))
#@49 The default branch used by CVS for vendor code.
(defconst cvs-vendor-branch "1.1.1" (#$ . 9824))
#@51 Keymap for diff-related operations in `cvs-mode'.
(defconst cvs-mode-diff-map (byte-code "\301\302\303\304\300!\205\n\305\306D$\207" [cvs-mode-diff-map easy-mmode-define-keymap (("E" "imerge" . cvs-mode-imerge) ("=" . cvs-mode-diff) ("e" "idiff" . cvs-mode-idiff) ("2" "other" . cvs-mode-idiff-other) ("d" "diff" . cvs-mode-diff) ("b" "backup" . cvs-mode-diff-backup) ("h" "head" . cvs-mode-diff-head) ("r" "repository" . cvs-mode-diff-repository) ("y" "yesterday" . cvs-mode-diff-yesterday) ("v" "vendor" . cvs-mode-diff-vendor)) nil boundp :name "Diff"] 6) (#$ . 9927))
(fset 'cvs-mode-diff-map cvs-mode-diff-map)
#@24 Keymap for `cvs-mode'.
(defconst cvs-mode-map (byte-code "\301\302\303\304\300!\205\n\305\306\307\306F$\207" [cvs-mode-map easy-mmode-define-keymap (("?" . cvs-help) ("h" . cvs-help) ("q" . cvs-bury-buffer) ("z" . kill-this-buffer) ("F" . cvs-mode-set-flags) ("!" . cvs-mode-force-command) ("" . cvs-mode-kill-process) ("m" . cvs-mode-mark) ("M" . cvs-mode-mark-all-files) ("S" . cvs-mode-mark-on-state) ("u" . cvs-mode-unmark) ("" . cvs-mode-unmark-up) ("%" . cvs-mode-mark-matching-files) ("T" . cvs-mode-toggle-marks) ("\377" . cvs-mode-unmark-all-files) (" " . cvs-mode-next-line) ("n" . cvs-mode-next-line) ("p" . cvs-mode-previous-line) ("	" . cvs-mode-next-line) ([backtab] . cvs-mode-previous-line) ("\343" . cvs-checkout) ("\345" . cvs-examine) ("g" . cvs-mode-revert-buffer) ("\365" . cvs-update) ("\363" . cvs-status) ("=" . cvs-mode-diff) ("d" . cvs-mode-diff-map) ("" . cvs-mode-acknowledge) ("A" . cvs-mode-add-change-log-entry-other-window) ("C" . cvs-mode-commit-setup) ("O" . cvs-mode-update) ("U" . cvs-mode-undo) ("I" . cvs-mode-insert) ("a" . cvs-mode-add) ("b" . cvs-set-branch-prefix) ("B" . cvs-set-secondary-branch-prefix) ("c" . cvs-mode-commit) ("e" . cvs-mode-examine) ("f" . cvs-mode-find-file) ("
" . cvs-mode-find-file) ("i" . cvs-mode-ignore) ("l" . cvs-mode-log) ("o" . cvs-mode-find-file-other-window) ("r" . cvs-mode-remove) ("s" . cvs-mode-status) ("t" . cvs-mode-tag) ("v" . cvs-mode-view-file) ("x" . cvs-mode-remove-handled) ("+" . cvs-mode-tree) ([mouse-2] . cvs-mode-find-file) ([follow-link] lambda (pos) (if (eq (get-char-property pos 'face) 'cvs-filename) t)) ([(down-mouse-3)] . cvs-menu) ("" . cvs-mode-display-file)) nil boundp :dense t :suppress] 8) (#$ . 10551))
(fset 'cvs-mode-map cvs-mode-map)
#@26 Menu used in `cvs-mode'.
(defvar cvs-menu nil (#$ . 12309))
(easy-menu-do-define 'cvs-menu cvs-mode-map "Menu used in `cvs-mode'." '("CVS" ["Open file" cvs-mode-find-file t] ["Open in other window" cvs-mode-find-file-other-window t] ["Display in other window" cvs-mode-display-file t] ["Interactive merge" cvs-mode-imerge t] ("View diff" ["Interactive diff" cvs-mode-idiff t] ["Current diff" cvs-mode-diff t] ["Diff with head" cvs-mode-diff-head t] ["Diff with vendor" cvs-mode-diff-vendor t] ["Diff against yesterday" cvs-mode-diff-yesterday t] ["Diff with backup" cvs-mode-diff-backup t]) ["View log" cvs-mode-log t] ["View status" cvs-mode-status t] ["View tag tree" cvs-mode-tree t] "----" ["Insert" cvs-mode-insert] ["Update" cvs-mode-update (cvs-enabledp 'update)] ["Re-examine" cvs-mode-examine t] ["Commit" cvs-mode-commit-setup (cvs-enabledp 'commit)] ["Tag" cvs-mode-tag (cvs-enabledp (when cvs-force-dir-tag 'tag))] ["Undo changes" cvs-mode-undo (cvs-enabledp 'undo)] ["Add" cvs-mode-add (cvs-enabledp 'add)] ["Remove" cvs-mode-remove (cvs-enabledp 'remove)] ["Ignore" cvs-mode-ignore (cvs-enabledp 'ignore)] ["Add ChangeLog" cvs-mode-add-change-log-entry-other-window t] "----" ["Mark" cvs-mode-mark t] ["Mark all" cvs-mode-mark-all-files t] ["Mark by regexp..." cvs-mode-mark-matching-files t] ["Mark by state..." cvs-mode-mark-on-state t] ["Unmark" cvs-mode-unmark t] ["Unmark all" cvs-mode-unmark-all-files t] ["Hide handled" cvs-mode-remove-handled t] "----" ["PCL-CVS Manual" (lambda nil (interactive) (info "(pcl-cvs)Top")) t] "----" ["Quit" cvs-mode-quit t]))
#@61 Prefix key for the `cvs-mode' bindings in `cvs-minor-mode'.
(custom-declare-variable 'cvs-minor-mode-prefix '"c" '(#$ . 13894) :group 'pcl-cvs)
#@66 Keymap for `cvs-minor-mode', used in buffers related to PCL-CVS.
(defconst cvs-minor-mode-map (byte-code "\302\303B\304B\305\306\301!\205	\305$\207" [cvs-minor-mode-prefix cvs-minor-mode-map easy-mmode-define-keymap cvs-mode-map (("e" menu-item nil cvs-mode-edit-log :filter (lambda (x) (if (derived-mode-p 'log-view-mode) x)))) nil boundp] 5) (#$ . 14045))
#@62 (Buffer local) The *cvs* buffer associated with this buffer.
(defvar cvs-buffer nil (#$ . 14412))
(put 'cvs-buffer 'permanent-local t)
#@194 Function to call when switching to the *cvs* buffer.
Takes two arguments:
- a *cvs* buffer.
- a zero-arg function which is guaranteed not to switch buffer.
It is expected to call the function.
(defvar cvs-minor-wrap-function nil (#$ . 14554))
(byte-code "\302B\303\304!\210\305B\306\305!\204^\307\305\310\311!\312	\313\314\315\316!\317\320\315\321!\257#\210\312	\322\314\315\323!\324\320\315\325!\257#\210\312	\326\314\315\327!\330\320\315\331!\257#\210\312	\332\314\315\333!\334\320\315\335!\257#\210\305	M)\"\210\302\207" [current-load-list m cvs-pcl-cvs-dirchange-re (lambda (#1=#:defconst-tmp-var) (defconst cvs-pcl-cvs-dirchange-re #1#)) "^pcl-cvs: descending directory \\(.*\\)$" cvs-global-menu default-boundp set-default make-sparse-keymap "PCL-CVS" define-key [status] menu-item purecopy "Directory Status" cvs-status :help "A more verbose status of a workarea" [checkout] "Checkout Module" cvs-checkout "Check out a module from the repository" [update] "Update Directory" cvs-update "Fetch updates from the repository" [examine] "Examine Directory" cvs-examine "Examine the current state of a workarea"] 11)
#@819 Whether cvs commands should be executed a directory at a time.
If a list, specifies for which commands the single-dir mode should be used.
If T, single-dir mode should be used for all operations.

CVS versions before 1.10 did not allow passing them arguments in different
directories, so pcl-cvs checks what version you're using to determine
whether to use the new feature or not.
Sadly, even with a new cvs executable, if you connect to an older cvs server
(typically a cvs-1.9 on the server), the old restriction applies.  In such
a case the sanity check made by pcl-cvs fails and you will have to manually
set this variable to t (until the cvs server is upgraded).
When the above problem occurs, pcl-cvs should (hopefully) catch cvs' error
message and replace it with a message telling you to change this variable.
(defvar cvs-execute-single-dir (byte-code "\203A\301Y\204@\302V\203\303\207\304\207" [cvs-version 10 1 ("status") t] 2) (#$ . 15689))
(provide 'pcvs-defs)
