;ELC   
;;; compiled by amu@mit.edu on Wed Dec 30 12:35:48 1998
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/mailcrypt-3.5.1/expect.el
;;; emacs version 19.34.1.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`expect.el' was compiled for Emacs 19.29 or later"))


(byte-code "ÀÁ!ˆÀÂ!‡" [require cl timer] 2)
#@174 *If non-nil, report how much data has arrived in the process buffer.
This variable is buffer-local to all Expect buffers, and should be set
inside @code{with-expect} forms.
(defvar expect-message nil (#$ . -534))
#@256 If a number, start the Expect searches from that point.
If not, start searches from `(point-min)'.
This variable is typically `let' to t before calling `with-expect'
when waiting for output from a process that is already started and may
have output data.
(defvar expect-start nil (#$ . 754))
#@79 The number of seconds to wait before an Expect timeout element is triggered.

(defvar expect-timeout 10 (#$ . 1052))
(byte-code "ÀÁ!„ ÂÁBÀÄ!„ ÂÄBÀÅ!„  ÂÅBÀÆ!„- ÂÆBÂ‡" [boundp expect-processes nil current-load-list expect-asynchronous expect-process expect-current-info] 2)
(defalias 'expect-make-info #[(process message point) "	\nÃ‰¯‡" [process message point nil] 5])
(defalias 'expect-info-process '(macro . #[(info) "ÀÁ\nE‡" [nth 0 info] 3]))
(defalias 'expect-info-message '(macro . #[(info) "ÀÁ\nE‡" [nth 1 info] 3]))
(defalias 'expect-info-point '(macro . #[(info) "ÀÁ\nE‡" [nth 2 info] 3]))
(defalias 'expect-info-set-point '(macro . #[(info point) "ÀÁÂE\fE‡" [setcar nthcdr 2 info point] 4]))
(defalias 'expect-info-sentinels '(macro . #[(info) "ÀÁ\nE‡" [nth 3 info] 3]))
(defalias 'expect-info-set-sentinels '(macro . #[(info sentinels) "ÀÁÂE\fE‡" [setcar nthcdr 3 info sentinels] 4]))
(defalias 'expect-info-timer '(macro . #[(info) "ÀÁ\nE‡" [nth 4 info] 3]))
(defalias 'expect-info-set-timer '(macro . #[(info timer) "ÀÁÂE\fE‡" [setcar nthcdr 4 info timer] 4]))
(defalias 'expect-info-queries '(macro . #[(info) "ÀÁ\nE‡" [nthcdr 5 info] 3]))
(defalias 'expect-info-set-queries '(macro . #[(info queries) "ÀÁÂE\fE‡" [setcdr nthcdr 4 info queries] 4]))
(defalias 'expect-find-info '(macro . #[(process) "À	ÂBB‡" [assoc process (expect-processes)] 3]))
#@628 Set things up for communication with PROGRAM.
FORMS will be evaluated in the normal manner.  To talk to the process,
use `expect' and `expect-send'.  See the manual for full documentation.
This macro returns nil.

If PROGRAM is a string, start that program.  If PROGRAM is a list, use
the first element of that list as the program and the remainder as the
parameters.  If PROGRAM is a process, talk to that process.

PROGRAM will be started up in a new, fresh temporary buffer.  The
buffer will be killed upon completion.  If PROGRAM is a process,
a new buffer won't be created, and the buffer won't be killed upon
completion.
(defalias 'with-expect '(macro . #[(program &rest forms) "ÀÁ!ÀÂ!ÅÆ\fÇBÈBÉBBÊ\fDËÌÍÎDEÐBBÑDÒÔ\"*BBBBBD‡" [make-symbol "buf" "point" point buf save-excursion let ((generate-new-buffer " *expect*")) ((point)) (expect-process expect-current-info) set-buffer unless setq expect-process expect-start-process program ((error "Can't start program")) expect-setup append forms ((unless (expect-info-sentinels expect-current-info) (expect t)) nil)] 9 (#$ . 2441)]))
(defalias 'expect-start-process #[(program) ";ƒ ÁÂp#‡:ƒ ÃÁÂp@A%‡Ä!ƒ\" ‡ÅÆ!‡" [program start-process "expect" apply processp error "Illegal process spec"] 6])
#@245 Set things up for asynchronous communication with PROGRAM.
This macro behaves like `with-expect', only that `expect' calls
contained in FORMS will be evaluated asyncronously.

See the documentation of the `with-expect' macro for documentation.
(defalias 'with-expect-asynchronous '(macro . #[(program &rest forms) "ÀÁÂ\fBBE‡" [let ((expect-asynchronous t)) with-expect program forms] 5 (#$ . 3706)]))
#@55 Execute FORMS when REGEXP  has arrived in the buffer.
(defalias 'expect '(macro . #[(regexp &rest forms) "À	ÂÃÄBBDE‡" [expect-1 regexp function lambda nil forms] 6 (#$ . 4114)]))
#@289 Try each clause until one succeeds.
Each clause looks like (CONDITION BODY).  CONDITION should be
a regular expression to wait for, or a process status symbol.
If CONDITION is satisfied (i. e., the data has arrived or
the process has entered the specified status), BODY will be executed.
(defalias 'expect-cond '(macro . #[(&rest clauses) "À\nƒ1 \n@@;ƒ \n@@‚ Ã\n@@D	BÄÅÀ\n@ABBDC@	B\n‰Aˆ‚ Æ	Ÿ)B‡" [nil result clauses quote function lambda expect-1] 4 (#$ . 4301)]))
#@44 Execute FORMS when the process has exited.
(defalias 'expect-exit '(macro . #[(&rest forms) "ÀÁÂÃ\fBBDD‡" [expect-exit-1 function lambda nil forms] 5 (#$ . 4779)]))
#@46 Send STRING to the current buffer's process.
(defalias 'expect-send '(macro . #[(string) "ÀÁ\nE‡" [process-send-string expect-process string] 3 (#$ . 4950)]))
#@46 Initialize Expect data, filter and sentinel.
(defalias 'expect-setup #[(&optional point) "À	\n†\f \f†\f e#‰BÇ	È\"ˆÉ	Ê\"ˆË	!q‡" [expect-make-info expect-process expect-message point expect-start expect-current-info expect-processes set-process-filter expect-filter set-process-sentinel expect-sentinel process-buffer] 5 (#$ . 5115)])
#@39 Remove Expect infestation of PROCESS.
(defalias 'expect-shutdown #[(process) "ÀÁ\n\"\"Ä\nÅ\"ˆÆ\nÅ\"‡" [delq assoc process expect-processes set-process-filter nil set-process-sentinel] 4 (#$ . 5460)])
#@30 Kill PROCESS and its buffer.
(defalias 'expect-kill #[(process) "À	!Ã\n!ƒ Ä\n!ˆÅ	!ˆÆ	!)‡" [process-buffer process buffer buffer-name kill-buffer expect-shutdown delete-process] 2 (#$ . 5669)])
#@64 Wait until the current outstanding command has been performed.
(defalias 'expect-wait #[nil "À	\n\"Ä!ˆÅÀ	\n\"›@ƒ# Æ	!Ç>ƒ# È	É\"ˆ‚	 Ê!ˆ)Ë‡" [assoc expect-process expect-processes info expect-setup-timer 5 process-status (open run) accept-process-output 1 expect-cancel-timer nil] 4 (#$ . 5870)])
(defalias 'expect-1 #[(&rest clauses) "À‰‰\f„ ÅÆ!ˆƒ? @Á=ƒ* A@AA‰‚ ‰A@‰A@D\nB‚ 	ƒN È	›À\n	E ˆ	\nŸC¤ˆ?…] Ì +‡" [nil timeout entries entry expect-process error "No expect in this buffer" clauses 4 expect-current-info expect-timeout expect-asynchronous expect-wait] 5])
(defalias 'expect-exit-1 #[(function) "„ ÁÂ!ˆÃ\f\"Æ›Æ8C¤ ˆ)È‡" [expect-process error "No expect in this buffer" assoc expect-processes info 3 function nil] 3])
#@54 Controlling Expect function run as a process filter.
(defalias 'expect-filter #[(process string) "pÃŽÄÆ!qˆ`Ç!UŠÇ!bˆcˆÇ!`Ä“ˆÉ!ˆ)Ê!Ë>…9 …9 Ç!b,‡" [process expect-process old-buffer ((byte-code "À	!ƒ	 	qˆÀ‡" [buffer-name old-buffer] 2)) nil moving process-buffer process-mark string expect-find-event process-status (open run)] 3 (#$ . 6639)])
#@30 Controlling Expect sentinel.
(defalias 'expect-sentinel #[(process status) "À	!Â>ƒ\f Ã	!ˆÀ	!Ä=…K Š	Æ	!…J ÇÆ	!!…J Æ	!qˆÈÉ	\n\"8ƒF Š‰A@ ˆ)‚3 Ì	!)*‡" [process-status process (open run) expect-find-event exit expect-process process-buffer buffer-name 3 assoc expect-processes sentinels expect-shutdown] 4 (#$ . 7001)])
#@36 Find (and execute) the next event.
(defalias 'expect-find-event #[(process) "À	\n\"Ä8Æ›‰@É\nË!ˆA@ƒ$ ÌÍd\"ˆ…¯ @@Î=ƒ8 Ï	!‚¯ dV…¯ bˆ…¯ @@‰\n;ƒ\\ Ð@@ÉÎ#‚x \nÎ=„{ \nÑ>ƒs \nÒ	!=‚x ÓÔ\n\"ƒ¥ Õ!ˆAA` ˆÖ›A¡ˆŠ@A@ ˆ)ÉÒ	!×>ƒ¥ Ø	!ˆA‰„F É-‡" [assoc process expect-processes info 2 point 5 queries clause nil cond expect-setup-timer message "Expect received %d bytes" t expect-kill re-search-forward (exit run stop signal open closed) process-status error "Illegal condition: %s" expect-cancel-timer 4 (open run) expect-find-event] 5 (#$ . 7332)])
(defalias 'expect-setup-timer #[(info) "À	8‰… Ã	!ˆ\nÄ\nA@Å\nAA@# )‡" [4 info timer expect-cancel-timer run-at-time nil] 6])
(defalias 'expect-cancel-timer #[(info) "À	8@… ÂÃÄ�‡" [4 info G33100 (byte-code "ÀÁ\n8@!‡" [cancel-timer 4 info] 3) ((error))] 3])
(byte-code "ÀÁÂÃ#ˆÀÁÄÅ#ˆÀÆÂÇ#ˆÀÆÄÈ#ˆÀÉÂÃ#ˆÀÉÄÊ#ˆÀËÂÃ#ˆÀËÄÌ#ˆÍÁ!‡" [put expect lisp-indent-function 1 edebug-form-spec (form body) expect-exit 0 (body) with-expect (form body) with-expect-asynchronous (form body) provide] 4)
