Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

670 lines (624 sloc) 171.618 kB
;ELC
;;; Compiled by jwieland@tsc-dev on Wed Jan 20 03:42:36 2010
;;; from file /home/jwieland/.emacs.d/p4.el
;;; in Emacs version 23.1.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
(< (aref emacs-version (1- (length emacs-version))) ?A)
(or (and (boundp 'epoch::version) epoch::version)
(string-lessp emacs-version "19.29")))
(error "`p4.el' was compiled for Emacs 19.29 or later"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@44 The Current P4-Emacs Integration Revision.
(defvar p4-emacs-version "10.6" (#$ . 563))
#@60 If the current Emacs is not XEmacs, then, this is non-nil.
(defvar p4-running-emacs nil (#$ . 656))
#@62 If the current Emacs is XEmacs/Lucid, then, this is non-nil.
(defvar p4-running-xemacs nil (#$ . 762))
(byte-code "\303\304\"\203\f\305\202\305 \207" [emacs-version p4-running-xemacs p4-running-emacs string-match "XEmacs\\|Lucid" t] 3)
#@70 The maintainer(s) of the emacs-p4 integration. Used for bug reports.
(defvar p4-emacs-maintainer "p4.el maintainers <p4el-bugs@lists.sourceforge.net>" (#$ . 1010))
#@20 The home of p4.el.
(defvar p4-web-page "http://p4el.sourceforge.net/" (#$ . 1180))
(custom-declare-group 'p4 nil "Perforce VC System." :group 'tools)
(defalias 'p4-windows-os #[nil "\301>\207" [system-type (ms-dos windows-nt)] 2])
#@97 This is the p4 executable.
To set this, use the function `p4-set-p4-executable' or `customize'
(custom-declare-variable 'p4-executable '(let ((lst (append exec-path (list "/usr/local/bin/p4" (concat (getenv "HOME") "/bin/p4") "p4"))) (p4-progname (if (p4-windows-os) "p4.exe" "p4")) p4ex) (while (and lst (not p4ex)) (let ((tmp (concat (file-name-as-directory (car lst)) p4-progname))) (if (and (file-executable-p tmp) (not (file-directory-p tmp))) (setq p4ex tmp)) (setq lst (cdr lst)))) p4ex) '(#$ . 1418) :type 'string :group 'p4)
#@43 Path to cygpath binary on cygwin
systems.
(custom-declare-variable 'p4-cygpath-exec '"cygpath" '(#$ . 1959) :type 'string :group 'p4)
#@74 Type of p4 diff output to be displayed. (regular or context or
unified.)
(custom-declare-variable 'p4-default-diff-options '"-du" '(#$ . 2099) :type 'string :group 'p4)
#@79 Prefix to be used for completion prompt when prompting user for a depot
file.
(custom-declare-variable 'p4-default-depot-completion-prefix '"//depot/" '(#$ . 2274) :type 'string :group 'p4)
#@45 Set this to nil to disable colorized diffs.
(custom-declare-variable 'p4-colorized-diffs 't '(#$ . 2470) :type 'boolean :group 'p4)
#@342 Whether P4 mode should use P4CONFIG exclusively to check whether a file
is under P4 version control. If set to nil, `p4-check-mode' is always
called; otherwise, it checks to see if the file named by P4CONFIG exists in
this or a parent directory, and if so, only then runs p4-check-mode.
This provides for a much faster `p4-find-file-hook'.
(custom-declare-variable 'p4-use-p4config-exclusively 'nil '(#$ . 2609) :type 'boolean :group 'p4)
#@66 Set this to automatically refresh p4 submitted files in buffers.
(custom-declare-variable 'p4-auto-refresh 't '(#$ . 3055) :type 'boolean :group 'p4)
#@65 Set this to check for files with empty diffs before submitting.
(custom-declare-variable 'p4-check-empty-diffs 't '(#$ . 3211) :type 'boolean :group 'p4)
#@76 When set, p4 will pop up the output buffer with the result of the
command.
(custom-declare-variable 'p4-verbose 't '(#$ . 3371) :type 'boolean :group 'p4)
#@61 When set, p4 will call `file-truename' on all opened files.
(custom-declare-variable 'p4-follow-symlinks 'nil '(#$ . 3532) :type 'boolean :group 'p4)
#@24 Hook run by `p4-mode'.
(custom-declare-variable 'p4-mode-hook 'nil '(#$ . 3688) :type 'sexp :group 'p4)
#@19 P4 Output Buffer.
(defvar p4-output-buffer-name "*P4 Output*" (#$ . 3798))
#@370 This variable holds the alist of p4 clients that the function
`p4-set-client-name' can complete on.
Set this variable *only* if you don't want P4 to complete on all the clients
in the P4 server.
This is a alist, and should be set using the function
`p4-set-my-clients'. For example, in your .emacs:
(load-library "p4")
(p4-set-my-clients '(client1 client2 client3))
(defvar p4-my-clients nil (#$ . 3880))
#@123 Set this variable in .emacs (or using `customize') if you want to alter
the completion behavior of `p4-set-client-name'.

(custom-declare-variable 'p4-strict-complete 't '(#$ . 4295) :type 'boolean :group 'p4)
(byte-code "\300\301!\204 \302\301\303\"\210\300\207" [getenv "P4PORT" setenv "perforce:1666"] 3)
#@21 The P4 Notify List.
(defvar p4-notify-list (getenv "P4NOTIFY") (#$ . 4610))
#@52 The sendmail program. To set this use `customize'.
(custom-declare-variable 'p4-sendmail-program '(if (boundp 'sendmail-program) sendmail-program nil) '(#$ . 4692) :type 'string :group 'p4)
#@165 The e-mail address of the current user. This is used with the
notification system, and must be set if notification should take place. To
set this, use `customize'.
(custom-declare-variable 'p4-user-email '(if (boundp 'user-mail-address) user-mail-address nil) '(#$ . 4889) :type 'string :group 'p4)
#@152 If this is t then the users in the notification list set by
`p4-set-notify-list' will get a notification of any P4 change submitted from
within emacs.
(custom-declare-variable 'p4-notify 'nil '(#$ . 5195) :type 'boolean :group 'p4)
#@66 If non-nil, the `p4-find-file-hook' will run when opening files.
(custom-declare-variable 'p4-do-find-file 't '(#$ . 5433) :type 'boolean :group 'p4)
(byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook find-file-hooks p4-find-file-hook kill-buffer-hook p4-kill-buffer-hook] 3)
#@24 Is this file under p4?
(defvar p4-mode nil (#$ . 5724))
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local p4-mode put permanent-local t] 4)
#@52 Is this file under p4 but handled in offline mode?
(defvar p4-offline-mode nil (#$ . 5896))
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local p4-offline-mode put permanent-local t] 4)
#@26 Keymap for p4 minor mode
(defvar p4-minor-map (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key "" p4-toggle-read-only] 4) (#$ . 6112))
(byte-code "\300M\210\303\304 \"\204\305 B\303\304\n\"\204\306\nB\303\307 \"\204%\310 B\303\307\n\"\2040\311\nB\300\207" [p4-minor-map minor-mode-alist minor-mode-map-alist assoc p4-mode (p4-mode p4-mode) (p4-mode . p4-minor-map) p4-offline-mode (p4-offline-mode p4-offline-mode) (p4-offline-mode . p4-minor-map)] 3)
#@61 The minor mode for editing p4 asynchronous command buffers.
(defvar p4-async-minor-mode nil (#$ . 6613))
(make-variable-buffer-local 'p4-async-minor-mode)
#@32 Keymap for p4 async minor mode
(defvar p4-async-minor-map (make-sparse-keymap) (#$ . 6774))
(byte-code "\300M\210\304\305 \"\204\306 B\304\305\n\"\204\307\nB\310 B\311\310!\204)\312\310\313\"\210\314\310!\210\315\310\316\317#\210\312\310\313\"\210\320 B\311\320!\204G\312\320\313\"\210\314\320!\210\315\320\316\317#\210\312\320\313\"\210\321 B\311\321!\204e\312\321\313\"\210\314\321!\210\315\321\316\317#\210\312\321\313\"\207" [p4-async-minor-map minor-mode-alist minor-mode-map-alist current-load-list assoc p4-async-minor-mode (p4-async-minor-mode " P4") (p4-async-minor-mode . p4-async-minor-map) p4-current-command default-boundp set-default nil make-variable-buffer-local put permanent-local t p4-current-args p4-vc-check] 4)
#@158 List of functions to be called after a p4 client is changed.
The buffer's local variables (if any) will have been processed before the
functions are called.
(defvar p4-set-client-hooks nil (#$ . 7527))
(byte-code "\203\301\302!\210\301\207" [p4-running-emacs require timer] 2)
#@67 Timer object that will be set to cleanup the caches
periodically.
(defvar p4-timer nil (#$ . 7813))
#@69 seconds after which `p4-cache-cleanup' will
check for dirty caches.
(custom-declare-variable 'p4-cleanup-time '600 '(#$ . 7919) :type 'integer :group 'p4)
#@109 `p4-cache-cleanup' will cleanup the
branches/clients/dirs/labels caches once in a while if this is non-nil.
(custom-declare-variable 'p4-cleanup-cache 't '(#$ . 8081) :type 'boolean :group 'p4)
#@161 An associated list of all buffers and
their files under p4 version control. This is to enable autorefreshing of
p4 submitted files being visited by the buffer.
(defvar p4-all-buffer-files nil (#$ . 8282))
#@111 Timer object that will be set to refresh
the files in Emacs buffers that have been modified by a `p4-submit'.
(defvar p4-file-refresh-timer nil (#$ . 8494))
#@142 seconds after which
`p4-file-refresh' will check for modified files in Emacs buffers. Set this
variable to 0 to disable periodic refreshing.
(custom-declare-variable 'p4-file-refresh-timer-time '60 '(#$ . 8658) :type 'integer :group 'p4)
#@86 This hook is run after an async buffer has been set up by
`p4-async-process-command'
(defvar p4-async-command-hook nil (#$ . 8902))
#@39 Stack of saved window configurations.
(defvar p4-window-config-stack nil (#$ . 9040))
#@53 Maximum stack size
for saved window configurations.
(custom-declare-variable 'p4-window-config-stack-size '20 '(#$ . 9132) :type 'integer :group 'p4)
#@55 Maximum total length of all
arguments to p4 commands.
(custom-declare-variable 'p4-exec-arg-len-max '20000 '(#$ . 9288) :type 'integer :group 'p4)
(byte-code "\304B\305\304!\204x\306\304\307 \n\203\"\310 \311\312#\210\310 \313\314#\210\2022 \2032\310 \315\312#\210\310 \316\314#\210\310 \317\320#\210\310 \321\320#\210\310 \322\323#\210\310 \324\325#\210\310 \326\327#\210\310 \330\331#\210\310 \332\331#\210\310 \333\334#\210\310 \335\336#\210\310 \337\340#\210\310 \341\342#\210 )\"\210\304\207" [current-load-list map p4-running-xemacs p4-running-emacs p4-basic-map default-boundp set-default make-sparse-keymap define-key [button2] p4-buffer-mouse-clicked [button3] p4-buffer-mouse-clicked-3 [mouse-2] [mouse-3] [return] p4-buffer-commands " " "q" p4-quit-current-buffer "k" p4-scroll-down-1-line "j" p4-scroll-up-1-line "b" p4-scroll-down-1-window [backspace] " " p4-scroll-up-1-window "<" p4-top-of-buffer ">" p4-bottom-of-buffer "=" p4-delete-other-windows] 6)
(defalias 'p4-make-derived-map #[(base-map) "\304 \203\305 \306\nC\"\210\202 \203\307\nB)\207" [map p4-running-xemacs base-map p4-running-emacs nil make-sparse-keymap set-keymap-parents keymap] 3])
#@54 The key map to use for selecting filelog properties.
(defvar p4-filelog-map (byte-code "\302!\303 \304\305#\210\303 \306\307#\210\303 \310\311#\210\303 \312\313#\210\303 \314\315#\210\303 \316\317#\210\303 \320\321#\210\303 \322\321#\210\303 \323\324#\210\303 \325\326#\210\303 \327\330#\210\303 \331\332#\210\303 \333\334#\210\303 \335\336#\210\303 \337\340 \335\"#\210 )\207" [p4-basic-map map p4-make-derived-map define-key "d" p4-diff2 "f" p4-find-file-other-window "s" p4-filelog-short-format "l" p4-filelog-long-format "k" p4-scroll-down-1-line-other-w "j" p4-scroll-up-1-line-other-w "b" p4-scroll-down-1-window-other-w [backspace] " " p4-scroll-up-1-window-other-w "<" p4-top-of-buffer-other-w ">" p4-bottom-of-buffer-other-w "=" p4-delete-other-windows "n" p4-goto-next-change "p" p4-goto-prev-change "N" lookup-key] 6) (#$ . 10478))
#@48 The key map to use for selecting opened files.
(defvar p4-opened-map (byte-code "\302!\303 \304\305#\210\303 \306\307#\210\303 \310\311 \306\"#\210 )\207" [p4-basic-map map p4-make-derived-map define-key "n" p4-next-depot-file "p" p4-prev-depot-file "N" lookup-key] 6) (#$ . 11329))
(byte-code "\303B\304\303!\2045\305\303\306 !\307\n\310\311#\210\307\n\312\313#\210\307\n\314\315\n\312\"#\210\307\n\316\317#\210\307\n\320\321#\210\n)\"\210\303\207" [current-load-list p4-basic-map map p4-diff-map default-boundp set-default p4-make-derived-map define-key "n" p4-goto-next-diff "p" p4-goto-prev-diff "N" lookup-key "d" p4-next-depot-diff "u" p4-prev-depot-diff] 8)
#@53 The key map to use for browsing print-revs buffers.
(defvar p4-print-rev-map (byte-code "\302!\303 \304\305#\210\303 \306\307#\210\303 \310\311 \306\"#\210\303 \312\313#\210 )\207" [p4-basic-map map p4-make-derived-map define-key "n" p4-next-change-rev-line "p" p4-prev-change-rev-line "N" lookup-key "l" p4-toggle-line-wrap] 6) (#$ . 12006))
#@255 Internal function called by various p4 commands.
Executes p4 in the current buffer's current directory
with output to a dedicated output buffer.
If successful, adds the P4 menu to the current buffer.
Does auto re-highlight management (whatever that is).
(defalias 'p4-exec-p4 #[(output-buffer args &optional clear-output-buffer) "\212\306=\203\307 \nq\210 )\f\203\nq\210ed|\210\310\311\312 \313\n\313\314 &\315 \210\203:\316\317!\203:\313*\207" [major-mode dir output-buffer default-directory clear-output-buffer args dired-mode dired-current-directory apply call-process p4-check-p4-executable nil "-d" p4-menu-add boundp hilit-auto-rehighlight result p4-running-emacs] 9 (#$ . 12358)])
#@104 Internal function called by various p4 commands.
Executes p4 in the current buffer (generally a temp).
(defalias 'p4-call-p4-here #[(&rest args) "\302\303\304 \305\306\305\307 &\207" [default-directory args apply call-process p4-check-p4-executable nil t "-d"] 9 (#$ . 13072)])
#@78 Push the current window configuration on the `p4-window-config-stack'
stack.
(defalias 'p4-push-window-config #[nil "\302 B\211G V\205\303\211!A!\211\202\207" [p4-window-config-stack p4-window-config-stack-size current-window-configuration reverse] 4 (#$ . 13358) nil])
#@129 Pop `num' elements from the `p4-window-config-stack' stack and use
the last popped element to restore the window configuration.
(defalias 'p4-pop-window-config #[(num) "\302V\203 \303=\203\304\305!\210\306 @!\210 AS\211\202\307\310 G\"\207" [num p4-window-config-stack 0 nil error "window config stack empty" set-window-configuration message "window config popped (stack size %d)"] 4 (#$ . 13643) "p"])
(byte-code "\300\301\302\"\210\300\303\302\"\207" [defalias p4-toggle-vc-mode-off p4-toggle-vc-mode p4-toggle-vc-mode-on] 3)
#@24 The P4 menu definition
(defvar p4-menu-def '(["Specify Arguments..." universal-argument t] ["--" nil nil] ["Add Current to P4" p4-add (and (p4-buffer-file-name) (not p4-mode))] ["Check out/Edit" p4-edit (and (p4-buffer-file-name-2) (or (not p4-mode) buffer-read-only))] ["Re-open" p4-reopen (and (p4-buffer-file-name-2) (or (not p4-mode) (not buffer-read-only)))] ["Revert File" p4-revert (and (p4-buffer-file-name-2) (or (not p4-mode) (not buffer-read-only)))] ["Delete File from Depot" p4-delete (and (p4-buffer-file-name-2) (or (not p4-mode) buffer-read-only))] ["Rename Depot File" p4-rename (and (p4-buffer-file-name-2) (or (not p4-mode) buffer-read-only))] ["Submit Changes" p4-submit t] ["--" nil nil] ["Sync/Get Files from Depot" p4-get t] ["--" nil nil] ["Show Opened Files" p4-opened t] ["Filelog" p4-filelog (p4-buffer-file-name-2)] ["Changes" p4-changes t] ["Describe Change" p4-describe t] ["--" nil nil] ["Diff 2 Versions" p4-diff2 (p4-buffer-file-name-2)] ["Diff Current" p4-diff t] ["Diff All Opened Files" p4-diff-all-opened t] ["Diff Current with Ediff" p4-ediff (and (p4-buffer-file-name) (not buffer-read-only) p4-mode)] ["Diff 2 Versions with Ediff" p4-ediff2 (p4-buffer-file-name-2)] ["--" nil nil] ["Schedule Integrations" p4-integ t] ["Resolve Conflicts" p4-resolve t] ["--" nil nil] ["Print" p4-print (p4-buffer-file-name-2)] ["Print with Revision History" p4-blame (p4-buffer-file-name-2)] ["Find File using Depot Spec" p4-depot-find-file p4-do-find-file] ["--" nil nil] ["Edit a Branch Specification" p4-branch t] ["Edit a Label Specification" p4-label t] ["Edit a Client Specification" p4-client t] ["Edit a User Specification" p4-user t] ["--" nil nil] ["Show Version" p4-emacs-version t] ["Disable P4 VC Check" p4-toggle-vc-mode-off p4-do-find-file] ["Enable P4 VC Check" p4-toggle-vc-mode-on (not p4-do-find-file)] ["--" nil nil] ["Set P4 Config" p4-set-client-config p4-do-find-file] ["Get Current P4 Config" p4-get-client-config p4-do-find-file] ["--" nil nil] ["Set P4 Client" p4-set-client-name p4-do-find-file] ["Get Current P4 Client" p4-get-client-name p4-do-find-file] ["--" nil nil] ["Set P4 Server/Port" p4-set-p4-port p4-do-find-file] ["Get Current P4 Server/Port" p4-get-p4-port p4-do-find-file] ["--" nil nil] ["Set P4 Notification List" p4-set-notify-list p4-mode] ["Get P4 Notification List" p4-get-notify-list p4-notify] ["--" nil nil] ["Describe Key Bindings" p4-describe-bindings t] ["Check for later versions of p4.el" p4-browse-web-page t] ["--" nil nil] ["Report Bug in p4.el" p4-bug-report t]) (#$ . 14187))
(byte-code "\203\306\307!\210\310\311\312\"\210\202\236 \203\236\313\n\314\"\204#\315\n\316\317\320!#\210\305 B\321\305!\2044\322\305\317\323!\"\210\324\fB\315\n\325\323 B#\210\326!!\327\"\211#\203\235#@\327\234#@\330\234#@\331\234$%&%\203\315 \332%!&%B#\210\333%\334$#\210\202\223\315 \332\335\336\337\"!P!!\340#\210\"T\"+#A\211#\204M*\306\207" [p4-running-xemacs p4-running-emacs global-map current-load-list menu-bar-final-items menu-bar-p4-menu require easymenu defalias p4-mode-menu #[(modestr) " B\207" [modestr p4-menu-def] 2] lookup-key [menu-bar] define-key [menu-bar] make-sparse-keymap "menu-bar" default-boundp set-default "P4" p4-menu [menu-bar p4-menu] reverse 0 1 2 vector put menu-enable make-symbol "separator-" int-to-string ("--") p4-menu-def separator-number m menu-pred menu-action menu-text] 8)
#@58 Executes p4 command inside a buffer.
Returns the buffer.
(defalias 'p4-depot-output #[(command &optional args) "\304!\305 \n B\306#\210 )\207" [p4-output-buffer-name buffer command args generate-new-buffer p4-exec-p4 t] 4 (#$ . 17606)])
#@94 Check if the `p4-executable' is nil, and if so, prompt the user for a
valid `p4-executable'.
(defalias 'p4-check-p4-executable #[nil "\204\301\302!\207\207" [p4-executable call-interactively p4-set-p4-executable] 2 (#$ . 17851) nil])
#@110 To add the P4 menu bar button for files that are already not in
the P4 depot or in the current client view..
(defalias 'p4-menu-add #[nil "\203\302\301!\204\f\303\304\305\306!!\210\307\207" [p4-running-xemacs p4-mode boundp nil easy-menu-add p4-mode-menu "P4" t] 3 (#$ . 18096) nil])
(defalias 'p4-help-text #[(cmd text) "\203'\305 !\306\307 \310D\311#\312U\203\212 q\210\313 )\314 !\210\f\nP*\207\f\207" [cmd p4-output-buffer-name help-text buf text generate-new-buffer "" p4-exec-p4 "help" t 0 buffer-string kill-buffer] 4])
#@251 Set the path to the correct P4 Executable.
To set this as a part of the .emacs, add the following to your .emacs:
(load-library "p4")
(p4-set-p4-executable "/my/path/to/p4")
Argument P4-EXE-NAME The new value of the p4 executable, with full path.
(defalias 'p4-set-p4-executable #[(p4-exe-name) "\211\207" [p4-exe-name p4-executable] 2 (#$ . 18643) "fFull path to your P4 executable: "])
#@89 To Remove a file and its associated buffer from our global list of P4
controlled files.
(defalias 'p4-kill-buffer-hook #[nil "\205\n\301\302 \303 \"\207" [p4-vc-check p4-refresh-refresh-list p4-buffer-file-name buffer-name] 3 (#$ . 19042)])
(defalias 'defp4cmd '(macro . #[(fkn &rest all-args) "@\211A@)\306A\211A@)!\211AA)A\307\310\fD\311\312 \313\f \"E\n\"E,\207" [all-args x body help-txt help-cmd args eval defalias quote append lambda p4-help-text fkn] 9]))
#@50 Internal function called by various p4 commands.
(defalias 'p4-noinput-buffer-action #[(cmd do-revert show-output &optional arguments preserve-buffer) "\212\212\204\306 !\210\307 !\210\310\306 !\311\nC \"\312#\210)\313\n!\210\f\203k\f\314=\203[\212 q\210\315ed\")\316U\203[\212 q\210eb\210\317\320!)\204[\212 q\210\321e\212eb\210\322\210`){!\210)\202k\323 \210\324 \204f\325 \210\326 \312\"\210) \205y\327 \205y\330\312\211\"\207" [preserve-buffer p4-output-buffer-name cmd arguments show-output do-revert get-buffer-create kill-buffer p4-exec-p4 append t p4-partial-cache-cleanup s count-lines 1 looking-at "==== " message nil p4-push-window-config one-window-p delete-other-windows display-buffer p4-buffer-file-name revert-buffer] 5 (#$ . 19525)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\207" [defalias p4-edit #[(show-output) "\304 \305\n\204 \204'\306 \203\306 \202\307\310\311\312 \313B\"!\314\202* C\315\316\314 \2052\317 $\210\203<\320 \210*\321 \210\322 \207" [refresh-after args current-prefix-arg show-output p4-buffer-file-name nil p4-buffer-file-name-2 #1="" p4-make-list-from-string p4-read-arg-string "p4 edit: " 0 t p4-noinput-buffer-action "edit" s p4-refresh-files-in-buffers p4-check-mode p4-update-opened-list] 5 "To open the current depot file for edit, type \\[p4-edit].\n\n edit -- Open an existing file for edit\n\n p4 edit [ -c changelist# ] [ -n ] [ -t filetype ] file ...\n\n Open an existing file for edit. The server notes that the current\n user on the current client has the file opened, and then changes\n the file permission from read-only to read/write.\n\n If -c changelist# is given, the file is put into the pending\n changelist; the changelist must have been previously created by\n 'p4 change'. Otherwise the file is opened in the 'default'\n (unnumbered) changelist.\n\n If -t filetype is given, the file is opened as that filetype.\n Otherwise, the filetype of the previous revision is reused.\n If the filetype given by -t is a partial filetype, that partial\n filetype is combined with the previous revision's filetype.\n See 'p4 help filetypes'.\n\n The -n flag displays what would be opened for edit without actually\n changing any files or metadata.\n\n" (list p4-verbose)] p4-reopen #[(show-output) "\302 \203\n\302 \202 \303\304\305\306\307B\"!\310\311\312 \205\313$\210)\314 \210\315 \207" [args show-output p4-buffer-file-name-2 #1# p4-make-list-from-string p4-read-arg-string "p4 reopen: " 0 p4-noinput-buffer-action "reopen" t s p4-check-mode p4-update-opened-list] 5 "To change the type or changelist number of an opened file, type \\[p4-reopen].\n\nArgument SHOW-OUTPUT displays the *P4 Output* buffer on executing the\ncommand if t.\n\n reopen -- Change the type or changelist number of an opened file\n\n p4 reopen [ -c changelist# ] [ -t filetype ] file ...\n\n Reopen takes an already opened file and reopens it for the current\n user, optionally changing its changelist or filetype.\n\n The changelist must have previously been created with 'p4 change'\n or may be the 'default' changelist.\n\n If -t filetype is given, the file is reopened as that filetype.\n If the filetype given by -t is a partial filetype, that partial\n filetype is combined with the current filetype. See 'p4 help\n filetypes'.\n\n" (list p4-verbose)] p4-revert #[(show-output) "\304 \305\n\204 \204%\306 \203\306 \202\307\310\311\312 \"!\313\202( C\314\315!\205K\316\317\313 \2056\320 $\210\203F\321 \210\322 \210\202I\323 \210\324 *\207" [refresh-after args current-prefix-arg show-output p4-buffer-file-name nil p4-buffer-file-name-2 #1# p4-make-list-from-string p4-read-arg-string "p4 revert: " t yes-or-no-p "Really revert changes? " p4-noinput-buffer-action "revert" s p4-refresh-files-in-buffers p4-check-mode-all-buffers p4-check-mode p4-update-opened-list] 5 "To revert all change in the current file, type \\[p4-revert].\n\n revert -- Discard changes from an opened file\n\n p4 revert [ -a -n -k -c changelist# ] file ...\n\n Revert an open file back to the revision previously synced from\n the depot, discarding any pending changelists or integrations that\n have been made. This command requires naming files explicitly.\n After running revert the named files will no longer be locked\n or open.\n\n The -a flag tells 'p4 revert' to revert only those files which\n are opened for edit or integrate and are unchanged or missing.\n Files with pending integration records are left open. With the\n -a flag, the file arguments are optional.\n\n The -n flag displays what files would be affected but does not\n actually revert them.\n\n The -k flag bypasses the client file refresh. It can be used to\n make the server believe the file is no longer open, but keeps\n the file unchanged in the client workspace.\n\n The -c flag limits 'p4 revert' to files opened under the given,\n pending changelist.\n\n" (list p4-verbose)] p4-lock #[nil "\302 C \204 \302 \204\303\304\305\302 \"!\306\307\310\311$\210\312 )\207" [args current-prefix-arg p4-buffer-file-name-2 p4-make-list-from-string p4-read-arg-string "p4 lock: " p4-noinput-buffer-action "lock" t s p4-update-opened-list] 5 "To lock an opened file against changelist submission, type \\[p4-lock].\n\n lock -- Lock an opened file against changelist submission\n\n p4 lock [ -c changelist# ] [ file ... ]\n\n The open files named are locked in the depot, preventing any\n user other than the current user on the current client from\n submitting changes to the files. If a file is already locked\n then the lock request is rejected. If no file names are given\n then lock all files currently open in the changelist number given\n or in the 'default' changelist if no changelist number is given.\n\n" nil] p4-unlock #[nil "\302 C \204 \302 \204\303\304\305\302 \"!\306\307\310\311$\210\312 )\207" [args current-prefix-arg p4-buffer-file-name-2 p4-make-list-from-string p4-read-arg-string "p4 unlock: " p4-noinput-buffer-action "unlock" t s p4-update-opened-list] 5 "To release a locked file but leave open, type \\[p4-unlock].\n\n unlock -- Release a locked file but leave it open\n\n p4 unlock [ -c changelist# ] [ -f ] [ file ... ]\n\n 'p4 unlock' releases a lock on an open file in a pending changelist.\n If the file is open in a specific pending changelist other than\n 'default', then the -c flag is required to specify the pending\n changelist. If no file name is given then all files in the\n designated changelist are unlocked.\n\n The -f flag can unlock any file; normally files can only be unlocked\n by their owner. The -f flag requires 'admin' access granted by\n 'p4 protect'.\n\n" nil] p4-diff #[nil "\303!\304 \203\305 \304 C\"\n\203\303\306\307\"!\310\311\312\313 $\210\314\315!)\207" [p4-default-diff-options args current-prefix-arg p4-make-list-from-string p4-buffer-file-name-2 append p4-read-arg-string "p4 diff: " p4-noinput-buffer-action "diff" nil s p4-activate-diff-buffer "*P4 diff*"] 5 "To diff the current file and topmost depot version, type \\[p4-diff].\n\n diff -- Display diff of client file with depot file\n\n p4 diff [ -d<flag> -f -m max -sa -sd -se -sl -sr -t ] [ file[rev] ... ]\n\n Run diff (on the client) of a client file against the corresponding\n revision in the depot. The file is only compared if the file is\n opened for edit or the revision provided with the file argument is\n not the same as the revision had by the client. See 'p4 help\n revisions' for help specifying revisions.\n\n If no file argument is given, diff all open files.\n This can be used to view pending changelists.\n\n The -d<flag> passes a flag to the built-in diff routine to modify\n the output: -dn (RCS), -dc (context), -ds (summary), -du (unified),\n -db (ignore whitespace changes), -dw (ignore whitespace),\n -dl (ignore line endings).\n\n The -f flag forces a diff for every file, regardless of whether\n they are opened or if the client has the named revision.\n This can be used to verify the client contents.\n\n The -m max flag limits output to the first 'max' number of files.\n\n The -s flag reduces the output of diff to the names of files\n satisfying one of the following criteria:\n\n -sa Opened files that are different from the revision\n in the depot, or missing.\n\n -sb Opened for integrate files that have been resolved\n but have been modified after being resolved.\n\n -sd Unopened files that are missing on the client.\n\n -se Unopened files that are different from the revision\n in the depot.\n\n -sl Every unopened file, along with the status of\n 'same, 'diff', or 'missing' as compared to its\n revision in the depot.\n\n -sr Opened files that are the same as the revision in the\n depot.\n\n The -t flag forces 'p4 diff' to diff even files with non-text\n (binary) types.\n\n If the environment variable $P4DIFF is set then the named program is\n used rather than the implementation of diff included in the client.\n The -d<flag>command can be used to pass arguments to the external\n program. The -s flag is only implemented internally.\n The environment variable $P4DIFFUNICODE is used instead of $P4DIFF\n if the file being diffed is of a unicode type and the character\n set is passed as the first argument to that command.\n\n" nil]] 3)
(defalias 'p4-diff-all-opened #[nil "\301\302\303\304\305!$\210\306\307!\207" [p4-default-diff-options p4-noinput-buffer-action "diff" nil s p4-make-list-from-string p4-activate-diff-buffer "*P4 diff*"] 6 nil nil])
(defalias 'p4-get-file-rev #[(default-name rev) "\302\303\"\203 \304P\302\305\"\203 P\207\306\230\203 \207\207" [rev default-name string-match "^\\([0-9]+\\|none\\|head\\|have\\)$" "#" "^[#@]" ""] 3])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias p4-diff2 #[(version1 version2) "\306\211\307!\f\203\307\310\311\"!\312\313 \"\312\313 \"\314\315\306\316\317 \nD\"$\210\320\321!+\207" [p4-default-diff-options diff-options diff-version2 diff-version1 current-prefix-arg version1 nil p4-make-list-from-string p4-read-arg-string "Optional Args: " p4-get-file-rev p4-buffer-file-name-2 p4-noinput-buffer-action "diff2" t append p4-activate-diff-buffer "*P4 diff2*" version2] 8 "Display diff of two depot files.\n\nWhen visiting a depot file, type \\[p4-diff2] and enter the versions.\n\n diff2 -- Display diff of two depot files\n\n p4 diff2 [ -d<flag> -q -t -u ] file1 file2\n p4 diff2 [ -d<flag> -q -t -u ] -b branch [ [ file1 ] file2 ]\n\n Run diff (on the server) of two files in the depot. Both files\n may optionally include a revision specification; the default is\n to compare the head revision. See 'p4 help revisions' for help\n specifying revisions. Wildcards may be used, but they must\n match between file1 and file2. Note if using clients or labels\n as file arguments they must be preceeded with a file path\n e.g. //...@mylabel //...@yourlabel\n\n Diff2 introduces each diff with a header line of the form\n\n ==== file1 (type1) - file2 (type2) ==== summary\n\n file1 or file2 may be '<none>', meaning that only one of the\n matched files actually exists at the given revision. The\n summary is one of: 'identical' - file contents are identical and\n types are the same, 'types' - file contents are identical but\n the types are different, and 'content' - file contents are\n different.\n\n The -b flag causes diff2 to use the branch view to specify the\n pairs of files to compare. If file arguments are also present, they\n can further limit the files and specify the revisions for comparison.\n Note that if only one file is given, it restricts the right-hand\n side of the branch view.\n\n The -d<flag> passes a flag to the built-in diff routine to modify\n the output: -dn (RCS), -dc (context), -ds (summary), -du (unified),\n -db (ignore whitespace changes), -dw (ignore whitespace).\n\n The -q suppresses the display of the header lines of files whose\n content and types are identical and suppresses the actual diff\n for all files.\n\n The -t flag forces 'p4 diff2' to diff even files with non-text\n (binary) types.\n\n The -u flag comes one step closer to patch-friendly output: it\n uses the GNU diff -u format and displays only files that differ.\n The file names and dates are in Perforce syntax, but the output\n seems digestible by the ubiquitous patch program.\n\n" (let ((rev (get-char-property (point) 'rev))) (if (and (not rev) (p4-buffer-file-name-2)) (let ((rev-num 0)) (setq rev (p4-is-vc nil (p4-buffer-file-name-2))) (if rev (setq rev-num (string-to-number rev))) (if (> rev-num 1) (setq rev (number-to-string (1- rev-num))) (setq rev nil)))) (list (p4-read-arg-string "First Depot File or Version# to diff: " rev) (p4-read-arg-string "Second Depot File or Version# to diff: ")))] p4-diff-head #[nil "\304\305! \203\305\306\307\"!\310\311 \312\"\313\314\304\315\316 \nC\"$\210\317\320!*\207" [p4-default-diff-options diff-options head-revision current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "Optional Args: " p4-get-file-rev p4-buffer-file-name-2 "head" p4-noinput-buffer-action "diff" t append p4-activate-diff-buffer "*P4 diff vs. head*"] 7 "Display diff of file against the head revision in depot.\n\nWhen visiting a depot file, type \\[p4-diff-head].\n" nil]] 3)
#@61 Use ediff to compare file with its original client version.
(defalias 'p4-ediff #[nil "\304\305!\210\203\f\306\307!\207\310\311\312\211\313\314 \315PD$\210p\316 !\317 \n\320\312\321\322\323\324\320\312\325\nD\326BBB\327BBEFC#*\207" [current-prefix-arg p4-output-buffer-name depot local require ediff call-interactively p4-ediff2 p4-noinput-buffer-action "print" nil "-q" p4-buffer-file-name "#have" get-buffer-create ediff-buffers lambda (make-local-variable 'ediff-cleanup-hook) setq ediff-cleanup-hook cons kill-buffer ((p4-menu-add)) (ediff-cleanup-hook)] 13 (#$ . 32960) nil])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\207" [defalias p4-ediff2 #[(version1 version2) "\306 \307!\310 \311\n\312\260\310 \311\f\312\260\313\n\"\313\f\"\314\315\316\211\317D$\210q\210\320 \321\"\210\314\315\316\211\317D$\210q\210\320 \321\"\210\322 !\322 ! \323 \324\316\325\326\327\330\324\316\331 D\331D\332BBBB\333BBEFC#.\207" [file-name basename version1 bufname1 version2 bufname2 p4-buffer-file-name-2 file-name-nondirectory "*P4 ediff " "#" "*" p4-get-file-rev p4-noinput-buffer-action "print" nil "-q" rename-buffer t get-buffer-create ediff-buffers lambda (make-local-variable 'ediff-cleanup-hook) setq ediff-cleanup-hook cons kill-buffer ((p4-menu-add)) (ediff-cleanup-hook) diff-version1 diff-version2 p4-output-buffer-name buffer-version-2 buffer-version-1] 14 "Use ediff to display two versions of a depot file.\n\nWhen visiting a depot file, type \\[p4-ediff2] and enter the versions.\n" (let ((rev (get-char-property (point) 'rev))) (if (and (not rev) (p4-buffer-file-name-2)) (let ((rev-num 0)) (setq rev (p4-is-vc nil (p4-buffer-file-name-2))) (if rev (setq rev-num (string-to-number rev))) (if (> rev-num 1) (setq rev (number-to-string (1- rev-num))) (setq rev nil)))) (list (p4-read-arg-string "First Depot File or Version# to diff: " rev) (p4-read-arg-string "Second Depot File or Version# to diff: ")))] p4-add #[nil "\303 \304\n\204 \204'\305 \203\305 \202\306\307\310\311 \312B\"!\313\202* C\314\315\304\316 $\210\203;\317 \210\202>\320 \210*\321 \207" [refresh-after args current-prefix-arg p4-buffer-file-name nil p4-buffer-file-name-2 "" p4-make-list-from-string p4-read-arg-string "p4 add: " 0 t p4-noinput-buffer-action "add" s p4-check-mode-all-buffers p4-check-mode p4-update-opened-list] 5 "To add the current file to the depot, type \\[p4-add].\n\n add -- Open a new file to add it to the depot\n\n p4 add [ -c changelist# ] [ -f -n ] [ -t filetype ] file ...\n\n Open a new file for adding to the depot. If the file exists\n on the client it is read to determine if it is text or binary.\n If it does not exist it is assumed to be text. The file must\n either not exist in the depot, or it must be deleted at the\n current head revision. Files may be deleted and re-added.\n\n If the -c flag is given the open files are associated with the\n specified pending changelist number; otherwise the open files are\n associated with the default changelist.\n\n If file is already open it is moved into the specified pending\n changelist. It is not permissible to reopen a file for add unless\n it was already open for add.\n\n If -t filetype is given, the file is added as that filetype.\n Without -t 'p4 add' looks for a filetype using the name-to-type\n mapping table managed by 'p4 typemap'. For a default 'p4 add'\n senses the filetype by examining the file's contents and execute\n permission bit. If the filetype given by -t or in the typemap\n table is a partial filetype, that partial filetype will modify\n the filetype sensed by 'p4 add'. See 'p4 help filetypes'.\n\n If the -f flag is given then filenames that contain wildcards are\n permitted. Filenames added to the repository that contain these\n special wildcard characters '@', '#', '%' or '*' will have those\n characters formatted into ascii hexadecimal representation. The\n only way of referring to those files once added will be to use the\n formatted version, the local filesystem name will not be recognized.\n\n The -n flag displays what would be opened for add without actually\n changing any files or metadata.\n\n" nil] p4-delete #[nil "\302  \204 \204\303\304\305\306 \"!\202C\307\310!\203&\311\312\313\314$\210)\315 \210\316 \207" [args current-prefix-arg p4-buffer-file-name p4-make-list-from-string p4-read-arg-string "p4 delete: " p4-buffer-file-name-2 yes-or-no-p "Really delete from depot? " p4-noinput-buffer-action "delete" nil s p4-check-mode p4-update-opened-list] 5 "To delete the current file from the depot, type \\[p4-delete].\n\n delete -- Open an existing file to delete it from the depot\n\n p4 delete [ -c changelist# ] [ -n ] file ...\n\n Opens a file that currently exists in the depot for deletion.\n If the file is present on the client it is removed. If a pending\n changelist number is given with the -c flag the opened file is\n associated with that changelist, otherwise it is associated with\n the 'default' pending changelist.\n\n Files that are deleted generally do not appear on the have list.\n\n The -n flag displays what would be opened for delete without actually\n changing any files or metadata.\n\n" nil] p4-filelog #[nil "\302  \204 \204\303\304\305\"!\202C\306\307\")\207" [file-name current-prefix-arg p4-buffer-file-name-2 p4-make-list-from-string p4-read-arg-string "p4 filelog: " p4-file-change-log "filelog"] 4 "To view a history of the change made to the current file, type \\[p4-filelog].\n\n filelog -- List revision history of files\n\n p4 filelog [ -h -i -l -L -t -m maxRevs ] file[rev] ...\n\n List the revision history of the files named, working backwards\n from the latest revision to the first. If the file specification\n includes a revision, the command limits its output to revisions at\n or previous to the given revision\n\n The -i flag causes inherited file history to be displayed as well.\n That is, if a file was created by branching (using 'p4 integrate'),\n filelog lists the revisions of the file's ancestors up to the branch\n points that led to the specified revision.\n\n The -h flag causes filelog to display file content history instead\n of file name history. The revisions that are listed include those\n of other files that were branched or copied (using 'p4 integrate'\n and 'p4 resolve -at') to the specified revision. Revisions that\n were replaced by copying or branching are not displayed, even if\n they are in the history of the specified revision.\n\n The -t flag displays the time as well as the date.\n\n The -l flag produces long output with the full text of the\n changelist descriptions.\n\n The -L flag produces long output with the full text of the\n changelist descriptions truncated to 250 characters.\n\n The -m maxRevs displays at most 'maxRevs' revisions per file.\n\n" nil]] 3)
(defalias 'p4-set-extent-properties #[(start end prop-list) "\203'\306 \n\"\f\205%\307 \f\211@@)\f\211@A)#\210\fA\211\204 \310)\207 \205N\311 \n\"\f\205M\312 \f\211@@)\f\211@A)#\210\fA\211\2045\310)\207" [p4-running-xemacs start end ext prop-list x make-extent set-extent-property nil make-overlay overlay-put p4-running-emacs] 5])
(defalias 'p4-create-active-link #[(start end prop-list) "\303 \304\305\306B\307\310BD\n\"#\207" [start end prop-list p4-set-extent-properties append face bold mouse-face highlight] 7])
(defalias 'p4-move-buffer-point-to-top #[(buf-name) "\303!\205\304 \305\306\307 \"r\310\216\311\303!!\210eb,\207" [buf-name save-selected-window-alist save-selected-window-window get-buffer-window selected-window mapcar #[(frame) "\301!B\207" [frame frame-selected-window] 3] frame-list ((byte-code "\304\211\203(\n@\305 @!\203!\306 A!\203!\307 @ A\310#\210\nA\211\204*\306 !\2034\311 \310\"\210\304\207" [save-selected-window-alist elt --dolist-tail-- save-selected-window-window nil frame-live-p window-live-p set-frame-selected-window norecord select-window] 5)) select-window] 4])
(defalias 'p4-file-change-log #[(cmd file-list-spec) "\303\304\305 !\306\260\307\310\311\312 B$\210\313\n!)\207" [cmd file-list-spec p4-filelog-buffer "*P4 " ": " p4-list-to-string "*" p4-noinput-buffer-action nil t "-l" p4-activate-file-change-log-buffer] 6])
(defalias 'p4-activate-file-change-log-buffer #[(bufname) "\306\211\211\211\211\307 \306\"\210 q\210\306eb\210\310\311\306\312#\203\260\313\314\315\316\317\320 !\"#$\321$!\321#!\321\"!\321!!\321 !$\224\203^\322$\224$\225\323\fBC#\210\322#\224#\225\324 BC#\210\"\224\203\201\322\"\224\"\225\325\nB\323\fBD#\210\322!\224!\225\326 BC#\210\322 \224 \225\327BC#\210\330\224\225\331\312B\332\312BD#\210.\202\333 ed#\210\334%!\210\306&\312\335 !-\207" [p4-cur-client p4-cur-user p4-cur-action p4-cur-change p4-cur-rev bufname nil p4-activate-print-buffer re-search-forward "^\\(\\.\\.\\. #\\([0-9]+\\) \\)?[Cc]hange \\([0-9]+\\) \\([a-z]+\\)?.*on.*by \\([^ @]+\\)@\\([^ \n]+\\).*\n\\(\\(\\([ ].*\\)?\n\\)*\\)" t 2 3 4 5 6 7 match-string p4-create-active-link rev change action user client p4-set-extent-properties invisible isearch-open-invisible p4-find-change-numbers use-local-map p4-move-buffer-point-to-top buffer-read-only desc-match cl-match user-match act-match ch-match rev-match p4-filelog-map buffer-invisibility-spec] 6])
(defalias 'p4-find-change-numbers #[(buffer start end) "\212q\210 b\210\306\307\n\310#\205<\311\312!\203\313\224\313\225\314\313!\315\225\316\315\fG\317\f$\210\320 \321\fBC#\210 b\210,\202)\207" [buffer start end next ch-str ch-end re-search-forward "\\(changes?\\|submit\\|p4\\)[:#]?[ \n]+" t looking-at "\\([#@]\\|number\\|no\\.\\|\\)[ \n]*\\([0-9]+\\)[-, \n]*\\(and/or\\|and\\|&\\|or\\|\\)[ \n]*" 2 match-string 0 set-text-properties nil p4-create-active-link change ch-start] 5])
(byte-code "\301\302\303\"\210\304B\305\304!\204\306\304\307\"\210\307\207" [current-load-list defalias p4-files #[nil "\303  \204 \204\304\305\306\303 \"!\202C\307\310\311\312$\210\212\nq\210\313\ned#\210)\314\315\316 \317@\320\260!)\207" [args current-prefix-arg p4-output-buffer-name p4-buffer-file-name-2 p4-make-list-from-string p4-read-arg-string "p4 files: " p4-noinput-buffer-action "files" nil t p4-find-change-numbers p4-make-depot-list-buffer "*P4 Files: (" p4-current-client ") " "*"] 6 "List files in the depot. Type, \\[p4-files].\n\n files -- List files in the depot\n\n p4 files [ -a ] file[revRange] ...\n\n List files named or matching wild card specification. Display\n shows depot file name, revision, file type, change action and\n changelist number of the current head revision. If client file\n names are given as arguments the view mapping is used to list the\n corresponding depot files.\n\n If the file argument has a revision, then all files as of that\n revision are listed. If the file argument has a revision range,\n then only files selected by that revision range are listed, and\n the highest revision in the range is used for each file. Normally,\n the head revision is listed. See 'p4 help revisions' for help\n specifying revisions.\n\n The -a flag displays all revisions within the specific range, rather\n than just the highest revision in the range.\n\n" nil] p4-server-version-cache default-boundp set-default nil] 3)
#@45 To get the version number of the p4 server.
(defalias 'p4-get-server-version #[nil "\305 \306\211\307\n \"A\211\204>\212\310\f!\210\fq\210db\210`\311\312\313!!\203=b\210\314\315!\210\316\317\320!!\n B Bd|\210) +\207" [pmin ser-ver p4-port p4-server-version-cache p4-output-buffer-name p4-current-server-port nil assoc get-buffer-create zerop p4-call-p4-here "info" re-search-forward "^Server version: .*/.*/\\(\\([0-9]+\\).[0-9]+\\)/.*(.*)$" string-to-number match-string 2] 4 (#$ . 44343)])
#@136 To get the current value of Client's root type \[p4-get-client-root].
This can be used by any other macro that requires this value.
(defalias 'p4-get-client-root #[(client-name) "\304\211\212\305\n!\210\nq\210db\210`\306\307\310\311 #!\203,b\210\312\313!\210\314\315\316!!d|\210) *\207" [pmin p4-client-root p4-output-buffer-name client-name nil get-buffer-create zerop p4-call-p4-here "client" "-o" re-search-forward "^Root:[ ]+\\(.*\\)$" p4-canonize-client-root match-string 1] 5 (#$ . 44853)])
#@23 Canonizes client root
(defalias 'p4-canonize-client-root #[(p4-client-root) "G\302 \203 \303V\203 S O\304\232\203\305 SO)\207" [p4-client-root len p4-windows-os 1 "\\" 0] 3 (#$ . 45367)])
#@141 Map a list of files in the depot on the current client.
Return a list of pairs, where each pair consists of a depot
name and a client name.
(defalias 'p4-map-depot-files #[(file-list) "\306 \2035\306\307\306 \203* W\203* @ A\n\fB\310 \nG\311#\202\f\312\313\f!\"+\202)\207" [file-map file-list elt arg-len sub-list p4-exec-arg-len-max nil 0 + 1 append p4-map-depot-files-int] 4 (#$ . 45574)])
(defalias 'p4-map-depot-files-int #[(file-list) "\306 \307!\310!\310 !\311\211\212\312!\210q\210db\210`\313c\210\314\315\316#\210 b\210\317 \320W\203P\321\322\n\323Q\311\324#\203k\325\326! \325\327!PB\fB\2026\321\322\n\330 \331\260\311\324#\203k\325\326!\325\332!B\fB\202P d|\210)\f.\207" [current-client client-root re-current-client re-client-root files pmin p4-current-client p4-get-client-root regexp-quote nil get-buffer-create "\n" apply p4-call-p4-here "where" p4-get-server-version 98 re-search-forward "^\\([^\n]+\\) //" "\\(.*\\)$" t match-string 1 2 "\\([^\n]+\\) \\(" ".*\\)$" 3 p4-output-buffer-name file-list] 7])
#@50 Creates a new face if it does not already exist.
(defalias 'p4-make-face #[(face-name fg bg) "\304!\211?\205\"\305!\210\n\203\306\n\"\210 \203!\307 \"\202\"\310)\207" [face-name face bg fg facep make-face set-face-background set-face-foreground t] 4 (#$ . 46642)])
(byte-code "\300\301\302\303#\210\300\304\305\303#\210\300\306\307\303#\210\300\310\311\303#\207" [p4-make-face p4-depot-unmapped-face "grey30" nil p4-depot-deleted-face "red" p4-depot-added-face "blue" p4-depot-branch-op-face "blue4"] 4)
#@159 Take the p4-output-buffer-name buffer, rename it to bufname, and
make all depot file names active, so that clicking them opens
the corresponding client file.
(defalias 'p4-make-depot-list-buffer #[(bufname &optional print-buffer) "\306\211\211 q\210eb\210\f\203\307\202\310\311\306\312#\203'\313\314!\nB\202\315\n!\316 !\210\317 !\210 q\210\320 \312\"\210eb\210\311\306\312#\203\375\321\313\314! \"A\313\314!\314\224\314\225\313\322!\205`\323\324\313\322!\"\306&'()*\211+\203\202\325+!\203\202\326+BC&\202\211\327*BC&'\203\234\330\331*B\332\333BD&\"&+\204\263\334)(\330\332\335BC&\"#\210\202\370\212(b\210\336\337!)\203\321\334)(\330\332\340BC&\"#\210\202\370\212(b\210\336\341!)\203\357\342)(\330\332\343BC&\"#\210\202\370\342)(&#\210.\202>\344,!\210\312-\345 !+\207" [depot-regexp files args p4-output-buffer-name print-buffer bufname nil "\\(^\\)\\(//[^/@# ][^/@#]*/[^@#]+\\)#[0-9]+ - " "^\\(\\.\\.\\. [^/\n]*\\|==== \\)?\\(//[^/@# ][^/@#]*/[^#\n]*\\)" re-search-forward t match-string 2 p4-map-depot-files get-buffer-create kill-buffer rename-buffer assoc 1 string-match "\\.\\.\\. \\.\\.\\..*" file-readable-p link-client-name link-depot-name append history-for face p4-depot-branch-op-face p4-set-extent-properties p4-depot-unmapped-face looking-at ".* deleted?[ \n]" p4-depot-deleted-face ".* \\(add\\|branch\\)\\(ed\\)?[ \n]" p4-create-active-link p4-depot-added-face use-local-map p4-move-buffer-point-to-top prop-list branching-op-p end start p4-depot-file p4-client-file p4-opened-map buffer-read-only] 9 (#$ . 47163)])
(defalias 'p4-print #[nil "\304 \305`\301\"\305`\300\" \203\n\306 Q\202\"\203\"\n\307Q \204*\n\2044\310\311\312\n\"!\2027\nC\313\314\315\316\n$\210\317\320\316\"+\207" [change rev arg-string current-prefix-arg p4-buffer-file-name-2 get-char-property "#" "@" p4-make-list-from-string p4-read-arg-string "p4 print: " p4-noinput-buffer-action "print" nil t p4-activate-print-buffer "*P4 print*"] 5 "To print a depot file to a buffer, type \\[p4-print].\n\n print -- Retrieve a depot file to the standard output\n\n p4 print [ -a -o localFile -q ] file[revRange] ...\n\n Retrieve the contents of a depot file to the client's standard\n output. The client's have list is not affected. If file is\n specified as a client file name, the client view is used to\n find the corresponding depot file.\n\n If the file argument has a revision, then all files as of that\n revision are printed. If the file argument has a revision range,\n then only files selected by that revision range are printed, and\n the highest revision in the range is used for each file. Normally,\n the head revision is printed. See 'p4 help revisions' for help\n specifying revisions.\n\n The -a flag prints all revisions within the specific range, rather\n than just the highest revision in the range.\n\n The -o localFile flag redirects the output to the named file on\n the client filesystem. In this case, at most one file is written.\n\n The -q flag suppresses the initial line that displays the file name\n and revision.\n\n" nil])
(defalias 'p4-insert-no-properties #[(str) "`\303\nc\210`\304 \303#*\207" [end start str nil set-text-properties] 4])
(defalias 'p4-font-lock-buffer #[(buf-name) "\212\306\307\nq\210eb\210\310\311!\203 \312\313!\313y\210e`{e`|\210 \314 \210\306\211\315\316\217\210\317 \210\f\203;\320\305!\203;\306eb\210\321!+\207" [first-line file-name buf-name buffer-file-name p4-running-emacs hilit-auto-rehighlight nil "" looking-at "^//[^#@]+/\\([^/#@]+\\)" match-string 1 set-auto-mode (font-lock-fontify-buffer) ((error)) fundamental-mode boundp p4-insert-no-properties] 4])
(defalias 'p4-activate-print-buffer #[(buffer-name print-buffer) "\203\306 !\210\307\n\"\210\203\310\202\311\212\nq\210\312eb\210\313 \312\314#\203m\315\316\225\317\"\315\316\225\320\"\316\224d\212\313 \312\314#\203H\316\224)\203Y\321 \322BC#\210\203i\321 \323BC#\210,\202 \314\211*\207" [print-buffer p4-output-buffer-name buffer-name depot-regexp buffer-read-only end p4-font-lock-buffer p4-make-depot-list-buffer "^\\(//[^/@# ][^/@#]*/\\)[^@#]+#[0-9]+ - " "^\\(//[^/@# ][^/@#]*/\\)" nil re-search-forward t get-char-property 1 link-client-name link-depot-name p4-set-extent-properties block-client-name block-depot-name start] 5])
(byte-code "\301B\302\303!\210\304B\305\306!\210\307B\310\311!\210\312B\313\314!\210\315B\316\317!\210\320B\321\322!\210\323B\324\325!\210\326B\327\330!\207" [current-load-list p4-blame-change-regex (lambda (#1=#:defconst-tmp-var) (defconst p4-blame-change-regex #1#)) "^\\.\\.\\. #\\([0-9]+\\)\\s-+change\\s-+\\([0-9]+\\)\\s-+\\([^ ]+\\)\\s-+on\\s-+\\([^ ]+\\)\\s-+by\\s-+\\([^ ]+\\)@" p4-blame-branch-regex (lambda (#2=#:defconst-tmp-var) (defconst p4-blame-branch-regex #2#)) "^\\.\\.\\. \\.\\.\\. branch from \\(//[^#]*\\)#" p4-blame-revision-regex (lambda (#3=#:defconst-tmp-var) (defconst p4-blame-revision-regex #3#)) "^\\([0-9]+\\),?\\([0-9]*\\)\\([acd]\\)\\([0-9]+\\),?\\([0-9]*\\)" p4-blame-index-regex (lambda (#4=#:defconst-tmp-var) (defconst p4-blame-index-regex #4#)) " *\\([0-9]+\\) *\\([0-9]+\\) *\\([0-9]+/[0-9]+/[0-9]+\\)\\s-+\\([^:]*\\):" P4-REV (lambda (#5=#:defconst-tmp-var) (defconst P4-REV #5#)) 0 P4-DATE (lambda (#6=#:defconst-tmp-var) (defconst P4-DATE #6#)) 1 P4-AUTH (lambda (#7=#:defconst-tmp-var) (defconst P4-AUTH #7#)) 2 P4-FILE (lambda (#8=#:defconst-tmp-var) (defconst P4-FILE #8#)) 3] 2)
#@75 To Print a depot file with revision history to a buffer,
type \[p4-blame]
(defalias 'p4-blame #[nil "\304 \305`\301\"\305`\300\" \203\n\306 Q\202\"\203\"\n\307Q \204*\n\204/\310\311\n\"\312\n!+\207" [change rev arg-string current-prefix-arg p4-buffer-file-name-2 get-char-property "#" "@" p4-read-arg-string "p4 print-revs: " p4-blame-int] 5 (#$ . 52687) nil])
(defalias 'p4-print-with-rev-history 'p4-blame)
(defalias 'p4-blame-int #[(file-spec) "\306!\210\307!\210 \306!\310\211\211\211\211\211\211\211=@ABCD\311\312 \"\2039\313\314 \"D\315\313\316 \"!=\311\317 \"\203M\313\314 \"D\315\313\316 \"!\320C\321DD\322#\210\212Cq\210\323ed\"\314V\203i\324\325!\210)\320C\326\327 E\322#\210\330C!\211@\fB\212Cq\210eb\210`dW\203\331\332!\203\230\313\314!@\331E!\203 \315\313\314!!\315\313\316!!\313\333!\313\334!\313\335!FGHI>=\203\311=IW\204 \203\334 >W\203\334B@\230\204H\336\230\203\355\n\204db\210\202I>GF@FB B \204>\322-\202\n\203\331J!\203\322A\310y\210\202\207) G\314W\203)\324\337!\210\340 \211K@@)!\306\341!\342 !LMN\320M\343\344@\345NQE\322#\210\212Mq\210eb\210\346\347\310\322#\203g\350N\351P!\210\202U)LG\314V\203ZL@@L\211KA@)@OL@A8OL\211KA@)A8\310PQRST\352\353S\"P\320C\354\352\355RT#\352\355QS#E\322#\210\212Cq\210db\210\356U\310\322#\203P\315\313\314!!\315\313\316!!\313\333!\315\313\334!!\315\313\335!!VWHXYX\357U\203\365YXV\357U\203WVH\360\230\203YTY\202H\361\230\203WTW\212Mq\210\362Y!\210`ZXYZTy\210Z`|\210)WVX\203KPc\210WT\211W\2028.\202\300)LAL-\202h\363\343\310\322\352\364\f #C\322%\210\365!\210\310\211\357\310\211\211\211\211[\\]^_`ab\212Cq\210\362\316!\210\366\357!\210\367\370!\210\330M!\211b\203O\315b!\211a`U\203\265\367\352\371\372\"!\210\202Ea \236A_c_8^d_8]e_8\\O_8[\367\352\373a^]\\%!\210\366\357!\210\331f!\203E\313\314!\313\316!\313\334!ghi\374\314\224\314\225\375iBC#\210\374\316\224\316\225\376hB\377[BD#\210\374\334\224\334\225\201ogBC#\210\334\224\201p\\\334\225jkjkV\203Dkj|\210-a`\310y\210\202\224. \307M!\210+\201qD\201rQl\201sl\310\"\210\212lq\210\322m\201tn!.\f\207" [p4-output-buffer-name file-spec headseen head-rev fullname ch-alist get-buffer-create kill-buffer nil string-match "\\(.*\\)@\\([0-9]+\\)" match-string 1 string-to-int 2 "\\(.*\\)#\\([0-9]+\\)" p4-exec-p4 "files" t count-lines error "File pattern maps to more than one file." "filelog" "-i" p4-read-depot-output looking-at "^\\(//.*\\)$" 3 4 5 "delete" "Head revision not available" int-to-string "p4-ch-buf" copy-alist "print" "-q" "@" re-search-forward ".*\n" replace-match "\n" format "%d\n" "diff2" "%s@%d" re-search-backward 0 "a" "d" goto-line p4-noinput-buffer-action "%s#%d" p4-font-lock-buffer move-to-column p4-insert-no-properties "Change Rev Date Author\n" "%29s : " "" "%6d %4d %10s %7s: " p4-create-active-link change rev link-depot-name cur-file branch-p head-name buffer file-name p4-blame-change-regex author date op ch p4-blame-branch-regex x tmp-alst ch-buffer base-ch P4-FILE ins-string file2 file1 ch-2 ch-1 p4-blame-revision-regex rb ra lb la beg xth-file xth-auth xth-date xth-rev change-data old-cnum cnum line P4-REV P4-DATE P4-AUTH p4-blame-index-regex nth-user nth-revn nth-cnum end start buffer-name truncate-lines p4-print-rev-map user 7 "*P4 print-revs " "*" p4-activate-print-buffer use-local-map] 11])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\207" [defalias p4-refresh #[nil "\302  \204 \204\303\304\305!!\202C\306\307\310\311$\210\312 \210\313\314\315 \316@\317\260!)\207" [args current-prefix-arg p4-buffer-file-name p4-make-list-from-string p4-read-arg-string "p4 refresh: " p4-noinput-buffer-action "refresh" nil t p4-refresh-files-in-buffers p4-make-depot-list-buffer "*P4 Refresh: (" p4-current-client ") " "*"] 6 "Refresh the contents of an unopened file. \\[p4-refresh].\n\nThis is equivalent to \"sync -f\"\n\n sync -- Synchronize the client with its view of the depot\n flush -- synonym for 'sync -k'\n\n p4 sync [ -f -n -k ] [ file[revRange] ... ]\n p4 sync [ -n -p ] [ file[revRange] ... ]\n\n Sync updates the client workspace to reflect its current view (if\n it has changed) and the current contents of the depot (if it has\n changed). The client view is used to map client file names to\n depot file names and vice versa.\n\n Sync adds files that are in the client view but which have not been\n retrieved before. Sync deletes previously retrieved files which\n are no longer in the client view or have been deleted from the\n depot. Sync updates files which are still in the client view and\n which have been updated in the depot.\n\n Normally, sync affects all files in the client workspace. If file\n arguments are given, sync limits its operation to those files.\n The file arguments may contain wildcards.\n\n If the file argument includes a revision specifier, then the given\n revision is retrieved. Normally, the head revision is retrieved.\n See 'p4 help revisions' for help specifying revisions.\n\n If the file argument includes a revision range specification, then\n only files selected by the revision range are updated, and the\n highest revision in the range is used.\n\n Normally, sync will not clobber files in the client workspace that\n the user has made writable. Setting the 'clobber' option in the\n client spec disables this safety check.\n\n The -f flag forces resynchronization even if the client already\n has the file, and clobbers writable files. This flag doesn't affect\n open files.\n\n The -n flag causes sync not to update the client workspace, but to\n display what normally would be updated.\n\n The -k flag bypasses the client file update. It can be used to\n make the server believe that a client workspace already has the\n file. Typically this flag is used to correct the Perforce server\n when it is wrong about what files are on the client, use of this\n option can confuse the server if you are wrong about the client's\n contents.\n\n The -p flag populates the client workspace, but does not update the\n server to reflect those updates. Any file that is already synced or\n opened will be bypassed with a warning message. This option is very\n useful for build clients or when publishing content without the\n requirement of saving the client workspace state.\n\n" nil] p4-sync #[nil "\300 \207" [p4-get] 1 "To synchronise the local view with the depot, type \\[p4-get].\n\n sync -- Synchronize the client with its view of the depot\n flush -- synonym for 'sync -k'\n\n p4 sync [ -f -n -k ] [ file[revRange] ... ]\n p4 sync [ -n -p ] [ file[revRange] ... ]\n\n Sync updates the client workspace to reflect its current view (if\n it has changed) and the current contents of the depot (if it has\n changed). The client view is used to map client file names to\n depot file names and vice versa.\n\n Sync adds files that are in the client view but which have not been\n retrieved before. Sync deletes previously retrieved files which\n are no longer in the client view or have been deleted from the\n depot. Sync updates files which are still in the client view and\n which have been updated in the depot.\n\n Normally, sync affects all files in the client workspace. If file\n arguments are given, sync limits its operation to those files.\n The file arguments may contain wildcards.\n\n If the file argument includes a revision specifier, then the given\n revision is retrieved. Normally, the head revision is retrieved.\n See 'p4 help revisions' for help specifying revisions.\n\n If the file argument includes a revision range specification, then\n only files selected by the revision range are updated, and the\n highest revision in the range is used.\n\n Normally, sync will not clobber files in the client workspace that\n the user has made writable. Setting the 'clobber' option in the\n client spec disables this safety check.\n\n The -f flag forces resynchronization even if the client already\n has the file, and clobbers writable files. This flag doesn't affect\n open files.\n\n The -n flag causes sync not to update the client workspace, but to\n display what normally would be updated.\n\n The -k flag bypasses the client file update. It can be used to\n make the server believe that a client workspace already has the\n file. Typically this flag is used to correct the Perforce server\n when it is wrong about what files are on the client, use of this\n option can confuse the server if you are wrong about the client's\n contents.\n\n The -p flag populates the client workspace, but does not update the\n server to reflect those updates. Any file that is already synced or\n opened will be bypassed with a warning message. This option is very\n useful for build clients or when publishing content without the\n requirement of saving the client workspace state.\n\n" nil] p4-get #[nil "\302 \203\f\303\304\305!!\306\307\302\310$\210\311 \210\312\313\314 \315@\316\260!)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 get: " p4-noinput-buffer-action "get" t p4-refresh-files-in-buffers p4-make-depot-list-buffer "*P4 Get: (" p4-current-client ") " "*"] 6 "To synchronise the local view with the depot, type \\[p4-get].\n\n sync -- Synchronize the client with its view of the depot\n flush -- synonym for 'sync -k'\n\n p4 sync [ -f -n -k ] [ file[revRange] ... ]\n p4 sync [ -n -p ] [ file[revRange] ... ]\n\n Sync updates the client workspace to reflect its current view (if\n it has changed) and the current contents of the depot (if it has\n changed). The client view is used to map client file names to\n depot file names and vice versa.\n\n Sync adds files that are in the client view but which have not been\n retrieved before. Sync deletes previously retrieved files which\n are no longer in the client view or have been deleted from the\n depot. Sync updates files which are still in the client view and\n which have been updated in the depot.\n\n Normally, sync affects all files in the client workspace. If file\n arguments are given, sync limits its operation to those files.\n The file arguments may contain wildcards.\n\n If the file argument includes a revision specifier, then the given\n revision is retrieved. Normally, the head revision is retrieved.\n See 'p4 help revisions' for help specifying revisions.\n\n If the file argument includes a revision range specification, then\n only files selected by the revision range are updated, and the\n highest revision in the range is used.\n\n Normally, sync will not clobber files in the client workspace that\n the user has made writable. Setting the 'clobber' option in the\n client spec disables this safety check.\n\n The -f flag forces resynchronization even if the client already\n has the file, and clobbers writable files. This flag doesn't affect\n open files.\n\n The -n flag causes sync not to update the client workspace, but to\n display what normally would be updated.\n\n The -k flag bypasses the client file update. It can be used to\n make the server believe that a client workspace already has the\n file. Typically this flag is used to correct the Perforce server\n when it is wrong about what files are on the client, use of this\n option can confuse the server if you are wrong about the client's\n contents.\n\n The -p flag populates the client workspace, but does not update the\n server to reflect those updates. Any file that is already synced or\n opened will be bypassed with a warning message. This option is very\n useful for build clients or when publishing content without the\n requirement of saving the client workspace state.\n\n" nil] p4-have #[nil "\302C \203\303\304\305\306 \"!\307\310\311\312$\210\313\314\315 \316@\317\260!)\207" [args current-prefix-arg "..." p4-make-list-from-string p4-read-arg-string "p4 have: " p4-buffer-file-name-2 p4-noinput-buffer-action "have" nil t p4-make-depot-list-buffer "*P4 Have: (" p4-current-client ") " "*"] 6 "To list revisions last gotten, type \\[p4-have].\n\n have -- List revisions last synced\n\n p4 have [ file ... ]\n\n List revisions of named files that were last synced from the depot.\n If no file name is given list all files synced on this client.\n The format is\n depot-file#revision - client-file\n\n" nil] p4-changes #[nil "\302\303\304E \203\305\306\307\310\"!\311\312\")\207" [arg-list current-prefix-arg "-m" "200" "..." p4-make-list-from-string p4-read-arg-string "p4 changes: " "-m 200" p4-file-change-log "changes"] 4 "To list changes, type \\[p4-changes].\n\n changes -- Display list of pending and submitted changelists\n changelists -- synonym for 'changes'\n\n p4 changes [ options ] [ file[revRange] ... ]\n\n options: -i -t -l -L -c client -m max -s status -u user\n\n Reports the list of all pending and submitted changelists currently\n known to the system.\n\n If files are specified, 'p4 changes' limits its report to\n changelists that affect those files. If the file specification\n includes a revision range, 'p4 changes' limits its report to\n submitted changelists that affect those particular revisions.\n See 'p4 help revisions' for help specify revisions.\n\n The -i flag also includes any changelists integrated into the\n specified files.\n\n The -t flag displays the time as well as the date.\n\n The -l flag produces long output with the full text of the changelist\n descriptions.\n\n The -L flag produces long output with the full text of the changelist\n descriptions truncated to 250 characters.\n\n The -c client flag limits changes to those on the named client.\n\n The -m max flag limits changes to the 'max' most recent.\n\n The -s status flag limits the output to pending or submitted\n changelists.\n\n The -u user flag limits changes to those owned by the named user.\n\n" nil] p4-help #[(arg) "\301\302\303\304$\210\305\306!\207" [arg p4-noinput-buffer-action "help" nil t p4-make-basic-buffer "*P4 help*"] 5 "To print help message, type \\[p4-help].\n\nArgument ARG command for which help is needed.\n\n help -- Print help message\n\n p4 help [ command ... ]\n\n Print a help message about command. If no command name is given\n print a general help message about Perforce and give a list\n of available client commands.\n\n" (list (p4-make-list-from-string (p4-read-arg-string "Help on which command: " nil "help")))]] 3)
#@192 rename `p4-output-buffer-name' to buf-name (which will be killed first if
it already exists), set its local map to map, if specified, or
`p4-basic-map' otherwise. Makes the buffer read only.
(defalias 'p4-make-basic-buffer #[(buf-name &optional map) "\305!\210\306!\210 q\210eb\210\307\310\"\210\311\312\n!\203\n\202 !\210\310\313!\207" [buf-name p4-output-buffer-name map p4-basic-map buffer-read-only get-buffer-create kill-buffer rename-buffer t use-local-map keymapp p4-move-buffer-point-to-top] 3 (#$ . 67319)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\207" [defalias p4-info #[nil "\300\301\302\303#\210\304\305!\207" [p4-noinput-buffer-action "info" nil t p4-make-basic-buffer "*P4 info*"] 4 "To print out client/server information, type \\[p4-info].\n\n info -- Print out client/server information\n\n p4 info\n\n Info dumps out what the server knows about the client (the user\n name, the client name, the applicable client root, the client\n current directory, and the client IP address) and some server\n information (the server IP address, server root, date, version,\n and license data).\n\n" nil] p4-integ #[nil "\301\302\303\304\"!\305\306\307\310$\210\311\312!)\207" [args p4-make-list-from-string p4-read-arg-string "p4 integ: " "-b " p4-noinput-buffer-action "integ" nil t p4-make-depot-list-buffer "*P4 integ*"] 5 "To schedule integrations between branches, type \\[p4-integ].\n\n integrate -- schedule integrations from one file to another\n\n p4 integrate [ options ] fromFile[revRange] toFile\n p4 integrate [ options ] -b branch [ toFile[revRange] ... ]\n p4 integrate [ options ] -b branch -s fromFile[revRange] [ toFile ... ]\n\n options: -c changelist# -d -D<flag> -f -h -i -o -n -r -t -v\n\n 'p4 integrate' stages change propagation from source files to\n target files, opening the target files in the client workspace.\n 'p4 resolve' then merges content from the source files into the\n opened target files, and 'p4 submit' commits the opened files to\n the depot. Integrations can be abandoned with 'p4 revert'.\n\n When 'p4 integrate' opens a target file in the client workspace,\n it chooses an appropriate action: 'branch' for new files, \n 'integrate' when the source file has changed, and 'delete' when\n the source file was deleted. Open target files are left read-only\n in the client workspace. 'p4 edit' can downgrade a 'branch' to an\n 'add' or an 'integrate' to an 'edit', making the file read-write.\n\n 'p4 integrate' maintains integration history between files. This\n eliminates duplicate integrations and minimizes file merges by\n telling 'p4 resolve' what to use as the merge base: generally the\n highest revision already integrated. Integration history also\n prevents integrating back a pure, integration-only change. Such\n a change is one that resulted from 'p4 resolve' without manually\n editing the file. The search for integration history will include\n integrations indirectly through intermediate file branches\n The commands 'p4 integrated' and 'p4 filelog' display integration\n history.\n\n A branch view may be given directly on the command line by stating\n the source (from) and target (to) files, or indirectly by naming\n a stored branch view with -b branch. A stored branch view may have\n many mappings, while a view on the command line can only have one.\n If a stored branch view is given, the target files and source\n files and revisions may be further limited on the command.\n\n If no file specification is given then the entire branch view is\n examined for needed integrations. If a file specification is\n given, the integration is limited to only those target files.\n In both cases, the integration is also limited to those target\n files that are also in the client view.\n\n If no revision specification is given then all revisions of the\n source file are considered for integration. If a single revision\n is given, then only revisions up to the given revision are included.\n If a pair of revisions is given (separated by a comma (,)) then\n only those revisions, inclusively, are integrated. Note that the\n revision specification concerns the fromFile, but is attached to\n the toFile. See 'p4 help revisions' for help specifying revisions.\n\n The -f flag forces integrate to act without regard for previous\n integration history. Normally, integrate skips any file revisions\n already integrated. Note: unless revRange is given as well, the -f\n flag will force 'p4 resolve' perform merges without a common base.\n To avoid this, use -f only to force integration of specific changes.\n\n If -c changelist# is given, the files are opened in the numbered\n pending changelist instead of the 'default' changelist.\n\n The -d and -Dx flags enable integrations around deleted revisions.\n Normally 'p4 integrate' avoids mixing outstanding edits with a\n deleted file. -d sets -Dt -Ds -Di.\n\n -Dt If the target file has been deleted and the source\n file has changed, will re-branch the source file\n on top of the target file.\n\n -Ds If the source file has been deleted and the target\n file has changed, will delete the target file.\n\n -Di If the source file has been deleted and re-added,\n will attempt to integrate all outstanding revisions\n of the file, including those revisions prior to the\n delete. Normally 'p4 integrate' only considers\n revisions since the last add.\n\n The -h flag causes the target files to be left at the revision\n currently on the client (the '#have' revision). Normally, target\n files are automatically synced to the head revision by 'p4 integrate'.\n [Note that prior to 2002.1 files were never automatically synced by\n 'p4 integrate'.]\n\n The -i flag enables integration between files that have no\n integration history. Normally, 'p4 integrate' refuses to\n integrate changes if there is no prior integration history between\n the source and target, because it has no way of identifying the base\n for its merges. The -i flag forces baseless merges and tells\n 'p4 resolve' just to use the first, added revision as the base.\n\n The -o flag displays the base file name and revision which will\n be used in subsequent resolves if a resolve is needed.\n\n The -n flag displays what integrations would be necessary but does\n not schedule them.\n\n The -r flag reverses the mappings in the branch view, with the\n target files and source files exchanging place. The -b branch flag\n is required.\n\n The -s fromFile[revRange] flag causes the branch view to work\n bidirectionally, where the scope of the command is limited to\n integrations whose 'from' files match fromFile[revRange]. If\n any toFiles are given, the scope is further limited to integrations\n whose 'to' files match them. When the -s fromFile[revRange] flag is\n used, -r is ignored, as are any revisions on toFile. [The -s flag\n is not meant for end users. It exists to support graphical client\n programs.]\n\n The -t flag makes the source file's filetype propagate to the target\n file. Normally, the target file retain its previous filetype.\n Newly branched files always use the source file's filetype. The\n filetype can still be changed before 'p4 submit' with 'p4 reopen'.\n\n The -v flag makes 'p4 integrate' work faster by not copying newly\n branched files to the client. In this case, the files can be\n fetched with 'p4 sync' after they are submitted with 'submit'.\n [Note that this was the default behavior for newly branched files\n in release 97.2 and earlier.]\n\n Note: the syntax 'p4 integrate -b branch toFile[revRange]' is\n provided for backwards compatibility, but is confusing because\n it mixes the target file with the source revisions.\n\n" nil] p4-resolve #[nil "\306\211\307 \203\310\311\312\306\"!\313!\314\n!\2032\315\n!\2042\212\f\nq\210\316 !\210db\210\317c\210*\320 B\321\322\323\306\324\f &\211q\210\325 \210\326\n!\210\327\330\n!!\210db+\207" [buf-name args buffer current-prefix-arg default-directory cur-dir nil "*p4 resolve*" p4-make-list-from-string p4-read-arg-string "p4 resolve: " get-buffer buffer-live-p comint-check-proc cd "\n--------\n\n" "resolve" apply make-comint "p4 resolve" "-d" comint-mode display-buffer select-window get-buffer-window p4-executable] 9 "To merge open files with other revisions or files, type \\[p4-resolve].\n\n resolve -- Merge open files with other revisions or files\n\n p4 resolve [ -af -am -as -at -ay -d<flag> -f -n -o -t -v ] [ file ... ]\n\n 'p4 resolve' merges the content of source files into target\n files open in the client workspace, using an interactive dialog.\n 'p4 resolve' only handles merges scheduled implicitly by 'p4 sync'\n or 'p4 submit' of a file opened at a revision other than the head\n or explicitly by 'p4 integrate'. Once scheduled, 'p4 resolve'\n must perform the merges before the file can be committed with\n 'p4 submit'.\n\n If no file is given, all files needing merging will be resolved.\n\n The merge process is a classic 3-way merge, with the participating\n files named (for better or for worse): 'yours' -- the target\n file open in the client workspace; 'theirs' -- the source file\n being merged from the depot; and 'base' -- the common ancestor,\n actually the highest revision of the source file not already\n merged into the target.\n\n For each file, 'p4 resolve' places a merge candidate into a\n temporary file in the client workspace and displays a summary line\n with the total number of sections of text changed from the base:\n\n yours change is only in your open revision\n theirs change is only in the source revision\n both same text added or changed in both\n conflicts conflicting changes between the yours and theirs\n\n If there are any conflicts, the merge candidate file will have\n conflict markers bracketing the alternative texts. You must\n edit the file to resolve the conflicts and remove the markers.\n\n 'p4 resolve' distinguishes among four potential merge results:\n entirely yours, entirely theirs, automated merge, or manually\n edited merge. All but the last result in a pure merge: one that\n never needs integrating back to the source file. 'p4 resolve'\n includes a suggested merge result in []'s on its prompt line.\n\n After displaying the summary line, 'p4 resolve' prompts you for\n an action:\n\n Accept:\n at Keep only changes to their file.\n ay Keep only changes to your file.\n * am Keep merged file.\n * ae Keep merged and edited file.\n * a Keep autoselected file.\n\n Diff:\n * dt See their changes alone.\n * dy See your changes alone.\n * dm See merged changes.\n d Diff your file against merged file.\n\n Edit:\n et Edit their file (read only).\n ey Edit your file (read/write).\n * e Edit merged file (read/write).\n\n Misc:\n * m Run '$P4MERGE base theirs yours merged'.\n (Runs '$P4MERGEUNICODE charset base theirs\n yours merged' if set and the file\n is a unicode file.)\n s Skip this file.\n h Print this help message.\n ^C Quit the resolve operation.\n\n Options marked (*) appear only for textual resolution.\n\n The 'merge' option allows you to invoke your own integration and\n conflict resolution utility (named in the $P4MERGE environment\n variable). This utility is expected to replace the existing\n merged file with a new one.\n\n The -am flag puts 'p4 resolve' into automatic mode: if there are\n conflicts, the file is skipped; if there are no conflicts and\n yours hasn't changed it accepts theirs; if theirs hasn't changed\n it accepts yours; if both yours and theirs have changed it accepts\n the merge. Files that have no base for merging (e.g. binary files)\n are always skipped.\n\n The -af flag forces 'p4 resolve' in automatic mode to accept the\n merged file even if there are conflicts.\n\n The -as flag performs a 'safe' automatic resolve, accepting only\n files that have either your changes or their changes, but not both.\n Files with changes to both yours and theirs are skipped.\n\n The -at and -ay flags perform an automatic resolve that skips the\n merging. Instead it automatically accepts their (-at) or your (-ay)\n version of the file. The -at flag should be used with care, as\n it overwrites any changes made to the file in the client workspace.\n\n The -d<flag> can be used to handle whitespace and line endings\n when merging files. The -db flag ignores whitespace changes,\n the -dw flag ignores whitespace altogether, and the -dl flag ignores\n line endings when merging files. The flags are also passed to the\n diff options in the 'p4 resolve' dialog. Additional -d flags which\n modify the diff output but do not modify merge behavior include\n -dn (RCS), -dc (context), -ds (summary), and -du (unified). Note that\n 'p4 resolve' will use text from the client file where the files\n differ only in whitespace.\n\n The -f flag allows previously resolved files to be resolved again.\n Normally, once files have been resolved then 'p4 resolve' won't\n display them again.\n\n The -n flag lists the merges which would be performed without\n actually doing them.\n\n The -o flag displays the base file name and revision which will\n be used during the the merge.\n\n The -t flag forces 'p4 resolve' to attempt a textual merge, even\n for files with non-text (binary) types.\n\n The -v flag causes 'p4 resolve' to put in markers for all changes,\n not just those in conflict. The markers must be edited out before\n the merged file can be accepted.\n\n" nil] p4-rename #[nil "\303\211\304\305\306 \"\304\307\306 \"\310\311\303\312 D$\210\313\314\n!\315 D\303#*\207" [to-file from-file p4-output-buffer-name nil p4-read-arg-string "rename from: " p4-buffer-file-name-2 "rename to: " p4-noinput-buffer-action "integ" t p4-exec-p4 get-buffer-create "delete"] 6 "To rename a file in the depot, type \\[p4-rename].\n\nThis command will execute the integrate/delete commands automatically.\n\n rename -- How to rename files\n\n p4 integrate from to\n p4 delete from\n p4 submit\n\n Perforce does not support a single 'rename' command, but files can\n be renamed by branching one file into another and then deleting the\n original file.\n\n The 'from' and 'to' file arguments may include wildcards as long as\n they are matched.\n\n Integrating from files require read access to the files, but deleting\n them requires write access.\n\n For further information, see the help for the individual commands.\n\n" nil]] 3)
#@22 Scroll down one line
(defalias 'p4-scroll-down-1-line #[nil "\300\301!\207" [scroll-down 1] 2 (#$ . 82147) nil])
#@20 Scroll up one line
(defalias 'p4-scroll-up-1-line #[nil "\300\301!\207" [scroll-up 1] 2 (#$ . 82266) nil])
#@24 Scroll down one window
(defalias 'p4-scroll-down-1-window #[nil "\301\302 Z!\207" [next-screen-context-lines scroll-down window-height] 3 (#$ . 82379) nil])
#@22 Scroll up one window
(defalias 'p4-scroll-up-1-window #[nil "\301\302 Z!\207" [next-screen-context-lines scroll-up window-height] 3 (#$ . 82543) nil])
#@15 Top of buffer
(defalias 'p4-top-of-buffer #[nil "eb\207" [] 1 (#$ . 82701) nil])
#@18 Bottom of buffer
(defalias 'p4-bottom-of-buffer #[nil "db\207" [] 1 (#$ . 82788) nil])
#@25 Make buffer full height
(defalias 'p4-delete-other-windows #[nil "\300 \207" [delete-other-windows] 1 (#$ . 82881) nil])
#@11 Next diff
(defalias 'p4-goto-next-diff #[nil "\300 b\210`dU\203\301\302!\210\303y\210\304\305\306\307#\210\310 \210\311\312 `\"\207" [window-start error "At bottom" 1 re-search-forward "^====" nil "" beginning-of-line set-window-start selected-window] 4 (#$ . 83008) nil])
#@15 Previous diff
(defalias 'p4-goto-prev-diff #[nil "`eU\203\n\300\301!\210\302 b\210\303\304\305\306#\210\307\310 `\"\207" [error "At top" window-start re-search-backward "^====" nil "" set-window-start selected-window] 4 (#$ . 83289) nil])
#@11 Next file
(defalias 'p4-next-depot-file #[nil "\300 b\210`dU\203\301\302!\210\303y\210\304\305\306\307#\210\310 \210\311\312 `\"\207" [window-start error "At bottom" 1 re-search-forward "^//[^/@# ][^/@#]*/[^@#]+#[0-9]+ - " nil "" beginning-of-line set-window-start selected-window] 4 (#$ . 83535) nil])
#@15 Previous file
(defalias 'p4-prev-depot-file #[nil "`eU\203\n\300\301!\210\302 b\210\303\304\305\306#\210\307\310 `\"\207" [error "At top" window-start re-search-backward "^//[^/@# ][^/@#]*/[^@#]+#[0-9]+ - " nil "" set-window-start selected-window] 4 (#$ . 83846) nil])
#@11 Next diff
(defalias 'p4-next-depot-diff #[nil "\300 b\210`dU\203\301\302!\210\303y\210\304\305\306\307#\210\310 \210\311\312 `\"\207" [window-start error "At bottom" 1 re-search-forward "^\\(@@\\|\\*\\*\\* \\|[0-9]+[,acd]\\)" nil "" beginning-of-line set-window-start selected-window] 4 (#$ . 84122) nil])
#@15 Previous diff
(defalias 'p4-prev-depot-diff #[nil "`eU\203\n\300\301!\210\302 b\210\303\304\305\306#\210\307\310 `\"\207" [error "At top" window-start re-search-backward "^\\(@@\\|\\*\\*\\* \\|[0-9]+[,acd]\\)" nil "" set-window-start selected-window] 4 (#$ . 84436) nil])
(defalias 'p4-moveto-print-rev-column #[(old-column) "\212\302\303!\210\304\305!\203\303\225b\210i\202\303)\302 !\210iW\205+\306\307\310\311#\205+\303\224b)\207" [colon old-column move-to-column 0 looking-at "[^:\n]*:" re-search-forward "[^ ][ :]" nil t] 4])
#@27 Next change/revision line
(defalias 'p4-next-change-rev-line #[nil "i\301\302!\210\303\304\305\306#\210\307!)\207" [c move-to-column 1 re-search-forward "^ *[0-9]+ +[0-9]+[^:]+:" nil "" p4-moveto-print-rev-column] 4 (#$ . 84982) nil])
#@31 Previous change/revision line
(defalias 'p4-prev-change-rev-line #[nil "i\301y\210\302\303!\210\304\305\306\307#\210\310!)\207" [c -1 move-to-column 32 re-search-backward "^ *[0-9]+ +[0-9]+[^:]*:" nil "" p4-moveto-print-rev-column] 4 (#$ . 85225) nil])
#@23 Toggle line wrap mode
(defalias 'p4-toggle-line-wrap #[nil "?\301\213\207" [truncate-lines ((recenter))] 1 (#$ . 85486) nil])
#@15 Quit a buffer
(defalias 'p4-quit-current-buffer #[(pnt) "\300 \204\301 \207\302 \207" [one-window-p delete-window bury-buffer] 1 (#$ . 85620) "d"])
#@83 Function to translate the mouse clicks in a P4 filelog buffer to
character events
(defalias 'p4-buffer-mouse-clicked #[(event) "\306\211\n\203\307 !\310 !\202i\f\203i \211:\203/\311 8:\203)\311\202*\312 8\2025\313 `\314\315F)\211@) \211:\203H A@\202N\313 `\316\315F)\317 8\206g A@:\203d A@@\202g A@)\320 !\210b\210\321!*\207" [pnt win p4-running-xemacs event p4-running-emacs position nil event-window event-point 2 1 selected-window (0 . 0) 0 (0 . 0) 5 select-window p4-buffer-commands] 5 (#$ . 85776) "e"])
#@83 Function to translate the mouse clicks in a P4 filelog buffer to
character events
(defalias 'p4-buffer-mouse-clicked-3 #[(event) "\306\211\n\203\307 !\310 !\202i\f\203i \211:\203/\311 8:\203)\311\202*\312 8\2025\313 `\314\315F)\211@) \211:\203H A@\202N\313 `\316\315F)\317 8\206g A@:\203d A@@\202g A@)\320 !\210b\210\321\322\"\206{\321\323\"\321\324\"\211\203\214\325 \202\234\203\231\326\327\"\202\234\330\331!,\207" [pnt win p4-running-xemacs event p4-running-emacs position nil event-window event-point 2 1 selected-window (0 . 0) 0 (0 . 0) 5 select-window get-char-property link-client-name link-depot-name rev p4-diff p4-diff2 "#head" error "No file to diff!" link-name] 5 (#$ . 86316) "e"])
#@71 Function to get a given property and do the appropriate command on it
(defalias 'p4-buffer-commands #[(pnt) "\306\307\"\306\310\"\306\311\"\306\312\"\306\305\"\306\304\"\306\303\"\306\302\"\313 \n  \204Q\203Q \314Q8\315\316\317\3208C$\210\321\322\320\")\202\227 \203\224\323\324!S!9 \314Q8 \3149Q:\3249!\325V\203\215\315\326\317\320\327\330;!:8D\"$\210\331\332!\202\220\333\334!+\202\227\203\247\335\327\330;!C\"!\202\227\n\203\274\336\337\317\340\n\341Q\337\nC%\202\227\f\203\316\336\342\343\344\f\341Q\342\fC%\202\227 \203\331\345 C!\202\227\n\203\344\346\nC!\202\227\306\347\"\306\350\"\306\351\"\306\352\"\306\353\"\306\354\"\306\355\"-,<*)('<\203\356\357<C\"\202\225'\204&(\203/\360'(\"\202\225)\2049*\203\222,\203\211\325\361\212b\210\362 \210`)\363#],=>\212-b\210\364\365\320#\203h=T=\202X)\360)*\"\210\366=!\210)\204}\363y\210\362 \210`>\\b*\202\225\360)*\"\202\225\333\367!.. \207" [pnt filename branch label client group get-char-property rev change action user p4-buffer-file-name-2 "#" p4-noinput-buffer-action "print" nil t p4-activate-print-buffer "*P4 print*" int-to-string string-to-int 0 "diff2" append p4-make-list-from-string p4-activate-diff-buffer "*P4 diff*" error "There is no earlier revision to diff." p4-describe-internal p4-async-process-command "user" "*P4 User: " "*" "client" "Description:\n " "*P4 Client: " p4-label p4-branch link-client-name link-depot-name block-client-name block-depot-name history-for first-line start p4-file-change-log "filelog" p4-find-file-or-print-other-window - beginning-of-line 1 re-search-forward "^[ +>].*\n" goto-line "There is no file at that cursor location!" fn1 rev2 fn2 p4-default-diff-options p4-history-for r c] 10 (#$ . 87059) "d"])
(defalias 'p4-find-file-or-print-other-window #[(client-name depot-name) "\203\302!\207\303\304\305\306 C$\210\307 \306\"\210\310\311!\207" [client-name depot-name find-file-other-window p4-noinput-buffer-action "print" nil t p4-activate-print-buffer other-window 1] 5])
#@17 Open/print file
(defalias 'p4-find-file-other-window #[nil "\304`\303\"\304`\302\"\304`\301\"\304`\300\"\211\204\n\203'\305 \n\"\210\306\307!\2027 \204/\2057\305 \"\210\306\307!,\207" [block-depot-name block-client-name link-depot-name link-client-name get-char-property p4-find-file-or-print-other-window other-window 1] 7 (#$ . 89163) nil])
#@14 Short format
(defalias 'p4-filelog-short-format #[nil "\301\302 \207" [buffer-invisibility-spec t redraw-display] 1 (#$ . 89524) nil])
#@13 Long format
(defalias 'p4-filelog-long-format #[nil "\301\302 \207" [buffer-invisibility-spec nil redraw-display] 1 (#$ . 89666) nil])
#@35 Scroll other window down one line
(defalias 'p4-scroll-down-1-line-other-w #[nil "\300\301!\207" [scroll-other-window -1] 2 (#$ . 89808) nil])
#@33 Scroll other window up one line
(defalias 'p4-scroll-up-1-line-other-w #[nil "\300\301!\207" [scroll-other-window 1] 2 (#$ . 89957) nil])
#@37 Scroll other window down one window
(defalias 'p4-scroll-down-1-window-other-w #[nil "\301\302 Z!\207" [next-screen-context-lines scroll-other-window window-height] 3 (#$ . 90101) nil])
#@35 Scroll other window up one window
(defalias 'p4-scroll-up-1-window-other-w #[nil "\301\302 Z!\207" [next-screen-context-lines scroll-other-window window-height] 3 (#$ . 90294) nil])
#@29 Top of buffer, other window
(defalias 'p4-top-of-buffer-other-w #[nil "\300\301!\210eb\210\300\302!\207" [other-window 1 -1] 2 (#$ . 90483) nil])
#@32 Bottom of buffer, other window
(defalias 'p4-bottom-of-buffer-other-w #[nil "\300\301!\210db\210\300\302!\207" [other-window 1 -1] 2 (#$ . 90635) nil])
#@13 Next change
(defalias 'p4-goto-next-change #[nil "i\301y\210\302`\303\"\203\301y\210\202\304!)\207" [c 1 get-char-property invisible move-to-column] 3 (#$ . 90793) nil])
#@17 Previous change
(defalias 'p4-goto-prev-change #[nil "i\301y\210\302`\303\"\203\301y\210\202\304!)\207" [c -1 get-char-property invisible move-to-column] 3 (#$ . 90975) nil])
(byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\307\302#\210\300\310\311\302#\210\300\312\313\302#\207" [p4-make-face p4-diff-file-face nil "gray90" p4-diff-head-face "gray95" p4-diff-ins-face "blue" p4-diff-del-face "red" p4-diff-change-face "dark green"] 4)
(defalias 'p4-buffer-set-face-property #[(regexp face-property) "\212eb\210\304\305\306#\205\307\224\307\225\310\n \311 BC#\210*\202)\207" [regexp end start face-property re-search-forward nil t 0 p4-set-extent-properties face] 5])
(defalias 'p4-activate-diff-buffer #[(buffer-name) "\306!\210\212q\210\307\n\203'\310\311\312\"\210\310\313\314\"\210\310\315\316\"\210\310\317\320\"\210\310\321\322\"\210eb\210\323\324\307\325#\203s\326\327\225\303\"\326\327\225\304\"\330\224\212\323\331\307\325#\203O\330\224\202Pd)+ \203a\332 +\333 BC#\210\f\203o\332 +\334\fBC#\210,\202*eb\210\323\335\307\325#\203\236\336\337\340!!\341\224\341\225+\"\332 +\342\"B\305 BD#\210+\202veb\210\323\343\307\325#\203\256\330\224\202\257d,\344e,#\210)eb\210\345\346!\203\367\327\340\307\211-./0\3370!.\337/!-\3470\2240\225\350.BC#\210\347/\224/\225\351-BC#\210,\3521!\210\325\211)\207" [buffer-name buffer-read-only p4-colorized-diffs link-client-name link-depot-name start p4-make-depot-list-buffer nil p4-buffer-set-face-property "^=.*\n" p4-diff-file-face "^[@*].*" p4-diff-head-face "^\\([+>].*\n\\)+" p4-diff-ins-face "^\\([-<].*\n\\)+" p4-diff-del-face "^\\(!.*\n\\)+" p4-diff-change-face re-search-forward "^\\(==== //\\).*\n" t get-char-property 1 0 "^==== " p4-set-extent-properties block-client-name block-depot-name "^[@0-9].*\\([cad+]\\)\\([0-9]*\\).*\n\\(\\(\n\\|[^@0-9\n].*\n\\)*\\)" string-to-int match-string 2 3 first-line "^\\(\\.\\.\\.\\|====\\)" p4-find-change-numbers looking-at "^Change [0-9]+ by \\([^ @]+\\)@\\([^ \n]+\\)" p4-create-active-link user client use-local-map end stop cur-client cur-user cl-match user-match p4-diff-map] 6])
(defalias 'p4-describe #[nil "\302\303\304\305P\"!\306 !)\207" [p4-default-diff-options arg-string p4-make-list-from-string read-string "p4 describe: " " " p4-describe-internal] 5 "To get a description for a change number, type \\[p4-describe].\n\n describe -- Display a changelist description\n\n p4 describe [ -d<flag> -s ] changelist#\n\n Display a changelist description, including the changelist number,\n user, client, date of submission, textual description, list\n of affected files and diffs of files updated. Pending changelists\n are flagged as 'pending' and file diffs are not displayed.\n\n The -d<flag> passes a flag to the built-in diff routine to modify\n the output: -dn (RCS), -dc (context), -ds (summary), -du (unified),\n -db (ignore whitespace changes), -dw (ignore whitespace).\n\n The -s flag requests a shortened form of describe that doesn't\n include the diffs of files updated.\n\n" nil])
(defalias 'p4-describe-internal #[(arg-string) "\301\302\303\304$\210\305\306\307!\310Q!\207" [arg-string p4-noinput-buffer-action "describe" nil t p4-activate-diff-buffer "*P4 describe: " p4-list-to-string "*"] 5])
(defalias 'p4-opened #[nil "\302 \203\303\304\305\306 \"!\307!)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 opened: " p4-buffer-file-name-2 p4-opened-internal] 4 "To display list of files opened for pending change, type \\[p4-opened].\n\n opened -- Display list of files opened for pending changelist\n\n p4 opened [ -a -c changelist# -C client -m max ] [ file ... ]\n\n Lists files currently opened in pending changelists, or indicates\n for the specified files whether they are currently opened and/or\n locked. If no file names are given, all files open in the current\n client workspace are listed.\n\n The -a flag lists opened files in all clients. Normally only files\n opened by the current client are listed.\n\n The -c changelist# flag restricts the list to files opened under\n the given changelist#. Normally files in any changelist (include the\n 'default') are listed.\n\n The -C client flag restricts the list of files to those opened on\n the named client.\n\n The -m max flag limits output to the first 'max' number of files.\n\n" nil])
(defalias 'p4-opened-internal #[(args) "\302 \303\304\305\306 $\210\307\310\311Q!)\207" [p4-client args p4-current-client p4-noinput-buffer-action "opened" nil t p4-make-depot-list-buffer "*Opened Files: " "*"] 5])
(defalias 'p4-update-opened-list #[nil "\301\302\303 \304Q!\205\305\306\305!\207" [current-prefix-arg get-buffer-window "*Opened Files: " p4-current-client "*" nil p4-opened-internal] 4])
(defalias 'p4-regexp-create-links #[(buffer-name regexp property) "\212q\210\306eb\210\307\n\306\310#\203)\311\224\311\225\312\311!\313 \f\f BC#\210+\202 \310\211)\207" [buffer-name buffer-read-only regexp str end start nil re-search-forward t 1 match-string p4-create-active-link property] 5])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\207" [defalias p4-users #[nil "\302 \203\303\304\305\302\306#!\307\310\302\311$\210)\312\313!\210\314\313\315\316#\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 users: " "user" p4-noinput-buffer-action "users" t p4-make-basic-buffer "*P4 users*" p4-regexp-create-links "^\\([^ ]+\\).*\n" user] 5 "To display list of known users, type \\[p4-users].\n\n users -- Display list of known users\n\n p4 users [ user ... ] [ -m max ]\n\n Reports the list of all users, or those users matching the argument,\n currently known to the system. The report includes the last time\n each user accessed the system.\n\n The -m max flag limits output to the first 'max' number of users.\n\n" nil] p4-groups #[nil "\302 \203\303\304\305\302\306#!\307\310\302\311$\210)\312\313!\210\314\313\315\316#\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 groups: " "group" p4-noinput-buffer-action "groups" t p4-make-basic-buffer "*P4 groups*" p4-regexp-create-links "^\\(.*\\)\n" group] 5 "To display list of known groups, type \\[p4-groups].\n\n groups -- List groups (of users)\n\n p4 groups [ -m max ] [ [ [ -i ] user | group ] | [ -v [ group ] ] ]\n\n Displays the list of all user groups defined in the system.\n If a user argument is given, only groups containing that user\n are displayed. If a group argument is given, only groups\n containing the named group are displayed.\n\n The -i flag also displays groups that the user or group belongs\n to indirectly via subgroups.\n\n The -m max flag limits output to the first 'max' number of groups.\n\n The -v flag displays the MaxResults, MaxScanRows, MaxLockTime, \n and Timeout values for the named group.\n\n" nil] p4-jobs #[nil "\302 \203\f\303\304\305!!\306\307\302\310$\210)\311\312!\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 jobs: " p4-noinput-buffer-action "jobs" t p4-make-basic-buffer "*P4 jobs*"] 5 "To display list of jobs, type \\[p4-jobs].\n\n jobs -- Display list of jobs\n\n p4 jobs [ -e jobview -i -l -m max -r ] [ file[revRange] ... ]\n p4 jobs -R\n\n Reports the list of all jobs currently known to the system. If\n a file (pattern) is given, only fixes for submitted changelists\n affecting that file (or set of files) are listed. The file pattern\n may include wildcards and/or a revision number range. See 'p4 help\n revisions' for help specifying revisions.\n\n The -e jobview limits the output to jobs satisfying the expression\n given as 'jobview'. See 'p4 help jobview' for a description of\n jobview syntax.\n\n The -i flag also includes any fixes made by changelists integrated\n into the specified files.\n\n The -l flag produces long output with the full text of the job\n descriptions.\n\n The -m max flag limits the output to the first 'max' jobs,\n ordered by their job name.\n\n The -r flag sorts the jobs in reverse order (by job name).\n\n The -R flag rebuilds the jobs table and reindexes each job; this\n is necessary after upgrading to 98.2. 'p4 jobs -R' requires\n 'super' access granted by 'p4 protect'.\n\n" nil] p4-fix #[nil "\301\302\303\304\305#!\306\307\304\310$)\207" [args p4-make-list-from-string p4-read-arg-string "p4 fix: " nil "job" p4-noinput-buffer-action "fix" t] 5 "To mark jobs as being fixed by a changelist number, type \\[p4-fix].\n\n fix -- Mark jobs as being fixed by a changelist number\n\n p4 fix [ -d ] [ -s status ] -c changelist# jobName ...\n\n 'p4 fix' marks each named job as being fixed by the changelist\n number given with -c. The changelist may be either pending or,\n submitted and the jobs may be still be opened or already closed\n (fixed by another changelist).\n\n If the changelist has already been submitted and the job is still\n open then 'p4 fix' marks the job closed. If the changelist has not\n been submitted and the job is still open, the job will be marked\n closed when the changelist is submitted. If the job is already\n closed, it is left alone.\n\n The -d flag causes the specified fixes to be deleted. This does not\n otherwise affect the named changelist or jobs.\n\n The -s uses the given status instead of the default 'closed'. This\n status is reported by 'p4 fixes' and also reflected in the job's\n status (immediately if the changelist is committed; on submission\n if the changelist is pending).\n\n" nil] p4-fixes #[nil "\302 \203\f\303\304\305!!\306\307\302\310$\210\311\312!)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 fixes: " p4-noinput-buffer-action "fixes" t p4-make-basic-buffer "*P4 fixes*"] 5 "To list what changelists fix what jobs, type \\[p4-fixes].\n\n fixes -- List what changelists fix what jobs\n\n p4 fixes [ -i -m max -c changelist# -j jobName ] [ file[revRange] ... ]\n\n 'p4 fixes' shows all jobs with fix records associated with them,\n along with the changelist number of the fix. Fix records are\n created either directly with the 'p4 fix' command or via changelist\n creation with the 'p4 change' and 'p4 submit' commands.\n\n The 'p4 fixes' command shows fixes regardless of whether the\n changelists are submitted or still pending.\n\n By default, 'p4 fixes' lists all fixes. This list can be limited\n in any of three ways. If -j jobName is given, only fixes for the\n named job are listed. If -c changelist# is given, only fixes from\n the numbered changelist are listed. If a file (pattern) is given,\n only fixes for submitted changelists affecting that file (or set of\n files) are listed. The file pattern may include wildcards and/or a\n revision number range. See 'p4 help revisions' for help specifying\n revisions.\n\n The -i flag also includes any fixes made by changelists integrated\n into the specified files.\n\n The -m max flag limits output to the first 'max' number of job\n fixes.\n\n" nil] p4-where #[nil "\302 \203\303\304\305\306 \"!\307\310\302\311$)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 where: " p4-buffer-file-name-2 p4-noinput-buffer-action "where" s] 5 "To show how local file names map into depot names, type \\[p4-where].\n\n where -- Show how file names map through the client view\n\n p4 where [ file ... ]\n\n Where shows how the named files map through the client view.\n For each argument, three names are produced: the name in the\n depot, the name on the client in Perforce syntax, and the name\n on the client in local syntax.\n\n If no file is given, the mapping for '...' (all files in the\n current directory and below) is shown.\n\n Note that 'p4 where' does not determine where any real files are.\n It only computes where they should be according to the client view.\n\n" nil]] 3)
#@722 Internal function to call an asynchronous process with a local buffer,
instead of calling an external client editor to run within emacs.
Arguments:
P4-THIS-COMMAND is the command that called this internal function.
P4-REGEXP is the optional regular expression to search for to set the cursor
on.
P4-THIS-BUFFER is the optional buffer to create. (Default is *P4 <command>*).
P4-OUT-COMMAND is the optional command that will be used as the command to
be called when `p4-async-call-process' is called.
P4-IN-ARGS is the optional argument passed that will be used as the list of
arguments to the P4-THIS-COMMAND.
P4-OUT-ARGS is the optional argument passed that will be used as the list of
arguments to P4-OUT-COMMAND.
(defalias 'p4-async-process-command #[(p4-this-command &optional p4-regexp p4-this-buffer p4-out-command p4-in-args p4-out-args) "\n\203\306\n!q\210\202\306\307 \310Q!q\210 \311 !\210)\312\313\314ed\315 \316\211\317\320\f\321 &\f!\203|eb\210\322\323 \324\325\326\327\260c\210'\203J\330'!\210\331 \210\316(\332)\333 \210\334p!\210*\203b*+,\316-\335.\336\337#\210\340\341!\210\342\317!\210\343\344!\207\345\346\315 \f#\207" [default-directory dir p4-this-buffer p4-this-command p4-current-command p4-in-args get-buffer-create "*P4 " "*" cd zerop apply call-process-region p4-check-p4-executable t nil "-d" "-o" "# Created using " p4-emacs-version ".\n" "# Type C-c C-c to submit changes and exit buffer.\n" "# Type C-x k to kill current changes.\n" "#\n" re-search-forward indented-text-mode 79 p4-push-window-config switch-to-buffer-other-window define-key "" p4-async-call-process run-hooks p4-async-command-hook set-buffer-modified-p message "C-c C-c to finish editing and exit buffer." error "%s %s -o failed to complete successfully." p4-regexp p4-async-minor-mode fill-column p4-out-command p4-out-args p4-current-args buffer-offer-save p4-async-minor-map] 14 (#$ . 102967)])
#@146 Internal function called by `p4-async-process-command' to process the
buffer after editing is done using the minor mode key mapped to `C-c C-c'.
(defalias 'p4-async-call-process #[nil "\306\307\"\210d\310 \211b\210\311\312\313e \314 \310\315\310\316 \317\n&\f!\203j b\210 d{ d|\210\212\320!q\210ed|\210\fc\210)\321\310!\210\322!\210\323 !\210\306\324 \"\210 \325\232\205p\326 \210\327 \210\205p\330!\202p\331\332\314 #,\207" [p4-current-command p4-current-args current-args current-command msg max message "p4 %s ..." nil zerop apply call-process-region p4-check-p4-executable (t t) "-d" "-i" get-buffer-create kill-buffer display-buffer p4-partial-cache-cleanup "p4 %s done." "submit" p4-refresh-files-in-buffers p4-check-mode-all-buffers p4-notify error "%s %s -i failed to complete successfully." default-directory p4-output-buffer-name p4-notify-list] 15 (#$ . 104900) nil])
(defalias 'p4-cmd-line-flags #[(args) "\301\302\303\">\207" [args t mapcar #[(x) "\301\302\"??\207" [x string-match "^-"] 3]] 4])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\210\300\313\314\"\210\300\315\316\"\210\300\317\320\"\207" [defalias p4-change #[nil "\303\304\305\306!!\203\307\306!!\2025\n\203\310\311\312\303\"!\313 !\203.\314\315\303\316 $\2025\317\315\320\303 %*\207" [change-buf-name args current-prefix-arg nil "*P4 New Change*" buffer-live-p get-buffer switch-to-buffer-other-window p4-make-list-from-string p4-read-arg-string "p4 change: " p4-cmd-line-flags p4-noinput-buffer-action "change" t p4-async-process-command "Description:\n "] 6 "To edit the change specification, type \\[p4-change].\n\n change -- Create or edit a changelist description\n changelist -- synonym for 'change'\n\n p4 change [ -s ] [ -f | -u ] [ changelist# ]\n p4 change -d [ -f -s ] changelist#\n p4 change -o [ -s ] [ changelist# ]\n p4 change -i [ -s ] [ -f | -u ] \n\n 'p4 change' creates and edits changelists and their descriptions.\n With no argument, 'p4 change' creates a new changelist. If a\n changelist number is given, 'p4 change' edits an existing, pending\n changelist. In both cases the changelist specification is placed\n into a form and the user's editor is invoked.\n\n The -d flag discards a pending changelist, but only if it has no\n opened files and no pending fixes associated with it. Use 'p4\n opened -a' to report on opened files and 'p4 reopen' to move them\n to another changelist. Use 'p4 fixes -c changelist#' to report on\n pending fixes and 'p4 fix -d -c changelist# jobs...' to delete\n pending fixes. The changelist can only be deleted by the user and\n client who created it, or by using the -f flag.\n\n The -o flag causes the changelist specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a changelist specification to be read from the\n standard input. The user's editor is not invoked.\n\n The -f flag can force the update or deletion of other users' pending\n changelists. -f can also force the deletion of submitted changelists\n once they have been emptied of files via 'p4 obliterate'. Normally,\n submitted changelists are immutable. The -f flag requires 'admin'\n access granted by 'p4 protect'. The -f and -u flags are mutually\n exclusive.\n\n The -u flag can force the update of a submitted change by the owner\n of the change. Only the Jobs and Description fields can be changed\n using the -u flag. The -f and -u flags cannot be used in the same\n change command.\n\n The -s flag extends the list of jobs to include the fix status\n for each job. On new changelists, the fix status begins as the\n special status 'ignore', which if left unchanged simply excludes\n the job from those being fixed. Otherwise, the fix status, like\n that applied with 'p4 fix -s', becomes the job's status when\n the changelist is committed. Note that this option is not meant\n for end-users. It exists to support propagating information from\n an external defect tracking system.\n\n" nil] p4-client #[nil "\303\304\305\306!!\203\307\306!!\2026\n\203 \310\311\312\303\313#!\314 !\203/\315\313\303\316 $\2026\317\313\320\303 %*\207" [client-buf-name args current-prefix-arg nil "*P4 client*" buffer-live-p get-buffer switch-to-buffer-other-window p4-make-list-from-string p4-read-arg-string "p4 client: " "client" p4-cmd-line-flags p4-noinput-buffer-action t p4-async-process-command "\\(Description\\|View\\):\n "] 6 "To edit a client specification, type \\[p4-client].\n\n client -- Create or edit a client specification and its view\n workspace -- synonym for 'client'\n\n p4 client [ -f -t template ] [ name ]\n p4 client -d [ -f ] name\n p4 client -o [ -t template ] [ name ]\n p4 client -i [ -f ]\n\n With no argument 'p4 client' creates a new client view specification\n or edits an existing client specification. The client name is taken\n from the environment variable $P4CLIENT if set, or else from the\n current host name. The specification form is put into a temporary\n file and the editor (given by the environment variable $P4EDITOR)\n is invoked. If a name is given, the specification of the named\n client is used.\n\n The specification form contains the following fields:\n\n Client: The client name (read only.)\n\n Host: If set, restricts access to the named host.\n If unset, access is allowed from any host.\n\n Owner: The user who created this client. Can be changed.\n\n Update: The date this specification was last modified.\n\n Access: The date this client was last used in any way.\n\n Description: A short description of the client (optional).\n\n Root: The root directory of the client file workspace\n (given in local file system syntax), under which all\n client files will be placed. If you change this, you\n must physically relocate any files as well. The name\n \"null\" may be used to allow files to be mapped to\n multiple drives on Windows clients.\n\n AltRoots: Up to two optional alternate client workspace roots.\n The first of the main and alternate roots to match the\n client program's current working directory is used;\n if none matches the main root is used anyway.\n 'p4 info' reports the applicable root.\n\n Options: Flags to change the client behavior. The defaults\n are marked with *.\n\n allwrite Leaves all files writable on the client;\n noallwrite * else only checked out files are writable.\n\n clobber Allows 'p4 sync' to overwrite writable\n noclobber * files on the client.\n\n compress Compresses data sent between the client\n nocompress * and server to speed up slow connections.\n\n locked Allows only the client owner to use the\n unlocked * client or change its specification.\n Prevents the client from being deleted.\n\n modtime Causes 'p4 sync' to preserve file\n nomodtime * modification time from submitting client,\n as with files with +m type modifier.\n Otherwise modification time is left as\n when the file was fetched.\n\n rmdir Makes 'p4 sync' attempt to delete a client\n normdir * directory when all files are removed.\n\n SubmitOptions: Flags to change submit behaviour.\n\n submitunchanged All open files are submitted\n submitunchanged+reopen (default).\n\n revertunchanged Files that have content or type\n revertunchanged+reopen changes are submitted. Unchanged\n files are reverted.\n\n leaveunchanged Files that have content or type\n leaveunchanged+reopen changes are submitted. Unchanged\n files are moved to the default\n changelist.\n\n +reopen appended to the submit option flag\n will cause submitted files to be\n reopened on the default changelist.\n\n LineEnd: Set line ending character(s) for client text files.\n\n local Use mode native to the client (default).\n unix linefeed: UNIX style.\n mac carriage return: Macintosh style.\n win carriage return-linefeed: Windows style.\n share hybrid: writes UNIX style but reads UNIX,\n Mac or Windows style.\n\n View: A mapping from the files in the depot to files in the\n client workspace. This is the mechanism by which you\n select what files you want on your client and where you\n want them to be. The default view maps all depot files\n onto the client. See 'p4 help views' for view syntax.\n A new view takes effect on the next 'p4 sync'.\n\n Note: changing the client root does not actually move the client\n files; you must relocate them yourself. Similarly, changing\n the 'LineEnd' option does not actually update the client files;\n you can refresh them with 'p4 sync -f'.\n\n The -d flag causes the named client to be deleted, as long as it\n has no opened files. The -f forces the delete.\n\n The -o flag causes the named client specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a client specification to be read from the\n standard input. The user's editor is not invoked.\n\n The -t flag constructs the client's view by copying the named\n template client's view, instead of using the existing view or\n creating a new default view. It also copies the client options\n from the template client.\n\n The -f flag can force the updating of locked clients; normally\n locked clients can only be modified by their owner. -f also allows\n the last modified date to be set. The -f flag requires 'admin'\n access granted by 'p4 protect'.\n\n" nil] p4-clients #[nil "\300\301\302\303\302$\210\304\305!\210\306\305\307\310#\207" [p4-noinput-buffer-action "clients" nil t p4-make-basic-buffer "*P4 clients*" p4-regexp-create-links "^Client \\([^ ]+\\).*\n" client] 5 "To list all clients, type \\[p4-clients].\n\n clients -- Display list of clients\n workspaces -- synonym for 'clients'\n\n p4 clients [ -u user ] [ -m max ]\n\n Reports the list of all clients currently known to the system.\n\n The -u user flag limits clients to those owned by the named user.\n\n The -m max flag limits output to the first 'max' number of clients.\n\n" nil] p4-branch #[(args) "\203 \301C\232\203\302\303!\207\304!\203\305\306\307\310$\207\311\306\312\313\314!@\315Q\306%\207" [args #1="" error "Branch must be specified!" p4-cmd-line-flags p4-noinput-buffer-action "branch" nil t p4-async-process-command "Description:\n " "*P4 Branch: " reverse "*"] 6 "Edit a P4-BRANCH specification using \\[p4-branch].\n branch -- Create or edit a branch specification and its view\n\n p4 branch [ -f ] name\n p4 branch -d [ -f ] name\n p4 branch -o name\n p4 branch -i [ -f ]\n\n Create a new branch specification or edit an existing branch\n specification. The specification form is put into a temporary\n file and the editor (given by the environment variable $P4EDITOR)\n is invoked.\n\n The branch specification form contains the following fields:\n\n Branch: The branch name (read only.)\n\n Owner: The user who created this branch. Can be changed.\n\n Update: The date specification was last modified.\n\n Access: The date of the last 'integrate' using this branch.\n\n Description: A short description of the branch (optional).\n\n Options: Flags to change the branch behavior. The defaults\n are marked with *.\n\n locked Allows only the branch owner to change its\n unlocked * specification. Prevents the branch from\n being deleted.\n\n View: A mapping from the source files of the branch to the\n target files of the branch. Both the left and right\n hand sides of the mappings refer to the depot namespace.\n See 'p4 help views' for more on views.\n\n New branches are created with a default view that maps all depot\n files back into themselves. This view must be changed before the\n branch view is usable.\n\n A branch definition is used only by the 'p4 integrate' command.\n\n The -d flag deletes the named branch.\n\n The -o flag causes the named branch specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a branch specification to be read from the\n standard input. The user's editor is not invoked.\n\n The -f flag can force the deletion of any branch; normally branches\n can only be deleted by their owner. -f also allows the last modified\n date to be set. The -f flag requires 'admin' access granted by\n 'p4 protect'.\n\n" (list (p4-make-list-from-string (p4-read-arg-string "p4 branch: " nil "branch")))] p4-branches #[nil "\300\301\302\303\302$\210\304\305!\210\306\305\307\310#\207" [p4-noinput-buffer-action "branches" nil t p4-make-basic-buffer "*P4 branches*" p4-regexp-create-links "^Branch \\([^ ]+\\).*\n" branch] 5 "To list all branches, type \\[p4-branches].\n\n branches -- Display list of defined branches\n\n p4 branches [ -u user ] [ -m max ]\n\n Reports the list of all branches currently known to the system.\n Branches takes no arguments.\n\n The -u user flag limits branches to those owned by the named user.\n\n The -m max flag limits output to the first 'max' number of branches.\n\n" nil] p4-label #[(args) "\203 \301C\232\203\302\303!\207\304!\203\305\306\307\310$\207\311\306\312\313\314!@\315Q\306%\207" [args #1# error "label must be specified!" p4-cmd-line-flags p4-noinput-buffer-action "label" nil t p4-async-process-command "Description:\n " "*P4 label: " reverse "*"] 6 "Edit a P4-label specification using \\[p4-label].\n\n label -- Create or edit a label specification and its view\n\n p4 label [ -f -t template ] name\n p4 label -d [ -f ] name\n p4 label -o [ -t template ] name\n p4 label -i [ -f ]\n\n Create a new label specification or edit an existing label\n specification. A name is required. The specification form\n is put into a temporary file and the editor (given by the\n environment variable $P4EDITOR) is invoked.\n\n The label specification form contains the following fields:\n\n Label: The label name (read only.)\n\n Owner: The user who created this label. Can be changed.\n\n Update: The date this specification was last modified.\n\n Access: The date of the last 'labelsync' or use of '@label'\n on this label.\n\n Description: A short description of the label (optional).\n\n Options: Flags to change the label behavior.\n\n locked Allows only the label owner to change its\n specification. Prevents the label from\n being deleted. Prohibits 'p4 labelsync'.\n\n Revision: An optional revision specification for an automatic\n label. Note that this field must be quoted if it\n contains the # (form comment) character.\n\n View: A mapping to select files from the depot.\n The default view selects all depot files.\n See 'p4 help views', but note that only the\n left hand side of a mapping is used for labels.\n\n A label is a shorthand for referring to a collection of revisions.\n See 'p4 help revisions' for information on using labels. A label\n is either automatic or static. An automatic label refers to the\n revisions given in the View: and Revision: fields. A static label\n refers to the revisions associated with the label by the 'p4 tag'\n or 'p4 labelsync' commands. A static label cannot have a Revision:\n field.\n\n Flag -d causes the named label to be deleted, as long as it is\n not locked. The -f flag forces the delete.\n\n The -o flag causes the named label specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a label specification to be read from the\n standard input. The user's editor is not invoked.\n\n The -t flag constructs the label's view by copying the named\n template label's view, instead of using the existing view or\n creating a new default view. It also copies the label options\n from the template label.\n\n The -f flag can force the deletion of a label; normally locked\n labels can only be deleted by their owner. -f also allows the\n last modified date to be set. The -f flag requires 'admin' access\n granted by 'p4 protect'.\n\n" (list (p4-make-list-from-string (p4-read-arg-string "p4 label: " nil "label")))] p4-labels #[nil "\300\301\302\303\302$\210\304\305!\210\306\305\307\310#\207" [p4-noinput-buffer-action "labels" nil t p4-make-basic-buffer "*P4 labels*" p4-regexp-create-links "^Label \\([^ ]+\\).*\n" label] 5 "To display list of defined labels, type \\[p4-labels].\n\n labels -- Display list of defined labels\n\n p4 labels [ -u user ] [ -m max ] [ file[revrange] ]\n\n Reports the list of all labels currently known to the system.\n\n If files are specified, 'p4 labels' limits its report to labels\n that contain those files. Note that when a file specification\n is given no automatic labels will be displayed. If the file\n specification includes a revision range, 'p4 labels' limits its\n report to labels that contain those particular revisions. See\n 'p4 help revisions for help specifying revisions.\n\n The -u user flag limits labels to those owned by the named user.\n\n The -m max flag limits output to the first 'max' number of labels.\n\n" nil] p4-labelsync #[nil "\301\302\303!!\304\305\306\307$\210)\310\311!\207" [args p4-make-list-from-string p4-read-arg-string "p4 labelsync: " p4-noinput-buffer-action "labelsync" nil t p4-make-depot-list-buffer "*P4 labelsync*"] 5 "To synchronize a label with the current client contents, type \\[p4-labelsync].\n\n labelsync -- Synchronize label with the current client contents\n\n p4 labelsync [ -a -d -n ] -l label [ file[revRange] ... ]\n\n Labelsync causes the named label to reflect the current contents\n of the client. It records the last revision of each file taken\n onto the client. The label's name can subsequently be used in\n a revision specification as @label to refer to the revision of\n a file as stored in the label.\n\n Without a file argument, labelsync causes the label to reflect the\n contents of the whole client, by adding, deleting, and updating the\n label. If a file is given, labelsync updates only that named file.\n\n If the file argument includes a revision specification, then that\n revision is used instead of the revision taken by the client. If\n the revision specified is a deleted revision, then the label will\n include that deleted revision. See 'p4 help revisions' for help\n specifying revisions.\n\n If the file argument includes a revision range specification, then\n only files selected by the revision range are updated, and the\n highest revision in the range is used.\n\n The -a flag causes labelsync to add the named file to the label;\n no files will be deleted from the label.\n\n The -d deletes the named file from the label, regardless of revision.\n\n The -n flag lists how the label would be affected, but doesn't\n actually update the label.\n\n Only the owner of a label may run labelsync on that label.\n A label that has its Options: set to 'locked' cannot be updated.\n\n" nil]] 3)
(defalias 'p4-filter-out #[(pred lst) "\303 \203\n @!\204 @B A\211\204\304!)\207" [res lst pred nil reverse] 3])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\210\300\311\312\"\207" [defalias p4-submit #[(&optional arg) "\306\307\250\205\310\311\n!!\203\312\311\n!!\202U \203(\313\314 !D\2023\f\2033\315\316\317\306\"!\320\321 \"\322 \210 \203N\323 \203N\324\325!\210\326\327!\205U\330\331\332\n\333 %+\207" [arg change-list submit-buf-name args current-prefix-arg p4-check-empty-diffs nil "*P4 Submit*" buffer-live-p get-buffer switch-to-buffer-other-window "-c" int-to-string p4-make-list-from-string p4-read-arg-string "p4 submit: " p4-filter-out #[(x) "\301\230\207" [x "-c"] 2] p4-save-opened-files p4-empty-diff-p ding t yes-or-no-p "File with empty diff opened for edit. Submit anyway? " p4-async-process-command "change" "Description:\n " "submit"] 6 "To submit a pending change to the depot, type \\[p4-submit].\n\n submit -- Submit open files to the depot\n\n p4 submit [ -r -s -f option ]\n p4 submit [ -r -s -f option ] files\n p4 submit [ -r -f option ] -d description\n p4 submit [ -r -f option ] -d description files\n p4 submit [ -r -f option ] -c changelist#\n p4 submit -i [ -r -s -f option ]\n\n 'p4 submit' commits a pending changelist and its files to the depot.\n\n With no argument 'p4 submit' attempts to submit all files in the\n 'default' changelist. Submit provides the user with a dialog\n similar to 'p4 change' so the user can compose a changelist\n description. In this dialog the user is presented with the list\n of files open in changelist 'default'. Files may be deleted from\n this list but they cannot be added. (Use an open command (edit,\n add, delete) to add additional files to a changelist.)\n\n If a (single) file pattern is given, only those files in\n the 'default' changelist that match the pattern will be submitted.\n\n The -c flag submits the numbered pending changelist that has been\n previously created with 'p4 change' or a failed 'p4 submit'.\n\n The -d flag allows a description to be passed into submit rather\n than using a numbered changelist or engaging in a change description\n dialog. This option is useful when scripting but does not allow for\n jobs to be added or the default changelist to be modified.\n\n The -f flag allows a submit option to be passed into submit which\n will override the one that is set in the client. See 'p4 help client'\n for valid submit options.\n\n The -i flag causes a changelist specification (including files to be\n submitted) to be read from the standard input. The user's editor\n is not invoked.\n\n The -r flag allows submitted files to remain open (on the client's\n default changelist) after the submit has completed.\n\n The -s flag extends the list of jobs to include the fix status\n for each job, which becomes the job's status when the changelist\n is committed. See 'p4 help change' for more notes on this option.\n\n Before committing a changelist submit locks all associated files not\n already locked. If any file cannot be locked, or if the submit\n fails for any other reason the files are left open in a newly\n created pending changelist.\n\n Submit is guaranteed to be atomic. Either all files will be\n updated in the depot as a unit or none will be.\n\n" "P"] p4-user #[nil "\302 \203\303\304\305\302\306#!\307!\203\310\306\302\311$\202$\312\306\302\211\211%)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 user: " "user" p4-cmd-line-flags p4-noinput-buffer-action t p4-async-process-command] 6 "To create or edit a user specification, type \\[p4-user].\n\n user -- Create or edit a user specification\n\n p4 user [ -f ] [ name ]\n p4 user -d [ -f ] name\n p4 user -o [ name ]\n p4 user -i [ -f ]\n\n Create a new user specification or edit an existing user\n specification. The specification form is put into a temporary\n file and the editor (given by the environment variable $P4EDITOR)\n is invoked.\n\n Normally, a user specification is created automatically the\n first time the user invokes any client command that can update\n the depot. The 'p4 user' command is generally used to edit the\n user's reviewing subscription list for change review.\n\n The user specification form contains the following fields:\n\n User: The user name (read only).\n\n Email: The user's email address (user@client default).\n\n Update: The date the specification was last modified (read only).\n\n Access: The date the user last issued a client command.\n\n FullName: The user's real name.\n\n JobView: Selects jobs to be presented at changelist creation.\n These are the jobs that can be closed automatically\n upon changelist submission. See 'p4 help jobview'\n for a description of jobview syntax.\n\n Reviews: The subscription list for change review. You may\n use wildcards:\n ... matches any characters including /\n * matches any character except /\n There may be any number of review lines.\n\n Password: The user's password. See also 'p4 help passwd'.\n\n The -d flag deletes the named user, but only if the user has no\n opened files.\n\n The -o flag causes the named user specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a user specification to be read from the\n standard input. The user's editor is not invoked.\n\n The -f flag can force the creation, update or deletion of any\n named user, or to change the last modified date. By default,\n users can only delete or modify their own user specifications.\n The -f flag requires 'super' access granted by 'p4 protect'.\n\n" nil] p4-group #[nil "\302 \203\303\304\305\302\306#!\307!\203\310\306\302\311$\202$\312\306\302\211\211%)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 group: " "group" p4-cmd-line-flags p4-noinput-buffer-action t p4-async-process-command] 6 "To create or edit a group specification, type \\[p4-group].\n\n group -- Change members of user group\n\n p4 group [ -a ] name\n p4 group -d [ -a ] name\n p4 group -o name\n p4 group -i [ -a ]\n\n Create a new user group or add/delete members from an existing\n group. A group's members can be users and/or other groups\n (subgroups). The group specification form is put into a temporary\n file and the editor (given by the environment variable $P4EDITOR)\n is invoked.\n\n A group exists when it has any users or other groups in it, and\n ceases to exist if all users and groups in it are removed.\n\n Each group has MaxResults and MaxScanRows fields, which limit\n the data size for operations that the users in that group can\n perform. For either field, 'unlimited' means no limit for that\n group. An individual user's limit is the highest of any group\n with a limit to which he belongs, or unlimited if he belongs to\n no group with a limit. See 'p4 help maxresults' for more\n information on MaxResults and MaxScanRows.\n\n Each group also has a Timeout field which represents the time\n (in seconds) of how long a 'p4 login' ticket remains valid. Note\n a value of zero is equivalent to no timeout. See 'p4 help login'\n for more information.\n\n The -d flag deletes all users and groups from the named group, thus\n deleting the whole group.\n\n The -o flag causes the named group specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a group specification to be read from the\n standard input. The user's editor is not invoked. The new\n group specification entirely replaces the previous.\n\n The -a flag allows a user without 'super' access to modify the group\n only if that user is an 'owner' of that group. Group owners\n are specified in the 'Owners' field of the group spec.\n\n All commands that require access granted by 'p4 protect' consider\n a user's groups when calculating access levels.\n\n 'p4 group' requires 'super' access granted by 'p4 protect' unless\n invoked with the '-a' flag by a qualified user.\n\n" nil] p4-job #[nil "\302 \203\303\304\305\302\306#!\307!\203\310\306\302\311$\202$\312\306\313\302\211%)\207" [args current-prefix-arg nil p4-make-list-from-string p4-read-arg-string "p4 job: " "job" p4-cmd-line-flags p4-noinput-buffer-action t p4-async-process-command "Description:\n "] 6 "To create or edit a job, type \\[p4-job].\n\n job -- Create or edit a job (defect) specification\n\n p4 job [ -f ] [ jobName ]\n p4 job -d jobName\n p4 job -o [ jobName ]\n p4 job -i [ -f ]\n\n 'p4 job' creates and edits job specifications using an ASCII form.\n A job is a defect, enhancement, or other unit of intended work.\n The 'p4 fix' command can associate changelists with jobs.\n\n With no arguments, 'p4 job' creates a blank job specification form\n and invokes the user's editor. When the form is saved, a job name\n of the form jobNNNNNN is created. If a jobName is given on the\n command line either that named job will be created or, if the job\n already exists, the job can be modified.\n\n As jobs are entered or updated, all fields are indexed for\n searching by 'p4 jobs'. Text fields are broken into individual\n alphanumeric words (punctuation and whitespace are ignored) and\n each word is entered, case folded, into the word index. Date\n fields are converted to an internal representation (seconds\n since 1970/01/01 00:00:00) and entered into the date index.\n\n The fields of a job are defined by the 'p4 jobspec' command.\n There is a simple default jobspec that is used if no explicit\n one has been defined.\n\n The -d flag deletes the named job, but only if it has no\n no pending or submitted fixes associated with it.\n\n The -o flag causes the named job specification to be written\n to the standard output. The user's editor is not invoked.\n\n The -i flag causes a job specification to be read from the\n standard input. The user's editor is not invoked.\n\n The -f flag allows otherwise read-only fields to be set. The -f\n flag requires 'admin' access granted by 'p4 protect'.\n\n" nil] p4-jobspec #[nil "\300\301!\207" [p4-async-process-command "jobspec"] 2 "To edit the job template, type \\[p4-jobspec].\n\n jobspec -- Edit the job template\n\n p4 jobspec\n p4 jobspec -o\n p4 jobspec -i\n\n Jobspec edits the template that specifies the format of jobs.\n This format is used by 'p4 job' when jobs are entered or updated,\n and by 'p4 jobs' and 'p4 describe' when jobs are displayed.\n\n Jobspec brings up a form with the following fields:\n\n Fields: A list of the fields maintained for each job, one\n line per field. Each line has five words: code, name,\n data-type, len, and field-type.\n\n 'code' is a unique integer identifier for storing\n the data of the field. Job codes must be between\n 101 and 199.\n\n 'name' is the name of the field for the job.\n\n 'data-type' indicates the format of the field:\n\n word: a single word (any value)\n date: a date/time field\n select: one of a set of words\n line: a one-liner\n text: a block of text\n\n 'len' is the recommended character length of a\n display box for the field. If 0, a text box is\n assumed.\n\n 'field-type' indicates how to handle the setting of\n the field:\n\n optional: no default, and not required to be present\n default: default provided, still not required\n required: default provided, value must be present\n once: set once to the default and never changed\n always: always set to the default when saving the\n form, adding or deleting fixes with 'p4 fix'\n or 'p4 changelist', or submitting a change\n associated with the job with 'p4 submit'.\n\n Values: A list of 'select' fields and the values those fields\n can have. Each line has two words: the field name and\n the values list, with individual values separated by\n '/' (no spaces).\n\n Presets: A list of fields and their default values, for fields\n whose 'setting' flag is other than 'optional'. Each\n line has two words: the field name and the default\n value. If the value has spaces, it must be enclosed\n in double quotes. The following special defaults are\n recognized:\n\n $user: the user entering the job\n $now: the current date\n $blank: the words '<enter description here>'\n\n Comments: textual comments to be included at the top of each\n job specification, to help the user fill out the form.\n Each line must begin with the comment character '#'.\n\n Certain field codes have special significance:\n\n code 101, required: the job name\n code 102, optional: the job status\n code 103, optional: the user who created the job\n code 104, optional: the date the job was created\n code 105, optional: the description\n\n If there is a job status field (102), 'p4 submit' and 'p4 fix'\n will set it to 'closed' for any jobs being fixed by the change.\n\n Fields 102-105 are used by 'p4 describe' and 'p4 jobs' to\n display a job summary. Any missing fields simply will not\n appear in the summary line.\n\n If field 105 is present, it is assumed to be a description,\n which is used by 'p4 change' and 'p4 submit' to annotate the\n list of jobs to be fixed by the change being created.\n\n When updating the jobspec after jobs have been entered, certain\n limitations apply:\n\n Data is stored according to its code. Fields can be renamed\n by keeping the same code. Removing a code can abandon the\n associated data stored for the code.\n\n Changing the definition of a code (e.g. from 'text' to 'word')\n can require users to bring jobs into the new format as they\n are edited.\n\n The -o flag causes the job template to be written to the standard\n output. The user's editor is not invoked.\n\n The -i flag causes a job template to be read from the standard\n input. The user's editor is not invoked.\n\n 'p4 jobspec' requires 'admin' access granted by 'p4 protect'.\n\n" nil]] 3)
#@502 To set the current value of P4CLIENT, type \[p4-set-client-name].
This will change the current client from the previous client to the new
given value.
Setting this value to nil would disable P4 Version Checking.
`p4-set-client-name' will complete any client names set using the function
`p4-set-my-clients'. The strictness of completion will depend on the
variable `p4-strict-complete' (default is t).
Argument P4-NEW-CLIENT-NAME The new client to set to. The default value is
the current client.
(defalias 'p4-set-client-name #[(p4-new-client-name) "\203\n\301\232\203\302\303\304\"\210\305\306!?\205'\307\310!\207\302\303\"\210\307\311\"\210\312\313!\207" [p4-new-client-name "nil" setenv "P4CLIENT" nil getenv "P4CONFIG" message "P4 Version check disabled. Set a valid client name to enable." "P4CLIENT changed to %s" run-hooks p4-set-client-hooks] 3 (#$ . 138505) (list (completing-read "Change Client to: " (if p4-my-clients p4-my-clients 'p4-clients-completion) nil p4-strict-complete (p4-current-client)))])
#@178 To get the current value of the environment variable P4CONFIG,
type \[p4-get-client-config].
This will be the current configuration that is in use for access through
Emacs P4.
(defalias 'p4-get-client-config #[nil "\300\301\302\303!\"\207" [message "P4CONFIG is %s" getenv "P4CONFIG"] 4 (#$ . 139539) nil])
#@341 To set the P4CONFIG variable, for use with the current versions of the p4
client.
P4CONFIG is a more flexible mechanism wherein p4 will find the current
client automatically by checking the config file found at the root of a
directory (recursing all the way to the top).
In this scenario, a P4CLIENT variable need not be explicitly set.

(defalias 'p4-set-client-config #[(p4config) "\203\n\301\232\203\302\303!\207\304\305\"\210\302\306\"\207" [p4config "" message "P4CONFIG not changed." setenv "P4CONFIG" "P4CONFIG changed to %s"] 3 (#$ . 139854) "sP4 Config: "])
#@575 To set the client completion list used by `p4-set-client-name', use
this function in your .emacs (or any lisp interaction buffer).
This will change the current client list from the previous list to the new
given value.
Setting this value to nil would disable client completion by
`p4-set-client-name'.
The strictness of completion will depend on the variable
`p4-strict-complete' (default is t).
Argument CLIENT-LIST is the 'list' of clients.
To set your clients using your .emacs, use the following:
(load-library "p4")
(p4-set-my-clients '(client1 client2 client3))
(defalias 'p4-set-my-clients #[(client-list) "\303\211\n\205\304\305\n@\"\nA\306 CC\"\202)\207" [p4-my-clients p4-tmp-client-var client-list nil format "%s" append] 4 (#$ . 140437)])
#@168 To get the current value of the environment variable P4PORT, type \[p4-get-p4-port].
This will be the current server/port that is in use for access through Emacs
P4.
(defalias 'p4-get-p4-port #[nil "\301 \302\303\304\305!#\210)\207" [port p4-current-server-port message "P4PORT is [local: %s], [global: %s]" getenv "P4PORT"] 5 (#$ . 141211) nil])
#@253 To set the current value of P4PORT, type \[p4-set-p4-port].
This will change the current server from the previous server to the new
given value.
Argument P4-NEW-P4-PORT The new server:port to set to. The default value is
the current value of P4PORT.
(defalias 'p4-set-p4-port #[(p4-new-p4-port) "\203\n\301\232\203\302\303\304\"\210\305\306!?\205#\307\310!\207\302\303\"\210\307\311\"\207" [p4-new-p4-port "nil" setenv "P4PORT" nil getenv "P4CONFIG" message "P4 Version check disabled. Set a valid server:port to enable." "P4PORT changed to %s"] 3 (#$ . 141569) (list (let ((symbol (read-string "Change server:port to: " (getenv "P4PORT")))) (if (equal symbol "") (getenv "P4PORT") symbol)))])
#@73 To check while loading the file, if it is a P4 version controlled file.
(defalias 'p4-find-file-hook #[nil "\300\301!\204\f\300\302!\205\303 \207" [getenv "P4CONFIG" "P4CLIENT" p4-detect-p4] 2 (#$ . 142279)])
#@44 Refresh the list of files to be refreshed.
(defalias 'p4-refresh-refresh-list #[(buffile bufname) "\306 D\n\"\211?\205) \203\307\f!\203\310\f!\210 \203&\f\203&\311\f!\210\312\211\207" [buffile bufname p4-all-buffer-files p4-running-emacs p4-file-refresh-timer p4-running-xemacs delete timerp cancel-timer disable-timeout nil] 4 (#$ . 142497)])
#@37 The Prefix for P4 Library Commands.
(defvar p4-prefix-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\302\335\336#\210\302\337\340#\210\302\341\342#\210\302\343\344#\210\302\345\346#\210\302\347\350#\210\302\351\352#\210\302\353\354#\210\302\355\356#\210\302\357\360#\210\302\361\362#\210\302\363\364#\210\302\365\366#\210\302\367\370#\210\302\371\372#\210\302\373\374#\210\302\375\376#\210\302\377\201@#\210\302\201A\201B#\210\302\201C\201D#\210\302\201E\201F#\210\302\201G\201H#\210\302\201I\201J#\210\302\201K\201L#\210\302\201M\201N#\210\302\201O\201P#\210\302\201Q\201R#\210\302\201S\201T#\210\302\201U\201V#\210\302\201W\201X#\210\302\201Y\201Z#\210\302\201[\201\\#\210)\207" [map make-sparse-keymap define-key "a" p4-add "b" p4-bug-report "B" p4-branch "c" p4-client "C" p4-changes "d" p4-diff2 "D" p4-describe "e" p4-edit "E" p4-reopen "" p4-depot-find-file "f" p4-filelog "F" p4-files "g" p4-get-client-name "G" p4-get "h" p4-help "H" p4-have "i" p4-info "I" p4-integ "j" p4-job "J" p4-jobs "l" p4-label "L" p4-labels "\f" p4-labelsync "m" p4-rename "n" p4-notify "o" p4-opened "p" p4-print "P" p4-set-p4-port "q" p4-pop-window-config "r" p4-revert "R" p4-refresh "" p4-resolve "s" p4-set-client-name "S" p4-submit "t" p4-toggle-vc-mode "u" p4-user "U" p4-users "v" p4-emacs-version "V" p4-blame "w" p4-where "x" p4-delete "X" p4-fix "=" p4-diff "-" p4-ediff "?" p4-describe-bindings] 4) (#$ . 142857))
(byte-code "\302\303\304\"!\204\305\304 #\210\302\207" [global-map p4-prefix-map keymapp lookup-key "p" define-key] 4)
#@355 To set the current value of P4NOTIFY, type \[p4-set-notify-list].
This will change the current notify list from the existing list to the new
given value.
An empty string will disable notification.
Argument P4-NEW-NOTIFY-LIST is new value of the notification list.
Optional argument P4-SUPRESS-STAT when t will suppress display of the status
message. 
(defalias 'p4-set-notify-list #[(p4-new-notify-list &optional p4-supress-stat) "\305\306\n\"\210\n\n??\f?\205\307\310 #)\207" [p4-notify-list p4-old-notify-list p4-new-notify-list p4-notify p4-supress-stat setenv "P4NOTIFY" message "Notification list changed from '%s' to '%s'"] 4 (#$ . 144673) (list (let ((symbol (read-string "Change Notification List to: " p4-notify-list))) (if (equal symbol "") nil symbol)))])
#@208 To get the current value of the environment variable P4NOTIFY,
type \[p4-get-notify-list].
This will be the current notification list that is in use for mailing
change notifications through Emacs P4.
(defalias 'p4-get-notify-list #[nil "\301\302\"\207" [p4-notify-list message "P4NOTIFY is %s"] 3 (#$ . 145457) nil])
#@549 To notify a list of users of a change submission manually, type
\[p4-notify].
To do auto-notification, set the notification list with `p4-set-notify-list'
and on each submission, the users in the list will be notified of the
change.
Since this uses the sendmail program, it is mandatory to set the correct
path to the sendmail program in the variable `p4-sendmail-program'.
Also, it is mandatory to set the user's email address in the variable
`p4-user-email'.
Argument USERS The users to notify to. The default value is the notification
list.
(defalias 'p4-notify #[(users) "\303\304\"\210 \203\n\203\305 \207\306\307!\207" [users p4-sendmail-program p4-user-email p4-set-notify-list t p4-do-notify message "Please set p4-sendmail-program and p4-user-email variables."] 3 (#$ . 145789) (list (let ((symbol (read-string "Notify whom? " p4-notify-list))) (if (equal symbol "") nil symbol)))])
#@67 This is the internal notification function called by `p4-notify'.
(defalias 'p4-do-notify #[nil "\212\203\214\306\232\204\214\212\307 !q\210eb\210\310\311d\312#\203|\313\314\315!\315\316O\307\317!q\210ed|\210\320ed\321 \312\211\313\322 \323\324\n& \210\325\317!\210eb\210\313\310\326d\312#\203V\314\315!\202Z\327\nPeb\210\330 \331\332\333\f\331\261\210\320ed!\312\211\313\334\335& \210\336\313!*\202\210\212\307 !q\210db\210\337c))\202\230\212\307 !q\210db\210\340c))\207" [p4-notify-list p4-output-buffer-name p4-matched-change default-directory p4-chg-desc p4-user-email "" get-buffer-create re-search-forward "[0-9]+.*submitted" t nil match-string 0 -10 "*P4 Notify*" call-process-region p4-check-p4-executable "-d" "describe" "-s" switch-to-buffer "^Change.*$" "Notification of Change " "From: " "\n" "To: P4 Notification Recipients:;\n" "Subject: " "-odi" "-oi" kill-buffer "\np4-do-notify: No Change Submissions found." "\np4-do-notify: Notification list not set." p4-sendmail-program] 12 (#$ . 146696)])
#@50 Return the current Emacs-P4 Integration version.
(defalias 'p4-emacs-version #[nil "\302\205\303\304P \"\207" [p4-running-xemacs p4-emacs-version message "X" "Emacs-P4 Integration v%s"] 3 (#$ . 147730) nil])
(defalias 'p4-find-p4-config-file #[nil "\306\307!\310 \203\311\312\310 !!\202\312!\211\205D\313\211\f\204B \204B\311\314 !!\315 \nP!\2038 \nP \230 )\202\f**\207" [default-directory p4-cfg-dir p4config at-root found parent-dir getenv "P4CONFIG" p4-buffer-file-name file-name-directory file-truename nil directory-file-name file-exists-p] 5])
(defalias 'p4-detect-p4 #[nil "\203 \301 \205 \302 \207" [p4-use-p4config-exclusively p4-find-p4-config-file p4-check-mode] 1])
(defalias 'p4-get-add-branch-files #[(&optional name-list) "\304\305\"\306\211\212 q\210eb\210\307\310\306\311#\203#\312\313!\314B\nB\202eb\210\307\315\306\311#\2039\312\313!\316B\nB\202&)\317 !\210\320\321\322\n\"!\321\323\n\"+\207" [name-list depot-map files output-buffer p4-depot-output "opened" nil re-search-forward "^\\(//[^/@#]+/[^#\n]*\\)#[0-9]+ - add " t match-string 1 "Add" "^\\(//[^/@#]+/[^#\n]*\\)#[0-9]+ - branch " "Branch" kill-buffer p4-map-depot-files mapcar car #[(x) "\302@ \"AAB\207" [x depot-map assoc] 3]] 4])
(defalias 'p4-get-have-files #[(file-list) "\306\307\"\310\211\211\211\311 !\211\203+\312\313\f\"\203 \314\315\f\"\314\316\f\"B B\202 \317 !\210\320\321\322 \"!\321\323 \"\203U@A\324 \"\204; \310B B\202; -\207" [file-list elt depot-map files line output-buffer p4-depot-output "have" nil p4-read-depot-output string-match "^\\(//[^/@#]+/[^#\n]*\\)#\\([0-9]+\\) - " match-string 1 2 kill-buffer p4-map-depot-files mapcar car #[(x) "\302@ \"AAB\207" [x depot-map assoc] 3] assoc] 5])
#@68 If a file is controlled by P4 then return version else return nil.
(defalias 'p4-is-vc #[(&optional file-mode-cache filename) "\204\306 \307\211\310 \"\211\fA) \204@\203@\311\312C\"\307\313!\314!\210\315\316 \"\203=\317\320 \"\n* \204W \204W\321\205OC!\310 \"A\n*\207" [filename done version file-mode-cache el line p4-buffer-file-name nil assoc p4-depot-output "have" p4-read-depot-output kill-buffer string-match "^//[^/@#]+/[^#\n]*#\\([0-9]+\\) - " match-string 1 p4-get-add-branch-files output-buffer] 4 (#$ . 149494)])
#@149 Check to see whether we should export the menu map to this buffer.
Turning on P4 mode calls the hooks in the variable `p4-mode-hook' with
no args.
(defalias 'p4-check-mode #[(&optional file-mode-cache) "\306 \205e\307\n!\211\203\310 \210\311 P\312 \210\313 \314  \2032 \fD\235\2042\315\316 \fD\"\210*\204\\\317U\204\\\203M\320\306\321#\202Z\205Z\322\321\306$ \203d\323\324!\210 \207" [p4-mode p4-do-find-file file-mode-cache p4-vc-check bufname buffile nil p4-is-vc p4-menu-add " P4:" p4-force-mode-line-update p4-buffer-file-name buffer-name add-to-list p4-all-buffer-files 0 run-at-time p4-refresh-files-in-buffers add-timeout run-hooks p4-mode-hook p4-file-refresh-timer p4-file-refresh-timer-time p4-running-emacs p4-running-xemacs] 6 (#$ . 150058)])
#@125 Check to see if all the files that are under P4 version control are
actually up-to-date, if in buffers, or need refreshing.
(defalias 'p4-refresh-files-in-buffers #[(&optional arg) "\306\211\211\f\205x\f@\fA @ \211A@)\307\310\n!!\203p\212\310\n!\211q\210\203T\311!\204e\312!\204e\313 !\203N\314\315\211\"\210\202e\316 \210\202e\313 !\203b\317 \315\"\210\202e\316 \210\320\321 !?*\202\322 \n\"\210\202,\207" [p4-all-buffer-files thiselt bufname buffile p4-all-my-files x nil buffer-live-p get-buffer buffer-modified-p verify-visited-file-modtime file-readable-p revert-buffer t p4-check-mode find-file-noselect file-writable-p p4-buffer-file-name p4-refresh-refresh-list buf p4-auto-refresh buffer-read-only] 5 (#$ . 150855) nil])
#@61 Call p4-check-mode for all buffers under P4 version control
(defalias 'p4-check-mode-all-buffers #[nil "\306\211\211\211\211\203\203\307\310 \311\312\313 \"!\" \205Q @ A\n@\n\211A@)\314\315 !!\203I\212\315 !q\210\316 !\210)\202\317\f \"\210\202-\207" [p4-all-buffer-files file-mode-cache thiselt bufname buffile p4-all-my-files nil append p4-get-add-branch-files p4-get-have-files mapcar car buffer-live-p get-buffer p4-check-mode p4-refresh-refresh-list p4-do-find-file x] 7 (#$ . 151625)])
#@63 To Force the mode line update for different flavors of Emacs.
(defalias 'p4-force-mode-line-update #[nil "\203\302 \207 \205 \303 \207" [p4-running-xemacs p4-running-emacs redraw-modeline force-mode-line-update] 1 (#$ . 152148)])
#@115 In case, the P4 server is not available, or when working off-line, toggle
the VC check on/off when opening files.
(defalias 'p4-toggle-vc-mode #[nil "?\301\302\203 \303\202\304P!\207" [p4-do-find-file message "P4 mode check " "enabled." "disabled."] 3 (#$ . 152389) nil])
#@271 If p4-mode is non-nil, \[p4-toggle-read-only] toggles between `p4-edit'
and `p4-revert'. If ARG is non-nil, p4-offline-mode will be enabled for this
buffer before the toggling takes place. In p4-offline-mode, toggle between
making the file writable and write protected.
(defalias 'p4-toggle-read-only #[(&optional arg) "\203\f \203\f\306\307 \203 \203\310\f!\207\311\f!\207\n\205G\312 \210 \205G\313 ! \203:\314\315\"\202A\316\317\"\320 \")\207" [arg p4-mode p4-offline-mode buffer-read-only p4-verbose buffer-file-name nil t p4-edit p4-revert toggle-read-only file-modes logand -129 logior 128 set-file-modes mode] 3 (#$ . 152674) "P"])
#@28 Browse the p4.el web page.
(defalias 'p4-browse-web-page #[nil "\301\302!\210\302!\207" [p4-web-page require browse-url] 2 (#$ . 153343) nil])
(defalias 'p4-bug-report #[nil "\306\307\310 \"\203\311\312\313\314 P#\210\202\315\313\314 P\"\210eb\210\316\317\320 !\321Q!\210\322\323\261\210\310 \323Pc\210\324c\210\212\325\n\203A\326\202F \205F\327!\211\205i\312d\212\fq\210 b\210\330y\210`)\331c\210\332\f #**\207" [p4-emacs-maintainer mail-header-separator p4-running-xemacs p4-running-emacs message-buf end-pos string-match " 19\\." emacs-version mail nil "BUG REPORT: " p4-emacs-version compose-mail re-search-forward "^" regexp-quote "\n" "This bug report will be sent to the P4-Emacs Integration Maintainer,\n" "\n\n" "A brief description of the problem and how to reproduce it:\n" get-buffer " *Message-Log*" "*Messages*" -10 "\n\nRecent messages:\n" insert-buffer-substring beg-pos] 6 nil nil])
#@59 A function to list the key bindings for the p4 prefix map
(defalias 'p4-describe-bindings #[nil "\212\305 \210\306 \307\310!\210\n\203\"q\210ed|\210\311c\210\312 !\210\2025\f\2035\313!\210\314\315!\210\316q\210\317!\210\320 \321\322#\210\323 !\210\324!+\207" [p4-bindings-buffer map p4-running-xemacs p4-prefix-map p4-running-emacs p4-push-window-config make-sparse-keymap "*P4 key bindings*" get-buffer-create "Key Bindings for P4 Mode\n------------------------\n" describe-bindings-internal kill-buffer describe-bindings "p" "*Help*" rename-buffer define-key "q" p4-quit-current-buffer use-local-map display-buffer] 4 (#$ . 154270) nil])
(defalias 'p4-make-list-from-string #[(str) "\302\303\304 \"\204\303\305 \"\204\303\306 \"\203)\307\310\311 \"C\" \312\225\302O\202)\207" [lst str nil string-match "^ *\"\\([^\"]*\\)\"" "^ *'\\([^']*\\)'" "^ *\\([^ ]+\\)" append match-string 1 0] 5])
(defalias 'p4-list-to-string #[(lst) "\301\302\303#\207" [lst mapconcat #[(x) "\207" [x] 1] " "] 4])
(defalias 'p4-buffer-file-name-2 #[nil "\300 \2068\301`\302\"\2068\301`\303\"\2068\301`\304\"\2068\301`\305\"\2068\306\307!\2037\307\310\311\"\2037\312\307\310\311\"!\2068\310\207" [p4-buffer-file-name get-char-property link-client-name link-depot-name block-client-name block-depot-name fboundp dired-get-filename nil t p4-follow-link-name] 4])
(defalias 'p4-buffer-file-name #[nil "\203\301!\207\302\207" [buffer-file-name p4-follow-link-name nil] 2])
(defalias 'p4-follow-link-name #[(name) "\302\203 \303 !\202\f !\207" [p4-follow-symlinks name p4-cygpath file-truename] 3])
(defalias 'p4-cygpath #[(name) "\303>\203\304\305\306\307 \n#!\310\311#\207\n\207" [system-type p4-cygpath-exec name (cygwin32) replace-in-string exec-to-string format "%s -w %s" "\n" ""] 6])
#@33 History for p4-depot filespecs.
(defvar p4-depot-filespec-history nil (#$ . 156082))
#@110 Cache for `p4-depot-completion'.
It is a list of lists whose car is a filespec and
cdr is the list of anwers
(defvar p4-depot-completion-cache nil (#$ . 156174))
#@25 History for p4 clients.
(defvar p4-branches-history nil (#$ . 156342))
#@111 Cache for `p4-depot-completion'.
It is a list of lists whose car is a client and
cdr is the list of answers??
(defvar p4-branches-completion-cache nil (#$ . 156420))
#@25 History for p4 clients.
(defvar p4-clients-history nil (#$ . 156592))
#@111 Cache for `p4-depot-completion'.
It is a list of lists whose car is a client and
cdr is the list of answers??
(defvar p4-clients-completion-cache nil (#$ . 156669))
#@108 Cache for `p4-depot-completion'.
It is a list of lists whose car is a job and
cdr is the list of answers??
(defvar p4-jobs-completion-cache nil (#$ . 156841))
#@25 History for p4 clients.
(defvar p4-labels-history nil (#$ . 157006))
#@110 Cache for `p4-depot-completion'.
It is a list of lists whose car is a label and
cdr is the list of answers??
(defvar p4-labels-completion-cache nil (#$ . 157082))
#@109 Cache for `p4-depot-completion'.
It is a list of lists whose car is a user and
cdr is the list of answers??
(defvar p4-users-completion-cache nil (#$ . 157252))
#@110 Cache for `p4-depot-completion'.
It is a list of lists whose car is a group and
cdr is the list of answers??
(defvar p4-groups-completion-cache nil (#$ . 157420))
#@34 History for p4 command arguments
(defvar p4-arg-string-history nil (#$ . 157589))
#@325 Look into `p4-depot-completion-cache' for filespec.
Filespec is the candidate for completion, so the
exact file specification is "filespec*".
If found in cache, return a list whose car is FILESPEC and cdr is the list
of matches.
If not found in cache, return nil.
So the 'no match' answer is different from 'not in cache'.
(defalias 'p4-depot-completion-search #[(filespec cmd) "\306\232\203\n \202E\307\232\203\n\202E\310\232\203 \202E\311\232\203(\f\202E\312\232\2032 \202E\313\232\203=\202E\314\232\205E\315\211\203s\204s\203e\316\315\317#\202q\205q\320\317\315\211$\203\323\321\322@@\323Q\"\203\312@@\230\203\231@A\202\300@A\211\203\300\321\322P@\"\203\267@BA\211\204\243\315BA\211\204x+\207" [cmd p4-branches-completion-cache p4-clients-completion-cache p4-depot-completion-cache p4-jobs-completion-cache p4-labels-completion-cache "branches" "clients" "dirs" "jobs" "labels" "users" "groups" nil run-at-time p4-cache-cleanup add-timeout string-match "^" "[^/]*$" p4-users-completion-cache p4-groups-completion-cache list dir l p4-cleanup-cache p4-timer p4-running-emacs p4-cleanup-time p4-running-xemacs filespec] 6 (#$ . 157678)])
#@36 Cleanup all the completion caches.
(defalias 'p4-cache-cleanup #[(&optional arg) "\306\307!\210\310\211\310\211\310\211\310 \203$\311!\203$\312!\210\2033\2033\313!\210\310\306\314!\207" [p4-branches-completion-cache p4-clients-completion-cache p4-depot-completion-cache p4-jobs-completion-cache p4-labels-completion-cache p4-users-completion-cache message "Cleaning up the p4 caches ..." nil timerp cancel-timer disable-timeout "Cleaning up the p4 caches ... done." p4-groups-completion-cache p4-running-emacs p4-timer p4-running-xemacs] 3 (#$ . 158928)])
#@38 Cleanup a specific completion cache.
(defalias 'p4-partial-cache-cleanup #[(type) "\306\230\203\n\307\211\207\310\230\203\307\211\207\311\230\204 \312\230\203$\307\211\207\313\230\203.\307\211\207\314\230\2038\307\211\207\315\230\203C\307\211\207\316\230\205M\307\211\207" [type p4-branches-completion-cache p4-clients-completion-cache p4-depot-completion-cache p4-jobs-completion-cache p4-labels-completion-cache "branch" nil "client" "submit" "change" "job" "label" "user" "group" p4-users-completion-cache p4-groups-completion-cache] 2 (#$ . 159515)])
#@178 Reads first line of BUFFER and returns it.
Read lines are deleted from buffer.
If optional REGEXP is passed in, return the substring of the first line that
matched the REGEXP.
(defalias 'p4-read-depot-output #[(buffer &optional regexp) "\212q\210eb\210\303y\210e`{\211\304\230?\205Ae`|\210\n\203+\305\n \"\203+ \306\224\306\225O \211GS GO\307\232\203@ \310 GSO\202A *\207" [buffer line regexp nil "" string-match 1 "\n" 0] 4 (#$ . 160103)])
(defalias 'p4-completion-helper #[(filespec cmd var regexp) "\306\211\211\307\310 \"\210\311 !\312\n\f\"\211\203# \203 B\202\313\n!\210  B\314 !BL\210+\207" [list line output-buffer cmd regexp var nil message "Making %s completion list..." p4-depot-output p4-read-depot-output kill-buffer eval filespec] 4])
#@75 Ask Perforce for a list of files and directories beginning with FILESPEC.
(defalias 'p4-depot-completion-build #[(filespec cmd) "\306\211\211 \307\232\203\310\f \311\312$\202\277 \313\232\203&\310\f \314\315$\202\277 \316\232\203\202\317\320!\210\321 \f\322PC\"\323\n!\211\203P\324\325 \"\2048 \326PB\2028\327\n!\210\321\330\f\322PC\"\323\n!\211\203u\324\331 \"\203\\\332\333 \"B\202\\\327\n!\210\fB B\202\277 \334\232\203\222\310\f \335\336$\202\277 \337\232\203\242\310\f \340\341$\202\277 \342\232\203\262\310\f \343\344$\202\277 \345\232\203\277\310\f \346\347$\317\306!\210\f+B\207" [list line output-buffer cmd filespec p4-depot-completion-cache nil "branches" p4-completion-helper p4-branches-completion-cache "^Branch \\([^ \n]*\\) [0-9][0-9][0-9][0-9]/.*$" "clients" p4-clients-completion-cache "^Client \\([^ \n]*\\) [0-9][0-9][0-9][0-9]/.*$" "dirs" message "Making p4 completion list..." p4-depot-output "*" p4-read-depot-output string-match "no such file" "/" kill-buffer "files" "^\\(.+\\)#[0-9]+ - " match-string 1 "jobs" p4-jobs-completion-cache "\\([^ \n]*\\) on [0-9][0-9][0-9][0-9]/.*$" "labels" p4-labels-completion-cache "^Label \\([^ \n]*\\) [0-9][0-9][0-9][0-9]/.*$" "users" p4-users-completion-cache "^\\([^ ]+\\).*$" "groups" p4-groups-completion-cache "^\\(.*\\)$"] 5 (#$ . 160882)])
(defalias 'p4-completion-builder #[(type) "\301\302\303\304Q\305\306\307\230\205\310\311\312\313\314EE\315\316\311\312\317\314EEE\320\321\322\305\323\307\230\205,\324\325BBBD\326BBB\257F\207" [type lambda (string predicate action) "Completion function for Perforce " ".\n\nUsing the mouse in completion buffer on a client will select it\nand exit, unlike standard selection. This is because\n`choose-completion-string' (in simple.el) has a special code for\nfile name selection." let (list) "dirs" (if (and (eq action 'lambda) (eq (aref string (1- (length string))) 47)) (setq string (substring string 0 (1- (length string))))) setq list p4-depot-completion-search string if (not list) p4-depot-completion-build cond ((null action) (try-completion string (mapcar 'list (cdr list)) predicate)) (eq action t) ((lst (all-completions string (mapcar 'list (cdr list)) predicate))) (setq lst (mapcar (lambda (s) (if (string-match ".*/\\(.+\\)" s) (match-string 1 s) s)) lst)) (lst) ((t (and (>= (length list) 2) (member (car list) (cdr list)))))] 15])
(byte-code "\300\301\302\303!\"\210\300\304\302\305!\"\210\300\306\302\307!\"\210\300\310\302\311!\"\210\300\312\302\313!\"\210\300\314\302\315!\"\210\300\316\302\317!\"\207" [defalias p4-branches-completion p4-completion-builder "branches" p4-clients-completion "clients" p4-depot-completion "dirs" p4-jobs-completion "jobs" p4-labels-completion "labels" p4-users-completion "users" p4-groups-completion "groups"] 4)
(defalias 'p4-read-arg-string #[(prompt &optional initial type) "\304!\305\306\307#\210\310 \n\204\311\202M\n\312\230\203\313\202M\n\314\230\203(\315\202M\n\316\230\2032\317\202M\n\320\230\203<\321\202M\n\322\230\203F\323\202M\n\324\230\205M\325\326\211 \327&)\207" [minibuffer-local-completion-map prompt type initial copy-keymap define-key " " self-insert-command completing-read p4-arg-string-completion "branch" p4-branch-string-completion "client" p4-client-string-completion "label" p4-label-string-completion "job" p4-job-string-completion "user" p4-user-string-completion "group" p4-group-string-completion nil p4-arg-string-history] 7])
(defalias 'p4-arg-string-completion #[(string predicate action) "\305\306\307\310\n\"\203\311\312\n\"\311\313\n\"\307\314 \"\203%\315\n \f#\202\307\316 \"\203<\317\n\320\321\322\323\324\257 \f$\202\307\325 \"\203L\326\n \f#\202\307\327 \"\203\\\330\n \f#\202\307\331\n\"\203| \311\312\n\"P\311\313\n\"\317\n\332\333\334E \f$\202\307\335\n\"\204\212\307\336\n\"\203\237 \311\312\n\"P\311\313\n\"\330\n \f#\202\307\337\n\"\203\277 \311\312\n\"P\311\313\n\"\317\n\340\341\342E \f$\202\307\343\n\"\203\317\344\n \f#\202\307\345\n\"\203 \311\312\n\"P\311\313\n\"\317\n\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\201@\201A\201B\257 \f$\202\201C\n \f#\f\204+;\203' P\2028\2028\f\201D=\2037\2028*\207" [completion first-part string predicate action "" nil string-match "^\\(.* +\\)\\(.*\\)" match-string 1 2 "-b +$" p4-branches-completion "-t +$" p4-list-completion "text " "xtext " "binary " "xbinary " "symlink " "-j +$" p4-jobs-completion "-l +$" p4-labels-completion "\\(.*status=\\)\\(.*\\)" "open " "closed " "suspended " "\\(.*@.+,\\)\\(.*\\)" "\\(.*@\\)\\(.*\\)" "\\(.*#\\)\\(.*\\)" "none" "head" "have" "^//" p4-depot-completion "\\(^-\\)\\(.*\\)" "a " "af " "am " "as " "at " "ay " "b " "c " "d " "dc " "dn " "ds " "du " "e " "f " "i " "j " "l " "m " "n " "q " "r " "s " "sa " "sd " "se " "sr " "t " "v " p4-file-name-completion t] 31])
(defalias 'p4-list-completion #[(string lst predicate action) "\305\306\"\n\204\307 \f#\202&\n\310=\203\311 \f#\202&\307 \f#\310=)\207" [lst collection action string predicate mapcar list try-completion t all-completions] 4])
(defalias 'p4-file-name-completion #[(string predicate action) "\304\305\"\203\306\307\310\"P\311!\312\313!!\314\315\304\316\"\203-\307\310\"\307\317\" \204E\320\n\"\211;\203A\n P\202X \202X \321=\203R\322\n\"\202X\320\n\"\321=*\207" [string completion dir-path action string-match "//\\(.*\\)" "/" match-string 1 substitute-in-file-name p4-follow-link-name expand-file-name "" nil "^\\(.*[/\\]\\)\\(.*\\)" 2 file-name-completion t file-name-all-completions] 5])
(defalias 'p4-string-completion-builder #[(completion-function) "\301\302\303\304\305\306\307\310\311\312\313BEDE\314BBBBE\207" [completion-function lambda (string predicate action) let ((first-part "") completion) (if (string-match "^\\(.* +\\)\\(.*\\)" string) (progn (setq first-part (match-string 1 string)) (setq string (match-string 2 string)))) cond ((string-match "^-" string) (setq completion nil)) t setq completion (string predicate action) ((cond ((null action) (if (stringp completion) (concat first-part completion) completion)) ((eq action t) completion) (t completion)))] 12])
(byte-code "\300\301\302\303!\"\210\300\304\302\305!\"\210\300\306\302\307!\"\210\300\310\302\311!\"\210\300\312\302\313!\"\210\300\314\302\315!\"\207" [defalias p4-branch-string-completion p4-string-completion-builder p4-branches-completion p4-client-string-completion p4-clients-completion p4-job-string-completion p4-jobs-completion p4-label-string-completion p4-labels-completion p4-user-string-completion p4-users-completion p4-group-string-completion p4-groups-completion] 4)
(defalias 'p4-depot-find-file #[(file) "\303C!\211@A)\211\203\304\n!\2023\305!\203 \306!\2023\307!\210q\210\310\311\312\313C$\210\314\313\")\207" [file x lfile p4-map-depot-files find-file get-file-buffer switch-to-buffer-other-window get-buffer-create p4-noinput-buffer-action "print" nil t p4-activate-print-buffer] 6 nil (list (completing-read "Enter filespec: " 'p4-depot-completion nil nil p4-default-depot-completion-prefix 'p4-depot-filespec-history))])
#@169 To get the current value of the environment variable P4CLIENT,
type \[p4-get-client-name].
This will be the current client that is in use for access through
Emacs P4.
(defalias 'p4-get-client-name #[nil "\301 \302\303\304\305!#\210)\207" [client p4-current-client message "P4CLIENT [local: %s], [global: %s]" getenv "P4CLIENT"] 5 (#$ . 168125) nil])
(defalias 'p4-get-config-info #[(file-name token) "\305!\306 !\212 q\210eb\210\307\f!\210eb\210\310\311\312 !\313Q\314\315#\203'\316\317!)\320 !\210\n*\207" [p4-output-buffer-name token data output-buffer file-name generate-new-buffer getenv insert-file-contents re-search-forward "^" regexp-quote "=\\(.*\\)" nil t match-string 1 kill-buffer] 4])
#@62 Get the current local client, or the global client, if that.
(defalias 'p4-current-client #[nil "\304 \305\211\211\204\306\307!\202\310\n\307\" \204D\212\311 !\210 q\210db\210`\312\313\314!!\203Cb\210\315\316\305\317#\203?\320\321!d|\210) +\207" [pmin cur-client p4-config-file p4-output-buffer-name p4-find-p4-config-file nil getenv "P4CLIENT" p4-get-config-info get-buffer-create zerop p4-call-p4-here "info" re-search-forward "^Client name:[ ]+\\(.*\\)$" t match-string 1] 5 (#$ . 168838)])
#@80 Get the current local server:port address, or the global server:port, if
that.
(defalias 'p4-current-server-port #[nil "\301 \211\204 \302\303!\202\304\303\")\207" [p4-config-file p4-find-p4-config-file getenv "P4PORT" p4-get-config-info] 4 (#$ . 169355)])
(defalias 'p4-save-opened-files #[nil "\303!\210\304!\210\305\306!\307\212\nq\210eb\210\310\311\307\312#\203&\313\314! B\202)\304\n!\210\315\316\317 !\"\320\213*\207" [p4-output-buffer-name opened output-buffer get-buffer-create kill-buffer p4-depot-output "opened" nil re-search-forward "^\\(.*\\)#[0-9]+ - " t match-string 1 mapcar cdr p4-map-depot-files ((byte-code "\300\301\302\303 \304$\207" [map-y-or-n-p #[(buffer) "\302!\205!\303!?\205!\304!\205!\304! \235\205!\305\306\304!\"\207" [buffer opened buffer-modified-p buffer-base-buffer buffer-file-name format "Save file %s? "] 4] #[(buffer) "q\210\301 \207" [buffer save-buffer] 1] buffer-list ("buffer" "buffers" "save")] 5))] 4])
#@68 Return t if there exists a file opened for edit with an empty diff
(defalias 'p4-empty-diff-p #[nil "\303\304!\305\211\306\n\307C\310#\210\212\nq\210eb\210\311\312\305\310#\203'\313\314! B\202) \203Y\306\n\315C\310#\210\212\nq\210db\210\316c\210eb\210\311\317\305\310#\203X\313\314! \235\203@\310db\210\202@)\320\n!\210+\207" [empty-diff opened buffer get-buffer-create "p4-edp-buf" nil p4-exec-p4 "opened" t re-search-forward "^\\(.*\\)#[0-9]* - edit.*" match-string 1 "diff" "====\n" "^==== \\([^#\n]+\\)#.*\n====" kill-buffer] 4 (#$ . 170332)])
#@55 Don't ask any questions, just kill the current buffer
(defalias 'p4-blame-kill-blame #[nil "\300\301!\210\302p!\207" [set-buffer-modified-p nil kill-buffer] 2 (#$ . 170899) nil])
#@117 Attempt to clean up a` p4-blame' secondary buffer neatly, deleting
windows or frames when we think that's necessary
(defalias 'p4-blame-secondary-buffer-cleanup #[nil "p\303\304\"\n\305=\203%\306\307\310\"\203\311\312 !!\210\202!\313 !\210\304\202;\n\314=\203:\306\307\310\"\2046\313 !\210\304\202;\304*\207" [this-buffer this-window p4-blame-2ary-disp-method get-buffer-window t new-frame one-window-p ignore-minibuffer just-this-frame delete-frame window-frame delete-window new-window] 3 (#$ . 171085)])
(provide 'p4)
Jump to Line
Something went wrong with that request. Please try again.