1 This is the HISTORY file for Expect. Modifications made by Cygnus
2 support are in ChangeLog. - Don
4 Date Version Description
5 ------- ------- ------------------------------------------------------
6 1/31/06 5.44.1 Marius Schamsula <marius173@mchsi.xcom> reported tclconfig
7 missing, evidentally for new TEA.
9 1/20/06 5.44.0 Lots of massaging to fix TEAification of Makefile and configure
10 including that version numbers will now be full three part.
12 Daniel Wong <danielwong@berkeley.xedu> noted the home page
13 should note that Wikipedia has a very readable entry for
16 Andre Alves <aalves@escloyalty.xcom> noted passmass needed some
17 fixes to handle Solaris 9 passwd prompt changes.
19 Andreas fixed several things: changes to better support TEA,
20 fix debugger interaction with nonblocking mode, and probably
21 other things I'm overlooking.
23 Martin Dietze <di@fh-wedel.xde> noted that autoconf 2.59 is
24 confused by C comment after undefs in expect_cf.h.in.
26 Added additional code to unbuffer -p so that if a process
27 earlier in the pipeline exits, unbuffer attempts to
28 recover any remaining output from the spawned proc before
29 unbuffer itself exits.
31 Jeffrey Hobbs noted that once stty was called, a bg'd script
32 would be suspended at exit. Turned out to be overaggressive
33 code in stty that recorded what 'damage' the user might have
34 caused when calling stty in the first place.
36 Jens Petersen provided patch to make setpgrp configure better
37 on some Linux systems.
39 Added example/getpassck script to test for getpass bug.
41 multixterm had debugging stuff leftover ("hello").
43 2/7/05 5.43.0 Martin Forssen <maf@tkrat.xorg> fixed bug in ExpOutputProc
44 that caused misbehavior during partial writes.
46 Someone noted that gets stdin behaves differently (returns -1
47 immediately) from tclsh because with 5.42, stdin is unblocked
50 Robroy Gregg <robroy@armory.xcom> noted that expect_background
51 ignores timeouts. Added to documentation.
53 Jens Petersen <peterson@redhat.xcom> provided patch for
56 Gary Bliesener <gary.bliesener@nextel.xcom> noted that
57 multixterm failed on his system which had an old Tk that didn't
58 support the Tk package.
60 8/3/04 5.42.1 Removed beta designation.
62 Daniel A. Steffen <steffen@ics.mq.edu.xau> provided patch for
63 MacOS to avoid panic-redefinition.
65 7/6/04 5.42b0 Releasing as beta because nonblocking mode is a big change in
66 the code. http://expect.nist.gov/beta.tar.gz
68 Alexander Doktorovich <alexander.doktorovich@ericsson.xcom>
69 wanted to use Expect as a filter. This is possible but 'too
70 hard'. To make it easier, added close_on_eof command to
71 control whether expect/interact automatically close the
72 channel on eof. This should simplify/enable other scripts.
74 Kurt Heberlein <kurth@3pardata.xcom> noted that Expect would
75 hang. Andreas tracked it down to a change in Tcl such that
76 when Tcl had data left in its buffers, it would check for more
77 data rather than returning what it had to Expect first. If
78 no data was forthcoming then Tcl would hang because the pty
79 driver runs in blocked mode. Recoded to use nonblocking mode.
81 Yi Luo <yluo@brocade.xcom> noted that multixterm xterms were
82 reporting the parent's X window ids (via the WINDOWID env
83 variable) instead of the new ones.
85 Dick Van Deun <dirk@dinf.vub.ac.xbe> noted that kibitz expects
86 to find write in /bin but it is in /usr/bin on Slackware.
87 Seems safe to drop the prefix.
89 Steve Lee <steve@tuxsoft.xcom> noted that building Expect
90 failed on Linux when built from scratch because stty ends up
91 in /usr/local/bin rather than the assumed /bin. Added code to
94 4/20/04 5.41.0 Simon Taylor <simon@unisolve.com.xau> provided fix for
95 interact -o which was completely broken by 5.40.1.
97 4/6/04 5.40.1 Added scroll support to official tkterm. Copied all fixes
98 from/to term_expect to/from tkterm.
100 Kiran Madabhushi <maskiran@hotmail.xcom> encountered interact
101 diagnostics incorrectly pointing to expect_background. Also,
102 found multiple -o flags behaving unexpectedly. Added diag.
104 Kristoffer Eriksson <ske@pkmab.xse> noted typo in SIMPLE code
105 in exp_inter.c. However, this is extremely unlikely to affect
108 Reinhard Max <max@suse.xcom> noted that "make test" failed when
109 run in the background. The log testcase was testing the
110 send_tty command. Added code in both Expect and in the test
113 1/30/04 5.40.0 Eric Raymond <esr@snark.thyrsus.xcom> provided troff-related
114 fixes for the expect, lib, and dislocate man pages.
116 Rich Kennedy <rickenne@cisco.xcom> noted a bug having to do
117 with our caching of whether we have registered a filehandler.
118 This broke when Tcl was setting a handler on the same file.
120 Ken Pizzini <ken.pizzini@explicate.xorg> provided patch for
121 leak in spawn error handling.
123 Pete Lancashire <plancashire@columbia.xcom> noted autopasswd
124 example broke on Solaris which capitalized prompts.
126 7/31/03 5.39.0 Poorva Gupta <poorva@cup.hp.xcom> noted that grantpt/unlockpt
127 order was backward. Strange that this was never a prob before!
129 Andreas Kupries <andreask@pliers.activestate.xcom> noted that
130 in exp_command.c, Tcl_GetChannelHandle expected a ClientData*,
131 but got an int*. sizeof(int) != sizeof(ClientData) on 64bit
132 platforms. Crashed the command on a PA-RISC 2.0 machine with
133 --enable-64bit set. Fix: Use temp. variables of type ClientData
134 to retrieve the fd's, and copy this into the actual variables,
137 More fixes from Andreas to sync this version with SF.
138 Fixed: exp_chan, weather, exp_main_tk.
140 Eric Raymond <esr@snark.thyrsus.xcom> provided a troff-related
141 fix for the multixterm man page.
143 7/29/03 5.38.4 Nicolas Roeser <n-roeser@gmx.xnet> noted confusion with md5 so
144 I made the Expect page more explicit about which file that hash
147 7/11/03 5.38.3 Josh Purinton noted that earlier fix wasn't quite right. Exit
148 on INT/TERM should cause Expect to exit with signal embedded in
149 status. He also requested I obfuscate email addresses in this
152 7/7/03 5.38.2 Guido Ostkamp <Guido.Ostkamp@t-online.xde> and Igor Sobrado
153 <sobrado@string1.ciencias.uniovi.xes> noted that fixline1
154 rewrote scripts to be expect scripts even if they were expectk
157 5/27/03 5.38.1 Dirk Petera <dirkpetera@yahoo.xcom> noted that any_spawn_id
158 used to work but did no longer. Looks like a bug left over
159 from the the I18L conversion. Fixed.
161 Steve Szabo noted exp_log_file -open channel failed. Fixed.
163 Fixed bug from 5.31 that prevent stty from returning messages
164 from underlying program.
166 Thomas Dickey <dickey@herndon4.his.xcom> noted that ncurses
167 ignores 2-char term names because of, well, poor assumptions
168 and coding. Changed tkterm to use longer names.
170 Heath Moore <hmoore@systran.xcom> noted that exp_clib could
171 lock up if remtime happened to be precisely 0. Recoded to
174 At request of Per Otterholm <otterholm@telia.xcom>, wrote
175 script to read from stdin and echo passwords (exercise 9 in Tk
176 chapter of Expect book). Added to example directory as
179 Josh Purinton <josh@purinton.xorg> pointed out that
180 by default, SIGINT/TERM should cause expect's return status to
183 Paul Reithmuller <paul.reithmuller@eng.sun.xcom> noted that
184 unbuffer shouldn't postprocess its output. Added stty_init.
186 Mordechai T. Abzug <morty@sanctuary.arbutus.md.xus> noted that
187 log_file wasn't recording -append status.
189 James Kelly <macubergeek@comcast.xnet> noted weather example
192 Dimitar Haralanov <mitko@tahoenetworks.xcom> noted that
193 interact dumped core with interact { timeout 1 }
195 7/18/02 5.38.0 At request of Hugh Sasse <hgs@dmu.ac.xuk> added md5 hash of gz
198 Dave Schooler <dave@stashtea.xcom> reported that send -s wasn't
199 handling certains chars correctly. Turned out to be those
200 that had multibyte UTF8 reps. send -s was just pumping out
201 hunks of bytes without regard to UTF boundaries and evidentally
202 Tcl's I/O engine thought that it should translate a partial
203 UTF8 character into, uh, something else.
205 Curt Shroeder <c.schroeder@computer.xorg> fixed bug in rftp - a
206 a filename looked enough like a 3-digit diagnostic that the
209 4/16/02 5.37.2 Multixterm couldn't find man page all the time.
211 4/16/02 5.37.1 Made multixterm handle user-supplied args.
213 4/15/02 5.37.0 Added multixterm to example directory.
215 4/8/02 5.36.1 Backed out CONST qualifiers. Too much trouble with older
216 versions of Tcl. I'll let someone else worry about them.
218 4/8/02 5.36.0 Made first cut at multixterm, a replacement for crlogin.
220 Fixed bug in background handler. If an action waited on the
221 same spawn id, esPtr would become invalidated.
223 Ryan Schmidt <rschmidt@mac.xcom> noted configure didn't
224 recognize MacOS X. Downloaded new config.guess.
226 Andreas Kupries <andreask@activestate.xcom> provided CONST
227 patches to accomodate Tcl changes per TIP 27.
229 2/25/02 5.35.0 Joe Eggleston <joe@arbor.xnet> noted bug in full_buffer test.
230 The test hadn't been I18'd properly and was testing chars
231 instead of bytes. Also fixed diagnostics so it printed when
232 it was testing full buffer even if there wasn't one.
234 2/7/02 5.34.1 Bruce Hartweg <brhartweg@bigfoot.xcom> noted that direct spawn
235 ids were not being tested so something like "expect -i exp9999"
236 would dump core. Evidentally a bug from the 5.31 transition.
238 12/20/01 5.34.0 Don Porter <don.porter@nist.xgov> provided package-related
239 fixes for test suite.
241 Brian Theado <brian.theado@usa.xnet> noted that interact's -re
242 support broke when offsets kicked in. Turned out that the
243 regexp engine supports them during execution but the results
244 are delivered RELATIVE to the offset. (I suspect this was done
247 10/1/01 5.33.0 <mark@doradosoftware.xcom> found that expect's diagnostics
248 didn't include the "no" after testing for a full buffer.
250 Hemang Lavana <hlavana@cisco.xcom> noted that "debug" (Dbg_On)
251 calls didn't always force the debugger into step mode.
253 Martin Kammerhofer <dada@sbox.tugraz.xat> noted that the man
254 page neglected to document interpreter -eof.
256 Chris Clare <clarec@nortelnetworks.xcom> provided fix for
257 multiple decl in C lib.
259 Sheng Wang <wangs@sh.bel.alcatel.xbe> found interact's
260 can-match code had broken. It was missing the special hook
261 that Henry had added just for this purpose. How strange.
263 Dieter Fiebelkorn <dieter@fiebelkorn.xnet> requested addition
264 to config.guess for Power*Macintosh:Darwin for MacOSX.
265 Aside - to download latest config.guess:
266 cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs co \
269 Added pipeline example to unbuffer man page.
271 8/4/00 5.32.2 Allen J. Newton <anewton@alturia.fleet.xorg> provided code for
272 generating passwords with special characters in mkpasswd.
274 Brent Welch <welch@ajubasolutions.xcom> changed the fix1line
275 install script so that "autoexpect" and other scripts that
276 get installed into the platform-independent bin directory
277 generically invoke "expect" from the users PATH instead
278 of hardwiring the platform-specific expect pathname.
280 TclPro 1.4 released with 5.32.2 bundled.
282 7/13/00 5.32.1 Uwe Klein <uwe-klein@foni.xnet> reported segfaults from reading
283 nulls. Due to code rewrite in 5.30->5.31 transition.
285 5/14/00 5.32.0 New version for timing with Ajuba TclPro 1.4. This version
286 of Expect has no new features or behaviors but a lot has been
289 Martin Buchholz <martin@xemacs.xorg> noted that his
290 alphaev56-dec-osf4.0e has ptmx and ptmx_bsd (and ptm, pts,
291 pty, ptym). He suggested that BSD things are now usually
292 deprecated so to skip ptmx_bsd if ptmx avail.
294 Chang Li <changl@neatware.xcom> noted that debugger's bp cmd
295 broke on every command. Was a bug in breakpoint_trace from
296 when we installed the new regexp engine.
298 Jonathan Kamens fixed printf formats in several pty diags.
300 rm_nulls -d was set to wrong value.
302 5/12/00 5.31.8 After receiving yet another request for fully versioned
305 Signal handler sometimes sent error to stderr inappropriately.
307 4/27/00 5.31.7 Rob Savoye fixed Debian ptys and properly checking of libpt.
309 3/8/00 5.31.6 Petrus Vloet <petrus.vloet@siemens.xat> noted that Expect
310 installed tclRegexp.h which included regex.h which of course
311 misbehaves when it reads the system's version. This is new
312 since 8.0. Since I need to revise the Clib anyway (which
313 is what this install was for), I'll back this out for now.
315 3/6/00 5.31.5 Larry Virden noted that configure checked for threads twice.
317 2/19/00 5.31.4 Omer Azmon <oazmon@telsoft-solutions.xcom> note errors in
318 pty_termios.c in exp_pty_test that caused problems during
321 Jeffrey Hobbs recommended having configure accept and warn
322 about --enable-threads.
324 John Ellson <ellson@lucent.xcom> noted configure's autoconf
325 testing had leftover debugging code. Also provided a fix for
326 building w/shared libs on HP - appeared to be leftover from
327 earlier Tcl-required configuration that has now disappeared.
329 Susan Muston <smuston@crosskeys.xcom> noted that exp_wait with
330 no spawned processes exited immediately which is different
331 than 5.29 behavior which reported "no children". This new
332 behavior was evidentally a gratuitous change during the
333 channel driver addition. Backed out. At the same time,
334 neither behavior matches documentation - doc should be fixed
335 and improved except I'm not sure if the behavior should yet
336 be something else (depending if stdin closed or not).
338 istvan.nadas@epfl.ch reported "spawn cat;exp_open" failed.
341 Scriptics reported memory leak. Was bug in parse_expect_args.
343 "Michael P. Reilly" <arcege@shore.xnet> noted clib was hanging
344 in spawn code. status_pipe wasn't being closed.
346 Egil Kvaleberg <egil@kvaleberg.xno> provided fix due to new gcc
347 which defines strchr as a macro.
349 Dave Morrison <drmorris@corp.phone.xcom> noted some printfs
350 in exp_log.c that misinterpreted embedded %'s with resulting
353 Dick Goodwin <goodwin@qosnetics.xcom> noted that "system echo
354 foo" returned with no apparent effect. Due to closeonexec
355 in expect's channel driver. Added skip if std channel.
356 Fixed similar bug in stty command. Minor bug left in stty
357 which isn't passing output back from underlying exec.
359 Stacy W. Smith <stacy@ixc-comm.xcom> provided patch that uses
360 sigsetjmp instead of setjmp that he says fixes a problem he
361 encountered with C lib where it stopped timing out in expect()
362 as if the signals were corrupted. The man page doesn't
363 explain the difference between these calls in a way that makes
364 sense as to why they should make a difference, but I'll the
365 names are certainly suggestive so I'll try it. He says "it
366 appears that the linux setjmp behaves a little differently
367 compared to setjmp on some other OSs. Specifically, setjmp
368 on linux does not save the signal context. It seems most
369 BSDish OSs do save the signal context with setjmp. On those
370 machines, it appears setjmp(env) is equivalent to
371 sigsetjmp(env,1) whereas on linux, setjmp(env) is equivalent
372 to sigsetjmp(env,0). My patch made a (probably bad)
373 assumption that if siglongjmp() exists that we should use
374 the sigXXX versions. I specifically tested for siglongjmp
375 rather than sigsetjmp because on linux, sigsetjmp is just a
376 #define for __sigsetjmp. It appears that linux will give
377 the BSD behaviour if __FAVOR_BSD is defined, but I didn't
378 know what other implications that might have.
380 Michael Schumacher provided fix so that test for whether
381 configure was out-of-date worked when not using the default
384 11/1/99 5.31.3 Shlomi Mahlab <shlomi@seagull.co.xil> noted all.tcl in CVS
385 but not distribution.
387 More notes from Keith Brown on HP cc complaints in exp_pty.c.
389 10/28/99 5.31.2 "Keith Brown" <surely@nortelnetworks.xcom> noted that HP cc
390 objected to auto aggregate initialization in
393 10/22/99 5.31.1 Official release!
395 P Darcy Barnett <pdb@cam.nist.xgov> noted Makefile could
396 produce "autoconf not found" for non-developers using CVS.
397 Made configure detect and provide advice on workaround.
399 Fixed bug in interact -echo exhibited in rftp example.
401 Ryan Murray <rmurray@cyberhqz.xcom> noted Expect wasn't
402 handling handling 8-bit bytes correctly. I had accidentally
403 used Tcl_Write instead of Tcl_WriteChar.
405 Ashley Pittman <ashley@ilo.dec.xcom> noted that digital unix
406 V5.0 prefers openpty (4000 ptys) over ptmx (60 ptys), so I'm
407 reversing the login in pty_termios.c. This also controls
408 linux, but no linux hackers have weighed in on this subject
411 Andrew Tannenbaum <trb@world.std.xcom> noted exp_internal
412 command and "expect -exact" were broken.
414 6/29/99 5.31.0 See the NEWS file for this date for an overview. (I'm
415 too tired to add all the details. Maybe later.)
417 Fixed exp_clib so that it immediately reported failure of
418 exec (in spawn) rather than passing it back through pipe.
420 Removed error checking from ioctl(TIOCSCTTY) to pacify the
421 variety of (but not all) Linux systems and a few others which
422 define TIOCSCTTY but return an error although seem to work
425 Added configure test for 0 vs 2-arg setpgrp.
427 Kenji Kamizono <kenji@math.columbia.xedu> noted it was possible
428 to compile Linux (2.2.5) so that it recognized both openpty
429 and ptmx leading to conflicts. I arbitrarily chose ptmx.
431 10/15/99 5.30.2 Herve Tireford <tdes46@email.sps.mot.xcom> noted extraneous
432 sleep(20) in clib. Apparently left over from debugging, oops.
434 8/18/99 5.30.1 Added test for newer versions of Tcl that are incompatible.
436 Kenji Kamizono <kenji@math.columbia.xedu> noted it was possible
437 to compile Linux (2.2.5) so that it recognized both openpty
438 and ptmx leading to conflicts. I arbitrarily chose ptmx.
440 4/1/99 5.30.0 Martin Forssen <maf@crt.xse> provided fix to allow configure
441 to start with LDFLAGS from environment.
443 Paul Tazzyman <Paul.Tazzyman@one.xat> noted that log_file
444 didn't check for logging twice without turning off logging
447 Ben <spy@calvin.iconoclasm.xorg> provided updated host for
450 Jonathon Kamens noted that Expect didn't build properly if
451 Tcl and/or Tk used build/install directories out of the usual
452 hierarchy. At the same time, I fixed a number of other related
453 problems in Makefile/configure.
455 Pierre Pomes <ppomes@it.marseille-innov.assoc.xfr> provided fix
456 to ftp-inband. It blew up from an unprotected send that
457 was handed a uuencoded line that started with a -.
459 Autoexpect was thrown off by simple-minded [file executable]
460 test picking up expect directory while searching for
463 1/21/99 5.29.0 Martin Forssen provides mods to support INSTALL_ROOT.
465 Bryan Surles <surles@scriptics.xcom> modified configure.in to
466 map DBGX to the same value as TCL_DBGX so the .so is named
469 Suresh Sastry <suresh@scriptics.xcom> forced $LIBS to be
470 added to EXP_SHLIB_LD_LIBS. It's not clear to me why this is
471 necessary (since Tk doesn't) but he was having a problem
472 with openpty not being found during runtime on Linux.
474 Martin Forssen noted expectk was crashing if a Tcl error was
475 encountered. He found that exp_exit_handlers() was trying
476 to write into interp->result after interp had been deleted.
478 Added another copy to distribution site - with version number.
480 Stanislav Shalunov <shalunov@mccme.xru> closed race in pty
483 Fixed man page: -brace should be -nobrace.
485 Dan O'Brien <dmobrien@lucent.xcom> noted that Expect needed to
486 call Tcl_FindExecutable at startup for info nameofexecutable.
488 Robbie Gilbert <rwg@nc.fnc.fujitsu.xcom> noted indirect spawn
489 ids occasionally failed. Fixed.
491 9/30/98 5.28.1 Brian France <franceb@fsj.co.xjp> noted that his compiler
492 rejected label with no statement.
494 9/28/98 5.28.0 Fixed two bugs in tcl-debugger (see that HISTORY file).
496 Submitted Expect documentation for official NIST review. At
497 their request, modified a couple things.
499 9/21/98 5.27.0 Added support for Tcl 8.0.3. Simple compiles already work
500 fine but exotic things break. In particular, Expect needed to
501 understand new TCL_DBGX feature. Massaged debugger interface
502 which was recently revised.
504 Karun Krishnaswamy <karun@transarc.xcom> noted that pine didn't
505 run in term_expect. The problem was that pine uses curses
506 (or terminfo) directly (!!) and insists on clear-to-eol (a
507 really dumb thing to insist on since it's so easily emulated).
509 bert@xpilot.org (Bert Gijsbers) (of xpilot fame) provided patch
510 to passmass to handle ssh protocol and explanation of how to
511 create new password entries.
513 6/15/98 5.26.1 Dean Sauder <dsauder@dcn.att.xcom> noted C-preprocessor lines in
514 configure must start in column 0.
516 5/18/98 5.26.0 Kevin Schleicher <kms@lucent.xcom> noted xkibitz leaves xterms
517 if first xterm is HUP'd. Kevin also noticed a resource leak
518 in dislocate. Both problems fixed.
520 Robbie Gilbert <rwg@fns.xcom> noted expect_devtty was logging
521 devtty (twice) to stdout. Fixed.
523 Added support inttypes.h, required on Solaris 5.6 for termios.h
525 Kristina <kristina@greatbasin.xnet> noted that tip failed when
526 spawned from a cgi script (BSDI BSD/OS 3.1 i386) because tip
527 didn't see a definition for SHELL and HOME. They need to be
528 set. (Doesn't have to be anything useful; the empty string is
529 fine!) Solution: documented this in Expect man page.
531 Zachariah Baum <zack@studioarchetype.xcom> noted that
532 config.sub didn't recognize Intel 686. Found a newer version
533 that did in autoconf-2.11.
535 POTENTIAL INCOMPATIBILITY: Changed interact so that it observes
536 parity while matching. It used to ignore parity. This impacts
537 people who use interact to connect through to a real serial
538 device that generates parity. If matches don't work, use the
539 exp_parity command. (This fix should have been made years ago,
540 when the exp_parity command was added. It is now absolutely
541 necessary now that people are doing matching with 8 bits.)
543 After the second occurrence of a system admin who broke grantpt
544 by removing setuid from the relevant system util, I added an
545 explicit test and explanation.
547 Disabled history in xkibitz. There seems to be some new
548 incestuous relationship between history and unknown now so that
549 redefining unknown leaves Tcl calling history but without
550 knowing what it is because it's never been defined (as it would
551 be by the traditional unknown).
553 Fixed quoting bug in passwd.cgi example.
555 9/28/97 5.25.0 Switched back to hand-generating pkgIndex.tcl file after too
556 many complaints about problems running pkg_mkIndex.
558 8/12/97 5.24.1 Chris Schanzle <chris@goof2.ncsl.nist.xgov> pointed out that
559 install fails on a virgin file system because install_shared_
560 lib depends on a directory that hasn't yet been created.
562 Larry Virden gave corrections to URLs in README.
564 8/21/97 5.24.0 Bo Johansson <bo.johansson@mbox2.swipnet.xse> noted TclWordEnd
565 had changed and provided fix. This caused crash in expect.
567 8/18/97 5.23.0 This version supports Tcl 8.0 and continues support for 7.6.
568 Refs to Tcl_Files dropped. inter_return and close became
569 obj cmds. Rewrote notifier (again) to accomodate new notifier
570 model. Lots of other miscellaneous tweaks. Also see debugger
573 Finally removed long-deprecated commands "continue -expect",
574 "send_spawn", and "getpid" and their exp_ versions.
576 Harold Brauer <harold.brauer@canada.cdev.xcom> reported problem
577 with an old SCO system (i386-unknown-sco3.2v5.0) that turned
578 out to be due to a typo in the configure script.
580 Jimmy Aitken supplied mods to config.guess for brand new and
581 very old Pyramid systems.
583 Buz Owen noted memory leak in use of expect_background (with
586 Jonathon Kamens noted provided patch for pty_termios.c for
587 modern Sequent (which ptmx).
589 Jonathon Kamens noted that TCL defined RANLIB for shared lib
590 (if --enabled-shared) which isn't appropriate when Expect tries
591 to build both shared and unshared libs.
593 Jonathon Kamens noted that shared lib config didn't work on
594 SunOS. I had used Tcl's SHLIB_SUFFIX instead of its
597 Qingyi Liao <liao@casabyte.xcom> encountered core dump when
598 exp_bg -i $exp_spawn_any was retracted. Bug in ecmd_remove_fd.
600 Fixed a bunch of bugs in example/gethostbyaddr.
602 Josef Sachs noted that stty cannot be caught when no /dev/tty.
603 It calls exit instead of returning an error.
605 Gordon Chaffee <chaffee@plateau.CS.Berkeley.XEDU> patched
606 Exp_WaitCmd - it was zeroing pid element instead of wait.
608 Bob Manson <manson@cygnus.xcom> provided fix for HP on which it
609 was possible for timer to be mistakenly deleted in
610 exp_get_next_event while processing a pty open event.
612 Jeff Slonaker <JSlonaker@osc.uscg.xmil> noted that exp_poll.c
613 had wrong signature and poll had arguments out of order! That
614 would suggest that no one has ever used exp_poll.c before...
616 5.22.1 Larry Virden noted that TCL_BUILD_LIB_SPEC can't be used if
617 build directory has been removed. Added check to configure.
619 Worked more on package command. Buz Owen pointed out that my
620 code wouldn't support redefinition of TCL_LIBRARY. Bumped up
621 minor version to avoid package loading mishaps.
623 Nigel Standing <nigel@idiom.xcom> noted lack of C-u binding in
624 tkpasswd - must be due to change in tk4.2.
626 Forced env(SHELL) to be defined inside kibitz for when using
629 Charles Packer <packer@fermi.gsfc.nasa.xgov> noted that
630 CRAY-YMP needed sys/types.h in exp_console.c
632 Extra / when developing defn of TCL_LIBRARY. Shouldn't
633 actually cause any problems though.
635 2/3/97 5.22.0 Fixed package support - again. Sigh.
637 David Pasirstein <dpasirst@sun.cs.wcupa.xedu> noted that RedHat
638 Linux 2nd passwd prompt requires slightly different pattern -
639 modified mkpasswd and tkpasswd.
641 Toshiaki Nomura <nom@yk.fujitsu.co.xjp> provided patch to
642 config.guess for Fujitsu DS/90.
644 Roger Brooks <R.S.Brooks@liverpool.ac.xuk> noted C lib passed
645 argv[0] instead of file to first arg of execvp.
647 Cary D. Renzema <caryr@mxim.xcom> noted that a simple puts -nnl
648 might never appear - Expect closes all of its fds before Tcl
649 gets a chance to flush. Stdout is the obvious problem since
650 Expect thinks it can cavalierly close that too. Hmm.
652 At request of Tom Tromey, solved possible missing tclRegexp.h
653 problem by having Expect install it. Cleaned up TCLHDIR and
654 TCL_LIBRARY hackery in Makefile.
656 12/27/96 5.21.7 Nelson Beebe noted unset is not portable in /bin/sh. Removed
657 and converted everything to understand CONFIG_SHELL.
659 Modified cryptdir to strip out shell metachars from filenames.
661 12/10/96 5.21.6 Michael Schumacher noted that some systems cannot build
662 unshared libs from shared objects. Chose to go with BLT's
663 approach of building shared objs in separate shared directory.
665 Buz Owen <ado@bbn.xcom> noted that "package require Expect"
666 didn't work because it looked for Expect lib in the wrong
667 place (well, the "documented" place). The problem is that Tcl
668 insists libraries should be in the same directory as the
669 pkgIndex.tcl file while the natural thing to do would be to
670 split them up and put the .tcl file in the arch-indepent
671 app-specific scripts dir and the lib in the arch-dependent
672 common dir. Sigh. If this is ever fixed/changed, the
673 instructions in the Makefile should be fixed.
675 <Van.Trinh@siemenscom.xcom> noted that expect library name
676 exceed filename max on some systems - like his old SCO.
678 12/4/96 5.21.5 Michael Schumacher noted new configure wasn't passing on Tcl's
681 10/26/96 5.21.4 Achyutram Bhamidipaty <ram@epic.xcom> ran into bugs in Expect's
682 file event handler which prevented expectk from entering
683 implied event loop. Also found one memory problem - thanks
686 Tom Tromey fixed handling of --enable-shared when overriding
687 Tcl's value et al. Tom also added missing "else true" to
688 Makefile: "In a Makefile, you have to always supply an "else"
689 clause for an "if", to work around a bug in certain versions of
690 sh. In some versions of sh, an "if" whose test fails will
691 return the status of the test if there is no "else" clause --
692 causing spurious make failures." See ChangeLog.
694 10/18/96 5.21.3 Example directory was missing several examples.
696 10/17/96 5.21.2 Debugger section of configure file corrupted.
698 10/10/96 5.21.1 Oops, distribution unpacked into wrong version.
700 Tom Tromey provided patch for stty to understand OSF 4.0.
702 9/28/96 5.21.0 Official Expect release for Tcl 7.5.
704 Junio Hamano <junio@twinsun.xcom> provided fixes for aclocal
705 for with_tcl/tkconfig.
707 Roger Billau <rfbilla@amtnet.sandia.xgov> noted that C library
708 didn't work on Solaris 2.5. Turns out Solaris requires fflush
709 be called between input and output operations on FILE pointers.
711 Lots of Cygnus mods - see ChangeLog.
713 Sid Cowles <scowles@incyte.xcom> and Hans Riethmann
714 <hans@F1.telekurs.xch> noted relative path specs of
715 tcl-includes (and others) caused debugger config to fail since
716 it is at a different directory level.
718 Al Snow <asnow@fuwutai.att.xcom> noted -C failed due to typo.
720 8/17/96 5.20b18 Andrew Rakowski <andrew.rakowski@nr.usu.xedu> noted no defn of
721 LIB_RUNTIME_DIR, a creation of Tcl7.5p1.
723 Tom Tromey added -v to Expect and -version to Expectk.
725 Ben Boule <bboule@xylogics.xcom> noted that Interactive (IUNIX)
726 requires 9 char max length after -l. Looks like squeezing out
727 the "." is sufficient. He also noted that IUNIX needs -Xp in
728 LIBS to find strftime. This test should really be done by Tcl.
730 8/12/96 5.20b17 Glen Biagioni <glen@prosoft.xcom> noted interact -re "A(xx)"
731 failed to match. Problem turned out to be that Tcl 7.5 changed
732 a constant which in the regexp code, which Expect didn't see
733 because it provides its own defn for interact. Alas, the one
734 thing Expect reuses from Tcl was where the change was. This
735 should really be fixed so Expect doesn't rely on Tcl in this
736 way, but there's no point in putting in a lot of work on regexp
737 when we're anticipating a new one soon anyway.
739 Bjorn S. Nilsson <nilsson@nbivms.nbi.xdk> noted fixcat hangs.
740 Turned out that new Tcl (7.5p1) now waits for all children to
741 disappear. But Expect still had a handle to a child. I added
742 an exit handler to close the connections before Tcl's exit
745 Tom Tromey provided patch to support augmenting CFLAGS on
748 Gary Merinstein <gmerin@panix.xcom> noted that configure failed
749 on his linux unless it had --enabled-shared. Not quite sure
750 about how this can be, but the flag wasn't being passed to the
751 debugger's configure, so I've fixed that and hopefully this
752 will cure the original prob.
754 Added initial announcement of full version at beginning of
755 configure. This should ease my pain in responding to people
756 sending me config output without including version numbers.
758 Tom Tromey noted expect_cf.h was machine dependent. Fixed
759 expect_comm.h so that it no longer required expect_cf.h (which
760 should be renamed to indicate it is no longer public).
762 Bart Robinson <lomew@cs.utah.xedu> provides mods to support
763 openpty() in FreeBSD/NetBSD. Without openpty, Expect doesn't
764 see the full pty namespace (ptyX[0-v]).
766 7/15/96 5.20b16 Nathan Estey <nfe@the-hermes.xnet> noted that Makefile failed
767 on SunOS when shared libs were enabled due to incomplete dot
768 stripping in lib prefix.
770 7/6/96 5.20b15 Malcolm Tredinnick <malcolmt@geko.net.xau> noted that shared
771 lib has to be installed before building expect. Also noted
772 that ldconfig should be run on Linux 2.0 systems and maybe
775 6/25/96 5.20b14 Tim Mooney provided fixes to obey --includedir and similar
776 configure conventions.
778 6/25/96 5.20b13 A bug when installing Expect using new _installed targets.
780 6/24/96 5.20b12 Numerous complaints from Solaris users about shared libraries.
781 Unfortunately, no one is giving me configure-ready fixes so
782 (and Tk's configure seems to have bugs as well) so fixing
783 these is like throwing darts.
785 Stan Brown <stanb@netcom.xcom> noted noidle example broke when
788 Gordon Irlam <gordoni@cygnus.xcom> noted typo in install-sh.
790 David Sheinberg <sheinb@bcmvision.neusc.bcm.tmc.xedu> noted no
791 args test for spawn -open/leaveopen.
793 Misc patches from Tim Mooney to pacify much of gcc -wall.
795 Kayvan Sylvan insists Linux stty reads from stdin so added
796 hardcoding to configure.in for that. In xkibitz, Linux stty
797 -raw didn't disable all post-processing. How odd that it is
798 not a problem in interact. In the meantime, added extra stty
799 to xkibitz to do what was missed.
801 5/30/96 5.20b11 Kayvan Sylvan <kayvan@sylvan.xcom> noted quoting bug in
804 5/22/96 5.20.b10 Patches from Larry Virden in Makefile.in and exp_int.h
806 5/20/96 5.20.b9 Too many substitutions in configure caused sed failures on
807 DEC (limit 99) and HP (100). Commented out definitions
808 that weren't absolutely critical. Hopefully, this gets us
809 under the limit but can't be sure since there's no easy way
812 Numerous mods from Mark Diekhans to support clist-style ptys
813 on SCO OpenServer. (He says SVR4 ptys are broken on that
816 Simon J. Gerraty <sjg@zen.void.oz.xau> says that write()
817 returns 0 inside of exact_write on SunOS. This is outside the
818 SunOS spec so of course we have no idea what's going on. So I
819 added code to try and recover from (or at least warn of) this.
821 Tom Tromey unified decls of errno to #includes.
823 5/13/96 5.20b8 Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.xedu> pointed out
824 backwards stty test - this would have corrupted every platform!
825 He also pointed out that alpha-dec-osf3.2 (3.2c) complained
826 too many args to sed. Someone earlier said similarly about
827 HPUX 10, but I assumed it was the quotes in the weird stty
828 flag I was passing, so that "fix" wasn't. GNU sed has no
829 problem, but obviously this is not sufficient for many people.
831 5/10/96 5.20b7 Renamed/numbered versions so that it's easier for others to
834 Upgraded to autoconf 2.10.
836 Matthias Kurz <mk@baerlap.north.xde> noted Makefile problems
839 Blair Zajac <blair@gps.caltech.xedu> noted configure mishandled
840 stty defaults on HP and shared lib must be installed executable
843 autoconf insists on adding -O to CFLAGS when using gcc. Ack!
845 3/23/96 5.20b1 Beta release 1 of Expect for Tcl 7.5.
847 Michael Hunter <mphunter@qnx.xcom> provided misc mods for QNX.
849 Various people reported problems with IRIX. Removing from the
850 stty list fixed the problem. Similar problem with Solaris.
852 Added explicit close to autoexpect. Added a mechanism for
853 enabling conservative mode after script is generated.
855 Hal Schechner <hal-j@netusa.xnet> pointed out passwd.cgi must
856 meet passwd's requirement that it not be run by an unrelated
857 user. Easy enough - just do an su first.
859 3/26/96 5.20a5 Alpha release 5 of Expect for Tcl 7.5b3.
861 Added example passwd.{html,cgi} to change a password.
863 Many fixes from Stephen Williams <steve@icarus.xcom>
864 and Jonathon Kamens for Makefile and configure.
866 3/22/96 5.20a4 Alpha release 4 of Expect for Tcl 7.5b3.
868 Added version number to lib directories (POTENTIAL
871 Revised gethostbyaddr example - evidentally hadn't worked for
874 Jan Nijtmans <nijtmans@nici.kun.xnl> provided pkgIndex.tcl.in.
875 Renamed Exp_Init to Expect_Init to support package cmd.
876 Provided #define so that Exp_Init will continue to work.
878 Revised exit handling so that it works if Expect is dynamically
881 aclocal.m4 Patches from Tom Tromey.
883 3/15/96 5.20a3 Alpha release 3 of Expect for Tcl 7.5b3.
885 Edward Haletky <elh@astroarch.xcom> noted that Machten required
886 inclusion of types.h in exp_tty_in.h.
888 Added various patches from Rob Savoye. One incompatibility
889 is that the static lib now ends with the version number.
891 Added support for TCL_SHLIB_{LD_LIBS,VERSION} in Tcl b3.
893 Jonathan Karges <J.Karges@dkfz-heidelberg.xde> found that clib
894 was timing out immediately on -1.
896 3/6/96 5.20a2 Alpha release 2 of Expect for Tcl 7.5b2.
898 Leland Joseph <leland@tec.tetd.bellcore.xcom> noted
899 expect-tests.exp exceeds the 14 character filename length.
901 Added config.{sub,guess} to support AC_CANONICAL_....
903 Rewrote much of aclocal, configure.in, and Makefile.in
904 to handle Tcl/Tk config.sh files and shared/dl support.
906 Simplified varargs/stdarg mess for Expect's C library.
908 Threw away closetcl junk. No longer required because
909 Tcl finally started doing close-on-exec.
911 Incorporated various fixes from Tom Tromey at Cygnus.
912 See ChangeLog for details.
914 Added require/provide support.
916 Rejiggered event handling to support new Tcl_File interface.
918 Removed libexpectk. Because event loop was moved into Tcl, it
919 is no longer necessary for it to be different than libexpect.
921 Removed all support for earlier versions of Tcl and Tk.
923 Numerous misc patches from Paul Eggert <eggert@twinsun.xcom>
924 most to support Tcl 7.5.
926 Arnold Robbins supplied yet another patch to fix earlier
927 problem noted by Hume Smith.
929 David Engel <david@ods.xcom> reported problem with Linux
930 dumping core. CenterLine, of course, immediately found the
931 problem - uninit'd lowercase buffer.
933 Peter Haggerty <haggerty@borg.lib.vt.xedu> noted that his Next
934 died in cron. It seems that Next doesn't support O_NOCTTY
935 (even though the man pages says it does) and so during pty
936 testing, control terminal would get allocated and then kill
937 the process (by generating a HUP) when deallocated. Avoid
938 by ignoring HUP when doing pty testing on such machines.
940 1/3/96 5.19.0 Fixed bug that made expect report wrong string when using
941 a terminating anchor in a positive-length glob match,
942 reported by Graham L. Randall <grandall@nit.airtouch.xcom>.
944 Added rlogin-display to included examples. rlogin-display
945 automatically propagates your $DISPLAY when you rlogin.
947 Hume Smith <hclsmith@localhost.isisnet.xcom> noted problem
948 with day of the week calc at year end/start. Arnold Robbins
951 Jonathan Kamens provided fix to make sync byte reads
954 Henry Spencer noted errant line of spaces in Makefile.
956 10/21/95 5.18.1 Began adding support for tcl7.5a1/tk4.1a1. (not finished!!)
957 - Make aclocal understand new Tcl/Tk directory layout
958 for finding tclInt.h and private libraries.
959 - Added support for Tcl_AsyncReady.
961 Paul Townsend <aab@aab.cc.purdue.xedu> noted that distclean did
962 not remove some config cruft. Also recommended unsetting
963 M*FLAGS that cause make called from configure to fail.
965 Various fixes from Cygnus. See Changelog.
967 Deleted "-" before rm in loop in deinstall in Makefile as per
968 Doug Claar <dclaar@hprtnyc.ptp.hp.xcom>. Doug also found prob
969 involving recent STTY fix. Symptom was that pty wasn't
970 correctly inited in cgi scripts on HPs - and Cray pty support
973 Added exp_ prefix to tests so that they can be run with other
976 Seth Ornstein <pp001465@pop3.interramp.xcom> noted bug in the
977 way rftp detected symlinks.
979 Upgraded to autoconf 2.4. This fixes a bug in AC_PROC_CPP
980 which blew up when CPP was defined in the environment. Noted
983 Jonathan Kamens noted that library didn't check return pipe()
988 Przemek Klosowski <przemek@rrdjazz.nist.xgov> Irix 6.0 fails
989 to use ptys that have been used by someone else. SGI admitted
990 this is a bug and the solution is to upgrade to 6.1.
992 Yoad Grinberg noted "expect -timeout" mistakenly ate next arg
995 8/24/95 5.18.0 Wayne Christopher noted that the way exp_eval_with_one_arg
996 modifies the original argv makes the ICEM Tcl compiler unhappy
997 so I rewrote it to avoid that.
999 Ian Zimmerman <itz@rahul.xnet> found that a braced arg list of
1000 a single pattern beginning with a \n caused expect to reeval
1001 for multiple args twice. I added a -nobrace flag that expect
1002 and/interact can use internally to prevent this.
1004 Florian La Roche <florian@jurix.jura.uni-sb.xde> noted a few
1005 glitches in the way -ltcl was searched for in aclocal.
1007 Joachim Posegga <posegga@ira.uka.xde> noted lack of Tcl
1008 internal includes should be an error during configure.
1010 8/10/95 5.17.8 Martin Wunderli <wunderli@baloo.limmat.net.xch> found missing
1013 Danny Faught noted problems in Makefile when passing STTY defn
1014 with quotes. Created another a STTY-less CPPFLAGS for cases
1015 where additional reexpansion occurs.
1017 Danny Faught noted bug in error handling for checking
1018 permission problem with /tmp.
1020 8/1/95 5.17.7 Todd Rimmer <trimmer@mantis.ssw.xcom> noted that HP 10 with
1021 optional streams package has both PTYM and PTMX which conflict
1024 Rainer Wilcke provides fixes: scripts not listed as dependency.
1025 distclean target used Makefile after deleting, and many fixes
1028 Saad Mufti <mufti@hobbit.pls.xcom> noted bug in how C library
1029 handled polling (when handling multiple fds).
1031 Jeff Bowyer noted more autoexpect bugs.
1033 7/22/95 5.17.6 More features added to autoexpect (now version 1.3).
1035 Sanjay <sanjay@clef.lcs.mit.xedu> noted bug in TCLH config
1036 macro which caused it to use 7.3 instead of 7.4.
1038 Rodney Barnett <rlb@us.teltech.xcom> noted expectd.proto had a
1039 few refs to interact_out where it should've had expect_out.
1041 Terry Rhodes <tbr@88open.xorg> noted that Expect returned a 0
1042 exit status upon syntax error unlike tclsh and wish.
1044 Fred Obermann <fredo@conan.ids.xnet> noted that Unixware 2.01
1045 native development tools don't permit configure to find memcpy
1046 because memcpy is handled specially by the compiler and it
1047 complains when it finds configure's default test with no args.
1048 Changed to a hand-crafted test with args.
1050 7/12/95 5.17.5 Jeff Bowyer <jbowyer@muni.xcz> noted minor bugs in autoexpect.
1052 Rob Saul <robs@sco.xcom> noted that configure failed on SCO
1053 OSR5 because trap requested by Cygnus (to allow config in bg)
1054 used higher traps than SCO sh knows about.
1056 Changed "can't happen" to "xmkmf is broken" when configure
1057 fails to compile simple C-Tk program.
1059 John H. Chauvin <jchauvin@netcom.xcom> noted exp_tty_current
1060 and cooked raised multiple def errors on SGI 5.3 with native
1063 7/9/95 5.17.4 Wolfhardt Lotz <s11@blue.lrw.uni-bremen.xde> noted Solaris
1064 doesn't do case-insensitive man page lookups so I lowerized
1065 the beginning of the .SH lines.
1067 Henry Spencer noted unbackslashed quotes in the autoexpect
1070 7/3/95 5.17.3 Modified VARARGS decls to support new Tcl 7.4 definitions.
1072 Fine-tuned aclocal so that it would prefer later versions.
1074 Added autoexpect example and man page.
1076 6/30/95 5.17.2 select-based dsleep() was returning an internal expect-style
1077 return code instead of a Tcl-style.
1079 6/30/95 5.17.1 Kannan Varadhan <kannan@isi.xedu> noted aclocal didn't
1080 look in right directories to find Tk.
1082 6/30/95 5.17.0 Modified regexp interfaces to support Tcl 7.4b4.
1084 Mods from Tony Isles <ittony@traf.xcom> for Sequent Dynix/ptx
1085 V2.1.5 (which is really old).
1087 Michael Schumacher <hightec@rz.uni-sb.xde> noted that Solaris
1088 2.4 header files require __EXTENSIONS__ for all sorts of
1089 traditional but non-standard definitions.
1091 Modified aclocal to support new Tcl/Tk library names.
1093 George Forman <forman@cs.washington.xedu> requested support in
1094 C lib for fds that already exist. I added exp_spawnfd.
1096 Fixed bug preventing signal rearming on Linux (using SV-style
1099 Wayne Christopher <wayne@pmac.icemcfd.xcom> noted missing
1100 interp in call to exp_error.
1102 Added null support to interact's exact matching.
1104 Bruce Jerrick noted INSTALL was being used rather than
1105 INSTALL_PROGRAM/DATA.
1107 Dennis Ferguson <dennis@mci.xnet> noted that on Solaris 2.4
1108 close(pty) occasionally returns EINVAL.
1110 Added tests so that if we can't get a pty, we can give the user
1111 much more help with what to do about it.
1113 Steven Byrnes noted that Solaris has replaced TIOCCONS with
1114 SRIOCISREDIR interface.
1116 Technically speaking, interact shouldn't do buffer-shuffling
1117 but I've added as a fail-safe mechanism to catch people who
1118 use preposterous patterns.
1120 Alan Heckert <heckert@tiber.nist.xgov> noted missing decl in
1123 Fixed all expectk examples for Tk4.
1125 Bryan S. So <so@cs.wisc.xedu> noted that interact -o eof failed
1126 if an unbuffered pattern was partially in progress.
1128 Added -timeout flag to expect command to override timeout var.
1130 John Pfuntner <pfuntner@VNET.IBM.XCOM> noted that OpenMVS did
1131 not notice @ inside of Makefile SETUID macro as suppression
1132 but instead treated it as part of the program name.
1134 Jim Porter <James.W.Porter@att.xcom> noted that exp_free_i
1135 freed the variable name even if not allocated.
1137 Yet more mods to aclocal and various .in files from Rob Savoye.
1139 4/21/95 5.16.3 Matija Grabnar <Matija.Grabnar@ijs.xsi> noted that sleep maxed
1140 out after about 36 minutes. Turned out to be a poor assumption
1141 in some interfacing code.
1143 4/19/95 5.16.2 rbd <uport@netcom.xcom> noted tcl_RcFileName multiply defined
1144 when compiling with Tk4.
1146 4/16/95 5.16.1 Robert Nicholson <robert@steffi.dircon.co.xuk> noted NextStep's
1147 sys/wait.h is not POSIX-like so WNOHANG fails to get a defn.
1149 Alexandre Rafalovitch <arafalov@socs.uts.edu.xau> discovered
1150 example on dislocate man page didn't work. I fixed it.
1152 4/8/95 5.16.0 gcc 2.3.3 complains about internal errors so I figure: time to
1153 upgrade. Switched to Cygnus 2.6-95q1. Works now but now
1154 complains about wait status. I trashed all the gory wait
1155 status configure code and adopted autoconf's suggestion about
1156 refusing to use sys/wait.h if not POSIX.1 compatible. Nice!
1158 Jeffrey C Honig <jch@nr-tech.cit.cornell.xedu> requested a -gmt
1159 flag for timestamp command.
1161 Chuck Ocheret <chuck@gigadactyl.xcom> noted that expect -pty
1162 fails. Problem is that Tcl's exec blindly closes all the fds
1163 between 3 and its own highest fd. See comments in code.
1165 Loris Caren <loris@caren.demon.co.xuk> noted eof in fg bombs on
1166 Linux. Turns out to be analogous to eof in bg problem fixed
1169 Upgraded to autoconf 2.3. Continued making changed to config
1170 script to take advantage of autoconf 2 capabilities.
1172 4/1/95 5.15.4 Steve Simmons noted .x remnant from earlier dir install proc.
1174 3/31/95 5.15.3 Forgot to export TCLHDIR defn when configuring debugger.
1176 3/29/95 5.15.2 Steve Simmons <scs@aisinc.xcom> noted Makefile multiple defined
1177 distclean and it might be nice to provide aclocal.m4 even
1178 though it isn't normally used.
1180 cevans@resdev1.ppco.com added prompts to passmass for AIX.
1182 3/27/95 5.15.1 Fixed tkterm script - inadvertently left tic debugging on.
1183 Also add support for Ctrl-space and Ctrl-@ as requested by
1184 Zbigniew Wieckowski <wieckows@cs.umn.xedu>.
1186 Larry Virden asked that configure also check for .so libs.
1188 3/23/95 5.15.0 Everitt Beers <ebeers@scf.usc.xedu> noted that Linux doesn't
1189 support kill -STOP 0. Changed 0 to [pid].
1191 zhengping (z.) you <you@bnr.xca> found bug where a bg expect
1192 did not rearm a spawn id after a first bg expect (and another
1195 Elliott Wolin <wolin@physics.wm.xedu> noted that tkterm
1196 complained if tic wasn't found. I'll have it override the
1197 user misconfig in that case. Also noted that interact failed
1198 on AIX. Evidentally, my new config tests for ISC found that
1199 AIX looked just like it. Added additional test for tcsetattr
1200 to distinguish them.
1202 Rob Savoye asked for Dbg config.in to be distributed. Rob
1203 supplied numerous other mods: install-sh replaced install.sh,
1204 mkinstalldirs, testsuite mods, new aclocal.m4, support for
1207 Fixed bugs in configuration of debugger.
1209 Disabled configure's file-caching.
1211 Kannan Varadhan <kannan@isi.xedu> noted incorrect diag
1212 reporting TCLHDIR in configure.
1214 Marty Olevitch <marty@howdy.wustl.xedu> noted that DEC Alpha
1215 did not sleep correctly because configure didn't find sleep
1216 and found poll (which is broken). Problem turned out to be a
1217 bug in autoconf's AC_CHECK_FUNC. Got patch from Jim Meyering
1218 <meyering@comco.xcom>
1220 Fixed config probs for Edward Huie <huie@net.xcom> on Mac
1221 SE/30, System 7.1, Tenon Intersystems' MachTen 2.1.1-G (BSD 4.3
1222 on Mach kernel) and MachTen X11R4 3.1.
1224 Moved libraries forward in configure to allow for AC_CHECK_FUNC
1225 to succeed when funcs are in other libraries.
1227 Made configure test for Linux and unset CFLAGS=-g if so.
1229 2/25/95 5.14.3 Larry Virden noted configure was missing brackets in raw shell
1230 cmds evidentally due to m4 interpretation.
1232 2/24/95 5.14.2 Larry Virden noted configure was not correctly rewriting from
1233 --(exec-)prefix. Due to new autoconf. Also noted glob was
1234 finding tclX directory.
1236 Hal Peterson noted that because configure now actually attempts
1237 a link before using a library, the code to check for -ltk would
1238 have to worry about all the other utility libraries first.
1240 2/23/95 5.14.1 Hal Peterson noted that configure.in checked incorrectly for
1243 2/22/95 5.14.0 Jamal <root@lonestar.tlug.xorg> noted Linux has tic in a
1244 different place than on my system - affected tkterm script.
1246 Xiaokun Zhu <xiaokun@stats.gla.ac.xuk> noted problem on DEC
1247 Alpha OSF/1.3 evidentally due to backwards decl of index macro.
1249 Greg McFarlane <gregm@nms.otc.com.xau> noted that large args in
1250 send cmd cannot be passed blindly to exp_error.
1252 david d `zoo' zuhn <zoo@armadillo.xcom> requested modifying
1253 configure so that it did not require Tcl/Tk to be built - only
1254 configured. This means that it may not find installed
1255 libraries. Hopefully, this won't cause anyone problems but its
1258 Fixed error which caused spurious eof when changing patterns
1261 Moved to autoconf-2.1 and m4-1.4. Rewrote a LOT of the config
1262 file. Finally got my hands on an ISC box and fixed configure
1265 Tony Booker <tb@sequent.xcom> provides mods for Sequent ptx 2
1268 Jeffrey Friedl <jfriedl@nff.ncl.omron.co.xjp> provided fixes
1269 for timezone handling in config and exp_strf.c.
1271 David Schmitt <dschmitt@netcom.xcom> noted that library did
1272 not detect eof on HP. I didn't think this was necessary for
1273 read() but it evidentally is. I added the support for raw fds
1274 although it is not obvious to me how to do it for FILEs.
1276 James Carter <jimc@math.ucla.xedu> noted expect_after couldn't
1277 worked in the exp_bg because I had accidentally written BEFORE
1278 instead of AFTER when checking the cases. He also found that
1279 the eof body could be trashed in an exp_bg.
1281 Ousterhout apologized for the Tcl7.4 change I noted in 5.13.1
1282 and said he will undo it.
1284 Eric Frias <efrias@vt.xedu> found library bombed after
1285 timeouts. exp_match_end was not updated - which makes sense
1286 since there was no match - however the following expect call
1287 assumed that exp_match_end was meaningful in order to do its
1290 Jonathan Kamens supplied new configure test for REARM_SIG after
1291 noting old could fail if limit prevented creation of core file.
1292 He also noted REARM_SIG had accidentally been commented out
1295 Vincent D. Skahan <vds7789@aw101.iasl.ca.boeing.xcom> noted
1296 that Apollo's stty reads stdout and doesn't complain if its
1299 Yoad Grinberg <grinberg@vnet.ibm.xcom> noted that SIGCHLD does
1300 not work for forked processes, only spawned processes. Fixed
1301 this and added counting to make sure none get lost.
1303 Hal Peterson contributed mods for Unicos. He noted that
1304 configure should be more careful adding libs to the link line.
1305 On the Cray, non-existent libs generate warnings which are not
1306 detected by configure but which annoy make.
1308 Bela Gazdy <bela@euch3e.chem.emory.xedu> noted /etc/resolv.conf
1309 misspelled in kibitz.
1311 Rainer Wilcke noted that "send -null/break" mishandled return
1312 code, and these and send/expect_tty were not in man page.
1314 Dvorak example was missing -- in send -.
1316 1/12/95 5.13.2 Peter Wassenaar <peterw@stack.urc.tue.xnl> noted that kibitz
1317 didn't work on AIX. My fixcat script assumed that AIX's cat
1318 was like HP's cat - buffered by default.
1320 1/7/95 5.13.1 Marc Bouron <mbouron@lhr-sys.bru-ro.DHL.XCOM> noted I forgot to
1321 add virterm to distribution.
1323 Marc W. Mengel <mengel@dcdmwm.fnal.xgov> noted that configure
1324 must be run in the foreground due to the stty tests. Added
1325 this to documentation.
1327 Modified interpreter to account for the change in Tcl7.4 which
1328 forces Tcl_RecordAndEval to call Tcl_GlobalEval instead of
1331 Changed ptys to be initialized based on current tty setting
1332 rather than original tty setting.
1334 Stephen Melvin <melvin@zytek.xfr> noted that set -e is the real
1335 problem with ash (see 5.13). I bet "[" is returning a value
1336 and triggering it. It appears that the script can live without
1337 the set, so out it goes.
1339 Braun Brelin <bbrelin@netcom.xcom> noted pipe allocs in spawn
1340 could fail with meaningless error message.
1342 12/15/94 5.13.0 Synchronize with appearance of "Exploring Expect". This
1343 distribution corresponds to the book both in description of
1344 Expect and in containing all the substantive examples.
1346 Graham Mark <gam@lanl.xgov> noted that his Cray (Unicos
1347 7.0.6.1) didn't recognize TCSETCTTY. Since this was in some
1348 Cray-specific code, I guess Unicos must have changed some .h
1349 files. I made it include either termios or termio. It, at
1350 least, works on our Cray (Unicos 8.0.2.4).
1352 Robert Withrow <witr@rwwa.xcom> noted that FreeBSD 1.1.5.1
1353 supplied union wait but waitpid doesn't use it! So I modified
1354 configure to be smarter. He also noted that its /bin/sh is
1355 really ash which blows up on install.sh. It appears that it
1356 doesn't handle uninitialized parameters correctly. I'm not
1357 going to fix this because having a broken /bin/sh is so awful
1358 probably other things are breaking too. He did note that it
1359 worked if he switched to bash or the native install, but that
1360 blows the whole point of install.sh - that we have found too
1361 much variation in native installs. Rather than try and figure
1362 out everyone's variation, we'd like to simplify our life and
1363 use this common, simple-to-understand sh script.
1365 Added more example scripts: Adrian Mariano's virterm (like
1366 expect_term but without relying on Tk), gethostbyaddr, and
1367 expectd.proto for telnet daemon.
1369 Matt DiMeo <mdimeo@brooktree.xcom> noted that expect_background
1370 failed to detect eof on HP. I had forgotten to pass the mask.
1372 Josef Sachs noted that expect_background put Tk's event handler
1373 in an infinite loop if it was listening to a pipeline that was
1374 killed. I had aborted the cleanup procedure if Tcl's close
1375 reported an error. That was a mistake.
1377 Rick Lyons <rick@razorback.brisnet.org.xau> noted a bug. C lib
1378 expect would turn a normal read into a poll if remtime reached
1381 Added ResetResult to Exp_Init to clean up diags in Expectk.
1382 Made GENFUNCs return -1 on error as per ParseArgv's convention.
1384 11/13/94 5.12.0 Alon Albert noted that in clib, exp_match_end should be init'd
1385 to exp_buffer before trying to match the pattern - if the
1386 expect doesn't produce a match, exp_match_end is incorrect and
1387 will be wrong for subsequent expects.
1389 Steven Diamond noted that fg expect did not react to a change
1390 in an indirect spawn id list if it was just waiting for I/O
1391 (rather than looping in exp_continue).
1393 Wait fix in previous version broke system() whose return value
1394 is horribly overloaded.
1396 11/10/94 5.11.0 Stephen Fitzpatrick <sfitzp@cs.qub.ac.xuk> noted that NeXT wait
1397 macros do not accept int wait status. Switched to using Tcl's
1398 detection of wait status type.
1400 Made log_file -leaveopen leave file id open until close like
1401 spawn -leaveopen did.
1403 Bruce Jerrick <bruce@cse.ogi.xedu> noted public include dir
1404 wasn't getting created.
1406 Karl Vogel noted 1) Pyramid has index instead of strchr, strf.c
1407 needs sys/time.h instead of time.h in strf.c, needs to call
1408 timezone(), and stty reads stdout but usual stty test fails.
1410 Made expect_out(spawn_id) always be written to assist people
1411 who want to log different procs to different files. This is
1412 no longer an efficiency problem because interact can do so
1413 much more then it used to. Made full_buffer condition write
1414 forgotten chars even when full_buffer isn't explicitly
1417 Bert Robben <Bert.Robben@CS.kuleuven.ac.xbe> noted that the
1418 debugger needs to know about the presence of stdlib.h. I was
1419 hoping to avoid this because it's a pain getting configure to
1420 call another configure.
1422 Rainer Wilcke provide several improvements for xkibitz and man
1425 10/6/94 5.10.0 Moved example files around. Added password generation to
1426 tkpasswd. Created standalone script to generate and set
1427 passwords - good for all those adduser shell scripts.
1429 Rick Cady <rickc@NSD.3Com.XCOM> found a bug when switching log
1432 Rainer Wilcke <wilcke@esrf.xfr> noted that xkibitz died when
1433 closing a connection. stdin was mistakenly being closed. He
1434 also noted that killing xterms under HPUX 9 requires kill -9.
1436 Enzo Michelangeli <enzo@airhk.air.xorg> noted that SCO 3.2.1
1437 defined window size structure in ptem.h.
1439 Josef Sachs <sachs@panix.xcom> found a bug when calling fg
1440 expects repeatedly between bg expects. On the first fg expect,
1441 it cached the fact that the filehandler was armed. The next
1442 background expect disarmed it but failed to update the cache.
1444 John P. Rouillard" <rouilj@dstar.iddis.xcom> provided configure
1445 support for --with-{tcl,tk}{lib,include}.
1447 Mike Figg <figg@pencom.xcom> noted that man page used old style
1448 of continue command.
1450 8/23/94 5.9.1 Adrian Mariano noted it would be useful to have exp_continue
1451 not reset the timer. Added flag to support this.
1453 Morris Gasser <gasser@ksr.xcom> noted that lowering match_max
1454 didn't work (lib was broken too).
1456 Keith Hanlan provided a fix for exp_exact.
1458 Added more examples: mkpasswd, tkterm, term_expect.
1460 Put close_tcl_files in sep file for easier non-Tcl use of clib.
1462 8/21/94 5.9.0 Fixed window handling code - on AIX, termios does not define
1463 TIOCGWINSZ. Instead, you have to include ioctl.h. Of course,
1464 you have to avoid the trap of including both on OTHER systems
1465 such as SunOS 4.1 where the include files conflict!
1467 Dan MacDonald found that close in async routine caused sync
1470 Missed deletion of last line of out macro in exp_inter.c
1472 Simon Warfield <simonw@bwh.harvard.xedu> noted bug in xkibitz
1475 Fixed exp_background to use global scope instead of current.
1477 Steve Diamond <sdd@aplcomm.jhuapl.xedu> noted that -i "4 5"
1478 only used spawn id 5.
1480 Rob Nagler found yet another bug in log_file when called
1483 Expectk wasn't creating a window by default.
1485 7/25/94 5.8.1 Made exp_interp external. Users should be able to set this
1488 David Barnett <davidb@cats.ucsc.xedu> found that Linux was not
1489 getting a controlling terminal. The original test for doing
1490 that was based on Stevens and tested in a very nonspecific way
1491 for the presence of a Sun via CIBAUD. Replaced this with a
1494 It seems Tcl 7.3 broke my -nostack hack. The top-level interp
1495 translates unknown return codes to TCL_ERROR. Sigh. I wish
1496 Ousterhout would stop all of those translations. If the user
1497 wants them, they can do so themselves, but now they're forced.
1499 Martin Buchhoz <buchhlz@vnet.ibm.xcom> suggested adding
1500 XKIBITZ_XTERM_ARGS environment variable to xkibitz. He also
1501 noted that stty rows/columns support doesn't seem to work on
1502 AIX. I haven't yet looked into this.
1504 Copied 2nd sync mechanism from Expect to C library.
1505 Added exp_child_exec_prelude hook.
1507 Jonathan Kamens noted that "spawn cat;close;wait" returned
1508 -1 on AIX and 0 on Sun. This is "correct", however to
1509 address this, I added -ignore to spawn and otherwise made
1510 signals default. Also added extra information to return value
1511 of wait if caused by signal.
1513 Dan MacDonald <hfvstud@bcarh80a.bnr.xca> noted that
1514 exp_continue didn't cause timeout to get reread.
1516 Ting Tan <utan@cisco.xcom> noted that when using -b, expect
1517 hangs if open brace and doesn't stop in case of error.
1519 Oops, broke "log_file" with no args.
1521 Removed -timestamp from documentation. Use "timestamp" command
1524 Keith Hanlan noted C library didn't test already arrived data
1525 before attempting to read more. He also suggested I avoid
1526 forcing the user to do save/restores of per-fd globals.
1528 6/24/94 5.8.0 Hubert Halkin <hhalkin@ucsd.xedu> pointed out that interleaved
1529 expect_bgs and spawns dump core. I had used the exp_f ptrs
1530 as handles to TkCreateFileHandler but realloc shuffled them
1533 Rick Lyons <pclink@qus102.qld.tne.oz.xau> provided misc. mods
1536 Keith Hanlan <keithh@bnr.xca> noted that HP-UX C compiler
1537 causes odd behavior in Expect when it is compiled with "-O.
1540 Peter Gasche <zrspg01@compserv.zdv.uni-tuebingen.xde> pointed
1541 out that Convex 10.2 fails to build. New version of Convex OS
1542 added getpty(). Naturally, it differs from old one. Testing
1543 is tricky because there is no header file for it. Even worse,
1544 the algorithm in the Convex man page is incorrect - it allows
1545 you to allocate ptys already in use! Unfortunately, the man
1546 page is too vague to allow the reader to see that immediately.
1548 In contrast to BSD stty, Convex, Mach, and NeXT stty don't
1549 complain if redirected to null. I'll just have to hardwire the
1552 Added -nowait flag to wait command.
1554 Upon suggestions from David Vezie <dv@xnet.ssl.berkeley.xedu>:
1555 Added -noappend, -open, and -leaveopen to log_file command.
1556 Added -leaveopen flag to spawn and exp_open.
1557 Modified spawn to close -open immediately.
1558 Modified exp_open to close spawn_id immediately.
1560 Between Jeff Wright <wright@spock.cen.encompass.xcom>, Brad
1561 Skrbec, Arup Mukherjee <arup+@cmu.xedu>, and the anonymous
1562 Mach support group at CMU, finally got hard answers about Mach.
1563 It is no longer supported and there is no intention to provide
1564 full POSIX support. Now, at least, I can fix the configure
1565 script to understand this.
1567 Added "unbuffer" example.
1569 Dana Chee <dana@dino.bellcore.xcom> provided configure hooks
1570 for finding -lnsl and -lsocket.
1572 Henry Spencer <henry@zoo.toronto.xedu> noted timestamp doc did
1573 not jive with C defn. Fixed doc and added timezone support.
1575 Steve Pynes <fb@steve@ucsd.xedu> noted that exp_win.c needs
1576 _IBCS2 (Intel Binary Compat Standard #2!?!) before it will
1577 recognize winsize. He also noted #out was redefined in inter
1578 code if using simple_event.
1580 Fixed defn of "stty cooked" to retain echo setting.
1582 Bennett Todd noted dislocate's pidfile_read was missing close.
1583 He also noted useless bind in tkpasswd.
1585 Marty Leisner noted that ^C causes xkibitz to exit ungracefully
1586 when in interpreter.
1588 Added yet another sync mechanism (see 5.6) to spawn so that
1589 child cannot eof before parent has prepped the pty (only a
1590 probably on HPs, of course). I had actually written most of
1591 the code, but left it disabled because I hoped that the
1592 problem simply wouldn't happen in practice. Alas, Jonathon
1593 Kamens found a case where it does.
1595 Jimmy Aitken <jimmy@pyra.co.xuk> noted problem on Pyramid. My
1596 original code only looked for /dev/tty##. On pyramid, ptys
1597 look like /dev/pts/4. term wants the last two characters, but
1598 on the Pyramid, the first of the last two characters can be a
1599 / in which case xterm wants a 0. I.e., suffix of /dev/pts/4
1600 is "04". xterm fails completely with 3-digit ptys! I sent
1601 a suggestion and patch to X Consortium for this and the pid
1602 problem - xterm has no way of telling it to which pid to send
1605 Poul-Henning Kamp <phk@TFS.XCOM> noted that -lm would make
1606 autoconf forget about other libs.
1608 Ram Bhamidipaty noted I forgot to document sleep.
1610 Removed disasterous performance with * at beginning of glob.
1612 Mods from Rob Savoye. See ChangeLog.
1614 Earnest Hua <eh@c-cube.xcom> noted expectk.man need wasn't
1617 Bogus arguments to expectk were not reported correctly.
1619 Modified clib to catch when user changes match_max between
1620 expects on two different fds and then switches back.
1622 Rewrote timestamp to get rid of 200 char limit.
1624 Ram Bhamidipaty <ram@xor.epi.wisc.xedu> noted NetBSD .9 stty
1625 complained "stdout appears redirected, but stdin is the
1626 control descriptor". It compares dev(stdout) to dev(stderr)
1627 and assumes if they are different then user thinks stty
1628 ioctls stdout. This is one case when that assumption is wrong.
1629 Fixed fd 2 so it points new 2 and is reset to old 2 if an
1630 error occurs. This forced me to remove any diagnostic output
1631 from child (in getptyslave) since this now went back to the
1632 proc as child output rather than original stderr, sigh.
1634 Stephan Winokur <swinokur@pinky.trevose.sgi.xcom> noted that
1635 IRIX 4.2 had problems with gcc. While diagnosing, I found
1636 PTY_TYPE was used before set. Make doesn't mind (how odd)
1637 but I changed it anyway.
1639 Made send understand "-null". Deprecated "-0".
1641 Made Expect read .expect.rc from DOTDIR if present.
1643 3/30/94 5.7.0 Removed alpha status.
1645 Added $(EVENT).o to library.
1647 Finally deleted old shar file. Revised README.
1649 3/22/94 5.6.3 Phil Moore <phil@signals.geol.scarolina.xedu> noted termios.h
1650 should not come from sys even if it exists. (SGI doesn't have
1653 3/21/94 5.6.2 Paul Kinzelman <pkinz@cougar.tandem.xcom> noted that I forgot
1654 to remove -update from documentation.
1656 Fixed interact's -i so it understands indirect spawn ids.
1658 3/21/94 5.6.1 expect_background randomly failed. I forgot to save Tk's
1659 event mask so occasionally events were incorrectly classified
1662 Added -buffer to expectk and made "nobuffer" the default so
1663 scripts are read in much faster.
1665 3/15/94 5.6.0 Added cat_buffers marker to avoid "catu" option to scripts.
1667 Got temporary use of an evaluation copy of TestCenter.
1668 Promptly found several memory leaks. Oops.
1670 Added a synchronization mechanism to spawn so that user cannot
1671 send to pty before it is init'd. This also deals with the HP
1672 trap more simply. Removed extra open added in 5.5.1. While
1673 working on this, it occurred to me stty needs to temporarily
1674 disable trap. Added exp_slave_control so that C programmers
1675 can get to it portably.
1677 Added "expect -ex" to documentation.
1679 Fixed winsize bug on Solaris.
1681 Added functions to allow user flexibility closing fds in child.
1683 3/8/93 5.5.1 Integrated bug fixes from Arnold Robbins <arnold@skeeve.atl.
1684 ga.xus> for his own strftime code.
1686 Rob Savoye passed back a patch from OSF to cast ptsname.
1688 Added a test for cat. R.K.Lloyd noted HP failed pid test.
1689 Turned out to be another bug related to pty-trapping. The test
1690 of course, was doing something that a user would never do.
1691 Hope this doesn't break other HPs. Pty trapping is becoming
1692 less and less clear to me. Ioctls generated by slave look like
1693 modem ioctls. Added an artificial open because different
1694 versions of HP's stty execute differing numbers of ioctls.
1695 In test script, changed each cat to cat -u.
1697 2/17/93 5.5.0 Began a test suite based on Ousterhout's model: make test
1699 Added passmass man page.
1700 Added decl of exp_tty_original to pty_sgtty.c.
1701 Added error_spawn_id
1703 Alon Albert <al@mercury.co.xil> provided a bug fix for new
1704 buffer handling code in C library.
1706 Fix fd leak related to spawn -open.
1708 2/7/94 5.4.0 Some installation improvements from Rob Savoye and Owen Rees.
1710 Bug in handling empty string match - crept in recently.
1712 Finally fixed longstanding oddness: stty -raw reset echo.
1714 Made spawn close all file descriptors. Added exp_open command
1717 1/26/94 5.3.5 Made rftp use /bin/ls to avoid -F from people's aliases.
1719 Initialized auto_path.
1721 Fixed exp_version so it fails if the major #s are not equal
1722 (which is what the man page said).
1724 1/18/94 5.3.4 Jim Meyering <meyering@idefix.comco.xcom> gave config fixes
1725 of X handling on Irix-4.0.5 and suggested that tknewsbiff
1728 1/18/94 5.3.3 Kevin Short <short@gdc.xcom> noted some remaining use of malloc
1729 and free instead of ck versions.
1731 Initialize tcl_interactive to 0 while processing -c flag to
1732 avoid unreliable handling of unknown proc.
1734 1/17/94 5.3.2 Jeffry Abramson <jra@hrcms.att.xcom> noted that "spawn -pty"
1735 hung on an HP. Problem was trapping was enabled so as soon
1736 as I tried to open the slave, Expect blocked waiting for ack!
1738 1/14/94 5.3.1 Forgot to delete a bad call to strcat in exp_internal.
1740 1/13/94 5.3.0 Added -info flag to log_file, log_user, exp_internal, and
1741 strace, so you could get original args back out.
1743 Wrote tknewsbiff script (and was extremely pleased).
1745 Fixed rftp. I must have broke it when I changed to using Tcl's
1746 new switch cmd. Also sped it up by replacing split/join
1747 nonsense with a single regexp.
1749 Danny Faught <faught@convex.xcom> noted that glob patterns
1750 returned shortest matches. While fixing this, found that glob
1751 patterns ending in $ were broken, too.
1753 Massaged libraries and include files. The include file for
1754 using Expect with Tcl or Tk is now expectcl.h. libexpect.a
1755 now suffices for using Expect's funcs with C or Tcl.
1757 Add all the features from Expect into C library including
1758 null and full buffer matching. Added exp_buffer (_end) and
1759 some other variables to support fd multiplexing better.
1760 Made unmatched chars from previous expects remain for future
1763 Chen <johnny@e0sun3.ccl.itri.org.xtw> found bug in exp_pid when
1766 Rewrote expect_bg, after, and before so they all handle args
1767 the same. Interact and all the expect variables now handle
1768 indirects. exp_bg now handles -brace flag.
1770 Geoff Bullen <geoff@itx.nsg.com.xau> noted that interact put
1771 terminal into raw mode even if stdin was redirected.
1773 Rob Savoye provided more configure mods to better find Tcl/Tk.
1775 Fixed bug in wait that didn't close down "busied" fds.
1777 Kazuro Furukawa <furukawa@apricot.kek.xjp> provided a better
1778 default for SHORT_BINDIR in the Makefile and noted that DEC
1779 doesn't understand "test -x".
1781 12/3/93 5.2.0 Recent fix was buggy and blew up when eof case still had data
1784 11/23/93 5.1.4 At request of Rod Beckwith <rodb@slugo.corp.sgi.xcom> fix some
1785 minor things to which SGI cc was sensitive.
1787 Fixed bug in dvorak script where eof could occur in nested
1788 interact, upsetting original interact.
1790 Forgot to change -flush to -nobuffer in man page.
1792 Added some more places to search for X11 for Jeff Moore
1793 <jbm@internet.sbi.xcom> note.
1795 Added yet more fixes and notes for NeXT for Brad Skrbec
1796 <skrbec@motcid.rtsg.mot.xcom> who found that NeXT has POSIX
1797 include files but NOT the functions that go with them. Sigh.
1798 Needless to say, configure is thrown off by this.
1800 11/14/93 5.1.3 John Pierce <jpierce@chem.UCSD.XEDU> noted several declarations
1801 that AIX's cc couldn't handle include a struct with same elt
1802 name at two different levels. Also _IO is declared twice
1803 in AIX include files but only checked once.
1805 Fixed bad args in exp_spawnl call in chesslib examples. Can't
1806 imagine how it ever worked before.
1808 Richard Weidner <richard@cicero.jpl.nasa.xgov> found a bug in
1809 configure (test always treats a bare string as true!) that
1810 caused NeXT to be declared as POSIX.
1812 Fixed two bugs in Tcl_StringMatch2. One caused glob ranges to
1813 succeed when they shouldn't. Another was how malformed ranges
1814 are handled, and came right from Tcl. Reported to John.
1815 Switched Expect library to use T_SM2 from Expect itself.
1817 Blair Zajac <blair@olympia.gps.caltech.xedu> noted expectk used
1818 CLFLAGS instead of CFLAGS.
1820 Forgot to fix mishandling of parens inside of alternation in
1823 11/9/93 5.1.2 Added "null" keyword and remove_nulls command to allow matching
1824 ASCII 0 in expect/interact.
1826 Rob Nagler <nagler@olsen.xch> noted that expect_background
1827 failed if pattern didn't consume all data. event handler
1828 knows nothing about data already arrived but not processed.
1830 Made Expectk understand --
1832 11/8/93 5.1.1 Fixed yet another bug in setting expectk's argv0.
1834 11/6/93 5.1.0 Provided support to work with Tcl 7.[0-1] and Tk 3.[3-4].
1836 Pasi Kaara <ppk@atk.tpo.xfi> found an off-by-one in the buffer
1837 shuffling when buffers fill up during an expect.
1839 Changed \\\$ to \\$ in patterns that search for literal $.
1841 Added "spawn -pty" support for xterm -S.
1843 Fixed yet another argv problem in Expectk. When run using
1844 expectk explicitly, script name was left in argv.
1846 Fixed system command's return value to match exec new style.
1848 11/1/93 5.0.4 Mark Davies <mark@comp.vuw.ac.nz> noted that BSD4.4 sysconf
1849 returns -1 (a bug). Rewrote to avoid requiring this info.
1850 Switched from from explicit refs of sys_errlist to Tcl's
1853 As per Adrian Mariano <adrian@cam.cornell.xedu>, added
1854 exp_sleep command primarily to allow sleeping by sub-second
1855 intervals. Also avoids exec overhead. Not yet documented.
1857 Kartik Subbarao <subbarao@concorde.fc.hp.xcom> noted that on
1858 HPUX 9, SC_OPEN_MAX should be ifdef'd on itself rather than
1861 Karl Vogel <vogelke@c-17igp.wpafb.af.xmil> noted Pyramid
1862 didn't like varargs included twice in exp_command.c.
1864 Deleted expect_version variable (was never documented) and
1865 deprecated expect_library to be exp_library for consistency.
1867 10/16/93 5.0.3 Lou-Salkind@deshaw.com found interpreter() could stomp past end
1868 of input array. Same problem in debugger.
1870 Bud Bach noted init.tcl wasn't being sourced, and Makefile
1871 broke if all scripts were commented out.
1873 Added interesting highlights and bindings to tkpasswd.
1875 Made Makefile look for -ltk if libtk.a doesn't exist.
1877 Rick Sladkey pointed out that -re patterns to look for $ should
1880 R.K.Lloyd noted config doesn't see prototypes with K&R cpp.
1882 10/8/93 5.0.2 Bud Bach noted tcl_interactive was not set.
1884 10/8/93 5.0.1 R.K.Lloyd noted various problems, some related to being on an
1885 HP when a lot of #ifdefs kicked in.
1887 10/7/93 5.0.0 Added expect_background. In the Tk environment, this registers
1888 actions to be called upon receipt of a pattern from a process.
1890 Renamed "debug" as exp_internal" and made debugger available
1891 as "debug" and "exp_debug".
1893 Milan Gupta <mbg0@bunny.gte.xcom> noted that system() (at least
1894 on his HP) hangs when SIGCLD is ignored.
1896 <jason@vicor.xcom> noted that Tcl's exec command doesn't bother
1897 to close fds, so force them with close on exec.
1899 Renamed "continue -expect" as "exp_continue". "continue
1900 -expect" will continue to work, just won't be documented. It's
1901 just too dangerous when you start mixing extensions.
1902 Renamed "return -tcl" as "inter_return". Had to do something
1903 to avoid random return values from matching "-tcl". This
1904 design was just wrong. Surprising that it never bit anyone.
1905 Renamed "expect_version" as "exp_version" just to continue
1908 Protected initial fd_new's with isatty so disconnect doesn't
1909 lose redirected fds.
1911 Allowed DFLT_STTY to be omitted entirely. Apollo doesn't need
1914 Modified fork to fail on failure instead of returning -1. This
1915 made spawn failure match disconnect failure.
1917 Dan Hyde <drh@citi.umich.xedu> noted missing arg in exp_error.
1919 Jerry Whelan <guru@stasi.bradley.xedu> noted -buffer was
1920 botched in man page. Hal Peterson noted that bug in man page
1921 caused groff to choke.
1923 wait now returns {pid, spawn_id, 0|-1, status (or error msg).
1924 errorCode is now set if appropriate. wait -i -1 waits for any.
1926 Propagated winsize to pty.
1930 Quentin Stafford-Fraser <Fraser@europarc.xerox.xcom> noted that
1931 interact -u was broken.
1933 Fixed interact's default actions "return"/"interpreter" to be
1934 writable. Removed ability to set default eof/timeout. Removed
1937 Rewrote trap to use Tcl's async support.
1938 Added -code switch and made interpreter understand "-nostack"
1939 coming from error to use ^C to easily return to interpreter.
1940 Introduced following incompatibilities:
1941 - ONEXIT interface disappeared. Use "exit -onexit". (Thinking
1942 of this as a signal bought nothing but complexity.)
1943 Added "exit -noexit" to run all expect-related exit
1944 handlers without exiting or destroying interp or ".".
1945 Useful for when other apps have exit handlers.
1946 - trap command takes missing action as a query. Use "" or
1947 SIG_DFL to delete or reset a trap.
1948 - SIGCLD gone. Now always called CHLD even if underlying
1949 system only knows about CLD.
1950 All sig handlers and exit handlers run at global level.
1952 Removed setjmp/longjmp crap. Not needed since systems which
1953 wait in read don't restart system calls.
1955 Added support in expect for "-gl" and allowed longer forms to
1956 match Tcl's switch command. Similarly for "-ex" in interact.
1957 Rewrote arg parsing for send.
1959 Added "stty" command to support stty of ttys other than
1960 /dev/tty. Better for /dev/tty, too. This should fix
1961 security complaint from BSD's Net2 stty.
1963 <R.K.Lloyd@csc.liv.ac.xuk> gave fixes for configure and noted
1964 exp_main_tk was missing exp_conf.h.
1966 Added "exp_timestamp" command. Fixed bug in interpreter cmd.
1967 It wouldn't return anything with TCL_OK.
1969 Renamed -flush to -nobuffer.
1971 Make interact default to executing actions in raw mode.
1972 Accept -reset to execute in cooked mode. Ignore -f.
1973 Fixed examples. Fixed bug in "-o -timeout".
1975 Deprecated getpid (due to Tcl's pid), added exp_pid.
1977 Put "rm -f" inside catch. SunOS 4.1.3 and some version of AIX
1978 complain despite the -f!
1980 Added "send -break" for Dave Mielke.
1982 Fixed argv handling of expectk to match expect for Steve Clark.
1984 Switching to Tcl 7.0
1986 8/21/93 4.7.7 Cygnus added support for OSF/1 style ptys.
1988 Brian Bebeau <brian@cblph.att.xcom> found bug in PTC support,
1989 HAVE__GETPTY, timestamp doc, and provides some mods for config
1992 Detection of direct spawn ids failed on -1.
1994 8/18/93 4.7.6 Removed zone and gmtoff from timestamp. Not ANSI.
1995 Removed getpid confusion.
1996 Once again, added "cat -u" into kibitz (this time for AIX 3.2).
1998 8/18/93 4.7.5 De Clarke <de@lick.UCSC.XEDU> hit error in exp_global.h because
1999 tcl.h had not been included.
2001 8/16/93 4.7.4 Richard Kasperowski <richk@icad.XCOM> found that Ultrix 4.1-2
2002 failed to allocate controlling terminal. Ultrix's setsid is
2003 evidentally buggy. Switched back to setpgrp - which fixed it.
2005 Fixed type defn of exp_tty_original.
2007 Dave Mielke found two bugs in interact: re-failure prevented
2008 other patterns from matching a particular point in the stream,
2009 and two or more -inputs didn't actually work. Also found bug
2010 in HP trap handling - despite what docs say, other things
2011 besides open/close have to be handled. Specifically, slave was
2012 generating an ARGGET. Backed off on trying to wait immediately
2013 for two OPENs to just waiting for one OPEN. Perhaps zero?
2014 Also found deficiency in return -tcl - failed to return arg.
2016 At Dave's request, made cmdfile by read in a single gulp rather
2017 than line by line. Added -b (buffer) flag for old behavior.
2018 Old behavior performs badly on very long procedures but is use-
2019 ful for reading commands from pipes. Made "system stty" return
2022 Made log_user return previous value irrespective of args.
2024 Fixed mishandling of parens inside of alternation noted by
2025 Bud Bach <bachww@rtsg.mot.xcom>.
2027 Added -timestamp, -iread, and -iwrite to interact and
2030 Added -onexec flag to close to solve problem posed by
2031 Bellave Jayaram <bjayaram@slee01.srl.ford.xcom>.
2033 Added -0 to send. Removed capability of send to send multiple
2036 Chip Rosenthal noted bug in releasing trap 0's action. Also
2037 modified exit handler to allow recursive invocation. Instead
2038 of complaining, it skips handlers that have already been
2039 invoked and forces the process to exit.
2041 Added new names for most command prefaced by "exp_".
2042 Deprecated send_spawn.
2044 Switched to Ousterhout's ckalloc and attitudes towards failure.
2046 Started adding Tcl 7.0 support. getpid renamed to pid. Added
2047 exp_pid to support things that Tcl 7 does with its pid.
2049 6/12/93 4.7.3 fnf@fishpond.cygnus.com noted minor type problems. Rob Savoye
2050 noted trap SIGINT overrode debugger handler. Default should
2053 6/8/93 4.7.2 Added debugger to public release.
2055 6/7/93 4.7.1 Ed Oskiewicz <eo@ansa.co.xuk> noted prototype botch - exp_cook.
2056 Owen Rees <rtor@ansa.co.xuk> noted missing decl for
2059 6/6/93 4.7.0 Gert Bultman <bultman@dgw.rws.xnl> exposed a bug in interact's
2062 5/27/93 4.6.0 Rick Sladkey <jrs@world.std.xcom> fixed a bug in send_log -
2063 checking a master needlessly and indexing off the end of an
2066 Rob Savoye made change for detecting libpt.a, modified
2067 autoconf for better handling of X, exec_prefix, and ranlib.
2069 Kris Woeppel <krisw@cs.athabascau.xca> said SVR3 doesn't have
2072 Made libexpect.a understand regexp. Reorganized code. It
2073 now requires Tcl to be installed first, although it uses only
2074 a few utility routines. Hopefully this isn't a problem for
2077 Zack Xu <zack@cs.wisc.xedu> noted exp_main.h needed C++
2080 Pascal Meheut <pascal@cnam.cnam.xfr> gave fix for skipping over
2081 null bytes while interact is pattern matching.
2083 Added "--" to expect, interact, and send.
2085 Added support for associating multiple -i's with a single
2086 pattern, and -i's with no pattern for use with spawn_id_any.
2088 Made interact work with systems that lack select/poll.
2090 Added code and #defines for debugger. Debugger itself is not
2093 4/19/93 4.5.2 Achim Flammenkamp <achim@HRZ.Uni-Bielefeld.XDE> noted that I
2094 documented full_buffer as buffer_full.
2096 Ted Stockwell <ted@sirius.aggregate.xcom> noted that wait arg
2097 was missing an & in configure test.
2099 Scott Hess noted that systems can have wait4 without waitpid.
2101 Jonathan Kamens <jik@gza.xcom> noted/fixed some things that
2102 weren't autoconf'd correctly: pid_t, RETSIGTYPE, malloc.
2104 Gary Shea noted that a recent change to expectk made it not
2105 default to interactive.
2107 4/12/93 4.5.1 At request of Rusty Wilson <zrlw05@hou.amoco.xcom>, added
2108 "-console" to spawn.
2110 Pang Wai Man Raymond <wmpang@cuse1.se.cuhk.hk> reported that
2111 passmass didn't recognize DEC's passwd prompts for root.
2113 4/7/93 4.5.0 Fixed bug in interact regexp preventing match of multichar
2116 4/6/93 4.4.3 Bennett Todd <bet@sbi.xcom> noted missing example scripts
2117 timed-read and time-run.
2119 3/29/93 4.4.2 Bill Houle <Bill.House@SanDiego.NCR.COM reported fixes
2120 for SVR4 pty support to compile.
2122 Made string matcher understand *$. Documented tty_spawn_id.
2123 Made command line -i override -f.
2125 For Tuan Doan <tdoan@bnr.xca> on HP, make kibitz use domainname
2126 as fallback and used whoami instead of env(USER).
2128 Fixed bug in the generic pty code that could report out of ptys
2129 because an earlier slave slowly deleted the lock file.
2131 3/25/93 4.4.1 Stephen House <sdhouse@bnr.xca> reported exp_tk.c wouldn't
2132 compile on HP. Fixed.
2134 3/24/93 4.4.0 Added back SVR4-style pty allocation which got omitted in the
2135 autoconfig process. Fixed bug in interact's -update handling.
2136 Fixed bug in weather script that cut off long reports.
2138 3/15/93 4.3.0 Cleaned up /tmp files used during pty locking.
2140 Added command "parity" to enable parity stripping. Fixed
2141 match_max to do -i correctly.
2143 3/15/93 4.2.4 Fixed to work on new SGI which returns slave-close via excep
2144 (select) or POLLERR (poll) rather than thru read().
2146 3/12/93 4.2.3 Fixed to work on AIX (using /dev/ptc) and UTS (using getpty).
2148 3/11/93 4.2.1-2 Fixed numerous bugs relating to HP ptys. It's amazing that for
2149 their bewildering complexity, they couldn't support generation
2150 of EOF to the master (or at least enable trapping of just
2151 close), rather than forcing the code to know about opens, too.
2153 3/8/93 4.2.0 Integrated Rob Savoye's autoconfig code.
2155 Interact mishandled new -eof flag. Added -update.
2157 Gary Shea <shea@cs.ukans.xedu> noted that tkwait hung if
2158 expect had been called. Rewrote most of tk_event.c and fixed
2159 some other problems related to efficiency & multiple timeouts.
2161 E Beck <beck@qtp.ufl.xedu> suggested mods to more easily
2162 support Extended Tcl.
2164 Bill Mitchell <mitchell@mdd.comm.mot.xcom> reported problems on
2165 4.3+BSD. Added support for TIOCSCTTY.
2167 Dana Burd <dana@wrs.xcom> noted that "exit" caused by ^C during
2168 expect didn't work - just returning to expect. Fixed, and then
2169 removed "feature" of ^C to abort a timeout. This feature
2170 proved a lot less useful than I thought it would.
2172 2/21/93 4.1.0 Bill Tierney <wtierney@leland.stanford.xedu> noted that double
2173 close dumped core. Rewrote fd_to_f and close/adjust functions.
2175 Interactive interpreter() didn't properly wait in
2176 get_next_event, so Tk stopped responding to events.
2177 Wrote version of interpreter that shares expect's input buffers
2178 but can't think of a use. Left as an ifdef SHARE_CMD_BUFFER.
2180 1/26/93 4.0.1 Added eof check to xpstat. Removed incorrect and unnec.
2181 #includes from exp_main_exp.c
2183 Chip Rosenthal <chip@chinacat.unicom.xcom> found my refs to
2184 tclRegexpError need externs on systems that don't use Tcl's
2185 string.h. string.h should probably be changed not to refer to
2188 Added FAQ about Expect's copyright status.
2190 Mark Christopher <christo@bnr.xca> pointed out some really
2191 stupid errors in the HP support for select.
2193 12/16/92 4.0.0 Rewrote interact. Made re-entrant thru event-handler for Tk.
2194 (Same for Expect.) Abstracted out common code so that
2195 remainder is specific to select vs poll vs tk (although
2196 "simple" was impossible to handle). Added timeouts, regexps
2197 (at request of numerous people), ability to set up arbitrary
2198 graphs of process flows, and some miscellaneous but useful
2199 functionality. New flags are: -input, -output, -re, -echo,
2202 Added "-noecho" to spawn command.
2204 Added getpid command. Something with this functionality should
2205 be added to the Tcl core. When it is, this function will go
2208 Removed assumption of global "interp" handle. Rewrote init
2209 and other routines for use as libraries. Added appropriate
2212 At request of Rob Savoye <rob@cygnus.xcom> added "send_log" and
2213 disabled buffering on all output. The only affect unbuffered
2214 output will cause users is if they pass large strings in
2215 multiple args to send.
2217 Ray Davis <rdavis@masschaos.de.convex.xcom> reported Convex
2218 could not do job control from spawned procs. I added a symbol
2219 DO_SETSID to force this.
2221 Martin Leisner modified rftp to understand iftp. I added it
2222 to the publicly donated scripts directory.
2224 11/17/92 3.24.1 Martin Leisner suggested Makefile use $(MAKE) and support Tcl
2225 as a Sun shared library.
2227 Seth Perlman <seth@welchgate.welch.jhu.xedu> suggested interact
2228 support timeout. I've added this as "-timeout" in inter_select
2229 but left undocumented while we experiment with interface.
2231 Joe VanAndel <vanandel@ncar.ucar.xedu> pointed out that su2
2232 script still used old syntax. Fixed.
2234 Konrad Haedener <haedener@iacrs1.unibe.xch> fixed a bug in
2235 POSIX tty handling on AIX. Surprisingly, we discovered AIX
2236 worked just fine when pty_bsd is used and without -DPOSIX!
2238 Doug (George Jetson) <pynq@midway.uchicago.xedu> pointed out
2239 that a spawn_id for /dev/tty would be really handy. I added
2240 tty_spawn_id for this purpose.
2242 11/4/92 3.24.0 After problem reported by James Ward <jew@sunquest.xcom> added
2243 to man page describing delays required by hardware such as for
2246 Recoded all \C sequences as \### in examples and man page in
2247 anticipation of them going away in next version of Tcl.
2249 Switched to printing errorInfo during errors instead of the
2250 command and only the top-level error message. Since this
2251 includes entire stack, this should be very helpful.
2253 J. Cazander <cazander:pasichva via serigate@phcoms.seri.
2254 philips.xnl> reported that purify found a write beyond the end
2255 of an input buffer. Lucked, it was just before a double-word
2256 boundary, so it probably isn't a problem. I fixed it anyway.
2258 10/9/92 3.23.1 Tor Lillqvist supplied support for HP 8.0.7 in POSIX-mode, and
2259 a bugfix for POSIX tty mode switching
2261 10/8/92 3.23.0 Larry Rogers <lrr@Princeton.XEDU> reported that "weather" blew
2262 up in spawn. I'll add a catch-all to the script to report
2263 similar problems (out of ptys, processes, etc.)
2265 Ting Leung <tleung@bnr.xca> notes that log() in human_write can
2266 receive a 0 (domain error). Fixed unit_random to avoid that.
2268 Tony Primavera <aprima@xox.ssc.af.xmil> notes that the sample
2269 archie script needs to understand mcgill's limit of 10 users.
2270 Tor Lillqvist <tml@tik.vtt.xfi> noted that a lesser-used
2271 pattern ("unknown...") is incorrect.
2273 Grant Taylor <gat@pecan.cray.xcom> found a problem when forking
2274 (using Expect's fork) multiple processes, each of which spawned
2275 something. In the BSD pty support, I had used the pid to build
2276 a temporary file for testing the pty before actual use. When
2277 multiple processes tried to use the same tempfile, it blew up.
2279 8/12/92 3.22.13 Corey Satten pointed out that -u on cat caused kibitz to slow
2280 down on Ultrix. I see the same behavior on SunOS. I added an
2281 option to fix it for systems that need it. Corey also noted
2282 arg miscounting in kibitz, and pointed out that world-readable
2283 fifos could be a security problem. He gave a fix for this and
2284 also a fix to force ptys to be put into raw mode.
2286 Terrence Brannon <tb06@pl122e.eecs.lehigh.xedu> reported rftp
2287 referenced the undefined variable 'transfer'. Turned out to be
2288 a bug in the code to handle symbolic links.
2290 7/20/92 3.22.12 Added O_NOCTTY (if defined) in pty_bsd.c to avoid gaining
2291 control terminal while testing pty when running as daemon.
2293 At request of Michael D. Riley <riley@mbeya.research.att.xcom>
2294 added explanation to man page - how expect_after/before deal
2297 Charles Hannum discovered the problem with AIX (see earlier)
2298 was a missing "extern" in the errno declaration. Also, the
2299 compiler was sensitive to a lack of access to the defn of
2300 struct expect_special.
2302 Dave Coombs gave me yet another fix for the weather server to
2303 accomodate its ever continual change.
2305 7/2/92 3.22.11 Yet more work. Discovered that SunOS and Ultrix really like
2306 setpgrp(0,0) much better than setpgrp(0,getpid()) but the
2307 manual doesn't describe well why this seems to work better.
2308 (The old call worked inconsistently.)
2310 6/30/92 3.22.10 Did more work on modifications to dissolve connection between
2311 stdio and devtty. Eventually, I'd like to add a separate
2312 spawn_id for devtty (expect_devtty?).
2314 6/5/92 3.22.9 Hansel Wan <hhw0@gte.xcom> noted that $errorInfo was clobbered
2315 by prompt1. To prevent this, I added a default definition
2316 for prompt1 (and prompt2 while I was at it).
2318 Unnati Amin <uxa@po.cwru.xedu> noted that the example scripts
2319 checked for $ in prompts which didn't work. This bug was
2320 created when $ was turned into a "match end-of-input" char
2321 in the transition from v2 to v3. Solution: backslash the $.
2323 A few parts of code assumed spawn_id was always stdin, which
2324 caused "send" to send to stdout, which meant succeeding
2325 expect's hung, waiting forever. Fixed is_user macro.
2326 This was a problem with scripts that redirected stdin or
2327 somehow reused fd 0. Surprising that no one ever did that
2328 before - also surprising that it didn't bother cron jobs.
2330 6/2/92 3.22.8 Man pages fixes from Matt Crawford crawdad@fncent.fnal.gov.
2332 5/12/92 3.22.7 Missing ; in Makefile, screwed up chmod.
2334 Fixed bug that caused interact to think the modes had changed
2337 5/11/92 3.22.6 Added regression paper to ftp archive - published in the 1992
2338 USENIX San Antonio Proceedings.
2340 Swapped setpgrp and fork in disconnect command for sysV88.
2341 According to Dave Schmitt <daves@techmpc.csg.gss.mot.xcom>,
2342 original code (right out of Stevens) starts the child with
2345 Fixed bug in interact that changed /dev/tty modes even if
2346 interact was used to connect two completely different ttys.
2347 Had never been a problem before, but today I wrote some code
2348 that actually calls interact from cron! Also, copied the
2349 experimental fix from 3.22.5 to inter_poll.
2351 Jeremy Nussbaum <jeremy@world.std.xcom> says cat needs "-u" in
2352 kibitz for his HP 8.0 system to work. I wonder why this has
2353 never been a problem on earlier HP and other systems?
2355 Forced Makefile to mark scripts executable.
2357 4/12/92 3.22.5 Fixed bugs reported by Matt Ranney <mjr@uther.Calvin.XEDU>
2358 including a syntax error (!) in expect.c on ecases_inuse.
2359 I didn't even compile this before pushing out? He also noted
2360 some # were not in column 1.
2362 I put in an experimental fix to interact (only in select
2363 version currently) to fix when pattern matching from master
2364 and user needs to continue typing in order to complete match.
2366 4/3/92 3.22.4 Charles Hannum (mycroft@gnu.ai.mit.edu) pointed out that I
2367 screwed up a comment in the brand new pty_aix3.c. He also gave
2368 me a fix for an arg-less expect, which did a malloc(0). And
2369 he said that AIX ptys return EOF in yet a new way - read()
2370 returns -1 with errno == 0. Yuck.
2372 3/29/92 3.22.3 Jay Schmidgall gave me yet another pty_aix3.c. He also gave
2373 ifdefs for POSIX terminal support.
2375 3/18/92 3.22.2 Jay Schmidgall <shmdgljd+@rchland.ibm.xcom> modified pty_sgi3.c
2376 to make a pty interface for recent versions of AIX.
2378 Steve Summit <scs@adam.mit.xedu> noted that "trap 0" could
2379 actually call signal(0...)
2381 Martin Leisner <Martin_A._Leisner.Henr801C@xerox.xcom> noted
2382 that rftp was broken. It seems I never handled symlinks. They
2383 are interesting. You can't tell from the listing whether they
2384 are files or directories, so you just have to blindly go ahead
2385 and assume it's one or the other and see what happens!
2387 3/11/92 3.22.1 In talking to Dave Schmitt ,daves@techmpc.csg.gss.mot.xcom>,
2388 realized the documentation for wait had never been updated
2389 from the way it used to work in v2 (returning any pid).
2391 3/11/92 3.22.0 Another question from Ron, prompted me to find another bug.
2392 interact -o wrongly manipulated the user buffer at one point.
2394 3/10/92 3.21.0 Ron Young <ron@nevada.xedu> found that spawn failed on a
2395 DECstation 3100 running Ultrix 4.2. I had forgotten to test
2396 that cmdfile was valid before comparing against stdin in fix
2397 related to fflush in 3.20.0.
2399 While I was on a DECstation, I noticed that it does not accept
2400 setpgrp(...,0). Changed 2nd arg to getpid().
2402 3/6/92 3.20.2 Stefan Farestam <farestam@orion.cerfacs.xfr> provided a new
2403 version of pty_sgi.c which uses _getpty. I renamed the old
2406 3/3/92 3.20.1 Brian Woodson requested I update the dates and version numbers.
2408 3/1/92 3.20.0 Prompted by a question from Ken Mandelberg, added -raw to
2409 noidle and kibitz script.
2411 Fixed fflush(cmdfile) again, having been authoritatively told
2412 by net wisdom that there is no way to portably fflush a shared
2413 read-stream. (I take back my claim about a bug in HP's fclose!)
2415 John Sellens gave me some more fixes for non-DEC MIPS OS.
2417 2/22/92 3.19.1 John Sellens <jmsellen@watmath.waterloo.xedu> gave me a bug
2420 2/21/92 3.19.0 Found a bug in HPUX fclose!! It moves the I/O pointer in the
2421 shared file table entry! This explains the symptoms I reported
2422 earlier. Fortunately, it's easy to code around (by me - it is
2423 no longer necessary to fudge the scripts).
2425 Added some stuff to the man page to explain why expect behaves
2426 the way it does in an emacs shell window and how to live with
2429 2/21/92 3.18.0 Worked on the HP port some more. The HP causes a real problem
2430 by insisting SIGCLD be delivered in order for wait to return
2431 a status. This royally complicated the code, partly because
2432 of the special casing all over the place in the trap command,
2433 the asynchronous delivery of SIGCLD and also because Tcl itself
2434 is not prepared to have system calls be interrupted. The HP
2435 also defines both CLD and CHLD which threw my macros off.
2437 Anyway, the end result is that on the HP, SIGCLD is ignored.
2438 The manual claims wait status will not be delivered but it
2439 seems to be anyway. Good grief! (Even if it were ignored,
2440 it would not be such a calamity, since wait is used mainly
2441 to discard zombies on other systems.)
2443 A remaining problem is that there appears to be some odd
2444 interaction, perhaps with fork, such that the script is rolled
2445 back at eof if a spawned process happens to exit at the same
2446 time. The solution for now is to exit all scripts via exit
2447 rather than letting exit be called implicitly. There must be
2448 some real bug, but I'm unable to find anything after lots of
2449 testing, line and Saber. At the moment, I'm highly suspicious
2450 of the HP itself rather than expect.
2452 Bob Proulx and Jeff Okamoto supplied me with patches for
2453 inter_select.c. HP transmits some pty interactions via the
2454 exception field in select.
2456 Michael Grant gave me a mod to recognize ~ in the logfile and
2459 2/17/92 3.17.1 Brian Keves <keves@meaddata.xcom> pointed out that the man page
2460 still referred to "expect_match" instead of "expect_out".
2462 2/12/92 3.17.0 Eric Arnold <Eric.Arnold@corp.sun.xcom> ran into a problem
2463 when running in the background. interact did ioctl(0...)s to
2464 change the terminal mode, ignoring the -u flag.
2466 Fixed a bug in kibitz which blew up when asking for a password
2467 due to a spelling error. The drawbacks of interpreters...
2469 2/4/92 3.16.3 Dongchul Lim <lim@doctor.chem.yale.xedu> noted that scripts can
2470 hang in the background. I had assumed isatty(0) was enough to
2471 contrast bg/fg but it returns 1 if the script was started with
2472 a & from the terminal. I added code to watch if any ioctl(0)s
2473 were done. If so, than it is safe to do more, in particular
2474 in the exit handler to reset the terminal modes.
2476 1/28/92 3.16.2 Fixed a bug on SV systems causing errors when trying to do
2477 further reads after a SIGCLD had already arrived on a spawn_id.
2479 Peter Funk <pf@artcom0.north.xde> gave mods for SCO XENIX 386.
2481 1/24/92 3.16.1 Oops. Forgot to add pty_svr4.c to shar.
2483 1/13/92 3.16.0 Karl Lehenbauer <karl@sugar.NeoSoft.xcom> a tiny change for
2484 getting a clean compile on SCO 3.2.2.
2486 My getimeofday-avoidance code wasn't right, sigh. Kibitz
2487 noticed. Fixed two other bugs in kibitz - password request
2488 was for wrong user and it timed out but shouldn't have.
2490 Note: seems to work fine with new version of Tcl: 6.2
2492 1/13/92 3.15.1 Added a bit of code to avoid gettimeofday system calls when
2493 timeout == -1. Fixed minor bugs in kibitz relating to cleaning
2494 up and returning error messages.
2496 Redid support for stdlib.h including making it default to fix
2497 problem in Ultrix 4.2 reported by Oliver Kretzschmar <viskretz
2498 @ikesg1.energietechnik.uni-stuttgart.xde>.
2500 Ian Johnstone <ianj@sequent.xcom> said his system (DYNIX 3.2)
2501 needed an additional include <ctype.h> in inter_select.
2503 Dave Coombs <cme.nist.xgov> added logic to test/weather to
2504 accomodate a new feature in the weather server.
2506 Hal Peterson fixed some SV code that I just added for handling
2507 SIGCLD properly. He made the Cray-extra-child timeout in half
2508 the normal timeout to allow distinguishing between eof and real
2509 timeout. Finished rest of Jeff Okamoto's fixes for HPUX.
2511 Wally Strzelec <packman@tamuts.tamu.xedu> provided mods for
2512 Amdahl which has its own pty-handling functions. Ifdef'd into
2515 12/30/91 3.15.0 Fixed a bug that struck when eof occurred when reading from
2516 multiple processes simultaneously and no user-supplied eof
2519 12/26/91 3.14.1 Ted Gibson <tgibson@logdis11.hq.aflc.af.xmil> gave me some mods
2520 for a 3B2 having to do with termio vs termios, etc.
2522 12/24/91 3.14.0 Deprecated expect 2. Expect 3 is now the official version.
2524 Parag Patel <parag@netcom.netcom.xcom> gave me some #includes
2525 necessary for A/UX 2.
2527 Brian Woodson noticed "send a b" generates incorrect debug
2530 Working with Jeff Okamoto to run expect on HP/UX 8.0, we fixed
2531 SIGCLD catching (he says HPUX doesn't ignore them by default?),
2532 obviating longjmp from stomping locals, fixed a bug in cmdWait
2533 that would prevent the wait status from being collected in
2536 12/17/91 3.13.1 James Davis suggested fixing Makefile to handle case where no
2537 example scripts should be installed. I added similar logic
2538 for script man pages.
2540 Pete Siemsen fixed a bunch of things in the Makefile including
2541 where to get expect when invoking fixline1. He suggested defs
2542 for supporting install and multiple MAN targets.
2544 12/12/91 3.13.0 Matthew Freedman <mattf@cac.washington.xedu> noted mismatch
2545 between lib man page (said "stty_init") and lib code (said
2546 "exp_stty"). He also found a screwup in the library such that
2547 the pty slave wasn't being set up correctly.
2549 Added note to kibitz man page on how to kibitz with 3 or more.
2551 12/12/91 3.12.0 "expect *" worked incorrectly if it was first expect after
2552 spawn, due to buffer not being initialized.
2554 Added a good example for "expect -continue" to man page.
2555 Added an FAQ about a gcc problem that seems to be common.
2557 12/11/91 3.11.2 James Davis noted I forgot to put kibitz.man in distribution.
2558 I changed kibitz to read domain from resolv.conf instead of
2559 calling domainname(1) for systems upon which NIS domainname
2560 differs from Internet.
2562 Pete Siemsen <siemsen@barnard.usc.xedu> noted slight error in
2565 12/10/91 3.11.1 A couple tiny mods to the Makefile courtesy of James B. Davis
2566 and Michael Grant (guest worker from Sun, temporarily at
2567 <mgrant@xdr.ncsl.nist.xgov>. Both of them also noted a problem
2568 caused by incorrect installation of gcc that caused expect to
2569 say "ioctl(set): Invalid something or other" upon exit.
2571 Fixed complaint about exit() while compiling without STDC.
2573 12/9/91 3.11.0 beta!
2575 Hal Peterson provided fixes for UNICOS 6.1 and 7.0 on both
2576 CRAY-2 and CRAY Y-MP. He also fixed a problem in interact
2577 where malloc(0) could've occurred.
2579 Added support for allowing user to set interpreter prompt.
2581 Added forgotten -d flag to match_max in rftp script.
2582 Made kibitz understand user@host.
2584 Expect's internal buffer-full-handling incorrectly copied
2585 the latter buffer half beginning from the end of the buffer.
2587 12/5/91 3.10.1 Massaged Makefile to allow for more flexibility in
2588 installation, especially with regards to scripts. #! is now
2591 Added "kibitz", a really cute script to let two people control
2592 one program. Example users are for one person to help another
2593 remotely, logging a conversation (run emacs or whatever inside
2594 kibitz and your conversation can be logged, scrolled backwards,
2595 etc., or of course, playing games together.
2597 12/4/91 3.10.0 Tightened up arg checking for "wait" - it core dumped when it
2598 should've said "syntax error".
2600 Rick Cady <rickc@nsd.3com.xcom> noted minor inconsistency in
2601 man page describing strace.
2603 I fixed a bug that prevented "system stty -echo raw" from
2604 working. The raw data was clobbering the -echo data.
2606 12/3/91 3.9.0 Brian Woodson noted that "close -i ..." evoked a syntax error.
2607 I had parsed the arguments incorrectly.
2609 After the nth request, I finally set up pub/expect/scripts as
2610 a directory for scripts.
2612 12/2/91 3.8.0 Phil Sheperd <pshepher@loki.uni.edu.xau> fixed a major bug in
2613 exp_spawnv() preventing one side of the pty from being set up
2614 correctly. Thus nothing worked! He also reported that his
2615 system didn't have strdup, so I added an explicit defn of it.
2617 James B. Davis fixed a couple nroff-bugs on the man page, and
2618 said someone already gave him a dump script (see below).
2620 Richard (R.C.) Vieregge <richv@bnr.xca> found a $ was missing
2623 11/22/91 3.7.2 James B. Davis <james@solbourne.xcom> straightened out a couple
2624 things in the Makefile and asked if anyone had written a script
2627 Jeff Okamoto <okamoto@hpcc25.corp.hp.xcom> had a couple changes
2628 for HPUX 7 and 8 compat, involving termio stuff.
2630 Prompted by Andy Norman, added note to man page describing how
2631 to disable all argv processing while using #!.
2633 Converted passmass and rftp over to new version.
2635 11/15/91 3.7.1 Brian Woodson asked me about the Tcl_WaitPids "got unknown
2636 process" panic. This is a Tcl bug that John has promised
2637 to fix. I'll document how to avoid it in the man page.
2639 Incidentally, I'm going under the knife tomorrow for three
2640 torn cartilage in my wrist. The doctors say it may be a couple
2641 days to couple months. Until I get back, hang in there.
2643 11/13/91 3.7.0 Yet another bug discovered (and fixed). "expect eof" was
2644 failing to remember the buffer, and expect_out(buffer) was
2647 Brian Woodson noted I forgot to document the -i flag of close.
2649 11/12/91 3.6.0 Sean Cunningham <sean@moorenet.xcom> reported that he couldn't
2650 open /dev/tty from 'at'. 'spawn' was incorrectly not executing
2651 code to claim it was a controlling tty. BSD only.
2653 11/11/91 3.5.1 Brian Woodson notes that version 2 and 3 treat the following
2656 proc p {} {spawn s}; expect
2658 In v3, spawn_id is locallized by the proc, and thrown away when
2659 p returns. Unfortunately, in v2 due to some sloppy coding on
2660 my part, spawn always affected the global value of spawn_id.
2661 This differed from the handling of other variables, and in v3,
2662 this unusual behavior had to go, because the multiprocess
2663 handling and the large number of variables implicitly set
2664 (especially by the expect command) demanded that I be more
2665 systematic about how this was done.
2667 Since I never depended on this behavior, I never documented it
2668 as being something you should rely upon. Alas. To fix it, add
2673 to the beginning of any proc that calls spawn and needs the
2674 value of spawn_id implicitly defined outside of the proc.
2676 11/6/91 3.5.0 Drew Whitehouse <Drew.Whitehouse@anu.edu.xau> hit a bad pointer.
2677 I forgot an initialization in expect.c which caused problems
2678 when an EOF occurred which had no eof pattern.
2680 11/2/91 3.4.0 Added FAQ from various questions people have sent me and my
2681 replies. Made CONVERTING file on converting from 2 to 3.
2683 Nelson H. F. Beebe <beebe@math.utah.xedu> found a missing
2684 declaration for exp_tty_original in bye() of main.c. How come
2685 the Sun C compiler doesn't complain about this!?!!?
2687 Nelson also reported that SunOS 4.0.3 had a problem including
2688 varargs. It turned out that old varargs had check for
2689 reinclusion, and tclInt.h also includes it. So I added an
2690 #ifdef va_dcl and put my inclusion after tclInt.h.
2692 10/31/91 3.3.0 Converted most of the examples. Three more to go.
2693 Worked on man page some more.
2695 Modified expect so that if timeout > 0, and nothing in the
2696 buffer matched, it will force a read, no matter how long the
2697 preceding code took. This may be hard to understand, but is
2698 the intuitive behavior that I always desired.
2700 10/30/91 3.2.0 Fixed bug in eof handling. Converted some more of the
2701 examples, and added to Makefile.
2703 10/29/91 3.1.0 Fixed slight bugs in tty mode switching, pty initialization
2706 Fixed expect library. Fixed compatibility code for non-BSD
2707 systems. As usual, I could only test it so far, not having
2708 all these systems at my disposal. I don't expect major
2709 problems though, since the basic functions I depend on haven't
2712 Completely rewrote handling of continue, return, etc in
2713 expect, interact, interpreter. It's actually systematic now.
2715 Checked with John O. about some code to bounce wild return
2716 codes, which he said was a mistake and would remove, so now I
2717 can pass my own return codes different from Tcl's.
2719 To get | to return -> TCL_RETURN TCL_OK (no return)
2721 expect return default continue -expect
2722 interact return -tcl return default
2723 interpreter return -tcl return default
2725 What this table says is, to get "interpreter" (for example) to
2726 return TCL_RETURN to its caller, you must say "return -tcl",
2727 because "return" makes it return TCL_OK.
2729 The "argumented" versions are considered to be the uncommon
2730 form. In particular, I'd be surprised if anyone ever uses
2731 the -tcl argument, but it's there for completeness and
2734 Put together a FAQ. Needs more work, but hopefully worthwhile
2737 Computing Systems with Expect article appeared a couple days
2738 ago. How ironic that it describes the old version of Expect.
2739 Nonetheless, it looks ok.
2741 10/25/91 3.0.0 alpha!
2742 First release of Tcl-6.0-ready code.
2743 It might fly for a couple seconds.
2745 Here is a quick list of changes. Besides Tcl incompatibilities, Expect
2746 incompatibilities are flagged below as:
2748 ** major - scripts definitely won't run if they depend on this
2749 * minor - scripts probably will run but there is some subtle
2750 change that should be examined).
2752 ** Select renamed 'ready' and undocumented. Seems pointless now.
2754 Added support to expect command for waiting on patterns from
2755 different processes. The old version implemented this via
2756 'select' but but it is much simpler via expect. Added -i to
2757 a number of commands to signify a spawn_id which overrides
2760 Added any_spawn_id to match any spawn_id.
2761 An explicit null pattern, forces a spawn_id to be considered
2762 when all it can possibly match are any_spawn_id patterns.
2764 * output is no longer flushed to expect_match upon timeout.
2765 May be multiple buffers now, so it doesn't make sense to
2766 flush just one.) -n was added to disable transfers from input
2767 buffer to expect_match var. I suspect it will only be used
2768 for experimentation.
2770 Added expect -re for regular expressions. Added expect_out
2771 array to retain indices and strings of partial matches for
2772 ** for both glob and re. expect_match has been renamed
2775 A la Tcl, added -nocase for both types of patterns. (Oddly,
2776 Tcl's case only does it for regexps.)
2778 By popular demand, unanchored glob patterns. Old patterns
2779 will continue to work, since earlier interpretation was much
2780 stricter. Unfortunately, unanchored matches make certain user
2781 errors easier. For instance, people will send answers before
2782 seeing all of the question. Typically, output can 'look'
2783 ugly, as answers land in the middle of other things.
2785 To anchor patterns, use ^ in beginning and/or $ at end.
2787 Added expect_out(spawn_id) to report which spawn_id was read.
2789 Made expect and variants understand all args as one arg.
2791 Added 'default' pattern.
2793 Added continue_expect command.
2795 Added expect_before, expect_after commands which take same
2796 args as expect, but continue to stay in effect for all expects.
2798 ** Added match_max command, deleted it as a variable. The old
2799 way was too coarse for use over multiple spawn_ids. With no
2800 arg, returns current max. Takes -i flag and -d for default.
2802 Added globbing to spawn command.
2804 Added optional -i spawn_id to wait.
2806 Added optional -i to send (and all its variants).
2808 Renamed trace to 'strace' since it conflicts with Tcl's new
2809 trace command. Since 'trace' traces variables, I figured
2810 'strace' wasn't too bad (for "statement trace"). I felt
2811 obliged to make it short and not as obliged to make it as
2812 meaningful since it will probably invariably be typed by hand.
2814 Made timeout == -1 mean infinity.
2816 Made interact do pattern matching in both directions via
2819 Added -F flag for convenience. If -f or -F used, interact
2820 can no longer be overrun. In particular, if more characters
2821 arrive then match a pattern, remaining characters will be
2822 buffered rather than thrown away (old behavior).
2824 Patterns may now be substrings of one another.
2826 Made interact optionally take all args as one.
2828 Default action is now 'interpreter' (see below).
2829 interpreter now forces cooked mode, and echos results
2830 so you don't have to constantly say "send_user [...]\n"
2832 * Interact reads characters that have been buffered but not
2833 matched by expect. And vice versa. Does anyone care?
2834 (My rogue script did.)
2836 From discussion with John Conti, I decided to make
2837 'interpreter' a separate command to start up interactive
2838 command processor. Changed default action in interact to this.
2839 Added eval depth and event id to prompt to interpreter.
2841 Added expect_library which contains path for commonly
2842 sourced expect scripts. Automatically source expect.rc
2843 out of expect_library unless -N given. Automatically source
2844 ~/.expect.rc unless -n given.
2846 Added expect_version command to print and/or verify script
2847 is compatible with running expect. Tcl version is also tested.
2848 Felt it was worth making this a command because it's such a
2849 pain to tear apart version strings.
2851 Tcl's close and exit are both subsumed by expect's commands
2854 Rewrote mode switching code so that "system stty" is handled
2855 specially. This allows interact and interpret to get the modes
2856 they want, without burning the user. It is now much easier
2857 to leave expect in raw mode all the time, but the choice is
2860 Added vgrindefs, courtesy of Brian Fitzgerald.
2862 9/23/91 Tcl 6.0 released. This new Tcl has some incompatibilities
2863 with the old Tcl, so as long as everyone is changing their
2864 scripts already, I'm taking the opportunity to make some
2865 incompatible changes to Expect that I've wanted to do for a
2868 9/11/91 2.67 Ed Klein <eklein@syrinx.umd.xedu> added support for SVR4 in the
2869 form of pty_svr4.c and mods to command.c.
2871 Added explanation to man page of how to create unreadable but
2872 executable scripts. (No, chmod 111 doesn't work.)
2874 Mark Diekhans <markd@grizzly.XCOM> pointed out to me that there
2875 is a potential problem with the trap command:
2877 "There is no control over when the signal will cause Tcl_Eval
2878 to be executed. There is a chance that code in the Tcl library
2879 will be executing when the signal comes in and the interpreter
2880 data structure will be in an inconsistent state. This could
2881 cause all sorts of nasty things to happen. In our Extended Tcl
2882 (4.0) we added signal handling. but the way we implemented it
2883 was to have the signal handler set a global flag. We modified
2884 Tcl_Eval to check the flag after it finishs executing each
2885 command. If the signal came in, Tcl_Eval then returns an error
2886 such as: "SIGINT signal received". Signals may then be caught
2887 with the catch command and processed."
2889 9/10/91 2.66 Don Jackson <Don.Jackson@Eng.Sun.XCOM> found a syntax error in
2890 the usage error message of the example ftp-rfc script.
2892 Marty Olevitch <marty%cosray@wuphys.wustl.xedu> provided mods
2893 to support MORE/bsd. Namely, added #include types.h to
2894 expect.c and extern int errno to a number of files.
2896 Scott Hess <scott@nic.gac.xedu> noted a potential problem in
2897 interact. Since interact only checks patterns at beginning
2898 of reads, user can conceivably type fast enough so that
2899 patterns are typed in the middle of a read. In reality this
2900 doesn't happen, but Scott was driving one expect with another
2901 expect and in this way provoked the behavior.
2903 The solution is to read chars one at a time, either by
2904 read(,,1) or buffering in a stdio-like way, but I'm not going
2905 to do that because the code should really be rewritten entirely
2906 and it just isn't worth it, since it is so easy to get around
2909 Steve Legowik found that spawn-disconnect sequences fail. The
2910 pty testing I added in version 2.55 causes expect to regain the
2911 slave as a controlling tty, which generated SIGHUPs. If anyone
2912 knows a clean way to avoid regain controlling ttys, let me
2913 know. For now, I just set SIGHUP to SIG_IGN in the disconnect
2916 8/14/91 2.65 Old passmass script changed root password. I renamed it to
2917 passmass.old, and made a new one which works for any account.
2918 It also supports yppasswd, telnet/rlogin, different names for
2919 accounts on different machines. Handles VMS machines, too.
2921 Added Computing Systems paper to expect distribution and moved
2922 all expect-related things to separate expect directory in our
2925 8/5/91 2.64 Achille Petrilli <achille@miss.cern.xch> found that on an SGI,
2926 the expect command ocassionally returned "no more processes".
2927 He traced the problem back to O_NDELAY in the open, which was
2928 taken as-is from the man page, by someone else who's code I
2929 didn't look at too closely at the time. The result works now.
2930 Oddly I thought I fixed this error myself when the SGI support
2931 was first installed, but I cannot find it. I evidentally
2934 7/31/91 2.63 Steve Legowik <legowik@cme.nist.xgov> wanted to implement
2935 callback by having a modem dial out and NOT go away, but
2936 interact in the reverse direction. I added "interact -u" to
2937 support the idea of changing the user from the default stdio
2938 to a second spawned process. The result is that we can now
2939 write a modem callback program that doesn't depend on the cute
2940 trick of having getty recognize DTR which only worked when the
2941 modem was directly connected to the computer. In Steve's case,
2942 there were several network switches in the way.
2944 Added "overlay" function which is similar to plain "exec" in
2945 shell. (Too bad Tcl took the name already.)
2947 Added robohunt scripts to the test directory. I wrote these
2948 back in January, '91 and forgot about them til now. But I
2949 suppose they are illustrative (at the very least of how to
2950 generate truly random numbers). Ha.
2952 7/20/91 2.62 Carl Witty <cwitty@jessica.stanford.xedu> pointed out my fdset
2953 implementation (for systems that don't have it) wasted some
2954 space. I had commented it correctly, however, making the
2955 incorrect code obvious (except to me).
2957 Robert Howland <howland@rahjr.ame.nd.xedu> pointed out that
2958 expect complained about not running from a real terminal under
2959 cron. Oops! So I added a test to skip saving/restoring
2960 terminal modes when fd 0 is not a tty, since this is obviously
2963 7/19/91 2.61 Oops. Forgot to include getline and getline.exp examples even
2964 though they have been documented!
2966 7/17/91 2.60 UMich changed interface to weather system necessitating change
2969 7/9/91 2.59 Didn't correctly comment things right in Makefile. Fixed.
2971 Changed 'close' in gethostbyaddr example to 'catch close'.
2973 6/22/91 2.58 Made new file (pty_sgi.c) for supporting Silicon Graphics ptys.
2974 Silicon Graphics select fails to see eof immediately but poll
2975 works ok. Unfortunately, there was an error in inter_poll
2976 (bad_io was uninitialized). Silicon Graphics works now.
2978 Andy Norman <ange@hplb.hpl.hp.xcom> notes that linking expect
2979 with the BSD compatibility library under HP-UX, libc.a must
2980 be loaded before libBSD.a. Modified Makefile to reflect this.
2981 He notes that there is a problem with expect not reading an EOF
2982 from the current process. This should go away with HP-UX 8.0
2983 when select has been enhanced to flag exceptions in the readfds
2984 argument. Probably inter_poll would work.
2986 Edward Haines <haines@bbn.xcom> notes that close returns EPERM
2987 ("Not owner") on his Sun 4.0.3. This is rather startling!
2988 (That's what I get for checking the return value of close!)
2989 He said it is possible that they have modified things (viz.
2990 DDN X.25 is loaded), but it still sounds incredible. For now,
2991 I told him to either "catch" all closes or to remove the check
2994 Added example scripts: ftp-rfc retrieves an RFC from uunet
2995 via ftp. archie mails back a listing from the archie server.
2997 Add the rest of Hal Peterson's changes for Cray support, 1)
2998 fixing a problem where spawned processes flushed unread I/O
2999 upon process exit, and 2) creating processes with the correct
3000 uid. See his comments in command.c for more info.
3002 6/6/91 2.57 (On Cray) made signal handler declarations right. Added
3003 missing #endif. Added includes to pty_unicos.c. Fixed bug
3004 in two bugs in CmdSend, one involving send_stderr, the other
3005 send_user. All of these are from Hal Peterson.
3007 Added gethostbyaddr as example script. Given an internet
3008 address, it returns the domain name. By querying neighboring
3009 hosts if the name server fails, a much higher probability of
3010 returning the name is obtained.
3012 5/30/91 2.56 Mispelled "match_max" as "max_match" in rftp script. This
3013 caused files after the 2000 byte mark (per directory) to be
3016 5/21/91 2.55 Revisited BSD pty code to reject ptys that have either slave or
3017 master side already open. This fixes problems rare problems
3018 such as expect not being able to see EOFs from the child proc.
3019 (because another process still has the pty slave side open).
3020 USG and Cray pty code could probably use this code, too.
3022 Fixed bug in expect library (lib_exp.c) which caused output to
3023 be copied to stderr instead of logfile when logfile_all was
3024 set. Per Sreedhar Muppala <muppalla@nssdca.gsfc.nasa.xgov>.
3026 5/16/91 2.54 Fixed weather script to accomodate occasional Weather Watch
3027 that would cause an unexpected initial question to pop up.
3029 5/15/91 2.53 Added comment to BUG section of man page describing pty
3030 misbehavior with non-interactive programs (search for "553061"
3031 below), as per Hal Peterson <hrp@cray.xcom>.
3033 Removed note from README about asking Ousterhout for SV TCL
3036 5/11/91 2.52 Fixed a syntax error that Bruce Larson <ires@kaspar.ires.xcom>
3037 found in inter_poll.c
3039 4/23/91 Computing Systems accepted paper on Expect for issue 4.2.
3041 4/18/91 2.51 Added some example scripts:
3042 weather - retrieves weather forecasts from National Weather
3043 Service via University of Michigan server.
3044 rftp - ftp a directory hierarchy (i.e., recursively).
3046 4/18/91 2.50 Changed timeout to apply to total time in expect rather than
3047 per read(). Original behavior hung forever when my modem test
3048 script started listening to a modem than spit out 1 spurious
3049 character every 10 seconds (very consistently).
3051 Hal Peterson <hrp@pecan.cray.xcom> noted that exp_spawnv's args
3052 didn't match documentation. Fixed in favor of documentation.
3053 Several other funcs don't match header file (but typechecking
3054 is avoided during compilation), because it was too hard for me
3055 to make the header file ANSI compliant and support varargs
3056 (which is undeniably more portable than stdargs at this point).
3057 Fixed prototype declarations (again) in expect.h for C++ and
3058 Standard C. Verified with GNU, G++ and Sun C (proto-less).
3060 Added exp_disconnect to library. Moved alarm calls closer
3061 to read() to tighten windows.
3063 4/11/91 2.49 Changed passmass script to use timeout of 1000000 instead of
3064 10000000000 after discovering that Ultrix sleep(3) doesn't
3065 sleep at all for large values!
3067 Added support for systems without dup2 (SVR2) per
3068 <elston@edwards-tems.af.xmil>.
3070 Added test/Makefile to shar as per Chris Pribe
3071 <cpribe@park.bu.xedu>.
3073 4/4/91 2.48 Fixed possible problem with poll in inter_poll.c for systems
3074 that check for a valid address even though no members are used.
3076 3/27/91 2.47 Added support for Cray Unicos 6.0, which of course is different
3077 from Unicos 5.1 (which was different from everything else)!
3078 This and other minor bugs fixed courtesy of Pete Termaat.
3080 3/19/91 2.46 Removed a "feature" which caused patterns with no whitespace
3081 not to be run through SplitList. While not documented not to
3082 do so, this was mystifying even to me when I saw it. For
3083 William Waite. The result actually simplified the internal
3084 handling of multiple patterns, removing some excessively
3085 complex logic that I thought would be helpful for speed, but
3086 that in retrospect, was not that important.
3088 3/16/91 2.45 Added my own definition of FD_SET, fd_set, etc, test for
3089 SIGABRT, and support different types of signal arg func
3090 definitions to support SunOS 3.5 as requested by William Waite
3091 <waite@scotty.colorado.xedu>.
3093 3/14/91 2.44 Removed redundant def'n of pty_stty in pty_usg.c, redef of
3094 sprintf and added signal.h to command.c to make compiles
3095 cleaner on SV3 and HPUX machines. All compliments of Mike
3098 3/10/91 2.43 Added -s (for slow) and -h (for human) flags to send. This
3099 had been requested by several people including Frank Terhaar-
3100 Yonkers (who actually wrote and tested a "send_slow" command),
3101 and Steve Simmons who suggested the "human" option (over a year
3102 ago), and Brian Woodson (brianw@swqa-sun.ESD.3com.com), who
3103 requested both! Thanks to NIST statistician, Keith Eberhardt,
3104 who taught me about the Weibull Distribution.
3106 According to Jim Thomas <jthomas@nmsu.xedu>, 3b2 requires
3107 defines for R_OK and W_OK. Added to pty_usg.c.
3109 Added support for "-" as file name on command line to mean
3110 stdin as requested by Steve Clark <clark@cme.nist.xgov>.
3112 Wrote passmass (change root password on a set of machines) as
3113 requested by Ken Manheimer <klm@cme.nist.xgov>. Added to test
3116 2/21/91 2.42 Removed reinstallation of signal 0 in signal handler.
3118 Added hook for setting initial pty parameters when started in
3119 the background. Should've done this a long time ago, but I
3120 was never really happy with my solution and had hoped I would
3121 think of a nicer method. I only hope this is clean enough.
3123 2/10/91 2.41 Added buffer_full keyword to solve Brian Fitzgerald's problem.
3124 It disables "forgetfullness" so that when expect's internal
3125 buffer hits match_max, whatever it has returns at that point.
3126 Didn't add this to the library version, because I want to think
3127 for awhile about the cleanest way to do it.
3129 2/4/91 2.40 Per Brian Fitzgerald (fitz@mml0.meche.rpi.edu), fixed error in
3130 interact example on man page which incorrectly implied that
3131 "kill" was built-in.
3133 Added fork/disconnect functions. This solved the problem of
3134 Jerry Friesen (jafries@snll-arpagw.llnl.gov) who wanted to run
3135 an expect script that asks for a password and then goes to
3136 sleep for awhile before waking up to run in the background (to
3137 run a program using Kerberos).
3139 1/30/91 2.39 Per Jim Johnson (jaj@mlb.semi.harris.com), added declaration
3140 and documentation for exp_pid in libexpect.
3142 1/10/91 2.38 More mods from Frank Terhaar-Yonkers. Also, some requests
3143 from Pete TerMaat (pete@willow.cray.com) for features:
3145 1) a single-step facility. Yeah, that would be nice. No
3146 ideas on how to do this easily.
3148 2) Generate scripts automatically after watching a session.
3149 This is hard. Read more about this in the FAQ.
3151 1/10/91 2.37 Added support for Cray Unicos 5.1, all courtesy of Frank
3152 Terhaar-Yonkers (fty@sunvis.rtpnc.epa.gov). Most of it had to
3153 do with pty support.
3155 1/8/91 2.36 Modified expect.h to support C++ and ANSI prototypes. Added
3156 appropriate example in test directory based on chesslib.c.
3158 1/7/91 2.35 At the request of Jan Norden (jano@imdpy1.im.se) added
3159 NO_MEMCPY and NO_STRING_H defines for Pyramid.
3161 1/3/91 2.34 Added a check to protect against a longjmp occurring between
3162 i_read and alarm(0). Didn't think this would be a problem but
3163 evidentally a function return modifies the stack, so it cannot
3164 be returned to again. Drat! This appeared in the robohunt
3165 script I wrote which plays hunt automatically and uses 1
3168 12/19/90 2.33 Add signal to sighandler, to reinstall signal for those systems
3171 12/12/90 2.32 Removed test for args to expect. I only recently realized that
3172 no args still allows a valid way to check for timeout and eof!
3174 12/6/90 2.30-1 Mike Gourlay (mike@penguin.gatech.edu) found and fixed quite a
3175 few SV-related problems that I had introduced since Clem's
3176 fixes. We eventually got it to run on his HPUX machine, a
3177 mixed breed of BSD/USG stuff. But spawning a shell worked but
3178 always produced a complaint about "no access to tty" which we
3179 were never able to get rid of, and he had a problem with
3180 exp_fexpect (but not exp_expect), although it still isn't clear
3181 if that was expect's fault. He said he would speak to some HP
3182 engineers about what he found.
3184 12/5/90 2.29 Fixed a malloc off-by-one bug in new C library. After
3185 contemplation, revised interfaces. Decided that rather than
3186 following the original 'expect' style, it should be more like
3187 what a C programmer is used to, so I made the file descriptors
3188 be parameters to exp_expect rather than globals, added an
3189 exp_popen which is a popen equivalent, and added exp_fexpect
3190 versions which are stream equivalents.
3192 Am not happy with exp_fexpect. It is much less efficient than
3193 exp_expect, because there is no way to (portably) get fread()
3194 to return the way read() does, with less then the number of
3195 characters you supplied a buffer for. Instead, I have to call
3196 fgetc for every char. Ugh.
3198 Add a couple new examples, including lpunlock, time.exp,
3199 chesslib.c (using file descriptors) and chesslib2.c (which uses
3202 12/3/90 2.28 Created C library version of expect.
3204 11/29/90 2.27 Fixed bug in interact - when no string actions were defined,
3205 the mapping table length wasn't set at all.
3207 Made interact call printify when debugging so that crlf and
3208 other nonprintables are visible. Fixed bug in printify which
3209 interpreted some characters wrong due to parity.
3211 Added some more examples to the distribution (lpunlock, dvorak,
3212 timed_read) and put in another tip in the TCL HINTS section of
3215 11/18/90 2.26 Fixed mismatched comment per Craig Warren (ccw@deakin.oz.xau).
3216 Also improved man page entry for "interact".
3218 11/17/90 2.25 Added -f (fast) on interact options, and made default case a
3219 little more efficient. Added explicit support for SIG_IGN and
3220 SIG_DFL in trap command. Added ability to specify signals
3221 symbolically for portability.
3223 11/15/90 2.24 Craig Warren (ccw@deakin.oz.xau) wanted to exit expect while in
3224 interact with a single character. Dan Bernstein
3225 (brnstnd@kramden.acf.nyu.edu) wanted to suspend with a single
3226 character. So I generalized interact's escape character to
3227 string-action pairs.
3229 11/7/90 2.23 Tired of getting reports that various (Ultrix 3.1, BSD4.3) C
3230 compilers can't handle ternary conditionals returning ptr to
3231 func returning void. Made all (2) such statements into
3232 if-then-elses. Per Steve Simmons (scs@iti.org).
3234 10/8/90 2.22 Allow "log_file" even when no log is open. This makes user
3235 programming a little simpler - they don't have to remember
3236 whether they opened the log or not.
3238 9/27/90 2.21 Fixed bug, v2.19 introduced. debuglog(unknown string) requires
3239 a "%s" as formatting for protection against %'s in the unknown
3242 9/17/90 2.20 4 syntax errors in interact_poll.c, vik@sequent.com. Added
3243 quotes to all the sends (now that this is more efficient) in
3244 the examples and man pages. Also removed a misstatement in the
3245 man page about the behavior of double quotes.
3247 9/15/90 2.19 Removed buffering from send command. Originally, I buffered
3248 the args, so I could do it all in one write. But to send
3249 variables bigger than the buffer didn't work. I didn't think
3250 about this before. But Joe Gorman
3251 (Joe.Gorman@elab-runit.sintef.xno) asked me if you could "send"
3252 a file in one command, and of course you can using [exec cat]
3253 as the argument to send, but the buffering prevented big
3254 files from being sent. Anyway, now it works.
3256 9/14/90 Fixed the declarations of nflog and nferrlog. Added a #define
3257 so lack of pid_t could be controlled from the Makefile. Per
3258 Andy Holyer (and@ux.rfhsm.lon.ac.uk)
3260 9/4/90 2.18 Added trap command to catch signals. This is nice as (among
3261 other things) it allows you to turn off the conversion of ^C to
3262 timeout which was requested by John Conti <jconti@cisco.xcom>.
3264 8/21/90 2.17 Fixed bug in printify. Forgot to reset ptr to beginning of
3265 print buffer. Made debugging info wrong. Possibly screwing up
3266 other things on overflow.
3268 Paper accepted into USENIX LISA!
3270 8/15/90 Cleaned up man page. Made tabs line things up correctly,
3273 Found another problem with ptys (at least under SunOS 4.1 and
3274 earlier). When last pty-slave fd closed, any unread output is
3275 lost after a short window of time (around 10 seconds on a
3276 Sun 3/60). Sent example ptybug.c to Sun demonstrating this and
3277 EIO problem found earlier. (Service Order #553061)
3279 8/6/90 2.16 Added -f to debug command, -a to log_file command. This
3280 required significant changes, including revisiting all the
3281 logging routines, plus miscellaneous output done in special
3282 places. Noted that it cannot be done with getopt, since it
3283 could be called during main's getopt, and getopt is not
3284 reentrant! (Guess how I discovered this!!)
3286 I'm not particularly happy with the design, but maybe others
3287 won't be. In any case, I like the benefit of it and am now
3288 glad that -a was asked for. Per Harry Bochner and Ira Fuchs
3289 (fuchs@pucc.bitnet).
3291 Changed behavior of argv, so that 0 == [length $argv] when no
3292 script/args supplied.
3294 8/4/90 2.15 Added debug command, so -d-ness could be changed while expect
3297 7/20/90 2.14 Fixed small bug in -d output from expect, which printed ^Z as
3300 7/18/90 2.13 Added wait command. A waitpid/waitspawnid would be nice and
3301 cleaner, too, but since csh doesn't need it, it is probably not
3304 Consequently, removed SIGCHLD handling from command.c. It
3305 worked under SV but not BSD. By forcing users to explicitly
3306 code waits, resulting scripts are more portable.
3308 Rewrote rogue example. rogue sometimes misses EOF (generated
3309 by close on our side) and continues reading.
3311 7/16/90 2.12 Removed buffering from variadic log routines. This was
3312 faulting when the buffers overflowed.
3314 Cleaned up the -d output from expect, so it is much more
3315 readable. For example, control characters are now visible.
3317 7/14/90 2.11 Added declaration for errno, to support 4.3BSD. Per Alan
3318 Crosswell. Added -i flag and related behavior.
3320 7/12/90 2.10 Fixed bug where timeout = 0 waited forever rather than not
3323 7/11/90 Fixed man page example which didn't include the blank on the
3324 end of an ftp prompt.
3326 7/9/90 2.9 Fixed bug in send when spawn_id = $user_spawn_id.
3328 6/27/90 2.8 Integrated some mods from clem cole (clemc@ccc.com) to support
3329 System V.3 (386/ix Version 2.02). Unfortunately, he didn't do
3332 6/25/90 2.7 Test that cmdfile and logfile are open before fclosing in child
3333 while spawning. Per Corey Satten <corey@cac.washington.xedu>
3335 6/24/90 2.6 Pty master returns EIO instead of EOF when pty slave closes.
3336 Bug in pty driver? Until I figure this out, I have put in code
3337 to interpret EIO to EOF.
3339 6/21/90 Added new section to expect man page - Tcl hints.
3341 6/14/90 Spoke at USENIX. Went well. Added USENIX paper as separate
3344 6/4/90 2.5 Fixed bug in ^C catching during expect. Changed man page to
3345 accurately describe what ^C does. Fixed bug that caused "send"
3346 to screw up when handed 0 arguments. All per Harry Bochner.
3348 6/1/90 2.4 Made trailing empty action in expect optional, primarily to
3349 make straightline code easier to read.
3351 5/15/90 2.3 Changed expect to strip nulls from program output since there
3352 is no way for Tcl to handle them, per Harry Bochner.
3354 5/5/90 Added "send_error" command.
3356 4/26/90 Got USENIX paper back from Kolstad to proof. Am depressed at
3357 how awfully they formatted it.
3359 4/25/90 2.2 Eric Newton found that expect's special variables weren't being
3360 found inside of user subroutines. Had to do with new Tcl,
3361 which now differentiates between variables that are undefined
3364 4/24/90 Upgraded Tcl from 2.1 to 3.3.
3366 4/22/90 Added special behaviors of ^C in expect, and when profiling.
3367 Profiled rogue (at urging of Ousterhout).
3369 4/10/90 2.1 Added select command. Added support for user_spawn_id so that
3370 you could treat user just like another process (i.e. with send
3371 and expect). Decided to leave send_user/expect, since scripts
3372 are more readable with them.
3374 4/2/90 2.0 Changed syntax of expect to provide alternatives (a la Tcl
3375 case), per suggestion of John Ousterhout. Note that this
3376 breaks pre-2.0 scripts.
3378 3/31/90 Got great comments from Ousterhout. (This time he said that he
3379 really liked the idea. Maybe he realizes how much it will
3382 3/30/90 Got comments from dpk. Made me think more about Perl.
3384 3/28/90 Evi said I should turn the paper in unformatted and they will
3385 format it. (She's kidding, I hope.)
3387 3/27/90 1.8 Rewrote interface so that raw arguments can be passed in like a
3388 shell. I'd been thinking about this for some time, but Eric
3389 Newton finally prodded me into action.
3391 3/25/90 Got first corrections for paper - from Sue Mulroney!
3393 3/24/90 Observed that it is possible to use the #! syntax with expect.
3394 I asked John O. about this (his choice of # as a comment
3395 character), and he said it was pure coincidence. Deprecated
3396 request to end scripts in ".exp".
3398 Ted Hopp volunteered to be my Center WERB reader.
3400 3/23/90 Finished 1st draft of USENIX paper and sent copies to John
3401 Ousterhout and panel chair, dpk@morgan.com.
3403 3/20/90 1.7 Deprecated "stty", and added more general "system" command.
3405 Sent Evi some complaints about the business of not allowing
3406 camera-ready at USENIX.
3408 3/17/90 Sent copies of man page to Doug Gwyn and Larry Wall for
3409 comments. Note that gwyn downloaded it.
3411 3/16/90 Am really irritated by USENIX. My paper has been put in a
3412 session against another session, the BSD people. Furthermore,
3413 they called my paper an application, when it is no more so than
3414 any other shell or language. Better I should be in "lessons
3415 learned". But it was too late to change the schedule. On top
3416 of that, our session has four people in it, so I'll have very
3417 little time to speak. Grrrr.
3419 3/13/90 1.6 Added "stty", because without it you can't do things like
3420 turning off echo to accept a password.
3422 3/8/90 1.5 Abstract was accepted into USENIX!!!! Time to start writing
3423 it! Sent man page to Ousterhout. He didn't seem too
3426 Added "send_user/expect_user" after listening to Ken complain
3427 about how shell could not do timed reads. Actually it can, but
3428 expect does it much more naturally. Deprecated echo. Now, I
3429 realize that expect can be viewed as a shell!
3431 Changed logfile/loguser to log_file/log_user to match all the
3432 variables with underscores in them.
3434 Barry Warsaw asked if there was any way one could execute any
3435 command from interact (apparently without any reason in mind).
3436 Nonetheless, it is a wonderful idea, and I changed the "abort
3437 character" in interact to an "escape mechanism". After
3438 escaping, you may execute any command. return duplicates the
3439 old action of the abort character. Now you can do interactive
3440 job control, recursive interacts, etc. You can bet I didn't
3441 get this right the first time!
3443 At Scott's request, fixed bug related to pty initializing.
3444 Scott was putting expect in the background which disassociated
3445 it from a tty, and I was blindly copying the tty parameters
3446 without checking to see if they were meaningful or not.
3448 Tightened up exit code. Fixed bug in spawn so it would print
3449 error messages when it failed. Spawn sends back the error
3450 message in the pty, if the fork succeeds but exec fails. Cute!
3452 Added "close" command. Makes scripts much shorter and cleaner.
3454 Return string matched by expect directly, rather than setting a
3457 Added "match_max" feature. Probably no one will ever use it.
3459 Added trace command.
3461 3/6/90 1.4 Rob Densock was the second user, and suggested (demanded?) the
3462 idea of the loguser command. I added it and changed "log" to
3463 "logfile" making the first incompatibility with existing
3464 scripts (sorry, Steve).
3466 3/1/90 1.3 Trying to make pty code more robust. Many questions unanswered
3467 by manuals. Did a lot of guessing. While debugging, looked
3468 through pty code in gnuemacs to see if I might increase
3469 portability somehow. Found lots of funky ifdefs on weird
3470 ioctls. Found lots of comments like "this might work".
3472 2/28/90 Sent a short Tcl bug list to John Ousterhout. He thanked me!
3474 2/22-3/90 1.2 Hooked my first user, Steve Ray. Surprisingly, he only found
3475 one bug in the code (exit didn't handle args correctly), but it
3476 was obvious that I need to put more explanation in the man
3477 page. Many of the examples in the man page are based upon his
3478 probl.. questions. Thanks, Steve!
3480 2/20/90 Posted news about expect to "general" newsgroup locally.
3482 2/15-20/90 Talked to local POSIX reps and then to Steve Albert (AT&T)
3483 about portability of select, wait and other system calls. I'm
3484 not impressed by 1003.1.
3486 2/9/90 John Ousterhout answered some questions I had about Tcl syntax.
3487 I like this language!
3489 2/8/90 1.1 Sandy Ressler suggested the idea of being able to spawn
3490 multiple programs at the same time although he didn't say how.
3492 It took about a day to design and code the spawn_id hook.
3493 Extremely difficult to support this with uucp-style kludge.
3494 Switched to using select. So much for portability.
3496 I investigated how to do this portably, and spent some time
3497 talking to NIST & AT&T POSIX representatives. Unfortunately,
3498 portability (especially when it comes to select()) remains a
3499 dream. Provided multiple versions of "interact" depending upon
3500 what OS you are running.
3502 2/7/90 1.0 Completed first cut of "sex" (for "Smart EXec" or
3503 "Send/EXpect"). Supports send, expect, echo, log, spawn,
3506 Spent a lot of time making "log" write to log in just the right
3507 order (across fork and while debug flag enabled). Ended up
3508 writing a bunch of variadic log routines.
3510 Fooled around with uucp-style multiple processes versus one
3511 process doing select() to read asynchronously. Using
3512 uucp-style for now, since it is more portable.
3514 Gave up on pipes, and switched to ptys. Pipes seem to be
3515 messed up by ftp, perhaps because it goes into raw mode? Ptys
3516 are more efficient and cleaner to program albeit less
3517 well-documented and portable from system to system.
3519 Ken Manheimer helped me explain what the program does. I kept
3520 saying it does "send/expect" processing, and he kept insisting
3521 that was meaningless to everyone. (In fact, it comes from
3522 uucp, and I guess uucp hackers are indeed a dying breed.) Ken
3523 gave me an elegant enough sentence that I expanded it into an
3524 abstract and sent it in to the USENIX conference the following
3525 day (two days after the deadline).
3527 I noted that the uucp documentation I referenced in the
3528 submission is dated October 31, 1978!
3530 1/30/90 0.0 Got a copy of Tcl and went to work. Tcl was exactly what I
3531 need. Plus, it is easy to use, AND it is documented.
3533 1/25/90 Attended Winter 1990 USENIX in DC, with the goal of banging
3534 heads with some other gurus in hopes of finding a good
3535 send/expect language for a generalized stelnet. Had looked at
3536 uucp and kermit but found nothing general enough.
3538 Listened to John Ousterhout's presentation on Tcl. By the
3539 middle of the talk, I had found religion. At the end when he
3540 said it was public-domain, I was ready to swoon.
3542 */*/88-89 Spent a lot of time telling Scott how useful his program could
3543 be if he made it more general. I thought it wouldn't be that
3544 difficult to make more generic. Scott was interested but not
3547 9/25/87 Helped Scott Paisley write a program called stelnet, that
3548 forked a telnet and did very simple send/expect processing.
3549 It used pipes, not ptys. It had no pattern matching, and only
3550 straight-line control without error handling. Nonetheless,
3551 this got me to thinking about making stelnet more generic.