;ELC   
;;; Compiled by buildd@akateko.buildd on Fri Oct 25 13:51:56 2013
;;; from file /build/buildd/emacs23-23.4+1/debian/build-x/lisp/net/tramp-cache.el
;;; in Emacs version 23.4.1
;;; with all optimizations.

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

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

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


#@41 Hash table for remote files properties.
(defvar tramp-cache-data (make-hash-table :test 'equal) (#$ . 545))
#@226 Inhibit cache read access, when `t'.
`nil' means to accept cache entries unconditionally.  If the
value is a timestamp (as returned by `current-time'), cache
entries are not used when they have been written before this
time.
(defvar tramp-cache-inhibit-cache nil (#$ . 660))
#@60 File which keeps connection history for Tramp connections.
(custom-declare-variable 'tramp-persistency-file-name '(cond ((and (boundp 'user-emacs-directory) (stringp (symbol-value 'user-emacs-directory)) (file-directory-p (symbol-value 'user-emacs-directory))) (expand-file-name "tramp" (symbol-value 'user-emacs-directory))) ((and (not (featurep 'xemacs)) (file-directory-p "~/.emacs.d/")) "~/.emacs.d/tramp") ((and (boundp 'user-init-directory) (stringp (symbol-value 'user-init-directory)) (file-directory-p (symbol-value 'user-init-directory))) (expand-file-name "tramp" (symbol-value 'user-init-directory))) ((and (featurep 'xemacs) (file-directory-p "~/.xemacs/")) "~/.xemacs/tramp") (t "~/.tramp")) '(#$ . 941) :group 'tramp :type 'file)
#@50 Whether persistent cache data have been changed.
(defvar tramp-cache-data-changed nil (#$ . 1692))
#@85 Get the PROPERTY of FILE from the cache context of VEC.
Returns DEFAULT if not set.
(defalias 'tramp-get-file-property #[(vec file property default) "\306!\211\307\310\311	C\"I\210\312\n\"\206 \313\314\315\316\"\n#\317!\205' \312\f\"\211:\203G \203A :\203G \320@\"\203G A\202J :\203Z \321\322\323	\f&\210\321\324\323	\f&\210*\207" [vec file tramp-cache-data hash property value copy-sequence 3 tramp-run-real-handler directory-file-name gethash puthash make-hash-table :test equal hash-table-p tramp-time-less-p tramp-message 1 "%s %s %s" 8 tramp-cache-inhibit-cache default] 8 (#$ . 1797)])
#@80 Set the PROPERTY of FILE to VALUE, in the cache context of VEC.
Returns VALUE.
(defalias 'tramp-set-file-property #[(vec file property value) "\306!\211\307\310\311	C\"I\210\312\n\"\206 \313\314\315\316\"\n#\313\f\317 B#\210\320\321\322	\f&\210)\207" [vec file tramp-cache-data hash property value copy-sequence 3 tramp-run-real-handler directory-file-name gethash puthash make-hash-table :test equal current-time tramp-message 8 "%s %s %s"] 8 (#$ . 2425)])
#@60 Remove all properties of FILE in the cache context of VEC.
(defalias 'tramp-flush-file-property #[(vec file) "\303!\211\304\305\306	C\"I\210\307\310\311	$\210\312\n\"\207" [vec file tramp-cache-data copy-sequence 3 tramp-run-real-handler directory-file-name tramp-message 8 "%s" remhash] 6 (#$ . 2901)])
#@120 Remove all properties of DIRECTORY in the cache context of VEC.
Remove also properties of all files in subdirectories.
(defalias 'tramp-flush-directory-property #[(vec directory) "\303\304C\"\305	\306\307$\210\310\311\n\")\207" [directory vec tramp-cache-data tramp-run-real-handler directory-file-name tramp-message 8 "%s" maphash #[(key value) "\303!;\205 \304	\303!\"\205 \305\n\"\207" [key directory tramp-cache-data tramp-file-name-localname string-match remhash] 4]] 5 (#$ . 3216)])
#@59 Flush all Tramp cache properties from `buffer-file-name'.
(defalias 'tramp-flush-file-function #[nil "\304 ;\203 \304 \202\f \305	!\205  \306	!\307\n!\310\n\"*)\207" [default-directory bfn v localname buffer-file-name tramp-tramp-file-p tramp-dissect-file-name tramp-file-name-localname tramp-flush-file-property] 3 (#$ . 3719)])
(byte-code "\300\301\302\"\210\300\303\302\"\210\300\304\302\"\210\300\305\306\"\207" [add-hook before-revert-hook tramp-flush-file-function eshell-pre-command-hook kill-buffer-hook tramp-cache-unload-hook (lambda nil (remove-hook 'before-revert-hook 'tramp-flush-file-function) (remove-hook 'eshell-pre-command-hook 'tramp-flush-file-function) (remove-hook 'kill-buffer-hook 'tramp-flush-file-function))] 3)
#@172 Get the named PROPERTY for the connection.
KEY identifies the connection, it is either a process or a vector.
If the value is not set for the connection, returns DEFAULT.
(defalias 'tramp-get-connection-property #[(key property default) "\306!\203 \307!\211\310\311I\210\312	\"\313\n!\203\" \312\n\f#\202# \f\314\315\316%\210*\207" [key tramp-cache-data hash property default value vectorp copy-sequence 3 nil gethash hash-table-p tramp-message 7 "%s %s"] 7 (#$ . 4471)])
#@166 Set the named PROPERTY of a connection to VALUE.
KEY identifies the connection, it is either a process or a vector.
PROPERTY is set persistent when KEY is a vector.
(defalias 'tramp-set-connection-property #[(key property value) "\306!\203 \307!\211\310\311I\210\312	\"\206 \313\314\315\316\"	#\313\f\n#\210\317\311\320\321\217\210\f)\207" [key tramp-cache-data hash property value tramp-cache-data-changed vectorp copy-sequence 3 nil gethash puthash make-hash-table :test equal t (tramp-message key 7 "%s %s" property value) ((error))] 6 (#$ . 4962)])
#@109 Remove all properties identified by KEY.
KEY identifies the connection, it is either a process or a vector.
(defalias 'tramp-flush-connection-property #[(key) "\305!\203 \306!\211\307\310I\210\311\312\313\314	\"\310\315!\203) \316\317\314	\"\"\210\n*%\210\320\321	\"\207" [key tramp-cache-data properties hash tramp-cache-data-changed vectorp copy-sequence 3 nil tramp-message 7 "%s %s" gethash hash-table-p maphash #[(x y) "\301\302\303#\207" [x add-to-list properties append] 4] t remhash] 11 (#$ . 5532)])
#@25 Print hash table TABLE.
(defalias 'tramp-cache-print #[(table) "\302!\205 \303\304\305\"\210	)\207" [table result hash-table-p nil maphash #[(key value) "\304\305\306!\203 \307\211!!\202 \307!\310	!\203 \311	!\2020 \312	!\203- \307\211	!!\2020 \307	!#\203= \313\nQ\202> \n\211)\207" [key value tmp result format "(%s %s)" processp prin1-to-string hash-table-p tramp-cache-print bufferp " "] 6]] 3 (#$ . 6061)])
#@75 Return a list of all known connection vectors according to `tramp-cache'.
(defalias 'tramp-list-connections #[nil "\302\303\304	\"\210)\207" [result tramp-cache-data nil maphash #[(key value) "\301!\205 \302H?\205 \303\304\"\207" [key vectorp 3 add-to-list result] 3]] 3 (#$ . 6492)])
#@81 Write persistent connection properties into file `tramp-persistency-file-name'.
(defalias 'tramp-dump-connection-properties #[nil "\300\301\302\217\207" [nil (byte-code "\306!\205X \307\310!!?\205X 	\205X \n;\205X \311!\312\313\"\210\314\315!r\fq\210\316\216\317\320\321\322\217\323\324\325\326\327!!\330\216\331\332\333\334\335!\"!!\210)rq\210\336 +\261\210\337ed\n#,\207" [tramp-cache-data tramp-cache-data-changed tramp-persistency-file-name cache #1=#:temp-buffer standard-output hash-table-p zerop hash-table-count copy-hash-table maphash #[(key value) "\303!\203 \304!\204 \305\306	\"\210\305\307	\"\210\305\310	\"\207\305\n\"\207" [key value cache vectorp tramp-file-name-localname remhash "process-name" "process-buffer" "first-password-request"] 3] generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) ";; -*- emacs-lisp -*-" nil (byte-code "\301\302\303\304!#\207" [tramp-persistency-file-name format " <%s %s>\n" time-stamp-string "%02y/%02m/%02d %02H:%02M:%02S"] 4) ((error "\n")) ";; Tramp connection history.  Don't change this file.\n" ";; You can delete it, forcing Tramp to reapply the checks.\n\n" get-buffer-create generate-new-buffer-name " *string-output*" ((kill-buffer standard-output)) pp read format "(%s)" tramp-cache-print buffer-string write-region] 10) ((error))] 3 (#$ . 6790)])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [add-hook kill-emacs-hook tramp-dump-connection-properties tramp-cache-unload-hook (lambda nil (remove-hook 'kill-emacs-hook 'tramp-dump-connection-properties))] 3)
#@202 Return a list of (user host) tuples allowed to access for METHOD.
This function is added always in `tramp-get-completion-function'
for all methods.  Resulting data are derived from connection history.
(defalias 'tramp-parse-connection-properties #[(method) "\302\303\304	\"\210)\207" [res tramp-cache-data nil maphash #[(key value) "\303!\205  	\304!\230\205  \305!?\205  \306!\307!D\nB\211\207" [key method res vectorp tramp-file-name-method tramp-file-name-localname tramp-file-name-user tramp-file-name-host] 3]] 3 (#$ . 8396)])
(byte-code ";\203 \302\303	!!\203 \304\305\306\217\210\307\310!\207" [tramp-persistency-file-name tramp-cache-data zerop hash-table-count err (byte-code "\306\307!rq\210\310\216\311	!\210\312p!\313\211\211\211A@\211\203@ \f\211A@\f\211A@\211\203 \314\n\211A@\n@#\210\202( ,\313+\313\207" [#1=#:temp-buffer tramp-persistency-file-name item key element list generate-new-buffer " *temp*" ((byte-code "\301!\203\n \302!\210\301\207" [#1# buffer-name kill-buffer] 2)) insert-file-contents read nil tramp-set-connection-property tramp-cache-data-changed] 4) ((file-error (clrhash tramp-cache-data)) (error (byte-code "\303\304\305	!#\210\306\n!\207" [tramp-persistency-file-name err tramp-cache-data message "Tramp persistency file '%s' is corrupted: %s" error-message-string clrhash] 5))) provide tramp-cache] 3)
