OpenCores
URL https://opencores.org/ocsvn/or1k_old/or1k_old/trunk

Subversion Repositories or1k_old

[/] [or1k_old/] [trunk/] [insight/] [expect/] [HISTORY] - Blame information for rev 1782

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
This is the HISTORY file for Expect.  Modifications made by Cygnus
2
support are in ChangeLog. - Don
3
 
4
Date    Version Description
5
------- ------- ------------------------------------------------------
6
6/15/98 5.26.1  Dean Sauder  noted C-preprocessor lines in
7
                configure must start in column 0.
8
 
9
5/18/98 5.26.0  Kevin Schleicher  noted xkibitz leaves xterms
10
                if first xterm is HUP'd.  Kevin also noticed a resource leak
11
                in dislocate.  Both problems fixed.
12
 
13
                Robbie Gilbert  noted expect_devtty was logging
14
                devtty (twice) to stdout.  Fixed.
15
 
16
                Added support inttypes.h, required on Solaris 5.6 for termios.h
17
 
18
                Kristina   noted that tip failed when
19
                spawned from a cgi script (BSDI BSD/OS 3.1 i386) because tip
20
                didn't see a definition for SHELL and HOME.  They need to be
21
                set.  (Doesn't have to be anything useful; the empty string is
22
                fine!)  Solution: documented this in Expect man page.
23
 
24
                Zachariah Baum  noted that config.sub
25
                didn't grok Intel 686.  Found a newer version that did in
26
                autoconf-2.11.
27
 
28
                POTENTIAL INCOMPATIBILITY: Changed interact so that it observes
29
                parity while matching.  It used to ignore parity.  This impacts
30
                people who use interact to connect through to a real serial
31
                device that generates parity.  If matches don't work, use the
32
                exp_parity command.  (This fix should have been made years ago,
33
                when the exp_parity command was added.  It is now absolutely
34
                necessary now that people are doing matching with 8 bits.)
35
 
36
                After the second occurrence of a system admin who broke grantpt
37
                by removing setuid from the relevant system util, I added an
38
                explicit test and explanation.
39
 
40
                Disabled history in xkibitz.  There seems to be some new
41
                incestuous relationship between history and unknown now so that
42
                redefining unknown leaves Tcl calling history but without
43
                knowing what it is because it's never been defined (as it would
44
                be by the traditional unknown).
45
 
46
                Fixed quoting bug in passwd.cgi example.
47
 
48
9/28/97 5.25.0  Switched back to hand-generating pkgIndex.tcl file after too
49
                many complaints about problems running pkg_mkIndex.
50
 
51
8/12/97 5.24.1  Chris Schanzle  pointed out that
52
                install fails on a virgin file system because install_shared_
53
                lib depends on a directory that hasn't yet been created.
54
 
55
                Larry Virden gave corrections to URLs in README.
56
 
57
8/21/97 5.24.0  Bo Johansson  noted TclWordEnd
58
                had changed and provided fix.  This caused crash in expect.
59
 
60
8/18/97 5.23.0  This version supports Tcl 8.0 and continues support for 7.6.
61
                Refs to Tcl_Files dropped.  inter_return and close became
62
                obj cmds.  Rewrote notifier (again) to accomodate new notifier
63
                model.  Lots of other miscellaneous tweaks.  Also see debugger
64
                HISTORY file.
65
 
66
                Finally removed long-deprecated commands "continue -expect",
67
                "send_spawn", and "getpid" and their exp_ versions.
68
 
69
                Harold Brauer  reported problems
70
                with an old SCO system (i386-unknown-sco3.2v5.0) that turned
71
                out to be due to a typo in the configure script.
72
 
73
                Jimmy Aitken supplied mods to config.guess for brand new and
74
                very old Pyramid systems.
75
 
76
                Buz Owen noted memory leak in use of expect_background (with
77
                no args).
78
 
79
                Jonathon Kamens noted provided patch for pty_termios.c for
80
                modern Sequent (which ptmx).
81
 
82
                Jonathon Kamens noted that TCL defined RANLIB for shared lib
83
                (if --enabled-shared) which isn't appropriate when Expect tries
84
                to build both shared and unshared libs.
85
 
86
                Jonathon Kamens noted that shared lib config didn't work on
87
                SunOS.  I had used Tcl's SHLIB_SUFFIX instead of its
88
                SHARED_LIB_SUFFIX.
89
 
90
                Qingyi Liao  encountered core dump when
91
                exp_bg -i $exp_spawn_any was retracted.  Bug in ecmd_remove_fd.
92
 
93
                Fixed a bunch of bugs in example/gethostbyaddr.
94
 
95
                Josef Sachs noted that stty cannot be caught when no /dev/tty.
96
                It calls exit instead of returning an error.
97
 
98
                Gordon Chaffee  patched
99
                Exp_WaitCmd - it was zeroing pid element instead of wait.
100
 
101
                Bob Manson  provided fix for HP on which it
102
                was possible for timer to be mistakenly deleted in
103
                exp_get_next_event while processing a pty open event.
104
 
105
                Jeff Slonaker  noted that exp_poll.c
106
                had wrong signature and poll had arguments out of order!  That
107
                would suggest that no one has ever used exp_poll.c before...
108
 
109
        5.22.1  Larry Virden noted that TCL_BUILD_LIB_SPEC can't be used if
110
                build directory has been removed.  Added check to configure.
111
 
112
                Worked more on package command.  Buz Owen pointed out that my
113
                code wouldn't support redefinition of TCL_LIBRARY.  Bumped up
114
                minor version to avoid package loading mishaps.
115
 
116
                Nigel Standing  noted lack of C-u binding in
117
                tkpasswd - must be due to change in tk4.2.
118
 
119
                Forced env(SHELL) to be defined inside kibitz for when using
120
                with CGI.
121
 
122
                Charles Packer  noted that CRAY-YMP
123
                needed sys/types.h in exp_console.c
124
 
125
                Extra / when developing defn of TCL_LIBRARY.  Shouldn't
126
                actually cause any problems though.
127
 
128
2/3/97  5.22.0  Fixed package support - again.  Sigh.
129
 
130
                David Pasirstein  noted that RedHat
131
                Linux 2nd passwd prompt requires slightly different pattern -
132
                modified mkpasswd and tkpasswd.
133
 
134
                Toshiaki Nomura  provided patch to
135
                config.guess for Fujitsu DS/90.
136
 
137
                Roger Brooks  noted C lib passed
138
                argv[0] instead of file to first arg of execvp.
139
 
140
                Cary D. Renzema  noted that a simple puts -nnl
141
                might never appear - Expect closes all of its fds before Tcl
142
                gets a chance to flush.  Stdout is the obvious problem since
143
                Expect thinks it can cavalierly close that too.  Hmm.
144
 
145
                At request of Tom Tromey, solved possible missing tclRegexp.h
146
                problem by having Expect install it.  Cleaned up TCLHDIR and
147
                TCL_LIBRARY hackery in Makefile.
148
 
149
12/27/96 5.21.7 Nelson Beebe noted unset is not portable in /bin/sh.  Removed
150
                and converted everything to understand CONFIG_SHELL.
151
 
152
                Modified cryptdir to strip out shell metachars from filenames.
153
 
154
12/10/96 5.21.6 Michael Schumacher noted that some systems cannot build
155
                unshared libs from shared objects.  Chose to go with BLT's
156
                approach of building shared objs in separate shared directory.
157
 
158
                Buz Owen  noted that "package require Expect"
159
                didn't work because it looked for Expect lib in the wrong
160
                place (well, the "documented" place).  The problem is that Tcl
161
                insists libraries should be in the same directory as the
162
                pkgIndex.tcl file while the natural thing to do would be to
163
                split them up and put the .tcl file in the arch-indepent
164
                app-specific scripts dir and the lib in the arch-dependent
165
                common dir.  Sigh.  If this is ever fixed/changed, the
166
                instructions in the Makefile should be fixed.
167
 
168
                 noted that expect library name
169
                exceed filename max on some systems - like his old SCO.
170
 
171
12/4/96 5.21.5  Michael Schumacher noted new configure wasn't passing on Tcl's
172
                shared lib cflags.
173
 
174
10/26/96 5.21.4 Achyutram Bhamidipaty  ran into bugs in Expect's
175
                file event handler which prevented expectk from entering
176
                implied event loop.  Also found one memory problem - thanks
177
                to CenterLine.
178
 
179
                Tom Tromey fixed handling of --enable-shared when overriding
180
                Tcl's value et al.  Tom also added missing "else true" to
181
                Makefile: "In a Makefile, you have to always supply an "else"
182
                clause for an "if", to work around a bug in certain versions of
183
                sh.  In some versions of sh, an "if" whose test fails will
184
                return the status of the test if there is no "else" clause --
185
                causing spurious make failures."  See ChangeLog.
186
 
187
10/18/96 5.21.3 Example directory was missing several examples.
188
 
189
10/17/96 5.21.2 Debugger section of configure file corrupted.
190
 
191
10/10/96 5.21.1 Oops, distribution unpacked into wrong version.
192
 
193
                Tom Tromey provided patch for stty to understand OSF 4.0.
194
 
195
9/28/96 5.21.0  Official Expect release for Tcl 7.5.
196
 
197
                Junio Hamano  provided fixes for aclocal
198
                for with_tcl/tkconfig.
199
 
200
                Roger Billau  noted that C library
201
                didn't work on Solaris 2.5.  Turns out Solaris requires fflush
202
                be called between input and output operations on FILE pointers.
203
 
204
                Lots of Cygnus mods - see ChangeLog.
205
 
206
                Sid Cowles  and Hans Riethmann
207
                 noted relative path specs of tcl-includes
208
                (and others) caused debugger config to fail since it is at a
209
                different directory level.
210
 
211
                Al Snow  noted -C failed due to typo.
212
 
213
8/17/96 5.20b18 Andrew Rakowski  noted no defn of
214
                LIB_RUNTIME_DIR, a creation of Tcl7.5p1.
215
 
216
                Tom Tromey added -v to Expect and -version to Expectk.
217
 
218
                Ben Boule  noted that Interactive (IUNIX)
219
                requires 9 char max length after -l.  Looks like squeezing out
220
                the "." is sufficient.  He also noted that IUNIX needs -Xp in
221
                LIBS to find strftime.  This test should really be done by Tcl.
222
 
223
8/12/96 5.20b17 Glen Biagioni  noted interact -re "A(xx)"
224
                failed to match.  Problem turned out to be that Tcl 7.5 changed
225
                a constant which in the regexp code, which Expect didn't see
226
                because it provides its own defn for interact.  Alas, the one
227
                thing Expect reuses from Tcl was where the change was.  This
228
                should really be fixed so Expect doesn't rely on Expect in this
229
                way, but there's no point in putting in a lot of work on regexp
230
                when we're anticipating a new one soon anyway.
231
 
232
                Bjorn S. Nilsson  noted fixcat hangs.
233
                Turned out that new Tcl (7.5p1) now waits for all children to
234
                disappear.  But Expect still had a handle to a child.  I added
235
                an exit handler to close the connections before Tcl's exit
236
                handler.
237
 
238
                Tom Tromey provided patch to support augmenting CFLAGS on
239
                Makefile invocation.
240
 
241
                Gary Merinstein  noted that configure failed
242
                on his linux unless it had --enabled-shared.  Not quite sure
243
                about how this can be, but the flag wasn't being passed to the
244
                debugger's configure, so I've fixed that and hopefully this
245
                will cure the original prob.
246
 
247
                Added initial announcement of full version at beginning of
248
                configure.  This should ease my pain in responding to people
249
                sending me config output without including version numbers.
250
 
251
                Tom Tromey noted expect_cf.h was machine dependent.  Fixed
252
                expect_comm.h so that it no longer required expect_cf.h (which
253
                should be renamed to indicate it is no longer public).
254
 
255
                Bart Robinson  provides mods to support
256
                openpty() in FreeBSD/NetBSD.  Without openpty, Expect doesn't
257
                see the full pty namespace (ptyX[0-v]).
258
 
259
7/15/96 5.20b16 Nathan Estey  noted that Makefile failed
260
                on SunOS when shared libs were enabled due to incomplete dot
261
                stripping in lib prefix.
262
 
263
7/6/96  5.20b15 Malcolm Tredinnick  noted that shared lib
264
                has to be installed before building expect.  Also noted that
265
                ldconfig should be run on Linux 2.0 systems and maybe others.
266
 
267
6/25/96 5.20b14 Tim Mooney provided fixes to obey --includedir and similar
268
                configure conventions.
269
 
270
6/25/96 5.20b13 A bug when installing Expect using new _installed targets.
271
 
272
6/24/96 5.20b12 Numerous complaints from Solaris users about shared libraries.
273
                Unfortunately, no one is giving me configure-ready fixes so
