OSDN Git Service

gdb/
[pf3gnuchains/pf3gnuchains3x.git] / tcl / ChangeLog.2000
1 2000-12-14  Don Porter  <dgp@users.sourceforge.net>
2
3         * generic/tclExecute.c:
4         * tests/expr-old.test:  Re-wrote Tcl's [expr rand()] and
5         [expr srand($seed)] implementations, fixing a range error
6         on some 64-bit platforms.  Added tests that detect the bug.
7         The rewrite changes the seed -> sequence map on 64-bit
8         platforms, only for seed >= 2^31, a slight incompatibility.
9         [Bug 121072, Patch 102781]
10
11 2000-12-10  Don Porter  <dgp@users.sourceforge.net>
12
13         * library/init.tcl:
14         * library/msgcat/msgcat.tcl:
15         * library/msgcat/pkgIndex.tcl:
16         * library/opt/optparse.tcl:
17         * library/opt/pkgIndex.tcl: Where [uplevel] is used in a proc
18         to evaluate a Tcl built-in command in the caller's context,
19         the built-in commands are now fully namespace-qualified.  This
20         prevents problems when the caller context is in a namespace where
21         the built-in command name has been used by a command in the
22         namespace.  (For example, [::ns::set] might be called instead
23         of the intended [::set]).  [Bug #119422, Patch #102545]
24
25 2000-12-09  jeff hobbs  <jhobbs@interwoven.com>
26
27         * win/tclWinTime.c (CalibrationThread): added lint return value to
28         prevent compiler warning.  [Bug #125005]
29
30         * docs/scan.n:
31         * tests/scan.test:
32         * generic/tclScan.c (Tcl_ScanObjCmd): changed %o and %x to use
33         strtoul instead of strtol to correctly preserve scan<>format
34         conversion of large integers.  [Patch #102663, Bug #124600]
35
36         * generic/tclExecute.c (TclExecuteByteCode): Commited patch fixing
37         handling of {!<boolean>} in expressions. [Patch #102702]
38
39 2000-12-08  jeff hobbs  <jhobbs@interwoven.com>
40
41         * library/init.tcl: Added support for PATHEXT variable in
42         auto_execok, recognizing the proper set of executable extensions
43         on Windows.  [Patch #102719]
44
45 2000-12-08  Andreas Kupries  <a.kupries@westend.com>
46
47         * generic/tclEncoding.c (LoadTableEncoding): Changed dangerous
48           code to something less critical. This fixes bug 119417, part A
49           without affecting the speed when loading encodings.
50
51 2000-12-08  Donal K. Fellows  <fellowsd@cs.man.ac.uk>
52
53         * doc/open.n: Added xref to fconfigure and advice on the opening
54           of binary files.  Should help prevent a recurrence of bugs like
55           #124558
56
57 2000-12-07  jeff hobbs  <jhobbs@interwoven.com>
58
59         * generic/tcl.h: added note about need to updated
60         library/dde/pkgIndex.tcl with minor version increment.
61
62         * library/dde/pkgIndex.tcl: updated to use 84 version to reflect
63         the makefile.  Should probably be updated to use its real version
64         at some point. [Patch #102560, Bug #119421]
65
66 2000-12-06  eric melski  <ericm@ajubasolutions.com>
67
68         * generic/tcl.h (attemptckalloc): Fixed typo for #define of
69         attemptckalloc (was defined to Tcl_AttempDbCkalloc, should have
70         been Tcl_AttemptDbCkalloc). [Bug: 124384]
71
72         * generic/tclCkalloc.c: Added
73         TCL_MEM_DEBUG versions of Tcl_AttemptDbCkrealloc and
74         Tcl_AttemptDbCkalloc. [Bug: 124384].
75
76 2000-11-24  Donal K. Fellows  <fellowsd@cs.man.ac.uk>
77
78         * generic/tclExecute.c (TclExecuteByteCode): Logical negation "!"
79           can now handle string booleans, provided those values are placed
80           in variables.
81
82         * tests/expr.test (expr-13.17): Check that [expr {!$var}] can
83           negate the string-versions of booleans "yes", "false", etc.
84
85         * library/tcltest/tcltest.tcl (getMatchingFiles,
86           getMatchingDirectories):
87         * tools/man2html.tcl (doDir): 
88         * tools/man2help.tcl (doDir): 
89         * library/package.tcl (tclPkgUnknown,tclMacPkgSearch): 
90         * library/safe.tcl (AddSubDirs): [glob] uses -directory instead of
91           unsafe [file join] to fix Bug #123313
92
93         * generic/tclIndexObj.c:
94         * generic/tclTestObj.c (TestindexobjCmd): Changed internal
95           representation of index objects to fix Bug #119082; fix
96           shouldn't be visible to outside world...
97
98         * generic/tclTest.c (TestGetIndexFromObjStructObjCmd): 
99         * tests/indexObj.test: (indexObj-6.*) Added to test for presence
100           of Bug #119082.
101
102 2000-11-23  Donal K. Fellows  <fellowsd@cs.man.ac.uk>
103
104         * generic/tclCmdIL.c (Tcl_LsortObjCmd): Fixed memory leak from Bug
105           #119398
106
107         * library/init.tcl (unknown): Added specific level parameters to
108           all uplevel invokations to boost performance; didn't dare touch
109           the "namespace inscope" stuff though, since it looks sensitive
110           to me!  Should fix Bug #123217, though testing is tricky...
111
112 2000-11-21  Andreas Kupries  <a.kupries@westend.com>
113
114         * All of the changes below are described in TIP #7 ~ Specification
115           and result from the application of the patch contained
116           therein. Creator of the patch is Kevin Kenny
117           <kennykb@crd.ge.com>. The patch used here is actually a bit
118           different. Two MS specific constant values (format FOOui64) were
119           replaced with a more portable formatting of the values and an
120           additional cast to LONGLONG. My cross-compiling gcc was unable to
121           process the original form. The SF Id of the patch is 102459.
122
123         * tclWinTime.c: Add to the static data a set of variables that
124           manage the phase-locked techniques, including a
125           ''CRITICAL_SECTION'' to guard them so that multi-threaded code
126           is stable.
127
128         * tclWinTime.c: Modify ''TclpGetSeconds'' to call ''TclpGetTime''
129           and return the 'seconds' portion of the result.  This change is
130           necessary to make sure that the two times are consistent near
131           the rollover from one second to another.
132
133         * tclWinTime.c: Modify ''TclpGetClicks'' to use TclpGetTime to
134           determine the click count as a number of microseconds.
135
136         * tclWinTime.c: Modify ''TclpGetTime'' to return the time as
137           M*Q+B, where Q is the result of ''QueryPerformanceCounter'', and
138           M and B are variables maintained by the phase-locked loop to
139           keep the result as close as possible to the system clock.  The
140           ''TclpGetTime'' call will also launch the phase-lock management
141           in a separate thread the first time that it is invoked.  If the
142           performance counter is unavailable, or if its frequency is not
143           one of the two common 8254-compatible rates, then
144           ''TclpGetTime'' will return the result of ''ftime'' as it does
145           in Tcl 8.3.2.
146
147         * tclWinTime.c: Add the clock calibration procedure.  The
148           calibration is somewhat complex; to save space, the reader is
149           referred to the reference implementation for the details of how
150           the time base and frequency are maintained.
151
152         * tclWinNotify.c: Modify ''Tcl_Sleep'' to test that the process
153           has, in fact, slept for the requisite time by calling
154           ''TclpGetTime'' and comparing with the desired time.  Otherwise,
155           roundoff errors may cause the process to awaken early.
156
157         * tclWinTest.c: Add a ''testwinclock'' command.  This command
158           returns a four element list comprising the seconds and
159           microseconds portions of the system clock and the seconds and
160           microseconds portions of the Tcl clock.
161
162         * winTime.test: Add to the test suite a test that makes sure that
163           the Tcl clock stays within 1.1 ms of the system clock over the
164           duration of the test.
165
166 2000-11-21  Donal K. Fellows  <fellowsd@cs.man.ac.uk>
167
168         * doc/global.n: 
169         * doc/upvar.n: 
170         * doc/variable.n: Improved documentation to mention that variables
171           so created are listed in [info locals] and added a few more
172           cross-links between these commands.  Fixes bug #119387
173
174 2000-11-17  Donal K. Fellows  <fellowsd@cs.man.ac.uk>
175
176         * tests/safe.test: (safe-4.3):
177         * generic/tclVar.c (TclLookupVar): Changed again.  Now passes all
178           the tests, though one needed modifying since it required the
179           wrong answer.  (Why on earth do we have inline modification of
180           argument strings?  This sort of thing is horrendous to debug and
181           doesn't work well in a multithreaded environment!)  Fixes bug
182           119192.
183
184         * tests/var.test: (var-1.19) If my attempts to fix the problem
185           aren't right yet, my attempts to describe it look pretty good to
186           me...
187
188 2000-11-16  Andreas Kupries  <a.kupries@westend.com>
189
190         * win/tclWinPort.h (line 69): Changed reference to winsock2.h into
191           winsock.h. This was a leftover from a foray into using winsock
192           version 2 (History lesson from Scott Redman and Jeff
193           Hobbs). This code was no problem when compiling Tcl itself, but
194           could trip extensions. Fixes bug 122568.
195
196 2000-11-15  jeff hobbs  <jeff.hobbs@acm.org>
197
198         * unix/Makefile.in: removed bp.c references (hasn't existed in a
199           long time).  Corrected 'make dist' to make dist with unversioned
200           library directories (same as out of cvs), so make install works
201           correctly with either source tree.
202
203 2000-11-15  jeff hobbs  <jeff.hobbs@acm.org>
204
205         * generic/tclVar.c (TclLookupVar): reverted fix below as it broke
206           all other array unset error reporting.  Bug-119192 is still
207           open.
208
209 2000-11-15  Donal K. Fellows  <fellowsd@cs.man.ac.uk>
210
211         * generic/tclVar.c (TclLookupVar): Changed references to part2 to
212           use elName instead in various error message generating spots, so
213           as to fix Bug-119192.
214
215 2000-11-03  David Gravereaux  <davygrvy@ajubasolutions.com>
216
217         * win/.cvsignore: Removed 'configure' from the glob list now
218           that it's included.
219
220 2000-11-03  Jeff Hobbs  <hobbs@ajubasolutions.com>
221
222         8.4a2 RELEASE
223
224         * unix/Makefile.in (install-libraries, dist): 
225         * win/makefile.vc (install-libraries):
226         * win/Makefile.in (install-libraries): updated to install
227         unversioned library directories into versioned directories.
228
229         * tools/tcl.wse.in: updated for unversioning of library dirs
230
231         * unix/mkLinks: updated mkLinks with latest doc updates
232
233         * doc/Tcl_Main.3: added docs for Tcl_SetMainLoop
234
235         * generic/tclStubInit.c:
236         * generic/tclDecls.h:
237         * generic/tcl.decls: added Tcl_SetMainLoop proc that allows people
238         to set a main loop that will run for tclsh.
239         * generic/tcl.h: added Tcl_MainLoopProc typedef
240         * generic/tclMain.c (Tcl_SetMainLoop, StdinProc, Prompt): new
241         StdinProc and Prompt static procs and Tcl_SetMainLoop stubs proc.
242         The first two handle a fileevent based prompt (taken from
243         tkMain.c).  Tcl_SetMainLoop enables the interactive setting of a
244         main loop procedure.  This enables Tk to be a loadable package.
245
246 2000-11-02  David Gravereaux  <davygrvy@ajubasolutions.com>
247
248         * generic/tclEvent.c: tclLibraryPath Tcl_Obj didn't have a way
249         to share its data among threads.  This caused Tcl_Init() to
250         always fail in threads.  Added a way to pass the data around
251         with a global char*.  [BUG: 5301]
252
253 2000-11-02  Jeff Hobbs  <hobbs@ajubasolutions.com>
254
255         * unix/configure:
256         * unix/dltest/configure:
257         * win/configure:
258         * tools/configure: checked in configure scripts so people doing
259         CVS checkouts aren't required to have autoconf.  Changes to
260         configure.in in the future will require the corresponding
261         configure script to also be re-autoconf'ed and checked in.
262
263         * win/makefile.vc:
264         * win/tcl.m4: makefile fixes for Win64 support
265
266         * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): minor cast
267         changes.
268
269 2000-11-01  Jeff Hobbs  <hobbs@ajubasolutions.com>
270
271         * unix/tcl.m4: removed use of -lbsd and -ldl for AIX-5.
272
273         * tests/subst.test: added tests for non-zero return code handling
274         by subst.
275         * generic/tclParse.c (Tcl_EvalEx): corrected handling of non-zero,
276         non-error return code cases for subst. [BUG: 119829]
277
278         * generic/tclVar.c (TclVarTraceExists): Corrected excessive mem
279         use when info exists was called on a non-existent array element.
280         [BUG: 119213, 119336]
281
282 2000-10-30  David Gravereaux  <davygrvy@ajubasolutions.com>
283
284         * win/configure.in:
285         * win/Makefile.in:
286         * win/makefile.vc:
287         * win/tcl.rc:
288         * win/tclsh.rc: Added logic to derive filenames better in the resource
289         scripts based on compile options.
290
291 2000-10-30  Jeff Hobbs  <hobbs@ajubasolutions.com>
292
293         * unix/tclUnixInit.c: added default encoding map from
294         "ja_JP.eucJP" to "euc-jp". (takahashi)
295
296         * tests/clock.test: corrected clock-2.* test numbering
297
298         * unix/configure.in (SC_TCL_LINK_LIBS): removed code that was
299         commented out (it had been moved to tcl.m4's SC_TCL_LINK_LIBS
300         already).
301
302         * unix/tcl.m4: consolidated gettimeofday check for AIX.
303
304 2000-10-27  Jeff Hobbs  <hobbs@ajubasolutions.com>
305
306         * unix/configure.in:
307         * unix/tcl.m4: added support for AIX-5.
308
309         * generic/tclIO.c (Tcl_NotifyChannel): removed #ifdef around code
310         for old channel structures, placed preserve/release around statePtr
311         * generic/tclIO.c (CloseChannel): the statePtr for a channel was
312         not being freed when the last channel in a stack was freed,
313         causing a mem leak.
314
315         * unix/tclUnixChan.c: updated channel types to strict
316         TCL_CHANNEL_VERSION_2 style to avoid compiler warnings.  They work
317         either way, but this avoids compiler warnings (that worries people).
318
319 2000-10-27  Jennifer Hom  <jenn@ajubasolutions.com>
320
321         * library/tcltest1.0/tcltest.tcl: Removed a cd into the test
322         directory in runAllTests that screwed up the temporary directory
323         setting, effectively preventing users from running tests on
324         multiple platforms at the same time.
325
326 2000-10-26  David Gravereaux <davygrvy@ajubasolutions.com>
327
328         * win/tclWinFile.c (TclpMatchFilesTypes): NULL was being set to
329         "attr" which was a DWORD.  Changed NULL to zero because a 'void *'
330         can't be set to a DWORD to avoid the compiler warning.
331
332 2000-10-24  Jennifer Hom  <jenn@ajubasolutions.com>
333
334         * tests/all.tcl: Removed support for tcltest 1.0.
335         
336         * tests/tcltest.test:
337         * library/tcltest1.0/tcltest.tcl:
338         * library/tcltest1.0/pkgIndex.tcl:
339         * docs/tcltest.n: Moved tcltest2 code so that it's the standard
340         version of tcltest.  Removed all tcltest2 files
341         (tests/tcltest2.test, library/tcltest1.0/tcltest2.tcl,
342         docs/tcltest2.n). 
343
344 2000-10-20  Jeff Hobbs  <hobbs@ajubasolutions.com>
345
346         * win/tclWinFile.c (TclpMatchFilesTypes): made the stat call only
347         occur when necessary (for 'glob' command).  Significantly speeds
348         up glob command from 8.3. [BUG: 6216]
349
350 2000-10-19  Jennifer Hom  <jenn@ajubasolutions.com>
351
352         * library/tcltest1.0/tcltest2.tcl:
353         * tests/tcltest2
354         * doc/tcltest2.n: Code and documentation cleanup.  Modified
355         -verbose to take list of keywords as well as string of letters.
356         Removed Tcl version information from tcltest. Removed
357         tcltest::grep from tcltest package. Added optional 3rd directory
358         argument to  makeFile/makeDirectory and removeFile/removeDirectory.
359
360         * tests/basic.test: Changed references to tcltest::tclVersion to
361         hardcoded numbers.
362         * generic/tcl.h: Changed reference to tcltest2.tcl and tcltest.tcl
363         in comments to tests/basic.test.
364
365 2000-10-06  David Gravereaux  <davygrvy@ajubasolutions.com>
366
367         * win/tclWinChan.c: moved Win2K bug case test with GetStdHandle()
368         from TclpGetDefaultStdChannel into Tcl_MakeFileChannel to enable
369         a more general method in detecting invalid OS handles rather than
370         just a specific known case. [BUG: 5971]
371
372 2000-10-06  Jeff Hobbs  <hobbs@ajubasolutions.com>
373
374         * tests/cmdAH.test: extra tests for 'file channels' that include
375         multiple interpreter tests and channel sharing
376         * generic/tclIO.c (Tcl_GetChannelNamesEx): corrected function (and
377         consequently 'file channels') to return channels that are actually
378         registered for this specific interp, rather than this thread.
379
380         * doc/CrtChannel.3: fixed spelling mistakes
381
382 2000-09-29  Jennifer Hom  <jenn@ajubasolutions.com>
383
384         * library/tcltest1.0/tcltest2.tcl:
385         * tests/tcltest2.test:
386         * doc/tcltest2.n: Modified the new form of the test command to
387         accept both attribute-value pairs and command line options.
388         Updated the tests and the documentation for this new format.
389         Also changed the option names for the test command.
390
391 2000-09-29  Jeff Hobbs  <hobbs@scriptics.com>
392
393         * win/tclWinSerial.c (SerialGetOptionProc): corrected reporting of
394         space parity on Windows (Eason) [Bug 6057].
395
396         * win/Makefile.in: commented use of TESTFLAGS
397         * unix/Makefile.in: added TESTFLAGS to test target to
398         conform with Windows makefile and TEA style.
399
400         * tests/stack.test: prevented possible crash on systems with low
401         default stacksize (Tru64, AIX) in infinite recursion test.  A
402         solution to check remaining stack space in the core is best, but
403         hard to do in a cross-platform manner.
404
405         * generic/tclIOGT.c (FLUSH_DELAY): renamed DELAY define to
406         FLUSH_DELAY to avoid defn conflict using Tru64's cc.
407
408 2000-09-28  Jeff Hobbs  <hobbs@ajubasolutions.com>
409
410         * tools/tcl.wse.in: added tclPlatDecls.h and tkPlatDecls.h to the
411         Windows .exe install.
412
413         * tests/fCmd.test (fCmd-6.20): corrected test to remove
414         c:/tcl8975@ after creating it.
415
416         * tests/fileName.test: cleaned up the testing of glob patterns for
417         c:/globTest (Windows) to directly create/remove directory.
418
419 2000-09-27  Jeff Hobbs  <hobbs@ajubasolutions.com>
420
421         * generic/tcl.decls:
422         * generic/tclIO.c: updated Tcl_IsChannelShared,
423         Tcl_IsChannelRegistered, Tcl_CutChannel, Tcl_SpliceChannel,
424         Tcl_IsChannelExisting, and Tcl_ClearChannelHandlers to conform to
425         the new stacked channel implementation.  Their stub slots were
426         also moved to give preference to the new 8.3.2 stub functions.
427         This will cause an incompatability with 8.4a1 only.
428         (StopCopy): fixed a bug introduced by a partial fix in 8.3.2 that
429         didn't set nonBlocking correctly when resetting the flags for the
430         write side.  [Bug: 6261]
431
432         * doc/ChnlStack.3:
433         * doc/CrtChannel.3:
434         * generic/tcl.decls:
435         * generic/tcl.h:
436         * generic/tclDecls.h:
437         * generic/tclIO.c:
438         * generic/tclIO.h:
439         * generic/tclIOGT.c:
440         * generic/tclInt.decls:
441         * generic/tclIntDecls.h:
442         * generic/tclStubInit.c:
443         * generic/tclTest.c:
444         * tests/iogt.test:
445         * unix/Makefile.in:
446         * win/Makefile.in:
447         * win/makefile.vc:
448         * win/tclConfig.sh.in:
449         * win/tclWinChan.c:
450         * win/tclWinConsole.c:
451         * win/tclWinPipe.c:
452         * win/tclWinSerial.c:
453         * win/tclWinSock.c: Up-port of changes made in 8.3.2 to 8.4a2 code
454         base.  Most of these changes relate to the rewrite of the stacked
455         channel implementation, with a few config related fixes.
456
457         Following is an asynchronous include of the applicable ChangeLog
458         entries from 8.3.2.
459
460         ********************************************************
461         ** START OF ASYNCHRONOUS UP-PORT LOG (8.3.2 -> 8.4a2) **
462         ********************************************************
463
464 2000-08-07  Jeff Hobbs  <hobbs@scriptics.com>
465
466         * doc/ChnlStack.3:
467         * doc/CrtChannel.3: updated the docs to be aware of the
468         TCL_CHANNEL_VERSION_2 style of Tcl channels.
469
470         * generic/tclIO.c (Tcl_CreateChannel): added assertion to verify
471         that the new channel versioning will be binary compatible with
472         older channel drivers.
473
474 2000-08-05  Jeff Hobbs  <hobbs@scriptics.com>
475
476         * generic/tclIOGT.c (TclChannelTransform): fixed segfault that
477         would occur when transforming a channel with a proc that did not
478         yet exist. (Kupries)
479
480         * generic/tclTest.c (TestChannelCmd): added some lint init'ing of
481         statePtr and chan vars.
482
483 2000-07-26  Jeff Hobbs  <hobbs@scriptics.com>
484
485         * merged core-8-3-1-io-rewrite back into core-8-3-1-branch.
486         The core-8-3-1-io-rewrite branch should now be considered defunct.
487
488         * generic/tclStubInit.c:
489         * generic/tclDecls.h:
490         * generic/tcl.decls:
491         * generic/tcl.h:
492         * generic/tclIO.c: moved the Tcl_Channel* macros from tcl.h to
493         tclIO.c and made them proper stubbed functions.  These are:
494         Tcl_ChannelName, Tcl_ChannelVersion, Tcl_ChannelBlockModeProc,
495         Tcl_ChannelCloseProc, Tcl_ChannelClose2Proc, Tcl_ChannelInputProc,
496         Tcl_ChannelOutputProc, Tcl_ChannelSeekProc, Tcl_ChannelSetOptionProc,
497         Tcl_ChannelGetOptionProc, Tcl_ChannelWatchProc,
498         Tcl_ChannelGetHandleProc, Tcl_ChannelFlushProc,
499         and Tcl_ChannelHandlerProc.  These should be used to access the
500         Tcl_ChannelType structure instead of direct pointer dereferencing.
501
502         * tests/iogt.test: added RCS string, marked tests 2.* to be
503         unixOnly due to underlying system differences.
504
505 2000-07-25 Andreas Kupries <a.kupries@westend.com>
506
507         * tests/iogt.test: (line 866f) New tests iogt-6.[01], highlighting
508           buffering trouble when stacking and unstacking transformations.
509           iogt-6.0 is solved, see the changes below. iogt-6.1 remains, for
510           now, due to the perceived complexity of solutions.
511
512         * generic/tclIO.h: (line 139f) struct Channel, added a buffer
513           queue, to hold data pushed back when stacking a transformation.
514
515         * generic/tclIO.c:
516           (line 91f, line 7434f) New internal function 'CopyBuffer'.
517           Derived from 'CopyAndTranslateBuffer', with translation
518           removed.
519           (line 1025f, line 1212f): Initialization of new queue.
520           (line 1164f, Tcl_StackChannel): Pushback of input queue.
521           (line 1293f, Tcl_UnstackChannel): Discard input and pushback.
522           (line 3748f, Tcl_ReadRaw): Modified to use data in the push back
523           area before going to the driver. Uses 'CopyBuffer', s.a.
524           (line 4702f, GetInput): Modified to use data in the push back
525           area before going to the driver.
526           (line 4867f, Tcl_Seek): Modified to take pushback of the topmost
527           channel in a stack into account.
528           (line 5620f, Tcl_InputBuffered): See above. Added
529           'Tcl_ChannelBuffered'. Analogue to 'Tcl_InputBuffered' but for
530           the buffer area in the channel.
531
532         * generic/tcl.decls: New public API 'Tcl_ChannelBuffered'. S.a.
533
534 2000-07-17  Jeff Hobbs  <hobbs@scriptics.com>
535
536         * unix/Makefile.in:
537         * win/Makefile.in:
538         * win/makefile.vc: added tclIOGT.c to objects list to compile.
539
540         * generic/tclStubInit.c:
541         * generic/tclIntDecls.h:
542         * generic/tclInt.decls: commented out internal decls for
543         TclTestChannelCmd and TclTestChannelEventCmd as they were moved to
544         tclTest.c.  Added new decls for TclChannelEventScriptInvoker and
545         TclChannelTransform.
546
547         * generic/tclIO.c (CloseChannel): stopped masking out of the
548         TCL_READABLE|TCL_WRITABLE bits from the state flags in
549         CloseChannel, instead adding extra intelligence to
550         CheckChannelErrors with a new CHANNEL_RAW_MODE bit for special
551         behavior when called from Raw channel APIs.
552
553 2000-07-13  Jeff Hobbs  <hobbs@scriptics.com>
554
555         * generic/tclIO.c (StackSetBlockMode): moved set of chanPtr
556         outside of blockModeProc check to avoid infinite loop when
557         blockModeProc was NULL (Kupries).  updated TransformSeekProc to
558         not call Tcl_Seek directly (Kupries).
559
560         * win/tclWinChan.c: updated fileChannelType to v2 channel struct
561         * win/tclWinConsole.c: updated consoleChannelType to v2 channel struct
562         * win/tclWinPipe.c: updated pipeChannelType to v2 channel struct
563         * win/tclWinSerial.c: updated serialChannelType to v2 channel struct
564         * win/tclWinSock.c: updated tcpChannelType to v2 channel struct
565
566 2000-07-11  Brent Welch <welch@ajubasolutions.com>
567
568         * win/tclConfig.sh.in (TCL_LIBS): Cleaned up unix-specific
569         autoconf variables.
570
571 2000-07-11  Jeff Hobbs  <hobbs@scriptics.com>
572
573         * tests/iogt.test: made tests [345].0 not run by default as they
574         were failing in the new design, but I'm not convinced that the
575         returned result isn't correct.
576
577         * generic/tclDecls.h:
578         * generic/tclStubInit.c:
579         * generic/tcl.decls: added Tcl_GetTopChannel C API that returns
580         the current top channel of a channel stack.  Tcl_GetChannel was
581         changed earlier to return the bottommost channel of a stack
582         because that is the one that is guaranteed to stay around the
583         longest, and this was needed to compensate for certain
584         operations that want to look at the state of the main channel.
585         Most channel APIs already compensate for grabbing the top, so it
586         shouldn't be needed often.
587
588         * generic/tclIO.c (Tcl_StackChannel, Tcl_UnstackChannel): Added
589         flushing of buffers (Kupries), removed use of DownChannel macro,
590         added Tcl_GetTopChannel public API to get to the top channel of
591         the channel stack (necessary for TLS).  Rewrote Tcl_NotifyChannel
592         for new channel design (Kupries).  Did some code cleanup in the
593         transform code.  tclIO.c must still be broken into bits (separate
594         out test code and giot code, create tclIO.h).
595
596 2000-07-10  Andreas Kupries <a.kupries@westend.com>
597
598         * tests/iogt.test: Reverted some earlier changes as a fix by Jeff
599           revived the original and correct behaviour. IOW, the tests showed
600           a genuine error and I didn't see it :(.
601
602         * generic/tclIO.c (Tcl_Read|Write_Raw): Changed to directly use
603           the drivers and not DoRead|DoWrite. The latter use the buffering
604           system, encoding and eol-translation and this wreaks havoc with
605           the data going through the transformations. Both procedures use
606           CheckForchannelErrors and let it believe that there is no
607           background copy in progress or else stacked channels could not
608           be used for that.
609
610         * generic/tclIO.c (TclCopyChannel, CopyData): Moved access to the
611           topmost channel from the first to the second procedure to make
612           the decision about that at the last possible time (Callbacks can
613           change the stacking).
614
615         test suite: failures of iogt-[345].0
616         
617 2000-07-06  Jeff Hobbs  <hobbs@scriptics.com>
618
619         * tests/iogt.test: new tests for stacked channel stuff based off
620         new 'testchannel transform|unstack' code (Kupries IOGT extension).
621         * generic/tcl.decls:
622         * generic/tcl.h:
623         * generic/tclDecls.h:
624         * generic/tclStubsInit.c:
625         * generic/tclIO.c: complete rewrite of Tcl Channel code for
626         stacked channels.  Channels are now designed to work in a more
627         stacked fashion with a shared ChannelState data structure.
628
629 2000-06-02  Jeff Hobbs  <hobbs@scriptics.com>
630
631         * generic/tclIO.c (CloseChannel): removed the &ing out of
632         (TCL_READABLE|TCL_WRITABLE) from the flags, as CloseChannel does
633         this on the next pass through for the top channel, and it appeared
634         to be causing hangs by not allowing the final flush.
635
636 2000-06-01  Jeff Hobbs  <hobbs@scriptics.com>
637
638         * generic/tclIO.c (CloseChannel): Rewrote CloseChannel code to
639         unstack a channel during the close process.  Fixed a refcount bug
640         in Tcl_UnstackChannel.  [Bug: 5623]
641         (CloseChannel): further extended CloseChannel in the stacked case
642         to effect certain operations on the next channel that would have
643         been done in Tcl_Close.  Also added CHANNEL_CLOSED and removed
644         (TCL_READABLE|TCL_WRITABLE) bits from chanPtr->flags.  Changed
645         final reset of the WatchProc to check the chanDownPtr's (next)
646         interestMask.
647
648         ******************************************************
649         ** END OF ASYNCHRONOUS UP-PORT LOG (8.3.2 -> 8.4a2) **
650         ******************************************************
651
652 2000-09-20  Jeff Hobbs  <hobbs@scriptics.com>
653
654         * tests/socket.test: removed doTestsWithRemoteServer constraint
655         from socket-12.*.  It requires 'exec', not a remote server.
656         Cleaned up some coding errors.
657
658 2000-09-20  Jennifer Hom  <jenn@ajubasolutions.com>
659
660         * library/tcltest1.0/pkgIndex.tcl: Updated to load tcltest 2.0.
661         * library/tcltest1.0/tcltest2.tcl: New version of tcltest.  
662         Cleanup of command line parsing: allows users to specify command
663         line arguments through an environment variable named
664         TCLTEST_OPTIONS [RFE: 3748], does not respond to incorrect
665         arguments, and forces usage of entire flag name when using command
666         line arguments.  Defines accessor procs for all tcltest
667         variables.  Allows users to use 'return' in test scripts. Allow
668         users to specify whether test files should be sourced or run in a
669         separate process.  'all.tcl' code moved to tcltest package.
670         'test' proc modified to use attribute-value pairs.  Allow users to
671         specify what return codes, output, and errors can be compared and
672         whether these values should be compared using regexp, glob, or
673         exact matching.  makeDirectory & removeDirectory now operate with
674         respect to temporaryDirectory [Bug: 6001].  Test results from
675         tests run in slave interpreters are now included in test totals
676         [Bug: 1493].  Test files that return error values are now reported.
677         
678         * tests/all.tcl: Added code to check for the tcltest version
679         loaded; modified to figure out which tests to run based on the
680         tcltest version loaded.
681         * tests/tcltest.test: Modified to explicitly load version 1.0 of
682         tcltest.
683         * tests/tcltest2.test: New test suite for tcltest; includes all of
684         the old tests plus new ones reflecting changes made for version
685         2.0.
686         * tests/cmdAH.test: Added singleTestInterp constraint to
687         cmdAH-31.2; this test does not run if tests aren't sourced into a
688         single interpreter.
689         * tests/socket.test: Fixed two tests that were referencing
690         variables outside of scope.
691         
692         * tools/tcl.wse.in: Added code to install tcltest2.tcl.
693
694         * doc/tcltest2.n: New documentation for tcltest version 2.0.
695         Removes documentation for tcltest namespace variables.  Adds
696         documentation for new tcltest procs.
697
698         * unix/mkLinks: Added code to link to tcltest2.n.
699
700         * generic/tcl.h: Added comment to modify tcltest2.tcl as well as
701         tcltest.tcl for version changes.
702
703 2000-09-19  Eric Melski  <ericm@ajubasolutions.com>
704
705         * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): When using -all, all
706         attempts after the first to match the regexp against the string
707         should include the TCL_REG_NOTBOL flag, to avoid erroneously
708         matching ^ in the middle of the string.  Added code to set this
709         flag after the first pass through the matching loop. [Bug: 6284].
710
711 2000-09-19  David Gravereaux  <davygrvy@ajubasolutions.com>
712
713         * doc/Eval.3:  Added a note about the script argument to Tcl_Eval()
714         should be in UTF-8 or risk implied conversion errors when possible
715         combinations of upper ascii can be valid UTF-8 special codes.
716
717 2000-09-17  Eric Melski  <ericm@ajubasolutions.com>
718
719         * tests/cmdIL.test: Added a test for fix for [Bug: 6212].
720
721         * generic/tclCmdIL.c (Tcl_LsortObjCmd): Applied patch from [Bug:
722         6212], which corrected an error in the handling of the -index option.
723
724 2000-09-14  Eric Melski  <ericm@ajubasolutions.com>
725
726         * doc/Alloc.3: Added entries for Tcl_AttemptAlloc, Tcl_AttempRealloc.
727
728         * doc/StringObj.3: Added entry for Tcl_AttemptSetObjLength.
729         
730         * generic/tclDecls.h:
731         * generic/tclStubInit.c: Regen'ed stubs files from new tcl.decls.
732
733         * generic/tcl.decls: Added stubs for the Tcl_Attempt* memory
734         allocators and for Tcl_AttemptSetObjLength.
735
736         * generic/tcl.h: Added #define's for attemptckalloc,
737         attemptckrealloc, which map to the Tcl_Attempt* memory allocators.
738
739         * generic/tclCkalloc.c: Added non-panic'ing versions of Tcl_Alloc,
740         Tcl_Realloc, etc.; these are called Tcl_AttemptAlloc,
741         Tcl_AttemptRealloc, etc.  These are used by
742         Tcl_AttemptSetObjLength and the string obj append functions.
743
744         * generic/tclStringObj.c: Modified string growth algorithm to use
745         doubling algorithm as long as possible, and only fall back when
746         that fails.  Added Tcl_AttemptSetObjLength, and modified
747         AppendUnicodeToUnicodeRep, AppendUtfToUtfRep, and
748         Tcl_AppendStringsToObjVA to support this.
749
750 2000-09-07  David Gravereaux <davygrvy@ajubasolutions.com>
751
752         * win/.cvsignore: changed the glob patterns a bit to exclude VC++
753         project conversion backups.
754
755         * win/tclWinPipe.c: Stage-1 bug fix for TR#2460 "exec leaks memory".
756         Added more logic around the close-down of the pipe reader thread so
757         as to avoid, at all cost, a TerminateThread.  Most cases with exec
758         are fixed, but I don't consider 2460 done yet.  Closing down the
759         read side of a pipe before the child process, doesn't really fit
760         the windows model.  [BUG: 2460]
761
762 2000-09-07  Jeff Hobbs  <hobbs@scriptics.com>
763
764         * doc/trace.n: minor doc cleanup
765
766 2000-09-06  André Pönitz <poenitz@htwm.de>
767
768         * doc/*.n: added or changed "SEE ALSO:" section
769
770 2000-09-06  Jeff Hobbs  <hobbs@scriptics.com>
771
772         * win/tclWinLoad.c (TclpLoadFile): added special message for
773         ERROR_PROC_NOT_FOUND exception in loading a dll.
774         * win/tclWinError.c: changed ERROR_PROC_NOT_FOUND to map from
775         ESRCH (POSIX: no such process) to EINVAL because there is no good
776         mapping for "procedure not found".
777
778         * README:
779         * generic/tcl.h:
780         * library/tcltest1.0/tcltest.tcl:
781         * tools/tcl.wse.in: 
782         * tools/tcltk-man2html.tcl:
783         * unix/configure.in:
784         * unix/tcl.spec:
785         * win/README.binary:
786         * win/configure.in: updated patchlevel to 8.4a2
787
788         * unix/tclUnixPipe.c (TclpCreateProcess): Removed WNOHANG from
789         Tcl_WaitPid call in error case of process creation on Unix, as it
790         would lead to defunct processes. [Bug: 6148]
791
792         * tests/string.test: extended string repeat tests
793         * generic/tclCmdMZ.c (Tcl_StringObjCmd): changed STR_REPEAT to
794         preallocate the full space of the final string, avoided repeated
795         appends.
796
797         * doc/source.n:
798         * doc/Eval.3: added extra note about how to safe use ^Z in code,
799         as it is now a cross-platform (was just Windows) EOF char.
800
801 2000-09-05  Jeff Hobbs  <hobbs@scriptics.com>
802
803         * generic/tclHash.c: fixed pedantic warning of incorrectly placed
804         #endif
805
806         * generic/tclExecute.c (TclExecuteByteCode): INST_STR_INDEX fixed
807         pedantic cast warning.
808         Corrected support for building with -DTCL_COMPILE_STATS.
809         Added efficiency check of object equality.
810
811 2000-08-29  Eric Melski  <ericm@ajubasolutions.com>
812
813         * generic/tclStringObj.c: Applied patch from Gerhard Hintermayer
814         to provide a more conservative string growth algorithm for strings
815         larger than one megabyte; this allows more efficient use of memory
816         for very large strings.
817
818 2000-08-25  Eric Melski  <ericm@ajubasolutions.com>
819
820         * tests/trace.test: Extended array tracing tests.
821
822         * doc/trace.n: Clarified information about when array traces will
823         be fired.
824
825         * generic/tclVar.c (Tcl_ArrayObjCmd): Corrected call to CallTraces
826         (for TCL_TRACE_ARRAY) to only be called when the variable is
827         either an array or is undefined, to ensure that array traces do
828         not fire for scalar variables.
829
830 2000-08-24  Eric Melski  <ericm@ajubasolutions.com>
831         
832         * doc/man.macros: Tweaked tab settings for .SO (Standard Options) 
833         sections, based on suggestion from Peter Spjuth.
834
835 2000-08-24  Mo DeJong  <mdejong@redhat.com>
836
837         * unix/README: Update to account for removal of --enable-gcc.
838         * unix/configure.in:
839         * unix/tcl.m4 (SC_ENABLE_GCC): Remove --enable-gcc option.
840         * win/README: Add note about building with Cygwin.
841         * win/configure.in: 
842         * win/tcl.m4 (SC_ENABLE_GCC): Remove --enable-gcc option.
843         Remove quick hack that provided cross compile support for
844         windows builds.
845
846 2000-08-24  Eric Melski  <ericm@ajubasolutions.com>
847
848         Overall change:  Added support for command rename/delete traces
849         and new trace syntax, from patch from Vince Darley.  Added support
850         for array traces for variables.  [RFE: 5048, 5967].
851
852         * doc/trace.n: Updated documentation for new syntax; flagged old
853         syntax as deprecated; added documentation for command
854         rename/delete traces and variable array traces.
855
856         * tests/trace.test: Updated tests for new trace syntax; new tests
857         for command rename/delete traces; new tests for array traces.
858
859         * generic/tclVar.c: Support for new trace syntax; support for
860         TCL_TRACE_ARRAY.
861
862         * generic/tclStubInit.c:
863         * generic/tclDecls.h:
864         * generic/tcl.decls: Stub functions for command rename/delete traces.
865
866         * generic/tcl.h: 
867         * generic/tclInt.h:
868         * generic/tclBasic.c: Support for command traces.
869
870         * generic/tclCmdMZ.c (TclTraceVariableObjCmd): Patched to support
871         new [trace] syntax:  
872         trace {add|remove|list} {variable|command} name ops command
873         Added support for command traces (rename, delete operations).
874         Added support for TCL_TRACE_ARRAY at Tcl level (array operation
875         for variable traces).
876         
877 2000-08-20  Eric Melski  <ericm@ajubasolutions.com>
878
879         * generic/tclVar.c: Added check for non-arrays for [array statistics]
880         command (patch from Mark Patton).
881
882 2000-08-19  David Gravereaux <davygrvy@ajubasolutions.com>
883
884         * generic/tclPlatDecls.h: without a previous '#include <windows.h>',
885         tclPlatDecls.h can't be parsed due to a missing definition of TCHAR.
886         Added a check to include it when not defined.
887
888         ***POSSIBLE OBSCURE BUG*** could be caused when the compile flags
889         for the core happen to be different than a project who uses these
890         publics regarding -D_MBCS and -D_UNICODE.  This added check might
891         have to be revisited later with a better understanding of the
892         reprocusions.  I think TCHAR should be replaced with it's expansion.
893
894 2000-08-18  David Gravereaux <davygrvy@ajubasolutions.com>
895
896         * win/.cvsignore (added): provides a cleaner build environment with
897         graphical CVS clients.
898
899 2000-08-15  Eric Melski  <ericm@ajubasolutions.com>
900
901         * library/tcltest1.0/tcltest.tcl: Set debug level in
902         tcltest::restoreState to 2, for consistancy with the debug level
903         in tcltest::saveState [Bug: 4505].
904
905 2000-08-14  Eric Melski  <ericm@ajubasolutions.com>
906
907         * win/makefile.vc: 
908         * win/Makefile.in: 
909         * unix/Makefile.in: Added tclPlatDecls.h to the list of installed
910         headers, for more complete stubs support. [Bug: 5241].
911
912         * generic/tcl.h: Added #include "tclPlatDecls.h" to get
913         platform-specific stubs declarations (Tcl_WinTCharToUtf, etc)
914         [Bug: 5241].
915
916         * README: Updated link for instructions on compiling Tcl from
917         sources to point to correct location
918         (http://dev.scriptics.com/doc/... instead of
919         http://dev.scriptics.com/support/...).
920
921 2000-08-11  Eric Melski  <ericm@ajubasolutions.com>
922
923         * generic/tclEnv.c (TclUnsetEnv): Changed declaration of length
924         variable from "unsigned int" to "int", to match usage when passed
925         to TclpFindVariable [Bug: 6126].
926
927 2000-08-10  Eric Melski  <ericm@ajubasolutions.com>
928
929         * library/msgcat1.0/pkgIndex.tcl: Bumped version number to 1.2
930         [Bug: 6100].
931
932         * library/msgcat1.0/msgcat.tcl: Removed erroneous [package forget]
933         in msgcat namespace initializer.  Bumped version number to 1.2
934         [Bug: 6100].
935
936 2000-08-10  David Gravereaux <davygrvy@ajubasolutions.com>
937
938         * generic/tclObj.c: r1.15 accidentally changed a global mutex
939         name tclObjMutex to ObjMutex.  Put the correct name back.
940
941 2000-08-07  Eric Melski  <ericm@ajubasolutions.com>
942
943         * tests/indexObj.test: Added tests using the [testwrongnumargs]
944         command to test Tcl_WrongNumArgs.
945
946         * generic/tclTest.c (TestWrongNumArgsObjCmd): Added test function
947         for the Tcl_WrongNumArgs function.
948
949         * generic/tclIndexObj.c (Tcl_WrongNumArgs): Corrected algorithm to
950         not insert a space before the message component when objc == 0
951         [Bug: 6078].
952
953 2000-07-27  Mo DeJong  <mdejong@redhat.com>
954
955         * win/configure.in: TCL_STUB_LIB_FLAG should not
956         include ${TCL_DBGX} in win/tclConfig.sh, fix that.
957
958 2000-07-25  David Gravereaux  <davygrvy@ajubasolutions.com>
959
960         * doc/Async.3:
961         * generic/tclAsync.c:
962         * generic/tclInt.decls:
963         * generic/tclIntPlatDecls.h:
964         * generic/tclStubInit.c:
965         * generic/tclTest.c:
966         * mac/tclMacPort.h:
967         * unix/tclUnixPort.h:
968         * win/tclWinInit.c:  Thread-safe rewrite for tclAsync.c.  Added
969         notifier alerting on all platforms as it was only working on Win
970         before.  Removed older Win hacks that would end-up waking the
971         wrong notifier in the presence of a threaded build.  All tests
972         pass as before.  New test cases will be added soon for the new
973         behavior.  [BUG: 5791]
974
975 2000-07-25  Eric Melski  <ericm@ajubasolutions.com>
976
977         * generic/tclVar.c (CallTraces): Added check for VAR_TRACE_ACTIVE
978         on the array containing the variable before executing traces on
979         that array, to conform with normal variable traces and the
980         documentation, which states that while executing a trace, other
981         traces on that variable are disabled. [Bug: 6049].
982
983         * win/tclWinPipe.c (BuildCommandLine): Added Tcl_DStringFree call
984         to prevent potential memory leaks [Bug: 6041].
985
986 2000-07-24  Eric Melski  <ericm@ajubasolutions.com>
987
988         * doc/msgcat.n: Added documentation about the selection of the
989         default locale on Windows.
990
991 2000-07-23  Joe English  <jenglish@flightlab.com>
992         * doc/AddErrInfo.3:
993         * doc/ChnlStack.3:
994         * doc/Exit.3:
995         * doc/GetIndex.3:
996         * doc/Notifier.3:
997         * doc/Object.3:
998         * doc/RegExp.3:
999         * doc/SetResult.3:
1000         * doc/SplitList.3:
1001         * doc/Thread.3:  Added missing entries to NAME section.
1002
1003         * doc/AddErrInfo.3:
1004         * doc/CrtObjCmd.3:
1005         * doc/RecEvalObj.3: Changed Tcl_EvalObj to Tcl_EvalObjEx
1006
1007 2000-07-21  Eric Melski  <ericm@ajubasolutions.com>
1008
1009         * generic/tclStubInit.c: 
1010         * generic/tclObj.c: 
1011         * generic/tclInt.h: 
1012         * generic/tclHash.c: 
1013         * generic/tclDecls.h: 
1014         * generic/tcl.h: 
1015         * generic/tcl.decls: 
1016         * doc/Hash.3: Reapplied patch from Paul Duffin to extend hash tables
1017         to allow custom key types, such as Tcl_Obj *'s, and others.
1018
1019         * doc/binary.n: Noted that the example in the introduction assumes a
1020         32-bit system [Bug: 6035].
1021
1022 2000-07-21  Mo DeJong  <mdejong@redhat.com>
1023
1024         * win/configure.in: Define ${prefix} and ${exec_prefix} like
1025         unix/configure.in.  Fix or add TCL_SRC_DIR, TCL_STUB_LIB_FILE,
1026         TCL_STUB_LIB_FLAG, TCL_BUILD_STUB_LIB_SPEC, TCL_STUB_LIB_SPEC,
1027         TCL_BUILD_STUB_LIB_PATH, TCL_STUB_LIB_PATH.
1028
1029 2000-07-20  Eric Melski  <ericm@ajubasolutions.com>
1030
1031         * generic/tclStubInit.c: 
1032         * generic/tclObj.c: 
1033         * generic/tclInt.h: 
1034         * generic/tclHash.c: 
1035         * generic/tclDecls.h: 
1036         * generic/tcl.h: 
1037         * generic/tcl.decls: 
1038         * doc/Hash.3: Reverted patch from Paul Duffin to extend hash tables
1039         to allow custom key types, such as Tcl_Obj *'s, and others; it
1040         seems to break Tk.
1041
1042 2000-07-19  Eric Melski  <ericm@ajubasolutions.com>
1043
1044         * generic/tclStubInit.c: 
1045         * generic/tclObj.c: 
1046         * generic/tclInt.h: 
1047         * generic/tclHash.c: 
1048         * generic/tclDecls.h: 
1049         * generic/tcl.h: 
1050         * generic/tcl.decls: 
1051         * doc/Hash.3: Applied patch from Paul Duffin to extend hash tables
1052         to allow custom key types, such as Tcl_Obj *'s, and others.
1053
1054         * tests/pkgMkIndex.test: Added tests for pkg_compareExtension.
1055
1056         * library/package.tcl: Enhanced pkg_compareExtension to handle
1057         Unixes which tack the version number on to the end of library
1058         names (eg, foo.so.1.2); such filenames will be correctly matched.
1059         (Patch from Vince Darley).
1060
1061         * win/makefile.vc: Applied patch from Don Porter to provide better
1062         nmake support for NT/Alpha [RFE: 5938].
1063
1064 2000-07-18  Mo DeJong  <mdejong@redhat.com>
1065
1066         * unix/configure.in:
1067         * unix/tcl.m4:
1068         * win/tcl.m4: Properly quote arguments to m4 macros. This allows
1069         Tcl to work with the new version of autoconf.
1070
1071 2000-07-18  Eric Melski  <ericm@ajubasolutions.com>
1072
1073         * tests/opt.test: Removed references to Lfirst, Lrest functions.
1074
1075         * library/opt0.4/optparse.tcl: Applied patch from Chris Nelson,
1076         which replaces the [Lfirst] function with an inline [lindex ... 0]
1077         and [Lrest] with [lrange ... 1 end], for better performance. 
1078         [RFE: 6019]
1079         
1080
1081 2000-07-18  Eric Melski  <ericm@scriptics.com>
1082
1083         * compat/string.h: Fixed function prototypes for strpbrk and
1084         strtok [Bug: 6020].
1085
1086 2000-07-17  David Gravereaux  <davygrvy@ajubasolutions.com>
1087
1088         * win/tclWinChan.c: Win2K OS bug with
1089         GetStdHandle(STD_OUTPUT_HANDLE) giving the wrong answer.  This
1090         made TclpGetDefaultStdChannel grab what it thought was a valid
1091         native stdout handle.  Added a new WriteFile() test to  make sure
1092         it's really valid.  This OS bug doesn't affect the shells.  Only
1093         -subsystem:windows (aka WinMain) application that dynamically
1094         load tclXX.dll [BUG: 5971]
1095
1096 2000-07-17  Eric Melski  <ericm@scriptics.com>
1097
1098         * library/msgcat1.0/msgcat.tcl: 
1099         * doc/msgcat.n: 
1100         * tests/msgcat.test: Applied patches from Chris Nelson, to provide
1101         the mcmset function, which allows the translator to set multiple
1102         string translations in a single function call, rather than
1103         requiring many calls to mcset. [RFE: 6000, 5993].  In addition,
1104         these patches correct mcload to use utf-8 encoding on when reading
1105         message catalog files, and provides for better default behavior
1106         for determining the locale on a Windows system.
1107
1108 2000-07-17  Mo DeJong  <mdejong@redhat.com>
1109
1110         * unix/tcl.m4 (SC_ENABLE_GCC): Don't set CC=gcc
1111         before running AC_PROG_CC if CC is already set.
1112
1113 2000-07-13  André Pönitz <poenitz@mathematik.tu-chemnitz.de>
1114
1115         * doc/lappend.n:
1116         * doc/lindex.n:
1117         * doc/linsert.n:
1118         * doc/list.n:
1119         * doc/llength.n:
1120         * doc/lrange.n:
1121         * doc/lreplace.n:
1122         * doc/lsearch.n:
1123         * doc/lsort.n: Added SEE ALSO sections.
1124
1125 2000-07-07  Mo DeJong  <mdejong@redhat.com>
1126
1127         * win/configure.in: Fix definition of
1128         TCL_SRC_DIR so that it matches the Unix version.
1129         * win/tclConfig.sh.in: Removed duplicate variables.
1130
1131 2000-07-06  Eric Melski  <ericm@scriptics.com>
1132
1133         * tests/msgcat.test: 
1134         * library/msgcat1.0/msgcat.tcl: Applied patch from Christian
1135         Krone, to provide extended args support for msgcat::unknown, which
1136         is used for strings without a known translation in the current
1137         locale [Bug: 5984].
1138
1139 2000-06-29  Eric Melski  <ericm@scriptics.com>
1140
1141         * doc/msgcat.n: Doc's for mcmax function.
1142
1143         * library/msgcat1.0/msgcat.tcl: Applied patches from Laurent
1144         Duperval, to add mcmax function, which computes the length of the
1145         longest of several translated strings.  Bumped version number to 1.1.
1146
1147 2000-06-27  Eric Melski  <ericm@scriptics.com>
1148
1149         * tests/stringObj.test: Tweaked tests to avoid hardcoded
1150         high-ASCII characters (which will fail in multibyte locales);
1151         instead used \uXXXX syntax. [Bug: 3842].
1152
1153 2000-06-26  Eric Melski  <ericm@scriptics.com>
1154
1155         * doc/package.n: Corrected information about [package forget]
1156         arguments [Bug: 5418].
1157
1158 2000-06-23  Eric Melski  <ericm@scriptics.com>
1159
1160         * doc/Hash.3: Added documentation patch for Tcl_Obj *'s as keys in
1161         Tcl hash tables [RFE: 5934].
1162
1163         * generic/tcl.h: 
1164         * generic/tclHash.c: Applied patch from [RFE: 5934], which extends
1165         Tcl hash tables to allow Tcl_Obj *'s as the key.
1166
1167 2000-06-20  Eric Melski  <ericm@ajubasolutions.com>
1168
1169         * tests/opt.test:
1170         * library/opt0.4/optparse.tcl: Applied patch from [Bug: 5922], which 
1171         corrected an incorrect use of [string match].
1172
1173         * unix/tclConfig.sh.in:
1174         * win/tclConfig.sh.in: Applied patch from [Bug: 5921], which corrects a
1175         typo in the comments in these files.
1176
1177 2000-06-19  Eric Melski  <ericm@scriptics.com>
1178
1179         * doc/RegExp.3: Replaced instances of "Tcl_GetRegExpInfo" with
1180         "Tcl_RegExpGetInfo", the correct name of the function [Bug: 5901].
1181
1182 2000-06-13  Eric Melski  <ericm@scriptics.com>
1183
1184         * win/tcl.m4:
1185         * win/configure.in:
1186         * win/Makefile.in: Applied patch from [RFE: 5844], to extend
1187         support for mingw compile environment on Windows.
1188
1189         * win/tclWinDde.c:
1190         * win/tclWinInit.c:
1191         * win/tclWinNotify.c:
1192         * win/tclWinPipe.c:
1193         * win/tclWinReg.c:
1194         * win/tclWinThrd.c: Applied patch from [Bug: 5794], to fix
1195         compiler warnings when using mingw on Windows.
1196
1197 2000-05-31  Jeff Hobbs  <hobbs@scriptics.com>
1198
1199         * tests/set-old.test:
1200         * doc/unset.n:
1201         * generic/tclVar.c (Tcl_UnsetObjCmd): added -nocomplain and --
1202         options to unset, to allow for a silent unset operation.
1203
1204 2000-05-31  Eric Melski  <ericm@scriptics.com>
1205
1206         * generic/tclVar.c (Tcl_ArrayObjCmd): Added support for regexp and
1207         exact matching for [array names] command. [RFE: 3684].
1208
1209         * doc/array.n: Added documentation for [array names
1210         -exact/-regexp/-glob] [RFE: 3684].
1211
1212         * tests/set-old.test: Added tests for [array names
1213         -exact/-regexp/-glob] [RFE: 3684].
1214
1215 2000-06-06  Jeff Hobbs  <hobbs@scriptics.com>
1216
1217         8.4a1 RELEASE
1218
1219         * generic/tclExecute.c (TclExecuteByteCode INST_STR_CMP): added
1220         test of iResult return from memcmp, as memcmp isn't required to
1221         return only -1,0,1.
1222
1223 2000-06-03  Jeff Hobbs  <hobbs@scriptics.com>
1224
1225         * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Corrected
1226         caching of the index ptr to account for offsets != sizeof(char *).
1227         [Bug: 5153]
1228
1229 2000-05-29  Sandeep Tamhankar <sandeep@scriptics.com>
1230
1231         * tests/http.test
1232         * doc/http.n
1233         * library/http2.3/http.tcl: Fixed bug 5741, where unsuccessful
1234         geturl calls sometimes leaked memory and resources (sockets).  
1235         Also, switched around some of the logic so that http::wait never 
1236         throws an exception.  This is because in an asynchronous geturl, 
1237         the command callback will probably end up doing all the error 
1238         handling anyway, and in an asynchronous situation, the user
1239         expects to check the state when the transaction completes, as
1240         opposed to being thrown an exception.   For the http package, this
1241         menas the user can check http::status for "error" and http::error
1242         for the error message after doing the http::wait.
1243
1244 2000-05-27  Jeff Hobbs  <hobbs@scriptics.com>
1245
1246         * tests/info.test:
1247         * doc/info.n:
1248         * generic/tclIOUtil.c (Tcl_EvalFile):
1249         * generic/tclCmdIL.c (InfoScriptCmd): added ability to set the
1250         info script return value [info script ?newFileName?].  This will
1251         be beneficial for virtual file system programs. [Bug: 4225]
1252
1253 2000-05-26  Jeff Hobbs  <hobbs@scriptics.com>
1254
1255         * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): reworked to operate in
1256         Unicode, tweaked for performance.
1257         (Tcl_StringObjCmd) changed STR_FIRST/STR_LAST error message to
1258         something more understandable, reworked STR_FIRST, STR_LAST,
1259         STR_MAP, STR_MATCH, STR_RANGE, STR_REPLACE to operate in Unicode.
1260         Removed inneffectual STR_RANGE "special" ByteArray support.
1261         Optimized STR_MAP algorithm, especially optimized for one-pair case.
1262         Fixed possible mem overrun in STR_INDEX bytearray case.
1263         
1264         * generic/tclCompExpr.c: changed INST_STREQ -> INST_STR_EQ,
1265         INST_STRNEQ -> INST_STR_NEQ
1266         * generic/tclCompile.c: added streq, strneq, strcmp, strlen &
1267         strmatch to the compiled stats instructionTable
1268         * generic/tclCompile.h: added instructions INST_STR_CMP,
1269         INST_STR_INDEX, INST_STR_MATCH
1270         * generic/tclCompCmds.c: added byte compiler support for
1271         [string compare|match|index].
1272         * generic/tclExecute.c:
1273         Changed INST_STR_(N)EQ to return an Int object and not bother
1274         trying to reuse the top stack object.
1275         Added INST_STR_CMP, INST_STR_INDEX, INST_STR_MATCH bytecode ops.
1276         Extended evalstats output info with Tcl_IsShared stat info.
1277
1278         * generic/tclInt.h:
1279         * generic/tclObj.c (Tcl_DbIsShared): added support for checking
1280         result of Tcl_IsShared in evalstats (TCL_COMPILE_STATS).
1281
1282         * generic/tclStringObj.c (Tcl_AppendUnicodeToObj): removed dead code.
1283         (AppendUnicodeToUnicodeRep) removed overallocation by extra
1284         sizeof(Tcl_UniChar) multiplier.
1285
1286         * tests/string.test: added string map tests for the one-pair case,
1287         corrected tests to reflect improved error messages in first/last.
1288         Added tests against mem overrun in string index bytearray case.
1289
1290 2000-05-23  Eric Melski  <ericm@scriptics.com>
1291
1292         * generic/tclInt.h: Added function prototypes for
1293         TclCompileStringCmd and TclCompileReturnCmd.
1294
1295         * generic/tclCompile.h: Added definition of INST_STRLEN opcode and
1296         updated LAST_INST_OPCODE value.
1297
1298         * generic/tclBasic.c: Added information about TclCompileStringCmd
1299         and TclCompileReturnCmd to BuiltInCmds table.
1300
1301         * generic/tclExecute.c (TclExecuteByteCode): Added support for the
1302         INST_STRLEN opcode.
1303
1304         * generic/tclCompCmds.c 
1305         (TclCompileStringCmd): Basic implementation of byte-compiled
1306         [string] command.  Not all subcommands are implemented; those
1307         that are not an out-line compiled.
1308
1309         (TclCompileReturnCmd): Byte-compiled implementation of [return]
1310         command.  Only "simple" returns are byte-compiled; in particular,
1311         if the -code, -errorinfo or -errorcode flags are used, the command
1312         is not byte-compiled.
1313
1314 2000-05-22  Jeff Hobbs  <hobbs@scriptics.com>
1315
1316         * doc/scan.n: 
1317         * doc/array.n: minor doc fixes [Bug: 5396]
1318
1319         * generic/tclEnv.c: cast cleanup [Bug: 5624]
1320         * win/tclWinConsole.c: cast and header cleanup [Bug: 5625]
1321         * win/tclWinSerial.c: cast cleanup [Bug: 5626]
1322         * win/tclWinFCmd.c: cast cleanup [Bug: 5627]
1323
1324 2000-05-19  Jeff Hobbs  <hobbs@scriptics.com>
1325
1326         * generic/tclTest.c:
1327         * generic/tclIO.c: moved channel test commands from tclIO.c to
1328         tclTest.c.
1329         * generic/tclIO.h: new file, split out from tclIO.c to allow test
1330         commands to be moved to tclTest.c.
1331
1332         * generic/tclStubInit.c:
1333         * generic/tclIntDecls.h:
1334         * generic/tclInt.decls: removed TclTestChannel*Cmd from internal
1335         stubs table and added TclChannelEventScriptInvoker to the internal
1336         stubs table so it can be used from the test code.
1337
1338 2000-05-18  Eric Melski  <ericm@scriptics.com>
1339
1340         * tests/clock.test: Added test for "2 days 2 hours ago" style
1341         specifications.
1342
1343         * generic/tclDate.c: Regenerated from tclGetDate.y.
1344
1345         * generic/tclGetDate.y: Tweaked grammar to properly handle the
1346         "ago" keyword when it follows multiple relative unit specifiers,
1347         as in "2 days 2 hours ago".  [Bug: 5497].
1348
1349 2000-05-18  Jeff Hobbs  <hobbs@scriptics.com>
1350
1351         * win/{tcl.m4,Makefile.in,configure.in}: added support for mingw
1352         compile env and cross-compiling. [Bug: 5499]
1353
1354         * generic/tclClock.c (FormatClock): correct code to handle locale
1355         specific return values from strftime, if any. [Bug: 3345]
1356
1357         * unix/tclUnixInit.c (TclpSetInitialEncodings): attempt to
1358         correct setlocale calls for XIM support and locale issues.
1359         [BUG: 5422 3345 4236 2522 2521]
1360
1361 2000-05-17  Jeff Hobbs  <hobbs@scriptics.com>
1362
1363         * library/init.tcl (auto_import): added check to see if a valid
1364         pattern was coming in, to avoid simple error cases [Bug: 3326]
1365
1366         * doc/regsub.n: correct regsub docs [Bug: 5346]
1367
1368 2000-05-15  Eric Melski  <ericm@scriptics.com>
1369
1370         * library/history.tcl: Corrected an off-by-one error in HistIndex,
1371         which was causing [history redo] to start its search at the wrong
1372         event index. [Bug: 1269].
1373
1374 2000-05-10  Jeff Hobbs  <hobbs@scriptics.com>
1375
1376         * generic/tclPosixStr.c (Tcl_SignalMsg): clarified #defines for
1377         Linux on Sparc to compile correctly. [Bug: 5364]
1378
1379         * doc/namespace.n:
1380         * tests/namespace.test:
1381         * generic/tclNamesp.c (Tcl_NamespaceObjCmd): added 'namespace
1382         exists' command. [Bug: 4665]
1383
1384         * doc/source.n:
1385         * doc/Eval.3:
1386         * tests/source.test:
1387         * generic/tclIOUtil.c (Tcl_EvalFile): added explicit \32 (^Z)
1388         eofchar (affects Tcl_EvalFile in C, "source" in Tcl).  This was
1389         implicit on Windows already, and is now cross-platform to allow
1390         for scripted documents.
1391
1392 2000-05-09  Andreas Kupries  <a.kupries@westend.com>
1393         operating as proxy for David Gravereaux <davygrvy@pobox.com>
1394         
1395         * win/tclWinThrd.c (TclpInitLock, TclpMasterLock): Added missing
1396           initialization of joinLock.
1397
1398 2000-05-09  Eric Melski  <ericm@scriptics.com>
1399
1400         * tests/lsearch.test: 
1401         * doc/lsearch.n: 
1402         * generic/tclCmdIL.c (Tcl_LsearchObjCmd): Extended [lsearch] to
1403         support sorted list searching and typed list searching. [RFE: 4098].
1404
1405 2000-05-08  Jeff Hobbs  <hobbs@scriptics.com>
1406
1407         * doc/expr.n:
1408         * tests/expr.test:
1409         * tests/expr-old.test: added tests for 'eq' and 'ne'
1410         * generic/tclExecute.c:
1411         * generic/tclCompile.h: added INST_STREQ and INST_STRNEQ opcodes
1412         that do strict string comparisons.
1413         * generic/tclCompExpr.c: added 'eq' and 'ne' string comparison
1414         operators.
1415         * generic/tclParseExpr.c (GetLexeme): added 'eq' and 'ne' expr
1416         parse terms (string (in)equality check).
1417
1418         * generic/tclCmdIL.c (Tcl_LinsertObjCmd): made use of
1419         Tcl_DuplicateObj where code was otherwise duplicated.  Made
1420         special case of inserting one element at the end work again (where
1421         index == len).
1422         (Tcl_LreplaceObjCmd): moved Tcl_DuplicateObj call lower and
1423         cleaned up use of other arguments.
1424
1425         * generic/tclObj.c (Tcl_DuplicateObj): simplified code to call
1426         TclInitStringRep, which the code was just duplicating in part.
1427
1428         * doc/Utf.3:
1429         * generic/tclStubInit.c:
1430         * generic/tcl.decls:
1431         * generic/tclDecls.h:
1432         * generic/tclUtf.c: Added new functions Tcl_UniCharNcasecmp and
1433         Tcl_UniCharCaseMatch (unicode parallel to Tcl_StringCaseMatch)
1434         * generic/tclUtil.c: rewrote Tcl_StringCaseMatch algorithm for
1435         optimization and made Tcl_StringMatch just call Tcl_StringCaseMatch
1436         * tests/string.test: extended string match tests
1437
1438 2000-05-08  Eric Melski  <ericm@scriptics.com>
1439
1440         * tests/set-old.test: 
1441         * doc/array.n: 
1442         * generic/tclVar.c: Added [array statistics] command [RFE: 4557]
1443
1444 2000-05-06  Andreas Kupries <a.kupries@westend.com>
1445         operating as proxy for David Gravereaux <davygrvy@pobox.com>
1446
1447         * tclThreadJoin.c: Fixed several places with missing a & in
1448           arguments to calls of Tcl_Mutex(Un)lock and
1449           Tcl_ConditionNotify functions.
1450
1451 2000-05-02  Jeff Hobbs  <hobbs@scriptics.com>
1452
1453         * README:
1454         * generic/tcl.h:
1455         * library/init.tcl:
1456         * library/reg1.0/pkgIndex.tcl:
1457         * library/tcltest1.0/tcltest.tcl:
1458         * mac/README:
1459         * tools/tcl.hpj.in:
1460         * tools/tcl.wse.in:
1461         * unix/README:
1462         * unix/configure.in:
1463         * unix/tcl.spec:
1464         * win/README:
1465         * win/README.binary:
1466         * win/configure.in:
1467         * win/makefile.vc:
1468         * win/tcl.m4: updated patchlevel to 8.4a1
1469
1470         * tests/compile.test:
1471         * tests/init.test:
1472         * tests/proc.test:
1473         * tests/proc-old.test:
1474         * tests/rename.test:
1475         * generic/tclProc.c: reworked error return for procedures with
1476         incorrect args to be like the C Tcl_WrongNumArgs, where a "wrong #
1477         args: ..." message is printed out with the args list.
1478
1479         * unix/Makefile.in: add tclsh.ico and tcl.spec to dist target
1480
1481 2000-05-02  Andreas Kupries <a.kupries@westend.com>
1482
1483         * Overall changes:
1484           (1) Implementation of joinable threads for all platforms.
1485           (2) Additional API's for channels. Required to allow the
1486           thread extension to move channels between threads.
1487
1488         * generic/tcl.decls (lines 1360f): Added Tcl_JoinThread,
1489           Tcl_IsChannelShared, Tcl_IsChannelRegistered, Tcl_CutChannel,
1490           Tcl_SpliceChannel, Tcl_IsChannelExisting and
1491           Tcl_ClearChannelHandlers (slots 394 to 400).
1492
1493         * generic/tclIO.c: Implemented Tcl_IsChannelRegistered,
1494           Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel,
1495           Tcl_IsChannelExisting and Tcl_ClearChannelHandlers.
1496           Tcl_CutChannel uses code from CloseChannel. Replaced this code
1497           by a call to Tcl_CutChannel.  Replaced several code fragments
1498           adding channels to the channel list with calls to
1499           Tcl_SpliceChannel. Removed now unused variables from
1500           CloseChannel and Tcl_UnstackChannel.  Tcl_ClearChannelHandlers
1501           uses code from Tcl_Close. Replaced this code by a call to
1502           Tcl_ClearChannelHandlers. Removed now unused variables from
1503           Tcl_Close. Added the subcommands 'cut', 'forgetch', 'splice' and
1504           'isshared' to the test code
1505           (TclTestChannelCmd).
1506
1507         * unix/tclUnixThread.c: Implemented Tcl_JoinThread using the
1508           pthread-functionality.
1509
1510         * win/tclWinThrd.c: Fixed several small typos in comments.
1511           Implemented Tcl_JoinThread using a platform independent
1512           emulation layer (see generic/tclThreadJoin.c below). Added
1513           'joinLock' to serialize Tcl_CreateThread and TclpExitThread to
1514           prevent a race for joinable threads.
1515
1516         * mac/tclMacThrd.c: Implemented Tcl_JoinThread using a platform
1517           independent emulation layer (see generic/tclThreadJoin.c
1518           below). Due to the cooperative nature of threading on this
1519           platform the race mentioned above is not present.
1520
1521         * generic/tclThreadJoin.c: New file. Contains a platform
1522           independent emulation layer helping in the implementation of
1523           joinable threads for the win and mac platforms.
1524
1525         * generic/tclInt.h: Added declarations for TclJoinThread,
1526           TclRememberJoinableThread and TclSignalExitThread. These
1527           procedures define the API of the emulation layer for joinable
1528           threads (see generic/tclThreadJoin.c above).
1529
1530         * win/Makefile.in:
1531         * win/makefile.vc: Added generic/tclTheadJoin.o to the rules.
1532
1533         * mac/: I don't know to which file generic/tclTheadJoin.o has to
1534           be added to so that it compiles. Sorry.
1535
1536         * unix/tclUnixChan.c: #ifdef'd the thread-local list of file
1537           channels as it prevents us from transfering channels. To restore
1538           this we may need an extended interface to drivers in the
1539           future. Target: 9.0. Found while testing the new transfer of
1540           channels. The information in this list for a channel was left
1541           behind and then crashed the system during finalization.
1542
1543         * generic/tclThreadTest.c: Added -joinable flag to 'testthread
1544           create'. Added subcommand 'testthread join'.
1545
1546         * doc/CrtChannel.3: Added documentation for Tcl_IsChannelRegistered,
1547           Tcl_IsChannelShared, Tcl_CutChannel, Tcl_SpliceChannel,
1548           Tcl_IsChannelExisting and Tcl_ClearChannelHandlers.
1549
1550         * doc/Thread.3: Added documentation for Tcl_JoinThread.
1551
1552         * tests/thread.test: Added tests for joining of threads.
1553
1554 2000-04-27  Eric Melski  <ericm@scriptics.com>
1555
1556         * doc/library.n: Added entries for auto_qualify and auto_import
1557         [Bug: 1271].
1558
1559         * doc/Init.3: Manual entry for Tcl_Init [Bug: 1820].
1560
1561         * doc/expr.n: Added documentation for each of the math library
1562         functions that expr supports [Bug: 1054].
1563
1564 2000-04-26  Eric Melski  <ericm@scriptics.com>
1565
1566         * doc/memory.n: Man page for Tcl "memory" command, which is
1567         created when TCL_MEM_DEBUG is defined at compile time.
1568
1569         * doc/TCL_MEM_DEBUG.3: Man page with overall information about
1570         TCL_MEM_DEBUG usage.
1571
1572         * doc/DumpActiveMemory.3: Man page for Tcl_DumpActiveMemory,
1573         Tcl_InitMemory, and Tcl_ValidateAllMemory [Bug: 1816, 1835].
1574
1575         * generic/tclCkalloc.c: Fixed some function headers.
1576
1577         * unix/mkLinks: Regen'd with new mkLinks.tcl.
1578
1579         * unix/mkLinks.tcl: Fixed indentation, made link setup more
1580         intelligent (only do one existance test per man page, instead of
1581         one per function).
1582
1583         * doc/library.n: Fixed .SH NAME macro to include each function
1584         documented on the page, so that mkLinks will know about the
1585         functions listed there, and so that the Windows help file index
1586         will get set up correctly [Bug: 1898, 5273].
1587
1588 2000-04-26  Jeff Hobbs  <hobbs@scriptics.com>
1589
1590         8.3.1 RELEASE
1591
1592         * README:
1593         * mac/README:
1594         * tools/tcl.wse.in:
1595         * unix/README:
1596         * unix/tcl.spec:
1597         * win/README:
1598         * win/README.binary: Updating URLs to reference dev.scriptics.com
1599
1600 2000-04-25  Jeff Hobbs  <hobbs@scriptics.com>
1601
1602         * unix/Makefile.in:
1603         * win/Makefile.in:
1604         * win/makefile.vc: updated for http change and some cleanup
1605         * library/http2.[13]: moved dir http2.1 to http2.3 to match version
1606
1607         * doc/Utf.3: clarified docs for Tcl_(UniChar|Utf)AtIndex
1608
1609         * unix/tclUnixThrd.c: removed {}s around PTHREAD_MUTEX_INITIALIZER
1610         [Bug: 5254]
1611
1612         * unix/tclLoadDyld.c (TclpLoadFile): removed use of interp->result
1613
1614 2000-04-25  Eric Melski  <ericm@scriptics.com>
1615
1616         * unix/mkLinks: 
1617         * doc/AddErrInfo.3: Added information about Tcl_LogCommandInfo
1618         [Bug: 1818].
1619
1620 2000-04-24  Eric Melski  <ericm@scriptics.com>
1621
1622         * unix/mkLinks: 
1623         * doc/OpenFileChnl.3: Added man entry for Tcl_Ungets [Bug: 1834].
1624
1625         * unix/mkLinks: 
1626         * doc/SourceRCFile.3: Man page for Tcl_SourceRCFile [Bug: 1833].
1627
1628         * unix/mkLinks: 
1629         * doc/ParseCmd.3: Added documentation for Tcl_ParseVar [Bug: 1828].
1630
1631 2000-04-24  Jeff Hobbs  <hobbs@scriptics.com>
1632
1633         * unix/tclUnixNotfy.c (Tcl_FinalizeNotifier, NotifierThreadProc):
1634         added write of 'q' into triggerPipe for notifier in threaded case,
1635         so that Tcl doesn't hang when children are still running [Bug: 4139]
1636
1637         * unix/tclUnixThrd.c (Tcl_MutexLock): minor comment fixes.
1638
1639 2000-04-23  Jim Ingham  <jingham@cygnus.com>
1640
1641         These changes make some error handling marginally better for Mac
1642         sockets.  It is still somewhat flakey, however.
1643
1644         * mac/tclMacSock.c (TcpClose): Add timeouts to the close - these
1645         don't seem to be honored, however.
1646         Use a separate PB for the release, since an async connect socket
1647         will still be using the original buffer.
1648         Make sure TCPRelease returns noErr before freeing the recvBuff.
1649         If the call returns an error, then the buffer is not right.
1650         * mac/tclMacSock.c (CreateSocket): Add timeouts to the async
1651         create. These don't seem to trigger, however.  Sigh...
1652         * mac/tclMacSock.c (WaitForSocketEvent): If an TCP_ASYNC_CONNECT
1653         socket errors out, then return EWOULDBLOCK & error out.
1654         * mac/tclMacSock.c (NotifyRoutine): Added a NotifyRoutine for
1655         experimenting with MacTCP.
1656
1657 2000-04-22  Jim Ingham <jingham@cygnus.com>
1658
1659         * library/package.tcl (tclPkgUnknown): Fixed a typo in the Mac package
1660         search part of tclPkgUnknown.
1661
1662 2000-04-21  Sandeep Tamhankar <sandeep@scriptics.com>
1663
1664         * library/http2.1/http.tcl: Fixed a newly introduced bug where if
1665         there's a -command callback and something goes wrong, geturl threw
1666         an exception, called the callback, and unset the token.  I changed
1667         it so that it will not call the callback when throwing an
1668         exception (so the caller only finds out about a given error from
1669         one place).  Also, fixed http::ncode so that it actually gives you
1670         back the http return code (i.e. 200, 404, etc.) instead of the
1671         first digit of the version of HTTP being used (i.e. 1).
1672
1673 2000-04-21  Brent Welch <welch@scriptics.com>
1674
1675         * library/http2.1/http.tcl: More thrashing with the "server closes
1676         without reading post data" scenario.  Reverted to the previous
1677         filevent configuratiuon, which seems to work better with small
1678         amounts of post data.  
1679
1680 2000-04-20  Jeff Hobbs  <hobbs@scriptics.com>
1681
1682         * generic/tclAlloc.c: wrapped caddr_t define to not be done on Unix
1683         * unix/tclUnixPort.h: added Tclp*Alloc defines to allow the use of
1684         USE_TCLALLOC on Unix. [Bug: 4731]
1685
1686 2000-04-19  Jeff Hobbs  <hobbs@scriptics.com>
1687
1688         * library/dde1.1/pkgIndex.tcl:
1689         * library/reg1.0/pkgIndex.tcl:
1690         * win/tclWinChan.c:
1691         * win/tclWinThrd.c: converted CRLF to LF the */tcl.hpj.in files
1692         were not converted, as it confuses hcw locally. [Bug: 5096]
1693
1694         * win/Makefile.in: expanded cleanup target for help files
1695
1696         * doc/Thread.3: minor macro cleanup
1697
1698         * generic/tclFileName.c (SplitUnixPath): added support for QNX
1699         node ids.
1700
1701 2000-04-18  Jeff Hobbs  <hobbs@scriptics.com>
1702
1703         * README:
1704         * generic/tcl.h:
1705         * tools/tcl.wse.in:
1706         * unix/configure.in:
1707         * unix/tcl.spec:
1708         * win/configure.in:
1709         * win/README.binary: bumped version to 8.3.1
1710
1711         * win/tcl.hpj.in: updated copyright date
1712
1713         * generic/tclEnv.c: environment support for Mac OS/X
1714         * unix/tclUnixPort.h: environment support for Mac OS/X
1715         * unix/tclLoadDyld.c: new file for Mac OS/X dl functions
1716         * unix/Makefile.in: added install-strip target; bindir, libdir,
1717         mandir, includedir vars; tclLoadDyld.c target [Bug: 2527]
1718
1719         * unix/tclUnixChan.c (CreateSocket): force a socket back into
1720         blocking mode (default state) after a -async connect succeeds.
1721         [Bug: 4388]
1722
1723         * generic/tclEvent.c (TclInitSubsystems): Moved tclLibraryPath to
1724         thread-local storage to prevent thread-related race condition.
1725         [Bug: 5033]
1726         * unix/tclAppInit.c (main): removed #ifdef TCL_TEST that sets the
1727         library path as it was unnecessary and conflicts with move of
1728         tclLibraryPath to thread-local storage.
1729
1730 2000-04-18  Scott Redman  <redman@scriptics.com>
1731
1732         * win/Makefile.in:
1733         * win/tcl.rc:
1734         * win/tclsh.rc:
1735         * win/tclsh.ico:  Modified copyright dates in Windows resource
1736         files.  Added an icon for tclsh.exe.
1737
1738 2000-04-17  Brent Welch <welch@scriptics.com>
1739
1740         * generic/tcl.h, generic/tclThreadTest.c, unix/tclUnixThrd.c,
1741         win/tclWinThread.c, mac/tclMacThread.c:
1742         Added Tcl_CreateThreadType and TCL_RETURN_THREAD_TYPE
1743         macros for declaring the NewThread callback proc.
1744
1745 2000-04-14  Jeff Hobbs  <hobbs@scriptics.com>
1746
1747         * unix/tclUnixChan.c (TtyParseMode): Only allow setting mark/space
1748         parity on platforms that support it [Bug: 5089]
1749
1750         * generic/tclBasic.c (Tcl_GetVersion): adjusted use of major/minor
1751         to not conflict with global decl on some systems [Bug: 2882]
1752
1753         * doc/AppInit.3:
1754         * doc/Async.3:
1755         * doc/BackgdErr.3:
1756         * doc/CrtChannel.3:
1757         * doc/CrtInterp.3:
1758         * doc/CrtMathFnc.3:
1759         * doc/DString.3:
1760         * doc/Eval.3:
1761         * doc/ExprLong.3:
1762         * doc/GetInt.3:
1763         * doc/GetOpnFl.3:
1764         * doc/Interp.3:
1765         * doc/LinkVar.3:
1766         * doc/OpenFileChnl.3:
1767         * doc/OpenTcp.3:
1768         * doc/PkgRequire.3:
1769         * doc/RecordEval.3:
1770         * doc/SetResult.3:
1771         * doc/SplitList.3:
1772         * doc/StaticPkg.3:
1773         * doc/TraceVar.3:
1774         * doc/Translate.3:
1775         * doc/UpVar.3:
1776         * doc/load.n: removed or updated references to interp->result use.
1777
1778 2000-04-13  Jeff Hobbs  <hobbs@scriptics.com>
1779
1780         * doc/regexp.n: doc clarification [Bug: 5037]
1781         * doc/update.n: typo fix [Bug: 4996]
1782
1783         * unix/tcl.m4 (SC_ENABLE_THREADS): enhanced the detection of
1784         pthread_mutex_init [Bug: 4359] and (SC_CONFIG_CFLAGS) added
1785         --enable-64bit-vis switch for Sparc VIS compilation [Bug: 4995]
1786
1787 2000-04-12  Jeff Hobbs  <hobbs@scriptics.com>
1788
1789         * doc/dde.n: corrected dde poke docs. [Bug: 4991]
1790
1791 2000-04-11  Eric Melski  <ericm@scriptics.com>
1792
1793         * win/tclWinPipe.c: Added "CONST" keyword to declaration of char
1794         *native in TclpCreateTempFile, to supress compiler warnings.
1795
1796 2000-04-10  Brent Welch <welch@scriptics.com>
1797
1798         * generic/tcl.h: Fixed Tcl_CreateThread declaration.
1799         * library/tcltest1.0/tcltest.tcl: Fixed the "mainThread"
1800         initialization to work with either testthread or the thread extension
1801         * unix/tclUnixThrd.c: Fixed compiler warning when compiling
1802         with -DTCL_THREADS
1803
1804 2000-04-10  Eric Melski  <ericm@scriptics.com>
1805
1806         * win/tclWinPipe.c (TclpCreateTempFile): Added conversion of
1807         contents string from UTF to native encoding [Bug: 4030].
1808
1809         * tests/regexp.test: Added tests for infinite looping in [regexp
1810         -all].
1811         
1812         * generic/tclCmdMZ.c: Fixed infinite loop bug with [regexp -all]
1813         [Bug: 4981].
1814
1815         * tests/*.test: Changed all occurances of "namespace import
1816         ::tcltest" to "namespace import -force ::tcltest" [Bug: 3948].
1817
1818 2000-04-09  Brent Welch <welch@scriptics.com>
1819
1820         * lib/httpd2.1/http.tcl: Worked on the "server closes before
1821         reading post data" case, which unfortunately causes different
1822         error cases on Solaris, which can read the reply, and Linux
1823         and Windows, which cannot read anything.  This is all in the
1824         loop-back case - client and server on the same host.  Also
1825         unified the error handling so the "ioerror" status goes away
1826         and errors are reflected in a more uniform way. Updated the
1827         man page to document the behavior.
1828
1829 2000-04-09  Jeff Hobbs  <hobbs@scriptics.com>
1830
1831         * tests/reg.test (matchexpected): corrected tests to use tcltest
1832         constraint types to skip certain tests.
1833
1834         * generic/tclBasic.c (Tcl_SetCommandInfo): comment fix
1835
1836         * unix/tclUnixThrd.c (Tcl_CreateThread): moved TCL_THREADS ifdef
1837         inside of func as it is declared for non-threads builds as well.
1838         In the non-threads case, it always returns TCL_ERROR (couldn't
1839         create thread).
1840
1841 2000-04-08  Andreas Kupries <a.kupries@westend.com>
1842
1843         * Overall change: Definition of a public API for the creation of
1844           new threads.
1845
1846         * generic/tclInt.h (line 1802f): Removed the definition of
1847         'TclpThreadCreate'. (line 793f) Removed the definition of
1848         'Tcl_ThreadCreateProc'.
1849
1850         * generic/tcl.h (line 388f): Readded the definition of
1851           'Tcl_ThreadCreateProc'. Added Win32 stuff send in by David
1852           Graveraux <davygrvy@bigfoot.com> to that too (__stdcall,
1853           ...). Added macros for the default stacksize and allowed flags.
1854
1855         * generic/tcl.decls (line 1356f): Added definition of
1856           'Tcl_CreateThread', slot 393 of the stub table. Two new
1857           arguments in the public API, for stacksize and flags.
1858
1859         * win/tclWinThrd.c:
1860         * mac/tclMacThrd.c: Renamed TclpThreadCreate to Tcl_CreateThread,
1861           added handling of the stacksize. Flags are currently ignored.
1862
1863         * unix/tclUnixThrd.c: See above, but handles joinable
1864           flag. Ignores the specified stacksize if the macro
1865           HAVE_PTHREAD_ATTR_SETSTACKSIZE is not defined.
1866
1867         * generic/tclThreadTest.c (line 363): See below.
1868
1869         * unix/tclUnixNotfy.c (line 210): Adapted to the changes
1870           above. Uses default stacksize and no flags now.
1871
1872         * unic/tcl.m4 (line 382f): Added a check for
1873           'pthread_attr_setstacksize' to detect platforms not implementing
1874           this feature of pthreads. If it is implemented, configure will
1875           define the macro HAVE_PTHREAD_ATTR_SETSTACKSIZE (See
1876           unix/tclUnixThrd.c too).
1877
1878         * doc/Thread.3: Added Tcl_CreateThread and its arguments to the
1879           list of described functions. Removed stuff about not providing a
1880           public C-API for thread-creation.
1881
1882 2000-04-07  Jeff Hobbs  <hobbs@scriptics.com>
1883
1884         * doc/binary.n: clarified docs on sign extension in binary scan
1885         [Bug: 3466]
1886
1887         * library/tcltest1.0/tcltest.tcl (initConstraints): removed win32s
1888         references (no longer supported)
1889
1890         * tests/fCmd.test: marked test 8.1 knownBug because it is
1891         dangerous on poorly configured systems [Bug: 3881]
1892         and added 8.2 to keep essence of 8.1 tested.
1893
1894 2000-04-05  Andreas Kupries <a.kupries@westend.com>
1895
1896         * generic/tclIO.c (Tcl_UnstackChannel, line 1831): Forcing
1897         interest mask to the correct value after an unstack and
1898         re-initialization of the notifier via the watchProc. Without this
1899         the first fileevent after an unstack will come through and be
1900         processed, but no more. [Bug: ??].
1901
1902 2000-03-04  Brent Welch  <welch@scriptics.com>
1903
1904         * {win,unix}/Makefile.in: added dependency of tclStubInit.c on
1905         tcl.decls and tclInt.decls
1906         * generic/tclThread.c: Tweak so this compiles w/out TCL_THREADS
1907         * generic/{tcl.decls,tclStubInit.c}:  Just touched the tcl.decls and
1908         regenerated the tclStubInit.c file
1909
1910 2000-03-29  Sandeep Tamhankar <sandeep@scriptics.com>
1911
1912         * library/http2.1/http.tcl: For the -querychannel option,
1913         fconfigure the socket to be binary so that we don't translate
1914         anything while reading the data.  This is because we determine the
1915         content length of the data on the channel by using seek (to the end
1916         of the file) and tell on the file handle, and we need the
1917         content-length to match the amount of data actually sent, and
1918         translation can affect the number of bytes posted.
1919
1920 2000-04-03  Andreas Kupries <a.kupries@westend.com>
1921
1922         * Overall change: Definition of public API's for the finalization
1923         of conditions and mutexes. [Bug: 4199].
1924
1925         * generic/tclInt.h: Removed definitions of TclFinalizeMutex and
1926         TclFinalizeCondition.
1927
1928         * generic/tcl.decls: Added declarations of Tcl_MutexFinalize and
1929         Tcl_ConditionFinalize.
1930
1931         * generic/tclThread.c: Renamed TclFinalizeMutex to
1932         Tcl_MutexFinalize. Renamed TclFinalizeCondition to
1933         Tcl_ConditionFinalize.
1934
1935         * generic/tclNotify.c: Changed usage of TclFinalizeMutex to
1936         Tcl_MutexFinalize.
1937
1938         * unix/tclUnixNotfy.c: 
1939         * generic/tclThreadTest.c: Changed usages of TclFinalizeCondition to
1940         Tcl_ConditionFinalize.
1941
1942         * generic/tcl.h: Added empty macros for Tcl_MutexFinalize and
1943         Tcl_ConditionFinalize, to be used when the core is compiled
1944         without threads. 
1945
1946         * doc/Thread.3: Added description the new API's.
1947
1948 2000-04-03  Jeff Hobbs  <hobbs@scriptics.com>
1949
1950         * generic/tclCmdIL.c (InfoVarsCmd): checked for non-NULL procPtr
1951         to prevent itcl info override crash [Bug: 4064]
1952
1953         * tests/foreach.test:
1954         * tests/namespace.test:
1955         * tests/var.test: Added lsorts to avoid random sorted return
1956         problems. [Bug: 2682]
1957
1958         * tests/fileName.test: fixed 14.1 test fragility [Bug: 1482]
1959
1960         * tools/man2help2.tcl: fixed winhelp cross-linking error [Bug: 4156]
1961         improved translation to winhelp [Bug: 3679]
1962
1963         * unix/Makefile.in (MAN_INSTALL_DIR): patch to accept --mandir
1964         correctly [Bug: 4085]
1965
1966         * unix/dltest/pkg[a-e].c: Cleaned up test packages [Bug: 2293]
1967
1968 2000-04-03  Eric Melski  <ericm@scriptics.com>
1969
1970         * unix/tclUnixFCmd.c (SetGroupAttribute): 
1971         * unix/tclUnixFCmd.c (SetOwnerAttribute): Added (uid_t) and (gid_t) 
1972         casts to avoid compiler warnings.
1973
1974 2000-03-31  Eric Melski  <ericm@scriptics.com>
1975
1976         * generic/tclGet.c (Tcl_GetDouble): Added additional conditions to
1977         error test (previously only errno was checked, but the return
1978         value of strtod() should be checked as well).  [Bug: 4118].
1979
1980         * tests/exec.test: Added test for proper conversion of UTF data
1981         when used with "<< $dataWithUTF" on exec's.
1982
1983         * unix/tclUnixPipe.c (TclpCreateTempFile): Added
1984         Tcl_UtfToExternalDString call, so that if there is UTF content in
1985         the string it will be properly converted to the system encoding
1986         before being written [Bug: 4030].
1987         (TclpCreateTempFile): Added a check on the return value of tmpnam;
1988         some systems (Linux, for example) will start to return NULL after
1989         tmpnam has been called TMP_MAX times; not checking for this can
1990         have bad results (overwriting temp files, core dumps, etc.)
1991
1992 2000-03-30  Jeff Hobbs  <hobbs@scriptics.com>
1993
1994         * generic/tclBasic.c (Tcl_DeleteCommandFromToken): Added comments
1995         noting the need to pair ckalloc with ckfree. [Bug: 4262]
1996
1997         * generic/tclInt.decls:
1998         * generic/tclIntPlatDecls.h:
1999         * generic/tclStubInit.c:
2000         * win/tclWin32Dll.c: removed TclWinSynchSpawn (vestige of Win32s
2001         support).
2002
2003         * win/tclWinReg.c: made use of TclWinGetPlatformId instead of
2004         getting info again
2005
2006         * win/tclWinPort.h:
2007         * win/Makefile.in:
2008         * win/configure.in:
2009         * win/tcl.m4: Added support for gcc/mingw on Windows [Bug: 4234]
2010
2011 2000-03-29  Jeff Hobbs  <hobbs@scriptics.com>
2012
2013         * generic/tclCompile.c (TclCleanupByteCode): made ByteCode cleanup
2014         more aware of TCL_BYTECODE_PRECOMPILED flagged structs (gen'd by
2015         tbcload), to correctly clean them up.
2016
2017         * generic/tclClock.c (FormatClock): moved check for empty format
2018         earlier, commented 0 result return value
2019
2020 2000-03-29  Sandeep Tamhankar <sandeep@scriptics.com>
2021
2022         * library/http2.1/http.tcl: Removed an unnecessary fileevent
2023         statement from the error processing part of the Write method.
2024         Also, fixed two potential memory leaks in wait and reset, in which
2025         the state array wasn't being unset before throwing an exception.
2026         Prior to this version, Brent checked in a fix to catch a
2027         fileevent statement that was sometimes causing a stack trace when
2028         geturl was called with -timeout.  I believe Brent's fix is
2029         necessary because TLS closes bad sockets for secure connections,
2030         and the fileevent was trying to act on a socket that no longer
2031         existed.
2032
2033 2000-03-27  Jeff Hobbs  <hobbs@scriptics.com>
2034
2035         * tests/httpd: removed unnecessary 'puts stderr "Post Dispatch"'
2036
2037         * tests/namespace.test:
2038         * generic/tclNamesp.c (Tcl_Export): added a uniq'ing test to the
2039         export list so only one instance of each export pattern would
2040         exist in the list.
2041
2042         * generic/tclExecute.c (TclExecuteByteCode): optimized case for
2043         the empty string in ==/!= comparisons
2044
2045 2000-03-27  Eric Melski  <ericm@scriptics.com>
2046
2047         * unix/tclUnixChan.c: Added (off_t) type casts in lseek() call
2048         [Bug: 4409].
2049
2050         * unix/tclLoadAout.c: 
2051         * unix/tclUnixPipe.c: Added (off_t) type casts in lseek() calls
2052         [Bug: 4410].
2053
2054 2000-03-22  Sandeep Tamhankar <sandeep@scriptics.com>
2055
2056         * library/http2.1/http.tcl: Fixed a bug where string query data
2057         that was bigger than queryblocksize would get duplicate characters
2058         at block boundaries.
2059
2060 2000-03-22  Sandeep Tamhankar <sandeep@scriptics.com>
2061
2062         * library/http2.1/http.tcl: Fixed bug 4463, where we were getting
2063         a stack trace if we tried to publish a project to a good host but
2064         a port where there was no server listening.  It turned out the
2065         problem was a stray fileevent that needed to be cleared.  Also,
2066         fixed a bug where http::code could stack trace if called on a bad
2067         token (one which didn't represent a successful geturl) by adding
2068         an http element to the state array in geturl.
2069
2070 2000-03-21  Eric Melski  <ericm@scriptics.com>
2071
2072         * tests/clock.test: Modified some tests that were not robust with
2073         respect to the time zone in which they were run and were thus
2074         failing.
2075
2076         * doc/clock.n: Clarified meaning of -gmt with respect to -base
2077         when used with [clock scan] (-gmt does not affect the
2078         interpretation of -base).
2079
2080 2000-03-19  Sandeep Tamhankar <sandeep@scriptics.com>
2081
2082         * library/http2.1/http.tcl: geturl used to throw an exception when
2083         the connection failed; I accidentally returned a token with the
2084         error info, breaking backwards compatibility.  I changed it back
2085         to throwing an exception, but unsetting the state array first
2086         (thus still eliminating the original memory leak problem).
2087
2088 2000-03-19  Sandeep Tamhankar <sandeep@scriptics.com>
2089
2090         * library/http2.1/http.tcl: Added -querychannel option and altered
2091         some of Brent's modifications to allow asynchronous posts (via
2092         -command).  Also modified -queryprogress so that it calls the
2093         query callback as <callback> <token> <total size> <current size>
2094         to be consistent with -progress.  Added -queryblocksize option
2095         with default 8192 bytes for post blocksize.  Fixed a bunch of
2096         potential memory leaks for the case when geturl receives bad args
2097         or can't open a socket, etc.  Overall, the package really rocks
2098         now.
2099
2100         * doc/http.n: Added -queryblocksize, -querychannel, and
2101         -queryprogress.  Also, changed the description of -blocksize,
2102         which states that the -progress callback will be called for each
2103         block, to now qualify that with an "if -progress is specified".
2104
2105         * tests/http.test: Added a querychannel test for synchronous and
2106         asynchronous posts, altered the queryprogress test such that the
2107         callback conforms to the -progress format.  Also, had to use the
2108         -queryblocksize option to do the post 16K at a time to match
2109         Brent's expected results (and to test that -queryblocksize works).
2110
2111 2000-03-15  Brent Welch <welch@scriptics.com>
2112
2113         * library/http2.1/http.tcl: Added -queryprogress callback to
2114         http::geturl and also changed it so that writing the post data
2115         is event driven if the queryprogress callback or a timeout is given.
2116         This allows a timeout to occur when writing lots of post data.
2117         The queryprogress callback is called after each block of query
2118         data is posted.  It has the same signature as the -progress callback.
2119
2120 2000-03-06  Eric Melski  <ericm@scriptics.com>
2121
2122         * library/package.tcl: Applied patch from Bug: 2570; rather than
2123         setting geometry of slave interp to 0x0 when Tk was loaded, it now
2124         does "wm withdraw .".  Both remove the main window from the
2125         display, but the former caused some internal structures to get
2126         initialized to zero, which caused crashes with some extensions.
2127
2128 2000-03-02  Jeff Hobbs  <hobbs@scriptics.com>
2129
2130         * library/package.tcl (tclPkgUnknown): extended to allow
2131         recognizes changes in the auto_path while sourcing in other
2132         pkgIndex.tcl files
2133
2134         * doc/FindExec.3: fixed doc for declaration of Tcl_FindExecutable
2135         [Bug: 4275]
2136
2137         * generic/tclFileName.c (Tcl_TranslateFileName): Applied patch
2138         from Newman to significantly speedup file split/join on Windows
2139         (replaces regexp with custom parser).  [Bug: 2867]
2140
2141         * win/README.binary: change mailing lists from @consortium.org
2142         to @scriptics.com [Bug: 4173]
2143
2144 2000-02-28  Eric Melski  <ericm@scriptics.com>
2145
2146         * tests/clock.test: Added test for ISO bases < 100000
2147
2148         * generic/tclDate.c: (generated on Solaris)
2149         * generic/tclGetDate.y: Changed condition for deciding if a number
2150         is an ISO 8601 base from number >= 100000 to numberOfDigits >= 6.
2151         Previously it would fail to recognize 000000 as an ISO base.
2152
2153 2000-02-14  Eric Melski  <ericm@scriptics.com>
2154
2155         * unix/Makefile.in: Added rpm target to generate Tcl binary RPM.
2156
2157         * unix/tcl.spec: RPM specification file for a Tcl binary RPM for
2158         Linux.
2159
2160 2000-02-10  Jeff Hobbs  <hobbs@scriptics.com>
2161
2162         8.3.0 RELEASE
2163
2164         * changes: updated for 8.3.0 release
2165
2166         * doc/load.n: added notes about dll load errors on Windows
2167
2168         * unix/README:
2169         * unix/Makefile.in (dist): removed porting.notes and porting.old
2170         from distribution and CVS.  The information was very outdated.  Now
2171         refer to http://dev.scriptics.com/services/support/platforms.html
2172
2173         * tests/unixInit.test: fixed japanese LANG encoding test [Bug: 3549]
2174
2175         * unix/configure.in:
2176         * unix/tcl.m4: correct CFLAG_WARNING setting,
2177         fixed gcc config for AIX,
2178         added -export-dynamic to LDFLAGS for FreeBSD-3+ [Bug: 2998]
2179
2180         * win/tclWinLoad.c (TclpLoadFile): improved error message for load
2181         failures, could perhaps be even more intelligent.
2182
2183 2000-02-09  Jim Ingham   <jingham@cygnus.com>
2184
2185         * mac/tclMacSock.c: Don't panic when you get an error closing an async 
2186         socket.  This doesn't seem to hurt anything, and we return the error so
2187         the caller can do the right thing.
2188
2189         New Files:
2190         * mac/MW_TclHeader.h:
2191         * mac/MW_TclTestHeader.h:
2192         * mac/MW_TclTestHeader.pch:
2193         * mac/MW_TclAppleScriptHeader.h: More convenient to use .h prefix files
2194         in the preference panels...
2195
2196         The above are curtesy of Daniel Steffen (steffen@math.mq.edu.au)
2197
2198 2000-02-08  Eric Melski  <ericm@scriptics.com>
2199
2200         * tests/clock.test: Added tests for "next monthname" constructs.
2201         * generic/tclDate.c: 
2202         * generic/tclGetDate.y (Message): Added a grammar rule for "next
2203         monthname" so that we can handle "next january" and similar
2204         constructs (bug #4146).
2205
2206 2000-02-08  Jeff Hobbs  <hobbs@scriptics.com>
2207
2208         * README:
2209         * tools/tcl.wse.in:
2210         * unix/configure.in:
2211         * win/configure.in:
2212         * win/README:
2213         * win/README.binary:
2214         * generic/tcl.h (TCL_RELEASE_SERIAL): Moved to 8.3.0 patchlevel
2215
2216         * doc/library.n:
2217         * library/auto.tcl: fixed crufty puts code and docs [Bug: 4122]
2218
2219         * library/tcltest1.0/tcltest.tcl: correctly protected searchDirectory
2220         list to allow dirnames with spaces
2221
2222         * unix/tcl.m4: changed all -fpic to -fPIC
2223
2224         * generic/tclDecls.h:
2225         * generic/tcl.decls: change Tcl_GetOpenFile to use decl of 'int
2226         forWriting' instead of 'int write' to avoid shadowing [Bug: 4121]
2227
2228         * tests/httpold.test: changed test script to source in the httpd
2229         server procs from httpd instead of having its own set.
2230
2231         * tests/httpd: improved query support in test httpd to handle fix
2232         in http.tcl. [Bug: 4089 change 2000-02-01]
2233
2234         * unix/README: fixed notes about --enable-shared and add note
2235         about --disable-shared.
2236
2237 2000-02-07  Eric Melski  <ericm@scriptics.com>
2238
2239         * tests/package.test: 
2240         * library/tclIndex: 
2241         * library/package.tcl: Renamed ::package namespace to ::pkg.
2242
2243 2000-02-03  Eric Melski <ericm@scriptics.com>
2244
2245         * doc/Package.n:
2246         * doc/packagens.n: Renamed Package.n -> packagens.n because Windows 
2247         can't deal with case-sensitive names.
2248
2249 2000-02-02  Jeff Hobbs  <hobbs@scriptics.com>
2250
2251         * tests/regexp.test: added tests for -all and -inline switches
2252         * doc/regexp.n: added docs for -all and -inline switches
2253         * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): added extra comments for
2254         new -all and -inline switches to regexp command
2255
2256 2000-02-01  Eric Melski  <ericm@scriptics.com>
2257
2258         * library/init.tcl: Applied patch from rfe 1734 regarding
2259         auto_load errors not setting error message and errorInfo properly.
2260
2261 2000-02-01  Jeff Hobbs  <hobbs@scriptics.com>
2262
2263         * win/Makefile.in (install-*): reduced verbosity of install
2264
2265         * generic/tclFileName.c (Tcl_JoinPath): improved support for special
2266         QNX node id prefixes in pathnames [Bug: 4053]
2267
2268         * library/http1.0/http.tcl:
2269         * library/http2.1/http.tcl: The query data POSTed was newline
2270         terminated when it shouldn't be altered [Bug: 4089]
2271
2272 2000-01-31  Eric Melski  <ericm@scriptics.com>
2273
2274         * tests/package.test: 
2275         * library/tclIndex: 
2276         * library/package.tcl: Added ::package namespace and
2277         ::package::create function.
2278
2279         * library/init.tcl: Fixed problem with auto_load and determining
2280         if commands were loaded.
2281
2282         * library/auto.tcl: "Fixed" issues with $ in files to be auto indexed.
2283
2284         * doc/Package.n: New man page for package::create function.
2285
2286         * doc/pkgMkIndex.n: Added additional information.
2287
2288         * doc/library.n: Added additional qualification regarding auto_mkindex.
2289
2290 2000-01-28  Eric Melski  <ericm@scriptics.com>
2291
2292         * tests/pkg/magicchar2.tcl: 
2293         * tests/autoMkindex.test: Test for auto loader fix (bug #2480).
2294
2295         * library/init.tcl: auto_load was using [info commands $name] to
2296         determine if a given command was available; if the command name
2297         had * or [] it, this would fail because info commands uses
2298         glob-style matching.  This is fixed.  (Bug #2480).
2299
2300         * tests/pkg/spacename.tcl: 
2301         * tests/pkgMkIndex.test: Tests for fix for bug #2360.
2302
2303         * library/package.tcl: Fixed to extract only the first element of
2304         the list returned by auto_qualify (bug #2360).
2305
2306         * tests/pkg/magicchar.tcl: 
2307         * tests/autoMkindex.test: Test for fix for bug #2611.
2308
2309         * library/auto.tcl: Fixed the regular expression that performs $
2310         escaping before sourcing a file to index.  It was erroneously
2311         adding \ escapes even to $'s that were already escaped,
2312         effectively "un-escaping" those $'s.  (bug #2611).
2313
2314 2000-01-27  Eric Melski  <ericm@scriptics.com>
2315
2316         * tests/autoMkindex.test: 
2317         * library/auto.tcl: Applied patch (with slight modification) from
2318         bug #2701:  auto_mkIndex uses platform dependent file paths.
2319         Added test for fix.
2320
2321 2000-01-27  Jennifer Hom  <jenn@scriptics.com>
2322
2323         * library/tcltest1.0/tcltest.tcl: Changed NormalizePath to
2324         normalizePath and exported it as a public proc.  This proc 
2325         creates an absolute path given the name of the variable containing
2326         the path to modify.  The path is modified in place.
2327         * library/tcltest1.0/pkgIndex.tcl: Added normalizePath.
2328         * tests/all.tcl: Changed code to use normalizePath.
2329
2330 2000-01-27  Eric Melski  <ericm@scriptics.com>
2331
2332         * tests/pkg/samename.tcl: test file for bug #1983
2333         
2334         * tests/pkgMkIndex.test: 
2335         * doc/pkgMkIndex.n: 
2336         * library/package.tcl: Per rfe #4097, optimized creation of direct
2337         load packages to bypass computing the list of commands added by
2338         the new package.  Also made direct loading the default, and added
2339         a -lazy option.
2340         Fixed bug #1983, dealing with pkg_mkIndex incorrectly handling
2341         situations with two procs by the same name but in different
2342         namespaces (ie, foo::baz and bar::baz).
2343
2344 2000-01-26  Eric Melski  <ericm@scriptics.com>
2345
2346         * generic/tclNamesp.c: Undid fix for #956, which broke backwards
2347         compatibility.
2348
2349         * doc/variable.n: 
2350         * doc/trace.n: 
2351         * doc/namespace.n: 
2352         * doc/info.n: Added further information about differences between
2353         "namespace which" and "info exists".
2354
2355         * doc/SetErrno.3: Added descriptions of ErrnoId() and ErrnoMsg()
2356         functions.
2357
2358 2000-01-25  Jeff Hobbs  <hobbs@scriptics.com>
2359
2360         * unix/tcl.m4: modified EXTRA_CFLAGS to add -DHAVE_TZSET for
2361         OSF1-V* and ULTRIX-4.* when not using gcc.  Also added higher min
2362         stack size for OSF1-V* when building with threads. [Bug: 4063]
2363
2364         * generic/tclClock.c (FormatClock): inlined resultPtr, as it
2365         conflicted with var creation for HAVE_TZSET #def [Bug: 4063]
2366
2367         * generic/tclCmdIL.c (Tcl_LsortObjCmd): fixed potential leak
2368         when calling lsort -command with bad command [Bug: 4067]
2369
2370         * generic/tclFileName.c (Tcl_JoinPath): added support for special
2371         QNX node id prefixes in pathnames [Bug: 4053]
2372
2373         * doc/ListObj.3: clarified Tcl_ListObjGetElements docs [Bug: 4080]
2374
2375         * doc/glob.n: clarified Mac path separator determination docs.
2376
2377         * win/makefile.vc: added some support for building helpfile on Windows
2378
2379 2000-01-23  Jeff Hobbs  <hobbs@scriptics.com>
2380
2381         * library/init.tcl (auto_execok): added 'start' to list of
2382         recognized built-in commands for COMSPEC on NT. [Bug: 2858]
2383
2384         * unix/tclUnixPort.h: moved include of <utime.h> lower since some
2385         systems (UTS) require sys/types.h to be included first [Bug: 4031]
2386
2387         * unix/tclUnixChan.c (CreateSocketAddress): changed comparison
2388         with -1 to 0xFFFFFFFF, to ensure 32 bit comparison even on 64 bit
2389         systems. [Bug: 3878]
2390
2391         * generic/tclFileName.c: improved guessing of path separator
2392         for the Mac. (Darley)
2393
2394         * generic/tclInt.h:
2395         * generic/tcl.decls: moved Tcl_ProcObjCmd to stubs table [Bug: 3827]
2396         and removed 'register' from stub definition of
2397         Tcl_AppendUnicodeToObj [Bug: 4038]
2398
2399 2000-01-21  Eric Melski  <ericm@scriptics.com>
2400
2401         * unix/mkLinks: 
2402         * doc/GetHostName.3: Man page for Tcl_GetHostName (bug #1817).
2403
2404         * doc/lreplace.n: Corrected man page with respect to treatment of
2405         empty lists, and "prettied up" the page. (bug #1705).
2406
2407 2000-01-20  Eric Melski  <ericm@scriptics.com>
2408
2409         * tests/namespace.test: Added test for undefined variables with
2410         namespace which (bug #956).
2411
2412         * generic/tclNamesp.c: Added check for undefined variables in
2413         NamespaceWhichCmd (bug #956).
2414
2415         * tests/var.test: Added tests for corrected variable behavior 
2416         (bug #981).
2417
2418         * doc/upvar.n: Expanded explanation of upvar behavior with respect to
2419         variable traces.  (bugs 3917 1433 2110).
2420
2421         * generic/tclVar.c: Changed behavior of variable command when name
2422         refers to an element in an array (ie, "variable foo(x)") to always
2423         return an error, regardless of existance of that element in the
2424         array (now behavior is consistant with docs too) (bug #981).
2425
2426 2000-01-20  Jeff Hobbs  <hobbs@scriptics.com>
2427
2428         * generic/tclCmdIL.c (InfoBodyCmd): made [info body] return a
2429         string if the body has been bytecompiled.
2430         * generic/tclBasic.c (Tcl_EvalObjEx): added pedantic check for
2431         originating proc body of bytecompiled code, #def'd out as the
2432         change for [info body] should make it unnecessary
2433
2434         * unix/tclUnixNotfy.c (Tcl_InitNotifier): added cast for tsdPtr
2435
2436         * tests/set.test: added test for complex array elem name compiling
2437         * generic/tclCompCmds.c (TclCompileSetCmd): Fixed parsing of array
2438         elements during compiling, and slightly optimised same [Bug: 3889]
2439
2440         * doc/tclvars.n: added definitions for tcl_(non)wordchars
2441
2442         * doc/vwait.n: added notes about requirement for vwait var being
2443         globally scoped [Bug: 3329]
2444
2445         * library/word.tcl: changed tcl_(non)wordchars settings to use
2446         new unicode regexp char class escapes instead of char sequences
2447
2448 2000-01-14  Eric Melski  <ericm@scriptics.com>
2449
2450         * tests/var.test: Added a test for the array multiple delete
2451         protection in Tcl_UnsetVar2.
2452
2453         * generic/tclVar.c: Added protection in Tcl_UnsetVar2 against
2454         attempts to multiply delete arrays when unsetting them (bug
2455         #3453).  This could happen if there was an unset trace on an array
2456         element and the trace proc made a global or upvar link to the
2457         array, and then the array was unset at the global level.  See the
2458         bug reference for more information.
2459
2460         * unix/tclUnixTime.c: New clock format format.
2461
2462         * compat/strftime.c: New clock format format.
2463
2464         * generic/tclGetDate.y: New clock scan format.
2465
2466 2000-01-13  Jeff Hobbs  <hobbs@scriptics.com>
2467
2468         * changes: updated changes file to reflect 8.3b2 mods
2469
2470         * README:
2471         * generic/tcl.h:
2472         * tools/tcl.wse.in:
2473         * unix/configure.in:
2474         * unix/tcl.m4:
2475         * win/README.binary:
2476         * win/configure.in: updated to patchlevel 8.3b2
2477
2478         * generic/regexec.c: added var initialization to prevent compiler
2479         warning
2480
2481 2000-01-13  Eric Melski  <ericm@scriptics.com>
2482
2483         * tests/cmdIL.test: Added tests for lsort -dictionary with
2484         characters that occur between Z and a in ASCII.
2485
2486         * generic/tclCmdIL.c: Modified DictionaryCompare function (used by
2487         lsort -dictionary) to do upper/lower case equivalency before doing
2488         character comparisons, instead of after.  This fixes bug #1357, in
2489         which lsort -dictionary [list ` AA c CC] and lsort -dictionary
2490         [list AA c ` CC] gave different (and both wrong) results.
2491
2492 2000-01-12  Eric Melski  <ericm@scriptics.com>
2493
2494         * tests/clock.test: Added tests for "next <day-of-week>" and
2495         "<day-of-week>"
2496         Added tests for "monday 1 week ago", etc, from RFE #3671.
2497
2498         * doc/tests/clock.test: Added numerous tests for clock scan.
2499
2500         * doc/generic/tclGetDate.y: Fixed some shift/reduce conflicts in
2501         clock grammar.
2502
2503         * doc/doc/clock.n: Added documentation for new supported clock
2504         scan formats and additional explanation of daylight savings time
2505         correction algorithm.
2506
2507 2000-01-12  Jeff Hobbs  <hobbs@scriptics.com>
2508
2509         * doc/file.n:
2510         * tests/unixFCmd.test:
2511         * unix/tclUnixFCmd.c: added support for symbolic permissions
2512         setting in SetPermissionsAttribute (file attr $file -perm ...)
2513         [Bug: 3970]
2514
2515         * generic/tclClock.c: fixed support for 64bit handling of clock
2516         values [Bug: 1806]
2517
2518         * generic/tclThreadTest.c: upped a buffer size to hold double
2519
2520         * tests/info.test:
2521         * generic/tclCmdIL.c: fixed 'info procs ::namesp::*' behavior (Dejong)
2522
2523         * generic/tclNamesp.c: made imported commands also import their
2524         compile proc [Bug: 2100]
2525
2526         * tests/expr.test:
2527         * unix/Makefile.in:
2528         * unix/configure.in:
2529         * unix/tcl.m4: recognize strtod bug on Tru64 v5.0 [Bug: 3378]
2530         and added tests to prevent unnecessary chmod +x in sources while
2531         installing, as well as more intelligent setsockopt/gethostbyname
2532         checks [Bug: 3366, 3389]
2533
2534         * unix/tclUnixThrd.c: added compile time support (through use of
2535         the TCL_THREAD_STACK_MIN define) for increasing the default stack
2536         size for a thread. [Bug: 3797, 1966]
2537
2538 2000-01-11  Eric Melski  <ericm@scriptics.com>
2539
2540         * generic/tclGetDate.y: Added comments for the Convert function.
2541         Added a fix for daylight savings time handling for relative time
2542         spans of days, weeks or fortnights. (bug 3441, 3868).
2543
2544         * generic/tclDate.c: Fixed compiler warning issues.
2545
2546 2000-01-10  Jeff Hobbs  <hobbs@scriptics.com>
2547
2548         * compat/waitpid.c: use pid_t type instead of int [Bug: 3999]
2549
2550         * tests/utf.test: fixed test that allowed \8 as octal value
2551         * generic/tclUtf.c: changed Tcl_UtfBackslash to not allow
2552         non-octal digits (8,9) in \ooo substs. [Bug: 3975]
2553
2554         * generic/tcl.h: noted need to change win/tcl.m4 and
2555         tools/tclSplash.bmp for minor version changes
2556
2557         * library/http2.1/http.tcl: trim value for $state(meta) key
2558
2559         * unix/tclUnixFile.c: fixed signature style on functions
2560
2561         * unix/Makefile.in: made sure tcl.m4 would be installed with dist
2562
2563         * unix/tcl.m4: added ELF support for NetBSD [Bug: 3959]
2564
2565 2000-01-10  Eric Melski  <ericm@scriptics.com>
2566
2567         * generic/tclGetDate.y: Added rules for ISO 8601 formats (BUG #847):
2568         CCYY-MM-DD
2569         CCYYMMDD
2570         YY-MM-DD
2571         YYMMDD
2572         CCYYMMDDTHHMMSS
2573         CCYYMMDD HHMMSS
2574         CCYYMMDDTHH:MM:SS
2575         Fixed "clock scan <number>" to scan the number as an hour for the
2576         current day, rather than a minute after 00:00 for the current day
2577         (bug #2732).
2578
2579 2000-01-07  Eric Melski  <ericm@scriptics.com>
2580
2581         * generic/tclClock.c: Changed switch in Tcl_ClockObjCmd to use
2582         enumerated values instead of constants. (ie, COMMAND_SCAN instead
2583         of 3).