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