274
                (and Tk's configure seems to have bugs as well) so fixing
275
                these is like throwing darts.
276
 
277
                Stan Brown  noted noidle example broke when
278
                fed "-".
279
 
280
                Gordon Irlam  noted typo in install-sh.
281
 
282
                David Sheinberg  noted no
283
                args test for spawn -open/leaveopen.
284
 
285
                Misc patches from Tim Mooney to pacify much of gcc -wall.
286
 
287
                Kayvan Sylvan insists Linux stty reads from stdin so added
288
                hardcoding to configure.in for that.  In xkibitz, Linux stty
289
                -raw didn't disable all post-processing.  How odd that it is
290
                not a problem in interact.  In the meantime, added extra stty
291
                to xkibitz to do what was missed.
292
 
293
5/30/96 5.20b11 Kayvan Sylvan  noted quoting bug in
294
                autoexpect.
295
 
296
5/22/96 5.20.b10 Patches from Larry Virden in Makefile.in and exp_int.h
297
 
298
5/20/96 5.20.b9 Too many substitutions in configure caused sed failures on
299
                DEC (limit 99) and HP (100).  Commented out definitions
300
                that weren't absolutely critical.  Hopefully, this gets us
301
                under the limit but can't be sure since there's no easy way
302
                of knowing.
303
 
304
                Numerous mods from Mark Diekhans to support clist-style ptys
305
                on SCO OpenServer.  (He says SVR4 ptys are broken on that
306
                platform.)
307
 
308
                Simon J. Gerraty  says that write() returns
309
 
310
                spec so of course we have no idea what's going on.  So I added
311
                code to try and recover from (or at least warn of) this.
312
 
313
                Tom Tromey unified decls of errno to #includes.
314
 
315
5/13/96 5.20b8  Tim Mooney  pointed out
316
                backwards stty test - this would have corrupted every platform!
317
                He also pointed out that alpha-dec-osf3.2  (3.2c) complained
318
                too many args to sed.  Someone earlier said similarly about
319
                HPUX 10, but I assumed it was the quotes in the weird stty
320
                flag I was passing, so that "fix" wasn't.  GNU sed has no
321
                problem, but obviously this is not sufficient for many people.
322
 
323
5/10/96 5.20b7  Renamed/numbered versions so that it's easier for others to
324
                track.
325
 
326
                Upgraded to autoconf 2.10.
327
 
328
                Matthias Kurz  noted Makefile problems
329
                with final Tcl7.5.
330
 
331
                Blair Zajac  noted configure mishandled
332
                stty defaults on HP and shared lib must be installed executable
333
                on HP.
334
 
335
                autoconf insists on adding -O to CFLAGS when using gcc.  Ack!
336
 
337
3/23/96 5.20b1  Beta release 1 of Expect for Tcl 7.5.
338
 
339
                Michael Hunter  provided misc mods for QNX.
340
 
341
                Various people reported problems with IRIX.  Removing from the
342
                stty list fixed the problem.  Similar problem with Solaris.
343
 
344
                Added explicit close to autoexpect.  Added a mechanism for
345
                enabling conservative mode after script is generated.
346
 
347
                Hal Schechner  pointed out passwd.cgi must
348
                meet passwd's requirement that it not be run by an unrelated
349
                user.  Easy enough - just do an su first.
350
 
351
3/26/96 5.20a5  Alpha release 5 of Expect for Tcl 7.5b3.
352
 
353
                Added example passwd.{html,cgi} to change a password.
354
 
355
                Many fixes from Stephen Williams 
356
                and Jonathon Kamens for Makefile and configure.
357
 
358
3/22/96 5.20a4  Alpha release 4 of Expect for Tcl 7.5b3.
359
 
360
                Added version number to lib directories (POTENTIAL
361
                INCOMPATIBILITY).
362
 
363
                Revised gethostbyaddr example - evidentally hadn't worked for
364
                some time!
365
 
366
                Jan Nijtmans  provided pkgIndex.tcl.in.
367
                Renamed Exp_Init to Expect_Init to support package cmd.
368
                Provided #define so that Exp_Init will continue to work.
369
 
370
                Revised exit handling so that it works if Expect is dynamically
371
                loaded.
372
 
373
                aclocal.m4 Patches from Tom Tromey.
374
 
375
3/15/96 5.20a3  Alpha release 3 of Expect for Tcl 7.5b3.
376
 
377
                Edward Haletky  noted that Machten required
378
                inclusion of types.h in exp_tty_in.h.
379
 
380
                Added various patches from Rob Savoye.  One incompatibility
381
                is that the static lib now ends with the version number.
382
 
383
                Added support for TCL_SHLIB_{LD_LIBS,VERSION} in Tcl b3.
384
 
385
                Jonathan Karges  found that clib
386
                was timing out immediately on -1.
387
 
388
3/6/96  5.20a2  Alpha release 2 of Expect for Tcl 7.5b2.
389
 
390
                Leland Joseph  noted
391
                expect-tests.exp exceeds the 14 character filename length.
392
 
393
                Added config.{sub,guess} to support AC_CANONICAL_....
394
 
395
                Rewrote much of aclocal, configure.in, and Makefile.in
396
                to handle Tcl/Tk config.sh files and shared/dl support.
397
 
398
                Simplified varargs/stdarg mess for Expect's C library.
399
 
400
                Threw away closetcl junk.  No longer required because
401
                Tcl finally started doing close-on-exec.
402
 
403
                Incorporated various fixes from Tom Tromey at Cygnus.
404
                See ChangeLog for details.
405
 
406
                Added require/provide support.
407
 
408
                Rejiggered event handling to support new Tcl_File interface.
409
 
410
                Removed libexpectk.  Because event loop was moved into Tcl, it
411
                is no longer necessary for it to be different than libexpect.
412
 
413
                Removed all support for earlier versions of Tcl and Tk.
414
 
415
                Numerous misc patches from Paul Eggert 
416
                most to support Tcl 7.5.
417
 
418
                Arnold Robbins supplied yet another patch to fix earlier
419
                problem noted by Hume Smith.
420
 
421
                David Engel  reported problem with Linux dumping
422
                core.  CenterLine, of course, immediately found the problem -
423
                uninit'd lowercase buffer.
424
 
425
                Peter Haggerty  noted that his Next
426
                died in cron.  It seems that Next doesn't support O_NOCTTY
427
                (even though the man pages says it does) and so during pty
428
                testing, control terminal would get allocated and then kill
429
                the process (by generating a HUP) when deallocated.  Avoid
430
                by ignoring HUP when doing pty testing on such machines.
431
 
432
1/3/96  5.19.0  Fixed bug that made expect report wrong string when using
433
                a terminating anchor in a positive-length glob match,
434
                reported by Graham L. Randall .
435
 
436
                Added rlogin-display to included examples.  rlogin-display
437
                automatically propagates your $DISPLAY when you rlogin.
438
 
439
                Hume Smith  noted problem
440
                with day of the week calc at year end/start.  Arnold Robbins
441
                supplied fixes.
442
 
443
                Jonathan Kamens provided fix to make sync byte reads
444
                recover from EINTR.
445
 
446
                Henry Spencer noted errant line of spaces in Makefile.
447
 
448
10/21/95 5.18.1 Began adding support for tcl7.5a1/tk4.1a1.  (not finished!!)
449
                - Make aclocal understand new Tcl/Tk directory layout
450
                  for finding tclInt.h and private libraries.
451
                - Added support for Tcl_AsyncReady.
452
 
453
                Paul Townsend  noted that distclean did
454
                not remove some config cruft.  Also recommended unsetting
455
                M*FLAGS that cause make called from configure to fail.
456
 
457
                Various fixes from Cygnus.  See Changelog.
458
 
459
                Deleted "-" before rm in loop in deinstall in Makefile as per
460
                Doug Claar .  Doug also found prob
461
                involving recent STTY fix.  Symptom was that pty wasn't
462
                correctly inited in cgi scripts on HPs - and Cray pty support
463
                blew up entirely.
464
 
465
                Added exp_ prefix to tests so that they can be run with other
466
                extensions.
467
 
468
                Seth Ornstein  noted bug in the
469
                way rftp detected symlinks.
470
 
471
                Upgraded to autoconf 2.4.  This fixes a bug in AC_PROC_CPP
472
                which blew up when CPP was defined in the environment.  Noted
473
                by John Pfuntner.
474
 
475
                Jonathan Kamens noted that library didn't check return pipe()
476
                return value.
477
 
478
                Added vrfy example.
479
 
480
                Przemek Klosowski  Irix 6.0 fails
481
                to use ptys that have been used by someone else.  SGI admitted
482
                this is a bug and the solution is to upgrade to 6.1.
483
 
484
                Yoad Grinberg noted "expect -timeout" mistakenly ate next arg
485
                as pattern.
486
 
487
8/24/95 5.18.0  Wayne Christopher noted that the way exp_eval_with_one_arg
488
                modifies the original argv makes the ICEM Tcl compiler unhappy
489
                so I rewrote it to avoid that.
490
 
491
                Ian Zimmerman  found that a braced arg list of
492
                a single pattern beginning with a \n caused expect to reeval
493
                for multiple args twice.  I added a -nobrace flag that expect
494
                and/interact can use internally to prevent this.
495
 
496
                Florian La Roche  noted a few
497
                glitches in the way -ltcl was searched for in aclocal.
498
 
499
                Joachim Posegga  noted lack of Tcl internal
500
                includes should be an error during configure.
501
 
502
8/10/95 5.17.8  Martin Wunderli  found missing
503
                quote in config.
504
 
505
                Danny Faught noted problems in Makefile when passing STTY defn
506
                with quotes.  Created another a STTY-less CPPFLAGS for cases
507
                where additional reexpansion occurs.
508
 
509
                Danny Faught noted bug in error handling for checking
510
                permission problem with /tmp.
511
 
512
8/1/95  5.17.7  Todd Rimmer  noted that HP 10 with
513
                optional streams package has both PTYM and PTMX which conflict
514
                in pty_termios.
515
 
516
                Rainer Wilcke provides fixes: scripts not listed as dependency.
517
                distclean target used Makefile after deleting, and many fixes
518
                to man pages.
519
 
520
                Saad Mufti  noted bug in how C library
521
                handled polling (when handling multiple fds).
522
 
523
                Jeff Bowyer noted more autoexpect bugs.
524
 
525
7/22/95 5.17.6  More features added to autoexpect (now version 1.3).
526
 
527
                Sanjay  noted bug in TCLH config macro
528
                which caused it to use 7.3 instead of 7.4.
529
 
530
                Rodney Barnett  noted expectd.proto had a
531
                few refs to interact_out where it should've had expect_out.
532
 
533
                Terry Rhodes  noted that Expect returned a 0
534
                exit status upon syntax error unlike tclsh and wish.
535
 
536
                Fred Obermann  noted that Unixware 2.01
537
                native development tools don't permit configure to find memcpy
538
                because memcpy is handled specially by the compiler and it
539
                complains when it finds configure's default test with no args.
540
                Changed to a hand-crafted test with args.
541
 
542
7/12/95 5.17.5  Jeff Bowyer  noted minor bugs in autoexpect.
543
 
544
                Rob Saul  noted that configure failed on SCO OSR5
545
                because trap requested by Cygnus (to allow config in bg) used
546
                higher traps than SCO sh knows about.
547
 
548
                Changed "can't happen" to "xmkmf is broken" when configure
549
                fails to compile simple C-Tk program.
550
 
551
                John H. Chauvin  noted exp_tty_current and
552
                cooked raised multiple def errors on SGI 5.3 with native cc.
553
 
554
7/9/95  5.17.4  Wolfhardt Lotz  noted Solaris
555
                doesn't do case-insensitive man page lookups so I lowerized
556
                the beginning of the .SH lines.
557
 
558
                Henry Spencer noted unbackslashed quotes in the autoexpect
559
                boilerplate.
560
 
561
7/3/95  5.17.3  Modified VARARGS decls to support new Tcl 7.4 definitions.
562
 
563
                Fine-tuned aclocal so that it would prefer later versions.
564
 
565
                Added autoexpect example and man page.
566
 
567
6/30/95 5.17.2  select-based dsleep() was returning an internal expect-style
568
                return code instead of a Tcl-style.
569
 
570
6/30/95 5.17.1  Kannan Varadhan  noted aclocal didn't
571
                look in right directories to find Tk.
572
 
573
6/30/95 5.17.0  Modified regexp interfaces to support Tcl 7.4b4.
574
 
575
                Mods from Tony Isles  for Sequent Dynix/ptx
576
                V2.1.5 (which is really old).
577
 
578
                Michael Schumacher  noted that Solaris
579
                2.4 header files require __EXTENSIONS__ for all sorts of
580
                traditional but non-standard definitions.
581
 
582
                Modified aclocal to support new Tcl/Tk library names.
583
 
584
                George Forman  requested support in
585
                C lib for fds that already exist.  I added exp_spawnfd.
586
 
587
                Fixed bug preventing signal rearming on Linux (using SV-style
588
                signal handling).
589
 
590
                Wayne Christopher  noted missing interp
591
                in call to exp_error.
592
 
593
                Added null support to interact's exact matching.
594
 
595
                Bruce Jerrick noted INSTALL was being used rather than
596
                INSTALL_PROGRAM/DATA.
597
 
598
                Dennis Ferguson  noted that on Solaris 2.4
599
                close(pty) occasionally returns EINVAL.
600
 
601
                Added tests so that if we can't get a pty, we can give the user
602
                much more help with what to do about it.
603
 
604
                Steven Byrnes noted that Solaris has replaced TIOCCONS with
605
                SRIOCISREDIR interface.
606
 
607
                Technically speaking, interact shouldn't do buffer-shuffling
608
                but I've added as a fail-safe mechanism to catch people who
609
                use preposterous patterns.
610
 
611
                Alan Heckert  noted missing decl in
612
                Convex pty support.
613
 
614
                Fixed all expectk examples for Tk4.
615
 
616
                Bryan S. So  noted that interact -o eof failed
617
                if an unbuffered pattern was partially in progress.
618
 
619
                Added -timeout flag to expect command to override timeout var.
620
 
621
                John Pfuntner  noted that OpenMVS did
622
                not notice @ inside of Makefile SETUID macro as suppression
623
                but instead treated it as part of the program name.
624
 
625
                Jim Porter  noted that exp_free_i freed
626
                the variable name even if not allocated.
627
 
628
                Yet more mods to aclocal and various .in files from Rob Savoye.
629
 
630
4/21/95 5.16.3  Matija Grabnar  noted that sleep maxed
631
                out after about 36 minutes.  Turned out to be a poor assumption
632
                in some interfacing code.
633
 
634
4/19/95 5.16.2  rbd  noted tcl_RcFileName multiply defined
635
                when compiling with Tk4.
636
 
637
4/16/95 5.16.1  Robert Nicholson  noted NextStep's
638
                sys/wait.h is not POSIX-like so WNOHANG fails to get a defn.
639
 
640
                Alexandre Rafalovitch  discovered
641
                example on dislocate man page didn't work.  I fixed it.
642
 
643
4/8/95  5.16.0  gcc 2.3.3 complains about internal errors so I figure: time to
644
                upgrade.  Switched to Cygnus 2.6-95q1.  Works now but now
645
                complains about wait status.  I trashed all the gory wait
646
                status configure code and adopted autoconf's suggestion about
647
                refusing to use sys/wait.h if not POSIX.1 compatible.  Nice!
648
 
649
                Jeffrey C Honig  requested a -gmt
650
                flag for timestamp command.
651
 
652
                Chuck Ocheret  noted that expect -pty
653
                fails.  Problem is that Tcl's exec blindly closes all the fds
654
                between 3 and its own highest fd.  See comments in code.
655
 
656
                Loris Caren  noted eof in fg bombs on
657
                Linux.  Turns out to be analogous to eof in bg problem fixed
658
                in 5.14.0.
659
 
660
                Upgraded to autoconf 2.3.  Continued making changed to config
661
                script to take advantage of autoconf 2 capabilities.
662
 
663
4/1/95  5.15.4  Steve Simmons noted .x remnant from earlier dir install proc.
664
 
665
3/31/95 5.15.3  Forgot to export TCLHDIR defn when configuring debugger.
666
 
667
3/29/95 5.15.2  Steve Simmons  noted Makefile multiple defined
668
                distclean and it might be nice to provide aclocal.m4 even
669
                though it isn't normally used.
670
 
671
                cevans@resdev1.ppco.com added prompts to passmass for AIX.
672
 
673
3/27/95 5.15.1  Fixed tkterm script - inadvertently left tic debugging on.
674
                Also add support for Ctrl-space and Ctrl-@ as requested by
675
                Zbigniew Wieckowski .
676
 
677
                Larry Virden asked that configure also check for .so libs.
678
 
679
3/23/95 5.15.0  Everitt Beers  noted that Linux doesn't
680
                support kill -STOP 0.  Changed 0 to [pid].
681
 
682
                zhengping (z.) you  found bug where a bg expect did
683
                not rearm a spawn id after a first bg expect (and another one)
684
                to clear it.
685
 
686
                Elliott Wolin  noted that tkterm
687
                complained if tic wasn't found.  I'll have it override the
688
                user misconfig in that case.  Also noted that interact failed
689
                on AIX.  Evidentally, my new config tests for ISC found that
690
                AIX looked just like it.  Added additional test for tcsetattr
691
                to distinguish them.
692
 
693
                Rob Savoye asked for Dbg config.in to be distributed.  Rob
694
                supplied numerous other mods: install-sh replaced install.sh,
695
                mkinstalldirs, testsuite mods, new aclocal.m4, support for
696
                recursive make.
697
 
698
                Fixed bugs in configuration of debugger.
699
 
700
                Disabled configure's file-caching.
701
 
702
                Kannan Varadhan  noted incorrect diag reporting
703
                TCLHDIR in configure.
704
 
705
                Marty Olevitch  noted that DEC Alpha
706
                did not sleep correctly because configure didn't find sleep
707
                and found poll (which is broken).  Problem turned out to be a
708
                bug in autoconf's AC_CHECK_FUNC.  Got patch from Jim Meyering
709
                
710
 
711
                Fixed config probs for Edward Huie  on Mac SE/30,
712
                System 7.1, Tenon Intersystems' MachTen 2.1.1-G (BSD 4.3 on
713
                Mach kernel) and MachTen X11R4 3.1.
714
 
715
                Moved libraries forward in configure to allow for AC_CHECK_FUNC
716
                to succeed when funcs are in other libraries.
717
 
718
                Made configure test for Linux and unset CFLAGS=-g if so.
719
 
720
2/25/95 5.14.3  Larry Virden noted configure was missing brackets in raw shell
721
                cmds evidentally due to m4 interpretation.
722
 
723
2/24/95 5.14.2  Larry Virden noted configure was not correctly rewriting from
724
                --(exec-)prefix.  Due to new autoconf.  Also noted glob was
725
                finding tclX directory.
726
 
727
                Hal Peterson noted that because configure now actually attempts
728
                a link before using a library, the code to check for -ltk would
729
                have to worry about all the other utility libraries first.
730
 
731
2/23/95 5.14.1  Hal Peterson noted that configure.in checked incorrectly for
732
                tcllib.
733
 
734
2/22/95 5.14.0  Jamal  noted Linux has tic in a
735
                different place than on my system - affected tkterm script.
736
 
737
                Xiaokun Zhu  noted problem on DEC
738
                Alpha OSF/1.3 evidentally due to backwards decl of index macro.
739
 
740
                Greg McFarlane  noted that large args in
741
                send cmd cannot be passed blindly to exp_error.
742
 
