# libexpect, by Don Libes, National Institute of Standards and Technology
# WINTERP 2.0 Copyright (C) 1994, Enterprise Integration Technologies Corp. and Niels Mayer.
# WINTERP 1.15-1.99, Copyright (c) 1993, Niels P. Mayer.
# WINTERP 1.0-1.14, Copyright (c) 1989-1992 Hewlett-Packard Co. and Niels Mayer.
# 
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of National Institute of Standards and
# Technology, Don Libes, Enterprise Integration Technologies, 
# Hewlett-Packard Company, or Niels Mayer not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. National Institute of Standards and Technology,
# Don Libes, Enterprise Integration Technologies, Hewlett-Packard Company,
# and Niels Mayer makes no representations about the suitability of this 
# software for any purpose.  It is provided "as is" without express or
# implied warranty.
# 
# NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY, DON LIBES, ENTERPRISE
# INTEGRATION TECHNOLOGIES, HEWLETT-PACKARD COMPANY AND NIELS MAYER
# DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE NATIONAL
# INSTITUTE OF STANDARDS AND TECHNOLOGY, DON LIBES, ENTERPRISE INTEGRATION
# TECHNOLOGIES, HEWLETT-PACKARD COMPANY OR NIELS MAYER BE LIABLE
# FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

NOTE-PREPENDED-BY-NIELS: THIS DIRECTORY IS NOT THE FULL EXPECT DISTRIBUTION!
To get the full distribution use anonymous ftp to ftp.cme.nist.gov.
directory "pub" file "expect/expect.shar.Z"; ... or contact one of the
e-mail addresses in the original README below:
					-- NPM 6/18/92
------------------------------------------------------------------------------

This is the README file from "expect", a program that performs
programmed dialogue with other interactive programs.  It is briefly
described by its man page, expect(1).

The implementation, philosophy, and design are discussed in "expect:
Curing Those Uncontrollable Fits of Interaction", Proceedings of the
Summer 1990 USENIX Conference, Anaheim, CA, June 11-15, 1990.
Examples and discussion, specifically aimed at system administrators,
are in "Using expect to Automate System Administration Tasks",
Proceedings of the 1990 USENIX Large Systems Administration Conference
(LISA) IV, Colorado Springs, CO, October 17-19, 1990.  A comprehensive
paper of example scripts is "expect: Scripts for Controlling
Interactive Programs", Computing Systems, Vol. 4, No. 2, University of
California Press Journals, 1991.  Regression and conformance testing
is discussed in "Regression Testing and Conformance Testing
Interactive Programs", Proceedings of the Summer 1992 USENIX
Conference, San Antonio, TX, June 8-12, 1992.

A library is also included which allows the C or C++ programmer to
communicate with interactive programs.  It is described by its own man
page, libexpect(3).  While I consider the library to be easy to use,
the standalone expect program is much, much easier to use than working
with the C compiler and its usual edit, compile, debug cycle.  Unlike
typical programming, most of the debugging isn't getting the C compiler
to accept your programs - rather, it is getting the dialogue correct.
Also, translating scripts from expect to C is usually not necessary.
For example, the speed of interactive dialogues is virtually never an
issue.  So please try 'expect' first.  I suspect it is a more
appropriate solution for most people than the library.

expect may be ftp'd as pub/expect/expect.shar.Z from ftp.cme.nist.gov.
Request email delivery by mailing to "library@cme.nist.gov".  The
contents of the message should be (no subject line) "send
pub/expect/expect.shar.Z".  Once you have retrieved the system, please
read the INSTALL file.  The papers mentioned above can be retrieved
separately as pub/expect/seminal.ps.Z, pub/expect/sysadm.ps.Z,
pub/expect/scripts.ps.Z, and pub/expect/regress.ps.Z.

While expect.shar.Z contains some example scripts, other interesting
scripts are available separately in the pub/expect/scripts (retrieved
as above).  You are welcome to send me scripts to add to this
directory.

The expect program requires Tcl.  (The expect library does not need
Tcl.)  Since you may already have Tcl, it is available separately.
Tcl may be retrieved as pub/expect/tcl.tar.Z in the same way as
described above for expect.  When new releases of Tcl appear, I will
try to check them out for expect as soon as possible.  If you would
like to get the newest Tcl release without waiting, ftp it from
sprite.berkeley.edu.  You may request email copies of Tcl by writing
to ouster@sprite.berkeley.edu.

I do not know of any systems which expect will not run on.  Systems
which do not support select or poll can run expect, but without the
job control facility.  (While POSIX support is nominally provided,
systems are better off describing their true heritage (i.e, BSD, SV)
since POSIX does not yet support select, poll, or a replacement.  See
the Makefile for more info.)  I would be willing to work with you to
complete a port.

expect was conceived of in September, 1987.  The bulk of version 2 was
designed and written between January and April, 1990.  Minor evolution
occurred after that until Tcl 6.0 was released.  At that time
(October, 1991) approximately half of expect was rewritten for version
3.  See the HISTORY file for more information.

This documentation and software distribution is version 3 of expect.
The papers listed above correspond to version 2, although they are
still the best introduction to expect.  There are slight differences
between version 2 and 3.  See the CONVERTING file if you want to read
about them.  Expect 2 has ceased further development and will no
longer be supported.  However, if for some reason you want the old
code, it is available from pub/expect/old as described below.

Although I can't promise anything in the way of support, I'd be
interested to hear about your experiences using it (either good or
bad).  I'm also interested in hearing bug reports (please include
version # reported by expect -d) and suggestions for improvement even
though I can't promise to implement them immediately.

Awards, love letters, and bug reports may be sent to:

Don Libes
National Institute of Standards and Technology
Bldg 220, Rm A-127
Gaithersburg, MD  20899
(301) 975-3535
libes@cme.nist.gov   or   uunet!cme-durer!libes

Design and implementation of this program was paid for by U.S. tax
dollars.  Therefore it is public domain.  However, the author and NIST
would appreciate credit if this program or parts of it are used.
