diff options
Diffstat (limited to 'expect/HISTORY')
-rw-r--r-- | expect/HISTORY | 3042 |
1 files changed, 3042 insertions, 0 deletions
diff --git a/expect/HISTORY b/expect/HISTORY new file mode 100644 index 00000000000..df0ea58c1e9 --- /dev/null +++ b/expect/HISTORY @@ -0,0 +1,3042 @@ +This is the HISTORY file for Expect. Modifications made by Cygnus +support are in ChangeLog. - Don + +Date Version Description +------- ------- ------------------------------------------------------ +6/15/98 5.26.1 Dean Sauder <dsauder@dcn.att.com> noted C-preprocessor lines in + configure must start in column 0. + +5/18/98 5.26.0 Kevin Schleicher <kms@lucent.com> noted xkibitz leaves xterms + if first xterm is HUP'd. Kevin also noticed a resource leak + in dislocate. Both problems fixed. + + Robbie Gilbert <rwg@fns.com> noted expect_devtty was logging + devtty (twice) to stdout. Fixed. + + Added support inttypes.h, required on Solaris 5.6 for termios.h + + Kristina <kristina@greatbasin.net> noted that tip failed when + spawned from a cgi script (BSDI BSD/OS 3.1 i386) because tip + didn't see a definition for SHELL and HOME. They need to be + set. (Doesn't have to be anything useful; the empty string is + fine!) Solution: documented this in Expect man page. + + Zachariah Baum <zack@studioarchetype.com> noted that config.sub + didn't grok Intel 686. Found a newer version that did in + autoconf-2.11. + + POTENTIAL INCOMPATIBILITY: Changed interact so that it observes + parity while matching. It used to ignore parity. This impacts + people who use interact to connect through to a real serial + device that generates parity. If matches don't work, use the + exp_parity command. (This fix should have been made years ago, + when the exp_parity command was added. It is now absolutely + necessary now that people are doing matching with 8 bits.) + + After the second occurrence of a system admin who broke grantpt + by removing setuid from the relevant system util, I added an + explicit test and explanation. + + Disabled history in xkibitz. There seems to be some new + incestuous relationship between history and unknown now so that + redefining unknown leaves Tcl calling history but without + knowing what it is because it's never been defined (as it would + be by the traditional unknown). + + Fixed quoting bug in passwd.cgi example. + +9/28/97 5.25.0 Switched back to hand-generating pkgIndex.tcl file after too + many complaints about problems running pkg_mkIndex. + +8/12/97 5.24.1 Chris Schanzle <chris@goof2.ncsl.nist.gov> pointed out that + install fails on a virgin file system because install_shared_ + lib depends on a directory that hasn't yet been created. + + Larry Virden gave corrections to URLs in README. + +8/21/97 5.24.0 Bo Johansson <bo.johansson@mbox2.swipnet.se> noted TclWordEnd + had changed and provided fix. This caused crash in expect. + +8/18/97 5.23.0 This version supports Tcl 8.0 and continues support for 7.6. + Refs to Tcl_Files dropped. inter_return and close became + obj cmds. Rewrote notifier (again) to accomodate new notifier + model. Lots of other miscellaneous tweaks. Also see debugger + HISTORY file. + + Finally removed long-deprecated commands "continue -expect", + "send_spawn", and "getpid" and their exp_ versions. + + Harold Brauer <harold.brauer@canada.cdev.com> reported problems + with an old SCO system (i386-unknown-sco3.2v5.0) that turned + out to be due to a typo in the configure script. + + Jimmy Aitken supplied mods to config.guess for brand new and + very old Pyramid systems. + + Buz Owen noted memory leak in use of expect_background (with + no args). + + Jonathon Kamens noted provided patch for pty_termios.c for + modern Sequent (which ptmx). + + Jonathon Kamens noted that TCL defined RANLIB for shared lib + (if --enabled-shared) which isn't appropriate when Expect tries + to build both shared and unshared libs. + + Jonathon Kamens noted that shared lib config didn't work on + SunOS. I had used Tcl's SHLIB_SUFFIX instead of its + SHARED_LIB_SUFFIX. + + Qingyi Liao <liao@casabyte.com> encountered core dump when + exp_bg -i $exp_spawn_any was retracted. Bug in ecmd_remove_fd. + + Fixed a bunch of bugs in example/gethostbyaddr. + + Josef Sachs noted that stty cannot be caught when no /dev/tty. + It calls exit instead of returning an error. + + Gordon Chaffee <chaffee@plateau.CS.Berkeley.EDU> patched + Exp_WaitCmd - it was zeroing pid element instead of wait. + + Bob Manson <manson@cygnus.com> provided fix for HP on which it + was possible for timer to be mistakenly deleted in + exp_get_next_event while processing a pty open event. + + Jeff Slonaker <JSlonaker@osc.uscg.mil> noted that exp_poll.c + had wrong signature and poll had arguments out of order! That + would suggest that no one has ever used exp_poll.c before... + + 5.22.1 Larry Virden noted that TCL_BUILD_LIB_SPEC can't be used if + build directory has been removed. Added check to configure. + + Worked more on package command. Buz Owen pointed out that my + code wouldn't support redefinition of TCL_LIBRARY. Bumped up + minor version to avoid package loading mishaps. + + Nigel Standing <nigel@idiom.com> noted lack of C-u binding in + tkpasswd - must be due to change in tk4.2. + + Forced env(SHELL) to be defined inside kibitz for when using + with CGI. + + Charles Packer <packer@fermi.gsfc.nasa.gov> noted that CRAY-YMP + needed sys/types.h in exp_console.c + + Extra / when developing defn of TCL_LIBRARY. Shouldn't + actually cause any problems though. + +2/3/97 5.22.0 Fixed package support - again. Sigh. + + David Pasirstein <dpasirst@sun.cs.wcupa.edu> noted that RedHat + Linux 2nd passwd prompt requires slightly different pattern - + modified mkpasswd and tkpasswd. + + Toshiaki Nomura <nom@yk.fujitsu.co.jp> provided patch to + config.guess for Fujitsu DS/90. + + Roger Brooks <R.S.Brooks@liverpool.ac.uk> noted C lib passed + argv[0] instead of file to first arg of execvp. + + Cary D. Renzema <caryr@mxim.com> noted that a simple puts -nnl + might never appear - Expect closes all of its fds before Tcl + gets a chance to flush. Stdout is the obvious problem since + Expect thinks it can cavalierly close that too. Hmm. + + At request of Tom Tromey, solved possible missing tclRegexp.h + problem by having Expect install it. Cleaned up TCLHDIR and + TCL_LIBRARY hackery in Makefile. + +12/27/96 5.21.7 Nelson Beebe noted unset is not portable in /bin/sh. Removed + and converted everything to understand CONFIG_SHELL. + + Modified cryptdir to strip out shell metachars from filenames. + +12/10/96 5.21.6 Michael Schumacher noted that some systems cannot build + unshared libs from shared objects. Chose to go with BLT's + approach of building shared objs in separate shared directory. + + Buz Owen <ado@bbn.com> noted that "package require Expect" + didn't work because it looked for Expect lib in the wrong + place (well, the "documented" place). The problem is that Tcl + insists libraries should be in the same directory as the + pkgIndex.tcl file while the natural thing to do would be to + split them up and put the .tcl file in the arch-indepent + app-specific scripts dir and the lib in the arch-dependent + common dir. Sigh. If this is ever fixed/changed, the + instructions in the Makefile should be fixed. + + <Van.Trinh@siemenscom.com> noted that expect library name + exceed filename max on some systems - like his old SCO. + +12/4/96 5.21.5 Michael Schumacher noted new configure wasn't passing on Tcl's + shared lib cflags. + +10/26/96 5.21.4 Achyutram Bhamidipaty <ram@epic.com> ran into bugs in Expect's + file event handler which prevented expectk from entering + implied event loop. Also found one memory problem - thanks + to CenterLine. + + Tom Tromey fixed handling of --enable-shared when overriding + Tcl's value et al. Tom also added missing "else true" to + Makefile: "In a Makefile, you have to always supply an "else" + clause for an "if", to work around a bug in certain versions of + sh. In some versions of sh, an "if" whose test fails will + return the status of the test if there is no "else" clause -- + causing spurious make failures." See ChangeLog. + +10/18/96 5.21.3 Example directory was missing several examples. + +10/17/96 5.21.2 Debugger section of configure file corrupted. + +10/10/96 5.21.1 Oops, distribution unpacked into wrong version. + + Tom Tromey provided patch for stty to understand OSF 4.0. + +9/28/96 5.21.0 Official Expect release for Tcl 7.5. + + Junio Hamano <junio@twinsun.com> provided fixes for aclocal + for with_tcl/tkconfig. + + Roger Billau <rfbilla@amtnet.sandia.gov> noted that C library + didn't work on Solaris 2.5. Turns out Solaris requires fflush + be called between input and output operations on FILE pointers. + + Lots of Cygnus mods - see ChangeLog. + + Sid Cowles <scowles@incyte.com> and Hans Riethmann + <hans@F1.telekurs.ch> noted relative path specs of tcl-includes + (and others) caused debugger config to fail since it is at a + different directory level. + + Al Snow <asnow@fuwutai.att.com> noted -C failed due to typo. + +8/17/96 5.20b18 Andrew Rakowski <andrew.rakowski@nr.usu.edu> noted no defn of + LIB_RUNTIME_DIR, a creation of Tcl7.5p1. + + Tom Tromey added -v to Expect and -version to Expectk. + + Ben Boule <bboule@xylogics.com> noted that Interactive (IUNIX) + requires 9 char max length after -l. Looks like squeezing out + the "." is sufficient. He also noted that IUNIX needs -Xp in + LIBS to find strftime. This test should really be done by Tcl. + +8/12/96 5.20b17 Glen Biagioni <glen@prosoft.com> noted interact -re "A(xx)" + failed to match. Problem turned out to be that Tcl 7.5 changed + a constant which in the regexp code, which Expect didn't see + because it provides its own defn for interact. Alas, the one + thing Expect reuses from Tcl was where the change was. This + should really be fixed so Expect doesn't rely on Expect in this + way, but there's no point in putting in a lot of work on regexp + when we're anticipating a new one soon anyway. + + Bjorn S. Nilsson <nilsson@nbivms.nbi.dk> noted fixcat hangs. + Turned out that new Tcl (7.5p1) now waits for all children to + disappear. But Expect still had a handle to a child. I added + an exit handler to close the connections before Tcl's exit + handler. + + Tom Tromey provided patch to support augmenting CFLAGS on + Makefile invocation. + + Gary Merinstein <gmerin@panix.com> noted that configure failed + on his linux unless it had --enabled-shared. Not quite sure + about how this can be, but the flag wasn't being passed to the + debugger's configure, so I've fixed that and hopefully this + will cure the original prob. + + Added initial announcement of full version at beginning of + configure. This should ease my pain in responding to people + sending me config output without including version numbers. + + Tom Tromey noted expect_cf.h was machine dependent. Fixed + expect_comm.h so that it no longer required expect_cf.h (which + should be renamed to indicate it is no longer public). + + Bart Robinson <lomew@cs.utah.edu> provides mods to support + openpty() in FreeBSD/NetBSD. Without openpty, Expect doesn't + see the full pty namespace (ptyX[0-v]). + +7/15/96 5.20b16 Nathan Estey <nfe@the-hermes.net> noted that Makefile failed + on SunOS when shared libs were enabled due to incomplete dot + stripping in lib prefix. + +7/6/96 5.20b15 Malcolm Tredinnick <malcolmt@geko.net.au> noted that shared lib + has to be installed before building expect. Also noted that + ldconfig should be run on Linux 2.0 systems and maybe others. + +6/25/96 5.20b14 Tim Mooney provided fixes to obey --includedir and similar + configure conventions. + +6/25/96 5.20b13 A bug when installing Expect using new _installed targets. + +6/24/96 5.20b12 Numerous complaints from Solaris users about shared libraries. + Unfortunately, no one is giving me configure-ready fixes so + (and Tk's configure seems to have bugs as well) so fixing + these is like throwing darts. + + Stan Brown <stanb@netcom.com> noted noidle example broke when + fed "-". + + Gordon Irlam <gordoni@cygnus.com> noted typo in install-sh. + + David Sheinberg <sheinb@bcmvision.neusc.bcm.tmc.edu> noted no + args test for spawn -open/leaveopen. + + Misc patches from Tim Mooney to pacify much of gcc -wall. + + Kayvan Sylvan insists Linux stty reads from stdin so added + hardcoding to configure.in for that. In xkibitz, Linux stty + -raw didn't disable all post-processing. How odd that it is + not a problem in interact. In the meantime, added extra stty + to xkibitz to do what was missed. + +5/30/96 5.20b11 Kayvan Sylvan <kayvan@sylvan.com> noted quoting bug in + autoexpect. + +5/22/96 5.20.b10 Patches from Larry Virden in Makefile.in and exp_int.h + +5/20/96 5.20.b9 Too many substitutions in configure caused sed failures on + DEC (limit 99) and HP (100). Commented out definitions + that weren't absolutely critical. Hopefully, this gets us + under the limit but can't be sure since there's no easy way + of knowing. + + Numerous mods from Mark Diekhans to support clist-style ptys + on SCO OpenServer. (He says SVR4 ptys are broken on that + platform.) + + Simon J. Gerraty <sjg@zen.void.oz.au> says that write() returns + 0 inside of exact_write on SunOS. This is outside the SunOS + spec so of course we have no idea what's going on. So I added + code to try and recover from (or at least warn of) this. + + Tom Tromey unified decls of errno to #includes. + +5/13/96 5.20b8 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu> pointed out + backwards stty test - this would have corrupted every platform! + He also pointed out that alpha-dec-osf3.2 (3.2c) complained + too many args to sed. Someone earlier said similarly about + HPUX 10, but I assumed it was the quotes in the weird stty + flag I was passing, so that "fix" wasn't. GNU sed has no + problem, but obviously this is not sufficient for many people. + +5/10/96 5.20b7 Renamed/numbered versions so that it's easier for others to + track. + + Upgraded to autoconf 2.10. + + Matthias Kurz <mk@baerlap.north.de> noted Makefile problems + with final Tcl7.5. + + Blair Zajac <blair@gps.caltech.edu> noted configure mishandled + stty defaults on HP and shared lib must be installed executable + on HP. + + autoconf insists on adding -O to CFLAGS when using gcc. Ack! + +3/23/96 5.20b1 Beta release 1 of Expect for Tcl 7.5. + + Michael Hunter <mphunter@qnx.com> provided misc mods for QNX. + + Various people reported problems with IRIX. Removing from the + stty list fixed the problem. Similar problem with Solaris. + + Added explicit close to autoexpect. Added a mechanism for + enabling conservative mode after script is generated. + + Hal Schechner <hal-j@netusa.net> pointed out passwd.cgi must + meet passwd's requirement that it not be run by an unrelated + user. Easy enough - just do an su first. + +3/26/96 5.20a5 Alpha release 5 of Expect for Tcl 7.5b3. + + Added example passwd.{html,cgi} to change a password. + + Many fixes from Stephen Williams <steve@icarus.com> + and Jonathon Kamens for Makefile and configure. + +3/22/96 5.20a4 Alpha release 4 of Expect for Tcl 7.5b3. + + Added version number to lib directories (POTENTIAL + INCOMPATIBILITY). + + Revised gethostbyaddr example - evidentally hadn't worked for + some time! + + Jan Nijtmans <nijtmans@nici.kun.nl> provided pkgIndex.tcl.in. + Renamed Exp_Init to Expect_Init to support package cmd. + Provided #define so that Exp_Init will continue to work. + + Revised exit handling so that it works if Expect is dynamically + loaded. + + aclocal.m4 Patches from Tom Tromey. + +3/15/96 5.20a3 Alpha release 3 of Expect for Tcl 7.5b3. + + Edward Haletky <elh@astroarch.com> noted that Machten required + inclusion of types.h in exp_tty_in.h. + + Added various patches from Rob Savoye. One incompatibility + is that the static lib now ends with the version number. + + Added support for TCL_SHLIB_{LD_LIBS,VERSION} in Tcl b3. + + Jonathan Karges <J.Karges@dkfz-heidelberg.de> found that clib + was timing out immediately on -1. + +3/6/96 5.20a2 Alpha release 2 of Expect for Tcl 7.5b2. + + Leland Joseph <leland@tec.tetd.bellcore.com> noted + expect-tests.exp exceeds the 14 character filename length. + + Added config.{sub,guess} to support AC_CANONICAL_.... + + Rewrote much of aclocal, configure.in, and Makefile.in + to handle Tcl/Tk config.sh files and shared/dl support. + + Simplified varargs/stdarg mess for Expect's C library. + + Threw away closetcl junk. No longer required because + Tcl finally started doing close-on-exec. + + Incorporated various fixes from Tom Tromey at Cygnus. + See ChangeLog for details. + + Added require/provide support. + + Rejiggered event handling to support new Tcl_File interface. + + Removed libexpectk. Because event loop was moved into Tcl, it + is no longer necessary for it to be different than libexpect. + + Removed all support for earlier versions of Tcl and Tk. + + Numerous misc patches from Paul Eggert <eggert@twinsun.com> + most to support Tcl 7.5. + + Arnold Robbins supplied yet another patch to fix earlier + problem noted by Hume Smith. + + David Engel <david@ods.com> reported problem with Linux dumping + core. CenterLine, of course, immediately found the problem - + uninit'd lowercase buffer. + + Peter Haggerty <haggerty@borg.lib.vt.edu> noted that his Next + died in cron. It seems that Next doesn't support O_NOCTTY + (even though the man pages says it does) and so during pty + testing, control terminal would get allocated and then kill + the process (by generating a HUP) when deallocated. Avoid + by ignoring HUP when doing pty testing on such machines. + +1/3/96 5.19.0 Fixed bug that made expect report wrong string when using + a terminating anchor in a positive-length glob match, + reported by Graham L. Randall <grandall@nit.airtouch.com>. + + Added rlogin-display to included examples. rlogin-display + automatically propagates your $DISPLAY when you rlogin. + + Hume Smith <hclsmith@localhost.isisnet.com> noted problem + with day of the week calc at year end/start. Arnold Robbins + supplied fixes. + + Jonathan Kamens provided fix to make sync byte reads + recover from EINTR. + + Henry Spencer noted errant line of spaces in Makefile. + +10/21/95 5.18.1 Began adding support for tcl7.5a1/tk4.1a1. (not finished!!) + - Make aclocal understand new Tcl/Tk directory layout + for finding tclInt.h and private libraries. + - Added support for Tcl_AsyncReady. + + Paul Townsend <aab@aab.cc.purdue.edu> noted that distclean did + not remove some config cruft. Also recommended unsetting + M*FLAGS that cause make called from configure to fail. + + Various fixes from Cygnus. See Changelog. + + Deleted "-" before rm in loop in deinstall in Makefile as per + Doug Claar <dclaar@hprtnyc.ptp.hp.com>. Doug also found prob + involving recent STTY fix. Symptom was that pty wasn't + correctly inited in cgi scripts on HPs - and Cray pty support + blew up entirely. + + Added exp_ prefix to tests so that they can be run with other + extensions. + + Seth Ornstein <pp001465@pop3.interramp.com> noted bug in the + way rftp detected symlinks. + + Upgraded to autoconf 2.4. This fixes a bug in AC_PROC_CPP + which blew up when CPP was defined in the environment. Noted + by John Pfuntner. + + Jonathan Kamens noted that library didn't check return pipe() + return value. + + Added vrfy example. + + Przemek Klosowski <przemek@rrdjazz.nist.gov> Irix 6.0 fails + to use ptys that have been used by someone else. SGI admitted + this is a bug and the solution is to upgrade to 6.1. + + Yoad Grinberg noted "expect -timeout" mistakenly ate next arg + as pattern. + +8/24/95 5.18.0 Wayne Christopher noted that the way exp_eval_with_one_arg + modifies the original argv makes the ICEM Tcl compiler unhappy + so I rewrote it to avoid that. + + Ian Zimmerman <itz@rahul.net> found that a braced arg list of + a single pattern beginning with a \n caused expect to reeval + for multiple args twice. I added a -nobrace flag that expect + and/interact can use internally to prevent this. + + Florian La Roche <florian@jurix.jura.uni-sb.de> noted a few + glitches in the way -ltcl was searched for in aclocal. + + Joachim Posegga <posegga@ira.uka.de> noted lack of Tcl internal + includes should be an error during configure. + +8/10/95 5.17.8 Martin Wunderli <wunderli@baloo.limmat.net.ch> found missing + quote in config. + + Danny Faught noted problems in Makefile when passing STTY defn + with quotes. Created another a STTY-less CPPFLAGS for cases + where additional reexpansion occurs. + + Danny Faught noted bug in error handling for checking + permission problem with /tmp. + +8/1/95 5.17.7 Todd Rimmer <trimmer@mantis.ssw.com> noted that HP 10 with + optional streams package has both PTYM and PTMX which conflict + in pty_termios. + + Rainer Wilcke provides fixes: scripts not listed as dependency. + distclean target used Makefile after deleting, and many fixes + to man pages. + + Saad Mufti <mufti@hobbit.pls.com> noted bug in how C library + handled polling (when handling multiple fds). + + Jeff Bowyer noted more autoexpect bugs. + +7/22/95 5.17.6 More features added to autoexpect (now version 1.3). + + Sanjay <sanjay@clef.lcs.mit.edu> noted bug in TCLH config macro + which caused it to use 7.3 instead of 7.4. + + Rodney Barnett <rlb@us.teltech.com> noted expectd.proto had a + few refs to interact_out where it should've had expect_out. + + Terry Rhodes <tbr@88open.org> noted that Expect returned a 0 + exit status upon syntax error unlike tclsh and wish. + + Fred Obermann <fredo@conan.ids.net> noted that Unixware 2.01 + native development tools don't permit configure to find memcpy + because memcpy is handled specially by the compiler and it + complains when it finds configure's default test with no args. + Changed to a hand-crafted test with args. + +7/12/95 5.17.5 Jeff Bowyer <jbowyer@muni.cz> noted minor bugs in autoexpect. + + Rob Saul <robs@sco.com> noted that configure failed on SCO OSR5 + because trap requested by Cygnus (to allow config in bg) used + higher traps than SCO sh knows about. + + Changed "can't happen" to "xmkmf is broken" when configure + fails to compile simple C-Tk program. + + John H. Chauvin <jchauvin@netcom.com> noted exp_tty_current and + cooked raised multiple def errors on SGI 5.3 with native cc. + +7/9/95 5.17.4 Wolfhardt Lotz <s11@blue.lrw.uni-bremen.de> noted Solaris + doesn't do case-insensitive man page lookups so I lowerized + the beginning of the .SH lines. + + Henry Spencer noted unbackslashed quotes in the autoexpect + boilerplate. + +7/3/95 5.17.3 Modified VARARGS decls to support new Tcl 7.4 definitions. + + Fine-tuned aclocal so that it would prefer later versions. + + Added autoexpect example and man page. + +6/30/95 5.17.2 select-based dsleep() was returning an internal expect-style + return code instead of a Tcl-style. + +6/30/95 5.17.1 Kannan Varadhan <kannan@isi.edu> noted aclocal didn't + look in right directories to find Tk. + +6/30/95 5.17.0 Modified regexp interfaces to support Tcl 7.4b4. + + Mods from Tony Isles <ittony@traf.com> for Sequent Dynix/ptx + V2.1.5 (which is really old). + + Michael Schumacher <hightec@rz.uni-sb.de> noted that Solaris + 2.4 header files require __EXTENSIONS__ for all sorts of + traditional but non-standard definitions. + + Modified aclocal to support new Tcl/Tk library names. + + George Forman <forman@cs.washington.edu> requested support in + C lib for fds that already exist. I added exp_spawnfd. + + Fixed bug preventing signal rearming on Linux (using SV-style + signal handling). + + Wayne Christopher <wayne@pmac.icemcfd.com> noted missing interp + in call to exp_error. + + Added null support to interact's exact matching. + + Bruce Jerrick noted INSTALL was being used rather than + INSTALL_PROGRAM/DATA. + + Dennis Ferguson <dennis@mci.net> noted that on Solaris 2.4 + close(pty) occasionally returns EINVAL. + + Added tests so that if we can't get a pty, we can give the user + much more help with what to do about it. + + Steven Byrnes noted that Solaris has replaced TIOCCONS with + SRIOCISREDIR interface. + + Technically speaking, interact shouldn't do buffer-shuffling + but I've added as a fail-safe mechanism to catch people who + use preposterous patterns. + + Alan Heckert <heckert@tiber.nist.gov> noted missing decl in + Convex pty support. + + Fixed all expectk examples for Tk4. + + Bryan S. So <so@cs.wisc.edu> noted that interact -o eof failed + if an unbuffered pattern was partially in progress. + + Added -timeout flag to expect command to override timeout var. + + John Pfuntner <pfuntner@VNET.IBM.COM> noted that OpenMVS did + not notice @ inside of Makefile SETUID macro as suppression + but instead treated it as part of the program name. + + Jim Porter <James.W.Porter@att.com> noted that exp_free_i freed + the variable name even if not allocated. + + Yet more mods to aclocal and various .in files from Rob Savoye. + +4/21/95 5.16.3 Matija Grabnar <Matija.Grabnar@ijs.si> noted that sleep maxed + out after about 36 minutes. Turned out to be a poor assumption + in some interfacing code. + +4/19/95 5.16.2 rbd <uport@netcom.com> noted tcl_RcFileName multiply defined + when compiling with Tk4. + +4/16/95 5.16.1 Robert Nicholson <robert@steffi.dircon.co.uk> noted NextStep's + sys/wait.h is not POSIX-like so WNOHANG fails to get a defn. + + Alexandre Rafalovitch <arafalov@socs.uts.edu.au> discovered + example on dislocate man page didn't work. I fixed it. + +4/8/95 5.16.0 gcc 2.3.3 complains about internal errors so I figure: time to + upgrade. Switched to Cygnus 2.6-95q1. Works now but now + complains about wait status. I trashed all the gory wait + status configure code and adopted autoconf's suggestion about + refusing to use sys/wait.h if not POSIX.1 compatible. Nice! + + Jeffrey C Honig <jch@nr-tech.cit.cornell.edu> requested a -gmt + flag for timestamp command. + + Chuck Ocheret <chuck@gigadactyl.com> noted that expect -pty + fails. Problem is that Tcl's exec blindly closes all the fds + between 3 and its own highest fd. See comments in code. + + Loris Caren <loris@caren.demon.co.uk> noted eof in fg bombs on + Linux. Turns out to be analogous to eof in bg problem fixed + in 5.14.0. + + Upgraded to autoconf 2.3. Continued making changed to config + script to take advantage of autoconf 2 capabilities. + +4/1/95 5.15.4 Steve Simmons noted .x remnant from earlier dir install proc. + +3/31/95 5.15.3 Forgot to export TCLHDIR defn when configuring debugger. + +3/29/95 5.15.2 Steve Simmons <scs@aisinc.com> noted Makefile multiple defined + distclean and it might be nice to provide aclocal.m4 even + though it isn't normally used. + + cevans@resdev1.ppco.com added prompts to passmass for AIX. + +3/27/95 5.15.1 Fixed tkterm script - inadvertently left tic debugging on. + Also add support for Ctrl-space and Ctrl-@ as requested by + Zbigniew Wieckowski <wieckows@cs.umn.edu>. + + Larry Virden asked that configure also check for .so libs. + +3/23/95 5.15.0 Everitt Beers <ebeers@scf.usc.edu> noted that Linux doesn't + support kill -STOP 0. Changed 0 to [pid]. + + zhengping (z.) you <you@bnr.ca> found bug where a bg expect did + not rearm a spawn id after a first bg expect (and another one) + to clear it. + + Elliott Wolin <wolin@physics.wm.edu> noted that tkterm + complained if tic wasn't found. I'll have it override the + user misconfig in that case. Also noted that interact failed + on AIX. Evidentally, my new config tests for ISC found that + AIX looked just like it. Added additional test for tcsetattr + to distinguish them. + + Rob Savoye asked for Dbg config.in to be distributed. Rob + supplied numerous other mods: install-sh replaced install.sh, + mkinstalldirs, testsuite mods, new aclocal.m4, support for + recursive make. + + Fixed bugs in configuration of debugger. + + Disabled configure's file-caching. + + Kannan Varadhan <kannan@isi.edu> noted incorrect diag reporting + TCLHDIR in configure. + + Marty Olevitch <marty@howdy.wustl.edu> noted that DEC Alpha + did not sleep correctly because configure didn't find sleep + and found poll (which is broken). Problem turned out to be a + bug in autoconf's AC_CHECK_FUNC. Got patch from Jim Meyering + <meyering@comco.com> + + Fixed config probs for Edward Huie <huie@net.com> on Mac SE/30, + System 7.1, Tenon Intersystems' MachTen 2.1.1-G (BSD 4.3 on + Mach kernel) and MachTen X11R4 3.1. + + Moved libraries forward in configure to allow for AC_CHECK_FUNC + to succeed when funcs are in other libraries. + + Made configure test for Linux and unset CFLAGS=-g if so. + +2/25/95 5.14.3 Larry Virden noted configure was missing brackets in raw shell + cmds evidentally due to m4 interpretation. + +2/24/95 5.14.2 Larry Virden noted configure was not correctly rewriting from + --(exec-)prefix. Due to new autoconf. Also noted glob was + finding tclX directory. + + Hal Peterson noted that because configure now actually attempts + a link before using a library, the code to check for -ltk would + have to worry about all the other utility libraries first. + +2/23/95 5.14.1 Hal Peterson noted that configure.in checked incorrectly for + tcllib. + +2/22/95 5.14.0 Jamal <root@lonestar.tlug.org> noted Linux has tic in a + different place than on my system - affected tkterm script. + + Xiaokun Zhu <xiaokun@stats.gla.ac.uk> noted problem on DEC + Alpha OSF/1.3 evidentally due to backwards decl of index macro. + + Greg McFarlane <gregm@nms.otc.com.au> noted that large args in + send cmd cannot be passed blindly to exp_error. + + david d `zoo' zuhn <zoo@armadillo.com> requested modifying + configure so that it did not require Tcl/Tk to be built - only + configured. This means that it may not find installed + libraries. Hopefully, this won't cause anyone problems but its + not my preference. + + Fixed error which caused spurious eof when changing patterns + in expect_bg. + + Moved to autoconf-2.1 and m4-1.4. Rewrote a LOT of the config + file. Finally got my hands on an ISC box and fixed configure + for that. + + Tony Booker <tb@sequent.com> provides mods for Sequent ptx 2 + and 4. + + Jeffrey Friedl <jfriedl@nff.ncl.omron.co.jp> provided fixes for + timezone handling in config and exp_strf.c. + + David Schmitt <dschmitt@netcom.com> noted that library did + not detect eof on HP. I didn't think this was necessary for + read() but it evidentally is. I added the support for raw fds + although it is not obvious to me how to do it for FILEs. + + James Carter <jimc@math.ucla.edu> noted expect_after couldn't + worked in the exp_bg because I had accidentally written BEFORE + instead of AFTER when checking the cases. He also found that + the eof body could be trashed in an exp_bg. + + Ousterhout apologized for the Tcl7.4 change I noted in 5.13.1 + and said he will undo it. + + Eric Frias <efrias@vt.edu> found library bombed after timeouts. + exp_match_end was not updated - which makes sense since there + was no match - however the following expect call assumed that + exp_match_end was meaningful in order to do its buffer + shuffling. + + Jonathan Kamens supplied new configure test for REARM_SIG after + noting old could fail if limit prevented creation of core file. + He also noted REARM_SIG had accidentally been commented out + of cf file. + + Vincent D. Skahan <vds7789@aw101.iasl.ca.boeing.com> noted that + Apollo's stty reads stdout and doesn't complain if its bogus. + + Yoad Grinberg <grinberg@vnet.ibm.com> noted that SIGCHLD does + not work for forked processes, only spawned processes. Fixed + this and added counting to make sure none get lost. + + Hal Peterson contributed mods for Unicos. He noted that + configure should be more careful adding libs to the link line. + On the Cray, non-existent libs generate warnings which are not + detected by configure but which annoy make. + + Bela Gazdy <bela@euch3e.chem.emory.edu> noted /etc/resolv.conf + misspelled in kibitz. + + Rainer Wilcke noted that "send -null/break" mishandled return + code, and these and send/expect_tty were not in man page. + + Dvorak example was missing -- in send -. + +1/12/95 5.13.2 Peter Wassenaar <peterw@stack.urc.tue.nl> noted that kibitz + didn't work on AIX. My fixcat script assumed that AIX's cat + was like HP's cat - buffered by default. + +1/7/95 5.13.1 Marc Bouron <mbouron@lhr-sys.bru-ro.DHL.COM> noted I forgot to + add virterm to distribution. + + Marc W. Mengel <mengel@dcdmwm.fnal.gov> noted that configure + must be run in the foreground due to the stty tests. Added + this to documentation. + + Modified interpreter to account for the change in Tcl7.4 which + forces Tcl_RecordAndEval to call Tcl_GlobalEval instead of + Tcl_Eval. + + Changed ptys to be initialized based on current tty setting + rather than original tty setting. + + Stephen Melvin <melvin@zytek.fr> noted that set -e is the real + problem with ash (see 5.13). I bet "[" is returning a value + and triggering it. It appears that the script can live without + the set, so out it goes. + + Braun Brelin <bbrelin@netcom.com> noted pipe allocs in spawn + could fail with meaningless error message. + +12/15/94 5.13.0 Synchronize with appearance of "Exploring Expect". This + distribution corresponds to the book both in description of + Expect and in containing all the substantive examples. + + Graham Mark <gam@lanl.gov> noted that his Cray (Unicos 7.0.6.1) + didn't recognize TCSETCTTY. Since this was in some Cray- + specific code, I guess Unicos must have changed some .h files. + I made it include either termios or termio. It, at least, + works on our Cray (Unicos 8.0.2.4). + + Robert Withrow <witr@rwwa.com> noted that FreeBSD 1.1.5.1 + supplied union wait but waitpid doesn't use it! So I modified + configure to be smarter. He also noted that its /bin/sh is + really ash which blows up on install.sh. It appears that it + doesn't handle uninitialized parameters correctly. I'm not + going to fix this because having a broken /bin/sh is so awful + probably other things are breaking too. He did note that it + worked if he switched to bash or the native install, but that + blows the whole point of install.sh - that we have found too + much variation in native installs. Rather than try and figure + out everyone's variation, we'd like to simplify our life and + use this common, simple-to-understand sh script. + + Added more example scripts: Adrian Mariano's virterm (like + expect_term but without relying on Tk), gethostbyaddr, and + expectd.proto for telnet daemon. + + Matt DiMeo <mdimeo@brooktree.com> noted that expect_background + failed to detect eof on HP. I had forgotten to pass the mask. + + Josef Sachs noted that expect_background put Tk's event handler + in an infinite loop if it was listening to a pipeline that was + killed. I had aborted the cleanup procedure if Tcl's close + reported an error. That was a mistake. + + Rick Lyons <rick@razorback.brisnet.org.au> noted a bug. C lib + expect would turn a normal read into a poll if remtime reached + zero on the nose. + + Added ResetResult to Exp_Init to clean up diags in Expectk. + Made GENFUNCs return -1 on error as per ParseArgv's convention. + +11/13/94 5.12.0 Alon Albert noted that in clib, exp_match_end should be init'd + to exp_buffer before trying to match the pattern - if the + expect doesn't produce a match, exp_match_end is incorrect and + will be wrong for subsequent expects. + + Steven Diamond noted that fg expect did not react to a change + in an indirect spawn id list if it was just waiting for I/O + (rather than looping in exp_continue). + + Wait fix in previous version broke system() whose return value + is horribly overloaded. + +11/10/94 5.11.0 Stephen Fitzpatrick <sfitzp@cs.qub.ac.uk> noted that NeXT wait + macros do not accept int wait status. Switched to using Tcl's + detection of wait status type. + + Made log_file -leaveopen leave file id open until close like + spawn -leaveopen did. + + Bruce Jerrick <bruce@cse.ogi.edu> noted public include dir + wasn't getting created. + + Karl Vogel noted 1) Pyramid has index instead of strchr, strf.c + needs sys/time.h instead of time.h in strf.c, needs to call + timezone(), and stty reads stdout but usual stty test fails. + + Made expect_out(spawn_id) always be written to assist people + who want to log different procs to different files. This is + no longer an efficiency problem because interact can do so + much more then it used to. Made full_buffer condition write + forgotten chars even when full_buffer isn't explicitly + specified. + + Bert Robben <Bert.Robben@CS.kuleuven.ac.be> noted that the + debugger needs to know about the presence of stdlib.h. I was + hoping to avoid this because it's a pain getting configure to + call another configure. + + Rainer Wilcke provide several improvements for xkibitz and man + page. + +10/6/94 5.10.0 Moved example files around. Added password generation to + tkpasswd. Created standalone script to generate and set + passwords - good for all those adduser shell scripts. + + Rick Cady <rickc@NSD.3Com.COM> found a bug when switching log + files. + + Rainer Wilcke <wilcke@esrf.fr> noted that xkibitz died when + closing a connection. stdin was mistakenly being closed. He + also noted that killing xterms under HPUX 9 requires kill -9. + + Enzo Michelangeli <enzo@airhk.air.org> noted that SCO 3.2.1 + defined window size structure in ptem.h. + + Josef Sachs <sachs@panix.com> found a bug when calling fg + expects repeatedly between bg expects. On the first fg expect, + it cached the fact that the filehandler was armed. The next + background expect disarmed it but failed to update the cache. + + John P. Rouillard" <rouilj@dstar.iddis.com> provided configure + support for --with-{tcl,tk}{lib,include}. + + Mike Figg <figg@pencom.com> noted that man page used old style + of continue command. + +8/23/94 5.9.1 Adrian Mariano noted it would be useful to have exp_continue + not reset the timer. Added flag to support this. + + Morris Gasser <gasser@ksr.com> noted that lowering match_max + didn't work (lib was broken too). + + Keith Hanlan provided a fix for exp_exact. + + Added more examples: mkpasswd, tkterm, term_expect. + + Put close_tcl_files in sep file for easier non-Tcl use of clib. + +8/21/94 5.9.0 Fixed window handling code - on AIX, termios does not define + TIOCGWINSZ. Instead, you have to include ioctl.h. Of course, + you have to avoid the trap of including both on OTHER systems + such as SunOS 4.1 where the include files conflict! + + Dan MacDonald found that close in async routine caused sync + expect to blow up. + + Missed deletion of last line of out macro in exp_inter.c + + Simon Warfield <simonw@bwh.harvard.edu> noted bug in xkibitz + help message. + + Fixed exp_background to use global scope instead of current. + + Steve Diamond <sdd@aplcomm.jhuapl.edu> noted that -i "4 5" + only used spawn id 5. + + Rob Nagler found yet another bug in log_file when called + incorrectly. + + Expectk wasn't creating a window by default. + +7/25/94 5.8.1 Made exp_interp external. Users should be able to set this + explicitly. + + David Barnett <davidb@cats.ucsc.edu> found that Linux was not + getting a controlling terminal. The original test for doing + that was based on Stevens and tested in a very nonspecific way + for the presence of a Sun via CIBAUD. Replaced this with a + more specific test. + + It seems Tcl 7.3 broke my -nostack hack. The top-level interp + translates unknown return codes to TCL_ERROR. Sigh. I wish + Ousterhout would stop all of those translations. If the user + wants them, they can do so themselves, but now they're forced. + + Martin Buchhoz <buchhlz@vnet.ibm.com> suggested adding + XKIBITZ_XTERM_ARGS environment variable to xkibitz. He also + noted that stty rows/columns support doesn't seem to work on + AIX. I haven't yet looked into this. + + Copied 2nd sync mechanism from Expect to C library. + Added exp_child_exec_prelude hook. + + Jonathan Kamens noted that "spawn cat;close;wait" returned + -1 on AIX and 0 on Sun. This is "correct", however to + address this, I added -ignore to spawn and otherwise made + signals default. Also added extra information to return value + of wait if caused by signal. + + Dan MacDonald <hfvstud@bcarh80a.bnr.ca> noted that exp_continue + didn't cause timeout to get reread. + + Ting Tan <utan@cisco.com> noted that when using -b, expect + hangs if open brace and doesn't stop in case of error. + + Oops, broke "log_file" with no args. + + Removed -timestamp from documentation. Use "timestamp" command + instead. + + Keith Hanlan noted C library didn't test already arrived data + before attempting to read more. He also suggested I avoid + forcing the user to do save/restores of per-fd globals. + +6/24/94 5.8.0 Hubert Halkin <hhalkin@ucsd.edu> pointed out that interleaved + expect_bgs and spawns dump core. I had used the exp_f ptrs + as handles to TkCreateFileHandler but realloc shuffled them + around. + + Rick Lyons <pclink@qus102.qld.tne.oz.au> provided misc. mods + for Pyramid. + + Keith Hanlan <keithh@bnr.ca> noted that HP-UX C compiler causes + odd behavior in Expect when it is compiled with -O. -g works + fine. + + Peter Gasche <zrspg01@compserv.zdv.uni-tuebingen.de> pointed + out that Convex 10.2 fails to build. New version of Convex OS + added getpty(). Naturally, it differs from old one. Testing + is tricky because there is no header file for it. Even worse, + the algorithm in the Convex man page is incorrect - it allows + you to allocate ptys already in use! Unfortunately, the man + page is too vague to allow the reader to see that immediately. + + In contrast to BSD stty, Convex, Mach, and NeXT stty don't + complain if redirected to null. I'll just have to hardwire the + test in configure. + + Added -nowait flag to wait command. + + Upon suggestions from David Vezie <dv@xnet.ssl.berkeley.edu>: + Added -noappend, -open, and -leaveopen to log_file command. + Added -leaveopen flag to spawn and exp_open. + Modified spawn to close -open immediately. + Modified exp_open to close spawn_id immediately. + + Between Jeff Wright <wright@spock.cen.encompass.com>, Brad + Skrbec, Arup Mukherjee <arup+@cmu.edu>, and the anonymous + Mach support group at CMU, finally got hard answers about Mach. + It is no longer supported and there is no intention to provide + full POSIX support. Now, at least, I can fix the configure + script to understand this. + + Added "unbuffer" example. + + Dana Chee <dana@dino.bellcore.com> provided configure hooks + for finding -lnsl and -lsocket. + + Henry Spencer <henry@zoo.toronto.edu> noted timestamp doc did + not jive with C defn. Fixed doc and added timezone support. + + Steve Pynes <fb@steve@ucsd.edu> noted that exp_win.c needs + _IBCS2 (Intel Binary Compat Standard #2!?!) before it will + recognize winsize. He also noted #out was redefined in inter + code if using simple_event. + + Fixed defn of "stty cooked" to retain echo setting. + + Bennett Todd noted dislocate's pidfile_read was missing close. + He also noted useless bind in tkpasswd. + + Marty Leisner noted that ^C causes xkibitz to exit ungracefully + when in interpreter. + + Added yet another sync mechanism (see 5.6) to spawn so that + child cannot eof before parent has prepped the pty (only a + probably on HPs, of course). I had actually written most of + the code, but left it disabled because I hoped that the + problem simply wouldn't happen in practice. Alas, Jonathon + Kamens found a case where it does. + + Jimmy Aitken <jimmy@pyra.co.uk> noted problem on Pyramid. My + original code only looked for /dev/tty##. On pyramid, ptys + look like /dev/pts/4. term wants the last two characters, but + on the Pyramid, the first of the last two characters can be a + / in which case xterm wants a 0. I.e., suffix of /dev/pts/4 + is "04". xterm fails completely with 3-digit ptys! I sent + a suggestion and patch to X Consortium for this and the pid + problem - xterm has no way of telling it to which pid to send + the SIGWINCH. + + Poul-Henning Kamp <phk@TFS.COM> noted that -lm would make + autoconf forget about other libs. + + Ram Bhamidipaty noted I forgot to document sleep. + + Removed disasterous performance with * at beginning of glob. + + Mods from Rob Savoye. See ChangeLog. + + Earnest Hua <eh@c-cube.com> noted expectk.man need wasn't + installed. + + Bogus arguments to expectk were not reported correctly. + + Modified clib to catch when user changes match_max between + expects on two different fds and then switches back. + + Rewrote timestamp to get rid of 200 char limit. + + Ram Bhamidipaty <ram@xor.epi.wisc.edu> noted NetBSD .9 stty + complained "stdout appears redirected, but stdin is the + control descriptor". It compares dev(stdout) to dev(stderr) + and assumes if they are different then user thinks stty + ioctls stdout. This is one case when that assumption is wrong. + Fixed fd 2 so it points new 2 and is reset to old 2 if an + error occurs. This forced me to remove any diagnostic output + from child (in getptyslave) since this now went back to the + proc as child output rather than original stderr, sigh. + + Stephan Winokur <swinokur@pinky.trevose.sgi.com> noted that + IRIX 4.2 had problems with gcc. While diagnosing, I found + PTY_TYPE was used before set. Make doesn't mind (how odd) + but I changed it anyway. + + Made send understand "-null". Deprecated "-0". + + Made Expect read .expect.rc from DOTDIR if present. + +3/30/94 5.7.0 Removed alpha status. + + Added $(EVENT).o to library. + + Finally deleted old shar file. Revised README. + +3/22/94 5.6.3 Phil Moore <phil@signals.geol.scarolina.edu> noted termios.h + should not come from sys even if it exists. (SGI doesn't have + sys/termios.h.) + +3/21/94 5.6.2 Paul Kinzelman <pkinz@cougar.tandem.com> noted that I forgot + to remove -update from documentation. + + Fixed interact's -i so it understands indirect spawn ids. + +3/21/94 5.6.1 expect_background randomly failed. I forgot to save Tk's + event mask so occasionally events were incorrectly classified + as eof. + + Added -buffer to expectk and made "nobuffer" the default so + scripts are read in much faster. + +3/15/94 5.6.0 Added cat_buffers marker to avoid "catu" option to scripts. + + Got temporary use of an evaluation copy of TestCenter. + Promptly found several memory leaks. Oops. + + Added a synchronization mechanism to spawn so that user cannot + send to pty before it is init'd. This also deals with the HP + trap more simply. Removed extra open added in 5.5.1. While + working on this, it occurred to me stty needs to temporarily + disable trap. Added exp_slave_control so that C programmers + can get to it portably. + + Added "expect -ex" to documentation. + + Fixed winsize bug on Solaris. + + Added functions to allow user flexibility closing fds in child. + +3/8/93 5.5.1 Integrated bug fixes from Arnold Robbins <arnold@skeeve.atl. + ga.us> for his own strftime code. + + Rob Savoye passed back a patch from OSF to cast ptsname. + + Added a test for cat. R.K.Lloyd noted HP failed pid test. + Turned out to be another bug related to pty-trapping. The test + of course, was doing something that a user would never do. + Hope this doesn't break other HPs. Pty trapping is becoming + less and less clear to me. Ioctls generated by slave look like + modem ioctls. Added an artificial open because different + versions of HP's stty execute differing numbers of ioctls. + In test script, changed each cat to cat -u. + +2/17/93 5.5.0 Began a test suite based on Ousterhout's model: make test + + Added passmass man page. + Added decl of exp_tty_original to pty_sgtty.c. + Added error_spawn_id + + Alon Albert <al@mercury.co.il> provided a bug fix for new + buffer handling code in C library. + + Fix fd leak related to spawn -open. + +2/7/94 5.4.0 Some installation improvements from Rob Savoye and Owen Rees. + + Bug in handling empty string match - crept in recently. + + Finally fixed longstanding oddness: stty -raw reset echo. + + Made spawn close all file descriptors. Added exp_open command + to get old effect. + +1/26/94 5.3.5 Made rftp use /bin/ls to avoid -F from people's aliases. + + Initialized auto_path. + + Fixed exp_version so it fails if the major #s are not equal + (which is what the man page said). + +1/18/94 5.3.4 Jim Meyering <meyering@idefix.comco.com> gave config fixes + of X handling on Irix-4.0.5 and suggested that tknewsbiff + observe DOTDIR. + +1/18/94 5.3.3 Kevin Short <short@gdc.com> noted some remaining use of malloc + and free instead of ck versions. + + Initialize tcl_interactive to 0 while processing -c flag to + avoid unreliable handling of unknown proc. + +1/17/94 5.3.2 Jeffry Abramson <jra@hrcms.att.com> noted that "spawn -pty" + hung on an HP. Problem was trapping was enabled so as soon + as I tried to open the slave, Expect blocked waiting for ack! + +1/14/94 5.3.1 Forgot to delete a bad call to strcat in exp_internal. + +1/13/94 5.3.0 Added -info flag to log_file, log_user, exp_internal, and + strace, so you could get original args back out. + + Wrote tknewsbiff script (and was extremely pleased). + + Fixed rftp. I must have broke it when I changed to using Tcl's + new switch cmd. Also sped it up by replacing split/join + nonsense with a single regexp. + + Danny Faught <faught@convex.com> noted that glob patterns + returned shortest matches. While fixing this, found that glob + patterns ending in $ were broken, too. + + Massaged libraries and include files. The include file for + using Expect with Tcl or Tk is now expectcl.h. libexpect.a + now suffices for using Expect's funcs with C or Tcl. + + Add all the features from Expect into C library including + null and full buffer matching. Added exp_buffer (_end) and + some other variables to support fd multiplexing better. + Made unmatched chars from previous expects remain for future + matches. + + Chen <johnny@e0sun3.ccl.itri.org.tw> found bug in exp_pid when + -i had no arg. + + Rewrote expect_bg, after, and before so they all handle args + the same. Interact and all the expect variables now handle + indirects. exp_bg now handles -brace flag. + + Geoff Bullen <geoff@itx.nsg.com.au> noted that interact put + terminal into raw mode even if stdin was redirected. + + Rob Savoye provided more configure mods to better find Tcl/Tk. + + Fixed bug in wait that didn't close down "busied" fds. + + Kazuro Furukawa <furukawa@apricot.kek.jp> provided a better + default for SHORT_BINDIR in the Makefile and noted that DEC + doesn't understand "test -x". + +12/3/93 5.2.0 Recent fix was buggy and blew up when eof case still had data + in buffer. + +11/23/93 5.1.4 At request of Rod Beckwith <rodb@slugo.corp.sgi.com> fix some + minor things to which SGI cc was sensitive. + + Fixed bug in dvorak script where eof could occur in nested + interact, upsetting original interact. + + Forgot to change -flush to -nobuffer in man page. + + Added some more places to search for X11 for Jeff Moore + <jbm@internet.sbi.com> note. + + Added yet more fixes and notes for NeXT for Brad Skrbec + <skrbec@motcid.rtsg.mot.com> who found that NeXT has POSIX + include files but NOT the functions that go with them. Sigh. + Needless to say, configure is thrown off by this. + +11/14/93 5.1.3 John Pierce <jpierce@chem.UCSD.EDU> noted several declarations + that AIX's cc couldn't handle include a struct with same elt + name at two different levels. Also _IO is declared twice + in AIX include files but only checked once. + + Fixed bad args in exp_spawnl call in chesslib examples. Can't + imagine how it ever worked before. + + Richard Weidner <richard@cicero.jpl.nasa.gov> found a bug in + configure (test always treats a bare string as true!) that + caused NeXT to be declared as POSIX. + + Fixed two bugs in Tcl_StringMatch2. One caused glob ranges to + succeed when they shouldn't. Another was how malformed ranges + are handled, and came right from Tcl. Reported to John. + Switched Expect library to use T_SM2 from Expect itself. + + Blair Zajac <blair@olympia.gps.caltech.edu> noted expectk used + CLFLAGS instead of CFLAGS. + + Forgot to fix mishandling of parens inside of alternation in + interact. + +11/9/93 5.1.2 Added "null" keyword and remove_nulls command to allow matching + ASCII 0 in expect/interact. + + Rob Nagler <nagler@olsen.ch> noted that expect_background + failed if pattern didn't consume all data. event handler + knows nothing about data already arrived but not processed. + + Made Expectk understand -- + +11/8/93 5.1.1 Fixed yet another bug in setting expectk's argv0. + +11/6/93 5.1.0 Provided support to work with Tcl 7.[0-1] and Tk 3.[3-4]. + + Pasi Kaara <ppk@atk.tpo.fi> found an off-by-one in the buffer + shuffling when buffers fill up during an expect. + + Changed \\\$ to \\$ in patterns that search for literal $. + + Added "spawn -pty" support for xterm -S. + + Fixed yet another argv problem in Expectk. When run using + expectk explicitly, script name was left in argv. + + Fixed system command's return value to match exec new style. + +11/1/93 5.0.4 Mark Davies <mark@comp.vuw.ac.nz> noted that BSD4.4 sysconf + returns -1 (a bug). Rewrote to avoid requiring this info. + Switched from from explicit refs of sys_errlist to Tcl's + strerror. + + As per Adrian Mariano <adrian@cam.cornell.edu>, added exp_sleep + command primarily to allow sleeping by sub-second intervals. + Also avoids exec overhead. Not yet documented. + + Kartik Subbarao <subbarao@concorde.fc.hp.com> noted that on + HPUX 9, SC_OPEN_MAX should be ifdef'd on itself rather than + HAVE_SYSCONF. + + Karl Vogel <vogelke@c-17igp.wpafb.af.mil> noted Pyramid + didn't like varargs included twice in exp_command.c. + + Deleted expect_version variable (was never documented) and + deprecated expect_library to be exp_library for consistency. + +10/16/93 5.0.3 Lou-Salkind@deshaw.com found interpreter() could stomp past end + of input array. Same problem in debugger. + + Bud Bach noted init.tcl wasn't being sourced, and Makefile + broke if all scripts were commented out. + + Added interesting highlights and bindings to tkpasswd. + + Made Makefile look for -ltk if libtk.a doesn't exist. + + Rick Sladkey pointed out that -re patterns to look for $ should + "\\\$". + + R.K.Lloyd noted config doesn't see prototypes with K&R cpp. + +10/8/93 5.0.2 Bud Bach noted tcl_interactive was not set. + +10/8/93 5.0.1 R.K.Lloyd noted various problems, some related to being on an + HP when a lot of #ifdefs kicked in. + +10/7/93 5.0.0 Added expect_background. In the Tk environment, this registers + actions to be called upon receipt of a pattern from a process. + + Renamed "debug" as exp_internal" and made debugger available + as "debug" and "exp_debug". + + Milan Gupta <mbg0@bunny.gte.com> noted that system() (at least + on his HP) hangs when SIGCLD is ignored. + + <jason@vicor.com> noted that Tcl's exec command doesn't bother + to close fds, so force them with close on exec. + + Renamed "continue -expect" as "exp_continue". "continue + -expect" will continue to work, just won't be documented. It's + just too dangerous when you start mixing extensions. + Renamed "return -tcl" as "inter_return". Had to do something + to avoid random return values from matching "-tcl". This + design was just wrong. Surprising that it never bit anyone. + Renamed "expect_version" as "exp_version" just to continue + this regularity. + + Protected initial fd_new's with isatty so disconnect doesn't + lose redirected fds. + + Allowed DFLT_STTY to be omitted entirely. Apollo doesn't need + it. + + Modified fork to fail on failure instead of returning -1. This + made spawn failure match disconnect failure. + + Dan Hyde <drh@citi.umich.edu> noted missing arg in exp_error. + + Jerry Whelan <guru@stasi.bradley.edu> noted -buffer was botched + in man page. Hal Peterson noted that bug in man page caused + groff to choke. + + wait now returns {pid, spawn_id, 0|-1, status (or error msg). + errorCode is now set if appropriate. wait -i -1 waits for any. + + Propagated winsize to pty. + + Documented "-open". + + Quentin Stafford-Fraser <Fraser@europarc.xerox.com> noted that + interact -u was broken. + + Fixed interact's default actions "return"/"interpreter" to be + writable. Removed ability to set default eof/timeout. Removed + dash from same. + + Rewrote trap to use Tcl's async support. + Added -code switch and made interpreter understand "-nostack" + coming from error to use ^C to easily return to interpreter. + Introduced following incompatibilities: + - ONEXIT interface disappeared. Use "exit -onexit". (Thinking + of this as a signal bought nothing but complexity.) + Added "exit -noexit" to run all expect-related exit + handlers without exiting or destroying interp or ".". + Useful for when other apps have exit handlers. + - trap command takes missing action as a query. Use "" or + SIG_DFL to delete or reset a trap. + - SIGCLD gone. Now always called CHLD even if underlying + system only knows about CLD. + All sig handlers and exit handlers run at global level. + + Removed setjmp/longjmp crap. Not needed since systems which + wait in read don't restart system calls. + + Added support in expect for "-gl" and allowed longer forms to + match Tcl's switch command. Similarly for "-ex" in interact. + Rewrote arg parsing for send. + + Added "stty" command to support stty of ttys other than + /dev/tty. Better for /dev/tty, too. This should fix + security complaint from BSD's Net2 stty. + + <R.K.Lloyd@csc.liv.ac.uk> gave fixes for configure and noted + exp_main_tk was missing exp_conf.h. + + Added "exp_timestamp" command. Fixed bug in interpreter cmd. + It wouldn't return anything with TCL_OK. + + Renamed -flush to -nobuffer. + + Make interact default to executing actions in raw mode. + Accept -reset to execute in cooked mode. Ignore -f. + Fixed examples. Fixed bug in "-o -timeout". + + Deprecated getpid (due to Tcl's pid), added exp_pid. + + Put "rm -f" inside catch. SunOS 4.1.3 and some version of AIX + complain despite the -f! + + Added "send -break" for Dave Mielke. + + Fixed argv handling of expectk to match expect for Steve Clark. + + Switching to Tcl 7.0 + +8/21/93 4.7.7 Cygnus added support for OSF/1 style ptys. + + Brian Bebeau <brian@cblph.att.com> found bug in PTC support, + HAVE__GETPTY, timestamp doc, and provides some mods for config + AT&T StarServer. + + Detection of direct spawn ids failed on -1. + +8/18/93 4.7.6 Removed zone and gmtoff from timestamp. Not ANSI. + Removed getpid confusion. + Once again, added "cat -u" into kibitz (this time for AIX 3.2). + +8/18/93 4.7.5 De Clarke <de@lick.UCSC.EDU> hit error in exp_global.h because + tcl.h had not been included. + +8/16/93 4.7.4 Richard Kasperowski <richk@icad.COM> found that Ultrix 4.1-2 + failed to allocate controlling terminal. Ultrix's setsid is + evidentally buggy. Switched back to setpgrp - which fixed it. + + Fixed type defn of exp_tty_original. + + Dave Mielke found two bugs in interact: re-failure prevented + other patterns from matching a particular point in the stream, + and two or more -inputs didn't actually work. Also found bug + in HP trap handling - despite what docs say, other things + besides open/close have to be handled. Specifically, slave was + generating an ARGGET. Backed off on trying to wait immediately + for two OPENs to just waiting for one OPEN. Perhaps zero? + Also found deficiency in return -tcl - failed to return arg. + + At Dave's request, made cmdfile by read in a single gulp rather + than line by line. Added -b (buffer) flag for old behavior. + Old behavior performs badly on very long procedures but is use- + ful for reading commands from pipes. Made "system stty" return + status of raw/echo. + + Made log_user return previous value irrespective of args. + + Fixed mishandling of parens inside of alternation noted by + Bud Bach <bachww@rtsg.mot.com>. + + Added -timestamp, -iread, and -iwrite to interact and + expect. + + Added -onexec flag to close to solve problem posed by + Bellave Jayaram <bjayaram@slee01.srl.ford.com>. + + Added -0 to send. Removed capability of send to send multiple + strings. + + Chip Rosenthal noted bug in releasing trap 0's action. Also + modified exit handler to allow recursive invocation. Instead + of complaining, it skips handlers that have already been + invoked and forces the process to exit. + + Added new names for most command prefaced by "exp_". + Deprecated send_spawn. + + Switched to Ousterhout's ckalloc and attitudes towards failure. + + Started adding Tcl 7.0 support. getpid renamed to pid. Added + exp_pid to support things that Tcl 7 does with its pid. + +6/12/93 4.7.3 fnf@fishpond.cygnus.com noted minor type problems. Rob Savoye + noted trap SIGINT overrode debugger handler. Default should + be reverse. + +6/8/93 4.7.2 Added debugger to public release. + +6/7/93 4.7.1 Ed Oskiewicz <eo@ansa.co.uk> noted prototype botch - exp_cook. + Owen Rees <rtor@ansa.co.uk> noted missing decl - tclRegexpError + +6/6/93 4.7.0 Gert Bultman <bultman@dgw.rws.nl> exposed a bug in interact's + -update. + +5/27/93 4.6.0 Rick Sladkey <jrs@world.std.com> fixed a bug in send_log - + checking a master needlessly and indexing off the end of an + array. + + Rob Savoye made change for detecting libpt.a, modified + autoconf for better handling of X, exec_prefix, and ranlib. + + Kris Woeppel <krisw@cs.athabascau.ca> said SVR3 doesn't have + wait.h. + + Made libexpect.a understand regexp. Reorganized code. It + now requires Tcl to be installed first, although it uses only + a few utility routines. Hopefully this isn't a problem for + anyone. + + Zack Xu <zack@cs.wisc.edu> noted exp_main.h needed C++ support. + + Pascal Meheut <pascal@cnam.cnam.fr> gave fix for skipping over + null bytes while interact is pattern matching. + + Added "--" to expect, interact, and send. + + Added support for associating multiple -i's with a single + pattern, and -i's with no pattern for use with spawn_id_any. + + Made interact work with systems that lack select/poll. + + Added code and #defines for debugger. Debugger itself is not + yet available. + +4/19/93 4.5.2 Achim Flammenkamp <achim@HRZ.Uni-Bielefeld.DE> noted that I + documented full_buffer as buffer_full. + + Ted Stockwell <ted@sirius.aggregate.com> noted that wait arg + was missing an & in configure test. + + Scott Hess noted that systems can have wait4 without waitpid. + + Jonathan Kamens <jik@gza.com> noted/fixed some things that + weren't autoconf'd correctly: pid_t, RETSIGTYPE, malloc. + + Gary Shea noted that a recent change to expectk made it not + default to interactive. + +4/12/93 4.5.1 At request of Rusty Wilson <zrlw05@hou.amoco.com>, added + "-console" to spawn. + + Pang Wai Man Raymond <wmpang@cuse1.se.cuhk.hk> reported that + passmass didn't grok DEC's passwd prompts for root. + +4/7/93 4.5.0 Fixed bug in interact regexp preventing match of multichar + literals. + +4/6/93 4.4.3 Bennett Todd <bet@sbi.com> noted missing example scripts + timed-read and time-run. + +3/29/93 4.4.2 Bill Houle <Bill.House@SanDiego.NCR.COM reported fixes + for SVR4 pty support to compile. + + Made string matcher understand *$. Documented tty_spawn_id. + Made command line -i override -f. + + For Tuan Doan <tdoan@bnr.ca> on HP, make kibitz use domainname + as fallback and used whoami instead of env(USER). + + Fixed bug in the generic pty code that could report out of ptys + because an earlier slave slowly deleted the lock file. + +3/25/93 4.4.1 Stephen House <sdhouse@bnr.ca> reported exp_tk.c wouldn't + compile on HP. Fixed. + +3/24/93 4.4.0 Added back SVR4-style pty allocation which got omitted in the + autoconfig process. Fixed bug in interact's -update handling. + Fixed bug in weather script that cut off long reports. + +3/15/93 4.3.0 Cleaned up /tmp files used during pty locking. + + Added command "parity" to enable parity stripping. Fixed + match_max to do -i correctly. + +3/15/93 4.2.4 Fixed to work on new SGI which returns slave-close via excep + (select) or POLLERR (poll) rather than thru read(). Why do you + people do things like this? + +3/12/93 4.2.3 Fixed to work on AIX (using /dev/ptc) and UTS (using getpty). + +3/11/93 4.2.1-2 Fixed numerous bugs relating to HP ptys. It's amazing that for + their bewildering complexity, they couldn't support generation + of EOF to the master (or at least enable trapping of just + close), rather than forcing the code to know about opens, too. + +3/8/93 4.2.0 Integrated Rob Savoye's autoconfig code. + + Interact mishandled new -eof flag. Added -update. + + Gary Shea <shea@cs.ukans.edu> noted that tkwait hung if + expect had been called. Rewrote most of tk_event.c and fixed + some other problems related to efficiency & multiple timeouts. + + E Beck <beck@qtp.ufl.edu> suggested mods to more easily support + Extended Tcl. + + Bill Mitchell <mitchell@mdd.comm.mot.com> reported problems on + 4.3+BSD. Added support for TIOCSCTTY. + + Dana Burd <dana@wrs.com> noted that "exit" caused by ^C during + expect didn't work - just returning to expect. Fixed, and then + removed "feature" of ^C to abort a timeout. This feature + proved a lot less useful than I thought it would. + +2/21/93 4.1.0 Bill Tierney <wtierney@leland.stanford.edu> noted that double + close dumped core. Rewrote fd_to_f and close/adjust functions. + + Interactive interpreter() didn't properly wait in + get_next_event, so Tk stopped responding to events. + Wrote version of interpreter that shares expect's input buffers + but can't think of a use. Left as an ifdef SHARE_CMD_BUFFER. + +1/26/93 4.0.1 Added eof check to xpstat. Removed incorrect and unnec. + #includes from exp_main_exp.c + + Chip Rosenthal <chip@chinacat.unicom.com> found my refs to + tclRegexpError need externs on systems that don't use Tcl's + string.h. string.h should probably be changed not to refer to + tclInt.h. + + Added FAQ about Expect's copyright status. + + Mark Christopher <christo@bnr.ca> pointed out some really + stupid errors in the HP support for select. + +12/16/92 4.0.0 Rewrote interact. Made re-entrant thru event-handler for Tk. + (Same for Expect.) Abstracted out common code so that + remainder is specific to select vs poll vs tk (although + "simple" was impossible to handle). Added timeouts, regexps + (at request of numerous people), ability to set up arbitrary + graphs of process flows, and some miscellaneous but useful + functionality. New flags are: -input, -output, -re, -echo, + -flush, -eof. + + Added "-noecho" to spawn command. + + Added getpid command. Something with this functionality should + be added to the Tcl core. When it is, this function will go + away. + + Removed assumption of global "interp" handle. Rewrote init + and other routines for use as libraries. Added appropriate + glue to Makefile. + + At request of Rob Savoye <rob@cygnus.com> added "send_log" and + disabled buffering on all output. The only affect unbuffered + output will cause users is if they pass large strings in + multiple args to send. + + Ray Davis <rdavis@masschaos.de.convex.com> reported Convex + could not do job control from spawned procs. I added a symbol + DO_SETSID to force this. + + Martin Leisner modified rftp to understand iftp. I added it + to the publicly donated scripts directory. + +11/17/92 3.24.1 Martin Leisner suggested Makefile use $(MAKE) and support Tcl + as a Sun shared library. + + Seth Perlman <seth@welchgate.welch.jhu.edu> suggested interact + support timeout. I've added this as "-timeout" in inter_select + but left undocumented while we experiment with interface. + + Joe VanAndel <vanandel@ncar.ucar.edu> pointed out that su2 + script still used old syntax. Fixed. + + Konrad Haedener <haedener@iacrs1.unibe.ch> fixed a bug in + POSIX tty handling on AIX. Surprisingly, we discovered AIX + worked just fine when pty_bsd is used and without -DPOSIX! + + Doug (George Jetson) <pynq@midway.uchicago.edu> pointed out + that a spawn_id for /dev/tty would be really handy. I added + tty_spawn_id for this purpose. + +11/4/92 3.24.0 After problem reported by James Ward <jew@sunquest.com> added + to man page describing delays required by hardware such as for + UART switching. + + Recoded all \C sequences as \### in examples and man page in + anticipation of them going away in next version of Tcl. + + Switched to printing errorInfo during errors instead of the + command and only the top-level error message. Since this + includes entire stack, this should be very helpful. + + J. Cazander <cazander:pasichva via serigate@phcoms.seri. + philips.nl> reported that purify found a write beyond the end + of an input buffer. Lucked, it was just before a double-word + boundary, so it probably isn't a problem. I fixed it anyway. + +10/9/92 3.23.1 Tor Lillqvist <tml@tik.vtt.fi> supplied support for HP 8.0.7 in + POSIX-mode, and a bugfix for POSIX tty mode switching + +10/8/92 3.23.0 Larry Rogers <lrr@Princeton.EDU> reported that "weather" blew + up in spawn. I'll add a catch-all to the script to report + similar problems (out of ptys, processes, etc.) + + Ting Leung <tleung@bnr.ca> notes that log() in human_write can + receive a 0 (domain error). Fixed unit_random to avoid that. + + Tony Primavera <aprima@xox.ssc.af.mil> notes that the sample + archie script needs to understand mcgill's limit of 10 users. + Tor Lillqvist <tml@tik.vtt.fi> noted that a lesser-used pattern + ("unknown...") is incorrect. + + Grant Taylor <gat@pecan.cray.com> found a problem when forking + (using Expect's fork) multiple processes, each of which spawned + something. In the BSD pty support, I had used the pid to build + a temporary file for testing the pty before actual use. When + multiple processes tried to use the same tempfile, it blew up. + +8/12/92 3.22.13 Corey Satten pointed out that -u on cat caused kibitz to slow + down on Ultrix. I see the same behavior on SunOS. I added an + option to fix it for systems that need it. Corey also noted + arg miscounting in kibitz, and pointed out that world-readable + fifos could be a security problem. He gave a fix for this and + also a fix to force ptys to be put into raw mode. + + Terrence Brannon <tb06@pl122e.eecs.lehigh.edu> reported rftp + referenced the undefined variable 'transfer'. Turned out to be + a bug in the code to handle symbolic links. + +7/20/92 3.22.12 Added O_NOCTTY (if defined) in pty_bsd.c to avoid gaining + control terminal while testing pty when running as daemon. + + At request of Michael D. Riley <riley@mbeya.research.att.com> + added explanation to man page - how expect_after/before deal + with spawn_id. + + Charles Hannum discovered the problem with AIX (see earlier) + was a missing "extern" in the errno declaration. Also, the + compiler was sensitive to a lack of access to the defn of + struct expect_special. + + Dave Coombs gave me yet another fix for the weather server to + accomodate its ever continual change. + +7/2/92 3.22.11 Yet more work. Discovered that SunOS and Ultrix really like + setpgrp(0,0) much better than setpgrp(0,getpid()) but the + manual doesn't describe well why this seems to work better. + (The old call worked inconsistently.) + +6/30/92 3.22.10 Did more work on modifications to dissolve connection between + stdio and devtty. Eventually, I'd like to add a separate + spawn_id for devtty (expect_devtty?). + +6/5/92 3.22.9 Hansel Wan <hhw0@gte.com> noted that $errorInfo was clobbered + by prompt1. To prevent this, I added a default definition + for prompt1 (and prompt2 while I was at it). + + Unnati Amin <uxa@po.cwru.edu> noted that the example scripts + checked for $ in prompts which didn't work. This bug was + created when $ was turned into a "match end-of-input" char + in the transition from v2 to v3. Solution: backslash the $. + + A few parts of code assumed spawn_id was always stdin, which + caused "send" to send to stdout, which meant succeeding + expect's hung, waiting forever. Fixed is_user macro. + This was a problem with scripts that redirected stdin or + somehow reused fd 0. Surprising that no one ever did that + before - also surprising that it didn't bother cron jobs. + +6/2/92 3.22.8 Man pages fixes from Matt Crawford crawdad@fncent.fnal.gov. + +5/12/92 3.22.7 Missing ; in Makefile, screwed up chmod. + + Fixed bug that caused interact to think the modes had changed + when they hadn't. + +5/11/92 3.22.6 Added regression paper to ftp archive - published in the 1992 + USENIX San Antonio Proceedings. + + Swapped setpgrp and fork in disconnect command for sysV88. + According to Dave Schmitt <daves@techmpc.csg.gss.mot.com>, + original code (right out of Stevens) starts the child with + closed stdio fds. + + Fixed bug in interact that changed /dev/tty modes even if + interact was used to connect two completely different ttys. + Had never been a problem before, but today I wrote some code + that actually calls interact from cron! Also, copied the + experimental fix from 3.22.5 to inter_poll. + + Jeremy Nussbaum <jeremy@world.std.com> says cat needs "-u" in + kibitz for his HP 8.0 system to work. I wonder why this has + never been a problem on earlier HP and other systems? + + Forced Makefile to mark scripts executable. + +4/12/92 3.22.5 Fixed bugs reported by Matt Ranney <mjr@uther.Calvin.EDU> + including a syntax error (!) in expect.c on ecases_inuse. + I didn't even compile this before pushing out? He also noted + some # were not in column 1. + + I put in an experimental fix to interact (only in select + version currently) to fix when pattern matching from master + and user needs to continue typing in order to complete match. + +4/3/92 3.22.4 Charles Hannum (mycroft@gnu.ai.mit.edu) pointed out that I + screwed up a comment in the brand new pty_aix3.c. He also gave + me a fix for an arg-less expect, which did a malloc(0). And + he said that AIX ptys return EOF in yet a new way - read() + returns -1 with errno == 0. Yuck. + +3/29/92 3.22.3 Jay Schmidgall gave me yet another pty_aix3.c. He also gave + ifdefs for POSIX terminal support. + +3/18/92 3.22.2 Jay Schmidgall <shmdgljd+@rchland.ibm.com> modified pty_sgi3.c + to make a pty interface for recent versions of AIX. + + Steve Summit <scs@adam.mit.edu> noted that "trap 0" could + actually call signal(0...) + + Martin Leisner <Martin_A._Leisner.Henr801C@xerox.com> noted + that rftp was broken. It seems I never handled symlinks. They + are interesting. You can't tell from the listing whether they + are files or directories, so you just have to blindly go ahead + and assume it's one or the other and see what happens! + +3/11/92 3.22.1 In talking to Dave Schmitt ,daves@techmpc.csg.gss.mot.com>, + realized the documentation for wait had never been updated + from the way it used to work in v2 (returning any pid). + +3/11/92 3.22.0 Another question from Ron, prompted me to find another bug. + interact -o wrongly manipulated the user buffer at one point. + +3/10/92 3.21.0 Ron Young <ron@nevada.edu> found that spawn failed on a + DECstation 3100 running Ultrix 4.2. I had forgotten to test + that cmdfile was valid before comparing against stdin in fix + related to fflush in 3.20.0. + + While I was on a DECstation, I noticed that it does not accept + setpgrp(...,0). Changed 2nd arg to getpid(). + +3/6/92 3.20.2 Stefan Farestam <farestam@orion.cerfacs.fr> provided a new + version of pty_sgi.c which uses _getpty. I renamed the old + one pty_sgi3.c + +3/3/92 3.20.1 Brian Woodson requested I update the dates and version numbers. + +3/1/92 3.20.0 Prompted by a question from Ken Mandelberg, added -raw to + noidle and kibitz script. + + Fixed fflush(cmdfile) again, having been authoritatively told + by net wisdom that there is no way to portably fflush a shared + read-stream. (I take back my claim about a bug in HP's fclose!) + + John Sellens gave me some more fixes for non-DEC MIPS OS. + +2/22/92 3.19.1 John Sellens <jmsellen@watmath.waterloo.edu> gave me a bug + fix for NOWAITPID. + +2/21/92 3.19.0 Found a bug in HPUX fclose!! It moves the I/O pointer in the + shared file table entry! This explains the symptoms I reported + earlier. Fortunately, it's easy to code around (by me - it is + no longer necessary to fudge the scripts). + + Added some stuff to the man page to explain why expect behaves + the way it does in an emacs shell window and how to live with + it. + +2/21/92 3.18.0 Worked on the HP port some more. The HP causes a real problem + by insisting SIGCLD be delivered in order for wait to return + a status. This royally complicated the code, partly because + of the special casing all over the place in the trap command, + the asynchronous delivery of SIGCLD and also because Tcl itself + is not prepared to have system calls be interrupted. Cleverly, + the HP also defines both CLD and CHLD which threw my macros + off at first. Thanks, but I don't this kind of help! + + Anyway, the end result is that on the HP, SIGCLD is ignored. + The manual claims wait status will not be delivered but it + seems to be anyway. Good grief! (Even if it were ignored, + it would not be such a calamity, since wait is used mainly + to discard zombies on other systems.) + + A remaining problem is that there appears to be some odd + interaction, perhaps with fork, such that the script is rolled + back at eof if a spawned process happens to exit at the same + time. The solution for now is to exit all scripts via exit + rather than letting exit be called implicitly. There must be + some real bug, but I'm unable to find anything after lots of + testing, line and Saber. At the moment, I'm highly suspicious + of the HP itself rather than expect. + + Bob Proulx and Jeff Okamoto supplied me with patches for + inter_select.c. HP transmits some pty interactions via the + exception field in select. + + Michael Grant gave me a mod to grok ~ in the logfile and + debug commands. + +2/17/92 3.17.1 Brian Keves <keves@meaddata.com> pointed out that the man page + still referred to "expect_match" instead of "expect_out". + +2/12/92 3.17.0 Eric Arnold <Eric.Arnold@corp.sun.com> ran into a problem + when running in the background. interact did ioctl(0...)s to + change the terminal mode, ignoring the -u flag. + + Fixed a bug in kibitz which blew up when asking for a password + due to a spelling error. The drawbacks of interpreters... + +2/4/92 3.16.3 Dongchul Lim <lim@doctor.chem.yale.edu> noted that scripts can + hang in the background. I had assumed isatty(0) was enough to + contrast bg/fg but it returns 1 if the script was started with + a & from the terminal. I added code to watch if any ioctl(0)s + were done. If so, than it is safe to do more, in particular + in the exit handler to reset the terminal modes. + +1/28/92 3.16.2 Fixed a bug on SV systems causing errors when trying to do + further reads after a SIGCLD had already arrived on a spawn_id. + + Peter Funk <pf@artcom0.north.de> gave mods for SCO XENIX 386. + +1/24/92 3.16.1 Oops. Forgot to add pty_svr4.c to shar. + +1/13/92 3.16.0 Karl Lehenbauer <karl@sugar.NeoSoft.Com> a tiny change for + getting a clean compile on SCO 3.2.2. + + My getimeofday-avoidance code wasn't right, sigh. Kibitz + noticed. Fixed two other bugs in kibitz - password request + was for wrong user and it timed out but shouldn't have. + + Note: seems to work fine with new version of Tcl: 6.2 + +1/13/92 3.15.1 Added a bit of code to avoid gettimeofday system calls when + timeout == -1. Fixed minor bugs in kibitz relating to cleaning + up and returning error messages. + + Redid support for stdlib.h including making it default to fix + problem in Ultrix 4.2 reported by Oliver Kretzschmar <viskretz + @ikesg1.energietechnik.uni-stuttgart.de>. + + Ian Johnstone <ianj@sequent.com> said his system (DYNIX 3.2) + needed an additional include <ctype.h> in inter_select. + + Dave Coombs <cme.nist.gov> added logic to test/weather to + accomodate a new feature in the weather server. + + Hal Peterson fixed some SV code that I just added for handling + SIGCLD properly. He made the Cray-extra-child timeout in half + the normal timeout to allow distinguishing between eof and real + timeout. Finished rest of Jeff Okamoto's fixes for HPUX. + + Wally Strzelec <packman@tamuts.tamu.edu> provided mods for + Amdahl which has its own pty-handling functions. Ifdef'd into + pty_usg. + +12/30/91 3.15.0 Fixed a bug that struck when eof occurred when reading from + multiple processes simultaneously and no user-supplied eof + handler. + +12/26/91 3.14.1 Ted Gibson <tgibson@logdis11.hq.aflc.af.mil> gave me some mods + for a 3B2 having to do with termio vs termios, etc. + +12/24/91 3.14.0 Deprecated expect 2. Expect 3 is now the official version. + + Parag Patel <parag@netcom.netcom.com> gave me some #includes + necessary for A/UX 2. + + Brian Woodson noticed "send a b" generates incorrect debug + output. + + Working with Jeff Okamoto to run expect on HP/UX 8.0, we fixed + SIGCLD catching (he says HPUX doesn't ignore them by default?), + obviating longjmp from stomping locals, fixed a bug in cmdWait + that would prevent the wait status from being collected in + rare situations. + +12/17/91 3.13.1 James Davis suggested fixing Makefile to handle case where no + example scripts should be installed. I added similar logic + for script man pages. + + Pete Siemsen fixed a bunch of things in the Makefile including + where to get expect when invoking fixline1. He suggested defs + for supporting install and multiple MAN targets. + +12/12/91 3.13.0 Matthew Freedman <mattf@cac.washington.edu> noted mismatch + between lib man page (said "stty_init") and lib code (said + "exp_stty"). He also found a screwup in the library such that + the pty slave wasn't being set up correctly. + + Added note to kibitz man page on how to kibitz with 3 or more. + +12/12/91 3.12.0 "expect *" worked incorrectly if it was first expect after + spawn, due to buffer not being initialized. + + Added a good example for "expect -continue" to man page. + Added an FAQ about a gcc problem that seems to be common. + +12/11/91 3.11.2 James Davis noted I forgot to put kibitz.man in distribution. + I changed kibitz to read domain from resolv.conf instead of + calling domainname(1) for systems upon which NIS domainname + differs from Internet. + + Pete Siemsen <siemsen@barnard.usc.edu> noted slight error in + libexpect man page. + +12/10/91 3.11.1 A couple tiny mods to the Makefile courtesy of James B. Davis + and Michael Grant (guest worker from Sun, temporarily at + <mgrant@xdr.ncsl.nist.gov>. Both of them also noted a problem + caused by incorrect installation of gcc that caused expect to + say "ioctl(set): Invalid something or other" upon exit. + + Fixed complaint about exit() while compiling without STDC. + +12/9/91 3.11.0 beta! + + Hal Peterson provided fixes for UNICOS 6.1 and 7.0 on both + CRAY-2 and CRAY Y-MP. He also fixed a problem in interact + where malloc(0) could've occurred. + + Added support for allowing user to set interpreter prompt. + + Added forgotten -d flag to match_max in rftp script. + Made kibitz understand user@host. + + Expect's internal buffer-full-handling incorrectly copied + the latter buffer half beginning from the end of the buffer. + +12/5/91 3.10.1 Massaged Makefile to allow for more flexibility in + installation, especially with regards to scripts. #! is now + reset. + + Added "kibitz", a really cute script to let two people control + one program. Example users are for one person to help another + remotely, logging a conversation (run emacs or whatever inside + kibitz and your conversation can be logged, scrolled backwards, + etc., or of course, playing games together. + +12/4/91 3.10.0 Tightened up arg checking for "wait" - it core dumped when it + should've said "syntax error". + + Rick Cady <rickc@nsd.3com.com> noted minor inconsistency in man + page describing strace. + + I fixed a bug that prevented "system stty -echo raw" from + working. The raw data was clobbering the -echo data. + +12/3/91 3.9.0 Brian Woodson noted that "close -i ..." evoked a syntax error. + I had parsed the arguments incorrectly. + + After the nth request, I finally set up pub/expect/scripts as + a directory for scripts. + +12/2/91 3.8.0 Phil Sheperd <pshepher@loki.uni.edu.au> fixed a major bug in + exp_spawnv() preventing one side of the pty from being set up + correctly. Thus nothing worked! He also reported that his + system didn't have strdup, so I added an explicit defn of it. + + James B. Davis fixed a couple nroff-bugs on the man page, and + said someone already gave him a dump script (see below). + + Richard (R.C.) Vieregge <richv@bnr.ca> found a $ was missing + from test/ftp.exp. + +11/22/91 3.7.2 James B. Davis <james@solbourne.com> straightened out a couple + things in the Makefile and asked if anyone had written a script + for dump. + + Jeff Okamoto <okamoto@hpcc25.corp.hp.com> had a couple changes + for HPUX 7 and 8 compat, involving termio stuff. + + Prompted by Andy Norman, added note to man page describing how + to disable all argv processing while using #!. + + Converted passmass and rftp over to new version. + +11/15/91 3.7.1 Brian Woodson asked me about the Tcl_WaitPids "got unknown + process" panic. This is a Tcl bug that John has promised + to fix. I'll document how to avoid it in the man page. + + Incidentally, I'm going under the knife tomorrow for three + torn cartilage in my wrist. The doctors say it may be a couple + days to couple months. Until I get back, hang in there. + +11/13/91 3.7.0 Yet another bug discovered (and fixed). "expect eof" was + failing to remember the buffer, and expect_out(buffer) was + empty upon return. + + Brian Woodson noted I forgot to document the -i flag of close. + +11/12/91 3.6.0 Sean Cunningham <sean@moorenet.com> reported that he couldn't + open /dev/tty from 'at'. 'spawn' was incorrectly not executing + code to claim it was a controlling tty. BSD only. + +11/11/91 3.5.1 Brian Woodson notes that version 2 and 3 treat the following + differently. + + proc p {} {spawn s}; expect + + In v3, spawn_id is locallized by the proc, and thrown away when + p returns. Unfortunately, in v2 due to some sloppy coding on + my part, spawn always affected the global value of spawn_id. + This differed from the handling of other variables, and in v3, + this unusual behavior had to go, because the multiprocess + handling and the large number of variables implicitly set + (especially by the expect command) demanded that I be more + systematic about how this was done. + + Since I never depended on this behavior, I never documented it + as being something you should rely upon. Alas. To fix it, add + the line + + global spawn_id + + to the beginning of any proc that calls spawn and needs the + value of spawn_id implicitly defined outside of the proc. + +11/6/91 3.5.0 Drew Whitehouse <Drew.Whitehouse@anu.edu.au> hit a bad pointer. + I forgot an initialization in expect.c which caused problems + when an EOF occurred which had no eof pattern. + +11/2/91 3.4.0 Added FAQ from various questions people have sent me and my + replies. Made CONVERTING file on converting from 2 to 3. + + Nelson H. F. Beebe <beebe@math.utah.edu> found a missing + declaration for exp_tty_original in bye() of main.c. How come + the Sun C compiler doesn't complain about this!?!!? + + Nelson also reported that SunOS 4.0.3 had a problem including + varargs. It turned out that old varargs had check for + reinclusion, and tclInt.h also includes it. So I added an + #ifdef va_dcl and put my inclusion after tclInt.h. + +10/31/91 3.3.0 Converted most of the examples. Three more to go. + Worked on man page some more. + + Modified expect so that if timeout > 0, and nothing in the + buffer matched, it will force a read, no matter how long the + preceeding code took. This may be hard to understand, but is + the intuitive behavior that I always desired. + +10/30/91 3.2.0 Fixed bug in eof handling. Converted some more of the + examples, and added to Makefile. + +10/29/91 3.1.0 Fixed slight bugs in tty mode switching, pty initialization + (via stty). + + Fixed expect library. Fixed compatibility code for non-BSD + systems. As usual, I could only test it so far, not having + all these systems at my disposal. I don't expect major + problems though, since the basic functions I depend on haven't + changed. + + Completely rewrote handling of continue, return, etc in + expect, interact, interpreter. It's actually systematic now. + + Checked with John O. about some code to bounce wild return + codes, which he said was a mistake and would remove, so now I + can pass my own return codes different from Tcl's. + +To get | to return -> TCL_RETURN TCL_OK (no return) + V + expect return default continue -expect + interact return -tcl return default + interpreter return -tcl return default + + What this table says is, to get "interpreter" (for example) to + return TCL_RETURN to its caller, you must say "return -tcl", + because "return" makes it return TCL_OK. + + The "argumented" versions are considered to be the uncommon + form. In particular, I'd be surprised if anyone ever uses + the -tcl argument, but it's there for completeness and + consistency now. + + Put together a FAQ. Needs more work, but hopefully worthwhile + as is. + + Computing Systems with Expect article appeared a couple days + ago. How ironic that it describes the old version of Expect. + Nonetheless, it looks ok. + +10/25/91 3.0.0 alpha! + First release of Tcl-6.0-ready code. + It might fly for a couple seconds. + + Here is a quick list of changes. Besides Tcl incompatibilities, Expect + incompatibilities are flagged below as: + + ** major - scripts definitely won't run if they depend on this + * minor - scripts probably will run but there is some subtle + change that should be examined). + + ** Select renamed 'ready' and undocumented. Seems pointless now. + + Added support to expect command for waiting on patterns from + different processes. The old version implemented this via + 'select' but but it is much simpler via expect. Added -i to + a number of commands to signify a spawn_id which overrides + the variable. + + Added any_spawn_id to match any spawn_id. + An explicit null pattern, forces a spawn_id to be considered + when all it can possibly match are any_spawn_id patterns. + + * output is no longer flushed to expect_match upon timeout. + May be multiple buffers now, so it doesn't make sense to + flush just one.) -n was added to disable transfers from input + buffer to expect_match var. I suspect it will only be used + for experimentation. + + Added expect -re for regular expressions. Added expect_out + array to retain indices and strings of partial matches for + ** for both glob and re. expect_match has been renamed + expect_out(buffer). + + A la Tcl, added -nocase for both types of patterns. (Oddly, + Tcl's case only does it for regexps.) + + By popular demand, unanchored glob patterns. Old patterns + will continue to work, since earlier interpretation was much + stricter. Unfortunately, unanchored matches make certain user + errors easier. For instance, people will send answers before + seeing all of the question. Typically, output can 'look' + ugly, as answers land in the middle of other things. + + To anchor patterns, use ^ in beginning and/or $ at end. + + Added expect_out(spawn_id) to report which spawn_id was read. + + Made expect and variants understand all args as one arg. + + Added 'default' pattern. + + Added continue_expect command. + + Added expect_before, expect_after commands which take same + args as expect, but continue to stay in effect for all expects. + + ** Added match_max command, deleted it as a variable. The old + way was too coarse for use over multiple spawn_ids. With no + arg, returns current max. Takes -i flag and -d for default. + + Added globbing to spawn command. + + Added optional -i spawn_id to wait. + + Added optional -i to send (and all its variants). + + Renamed trace to 'strace' since it conflicts with Tcl's new + trace command. Since 'trace' traces variables, I figured + 'strace' wasn't too bad (for "statement trace"). I felt + obliged to make it short and not as obliged to make it as + meaningful since it will probably invariably be typed by hand. + + Made timeout == -1 mean infinity. + + Made interact do pattern matching in both directions via + use of -o flag. + + Added -F flag for convenience. If -f or -F used, interact + can no longer be overrun. In particular, if more characters + arrive then match a pattern, remaining characters will be + buffered rather than thrown away (old behavior). + + Patterns may now be substrings of one another. + + Made interact optionally take all args as one. + + Default action is now 'interpreter' (see below). + interpreter now forces cooked mode, and echos results + so you don't have to constantly say "send_user [...]\n" + + * Interact reads characters that have been buffered but not + matched by expect. And vice versa. Does anyone care? + (My rogue script did.) + + From discussion with John Conti, I decided to make + 'interpreter' a separate command to start up interactive + command processor. Changed default action in interact to this. + Added eval depth and event id to prompt to interpreter. + + Added expect_library which contains path for commonly + sourced expect scripts. Automatically source expect.rc + out of expect_library unless -N given. Automatically source + ~/.expect.rc unless -n given. + + Added expect_version command to print and/or verify script + is compatible with running expect. Tcl version is also tested. + Felt it was worth making this a command because it's such a + pain to tear apart version strings. + + Tcl's close and exit are both subsumed by expect's commands + of the same name. + + Rewrote mode switching code so that "system stty" is handled + specially. This allows interact and interpret to get the modes + they want, without burning the user. It is now much easier + to leave expect in raw mode all the time, but the choice is + up to the user. + + Added vgrindefs, courtesy of Brian Fitzgerald. + +9/23/91 Tcl 6.0 released. This new Tcl has some incompatibilities + with the old Tcl, so as long as everyone is changing their + scripts already, I'm taking the opportunity to make some + incompatible changes to Expect that I've wanted to do for a + long time. + +9/11/91 2.67 Ed Klein <eklein@syrinx.umd.edu> added support for SVR4 in the + form of pty_svr4.c and mods to command.c. + + Added explanation to man page of how to create unreadable but + executable scripts. (No, chmod 111 doesn't work.) + + Mark Diekhans <markd@grizzly.COM> pointed out to me that there + is a potential problem with the trap command: + + "There is no control over when the signal will cause Tcl_Eval + to be executed. There is a chance that code in the Tcl library + will be executing when the signal comes in and the interpreter + data structure will be in an inconsistent state. This could + cause all sorts of nasty things to happen. In our Extended Tcl + (4.0) we added signal handling. but the way we implemented it + was to have the signal handler set a global flag. We modified + Tcl_Eval to check the flag after it finishs executing each + command. If the signal came in, Tcl_Eval then returns an error + such as: "SIGINT signal received". Signals may then be caught + with the catch command and processed." + +9/10/91 2.66 Don Jackson <Don.Jackson@Eng.Sun.COM> found a syntax error in + the usage error message of the example ftp-rfc script. + + Marty Olevitch <marty%cosray@wuphys.wustl.edu> provided mods to + support MORE/bsd. Namely, added #include types.h to expect.c + and extern int errno to a number of files. + + Scott Hess <scott@nic.gac.edu> noted a potential problem in + interact. Since interact only checks patterns at beginning + of reads, user can conceivably type fast enough so that + patterns are typed in the middle of a read. In reality this + doesn't happen, but Scott was driving one expect with another + expect and in this way provoked the behavior. + + The solution is to read chars one at a time, either by + read(,,1) or buffering in a stdio-like way, but I'm not going + to do that because the code should really be rewritten entirely + and it just isn't worth it, since it is so easy to get around + at the user level. + + Steve Legowik found that spawn-disconnect sequences fail. The + pty testing I added in version 2.55 causes expect to regain the + slave as a controlling tty, which generated SIGHUPs. If anyone + knows a clean way to avoid regain controlling ttys, let me + know. For now, I just set SIGHUP to SIG_IGN in the disconnect + command. + +8/14/91 2.65 Old passmass script changed root password. I renamed it to + passmass.old, and made a new one which works for any account. + It also supports yppasswd, telnet/rlogin, different names for + accounts on different machines. Handles VMS machines, too. + + Added Computing Systems paper to expect distribution and moved + all expect-related things to separate expect directory in our + ftp directory. + +8/5/91 2.64 Achille Petrilli <achille@miss.cern.ch> found that on an SGI, + the expect command ocassionally returned "no more processes". + He traced the problem back to O_NDELAY in the open, which was + taken as-is from the man page, by someone else who's code I + didn't look at too closely at the time. The result works now. + Oddly I thought I fixed this error myself when the SGI support + was first installed, but I cannot find it. I evidentally + screwed up. + +7/31/91 2.63 Steve Legowik <legowik@cme.nist.gov> wanted to implement + callback by having a modem dial out and NOT go away, but + interact in the reverse direction. I added "interact -u" to + support the idea of changing the user from the default stdio + to a second spawned process. The result is that we can now + write a modem callback program that doesn't depend on the cute + trick of having getty recognize DTR which only worked when the + modem was directly connected to the computer. In Steve's case, + there were several network switches in the way. + + Added "overlay" function which is similar to plain "exec" in + shell. (Too bad Tcl took the name already.) + + Added robohunt scripts to the test directory. I wrote these + back in January, '91 and forgot about them til now. But I + suppose they are illustrative (at the very least of how to + generate truly random numbers). Ha. + +7/20/91 2.62 Carl Witty <cwitty@jessica.stanford.edu> pointed out my fdset + implementation (for systems that don't have it) wasted some + space. I had commented it correctly, however, making the + incorrect code obvious (except to me). + + Robert Howland <howland@rahjr.ame.nd.edu> pointed out that + expect complained about not running from a real terminal under + cron. Oops! So I added a test to skip saving/restoring + terminal modes when fd 0 is not a tty, since this is obviously + pointless. + +7/19/91 2.61 Oops. Forgot to include getline and getline.exp examples even + though they have been documented! + +7/17/91 2.60 UMich changed interface to weather system necessitating change + to weather script. + +7/9/91 2.59 Didn't correctly comment things right in Makefile. Fixed. + + Changed 'close' in gethostbyaddr example to 'catch close'. + +6/22/91 2.58 Made new file (pty_sgi.c) for supporting Silicon Graphics ptys. + Silicon Graphics select fails to see eof immediately but poll + works ok. Unfortunately, there was an error in inter_poll + (bad_io was uninitialized). Silicon Graphics works now. + + Andy Norman <ange@hplb.hpl.hp.com> notes that linking expect + with the BSD compatibility library under HP-UX, libc.a must + be loaded before libBSD.a. Modified Makefile to reflect this. + He notes that there is a problem with expect not reading an EOF + from the current process. This should go away with HP-UX 8.0 + when select has been enhanced to flag exceptions in the readfds + argument. Probably inter_poll would work. + + Edward Haines <haines@bbn.com> notes that close returns EPERM + ("Not owner") on his Sun 4.0.3. This is rather startling! + (That's what I get for checking the return value of close!) + He said it is possible that they have modified things (viz. + DDN X.25 is loaded), but it still sounds incredible. For now, + I told him to either "catch" all closes or to remove the check + in the source code. + + Added example scripts: ftp-rfc retrieves an RFC from uunet + via ftp. archie mails back a listing from the archie server. + + Add the rest of Hal Peterson's changes for Cray support, 1) + fixing a problem where spawned processes flushed unread I/O + upon process exit, and 2) creating processes with the correct + uid. See his comments in command.c for more info. + +6/6/91 2.57 (On Cray) made signal handler declarations right. Added + missing #endif. Added includes to pty_unicos.c. Fixed bug + in two bugs in CmdSend, one involving send_stderr, the other + send_user. All of these are from Hal Peterson. + + Added gethostbyaddr as example script. Given an internet + address, it returns the domain name. By querying neighboring + hosts if the name server fails, a much higher probability of + returning the name is obtained. + +5/30/91 2.56 Mispelled "match_max" as "max_match" in rftp script. This + caused files after the 2000 byte mark (per directory) to be + skipped. + +5/21/91 2.55 Revisited BSD pty code to reject ptys that have either slave or + master side already open. This fixes problems rare problems + such as expect not being able to see EOFs from the child proc. + (because another process still has the pty slave side open). + USG and Cray pty code could probably use this code, too. + + Fixed bug in expect library (lib_exp.c) which caused output to + be copied to stderr instead of logfile when logfile_all was + set. Per Sreedhar Muppala <muppalla@nssdca.gsfc.nasa.gov>. + +5/16/91 2.54 Fixed weather script to accomodate occasional Weather Watch + that would cause an unexpected initial question to pop up. + +5/15/91 2.53 Added comment to BUG section of man page describing pty + misbehavior with non-interactive programs (search for "553061" + below), as per Hal Peterson <hrp@cray.com>. + + Removed note from README about asking Ousterhout for SV TCL + at his request. + +5/11/91 2.52 Fixed a syntax error that Bruce Larson <ires@kaspar.ires.com> + found in inter_poll.c + +4/23/91 Computing Systems accepted paper on Expect for issue 4.2. + +4/18/91 2.51 Added some example scripts: + weather - retrieves weather forecasts from National Weather + Service via University of Michigan server. + rftp - ftp a directory hierarchy (i.e., recursively). + +4/18/91 2.50 Changed timeout to apply to total time in expect rather than + per read(). Original behavior hung forever when my modem test + script started listening to a modem than spit out 1 spurious + character every 10 seconds (very consistently). + + Hal Peterson <hrp@pecan.cray.com> noted that exp_spawnv's args + didn't match documentation. Fixed in favor of documentation. + Several other funcs don't match header file (but typechecking + is avoided during compilation), because it was too hard for me + to make the header file ANSI compliant and support varargs + (which is undeniably more portable than stdargs at this point). + Fixed prototype declarations (again) in expect.h for C++ and + Standard C. Verified with GNU, G++ and Sun C (proto-less). + + Added exp_disconnect to library. Moved alarm calls closer + to read() to tighten windows. + +4/11/91 2.49 Changed passmass script to use timeout of 1000000 instead of + 10000000000 after discovering that Ultrix sleep(3) doesn't + sleep at all for large values! + + Added support for systems without dup2 (SVR2) per + <elston@edwards-tems.af.mil>. + + Added test/Makefile to shar as per Chris Pribe + <cpribe@park.bu.edu>. + +4/4/91 2.48 Fixed possible problem with poll in inter_poll.c for systems + that check for a valid address even though no members are used. + +3/27/91 2.47 Added support for Cray Unicos 6.0, which of course is different + from Unicos 5.1 (which was different from everything else)! + This and other minor bugs fixed courtesy of Pete Termaat. + +3/19/91 2.46 Removed a "feature" which caused patterns with no whitespace + not to be run through SplitList. While not documented not to + do so, this was mystifying even to me when I saw it. For + William Waite. The result actually simplified the internal + handling of multiple patterns, removing some excessively + complex logic that I thought would be helpful for speed, but + that in retrospect, was not that important. + +3/16/91 2.45 Added my own definition of FD_SET, fd_set, etc, test for + SIGABRT, and support different types of signal arg func + definitions to support SunOS 3.5 as requested by William Waite + <waite@scotty.colorado.edu>. + +3/14/91 2.44 Removed redundant def'n of pty_stty in pty_usg.c, redef of + sprintf and added signal.h to command.c to make compiles + cleaner on SV3 and HPUX machines. All compliments of Mike + Gourlay. + +3/10/91 2.43 Added -s (for slow) and -h (for human) flags to send. This + had been requested by several people including Frank Terhaar- + Yonkers (who actually wrote and tested a "send_slow" command), + and Steve Simmons who suggested the "human" option (over a year + ago), and Brian Woodson (brianw@swqa-sun.ESD.3com.com), who + requested both! Thanks to NIST statistician, Keith Eberhardt, + who taught me about the Weibull Distribution. + + According to Jim Thomas <jthomas@nmsu.edu>, 3b2 requires + defines for R_OK and W_OK. Added to pty_usg.c. + + Added support for "-" as file name on command line to mean + stdin as requested by Steve Clark <clark@cme.nist.gov>. + + Wrote passmass (change root password on a set of machines) as + requested by Ken Manheimer <klm@cme.nist.gov>. Added to test + directory. + +2/21/91 2.42 Removed reinstallation of signal 0 in signal handler. + + Added hook for setting initial pty parameters when started in + the background. Should've done this a long time ago, but I + was never really happy with my solution and had hoped I would + think of a nicer method. I only hope this is clean enough. + +2/10/91 2.41 Added buffer_full keyword to solve Brian Fitzgerald's problem. + It disables "forgetfullness" so that when expect's internal + buffer hits match_max, whatever it has returns at that point. + Didn't add this to the library version, because I want to think + for awhile about the cleanest way to do it. + +2/4/91 2.40 Per Brian Fitzgerald (fitz@mml0.meche.rpi.edu), fixed error in + interact example on man page which incorrectly implied that + "kill" was built-in. + + Added fork/disconnect functions. This solved the problem of + Jerry Friesen (jafries@snll-arpagw.llnl.gov) who wanted to run + an expect script that asks for a password and then goes to + sleep for awhile before waking up to run in the background (to + run a program using Kerberos). + +1/30/91 2.39 Per Jim Johnson (jaj@mlb.semi.harris.com), added declaration + and documentation for exp_pid in libexpect. + +1/10/91 2.38 More mods from Frank Terhaar-Yonkers. Also, some requests + from Pete TerMaat (pete@willow.cray.com) for features: + + 1) a single-step facility. Yeah, that would be nice. No + ideas on how to do this easily. + + 2) Generate scripts automatically after watching a session. + This is hard. Read more about this in the FAQ. + +1/10/91 2.37 Added support for Cray Unicos 5.1, all courtesy of Frank + Terhaar-Yonkers (fty@sunvis.rtpnc.epa.gov). Most of it had to + do with pty support. + +1/8/91 2.36 Modified expect.h to support C++ and ANSI prototypes. Added + appropriate example in test directory based on chesslib.c. + +1/7/91 2.35 At the request of Jan Norden (jano@imdpy1.im.se) added + NO_MEMCPY and NO_STRING_H defines for Pyramid. + +1/3/91 2.34 Added a check to protect against a longjmp occurring between + i_read and alarm(0). Didn't think this would be a problem but + evidentally a function return modifies the stack, so it cannot + be returned to again. Drat! This appeared in the robohunt + script I wrote which plays hunt automatically and uses 1 + second timeouts. + +12/19/90 2.33 Add signal to sighandler, to reinstall signal for those systems + that need it. + +12/12/90 2.32 Removed test for args to expect. I only recently realized that + no args still allows a valid way to check for timeout and eof! + +12/6/90 2.30-1 Mike Gourlay (mike@penguin.gatech.edu) found and fixed quite a + few SV-related problems that I had introduced since Clem's + fixes. We eventually got it to run on his HPUX machine, a + mixed breed of BSD/USG stuff. But spawning a shell worked but + always produced a complaint about "no access to tty" which we + were never able to get rid of, and he had a problem with + exp_fexpect (but not exp_expect), although it still isn't clear + if that was expect's fault. He said he would speak to some HP + engineers about what he found. + +12/5/90 2.29 Fixed a malloc off-by-one bug in new C library. After + contemplation, revised interfaces. Decided that rather than + following the original 'expect' style, it should be more like + what a C programmer is used to, so I made the file descriptors + be parameters to exp_expect rather than globals, added an + exp_popen which is a popen equivalent, and added exp_fexpect + versions which are stream equivalents. + + Am not happy with exp_fexpect. It is much less efficient than + exp_expect, because there is no way to (portably) get fread() + to return the way read() does, with less then the number of + characters you supplied a buffer for. Instead, I have to call + fgetc for every char. Ugh. + + Add a couple new examples, including lpunlock, time.exp, + chesslib.c (using file descriptors) and chesslib2.c (which uses + stream pointers). + +12/3/90 2.28 Created C library version of expect. + +11/29/90 2.27 Fixed bug in interact - when no string actions were defined, + the mapping table length wasn't set at all. + + Made interact call printify when debugging so that crlf and + other nonprintables are visible. Fixed bug in printify which + interpreted some characters wrong due to parity. + + Added some more examples to the distribution (lpunlock, dvorak, + timed_read) and put in another tip in the TCL HINTS section of + the man page. + +11/18/90 2.26 Fixed mismatched comment per Craig Warren (ccw@deakin.oz.au). + Also improved man page entry for "interact". + +11/17/90 2.25 Added -f (fast) on interact options, and made default case a + little more efficient. Added explicit support for SIG_IGN and + SIG_DFL in trap command. Added ability to specify signals + symbolically for portability. + +11/15/90 2.24 Craig Warren (ccw@deakin.oz.au) wanted to exit expect while in + interact with a single character. Dan Bernstein + (brnstnd@kramden.acf.nyu.edu) wanted to suspend with a single + character. So I generalized interact's escape character to + string-action pairs. + +11/7/90 2.23 Tired of getting reports that various (Ultrix 3.1, BSD4.3) C + compilers can't handle ternary conditionals returning ptr to + func returning void. Made all (2) such statements into + if-then-elses. Per Steve Simmons (scs@iti.org). + +10/8/90 2.22 Allow "log_file" even when no log is open. This makes user + programming a little simpler - they don't have to remember + whether they opened the log or not. + +9/27/90 2.21 Fixed bug, v2.19 introduced. debuglog(unknown string) requires + a "%s" as formatting for protection against %'s in the unknown + string. + +9/17/90 2.20 4 syntax errors in interact_poll.c, vik@sequent.com. Added + quotes to all the sends (now that this is more efficient) in + the examples and man pages. Also removed a misstatement in the + man page about the behavior of double quotes. + +9/15/90 2.19 Removed buffering from send command. Originally, I buffered + the args, so I could do it all in one write. But to send + variables bigger than the buffer didn't work. I didn't think + about this before. But Joe Gorman + (Joe.Gorman@elab-runit.sintef.no) asked me if you could "send" + a file in one command, and of course you can using [exec cat] + as the argument to send, but the damn buffering prevented big + files from being sent. Anyway, now it works. + +9/14/90 Fixed the declarations of nflog and nferrlog. Added a #define + so lack of pid_t could be controlled from the Makefile. Per + Andy Holyer (and@ux.rfhsm.lon.ac.uk) + +9/4/90 2.18 Added trap command to catch signals. This is nice as (among + other things) it allows you to turn off the conversion of ^C to + timeout which was requested by John Conti <jconti@cisco.com>. + +8/21/90 2.17 Fixed bug in printify. Forgot to reset ptr to beginning of + print buffer. Made debugging info wrong. Possibly screwing up + other things on overflow. + + Paper accepted into USENIX LISA! + +8/15/90 Cleaned up man page. Made tabs line things up correctly, + finally. + + Found another problem with ptys (at least under SunOS 4.1 and + earlier). When last pty-slave fd closed, any unread output is + lost after a short window of time (around 10 seconds on a + Sun 3/60). Sent example ptybug.c to Sun demonstrating this and + EIO problem found earlier. (Service Order #553061) + +8/6/90 2.16 Added -f to debug command, -a to log_file command. This + required significant changes, including revisiting all the + logging routines, plus miscellaneous output done in special + places. Noted that it cannot be done with getopt, since it + could be called during main's getopt, and getopt is not + reentrant! (Guess how I discovered this!!) + + I'm not particularly happy with the design, but maybe others + won't be. In any case, I like the benefit of it and am now + glad that -a was asked for. Per Harry Bochner and Ira Fuchs + (fuchs@pucc.bitnet). + + Changed behavior of argv, so that 0 == [length $argv] when no + script/args supplied. + +8/4/90 2.15 Added debug command, so -d-ness could be changed while expect + is running. + +7/20/90 2.14 Fixed small bug in -d output from expect, which printed ^Z as + ^: + +7/18/90 2.13 Added wait command. A waitpid/waitspawnid would be nice and + cleaner, too, but since csh doesn't need it, it is probably not + worth much. + + Consequently, removed SIGCHLD handling from command.c. It + worked under SV but not BSD. By forcing users to explicitly + code waits, resulting scripts are more portable. + + Rewrote rogue example. rogue sometimes misses EOF (generated + by close on our side) and continues reading. + +7/16/90 2.12 Removed buffering from variadic log routines. This was + faulting when the buffers overflowed. + + Cleaned up the -d output from expect, so it is much more + readable. For example, control characters are now visible. + +7/14/90 2.11 Added declaration for errno, to support 4.3BSD. Per Alan + Crosswell. Added -i flag and related behavior. + +7/12/90 2.10 Fixed bug where timeout = 0 waited forever rather than not + waiting at all. + +7/11/90 Fixed man page example which didn't include the blank on the + end of an ftp prompt. + +7/9/90 2.9 Fixed bug in send when spawn_id = $user_spawn_id. + +6/27/90 2.8 Integrated some mods from clem cole (clemc@ccc.com) to support + System V.3 (386/ix Version 2.02). Unfortunately, he didn't do + "select". + +6/25/90 2.7 Test that cmdfile and logfile are open before fclosing in child + while spawning. Per Corey Satten <corey@cac.washington.edu> + +6/24/90 2.6 Pty master returns EIO instead of EOF when pty slave closes. + Bug in pty driver? Until I figure this out, I have put in code + to interpret EIO to EOF. + +6/21/90 Added new section to expect man page - Tcl hints. + +6/14/90 Spoke at USENIX. Went well. Added USENIX paper as separate + ftp archive. + +6/4/90 2.5 Fixed bug in ^C catching during expect. Changed man page to + accurately describe what ^C does. Fixed bug that caused "send" + to screw up when handed 0 arguments. All per Harry Bochner. + +6/1/90 2.4 Made trailing empty action in expect optional, primarily to + make straightline code easier to read. + +5/15/90 2.3 Changed expect to strip nulls from program output since there + is no way for Tcl to handle them, per Harry Bochner. + +5/5/90 Added "send_error" command. + +4/26/90 Got USENIX paper back from Kolstad to proof. Am depressed at + how awfully they formatted it. + +4/25/90 2.2 Eric Newton found that expect's special variables weren't being + found inside of user subroutines. Had to do with new Tcl, + which now differentiates between variables that are undefined + vs. empty. + +4/24/90 Upgraded Tcl from 2.1 to 3.3. + +4/22/90 Added special behaviors of ^C in expect, and when profiling. + Profiled rogue (at urging of Ousterhout). + +4/10/90 2.1 Added select command. Added support for user_spawn_id so that + you could treat user just like another process (i.e. with send + and expect). Decided to leave send_user/expect, since scripts + are more readable with them. + +4/2/90 2.0 Changed syntax of expect to provide alternatives (a la Tcl + case), per suggestion of John Ousterhout. Note that this + breaks pre-2.0 scripts. + +3/31/90 Got great comments from Ousterhout. (This time he said that he + really liked the idea. Maybe he realizes how much it will + promote Tcl!) + +3/30/90 Got comments from dpk. Made me think more about Perl. + +3/28/90 Evi said I should turn the paper in unformatted and they will + format it. (She's kidding, I hope.) + +3/27/90 1.8 Rewrote interface so that raw arguments can be passed in like a + shell. I'd been thinking about this for some time, but Eric + Newton finally prodded me into action. + +3/25/90 Got first corrections for paper - from Sue Mulroney! + +3/24/90 Observed that it is possible to use the #! syntax with expect. + I asked John O. about this (his choice of # as a comment + character), and he said it was pure coincidence. Deprecated + request to end scripts in ".exp". + + Ted Hopp volunteered to be my Center WERB reader. + +3/23/90 Finished 1st draft of USENIX paper and sent copies to John + Ousterhout and panel chair, dpk@morgan.com. + +3/20/90 1.7 Deprecated "stty", and added more general "system" command. + + Sent Evi some complaints about the business of not allowing + camera-ready at USENIX. + +3/17/90 Sent copies of man page to Doug Gwyn and Larry Wall for + comments. Note that gwyn downloaded it. + +3/16/90 Am really irritated by USENIX. My paper has been put in a + session against another session, the BSD people. Furthermore, + they called my paper an application, when it is no more so than + any other shell or language. Better I should be in "lessons + learned". Mashey said take a hike, i.e., it was too late to + change the schedule. On top of that, our session has four + people in it, so I'll have very little time to speak. Grrrr. + +3/13/90 1.6 Added "stty", because without it you can't do things like + turning off echo to accept a password. + +3/8/90 1.5 Abstract was accepted into USENIX!!!! Time to start writing + it! Sent man page to Ousterhout. He didn't seem too + impressed. + + Added "send_user/expect_user" after listening to Ken complain + about how shell could not do timed reads. Actually it can, but + expect does it much more naturally. Deprecated echo. Now, I + realize that expect can be viewed as a shell! + + Changed logfile/loguser to log_file/log_user to match all the + variables with underscores in them. + + Barry Warsaw asked if there was any way one could execute any + command from interact (apparently without any reason in mind). + Nonetheless, it is a wonderful idea, and I changed the "abort + character" in interact to an "escape mechanism". After + escaping, you may execute any command. return duplicates the + old action of the abort character. Now you can do interactive + job control, recursive interacts, etc. You can bet I didn't + get this right the first time! + + At Scott's request, fixed bug related to pty initializing. + Scott was putting expect in the background which disassociated + it from a tty, and I was blindly copying the tty parameters + without checking to see if they were meaningful or not. + + Tightened up exit code. Fixed bug in spawn so it would print + error messages when it failed. Spawn sends back the error + message in the pty, if the fork succeeds but exec fails. Cute! + + Added "close" command. Makes scripts much shorter and cleaner. + + Return string matched by expect directly, rather than setting a + special variable. + + Added "match_max" feature. Probably no one will ever use it. + + Added trace command. + +3/6/90 1.4 Rob Densock was the second user, and suggested (demanded?) the + idea of the loguser command. I added it and changed "log" to + "logfile" making the first incompatibility with existing + scripts (sorry, Steve). + +3/1/90 1.3 Trying to make pty code more robust. Many questions unanswered + by manuals. Did a lot of guessing. While debugging, looked + through pty code in gnuemacs to see if I might increase + portability somehow. I almost barfed when I saw all the funky + ifdefs on weird ioctls. Found lots of comments like "this + might work". + +2/28/90 Sent a short Tcl bug list to John Ousterhout. He thanked me! + +2/22-3/90 1.2 Hooked my first user, Steve Ray. Surprisingly, he only found + one bug in the code (exit didn't handle args correctly), but it + was obvious that I need to put more explanation in the man + page. Many of the examples in the man page are based upon his + probl.. questions. Thanks, Steve! + +2/20/90 Posted news about expect to "general" newsgroup locally. + +2/15-20/90 Talked to local POSIX reps and then to Steve Albert (AT&T) + about portability of select, wait and other system calls. I'm + not impressed by 1003.1. + +2/9/90 John Ousterhout answered some questions I had about Tcl syntax. + I like this language! + +2/8/90 1.1 Sandy Ressler suggested the idea of being able to spawn + multiple programs at the same time although he didn't say how. + + It took about a day to design and code the spawn_id hook. + Extremely difficult to support this with uucp-style kludge. + Switched to using select. So much for portability. + + I investigated how to do this portably, and spent some time + talking to NIST & AT&T POSIX representatives. Unfortunately, + portability (especially when it comes to select()) remains a + dream. Provided multiple versions of "interact" depending upon + what OS you are running. + +2/7/90 1.0 Completed first cut of "sex" (for "Smart EXec" or + "Send/EXpect"). Supports send, expect, echo, log, spawn, + interact. + + Spent a lot of time making "log" write to log in just the right + order (across fork and while debug flag enabled). Ended up + writing a bunch of variadic log routines. + + Fooled around with uucp-style multiple processes versus one + process doing select() to read asynchronously. Using + uucp-style for now, since it is more portable. + + Gave up on pipes, and switched to ptys. Pipes seem to be + messed up by ftp, perhaps because it goes into raw mode? Ptys + are more efficient and cleaner to program albeit less + well-documented and portable from system to system. + + Ken Manheimer helped me explain what the program does. I kept + saying it does "send/expect" processing, and he kept insisting + that was meaningless to everyone. (In fact, it comes from + uucp, and I guess uucp hackers are indeed a dying breed.) Ken + gave me an elegant enough sentence that I expanded it into an + abstract and sent it in to the USENIX conference the following + day (two days after the deadline). + + I noted that the uucp documentation I referenced in the + submission is dated October 31, 1978! + +1/30/90 0.0 Got a copy of Tcl and went to work. Tcl was exactly what I + need. Plus, it is easy to use, AND it is documented. + +1/25/90 Attended Winter 1990 USENIX in DC, with the goal of banging + heads with some other gurus in hopes of finding a good + send/expect language for a generalized stelnet. Had looked at + uucp and kermit but found nothing general enough. + + Listened to John Ousterhout's presentation on Tcl. By the + middle of the talk, I had found religion. At the end when he + said it was public-domain, I was ready to orgasm. + +*/*/88-89 Spent a lot of time telling Scott how useful his program could + be if he made it more general. I thought it wouldn't be that + difficult to make more generic. Scott was interested but not + enough to do it. + +9/25/87 Helped Scott Paisley write a program called stelnet, that + forked a telnet and did very simple send/expect processing. + It used pipes, not ptys. It had no pattern matching, and only + straight-line control without error handling. Nonetheless, + this got me to thinking about making stelnet more generic. |