743
                david d `zoo' zuhn  requested modifying
744
                configure so that it did not require Tcl/Tk to be built - only
745
                configured.  This means that it may not find installed
746
                libraries.  Hopefully, this won't cause anyone problems but its
747
                not my preference.
748
 
749
                Fixed error which caused spurious eof when changing patterns
750
                in expect_bg.
751
 
752
                Moved to autoconf-2.1 and m4-1.4.  Rewrote a LOT of the config
753
                file.  Finally got my hands on an ISC box and fixed configure
754
                for that.
755
 
756
                Tony Booker  provides mods for Sequent ptx 2
757
                and 4.
758
 
759
                Jeffrey Friedl  provided fixes for
760
                timezone handling in config and exp_strf.c.
761
 
762
                David Schmitt  noted that library did
763
                not detect eof on HP.  I didn't think this was necessary for
764
                read() but it evidentally is.  I added the support for raw fds
765
                although it is not obvious to me how to do it for FILEs.
766
 
767
                James Carter  noted expect_after couldn't
768
                worked in the exp_bg because I had accidentally written BEFORE
769
                instead of AFTER when checking the cases.  He also found that
770
                the eof body could be trashed in an exp_bg.
771
 
772
                Ousterhout apologized for the Tcl7.4 change I noted in 5.13.1
773
                and said he will undo it.
774
 
775
                Eric Frias  found library bombed after timeouts.
776
                exp_match_end was not updated - which makes sense since there
777
                was no match - however the following expect call assumed that
778
                exp_match_end was meaningful in order to do its buffer
779
                shuffling.
780
 
781
                Jonathan Kamens supplied new configure test for REARM_SIG after
782
                noting old could fail if limit prevented creation of core file.
783
                He also noted REARM_SIG had accidentally been commented out
784
                of cf file.
785
 
786
                Vincent D. Skahan  noted that
787
                Apollo's stty reads stdout and doesn't complain if its bogus.
788
 
789
                Yoad Grinberg  noted that SIGCHLD does
790
                not work for forked processes, only spawned processes.  Fixed
791
                this and added counting to make sure none get lost.
792
 
793
                Hal Peterson contributed mods for Unicos.  He noted that
794
                configure should be more careful adding libs to the link line.
795
                On the Cray, non-existent libs generate warnings which are not
796
                detected by configure but which annoy make.
797
 
798
                Bela Gazdy  noted /etc/resolv.conf
799
                misspelled in kibitz.
800
 
801
                Rainer Wilcke noted that "send -null/break" mishandled return
802
                code, and these and send/expect_tty were not in man page.
803
 
804
                Dvorak example was missing -- in send -.
805
 
806
1/12/95 5.13.2  Peter Wassenaar  noted that kibitz
807
                didn't work on AIX.  My fixcat script assumed that AIX's cat
808
                was like HP's cat - buffered by default.
809
 
810
1/7/95  5.13.1  Marc Bouron  noted I forgot to
811
                add virterm to distribution.
812
 
813
                Marc W. Mengel  noted that configure
814
                must be run in the foreground due to the stty tests.  Added
815
                this to documentation.
816
 
817
                Modified interpreter to account for the change in Tcl7.4 which
818
                forces Tcl_RecordAndEval to call Tcl_GlobalEval instead of
819
                Tcl_Eval.
820
 
821
                Changed ptys to be initialized based on current tty setting
822
                rather than original tty setting.
823
 
824
                Stephen Melvin  noted that set -e is the real
825
                problem with ash (see 5.13).  I bet "[" is returning a value
826
                and triggering it.  It appears that the script can live without
827
                the set, so out it goes.
828
 
829
                Braun Brelin  noted pipe allocs in spawn
830
                could fail with meaningless error message.
831
 
832
12/15/94 5.13.0 Synchronize with appearance of "Exploring Expect".  This
833
                distribution corresponds to the book both in description of
834
                Expect and in containing all the substantive examples.
835
 
836
                Graham Mark  noted that his Cray (Unicos 7.0.6.1)
837
                didn't recognize TCSETCTTY.  Since this was in some Cray-
838
                specific code, I guess Unicos must have changed some .h files.
839
                I made it include either termios or termio.  It, at least,
840
                works on our Cray (Unicos 8.0.2.4).
841
 
842
                Robert Withrow  noted that FreeBSD 1.1.5.1
843
                supplied union wait but waitpid doesn't use it!  So I modified
844
                configure to be smarter.  He also noted that its /bin/sh is
845
                really ash which blows up on install.sh.  It appears that it
846
                doesn't handle uninitialized parameters correctly.  I'm not
847
                going to fix this because having a broken /bin/sh is so awful
848
                probably other things are breaking too.  He did note that it
849
                worked if he switched to bash or the native install, but that
850
                blows the whole point of install.sh - that we have found too
851
                much variation in native installs.  Rather than try and figure
852
                out everyone's variation, we'd like to simplify our life and
853
                use this common, simple-to-understand sh script.
854
 
855
                Added more example scripts: Adrian Mariano's virterm (like
856
                expect_term but without relying on Tk), gethostbyaddr, and
857
                expectd.proto for telnet daemon.
858
 
859
                Matt DiMeo  noted that expect_background
860
                failed to detect eof on HP.  I had forgotten to pass the mask.
861
 
862
                Josef Sachs noted that expect_background put Tk's event handler
863
                in an infinite loop if it was listening to a pipeline that was
864
                killed.  I had aborted the cleanup procedure if Tcl's close
865
                reported an error.  That was a mistake.
866
 
867
                Rick Lyons  noted a bug.  C lib
868
                expect would turn a normal read into a poll if remtime reached
869
                zero on the nose.
870
 
871
                Added ResetResult to Exp_Init to clean up diags in Expectk.
872
                Made GENFUNCs return -1 on error as per ParseArgv's convention.
873
 
874
11/13/94 5.12.0 Alon Albert noted that in clib, exp_match_end should be init'd
875
                to exp_buffer before trying to match the pattern - if the
876
                expect doesn't produce a match, exp_match_end is incorrect and
877
                will be wrong for subsequent expects.
878
 
879
                Steven Diamond noted that fg expect did not react to a change
880
                in an indirect spawn id list if it was just waiting for I/O
881
                (rather than looping in exp_continue).
882
 
883
                Wait fix in previous version broke system() whose return value
884
                is horribly overloaded.
885
 
886
11/10/94 5.11.0 Stephen Fitzpatrick  noted that NeXT wait
887
                macros do not accept int wait status.  Switched to using Tcl's
888
                detection of wait status type.
889
 
890
                Made log_file -leaveopen leave file id open until close like
891
                spawn -leaveopen did.
892
 
893
                Bruce Jerrick  noted public include dir
894
                wasn't getting created.
895
 
896
                Karl Vogel noted 1) Pyramid has index instead of strchr, strf.c
897
                needs sys/time.h instead of time.h in strf.c, needs to call
898
                timezone(), and stty reads stdout but usual stty test fails.
899
 
900
                Made expect_out(spawn_id) always be written to assist people
901
                who want to log different procs to different files.  This is
902
                no longer an efficiency problem because interact can do so
903
                much more then it used to.  Made full_buffer condition write
904
                forgotten chars even when full_buffer isn't explicitly
905
                specified.
906
 
907
                Bert Robben  noted that the
908
                debugger needs to know about the presence of stdlib.h.  I was
909
                hoping to avoid this because it's a pain getting configure to
910
                call another configure.
911
 
912
                Rainer Wilcke provide several improvements for xkibitz and man
913
                page.
914
 
915
10/6/94 5.10.0  Moved example files around.  Added password generation to
916
                tkpasswd.  Created standalone script to generate and set
917
                passwords - good for all those adduser shell scripts.
918
 
919
                Rick Cady  found a bug when switching log
920
                files.
921
 
922
                Rainer Wilcke  noted that xkibitz died when
923
                closing a connection.  stdin was mistakenly being closed.  He
924
                also noted that killing xterms under HPUX 9 requires kill -9.
925
 
926
                Enzo Michelangeli  noted that SCO 3.2.1
927
                defined window size structure in ptem.h.
928
 
929
                Josef Sachs  found a bug when calling fg
930
                expects repeatedly between bg expects.  On the first fg expect,
931
                it cached the fact that the filehandler was armed.  The next
932
                background expect disarmed it but failed to update the cache.
933
 
934
                John P. Rouillard"  provided configure
935
                support for --with-{tcl,tk}{lib,include}.
936
 
937
                Mike Figg  noted that man page used old style
938
                of continue command.
939
 
940
8/23/94 5.9.1   Adrian Mariano noted it would be useful to have exp_continue
941
                not reset the timer.  Added flag to support this.
942
 
943
                Morris Gasser  noted that lowering match_max
944
                didn't work (lib was broken too).
945
 
946
                Keith Hanlan provided a fix for exp_exact.
947
 
948
                Added more examples: mkpasswd, tkterm, term_expect.
949
 
950
                Put close_tcl_files in sep file for easier non-Tcl use of clib.
951
 
952
8/21/94 5.9.0   Fixed window handling code - on AIX, termios does not define
953
                TIOCGWINSZ.  Instead, you have to include ioctl.h.  Of course,
954
                you have to avoid the trap of including both on OTHER systems
955
                such as SunOS 4.1 where the include files conflict!
956
 
957
                Dan MacDonald found that close in async routine caused sync
958
                expect to blow up.
959
 
960
                Missed deletion of last line of out macro in exp_inter.c
961
 
962
                Simon Warfield  noted bug in xkibitz
963
                help message.
964
 
965
                Fixed exp_background to use global scope instead of current.
966
 
967
                Steve Diamond  noted that -i "4 5"
968
                only used spawn id 5.
969
 
970
                Rob Nagler found yet another bug in log_file when called
971
                incorrectly.
972
 
973
                Expectk wasn't creating a window by default.
974
 
975
7/25/94 5.8.1   Made exp_interp external.   Users should be able to set this
976
                explicitly.
977
 
978
                David Barnett  found that Linux was not
979
                getting a controlling terminal.  The original test for doing
980
                that was based on Stevens and tested in a very nonspecific way
981
                for the presence of a Sun via CIBAUD.  Replaced this with a
982
                more specific test.
983
 
984
                It seems Tcl 7.3 broke my -nostack hack.  The top-level interp
985
                translates unknown return codes to TCL_ERROR.  Sigh.  I wish
986
                Ousterhout would stop all of those translations.  If the user
987
                wants them, they can do so themselves, but now they're forced.
988
 
989
                Martin Buchhoz  suggested adding
990
                XKIBITZ_XTERM_ARGS environment variable to xkibitz.  He also
991
                noted that stty rows/columns support doesn't seem to work on
992
                AIX.  I haven't yet looked into this.
993
 
994
                Copied 2nd sync mechanism from Expect to C library.
995
                Added exp_child_exec_prelude hook.
996
 
997
                Jonathan Kamens noted that "spawn cat;close;wait" returned
998
                -1 on AIX and 0 on Sun.  This is "correct", however to
999
                address this, I added -ignore to spawn and otherwise made
1000
                signals default.  Also added extra information to return value
1001
                of wait if caused by signal.
1002
 
1003
                Dan MacDonald  noted that exp_continue
1004
                didn't cause timeout to get reread.
1005
 
1006
                Ting Tan  noted that when using -b, expect
1007
                hangs if open brace and doesn't stop in case of error.
1008
 
1009
                Oops, broke "log_file" with no args.
1010
 
1011
                Removed -timestamp from documentation.  Use "timestamp" command
1012
                instead.
1013
 
1014
                Keith Hanlan noted C library didn't test already arrived data
1015
                before attempting to read more.  He also suggested I avoid
1016
                forcing the user to do save/restores of per-fd globals.
1017
 
1018
6/24/94 5.8.0   Hubert Halkin  pointed out that interleaved
1019
                expect_bgs and spawns dump core.  I had used the exp_f ptrs
1020
                as handles to TkCreateFileHandler but realloc shuffled them
1021
                around.
1022
 
1023
                Rick Lyons  provided misc. mods
1024
                for Pyramid.
1025
 
1026
                Keith Hanlan  noted that HP-UX C compiler causes
1027
                odd behavior in Expect when it is compiled with -O.  -g works
1028
                fine.
1029
 
1030
                Peter Gasche  pointed
1031
                out that Convex 10.2 fails to build.  New version of Convex OS
1032
                added getpty().  Naturally, it differs from old one.  Testing
1033
                is tricky because there is no header file for it.  Even worse,
1034
                the algorithm in the Convex man page is incorrect - it allows
1035
                you to allocate ptys already in use!  Unfortunately, the man
1036
                page is too vague to allow the reader to see that immediately.
1037
 
1038
                In contrast to BSD stty, Convex, Mach, and NeXT stty don't
1039
                complain if redirected to null.  I'll just have to hardwire the
1040
                test in configure.
1041
 
1042
                Added -nowait flag to wait command.
1043
 
1044
                Upon suggestions from David Vezie :
1045
                Added -noappend, -open, and -leaveopen to log_file command.
1046
                Added -leaveopen flag to spawn and exp_open.
1047
                Modified spawn to close -open immediately.
1048
                Modified exp_open to close spawn_id immediately.
1049
 
1050
                Between Jeff Wright , Brad
1051
                Skrbec, Arup Mukherjee , and the anonymous
1052
                Mach support group at CMU, finally got hard answers about Mach.
1053
                It is no longer supported and there is no intention to provide
1054
                full POSIX support.  Now, at least, I can fix the configure
1055
                script to understand this.
1056
 
1057
                Added "unbuffer" example.
1058
 
1059
                Dana Chee  provided configure hooks
1060
                for finding -lnsl and -lsocket.
1061
 
1062
                Henry Spencer  noted timestamp doc did
1063
                not jive with C defn.  Fixed doc and added timezone support.
1064
 
1065
                Steve Pynes  noted that exp_win.c needs
1066
                _IBCS2 (Intel Binary Compat Standard #2!?!) before it will
1067
                recognize winsize.  He also noted #out was redefined in inter
1068
                code if using simple_event.
1069
 
1070
                Fixed defn of "stty cooked" to retain echo setting.
1071
 
1072
                Bennett Todd noted dislocate's pidfile_read was missing close.
1073
                He also noted useless bind in tkpasswd.
1074
 
1075
                Marty Leisner noted that ^C causes xkibitz to exit ungracefully
1076
                when in interpreter.
1077
 
1078
                Added yet another sync mechanism (see 5.6) to spawn so that
1079
                child cannot eof before parent has prepped the pty (only a
1080
                probably on HPs, of course).  I had actually written most of
1081
                the code, but left it disabled because I hoped that the
1082
                problem simply wouldn't happen in practice.  Alas, Jonathon
1083
                Kamens found a case where it does.
1084
 
1085
                Jimmy Aitken  noted problem on Pyramid.  My
1086
                original code only looked for /dev/tty##.  On pyramid, ptys
1087
                look like /dev/pts/4.  term wants the last two characters, but
1088
                on the Pyramid, the first of the last two characters can be a
1089
                / in which case xterm wants a 0.  I.e., suffix of /dev/pts/4
1090
                is "04".  xterm fails completely with 3-digit ptys!  I sent
1091
                a suggestion and patch to X Consortium for this and the pid
1092
                problem - xterm has no way of telling it to which pid to send
1093
                the SIGWINCH.
1094
 
1095
                Poul-Henning Kamp  noted that -lm would make
1096
                autoconf forget about other libs.
1097
 
1098
                Ram Bhamidipaty noted I forgot to document sleep.
1099
 
1100
                Removed disasterous performance with * at beginning of glob.
1101
 
1102
                Mods from Rob Savoye.  See ChangeLog.
1103
 
1104
                Earnest Hua  noted expectk.man need wasn't
1105
                installed.
1106
 
1107
                Bogus arguments to expectk were not reported correctly.
1108
 
1109
                Modified clib to catch when user changes match_max between
1110
                expects on two different fds and then switches back.
1111
 
1112
                Rewrote timestamp to get rid of 200 char limit.
1113
 
1114
                Ram Bhamidipaty  noted NetBSD .9 stty
1115
                complained "stdout appears redirected, but stdin is the
1116
                control descriptor".  It compares dev(stdout) to dev(stderr)
1117
                and assumes if they are different then user thinks stty
1118
                ioctls stdout.  This is one case when that assumption is wrong.
1119
                Fixed fd 2 so it points new 2 and is reset to old 2 if an
1120
                error occurs.  This forced me to remove any diagnostic output
1121
                from child (in getptyslave) since this now went back to the
1122
                proc as child output rather than original stderr, sigh.
1123
 
1124
                Stephan Winokur  noted that
1125
                IRIX 4.2 had problems with gcc.  While diagnosing, I found
1126
                PTY_TYPE was used before set.  Make doesn't mind (how odd)
1127
                but I changed it anyway.
1128
 
1129
                Made send understand "-null".  Deprecated "-0".
1130
 
1131
                Made Expect read .expect.rc from DOTDIR if present.
1132
 
1133
3/30/94 5.7.0   Removed alpha status.
1134
 
1135
                Added $(EVENT).o to library.
1136
 
1137
                Finally deleted old shar file.  Revised README.
1138
 
1139
3/22/94 5.6.3   Phil Moore  noted termios.h
1140
                should not come from sys even if it exists.  (SGI doesn't have
1141
                sys/termios.h.)
1142
 
1143
3/21/94 5.6.2   Paul Kinzelman  noted that I forgot
1144
                to remove -update from documentation.
1145
 
1146
                Fixed interact's -i so it understands indirect spawn ids.
1147
 
1148
3/21/94 5.6.1   expect_background randomly failed.  I forgot to save Tk's
1149
                event mask so occasionally events were incorrectly classified
1150
                as eof.
1151
 
1152
                Added -buffer to expectk and made "nobuffer" the default so
1153
                scripts are read in much faster.
1154
 
1155
3/15/94 5.6.0   Added cat_buffers marker to avoid "catu" option to scripts.
1156
 
1157
                Got temporary use of an evaluation copy of TestCenter.
1158
                Promptly found several memory leaks.  Oops.
1159
 
1160
                Added a synchronization mechanism to spawn so that user cannot
1161
                send to pty before it is init'd.  This also deals with the HP
1162
                trap more simply.  Removed extra open added in 5.5.1.  While
1163
                working on this, it occurred to me stty needs to temporarily
1164
                disable trap.  Added exp_slave_control so that C programmers
1165
                can get to it portably.
1166
 
1167
                Added "expect -ex" to documentation.
1168
 
1169
                Fixed winsize bug on Solaris.
1170
 
1171
                Added functions to allow user flexibility closing fds in child.
1172
 
1173
3/8/93  5.5.1   Integrated bug fixes from Arnold Robbins 
1174
                ga.us> for his own strftime code.
1175
 
1176
                Rob Savoye passed back a patch from OSF to cast ptsname.
1177
 
1178
                Added a test for cat.  R.K.Lloyd noted HP failed pid test.
1179
                Turned out to be another bug related to pty-trapping.  The test
1180
                of course, was doing something that a user would never do.
1181
                Hope this doesn't break other HPs.   Pty trapping is becoming
1182
                less and less clear to me.  Ioctls generated by slave look like
1183
                modem ioctls.  Added an artificial open because different
1184
                versions of HP's stty execute differing numbers of ioctls.
1185
                In test script, changed each cat to cat -u.
1186
 
1187
2/17/93 5.5.0   Began a test suite based on Ousterhout's model: make test
1188
 
1189
                Added passmass man page.
1190
                Added decl of exp_tty_original to pty_sgtty.c.
1191
                Added error_spawn_id
1192
 
1193
                Alon Albert  provided a bug fix for new
1194
                buffer handling code in C library.
1195
 
1196
                Fix fd leak related to spawn -open.
1197
 
1198
2/7/94  5.4.0   Some installation improvements from Rob Savoye and Owen Rees.
1199
 
1200
                Bug in handling empty string match - crept in recently.
1201
 
1202
                Finally fixed longstanding oddness: stty -raw reset echo.
1203
 
1204
                Made spawn close all file descriptors.  Added exp_open command
1205
                to get old effect.
1206
 
1207
1/26/94 5.3.5   Made rftp use /bin/ls to avoid -F from people's aliases.
1208
 
1209
                Initialized auto_path.
1210
 
1211
                Fixed exp_version so it fails if the major #s are not equal
1212
                (which is what the man page said).
1213
 
1214
1/18/94 5.3.4   Jim Meyering  gave config fixes
1215
                of X handling on Irix-4.0.5 and suggested that tknewsbiff
1216
                observe DOTDIR.
1217
 
1218
1/18/94 5.3.3   Kevin Short  noted some remaining use of malloc
1219
                and free instead of ck versions.
1220
 
1221
                Initialize tcl_interactive to 0 while processing -c flag to
1222
                avoid unreliable handling of unknown proc.
1223
 
1224
1/17/94 5.3.2   Jeffry Abramson  noted that "spawn -pty"
1225
                hung on an HP.  Problem was trapping was enabled so as soon
1226
                as I tried to open the slave, Expect blocked waiting for ack!
1227
 
1228
1/14/94 5.3.1   Forgot to delete a bad call to strcat in exp_internal.
1229
 
1230
1/13/94 5.3.0   Added -info flag to log_file, log_user, exp_internal, and
1231
                strace, so you could get original args back out.
1232
 
1233
                Wrote tknewsbiff script (and was extremely pleased).
1234
 
1235
                Fixed rftp.  I must have broke it when I changed to using Tcl's
1236
                new switch cmd.  Also sped it up by replacing split/join
1237
                nonsense with a single regexp.
1238
 
1239
                Danny Faught  noted that glob patterns
1240
                returned shortest matches.  While fixing this, found that glob
1241
                patterns ending in $ were broken, too.
1242
 
1243
                Massaged libraries and include files.  The include file for
1244
                using Expect with Tcl or Tk is now expectcl.h.  libexpect.a
1245
                now suffices for using Expect's funcs with C or Tcl.
1246
 
1247
                Add all the features from Expect into C library including
1248
                null and full buffer matching.  Added exp_buffer (_end) and
1249
                some other variables to support fd multiplexing better.
1250
                Made unmatched chars from previous expects remain for future
1251
                matches.
1252
 
1253
                Chen  found bug in exp_pid when
1254
                -i had no arg.
1255
 
1256
                Rewrote expect_bg, after, and before so they all handle args
1257
                the same.  Interact and all the expect variables now handle
1258
                indirects.  exp_bg now handles -brace flag.
1259
 
1260
                Geoff Bullen  noted that interact put
1261
                terminal into raw mode even if stdin was redirected.
1262
 
1263
                Rob Savoye provided more configure mods to better find Tcl/Tk.
1264
 
1265
                Fixed bug in wait that didn't close down "busied" fds.
1266
 
1267
                Kazuro Furukawa  provided a better
1268
                default for SHORT_BINDIR in the Makefile and noted that DEC
1269
                doesn't understand "test -x".
1270
 
1271
12/3/93 5.2.0   Recent fix was buggy and blew up when eof case still had data
1272
                in buffer.
1273
 
1274
11/23/93 5.1.4  At request of Rod Beckwith  fix some
1275
                minor things to which SGI cc was sensitive.
1276
 
1277
                Fixed bug in dvorak script where eof could occur in nested
1278
                interact, upsetting original interact.
1279
 
1280
                Forgot to change -flush to -nobuffer in man page.
1281
 
1282
                Added some more places to search for X11 for Jeff Moore
1283
                 note.
1284
 
1285
                Added yet more fixes and notes for NeXT for Brad Skrbec
1286
                 who found that NeXT has POSIX
1287
                include files but NOT the functions that go with them.  Sigh.
1288
                Needless to say, configure is thrown off by this.
1289
 
1290
11/14/93 5.1.3  John Pierce  noted several declarations
1291
                that AIX's cc couldn't handle include a struct with same elt
1292
                name at two different levels.  Also _IO is declared twice
1293
                in AIX include files but only checked once.
1294
 
1295
                Fixed bad args in exp_spawnl call in chesslib examples.  Can't
1296
                imagine how it ever worked before.
1297
 
1298
                Richard Weidner  found a bug in
1299
                configure (test always treats a bare string as true!) that
1300
                caused NeXT to be declared as POSIX.
1301
 
1302
                Fixed two bugs in Tcl_StringMatch2.  One caused glob ranges to
1303
                succeed when they shouldn't.  Another was how malformed ranges
1304
                are handled, and came right from Tcl.  Reported to John.
1305
                Switched Expect library to use T_SM2 from Expect itself.
1306
 
1307
                Blair Zajac  noted expectk used
1308
                CLFLAGS instead of CFLAGS.
1309
 
1310
                Forgot to fix mishandling of parens inside of alternation in
1311
                interact.
1312
 
1313
11/9/93 5.1.2   Added "null" keyword and remove_nulls command to allow matching
1314
                ASCII 0 in expect/interact.
1315
 
1316
                Rob Nagler  noted that expect_background
1317
                failed if pattern didn't consume all data.  event handler
1318
                knows nothing about data already arrived but not processed.
1319
 
1320
                Made Expectk understand --
1321
 
1322
11/8/93 5.1.1   Fixed yet another bug in setting expectk's argv0.
1323
 
1324
11/6/93 5.1.0   Provided support to work with Tcl 7.[0-1] and Tk 3.[3-4].
1325
 
1326
                Pasi Kaara  found an off-by-one in the buffer
1327
                shuffling when buffers fill up during an expect.
1328
 
1329
                Changed \\\$ to \\$ in patterns that search for literal $.
1330
 
1331
                Added "spawn -pty" support for xterm -S.
1332
 
1333
                Fixed yet another argv problem in Expectk.  When run using
1334
                expectk explicitly, script name was left in argv.
1335
 
1336
                Fixed system command's return value to match exec new style.
1337
 
1338
11/1/93 5.0.4   Mark Davies  noted that BSD4.4 sysconf
1339
                returns -1 (a bug).  Rewrote to avoid requiring this info.
1340
                Switched from from explicit refs of sys_errlist to Tcl's
1341
                strerror.
1342
 
1343
                As per Adrian Mariano , added exp_sleep
1344
                command primarily to allow sleeping by sub-second intervals.
1345
                Also avoids exec overhead.  Not yet documented.
1346
 
1347
                Kartik Subbarao  noted that on
1348
                HPUX 9, SC_OPEN_MAX should be ifdef'd on itself rather than
1349
                HAVE_SYSCONF.
1350
 
1351
                Karl Vogel  noted Pyramid
1352
                didn't like varargs included twice in exp_command.c.
1353
 
1354
                Deleted expect_version variable (was never documented) and
1355
                deprecated expect_library to be exp_library for consistency.
1356
 
1357
10/16/93 5.0.3  Lou-Salkind@deshaw.com found interpreter() could stomp past end
1358
                of input array.  Same problem in debugger.
1359
 
1360
                Bud Bach noted init.tcl wasn't being sourced, and Makefile
1361
                broke if all scripts were commented out.
1362
 
1363
                Added interesting highlights and bindings to tkpasswd.
1364
 
1365
                Made Makefile look for -ltk if libtk.a doesn't exist.
1366
 
1367
                Rick Sladkey pointed out that -re patterns to look for $ should
1368
                "\\\$".
1369
 
1370
                R.K.Lloyd noted config doesn't see prototypes with K&R cpp.
1371
 
1372
10/8/93 5.0.2   Bud Bach noted tcl_interactive was not set.
1373
 
1374
10/8/93 5.0.1   R.K.Lloyd noted various problems, some related to being on an
1375
                HP when a lot of #ifdefs kicked in.
1376
 
1377
10/7/93 5.0.0   Added expect_background.  In the Tk environment, this registers
1378
                actions to be called upon receipt of a pattern from a process.
1379
 
1380
                Renamed "debug" as exp_internal" and made debugger available
1381
                as "debug" and "exp_debug".
1382
 
1383
                Milan Gupta  noted that system() (at least
1384
                on his HP) hangs when SIGCLD is ignored.
1385
 
1386
                 noted that Tcl's exec command doesn't bother
1387
                to close fds, so force them with close on exec.
1388
 
1389
                Renamed "continue -expect" as "exp_continue".  "continue
1390
                -expect" will continue to work, just won't be documented.  It's
1391
                just too dangerous when you start mixing extensions.
1392
                Renamed "return -tcl" as "inter_return".  Had to do something
1393
                to avoid random return values from matching "-tcl".  This
1394
                design was just wrong.  Surprising that it never bit anyone.
1395
                Renamed "expect_version" as "exp_version" just to continue
1396
                this regularity.
1397
 
1398
                Protected initial fd_new's with isatty so disconnect doesn't
1399
                lose redirected fds.
1400
 
1401
                Allowed DFLT_STTY to be omitted entirely.  Apollo doesn't need
1402
                it.
1403
 
1404
                Modified fork to fail on failure instead of returning -1.  This
1405
                made spawn failure match disconnect failure.
1406
 
1407
                Dan Hyde  noted missing arg in exp_error.
1408
 
1409
                Jerry Whelan  noted -buffer was botched
1410
                in man page.  Hal Peterson noted that bug in man page caused
1411
                groff to choke.
1412
 
1413
                wait now returns {pid, spawn_id, 0|-1, status (or error msg).
1414
                errorCode is now set if appropriate.  wait -i -1 waits for any.
1415
 
1416
                Propagated winsize to pty.
1417
 
1418
                Documented "-open".
1419
 
1420
                Quentin Stafford-Fraser  noted that
1421
                interact -u was broken.
1422
 
1423
                Fixed interact's default actions "return"/"interpreter" to be
1424
                writable.  Removed ability to set default eof/timeout.  Removed
1425
                dash from same.
1426
 
1427
                Rewrote trap to use Tcl's async support.
1428
                Added -code switch and made interpreter understand "-nostack"
1429
                coming from error to use ^C to easily return to interpreter.
1430
                Introduced following incompatibilities:
1431
                - ONEXIT interface disappeared.  Use "exit -onexit".  (Thinking
1432
                        of this as a signal bought nothing but complexity.)
1433
                        Added "exit -noexit" to run all expect-related exit
1434
                        handlers without exiting or destroying interp or ".".
1435
                        Useful for when other apps have exit handlers.
1436
                - trap command takes missing action as a query.  Use "" or
1437
                        SIG_DFL to delete or reset a trap.
1438
                - SIGCLD gone.  Now always called CHLD even if underlying
1439
                        system only knows about CLD.
1440
                All sig handlers and exit handlers run at global level.
1441
 
1442
                Removed setjmp/longjmp crap.  Not needed since systems which
1443
                wait in read don't restart system calls.
1444
 
1445
                Added support in expect for "-gl" and allowed longer forms to
1446
                match Tcl's switch command.  Similarly for "-ex" in interact.
1447
                Rewrote arg parsing for send.
1448
 
1449
                Added "stty" command to support stty of ttys other than
1450
                /dev/tty.  Better for /dev/tty, too.  This should fix
1451
                security complaint from BSD's Net2 stty.
1452
 
1453
                 gave fixes for configure and noted
1454
                exp_main_tk was missing exp_conf.h.
1455
 
1456
                Added "exp_timestamp" command.  Fixed bug in interpreter cmd.
1457
                It wouldn't return anything with TCL_OK.
1458
 
1459
                Renamed -flush to -nobuffer.
1460
 
1461
                Make interact default to executing actions in raw mode.
1462
                Accept -reset to execute in cooked mode.  Ignore -f.
1463
                Fixed examples.  Fixed bug in "-o -timeout".
1464
 
1465
                Deprecated getpid (due to Tcl's pid), added exp_pid.
1466
 
1467
                Put "rm -f" inside catch.  SunOS 4.1.3 and some version of AIX
1468
                complain despite the -f!
1469
 
1470
                Added "send -break" for Dave Mielke.
1471
 
1472
                Fixed argv handling of expectk to match expect for Steve Clark.
1473
 
1474
                Switching to Tcl 7.0
1475
 
1476
8/21/93 4.7.7   Cygnus added support for OSF/1 style ptys.
1477
 
1478
                Brian Bebeau  found bug in PTC support,
1479
                HAVE__GETPTY, timestamp doc, and provides some mods for config
1480
                AT&T StarServer.
1481
 
1482
                Detection of direct spawn ids failed on -1.
1483
 
1484
8/18/93 4.7.6   Removed zone and gmtoff from timestamp.  Not ANSI.
1485
                Removed getpid confusion.
1486
                Once again, added "cat -u" into kibitz (this time for AIX 3.2).
1487
 
1488
8/18/93 4.7.5   De Clarke  hit error in exp_global.h because
1489
                tcl.h had not been included.
1490
 
1491
8/16/93 4.7.4   Richard Kasperowski  found that Ultrix 4.1-2
1492
                failed to allocate controlling terminal.  Ultrix's setsid is
1493
                evidentally buggy.  Switched back to setpgrp - which fixed it.
1494
 
1495
                Fixed type defn of exp_tty_original.
1496
 
1497
                Dave Mielke found two bugs in interact: re-failure prevented
1498
                other patterns from matching a particular point in the stream,
1499
                and two or more -inputs didn't actually work.  Also found bug
1500
                in HP trap handling - despite what docs say, other things
1501
                besides open/close have to be handled.  Specifically, slave was
1502
                generating an ARGGET.  Backed off on trying to wait immediately
1503
                for two OPENs to just waiting for one OPEN.  Perhaps zero?
1504
                Also found deficiency in return -tcl - failed to return arg.
1505
 
1506
                At Dave's request, made cmdfile by read in a single gulp rather
1507
                than line by line.  Added -b (buffer) flag for old behavior.
1508
                Old behavior performs badly on very long procedures but is use-
1509
                ful for reading commands from pipes.  Made "system stty" return
1510
                status of raw/echo.
1511
 
1512
                Made log_user return previous value irrespective of args.
1513
 
1514
                Fixed mishandling of parens inside of alternation noted by
1515
                Bud Bach .
1516
 
1517
                Added -timestamp, -iread, and -iwrite to interact and
1518
                expect.
1519
 
1520
                Added -onexec flag to close to solve problem posed by
1521
                Bellave Jayaram .
1522
 
1523
                Added -0 to send.  Removed capability of send to send multiple
1524
                strings.
1525
 
1526
                Chip Rosenthal noted bug in releasing trap 0's action.  Also
1527
                modified exit handler to allow recursive invocation.  Instead
1528
                of complaining, it skips handlers that have already been
1529
                invoked and forces the process to exit.
1530
 
1531
                Added new names for most command prefaced by "exp_".
1532
                Deprecated send_spawn.
1533
 
1534
                Switched to Ousterhout's ckalloc and attitudes towards failure.
1535
 
1536
                Started adding Tcl 7.0 support.  getpid renamed to pid.  Added
1537
                exp_pid to support things that Tcl 7 does with its pid.
1538
 
1539
6/12/93 4.7.3   fnf@fishpond.cygnus.com noted minor type problems.  Rob Savoye
1540
                noted trap SIGINT overrode debugger handler.  Default should
1541
                be reverse.
1542
 
1543
6/8/93  4.7.2   Added debugger to public release.
1544
 
1545
6/7/93  4.7.1   Ed Oskiewicz  noted prototype botch - exp_cook.
1546
                Owen Rees  noted missing decl - tclRegexpError
1547
 
1548
6/6/93  4.7.0   Gert Bultman  exposed a bug in interact's
1549
                -update.
1550
 
1551
5/27/93 4.6.0   Rick Sladkey  fixed a bug in send_log -
1552
                checking a master needlessly and indexing off the end of an
1553
                array.
1554
 
1555
                Rob Savoye made change for detecting libpt.a, modified
1556
                autoconf for better handling of X, exec_prefix, and ranlib.
1557
 
1558
                Kris Woeppel  said SVR3 doesn't have
1559
                wait.h.
1560
 
1561
                Made libexpect.a understand regexp.  Reorganized code.  It
1562
                now requires Tcl to be installed first, although it uses only
1563
                a few utility routines.  Hopefully this isn't a problem for
1564
                anyone.
1565
 
1566
                Zack Xu  noted exp_main.h needed C++ support.
1567
 
1568
                Pascal Meheut  gave fix for skipping over
1569
                null bytes while interact is pattern matching.
1570
 
1571
                Added "--" to expect, interact, and send.
1572
 
1573
                Added support for associating multiple -i's with a single
1574
                pattern, and -i's with no pattern for use with spawn_id_any.
1575
 
1576
                Made interact work with systems that lack select/poll.
1577
 
1578
                Added code and #defines for debugger.  Debugger itself is not
1579
                yet available.
1580
 
1581
4/19/93 4.5.2   Achim Flammenkamp  noted that I
1582
                documented full_buffer as buffer_full.
1583
 
1584
                Ted Stockwell  noted that wait arg
1585
                was missing an & in configure test.
1586
 
1587
                Scott Hess noted that systems can have wait4 without waitpid.
1588
 
1589
                Jonathan Kamens  noted/fixed some things that
1590
                weren't autoconf'd correctly: pid_t, RETSIGTYPE, malloc.
1591
 
1592
                Gary Shea noted that a recent change to expectk made it not
1593
                default to interactive.
1594
 
1595
4/12/93 4.5.1   At request of Rusty Wilson , added
1596
                "-console" to spawn.
1597
 
1598
                Pang Wai Man Raymond  reported that
1599
                passmass didn't grok DEC's passwd prompts for root.
1600
 
1601
4/7/93  4.5.0   Fixed bug in interact regexp preventing match of multichar
1602
                literals.
1603
 
1604
4/6/93  4.4.3   Bennett Todd  noted missing example scripts
1605
                timed-read and time-run.
1606
 
1607
3/29/93 4.4.2   Bill Houle 
1608
                for SVR4 pty support to compile.
1609
 
1610
                Made string matcher understand *$.  Documented tty_spawn_id.
1611
                Made command line -i override -f.
1612
 
1613
                For Tuan Doan  on HP, make kibitz use domainname
1614
                as fallback and used whoami instead of env(USER).
1615
 
1616
                Fixed bug in the generic pty code that could report out of ptys
1617
                because an earlier slave slowly deleted the lock file.
1618
 
1619
3/25/93 4.4.1   Stephen House  reported exp_tk.c wouldn't
1620
                compile on HP.  Fixed.
1621
 
1622
3/24/93 4.4.0   Added back SVR4-style pty allocation which got omitted in the
1623
                autoconfig process.  Fixed bug in interact's -update handling.
1624
                Fixed bug in weather script that cut off long reports.
1625
 
1626
3/15/93 4.3.0   Cleaned up /tmp files used during pty locking.
1627
 
1628
                Added command "parity" to enable parity stripping.  Fixed
1629
                match_max to do -i correctly.
1630
 
1631
3/15/93 4.2.4   Fixed to work on new SGI which returns slave-close via excep
1632
                (select) or POLLERR (poll) rather than thru read().  Why do you
1633
                people do things like this?
1634
 
1635
3/12/93 4.2.3   Fixed to work on AIX (using /dev/ptc) and UTS (using getpty).
1636
 
1637
3/11/93 4.2.1-2 Fixed numerous bugs relating to HP ptys.  It's amazing that for
1638
                their bewildering complexity, they couldn't support generation
1639
                of EOF to the master (or at least enable trapping of just
1640
                close), rather than forcing the code to know about opens, too.
1641
 
1642
3/8/93  4.2.0   Integrated Rob Savoye's autoconfig code.
1643
 
1644
                Interact mishandled new -eof flag.  Added -update.
1645
 
1646
                Gary Shea  noted that tkwait hung if
1647
                expect had been called.  Rewrote most of tk_event.c and fixed
1648
                some other problems related to efficiency & multiple timeouts.
1649
 
1650
                E Beck  suggested mods to more easily support
1651
                Extended Tcl.
1652
 
1653
                Bill Mitchell  reported problems on
1654
                4.3+BSD.  Added support for TIOCSCTTY.
1655
 
1656
                Dana Burd  noted that "exit" caused by ^C during
1657
                expect didn't work - just returning to expect.  Fixed, and then
1658
                removed "feature" of ^C to abort a timeout.  This feature
1659
                proved a lot less useful than I thought it would.
1660
 
1661
2/21/93 4.1.0   Bill Tierney  noted that double
1662
                close dumped core.  Rewrote fd_to_f and close/adjust functions.
1663
 
1664
                Interactive interpreter() didn't properly wait in
1665
                get_next_event, so Tk stopped responding to events.
1666
                Wrote version of interpreter that shares expect's input buffers
1667
                but can't think of a use.  Left as an ifdef SHARE_CMD_BUFFER.
1668
 
1669
1/26/93 4.0.1   Added eof check to xpstat.  Removed incorrect and unnec.
1670
                #includes from exp_main_exp.c
1671
 
1672
                Chip Rosenthal  found my refs to
1673
                tclRegexpError need externs on systems that don't use Tcl's
1674
                string.h.  string.h should probably be changed not to refer to
1675
                tclInt.h.
1676
 
1677
                Added FAQ about Expect's copyright status.
1678
 
1679
                Mark Christopher  pointed out some really
1680
                stupid errors in the HP support for select.
1681
 
1682
12/16/92 4.0.0  Rewrote interact.  Made re-entrant thru event-handler for Tk.
1683
                (Same for Expect.)  Abstracted out common code so that
1684
                remainder is specific to select vs poll vs tk (although
1685
                "simple" was impossible to handle).  Added timeouts, regexps
1686
                (at request of numerous people), ability to set up arbitrary
1687
                graphs of process flows, and some miscellaneous but useful
1688
                functionality.  New flags are: -input, -output, -re, -echo,
1689
                -flush, -eof.
1690
 
1691
                Added "-noecho" to spawn command.
1692
 
1693
                Added getpid command.  Something with this functionality should
1694
                be added to the Tcl core.  When it is, this function will go
1695
                away.
1696
 
1697
                Removed assumption of global "interp" handle.  Rewrote init
1698
                and other routines for use as libraries.  Added appropriate
1699
                glue to Makefile.
1700
 
1701
                At request of Rob Savoye  added "send_log" and
1702
                disabled buffering on all output.  The only affect unbuffered
1703
                output will cause users is if they pass large strings in
1704
                multiple args to send.
1705
 
1706
                Ray Davis  reported Convex
1707
                could not do job control from spawned procs.  I added a symbol
1708
                DO_SETSID to force this.
1709
 
1710
                Martin Leisner modified rftp to understand iftp.  I added it
1711
                to the publicly donated scripts directory.
1712
 
1713
11/17/92 3.24.1 Martin Leisner suggested Makefile use $(MAKE) and support Tcl
1714
                as a Sun shared library.
1715
 
1716
                Seth Perlman  suggested interact
1717
                support timeout.  I've added this as "-timeout" in inter_select
1718
                but left undocumented while we experiment with interface.
1719
 
1720
                Joe VanAndel  pointed out that su2
1721
                script still used old syntax.  Fixed.
1722
 
1723
                Konrad Haedener  fixed a bug in
1724
                POSIX tty handling on AIX.  Surprisingly, we discovered AIX
1725
                worked just fine when pty_bsd is used and without -DPOSIX!
1726
 
1727
                Doug (George Jetson)  pointed out
1728
                that a spawn_id for /dev/tty would be really handy.  I added
1729
                tty_spawn_id for this purpose.
1730
 
1731
11/4/92 3.24.0  After problem reported by James Ward  added
1732
                to man page describing delays required by hardware such as for
1733
                UART switching.
1734
 
1735
                Recoded all \C sequences as \### in examples and man page in
1736
                anticipation of them going away in next version of Tcl.
1737
 
1738
                Switched to printing errorInfo during errors instead of the
1739
                command and only the top-level error message.  Since this
1740
                includes entire stack, this should be very helpful.
1741
 
1742
                J. Cazander 
1743
                philips.nl> reported that purify found a write beyond the end
1744
                of an input buffer.  Lucked, it was just before a double-word
1745
                boundary, so it probably isn't a problem.  I fixed it anyway.
1746
 
1747
10/9/92 3.23.1  Tor Lillqvist  supplied support for HP 8.0.7 in
1748
                POSIX-mode, and a bugfix for POSIX tty mode switching
1749
 
1750
10/8/92 3.23.0  Larry Rogers  reported that "weather" blew
1751
                up in spawn.  I'll add a catch-all to the script to report
1752
                similar problems (out of ptys, processes, etc.)
1753
 
1754
                Ting Leung  notes that log() in human_write can
1755
                receive a 0 (domain error).  Fixed unit_random to avoid that.
1756
 
1757
                Tony Primavera  notes that the sample
1758
                archie script needs to understand mcgill's limit of 10 users.
1759
                Tor Lillqvist  noted that a lesser-used pattern
1760
                ("unknown...") is incorrect.
1761
 
1762
                Grant Taylor  found a problem when forking
1763
                (using Expect's fork) multiple processes, each of which spawned
1764
                something.  In the BSD pty support, I had used the pid to build
1765
                a temporary file for testing the pty before actual use.  When
1766
                multiple processes tried to use the same tempfile, it blew up.
1767
 
1768
8/12/92 3.22.13 Corey Satten pointed out that -u on cat caused kibitz to slow
1769
                down on Ultrix.  I see the same behavior on SunOS.  I added an
1770
                option to fix it for systems that need it.  Corey also noted
1771
                arg miscounting in kibitz, and pointed out that world-readable
1772
                fifos could be a security problem.  He gave a fix for this and
1773
                also a fix to force ptys to be put into raw mode.
1774
 
1775
                Terrence Brannon  reported rftp
1776
                referenced the undefined variable 'transfer'.  Turned out to be
1777
                a bug in the code to handle symbolic links.
1778
 
1779
7/20/92 3.22.12 Added O_NOCTTY (if defined) in pty_bsd.c to avoid gaining
1780
                control terminal while testing pty when running as daemon.
1781
 
1782
                At request of Michael D. Riley 
1783
                added explanation to man page - how expect_after/before deal
1784
                with spawn_id.
1785
 
1786
                Charles Hannum discovered the problem with AIX (see earlier)
1787
                was a missing "extern" in the errno declaration.  Also, the
1788
                compiler was sensitive to a lack of access to the defn of
1789
                struct expect_special.
1790
 
1791
                Dave Coombs gave me yet another fix for the weather server to
1792
                accomodate its ever continual change.
1793
 
1794
7/2/92  3.22.11 Yet more work.  Discovered that SunOS and Ultrix really like
1795
                setpgrp(0,0) much better than setpgrp(0,getpid()) but the
1796
                manual doesn't describe well why this seems to work better.
1797
                (The old call worked inconsistently.)
1798
 
1799
6/30/92 3.22.10 Did more work on modifications to dissolve connection between
1800
                stdio and devtty.  Eventually, I'd like to add a separate
1801
                spawn_id for devtty (expect_devtty?).
1802
 
1803
6/5/92  3.22.9  Hansel Wan  noted that $errorInfo was clobbered
1804
                by prompt1.  To prevent this, I added a default definition
1805
                for prompt1 (and prompt2 while I was at it).
1806
 
1807
                Unnati Amin  noted that the example scripts
1808
                checked for $ in prompts which didn't work.  This bug was
1809
                created when $ was turned into a "match end-of-input" char
1810
                in the transition from v2 to v3.  Solution: backslash the $.
1811
 
1812
                A few parts of code assumed spawn_id was always stdin, which
1813
                caused "send" to send to stdout, which meant succeeding
1814
                expect's hung, waiting forever.  Fixed is_user macro.
1815
                This was a problem with scripts that redirected stdin or
1816
                somehow reused fd 0.  Surprising that no one ever did that
1817
                before - also surprising that it didn't bother cron jobs.
1818
 
1819
6/2/92  3.22.8  Man pages fixes from Matt Crawford crawdad@fncent.fnal.gov.
1820
 
1821
5/12/92 3.22.7  Missing ; in Makefile, screwed up chmod.
1822
 
1823
                Fixed bug that caused interact to think the modes had changed
1824
                when they hadn't.
1825
 
1826
5/11/92 3.22.6  Added regression paper to ftp archive - published in the 1992
1827
                USENIX San Antonio Proceedings.
1828
 
1829
                Swapped setpgrp and fork in disconnect command for sysV88.
1830
                According to Dave Schmitt ,
1831
                original code (right out of Stevens) starts the child with
1832
                closed stdio fds.
1833
 
1834
                Fixed bug in interact that changed /dev/tty modes even if
1835
                interact was used to connect two completely different ttys.
1836
                Had never been a problem before, but today I wrote some code
1837
                that actually calls interact from cron!  Also, copied the
1838
                experimental fix from 3.22.5 to inter_poll.
1839
 
1840
                Jeremy Nussbaum  says cat needs "-u" in
1841
                kibitz for his HP 8.0 system to work.  I wonder why this has
1842
                never been a problem on earlier HP and other systems?
1843
 
1844
                Forced Makefile to mark scripts executable.
1845
 
1846
4/12/92 3.22.5  Fixed bugs reported by Matt Ranney 
1847
                including a syntax error (!) in expect.c on ecases_inuse.
1848
                I didn't even compile this before pushing out?  He also noted
1849
                some # were not in column 1.
1850
 
1851
                I put in an experimental fix to interact (only in select
1852
                version currently) to fix when pattern matching from master
1853
                and user needs to continue typing in order to complete match.
1854
 
1855
4/3/92  3.22.4  Charles Hannum (mycroft@gnu.ai.mit.edu) pointed out that I
1856
                screwed up a comment in the brand new pty_aix3.c.  He also gave
1857
                me a fix for an arg-less expect, which did a malloc(0).  And
1858
                he said that AIX ptys return EOF in yet a new way - read()
1859
                returns -1 with errno == 0.  Yuck.
1860
 
1861
3/29/92 3.22.3  Jay Schmidgall gave me yet another pty_aix3.c.  He also gave
1862
                ifdefs for POSIX terminal support.
1863
 
1864
3/18/92 3.22.2  Jay Schmidgall  modified pty_sgi3.c
1865
                to make a pty interface for recent versions of AIX.
1866
 
1867
                Steve Summit  noted that "trap 0" could
1868
                actually call signal(0...)
1869
 
1870
                Martin Leisner  noted
1871
                that rftp was broken.  It seems I never handled symlinks.  They
1872
                are interesting.  You can't tell from the listing whether they
1873
                are files or directories, so you just have to blindly go ahead
1874
                and assume it's one or the other and see what happens!
1875
 
1876
3/11/92 3.22.1  In talking to Dave Schmitt ,daves@techmpc.csg.gss.mot.com>,
1877
                realized the documentation for wait had never been updated
1878
                from the way it used to work in v2 (returning any pid).
1879
 
1880
3/11/92 3.22.0  Another question from Ron, prompted me to find another bug.
1881
                interact -o wrongly manipulated the user buffer at one point.
1882
 
1883
3/10/92 3.21.0  Ron Young  found that spawn failed on a
1884
                DECstation 3100 running Ultrix 4.2.  I had forgotten to test
1885
                that cmdfile was valid before comparing against stdin in fix
1886
                related to fflush in 3.20.0.
1887
 
1888
                While I was on a DECstation, I noticed that it does not accept
1889
                setpgrp(...,0).  Changed 2nd arg to getpid().
1890
 
1891
3/6/92  3.20.2  Stefan Farestam  provided a new
1892
                version of pty_sgi.c which uses _getpty.  I renamed the old
1893
                one pty_sgi3.c
1894
 
1895
3/3/92  3.20.1  Brian Woodson requested I update the dates and version numbers.
1896
 
1897
3/1/92  3.20.0  Prompted by a question from Ken Mandelberg, added -raw to
1898
                noidle and kibitz script.
1899
 
1900
                Fixed fflush(cmdfile) again, having been authoritatively told
1901
                by net wisdom that there is no way to portably fflush a shared
1902
                read-stream. (I take back my claim about a bug in HP's fclose!)
1903
 
1904
                John Sellens gave me some more fixes for non-DEC MIPS OS.
1905
 
1906
2/22/92 3.19.1  John Sellens  gave me a bug
1907
                fix for NOWAITPID.
1908
 
1909
2/21/92 3.19.0  Found a bug in HPUX fclose!!  It moves the I/O pointer in the
1910
                shared file table entry!  This explains the symptoms I reported
1911
                earlier.  Fortunately, it's easy to code around (by me - it is
1912
                no longer necessary to fudge the scripts).
1913
 
1914
                Added some stuff to the man page to explain why expect behaves
1915
                the way it does in an emacs shell window and how to live with
1916
                it.
1917
 
1918
2/21/92 3.18.0  Worked on the HP port some more.  The HP causes a real problem
1919
                by insisting SIGCLD be delivered in order for wait to return
1920
                a status.  This royally complicated the code, partly because
1921
                of the special casing all over the place in the trap command,
1922
                the asynchronous delivery of SIGCLD and also because Tcl itself
1923
                is not prepared to have system calls be interrupted.  Cleverly,
1924
                the HP also defines both CLD and CHLD which threw my macros
1925
                off at first.  Thanks, but I don't this kind of help!
1926
 
1927
                Anyway, the end result is that on the HP, SIGCLD is ignored.
1928
                The manual claims wait status will not be delivered but it
1929
                seems to be anyway.  Good grief!  (Even if it were ignored,
1930
                it would not be such a calamity, since wait is used mainly
1931
                to discard zombies on other systems.)
1932
 
1933
                A remaining problem is that there appears to be some odd
1934
                interaction, perhaps with fork, such that the script is rolled
1935
                back at eof if a spawned process happens to exit at the same
1936
                time.  The solution for now is to exit all scripts via exit
1937
                rather than letting exit be called implicitly.  There must be
1938
                some real bug, but I'm unable to find anything after lots of
1939
                testing, line and Saber.  At the moment, I'm highly suspicious
1940
                of the HP itself rather than expect.
1941
 
1942
                Bob Proulx and Jeff Okamoto supplied me with patches for
1943
                inter_select.c.  HP transmits some pty interactions via the
1944
                exception field in select.
1945
 
1946
                Michael Grant gave me a mod to grok ~ in the logfile and
1947
                debug commands.
1948
 
1949
2/17/92 3.17.1  Brian Keves  pointed out that the man page
1950
                still referred to "expect_match" instead of "expect_out".
1951
 
1952
2/12/92 3.17.0  Eric Arnold  ran into a problem
1953
                when running in the background.  interact did ioctl(0...)s to
1954
                change the terminal mode, ignoring the -u flag.
1955
 
1956
                Fixed a bug in kibitz which blew up when asking for a password
1957
                due to a spelling error.  The drawbacks of interpreters...
1958
 
1959
2/4/92  3.16.3  Dongchul Lim  noted that scripts can
1960
                hang in the background.  I had assumed isatty(0) was enough to
1961
                contrast bg/fg but it returns 1 if the script was started with
1962
                a & from the terminal.  I added code to watch if any ioctl(0)s
1963
                were done.  If so, than it is safe to do more, in particular
1964
                in the exit handler to reset the terminal modes.
1965
 
1966
1/28/92 3.16.2  Fixed a bug on SV systems causing errors when trying to do
1967
                further reads after a SIGCLD had already arrived on a spawn_id.
1968
 
1969
                Peter Funk  gave mods for SCO XENIX 386.
1970
 
1971
1/24/92 3.16.1  Oops.  Forgot to add pty_svr4.c to shar.
1972
 
1973
1/13/92 3.16.0  Karl Lehenbauer  a tiny change for
1974
                getting a clean compile on SCO 3.2.2.
1975
 
1976
                My getimeofday-avoidance code wasn't right, sigh.  Kibitz
1977
                noticed.  Fixed two other bugs in kibitz - password request
1978
                was for wrong user and it timed out but shouldn't have.
1979
 
1980
                Note: seems to work fine with new version of Tcl: 6.2
1981
 
1982
1/13/92 3.15.1  Added a bit of code to avoid gettimeofday system calls when
1983
                timeout == -1.  Fixed minor bugs in kibitz relating to cleaning
1984
                up and returning error messages.
1985
 
1986
                Redid support for stdlib.h including making it default to fix
1987
                problem in Ultrix 4.2 reported by Oliver Kretzschmar 
1988
                @ikesg1.energietechnik.uni-stuttgart.de>.
1989
 
1990
                Ian Johnstone  said his system (DYNIX 3.2)
1991
                needed an additional include  in inter_select.
1992
 
1993
                Dave Coombs  added logic to test/weather to
1994
                accomodate a new feature in the weather server.
1995
 
1996
                Hal Peterson fixed some SV code that I just added for handling
1997
                SIGCLD properly.  He made the Cray-extra-child timeout in half
1998
                the normal timeout to allow distinguishing between eof and real
1999
                timeout.  Finished rest of Jeff Okamoto's fixes for HPUX.
2000
 
2001
                Wally Strzelec  provided mods for
2002
                Amdahl which has its own pty-handling functions.  Ifdef'd into
2003
                pty_usg.
2004
 
2005
12/30/91 3.15.0 Fixed a bug that struck when eof occurred when reading from
2006
                multiple processes simultaneously and no user-supplied eof
2007
                handler.
2008
 
2009
12/26/91 3.14.1 Ted Gibson  gave me some mods
2010
                for a 3B2 having to do with termio vs termios, etc.
2011
 
2012
12/24/91 3.14.0 Deprecated expect 2.  Expect 3 is now the official version.
2013
 
2014
                Parag Patel  gave me some #includes
2015
                necessary for A/UX 2.
2016
 
2017
                Brian Woodson noticed "send a b" generates incorrect debug
2018
                output.
2019
 
2020
                Working with Jeff Okamoto to run expect on HP/UX 8.0, we fixed
2021
                SIGCLD catching (he says HPUX doesn't ignore them by default?),
2022
                obviating longjmp from stomping locals, fixed a bug in cmdWait
2023
                that would prevent the wait status from being collected in
2024
                rare situations.
2025
 
2026
12/17/91 3.13.1 James Davis suggested fixing Makefile to handle case where no
2027
                example scripts should be installed.  I added similar logic
2028
                for script man pages.
2029
 
2030
                Pete Siemsen fixed a bunch of things in the Makefile including
2031
                where to get expect when invoking fixline1.  He suggested defs
2032
                for supporting install and multiple MAN targets.
2033
 
2034
12/12/91 3.13.0 Matthew Freedman  noted mismatch
2035
                between lib man page (said "stty_init") and lib code (said
2036
                "exp_stty").  He also found a screwup in the library such that
2037
                the pty slave wasn't being set up correctly.
2038
 
2039
                Added note to kibitz man page on how to kibitz with 3 or more.
2040
 
2041
12/12/91 3.12.0 "expect *" worked incorrectly if it was first expect after
2042
                spawn, due to buffer not being initialized.
2043
 
2044
                Added a good example for "expect -continue" to man page.
2045
                Added an FAQ about a gcc problem that seems to be common.
2046
 
2047
12/11/91 3.11.2 James Davis noted I forgot to put kibitz.man in distribution.
2048
                I changed kibitz to read domain from resolv.conf instead of
2049
                calling domainname(1) for systems upon which NIS domainname
2050
                differs from Internet.
2051
 
2052
                Pete Siemsen  noted slight error in
2053
                libexpect man page.
2054
 
2055
12/10/91 3.11.1 A couple tiny mods to the Makefile courtesy of James B. Davis
2056
                and Michael Grant (guest worker from Sun, temporarily at
2057
                .  Both of them also noted a problem
2058
                caused by incorrect installation of gcc that caused expect to
2059
                say "ioctl(set): Invalid something or other" upon exit.
2060
 
2061
                Fixed complaint about exit() while compiling without STDC.
2062
 
2063
12/9/91 3.11.0  beta!
2064
 
2065
                Hal Peterson provided fixes for UNICOS 6.1 and 7.0 on both
2066
                CRAY-2 and CRAY Y-MP.  He also fixed a problem in interact
2067
                where malloc(0) could've occurred.
2068
 
2069
                Added support for allowing user to set interpreter prompt.
2070
 
2071
                Added forgotten -d flag to match_max in rftp script.
2072
                Made kibitz understand user@host.
2073
 
2074
                Expect's internal buffer-full-handling incorrectly copied
2075
                the latter buffer half beginning from the end of the buffer.
2076
 
2077
12/5/91 3.10.1  Massaged Makefile to allow for more flexibility in
2078
                installation, especially with regards to scripts.  #! is now
2079
                reset.
2080
 
2081
                Added "kibitz", a really cute script to let two people control
2082
                one program.  Example users are for one person to help another
2083
                remotely, logging a conversation (run emacs or whatever inside
2084
                kibitz and your conversation can be logged, scrolled backwards,
2085
                etc., or of course, playing games together.
2086
 
2087
12/4/91 3.10.0  Tightened up arg checking for "wait" - it core dumped when it
2088
                should've said "syntax error".
2089
 
2090
                Rick Cady  noted minor inconsistency in man
2091
                page describing strace.
2092
 
2093
                I fixed a bug that prevented "system stty -echo raw" from
2094
                working.  The raw data was clobbering the -echo data.
2095
 
2096
12/3/91 3.9.0   Brian Woodson noted that "close -i ..." evoked a syntax error.
2097
                I had parsed the arguments incorrectly.
2098
 
2099
                After the nth request, I finally set up pub/expect/scripts as
2100
                a directory for scripts.
2101
 
2102
12/2/91 3.8.0   Phil Sheperd  fixed a major bug in
2103
                exp_spawnv() preventing one side of the pty from being set up
2104
                correctly.  Thus nothing worked!  He also reported that his
2105
                system didn't have strdup, so I added an explicit defn of it.
2106
 
2107
                James B. Davis fixed a couple nroff-bugs on the man page, and
2108
                said someone already gave him a dump script (see below).
2109
 
2110
                Richard (R.C.) Vieregge  found a $ was missing
2111
                from test/ftp.exp.
2112
 
2113
11/22/91 3.7.2  James B. Davis  straightened out a couple
2114
                things in the Makefile and asked if anyone had written a script
2115
                for dump.
2116
 
2117
                Jeff Okamoto  had a couple changes
2118
                for HPUX 7 and 8 compat, involving termio stuff.
2119
 
2120
                Prompted by Andy Norman, added note to man page describing how
2121
                to disable all argv processing while using #!.
2122
 
2123
                Converted passmass and rftp over to new version.
2124
 
2125
11/15/91 3.7.1  Brian Woodson asked me about the Tcl_WaitPids "got unknown
2126
                process" panic.  This is a Tcl bug that John has promised
2127
                to fix.  I'll document how to avoid it in the man page.
2128
 
2129
                Incidentally, I'm going under the knife tomorrow for three
2130
                torn cartilage in my wrist.  The doctors say it may be a couple
2131
                days to couple months.  Until I get back, hang in there.
2132
 
2133
11/13/91 3.7.0  Yet another bug discovered (and fixed).  "expect eof" was
2134
                failing to remember the buffer, and expect_out(buffer) was
2135
                empty upon return.
2136
 
2137
                Brian Woodson noted I forgot to document the -i flag of close.
2138
 
2139
11/12/91 3.6.0  Sean Cunningham  reported that he couldn't
2140
                open /dev/tty from 'at'.  'spawn' was incorrectly not executing
2141
                code to claim it was a controlling tty.  BSD only.
2142
 
2143
11/11/91 3.5.1  Brian Woodson notes that version 2 and 3 treat the following
2144
                differently.
2145
 
2146
                        proc p {} {spawn s}; expect
2147
 
2148
                In v3, spawn_id is locallized by the proc, and thrown away when
2149
                p returns.  Unfortunately, in v2 due to some sloppy coding on
2150
                my part, spawn always affected the global value of spawn_id.
2151
                This differed from the handling of other variables, and in v3,
2152
                this unusual behavior had to go, because the multiprocess
2153
                handling and the large number of variables implicitly set
2154
                (especially by the expect command) demanded that I be more
2155
                systematic about how this was done.
2156
 
2157
                Since I never depended on this behavior, I never documented it
2158
                as being something you should rely upon.  Alas.  To fix it, add
2159
                the line
2160
 
2161
                        global spawn_id
2162
 
2163
                to the beginning of any proc that calls spawn and needs the
2164
                value of spawn_id implicitly defined outside of the proc.
2165
 
2166
11/6/91 3.5.0   Drew Whitehouse  hit a bad pointer.
2167
                I forgot an initialization in expect.c which caused problems
2168
                when an EOF occurred which had no eof pattern.
2169
 
2170
11/2/91 3.4.0   Added FAQ from various questions people have sent me and my
2171
                replies.  Made CONVERTING file on converting from 2 to 3.
2172
 
2173
                Nelson H. F. Beebe  found a missing
2174
                declaration for exp_tty_original in bye() of main.c.  How come
2175
                the Sun C compiler doesn't complain about this!?!!?
2176
 
2177
                Nelson also reported that SunOS 4.0.3 had a problem including
2178
                varargs.  It turned out that old varargs had check for
2179
                reinclusion, and tclInt.h also includes it.  So I added an
2180
                #ifdef va_dcl and put my inclusion after tclInt.h.
2181
 
2182
10/31/91 3.3.0  Converted most of the examples.  Three more to go.
2183
                Worked on man page some more.
2184
 
2185
                Modified expect so that if timeout > 0, and nothing in the
2186
                buffer matched, it will force a read, no matter how long the
2187
                preceeding code took.  This may be hard to understand, but is
2188
                the intuitive behavior that I always desired.
2189
 
2190
10/30/91 3.2.0  Fixed bug in eof handling.  Converted some more of the
2191
                examples, and added to Makefile.
2192
 
2193
10/29/91 3.1.0  Fixed slight bugs in tty mode switching, pty initialization
2194
                (via stty).
2195
 
2196
                Fixed expect library.  Fixed compatibility code for non-BSD
2197
                systems.  As usual, I could only test it so far, not having
2198
                all these systems at my disposal.  I don't expect major
2199
                problems though, since the basic functions I depend on haven't
2200
                changed.
2201
 
2202
                Completely rewrote handling of continue, return, etc in
2203
                expect, interact, interpreter.  It's actually systematic now.
2204
 
2205
                Checked with John O. about some code to bounce wild return
2206
                codes, which he said was a mistake and would remove, so now I
2207
                can pass my own return codes different from Tcl's.
2208
 
2209
To get | to return ->   TCL_RETURN      TCL_OK          (no return)
2210
       V
2211
    expect              return          default         continue -expect
2212
    interact            return -tcl     return          default
2213
    interpreter         return -tcl     return          default
2214
 
2215
                What this table says is, to get "interpreter" (for example) to
2216
                return TCL_RETURN to its caller, you must say "return -tcl",
2217
                because "return" makes it return TCL_OK.
2218
 
2219
                The "argumented" versions are considered to be the uncommon
2220
                form.  In particular, I'd be surprised if anyone ever uses
2221
                the -tcl argument, but it's there for completeness and
2222
                consistency now.
2223
 
2224
                Put together a FAQ.  Needs more work, but hopefully worthwhile
2225
                as is.
2226
 
2227
                Computing Systems with Expect article appeared a couple days
2228
                ago.  How ironic that it describes the old version of Expect.
2229
                Nonetheless, it looks ok.
2230
 
2231
10/25/91 3.0.0  alpha!
2232
                First release of Tcl-6.0-ready code.
2233
                It might fly for a couple seconds.
2234
 
2235
        Here is a quick list of changes.  Besides Tcl incompatibilities, Expect
2236
        incompatibilities are flagged below as:
2237
 
2238
        **      major - scripts definitely won't run if they depend on this
2239
        *       minor - scripts probably will run but there is some subtle
2240
                change that should be examined).
2241
 
2242
        **      Select renamed 'ready' and undocumented.  Seems pointless now.
2243
 
2244
                Added support to expect command for waiting on patterns from
2245
                different processes.  The old version implemented this via
2246
                'select' but but it is much simpler via expect.  Added -i to
2247
                a number of commands to signify a spawn_id which overrides
2248
                the variable.
2249
 
2250
                Added any_spawn_id to match any spawn_id.
2251
                An explicit null pattern, forces a spawn_id to be considered
2252
                when all it can possibly match are any_spawn_id patterns.
2253
 
2254
        *       output is no longer flushed to expect_match upon timeout.
2255
                May be multiple buffers now, so it doesn't make sense to
2256
                flush just one.)  -n was added to disable transfers from input
2257
                buffer to expect_match var.  I suspect it will only be used
2258
                for experimentation.
2259
 
2260
                Added expect -re for regular expressions.  Added expect_out
2261
                array to retain indices and strings of partial matches for
2262
        **      for both glob and re.  expect_match has been renamed
2263
                expect_out(buffer).
2264
 
2265
                A la Tcl, added -nocase for both types of patterns.  (Oddly,
2266
                Tcl's case only does it for regexps.)
2267
 
2268
                By popular demand, unanchored glob patterns.  Old patterns
2269
                will continue to work, since earlier interpretation was much
2270
                stricter.  Unfortunately, unanchored matches make certain user
2271
                errors easier.  For instance, people will send answers before
2272
                seeing all of the question.  Typically, output can 'look'
2273
                ugly, as answers land in the middle of other things.
2274
 
2275
                To anchor patterns, use ^ in beginning and/or $ at end.
2276
 
2277
                Added expect_out(spawn_id) to report which spawn_id was read.
2278
 
2279
                Made expect and variants understand all args as one arg.
2280
 
2281
                Added 'default' pattern.
2282
 
2283
                Added continue_expect command.
2284
 
2285
                Added expect_before, expect_after commands which take same
2286
                args as expect, but continue to stay in effect for all expects.
2287
 
2288
        **      Added match_max command, deleted it as a variable.  The old
2289
                way was too coarse for use over multiple spawn_ids.  With no
2290
                arg, returns current max.  Takes -i flag and -d for default.
2291
 
2292
                Added globbing to spawn command.
2293
 
2294
                Added optional -i spawn_id to wait.
2295
 
2296
                Added optional -i to send (and all its variants).
2297
 
2298
                Renamed trace to 'strace' since it conflicts with Tcl's new
2299
                trace command.  Since 'trace' traces variables, I figured
2300
                'strace' wasn't too bad (for "statement trace").  I felt
2301
                obliged to make it short and not as obliged to make it as
2302
                meaningful since it will probably invariably be typed by hand.
2303
 
2304
                Made timeout == -1 mean infinity.
2305
 
2306
                Made interact do pattern matching in both directions via
2307
                use of -o flag.
2308
 
2309
                Added -F flag for convenience.  If -f or -F used, interact
2310
                can no longer be overrun.  In particular, if more characters
2311
                arrive then match a pattern, remaining characters will be
2312
                buffered rather than thrown away (old behavior).
2313
 
2314
                Patterns may now be substrings of one another.
2315
 
2316
                Made interact optionally take all args as one.
2317
 
2318
                Default action is now 'interpreter' (see below).
2319
                interpreter now forces cooked mode, and echos results
2320
                so you don't have to constantly say "send_user [...]\n"
2321
 
2322
        *       Interact reads characters that have been buffered but not
2323
                matched by expect.  And vice versa.  Does anyone care?
2324
                (My rogue script did.)
2325
 
2326
                From discussion with John Conti, I decided to make
2327
                'interpreter' a separate command to start up interactive
2328
                command processor.  Changed default action in interact to this.
2329
                Added eval depth and event id to prompt to interpreter.
2330
 
2331
                Added expect_library which contains path for commonly
2332
                sourced expect scripts.  Automatically source expect.rc
2333
                out of expect_library unless -N given.  Automatically source
2334
                ~/.expect.rc unless -n given.
2335
 
2336
                Added expect_version command to print and/or verify script
2337
                is compatible with running expect.  Tcl version is also tested.
2338
                Felt it was worth making this a command because it's such a
2339
                pain to tear apart version strings.
2340
 
2341
                Tcl's close and exit are both subsumed by expect's commands
2342
                of the same name.
2343
 
2344
                Rewrote mode switching code so that "system stty" is handled
2345
                specially.  This allows interact and interpret to get the modes
2346
                they want, without burning the user.  It is now much easier
2347
                to leave expect in raw mode all the time, but the choice is
2348
                up to the user.
2349
 
2350
                Added vgrindefs, courtesy of Brian Fitzgerald.
2351
 
2352
9/23/91         Tcl 6.0 released.  This new Tcl has some incompatibilities
2353
                with the old Tcl, so as long as everyone is changing their
2354
                scripts already, I'm taking the opportunity to make some
2355
                incompatible changes to Expect that I've wanted to do for a
2356
                long time.
2357
 
2358
9/11/91 2.67    Ed Klein  added support for SVR4 in the
2359
                form of pty_svr4.c and mods to command.c.
2360
 
2361
                Added explanation to man page of how to create unreadable but
2362
                executable scripts.  (No, chmod 111 doesn't work.)
2363
 
2364
                Mark Diekhans  pointed out to me that there
2365
                is a potential problem with the trap command:
2366
 
2367
                "There is no control over when the signal will cause Tcl_Eval
2368
                to be executed.  There is a chance that code in the Tcl library
2369
                will be executing when the signal comes in and the interpreter
2370
                data structure will be in an inconsistent state.  This could
2371
                cause all sorts of nasty things to happen.  In our Extended Tcl
2372
                (4.0) we added signal handling. but the way we implemented it
2373
                was to have the signal handler set a global flag.  We modified
2374
                Tcl_Eval to check the flag after it finishs executing each
2375
                command.  If the signal came in, Tcl_Eval then returns an error
2376
                such as: "SIGINT signal received".  Signals may then be caught
2377
                with the catch command and processed."
2378
 
2379
9/10/91 2.66    Don Jackson  found a syntax error in
2380
                the usage error message of the example ftp-rfc script.
2381
 
2382
                Marty Olevitch  provided mods to
2383
                support MORE/bsd.  Namely, added #include types.h to expect.c
2384
                and extern int errno to a number of files.
2385
 
2386
                Scott Hess  noted a potential problem in
2387
                interact.  Since interact only checks patterns at beginning
2388
                of reads, user can conceivably type fast enough so that
2389
                patterns are typed in the middle of a read.  In reality this
2390
                doesn't happen, but Scott was driving one expect with another
2391
                expect and in this way provoked the behavior.
2392
 
2393
                The solution is to read chars one at a time, either by
2394
                read(,,1) or buffering in a stdio-like way, but I'm not going
2395
                to do that because the code should really be rewritten entirely
2396
                and it just isn't worth it, since it is so easy to get around
2397
                at the user level.
2398
 
2399
                Steve Legowik found that spawn-disconnect sequences fail.  The
2400
                pty testing I added in version 2.55 causes expect to regain the
2401
                slave as a controlling tty, which generated SIGHUPs.  If anyone
2402
                knows a clean way to avoid regain controlling ttys, let me
2403
                know.  For now, I just set SIGHUP to SIG_IGN in the disconnect
2404
                command.
2405
 
2406
8/14/91 2.65    Old passmass script changed root password.  I renamed it to
2407
                passmass.old, and made a new one which works for any account.
2408
                It also supports yppasswd, telnet/rlogin, different names for
2409
                accounts on different machines.  Handles VMS machines, too.
2410
 
2411
                Added Computing Systems paper to expect distribution and moved
2412
                all expect-related things to separate expect directory in our
2413
                ftp directory.
2414
 
2415
8/5/91  2.64    Achille Petrilli  found that on an SGI,
2416
                the expect command ocassionally returned "no more processes".
2417
                He traced the problem back to O_NDELAY in the open, which was
2418
                taken as-is from the man page, by someone else who's code I
2419
                didn't look at too closely at the time.  The result works now.
2420
                Oddly I thought I fixed this error myself when the SGI support
2421
                was first installed, but I cannot find it.  I evidentally
2422
                screwed up.
2423
 
2424
7/31/91 2.63    Steve Legowik  wanted to implement
2425
                callback by having a modem dial out and NOT go away, but
2426
                interact in the reverse direction.  I added "interact -u" to
2427
                support the idea of changing the user from the default stdio
2428
                to a second spawned process.  The result is that we can now
2429
                write a modem callback program that doesn't depend on the cute
2430
                trick of having getty recognize DTR which only worked when the
2431
                modem was directly connected to the computer.  In Steve's case,
2432
                there were several network switches in the way.
2433
 
2434
                Added "overlay" function which is similar to plain "exec" in
2435
                shell.  (Too bad Tcl took the name already.)
2436
 
2437
                Added robohunt scripts to the test directory.  I wrote these
2438
                back in January, '91 and forgot about them til now.  But I
2439
                suppose they are illustrative (at the very least of how to
2440
                generate truly random numbers).  Ha.
2441
 
2442
7/20/91 2.62    Carl Witty  pointed out my fdset
2443
                implementation (for systems that don't have it) wasted some
2444
                space.  I had commented it correctly, however, making the
2445
                incorrect code obvious (except to me).
2446
 
2447
                Robert Howland  pointed out that
2448
                expect complained about not running from a real terminal under
2449
                cron.  Oops!  So I added a test to skip saving/restoring
2450
                terminal modes when fd 0 is not a tty, since this is obviously
2451
                pointless.
2452
 
2453
7/19/91 2.61    Oops.  Forgot to include getline and getline.exp examples even
2454
                though they have been documented!
2455
 
2456
7/17/91 2.60    UMich changed interface to weather system necessitating change
2457
                to weather script.
2458
 
2459
7/9/91  2.59    Didn't correctly comment things right in Makefile.  Fixed.
2460
 
2461
                Changed 'close' in gethostbyaddr example to 'catch close'.
2462
 
2463
6/22/91 2.58    Made new file (pty_sgi.c) for supporting Silicon Graphics ptys.
2464
                Silicon Graphics select fails to see eof immediately but poll
2465
                works ok.  Unfortunately, there was an error in inter_poll
2466
                (bad_io was uninitialized).  Silicon Graphics works now.
2467
 
2468
                Andy Norman  notes that linking expect
2469
                with the BSD compatibility library under HP-UX, libc.a must
2470
                be loaded before libBSD.a.  Modified Makefile to reflect this.
2471
                He notes that there is a problem with expect not reading an EOF
2472
                from the current process.  This should go away with HP-UX 8.0
2473
                when select has been enhanced to flag exceptions in the readfds
2474
                argument.  Probably inter_poll would work.
2475
 
2476
                Edward Haines  notes that close returns EPERM
2477
                ("Not owner") on his Sun 4.0.3.  This is rather startling!
2478
                (That's what I get for checking the return value of close!)
2479
                He said it is possible that they have modified things (viz.
2480
                DDN X.25 is loaded), but it still sounds incredible.  For now,
2481
                I told him to either "catch" all closes or to remove the check
2482
                in the source code.
2483
 
2484
                Added example scripts: ftp-rfc retrieves an RFC from uunet
2485
                via ftp.  archie mails back a listing from the archie server.
2486
 
2487
                Add the rest of Hal Peterson's changes for Cray support, 1)
2488
                fixing a problem where spawned processes flushed unread I/O
2489
                upon process exit, and 2) creating processes with the correct
2490
                uid.  See his comments in command.c for more info.
2491
 
2492
6/6/91  2.57    (On Cray) made signal handler declarations right.  Added
2493
                missing #endif.  Added includes to pty_unicos.c.  Fixed bug
2494
                in two bugs in CmdSend, one involving send_stderr, the other
2495
                send_user.  All of these are from Hal Peterson.
2496
 
2497
                Added gethostbyaddr as example script.  Given an internet
2498
                address, it returns the domain name.  By querying neighboring
2499
                hosts if the name server fails, a much higher probability of
2500
                returning the name is obtained.
2501
 
2502
5/30/91 2.56    Mispelled "match_max" as "max_match" in rftp script.  This
2503
                caused files after the 2000 byte mark (per directory) to be
2504
                skipped.
2505
 
2506
5/21/91 2.55    Revisited BSD pty code to reject ptys that have either slave or
2507
                master side already open.  This fixes problems rare problems
2508
                such as expect not being able to see EOFs from the child proc.
2509
                (because another process still has the pty slave side open).
2510
                USG and Cray pty code could probably use this code, too.
2511
 
2512
                Fixed bug in expect library (lib_exp.c) which caused output to
2513
                be copied to stderr instead of logfile when logfile_all was
2514
                set.  Per Sreedhar Muppala .
2515
 
2516
5/16/91 2.54    Fixed weather script to accomodate occasional Weather Watch
2517
                that would cause an unexpected initial question to pop up.
2518
 
2519
5/15/91 2.53    Added comment to BUG section of man page describing pty
2520
                misbehavior with non-interactive programs (search for "553061"
2521
                below), as per Hal Peterson .
2522
 
2523
                Removed note from README about asking Ousterhout for SV TCL
2524
                at his request.
2525
 
2526
5/11/91 2.52    Fixed a syntax error that Bruce Larson 
2527
                found in inter_poll.c
2528
 
2529
4/23/91         Computing Systems accepted paper on Expect for issue 4.2.
2530
 
2531
4/18/91 2.51    Added some example scripts:
2532
                weather - retrieves weather forecasts from National Weather
2533
                Service via University of Michigan server.
2534
                rftp - ftp a directory hierarchy (i.e., recursively).
2535
 
2536
4/18/91 2.50    Changed timeout to apply to total time in expect rather than
2537
                per read().  Original behavior hung forever when my modem test
2538
                script started listening to a modem than spit out 1 spurious
2539
                character every 10 seconds (very consistently).
2540
 
2541
                Hal Peterson  noted that exp_spawnv's args
2542
                didn't match documentation.  Fixed in favor of documentation.
2543
                Several other funcs don't match header file (but typechecking
2544
                is avoided during compilation), because it was too hard for me
2545
                to make the header file ANSI compliant and support varargs
2546
                (which is undeniably more portable than stdargs at this point).
2547
                Fixed prototype declarations (again) in expect.h for C++ and
2548
                Standard C.  Verified with GNU, G++ and Sun C (proto-less).
2549
 
2550
                Added exp_disconnect to library.  Moved alarm calls closer
2551
                to read() to tighten windows.
2552
 
2553
4/11/91 2.49    Changed passmass script to use timeout of 1000000 instead of
2554
                10000000000 after discovering that Ultrix sleep(3) doesn't
2555
                sleep at all for large values!
2556
 
2557
                Added support for systems without dup2 (SVR2) per
2558
                .
2559
 
2560
                Added test/Makefile to shar as per Chris Pribe
2561
                .
2562
 
2563
4/4/91  2.48    Fixed possible problem with poll in inter_poll.c for systems
2564
                that check for a valid address even though no members are used.
2565
 
2566
3/27/91 2.47    Added support for Cray Unicos 6.0, which of course is different
2567
                from Unicos 5.1 (which was different from everything else)!
2568
                This and other minor bugs fixed courtesy of Pete Termaat.
2569
 
2570
3/19/91 2.46    Removed a "feature" which caused patterns with no whitespace
2571
                not to be run through SplitList.  While not documented not to
2572
                do so, this was mystifying even to me when I saw it.  For
2573
                William Waite.  The result actually simplified the internal
2574
                handling of multiple patterns, removing some excessively
2575
                complex logic that I thought would be helpful for speed, but
2576
                that in retrospect, was not that important.
2577
 
2578
3/16/91 2.45    Added my own definition of FD_SET, fd_set, etc, test for
2579
                SIGABRT, and support different types of signal arg func
2580
                definitions to support SunOS 3.5 as requested by William Waite
2581
                .
2582
 
2583
3/14/91 2.44    Removed redundant def'n of pty_stty in pty_usg.c, redef of
2584
                sprintf and added signal.h to command.c to make compiles
2585
                cleaner on SV3 and HPUX machines.  All compliments of Mike
2586
                Gourlay.
2587
 
2588
3/10/91 2.43    Added -s (for slow) and -h (for human) flags to send.  This
2589
                had been requested by several people including Frank Terhaar-
2590
                Yonkers (who actually wrote and tested a "send_slow" command),
2591
                and Steve Simmons who suggested the "human" option (over a year
2592
                ago), and Brian Woodson (brianw@swqa-sun.ESD.3com.com), who
2593
                requested both!  Thanks to NIST statistician, Keith Eberhardt,
2594
                who taught me about the Weibull Distribution.
2595
 
2596
                According to Jim Thomas , 3b2 requires
2597
                defines for R_OK and W_OK.  Added to pty_usg.c.
2598
 
2599
                Added support for "-" as file name on command line to mean
2600
                stdin as requested by Steve Clark .
2601
 
2602
                Wrote passmass (change root password on a set of machines) as
2603
                requested by Ken Manheimer .  Added to test
2604
                directory.
2605
 
2606
2/21/91 2.42    Removed reinstallation of signal 0 in signal handler.
2607
 
2608
                Added hook for setting initial pty parameters when started in
2609
                the background.  Should've done this a long time ago, but I
2610
                was never really happy with my solution and had hoped I would
2611
                think of a nicer method.  I only hope this is clean enough.
2612
 
2613
2/10/91 2.41    Added buffer_full keyword to solve Brian Fitzgerald's problem.
2614
                It disables "forgetfullness" so that when expect's internal
2615
                buffer hits match_max, whatever it has returns at that point.
2616
                Didn't add this to the library version, because I want to think
2617
                for awhile about the cleanest way to do it.
2618
 
2619
2/4/91  2.40    Per Brian Fitzgerald (fitz@mml0.meche.rpi.edu), fixed error in
2620
                interact example on man page which incorrectly implied that
2621
                "kill" was built-in.
2622
 
2623
                Added fork/disconnect functions.  This solved the problem of
2624
                Jerry Friesen (jafries@snll-arpagw.llnl.gov) who wanted to run
2625
                an expect script that asks for a password and then goes to
2626
                sleep for awhile before waking up to run in the background (to
2627
                run a program using Kerberos).
2628
 
2629
1/30/91 2.39    Per Jim Johnson (jaj@mlb.semi.harris.com), added declaration
2630
                and documentation for exp_pid in libexpect.
2631
 
2632
1/10/91 2.38    More mods from Frank Terhaar-Yonkers.  Also, some requests
2633
                from Pete TerMaat (pete@willow.cray.com) for features:
2634
 
2635
                1) a single-step facility.  Yeah, that would be nice.  No
2636
                ideas on how to do this easily.
2637
 
2638
                2) Generate scripts automatically after watching a session.
2639
                This is hard.  Read more about this in the FAQ.
2640
 
2641
1/10/91 2.37    Added support for Cray Unicos 5.1, all courtesy of Frank
2642
                Terhaar-Yonkers (fty@sunvis.rtpnc.epa.gov).  Most of it had to
2643
                do with pty support.
2644
 
2645
1/8/91  2.36    Modified expect.h to support C++ and ANSI prototypes.  Added
2646
                appropriate example in test directory based on chesslib.c.
2647
 
2648
1/7/91  2.35    At the request of Jan Norden (jano@imdpy1.im.se) added
2649
                NO_MEMCPY and NO_STRING_H defines for Pyramid.
2650
 
2651
1/3/91  2.34    Added a check to protect against a longjmp occurring between
2652
                i_read and alarm(0).  Didn't think this would be a problem but
2653
                evidentally a function return modifies the stack, so it cannot
2654
                be returned to again.  Drat!  This appeared in the robohunt
2655
                script I wrote which plays hunt automatically and uses 1
2656
                second timeouts.
2657
 
2658
12/19/90 2.33   Add signal to sighandler, to reinstall signal for those systems
2659
                that need it.
2660
 
2661
12/12/90 2.32   Removed test for args to expect.  I only recently realized that
2662
                no args still allows a valid way to check for timeout and eof!
2663
 
2664
12/6/90 2.30-1  Mike Gourlay (mike@penguin.gatech.edu) found and fixed quite a
2665
                few SV-related problems that I had introduced since Clem's
2666
                fixes.  We eventually got it to run on his HPUX machine, a
2667
                mixed breed of BSD/USG stuff.  But spawning a shell worked but
2668
                always produced a complaint about "no access to tty" which we
2669
                were never able to get rid of, and he had a problem with
2670
                exp_fexpect (but not exp_expect), although it still isn't clear
2671
                if that was expect's fault.  He said he would speak to some HP
2672
                engineers about what he found.
2673
 
2674
12/5/90 2.29    Fixed a malloc off-by-one bug in new C library.  After
2675
                contemplation, revised interfaces.  Decided that rather than
2676
                following the original 'expect' style, it should be more like
2677
                what a C programmer is used to, so I made the file descriptors
2678
                be parameters to exp_expect rather than globals, added an
2679
                exp_popen which is a popen equivalent, and added exp_fexpect
2680
                versions which are stream equivalents.
2681
 
2682
                Am not happy with exp_fexpect.  It is much less efficient than
2683
                exp_expect, because there is no way to (portably) get fread()
2684
                to return the way read() does, with less then the number of
2685
                characters you supplied a buffer for.  Instead, I have to call
2686
                fgetc for every char.  Ugh.
2687
 
2688
                Add a couple new examples, including lpunlock, time.exp,
2689
                chesslib.c (using file descriptors) and chesslib2.c (which uses
2690
                stream pointers).
2691
 
2692
12/3/90 2.28    Created C library version of expect.
2693
 
2694
11/29/90 2.27   Fixed bug in interact - when no string actions were defined,
2695
                the mapping table length wasn't set at all.
2696
 
2697
                Made interact call printify when debugging so that crlf and
2698
                other nonprintables are visible.  Fixed bug in printify which
2699
                interpreted some characters wrong due to parity.
2700
 
2701
                Added some more examples to the distribution (lpunlock, dvorak,
2702
                timed_read) and put in another tip in the TCL HINTS section of
2703
                the man page.
2704
 
2705
11/18/90 2.26   Fixed mismatched comment per Craig Warren (ccw@deakin.oz.au).
2706
                Also improved man page entry for "interact".
2707
 
2708
11/17/90 2.25   Added -f (fast) on interact options, and made default case a
2709
                little more efficient.  Added explicit support for SIG_IGN and
2710
                SIG_DFL in trap command.  Added ability to specify signals
2711
                symbolically for portability.
2712
 
2713
11/15/90 2.24   Craig Warren (ccw@deakin.oz.au) wanted to exit expect while in
2714
                interact with a single character.  Dan Bernstein
2715
                (brnstnd@kramden.acf.nyu.edu) wanted to suspend with a single
2716
                character.  So I generalized interact's escape character to
2717
                string-action pairs.
2718
 
2719
11/7/90 2.23    Tired of getting reports that various (Ultrix 3.1, BSD4.3) C
2720
                compilers can't handle ternary conditionals returning ptr to
2721
                func returning void.  Made all (2) such statements into
2722
                if-then-elses.  Per Steve Simmons (scs@iti.org).
2723
 
2724
10/8/90 2.22    Allow "log_file" even when no log is open.  This makes user
2725
                programming a little simpler - they don't have to remember
2726
                whether they opened the log or not.
2727
 
2728
9/27/90 2.21    Fixed bug, v2.19 introduced.  debuglog(unknown string) requires
2729
                a "%s" as formatting for protection against %'s in the unknown
2730
                string.
2731
 
2732
9/17/90 2.20    4 syntax errors in interact_poll.c, vik@sequent.com.  Added
2733
                quotes to all the sends (now that this is more efficient) in
2734
                the examples and man pages.  Also removed a misstatement in the
2735
                man page about the behavior of double quotes.
2736
 
2737
9/15/90 2.19    Removed buffering from send command.  Originally, I buffered
2738
                the args, so I could do it all in one write.  But to send
2739
                variables bigger than the buffer didn't work.  I didn't think
2740
                about this before.  But Joe Gorman
2741
                (Joe.Gorman@elab-runit.sintef.no) asked me if you could "send"
2742
                a file in one command, and of course you can using [exec cat]
2743
                as the argument to send, but the damn buffering prevented big
2744
                files from being sent.  Anyway, now it works.
2745
 
2746
9/14/90         Fixed the declarations of nflog and nferrlog.  Added a #define
2747
                so lack of pid_t could be controlled from the Makefile.  Per
2748
                Andy Holyer (and@ux.rfhsm.lon.ac.uk)
2749
 
2750
9/4/90  2.18    Added trap command to catch signals.  This is nice as (among
2751
                other things) it allows you to turn off the conversion of ^C to
2752
                timeout which was requested by John Conti .
2753
 
2754
8/21/90 2.17    Fixed bug in printify.  Forgot to reset ptr to beginning of
2755
                print buffer.  Made debugging info wrong.  Possibly screwing up
2756
                other things on overflow.
2757
 
2758
                Paper accepted into USENIX LISA!
2759
 
2760
8/15/90         Cleaned up man page.  Made tabs line things up correctly,
2761
                finally.
2762
 
2763
                Found another problem with ptys (at least under SunOS 4.1 and
2764
                earlier).  When last pty-slave fd closed, any unread output is
2765
                lost after a short window of time (around 10 seconds on a
2766
                Sun 3/60).  Sent example ptybug.c to Sun demonstrating this and
2767
                EIO problem found earlier.  (Service Order #553061)
2768
 
2769
8/6/90  2.16    Added -f to debug command, -a to log_file command.  This
2770
                required significant changes, including revisiting all the
2771
                logging routines, plus miscellaneous output done in special
2772
                places.  Noted that it cannot be done with getopt, since it
2773
                could be called during main's getopt, and getopt is not
2774
                reentrant!  (Guess how I discovered this!!)
2775
 
2776
                I'm not particularly happy with the design, but maybe others
2777
                won't be.  In any case, I like the benefit of it and am now
2778
                glad that -a was asked for.  Per Harry Bochner and Ira Fuchs
2779
                (fuchs@pucc.bitnet).
2780
 
2781
                Changed behavior of argv, so that 0 == [length $argv] when no
2782
                script/args supplied.
2783
 
2784
8/4/90  2.15    Added debug command, so -d-ness could be changed while expect
2785
                is running.
2786
 
2787
7/20/90 2.14    Fixed small bug in -d output from expect, which printed ^Z as
2788
                ^:
2789
 
2790
7/18/90 2.13    Added wait command.  A waitpid/waitspawnid would be nice and
2791
                cleaner, too, but since csh doesn't need it, it is probably not
2792
                worth much.
2793
 
2794
                Consequently, removed SIGCHLD handling from command.c.  It
2795
                worked under SV but not BSD.  By forcing users to explicitly
2796
                code waits, resulting scripts are more portable.
2797
 
2798
                Rewrote rogue example.  rogue sometimes misses EOF (generated
2799
                by close on our side) and continues reading.
2800
 
2801
7/16/90 2.12    Removed buffering from variadic log routines.  This was
2802
                faulting when the buffers overflowed.
2803
 
2804
                Cleaned up the -d output from expect, so it is much more
2805
                readable.  For example, control characters are now visible.
2806
 
2807
7/14/90 2.11    Added declaration for errno, to support 4.3BSD.  Per Alan
2808
                Crosswell.  Added -i flag and related behavior.
2809
 
2810
7/12/90 2.10    Fixed bug where timeout = 0 waited forever rather than not
2811
                waiting at all.
2812
 
2813
7/11/90         Fixed man page example which didn't include the blank on the
2814
                end of an ftp prompt.
2815
 
2816
7/9/90  2.9     Fixed bug in send when spawn_id = $user_spawn_id.
2817
 
2818
6/27/90 2.8     Integrated some mods from clem cole (clemc@ccc.com) to support
2819
                System V.3 (386/ix Version 2.02).  Unfortunately, he didn't do
2820
                "select".
2821
 
2822
6/25/90 2.7     Test that cmdfile and logfile are open before fclosing in child
2823
                while spawning.  Per Corey Satten 
2824
 
2825
6/24/90 2.6     Pty master returns EIO instead of EOF when pty slave closes.
2826
                Bug in pty driver?  Until I figure this out, I have put in code
2827
                to interpret EIO to EOF.
2828
 
2829
6/21/90         Added new section to expect man page - Tcl hints.
2830
 
2831
6/14/90         Spoke at USENIX.  Went well.  Added USENIX paper as separate
2832
                ftp archive.
2833
 
2834
6/4/90  2.5     Fixed bug in ^C catching during expect.  Changed man page to
2835
                accurately describe what ^C does.  Fixed bug that caused "send"
2836
                to screw up when handed 0 arguments.  All per Harry Bochner.
2837
 
2838
6/1/90  2.4     Made trailing empty action in expect optional, primarily to
2839
                make straightline code easier to read.
2840
 
2841
5/15/90 2.3     Changed expect to strip nulls from program output since there
2842
                is no way for Tcl to handle them, per Harry Bochner.
2843
 
2844
5/5/90          Added "send_error" command.
2845
 
2846
4/26/90         Got USENIX paper back from Kolstad to proof.  Am depressed at
2847
                how awfully they formatted it.
2848
 
2849
4/25/90 2.2     Eric Newton found that expect's special variables weren't being
2850
                found inside of user subroutines.  Had to do with new Tcl,
2851
                which now differentiates between variables that are undefined
2852
                vs. empty.
2853
 
2854
4/24/90         Upgraded Tcl from 2.1 to 3.3.
2855
 
2856
4/22/90         Added special behaviors of ^C in expect, and when profiling.
2857
                Profiled rogue (at urging of Ousterhout).
2858
 
2859
4/10/90 2.1     Added select command.  Added support for user_spawn_id so that
2860
                you could treat user just like another process (i.e. with send
2861
                and expect).  Decided to leave send_user/expect, since scripts
2862
                are more readable with them.
2863
 
2864
4/2/90  2.0     Changed syntax of expect to provide alternatives (a la Tcl
2865
                case), per suggestion of John Ousterhout.  Note that this
2866
                breaks pre-2.0 scripts.
2867
 
2868
3/31/90         Got great comments from Ousterhout.  (This time he said that he
2869
                really liked the idea.  Maybe he realizes how much it will
2870
                promote Tcl!)
2871
 
2872
3/30/90         Got comments from dpk.  Made me think more about Perl.
2873
 
2874
3/28/90         Evi said I should turn the paper in unformatted and they will
2875
                format it.  (She's kidding, I hope.)
2876
 
2877
3/27/90 1.8     Rewrote interface so that raw arguments can be passed in like a
2878
                shell.  I'd been thinking about this for some time, but Eric
2879
                Newton finally prodded me into action.
2880
 
2881
3/25/90         Got first corrections for paper - from Sue Mulroney!
2882
 
2883
3/24/90         Observed that it is possible to use the #! syntax with expect.
2884
                I asked John O. about this (his choice of # as a comment
2885
                character), and he said it was pure coincidence.  Deprecated
2886
                request to end scripts in ".exp".
2887
 
2888
                Ted Hopp volunteered to be my Center WERB reader.
2889
 
2890
3/23/90         Finished 1st draft of USENIX paper and sent copies to John
2891
                Ousterhout and panel chair, dpk@morgan.com.
2892
 
2893
3/20/90 1.7     Deprecated "stty", and added more general "system" command.
2894
 
2895
                Sent Evi some complaints about the business of not allowing
2896
                camera-ready at USENIX.
2897
 
2898
3/17/90         Sent copies of man page to Doug Gwyn and Larry Wall for
2899
                comments.  Note that gwyn downloaded it.
2900
 
2901
3/16/90         Am really irritated by USENIX.  My paper has been put in a
2902
                session against another session, the BSD people.  Furthermore,
2903
                they called my paper an application, when it is no more so than
2904
                any other shell or language.  Better I should be in "lessons
2905
                learned".  Mashey said take a hike, i.e., it was too late to
2906
                change the schedule.  On top of that, our session has four
2907
                people in it, so I'll have very little time to speak.  Grrrr.
2908
 
2909
3/13/90 1.6     Added "stty", because without it you can't do things like
2910
                turning off echo to accept a password.
2911
 
2912
3/8/90  1.5     Abstract was accepted into USENIX!!!!  Time to start writing
2913
                it!  Sent man page to Ousterhout.  He didn't seem too
2914
                impressed.
2915
 
2916
                Added "send_user/expect_user" after listening to Ken complain
2917
                about how shell could not do timed reads.  Actually it can, but
2918
                expect does it much more naturally.  Deprecated echo.  Now, I
2919
                realize that expect can be viewed as a shell!
2920
 
2921
                Changed logfile/loguser to log_file/log_user to match all the
2922
                variables with underscores in them.
2923
 
2924
                Barry Warsaw asked if there was any way one could execute any
2925
                command from interact (apparently without any reason in mind).
2926
                Nonetheless, it is a wonderful idea, and I changed the "abort
2927
                character" in interact to an "escape mechanism".  After
2928
                escaping, you may execute any command.  return duplicates the
2929
                old action of the abort character.  Now you can do interactive
2930
                job control, recursive interacts, etc.  You can bet I didn't
2931
                get this right the first time!
2932
 
2933
                At Scott's request, fixed bug related to pty initializing.
2934
                Scott was putting expect in the background which disassociated
2935
                it from a tty, and I was blindly copying the tty parameters
2936
                without checking to see if they were meaningful or not.
2937
 
2938
                Tightened up exit code.  Fixed bug in spawn so it would print
2939
                error messages when it failed.  Spawn sends back the error
2940
                message in the pty, if the fork succeeds but exec fails.  Cute!
2941
 
2942
                Added "close" command.  Makes scripts much shorter and cleaner.
2943
 
2944
                Return string matched by expect directly, rather than setting a
2945
                special variable.
2946
 
2947
                Added "match_max" feature.  Probably no one will ever use it.
2948
 
2949
                Added trace command.
2950
 
2951
3/6/90  1.4     Rob Densock was the second user, and suggested (demanded?) the
2952
                idea of the loguser command.  I added it and changed "log" to
2953
                "logfile" making the first incompatibility with existing
2954
                scripts (sorry, Steve).
2955
 
2956
3/1/90  1.3     Trying to make pty code more robust.  Many questions unanswered
2957
                by manuals.  Did a lot of guessing.  While debugging, looked
2958
                through pty code in gnuemacs to see if I might increase
2959
                portability somehow.  I almost barfed when I saw all the funky
2960
                ifdefs on weird ioctls.  Found lots of comments like "this
2961
                might work".
2962
 
2963
2/28/90         Sent a short Tcl bug list to John Ousterhout.  He thanked me!
2964
 
2965
2/22-3/90 1.2   Hooked my first user, Steve Ray.  Surprisingly, he only found
2966
                one bug in the code (exit didn't handle args correctly), but it
2967
                was obvious that I need to put more explanation in the man
2968
                page.  Many of the examples in the man page are based upon his
2969
                probl..  questions.  Thanks, Steve!
2970
 
2971
2/20/90         Posted news about expect to "general" newsgroup locally.
2972
 
2973
2/15-20/90      Talked to local POSIX reps and then to Steve Albert (AT&T)
2974
                about portability of select, wait and other system calls.  I'm
2975
                not impressed by 1003.1.
2976
 
2977
2/9/90          John Ousterhout answered some questions I had about Tcl syntax.
2978
                I like this language!
2979
 
2980
2/8/90  1.1     Sandy Ressler suggested the idea of being able to spawn
2981
                multiple programs at the same time although he didn't say how.
2982
 
2983
                It took about a day to design and code the spawn_id hook.
2984
                Extremely difficult to support this with uucp-style kludge.
2985
                Switched to using select.  So much for portability.
2986
 
2987
                I investigated how to do this portably, and spent some time
2988
                talking to NIST & AT&T POSIX representatives.  Unfortunately,
2989
                portability (especially when it comes to select()) remains a
2990
                dream.  Provided multiple versions of "interact" depending upon
2991
                what OS you are running.
2992
 
2993
2/7/90  1.0     Completed first cut of "sex" (for "Smart EXec" or
2994
                "Send/EXpect").  Supports send, expect, echo, log, spawn,
2995
                interact.
2996
 
2997
                Spent a lot of time making "log" write to log in just the right
2998
                order (across fork and while debug flag enabled).  Ended up
2999
                writing a bunch of variadic log routines.
3000
 
3001
                Fooled around with uucp-style multiple processes versus one
3002
                process doing select() to read asynchronously.  Using
3003
                uucp-style for now, since it is more portable.
3004
 
3005
                Gave up on pipes, and switched to ptys.  Pipes seem to be
3006
                messed up by ftp, perhaps because it goes into raw mode?  Ptys
3007
                are more efficient and cleaner to program albeit less
3008
                well-documented and portable from system to system.
3009
 
3010
                Ken Manheimer helped me explain what the program does.  I kept
3011
                saying it does "send/expect" processing, and he kept insisting
3012
                that was meaningless to everyone.  (In fact, it comes from
3013
                uucp, and I guess uucp hackers are indeed a dying breed.)  Ken
3014
                gave me an elegant enough sentence that I expanded it into an
3015
                abstract and sent it in to the USENIX conference the following
3016
                day (two days after the deadline).
3017
 
3018
                I noted that the uucp documentation I referenced in the
3019
                submission is dated October 31, 1978!
3020
 
3021
1/30/90 0.0     Got a copy of Tcl and went to work.  Tcl was exactly what I
3022
                need.  Plus, it is easy to use, AND it is documented.
3023
 
3024
1/25/90         Attended Winter 1990 USENIX in DC, with the goal of banging
3025
                heads with some other gurus in hopes of finding a good
3026
                send/expect language for a generalized stelnet.  Had looked at
3027
                uucp and kermit but found nothing general enough.
3028
 
3029
                Listened to John Ousterhout's presentation on Tcl.  By the
3030
                middle of the talk, I had found religion.  At the end when he
3031
                said it was public-domain, I was ready to orgasm.
3032
 
3033
*/*/88-89       Spent a lot of time telling Scott how useful his program could
3034
                be if he made it more general.  I thought it wouldn't be that
3035
                difficult to make more generic.  Scott was interested but not
3036
                enough to do it.
3037
 
3038
9/25/87         Helped Scott Paisley write a program called stelnet, that
3039
                forked a telnet and did very simple send/expect processing.
3040
                It used pipes, not ptys.  It had no pattern matching, and only
3041
                straight-line control without error handling.  Nonetheless,
3042
                this got me to thinking about making stelnet more generic.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.