summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2002-09-24 22:00:43 +0000
committerKeith Seitz <keiths@redhat.com>2002-09-24 22:00:43 +0000
commitc2e8768187b8a0373793db9afd305d89d09de3a3 (patch)
treedc4c543fb6ba1607068f1861f6de8092c3847373
parentc709ff98b014a66934671dcece6d2b26d5101b1a (diff)
downloadgdb-TCL_8_4_0.tar.gz
one more time: import tcl 8.4.0TCL_8_4_0
-rw-r--r--tcl/ChangeLog10355
-rw-r--r--tcl/README187
-rw-r--r--tcl/changes8793
-rw-r--r--tcl/compat/license.terms9
-rw-r--r--tcl/doc/license.terms9
-rw-r--r--tcl/generic/README6
-rw-r--r--tcl/library/license.terms9
-rw-r--r--tcl/library/tclIndex343
-rw-r--r--tcl/license.terms9
-rw-r--r--tcl/mac/README82
-rw-r--r--tcl/mac/bugs.doc86
-rw-r--r--tcl/mac/license.terms9
-rw-r--r--tcl/macosx/Makefile16
-rw-r--r--tcl/tests/README91
-rw-r--r--tcl/tests/all.tcl20
-rw-r--r--tcl/tests/event.test1169
-rw-r--r--tcl/tests/get.test165
-rw-r--r--tcl/tests/license.terms9
-rw-r--r--tcl/tests/main.test1197
-rw-r--r--tcl/tests/obj.test599
-rw-r--r--tcl/tests/safe.test645
-rw-r--r--tcl/tests/util.test359
-rw-r--r--tcl/unix/Makefile.in1651
-rw-r--r--tcl/unix/README152
-rwxr-xr-xtcl/unix/configure5858
-rwxr-xr-xtcl/unix/configure.in691
-rwxr-xr-xtcl/unix/mkLinks2920
-rw-r--r--tcl/win/Makefile.in824
-rw-r--r--tcl/win/README119
-rw-r--r--tcl/win/buildall.vc.bat9
-rwxr-xr-xtcl/win/configure526
-rwxr-xr-xtcl/win/configure.in235
-rw-r--r--tcl/win/license.terms9
-rw-r--r--tcl/win/makefile.bc859
-rw-r--r--tcl/win/makefile.vc857
-rw-r--r--tcl/win/rules.vc2
-rw-r--r--tcl/win/tcl.m440
37 files changed, 20626 insertions, 18293 deletions
diff --git a/tcl/ChangeLog b/tcl/ChangeLog
index 0ff16040b3b..2884fcf180c 100644
--- a/tcl/ChangeLog
+++ b/tcl/ChangeLog
@@ -1,12 +1,12 @@
2002-09-10 Daniel Steffen <das@users.sourceforge.net>
- * unix/Makefile.in: added DYLIB_INSTALL_DIR variable for Darwin
+ * unix/Makefile.in: added DYLIB_INSTALL_DIR variable for macosx
and set it to default value ${LIB_RUNTIME_DIR}
* unix/tcl.m4 (Darwin): use DYLIB_INSTALL_DIR instead of
LIB_RUNTIME_DIR in the -install_name argument to ld.
* unix/configure: regen.
- * macosx/Wish.pbproj/project.pbxproj:
+ * macosx/Tcl.pbproj/project.pbxproj:
* macosx/Makefile: added support for building Tcl as an embedded
framework, i.e. using an dyld install_name containing
@executable_path/../Frameworks via the new DYLIB_INSTALL_DIR
@@ -16,115 +16,103 @@
*** 8.4.0 TAGGED FOR RELEASE ***
-2002-09-09 Jeff Hobbs <jeffh@ActiveState.com>
+2002-09-06 Don Porter <dgp@users.sourceforge.net>
- * macosx/tkMacOSXNotify.c (Tk_MacOSXSetupTkNotifier): corrected
- Mac Jaguar event loop issue.
+ * doc/file.n: Format correction, and clarified [file normalize]
+ returns an absolute path.
- * library/tk.tcl: use command instead of control on Aqua bindings.
- Force dialogs to appear below fixed native Mac menubar.
- * macosx/tkMacOSXKeyEvent.c:
- * macosx/tkMacOSXKeyboard.c: Keypress/release events for pure
- modifier keys were not being passed to Tk.
- Deadkey presses were inserting null characters into text windows.
- Now they do nothing. (Still not ideal, but better than before!)
- * macosx/tkMacOSXMenu.c: Allow more than 200 menus to exist -
- increased to 2000.
- * macosx/tkMacOSXMouseEvent.c: Bad interactions between floating
- windows and ordinary ones. Ensure that local<->global coordinate
- transformations are wrt to the correct window.
- * macosx/tkMacOSXWm.c: Better error msg for 'wm attributes'.
- Remove crash in 'wm transient'.
- Add 'noActivates' and 'noUpdates' flags to unsupported command.
- [Patch #606658] (darley)
+ * doc/tcltest.n: Added examples section, as long promised.
- * library/xmfbox.tcl (::tk::MotifFDialog_ActivateSEnt): corrected
- msgcat code with XPG specifier. [Patch #606719] (miller)
+2002-09-06 Reinhard Max <max@suse.de>
-2002-09-06 Don Porter <dgp@users.sf.net>
+ * tests/tcltest.test: Added nonRoot flag to tests 8.3, 8.4, and 8.12.
- * tests/unixWm.test (unixWm-50.3): Constrained test that hangs
- on Windows.
+2002-09-05 Don Porter <dgp@users.sourceforge.net>
-2002-09-05 Daniel Steffen <das@users.sourceforge.net>
+ * doc/tcltest.n: Clarified phrasing.
- * macosx/Wish.pbproj/project.pbxproj: added overlooked missing
- TK_PATCH_LEVEL version bump to 8.4.0.
+ * generic/tclBasic.c (TclRenameCommand,CallCommandTraces):
+ * tests/trace.test (trace-27.1): Corrected memory leak when a rename
+ trace deleted the command being traced. Test added. Thanks to
+ Hemang Lavana for the fix. [Bug 604609]
-2002-09-04 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+ * generic/tclVar.c (TclDeleteVars): Corrected logic for setting the
+ TCL_INTERP_DESTROYED flag when calling variable traces. [Tk Bug 605121]
- * win/Makefile.in (install-libraries): Added code section to
- install the message catalogs. Copied same section from
- unix/Makefile.in and adapted it to the slightly different
- environment.
+2002-09-04 Miguel Sofer <msofer@users.sourceforge.net>
-2002-09-03 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclVar.c (DeleteArray): leak plug [Bug 604239]. Thanks
+ to dkf and dgp for the long and difficult discussion in the chat.
- * library/button.tcl: further restrict buttons to not resetting
- the "original" relief if it has changed in the interim. This
- prevents code that simulated overrelief buttons from not working
- in 8.4. [Bug #604270]
+2002-09-03 Jeff Hobbs <jeffh@ActiveState.com>
-2002-09-03 Daniel Steffen <das@users.sourceforge.net>
+ * generic/tclVar.c (Tcl_UpVar2): code cleanup to not use goto
- * macosx/Wish.pbproj/project.pbxproj: Bumped version number to
- 8.4.0 and updated copyright info.
+ * unix/configure: remove -pthread from LIBS on FreeBSD in thread
+ * unix/tcl.m4: enabled build. [Bug #602849]
-2002-09-03 Vince Darley <vincentdarley@users.sourceforge.net>
+2002-09-03 Miguel Sofer <msofer@users.sourceforge.net>
- * macosx/tkMacOSXWm.c: fix to 'wm attributes' error-handling bug.
+ * generic/tclInterp.c (AliasCreate): a Tcl_Obj was leaked on error
+ return from TclPreventAliasLoop.
-2002-09-03 Don Porter <dgp@users.sf.net>
+2002-09-03 Daniel Steffen <das@users.sourceforge.net>
- * changes: Updated for 8.4.0 release
+ * macosx/Tcl.pbproj/project.pbxproj: Bumped version number to
+ 8.4.0 and updated copyright info.
-2002-09-02 Jeff Hobbs <jeffh@ActiveState.com>
+2002-09-03 Miguel Sofer <msofer@users.sourceforge.net>
- * tests/cursor.test: reverted 2002-08-31 change for OS X to use
- 'heart' cursor because 'arrow' on windows has a pre-skewed use
- count. [Bug #602667]
+ * generic/tclVar.c (Tcl_UpVar2): a Tcl_Obj was being leaked on
+ error return from TclGetFrame.
- * tests/button.test: added button-14.1
- * win/tkWinButton.c (TkpComputeButtonGeometry): correct Win button
- sizing to be equal for one-line buttons with -height of 0 or 1, as
- well as -height 0 buttons with empty text and no image, which
- should be the same as single-line text buttons. [Bug #565485]
+2002-09-03 Don Porter <dgp@users.sourceforge.net>
- * library/button.tcl (::tk::ButtonLeave): correctly restore state
- of button to normal for unix bindings. [Bug #597920]
+ * changes: Updated changes for 8.4.0 release.
- * doc/tk.n: added tk windowingsystem docs.
+2002-09-02 Jeff Hobbs <jeffh@ActiveState.com>
- * tests/wm.test:
- * unix/tkUnixWm.c: remove possible 2-second delay in 'raise'.
- [Patch #601518] (english) TIP #107
+ * unix/tclUnixFile.c (TclpObjLink): removed unnecessary/unfreed
+ extra native char*.
- * unix/tcl.m4: add support for 64-bit builds on HP-11 with gcc.
- * unix/configure.in: make sure to substitute LD_LIBRARY_PATH_VAR.
- * unix/configure: regend
+ * unix/tclUnixChan.c (Tcl_MakeTcpClientChannel): make sure to init
+ flags field of TcpState ptr to 0.
+
+ * unix/configure:
+ * unix/tcl.m4: added 64-bit gcc compilation support on HP-11.
+ [Patch #601051] (martin)
* README: Bumped version number to 8.4.0
- * generic/tk.h:
+ * generic/tcl.h:
+ * tools/tcl.wse.in:
* unix/configure:
* unix/configure.in:
- * unix/tk.spec:
+ * unix/tcl.spec:
+ * win/README.binary:
* win/configure:
* win/configure.in:
- * generic/tkCmds.c:
- * generic/tkWindow.c: made 'tk' available in safe interpreters,
- but only the caret and windowingsystem subcommands may be called.
- * tests/safe.test (safe-1.2): noted that tk is now available in
- safe interps, but not the appname/scaling subcommands.
+ * generic/tclInterp.c (SlaveCreate): make sure that the memory and
+ checkmem commands are initialized in non-safe slave interpreters
+ when TCL_MEM_DEBUG is used. [Bug #583445]
- * tests/tk.test (tk-1.2): noted new tk windowingsystem subcommand
+ * win/tclWinConsole.c (ConsoleCloseProc): only wait on writable
+ pipe if there was something to write. This may prevent infinite
+ wait on exit.
-2002-08-31 Daniel Steffen <das@users.sourceforge.net>
+ * tests/exec.test: marked exec-18.1 unixOnly until the Windows
+ incompatability (in the test, not the core) can be resolved.
- * unix/tcl.m4: update from Tcl
+ * tests/http.test (http-3.11): added close $fp that was causing an
+ error on Windows because the file was not closed before deleting.
- * unix/Makefile.in: import of TK_SHLIB_LD_EXTRAS for Tk library
- specific linker settings. Added use of new LD_LIBRARY_PATH_VAR.
+ * unix/tclUnixInit.c (Tcl_MacOSXGetLibraryPath): made this static
+ function only appear when HAVE_CFBUNDLE is defined.
+
+2002-08-31 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tcl.m4: added TK_SHLIB_LD_EXTRAS analogue of existing
+ TCL_SHLIB_LD_EXTRAS for linker settings only used when linking Tk.
* unix/configure: regen
@@ -132,7255 +120,3954 @@
*** macosx-8-4-branch merged into the mainline [tcl patch #602770] ***
- * generic/tk.decls:
- * generic/tkInt.decls: added new "aqua" specific entries to the
- stubs tables. Changed all "unix" entries to "x11" to allow us to
- distinguish and build both "aqua" on MacOSX and "x11" on MacOSX.
+ * generic/tcl.decls: added new macosx specific entry to stubs table.
- * generic/tk.h: added a #ifnded RESOURCE_INCLUDED so that tk.h can
- be passed to the resource compiler.
+ * tools/genStubs.tcl: added generation of platform guards for
+ macosx. This is a little more complex than it seems, because MacOS
+ X IS "unix" plus a little bit, for the purposes of Tcl. BUT
+ unfortunately, Tk uses "unix" to mean X11. So added platform keys
+ for macosx (the little added to "unix"), "aqua" and "x11" to
+ distinguish these for Tk.
- * generic/tkCmds.c (Tk_TkObjCmd): added [tk windowingsystem]
- subcommand: returns "x11" when running on X11, "win32" on Windows,
- "classic" on MacOS9 and "aqua" on MacOSX Aqua (i.e. Carbon)
-
- * generic/tkFont.c (TkFontGetFirstTextLayout): new private function
- returning the first chunk of a Tk_TextLayout, i.e. until the first
- font change on the first line (or the whole first line if there is
- no such font change).
-
- * generic/tkMain.c: made Tcl_ThreadDataKey static
+ * generic/tcl.h: added a #ifnded RESOURCE_INCLUDED so that tcl.h
+ can be passed to the resource compiler.
+
+ * generic/tcl.h:
+ * generic/tclNotify.c: added a few Notifier procs, to be able to
+ modify more bits of the Tcl notifier dynamically. Required to get
+ Mac OS X Tk to live on top of the Tcl Unix threaded notifier.
+ Changes the size of the Tcl_NotifierProcs structure, but doesn't
+ move any elements around.
- * library/demos/puzzle.tcl: fixed button metrics for aqua
+ * unix/tclUnixNotfy.c: moved the call to Tcl_ConditionNotify till
+ AFTER we are done mucking with the pointer swap. Fixes cases where
+ the thread waiting on the condition wakes & accesses the
+ waitingListPtr before it gets reset, causing a hang.
- * tests/cursor.test: check for presence of arrow cursor instead of
- heart cursor
+ * library/auto.tcl (tcl_findLibrary): added checking the
+ directories in the tcl_pkgPath for library files on macosx to
+ enable support of the standard Mac OSX library locations
- * xlib/xcolors.c: changed xColors static initialization to more
- standard C
-
- * macosx/Wish.pbproj/jingham.pbxuser (new):
- * macosx/Wish.pbproj/project.pbxproj (new): project for Apple's
+ * unix/Makefile.in:
+ * unix/configure.in:
+ * unix/tcl.m4: added MAC_OSX_DIR. Added PLAT_OBJS to the OBJS:
+ there are some MacOS X specific files now for Tcl, and when I get
+ he resource & applescript stuff ported over, and restore support
+ for FindFiles, etc, there will be a few more.
+ Added LD_LIBRARY_PATH_VAR configure variable to avoid having to set
+ all possible LD_LIBRARY_PATH analogues on all platforms.
+ LD_LIBRARY_PATH_VAR is "LD_LIBRARY_PATH" by default, "LIBPATH" on
+ AIX, "SHLIB_PATH" on HPUX and "DYLD_LIBRARY_PATH" on Mac OSX.
+ Added configure option to package Tcl as a framework on Mac OSX.
+
+ * macosx/tclMacOSXBundle.c (new): support for finding Tcl extension
+ packaged as 'bundles' in the standard Mac OSX library locations.
+
+ * unix/tclUnixInit.c: added support for findig the tcl script
+ library inside Tcl packaged as a framework on Mac OSX.
+
+ * macosx/Tcl.pbproj/jingham.pbxuser (new):
+ * macosx/Tcl.pbproj/project.pbxproj (new): project for Apple's
ProjectBuilder IDE.
* macosx/Makefile (new): simple makefile for building the project
from the command line via the ProjectBuilder tool 'pbxbuild'.
- * macosx/tkMacOSXAppInit.c (new): macosx specific AppInit looking
- for a AppMain.tcl file in its bundled Resources/Scripts folder. If
- present, argv[1] is set to that file and the Scripts folder is
- added to the auto_path. This allows tk apps to embed scripts within
- their bundle directory structure.
-
- * macosx/tkMacOSXInit.c (new): macosx adapted version of
- tkUnixInit.c: we initialize & cache the Carbon native encoding
- (e.g. 'macRoman') and try to find the tk script library files
- inside Tk packaged as a framework.
-
- * macosx/tkMacOSXNotify.c (new): new macosx specific merged
- Carbon/select-based notifier.
-
- * macosx/tkMacOSXEvent.c (new):
- * macosx/tkMacOSXEvent.h (new):
- * macosx/tkMacOSXKeyEvent.c (new):
- * macosx/tkMacOSXMouseEvent.c (new):
- * macosx/tkMacOSXWindowEvent.c (new): new macosx specific event
- handling functionality.
-
- * macosx/tkMacOSX.h (new):
- * macosx/tkMacOSXBitmap.c (new):
- * macosx/tkMacOSXButton.c (new):
- * macosx/tkMacOSXClipboard.c (new):
- * macosx/tkMacOSXColor.c (new):
- * macosx/tkMacOSXConfig.c (new):
- * macosx/tkMacOSXCursor.c (new):
- * macosx/tkMacOSXDefault.h (new):
- * macosx/tkMacOSXDialog.c (new):
- * macosx/tkMacOSXDraw.c (new):
- * macosx/tkMacOSXEmbed.c (new):
- * macosx/tkMacOSXFont.c (new):
- * macosx/tkMacOSXHLEvents.c (new):
- * macosx/tkMacOSXInt.h (new):
- * macosx/tkMacOSXKeyboard.c (new):
- * macosx/tkMacOSXMenu.c (new):
- * macosx/tkMacOSXMenubutton.c (new):
- * macosx/tkMacOSXMenus.c (new):
- * macosx/tkMacOSXPort.h (new):
- * macosx/tkMacOSXRegion.c (new):
- * macosx/tkMacOSXScale.c (new):
- * macosx/tkMacOSXScrlbr.c (new):
- * macosx/tkMacOSXSubwindows.c (new):
- * macosx/tkMacOSXTest.c (new):
- * macosx/tkMacOSXUtil.c (new):
- * macosx/tkMacOSXUtil.h (new):
- * macosx/tkMacOSXWm.c (new):
- * macosx/tkMacOSXWm.h (new):
- * macosx/tkMacOSXXStubs.c (new): macosx ports of classic mac Tk
- implementation in tk/mac.
-
- * macosx/tkMacOSXSend.c (new): only send to local interp
- implemented currently.
-
- * macosx/tkMacOSXDebug.h (new):
- * macosx/tkMacOSXDebug.c (new): new macosx specific functions for
- debugging MacOS events, regions, etc.
-
- * macosx/tkAboutDlg.r (new):
- * macosx/tkMacOSXApplication.r (new):
- * macosx/tkMacOSXCursors.r (new):
- * macosx/tkMacOSXLibrary.r (new):
- * macosx/tkMacOSXMenu.r (new):
- * macosx/tkMacOSXResource.r (new):
- * macosx/tkMacOSXXCursors.r (new):
- * macosx/tclets.r (new): sources for Rez resource compiler.
-
- * macosx/Wish.icns (new): Wish application icon.
-
- * generic/tk.h:
- * generic/default.h:
- * generic/tkBind.c:
- * generic/tkCmds.c:
- * generic/tkGrab.c:
- * generic/tkPointer.c:
- * generic/tkPort.h:
- * generic/tkSelect.c:
- * generic/tkStubLib.c:
- * generic/tkTest.c:
- * generic/tkText.c:
- * generic/tkWindow.c:
- * unix/tkUnix3d.c:
- * xlib/xgc.c:
- * xlib/X11/X.h:
- * xlib/X11/Xlib.h:
- * xlib/X11/Xutil.h: added #includes and #ifdefs for macosx
-
- * library/bgerror.tcl:
- * library/button.tcl:
- * library/console.tcl:
- * library/dialog.tcl:
- * library/entry.tcl:
- * library/listbox.tcl:
- * library/menu.tcl:
- * library/msgbox.tcl:
- * library/scrlbar.tcl:
- * library/spinbox.tcl:
- * library/text.tcl:
- * library/tk.tcl:
- * library/demos/menu.tcl:
- * library/demos/menubu.tcl:
- * library/demos/widget: check [tk windowingsystem] instead of
- and/or in addition to $tcl_platform(platform).
-
- * generic/tkInt.h:
- * mac/tkMacBitmap.c:
- * mac/tkMacWm.c: added missing CONSTification
-
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkIntXlibDecls.h:
- * generic/tkPlatDecls.h:
- * generic/tkStubInit.c: regen
-
-2002-08-27 D. Richard Hipp <drh@hwaci.com>
-
- * doc/checkbutton.n: [Bug 582457] Fix the -offrelief option so
- * doc/radiobutton.n: that when -offrelief is flat and -relief is
- * mac/tkMacButton.c: sunken and -overrelief is raised, buttons
- * unix/tkUnixButton.c: work look toolbar buttons under Windows.
- * win/tkWinButton.c: See also: TIP #82.
-
-2002-08-26 Don Porter <dgp@users.sf.net>
-
- * win/Makefile.in: Removed dependence on the (parts of) the
- * win/winMain.c: tcltest executable on Windows. It was not
- used, and the dependency complicated the Makefile. [Bug 592638].
-
-2002-08-20 Don Porter <dgp@users.sf.net>
-
- * README: Bumped version number to 8.4b3 to distinguish
- * generic/tk.h: HEAD from the 8.4b2 release.
- * unix/configure.in:
- * win/configure.in:
- * unix/tk.spec:
-
- * unix/configure: autoconf
- * win/configure:
-
- * generic/tk.h: Added compile-time check that the tcl.h header file
- #included by Tk 8.4 is one from Tcl 8.4. This is needed to be sure
- that new #defines like CONST84 are available. [Bug 597432].
-
-2002-08-16 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/Makefile.in (install-binaries): simplified pkgIndex.tcl
- file created on installation.
- * win/Makefile.in (install-binaries): corrected and simplified
- creation of pkgIndex.tcl file on installation.
-
-2002-08-14 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * win/tkWinDialog.c:
- * win/makefile.vc: broken compilation and link from changes
- Hobbs-08-07 fixed.
- * win/tkWinTest.c: CONST problem resolved.
-
-2002-08-13 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/button.tcl: change the bindings to use Priv($w,relief)
- instead of just Priv(relief). This ensures that neighboring
- buttons don't confuse (over)relief settings.
-
-2002-08-13 Reinhard Max <max@suse.de>
-
- * unix/tkUnixSend.c (Tk_SetAppName): Fixed a compiler warning.
-
-2002-08-12 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/image2.tcl: Tweaked the behaviour of the directory
- box on resize, as resizing of the overall window tends to be
- common given the sample images.
-
-2002-08-08 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/tkUnixWm.c (WmTransientCmd): Apply fix for
- wm transient assertion error that was applied
- to tkWinWm.c for Tk Bug #592201.
-
-2002-08-08 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/wm.test: Add deleteWindows at start of
- new transient tests so they do not fail if the
- toplevels already exist.
- * unix/tkUnixWm.c: Revert patch for Tk Bug #592201
- which incorrectly removed numTransients member.
-
-2002-08-08 Joe English <jenglish@users.sourceforge.net>
-
- * unix/tkUnixWm.c:
- * win/tkWinWm.c:
- * tests/wm.test: Fix for Tk Bug #592201 "wm transient fails with two
- masters"; fixes panic after a transient window is reassigned to
- new master and either master is subsequently destroyed.
-
-2002-08-08 Don Porter <dgp@users.sf.net>
-
- * tests/unixWm.test: Corrected packaging of unixWm-50.3 so that
- [setupbg] and [cleanupbg] always balance, no matter what tests
- are skipped.
-
-2002-08-08 Reinhard Max <max@suse.de>
-
- * unix/Makefile.in: Fixed typos in DISTNAME, and ZIPNAME.
-
-2002-08-08 Jeff Hobbs <jeffh@ActiveState.com>
-
- *** 8.4b2 TAGGED FOR RELEASE ***
-
- * generic/tkButton.c (TkButtonWorldChanged): added GCFont handling
- to the disabledGc of buttons when compound != none. The drawing
- appears to be incorrect across platforms still. [Bug #477740]
-
- * generic/tkImgGIF.c (FileReadGIF): fixed -from handling for gifs
- [Bug #467524] (obermeier)
-
-2002-08-07 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkCanvUtil.c (TkSmoothParseProc): recognize the built-in
- bezier method by name. [Bug #578654]
- * doc/canvas.n: update to note that -smooth really doesn't take
- or return just booleans.
-
- * win/tkWinMenu.c (TkpSetWindowMenuBar): fixed logic bug in when
- to idle call ReconfigureWindowsMenu.
-
- * doc/GetBitmap.3: removed doc refs to deprecated
- Tk_GetBitmapFromData. [Bug #590379]
-
- * generic/tkPanedWindow.c (Tk_PanedWindowObjCmd):
- * library/panedwindow.tcl: changed class from PanedWindow to
- Panedwindow to not conflict with existing bwidgets, but also to be
- more regular with other names used in the core.
-
- * tests/panedwindow.test: added -text foobar to some test buttons
- to enable correct testing of panedwindow across platforms.
- [Bug #582370]
-
- * win/tkWinDialog.c: enabled use of the updated native Windows
- directory browser (tk_chooseDirectory). This does require
- shell32.dll v4.71 or greater. [Patch #468139]
-
- * win/configure:
- * win/tcl.m4: added shell32 to libs for updated native Windows
- tk_chooseDirectory dialog.
-
-2002-08-06 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkPanedWindow.c (RESIZE_PENDING): Separated out flag for
- indicating that a resize needs to be issued.
- (PanedWindowReqProc): Do the old behaviour when the panedwindow is
- not mapped; easiest way of making the test suite pass while still
- preserving improved behaviour in the face of children whose size
- is not known immediately.
-
-2002-08-06 Don Porter <dgp@users.sf.net>
-
- * tests/defs.tcl: removed file. No longer needed now that Tk is
- using the tcltest package to do its testing.
-
-2002-08-05 Don Porter <dgp@users.sf.net>
-
- * win/tkWinFont.c: Additional changes to fix CONST warnings on
- * win/tkWinWM.c: Windows due to latest patch. Tks Vince Darley.
-
- * doc/3DBorder.3: Applied companion patch for Tcl Patch 585105,
- * doc/BindTable.3: updating Tk to use Tcl 8.4's fully CONST-ified
- * doc/ConfigWidg.3: interface, and fully CONSTifying Tk at the
- * doc/CrtImgType.3: same time.
- * doc/CrtWindow.3:
- * doc/DeleteImg.3: This patch includes purging Tk of its last
- * doc/FindPhoto.3: direct access to interp->result. [Bug 589853]
- * doc/GetAnchor.3:
- * doc/GetBitmap.3: The substantial changes include copying
- * doc/GetCapStyl.3: event sequence strings into Tcl_DStrings
- * doc/GetClrmap.3: in tkBind.c, and copying [text] indices into
- * doc/GetColor.3: Tcl_DStrings because parsing them involved
- * doc/GetCursor.3: overwriting them. If this causes performance
- * doc/GetFont.3: trouble, that can be resolved by further
- * doc/GetImage.3: converting them to Tcl_Obj's.
- * doc/GetJoinStl.3:
- * doc/GetJustify.3: The #defines USE_NON_CONST and USE_COMPAT_CONST
- * doc/GetOption.3: have the same effect for Tk as they do for Tcl.
- * doc/GetRelief.3: (They actually change tcl.h)
- * doc/GetScroll.3:
- * doc/GetVisual.3:
- * doc/InternAtom.3:
- * doc/NameOfImg.3:
- * doc/SetAppName.3:
- * doc/WindowId.3:
- * generic/tk.decls:
- * generic/tk.h:
- * generic/tk3d.c:
- * generic/tkAtom.c:
- * generic/tkBind.c:
- * generic/tkBitmap.c:
- * generic/tkButton.c:
- * generic/tkCanvArc.c:
- * generic/tkCanvBmap.c:
- * generic/tkCanvImg.c:
- * generic/tkCanvLine.c:
- * generic/tkCanvPoly.c:
- * generic/tkCanvPs.c:
- * generic/tkCanvText.c:
- * generic/tkCanvUtil.c:
- * generic/tkCanvWind.c:
- * generic/tkCanvas.c:
- * generic/tkCanvas.h:
- * generic/tkClipboard.c:
- * generic/tkCmds.c:
- * generic/tkColor.c:
- * generic/tkConfig.c:
- * generic/tkConsole.c:
- * generic/tkCursor.c:
- * generic/tkDecls.h:
- * generic/tkEntry.c:
- * generic/tkFont.c:
- * generic/tkFrame.c:
- * generic/tkGet.c:
- * generic/tkGrid.c:
- * generic/tkImage.c:
- * generic/tkImgBmap.c:
- * generic/tkImgPhoto.c:
- * generic/tkInt.decls:
- * generic/tkInt.h:
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkListbox.c:
- * generic/tkMenu.c:
- * generic/tkMenubutton.c:
- * generic/tkMessage.c:
- * generic/tkOldConfig.c:
- * generic/tkOption.c:
- * generic/tkRectOval.c:
- * generic/tkScale.c:
- * generic/tkScrollbar.c:
- * generic/tkSelect.c:
- * generic/tkStyle.c:
- * generic/tkTest.c:
- * generic/tkText.c:
- * generic/tkText.h:
- * generic/tkTextBTree.c:
- * generic/tkTextDisp.c:
- * generic/tkTextImage.c:
- * generic/tkTextIndex.c:
- * generic/tkTextMark.c:
- * generic/tkTextTag.c:
- * generic/tkTextWind.c:
- * generic/tkUtil.c:
- * generic/tkVisual.c:
- * generic/tkWindow.c:
- * mac/tkMacConfig.c:
- * mac/tkMacCursor.c:
- * mac/tkMacEmbed.c:
- * mac/tkMacSend.c:
- * unix/tkUnixConfig.c:
- * unix/tkUnixCursor.c:
- * unix/tkUnixEmbed.c:
- * unix/tkUnixFont.c:
- * unix/tkUnixSelect.c:
- * unix/tkUnixSend.c:
- * unix/tkUnixWm.c:
- * win/tkWinConfig.c:
- * win/tkWinCursor.c:
- * win/tkWinEmbed.c:
- * win/tkWinMenu.c:
- * win/tkWinSend.c:
-
-2002-08-02 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkPanedWindow.c (DestroyPanedWindow): Idle calls need to
- be deleted on destruction of the window, or things can *really* go
- pear-shaped.
-
-2002-07-31 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkPanedWindow.c (PanedWindowReqProc): Postpone pane
- arrangement until idle, as is done in other window managers, to
- fix problems with size calculations when the children don't
- already know their sizes anyway.
-
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
-
-2002-07-29 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/configure.in: Remove code that was setting
- CC_SEARCH_FLAGS and LD_SEARCH_FLAGS to try to
- account for cc vs ld linking. Tcl now handles this.
- * unix/tcl.m4: Update from Tcl.
-
-2002-07-27 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in: Add MAJOR_VERSION, MINOR_VERSION,
- PATCH_LEVEL, INSTALL_LIBRARY, STUB_LIB_FILE, and LIB_FILE
- to support changes in tcl.m4 related to library builds.
- Use MAKE_LIB macro to avoid dealing with RANLIB issues.
- Rename TK_CC_SEARCH_FLAGS to CC_SEARCH_FLAGS and
- rename TK_LD_SEARCH_FLAGS to LD_SEARCH_FLAGS.
- Use new INSTALL_LIB and INSTALL_STUB_LIB substs to
- deal with ranlib issues when install libraries.
- * unix/configure: Regen.
- * unix/configure.in: Remove AC_PROG_RANLIB since
- this is done by tcl.m4 now. Define CC_SEARCH_FLAGS
- instead of TK_CC_SEARCH_FLAGS and so on.
- Use MAKE_LIB and MAKE_STUB_LIB from tcl.m4.
- Remove AC_SUBST calls that are no done in tcl.m4.
- * unix/tcl.m4: Update from Tcl.
- * unix/tkConfig.sh.in: Subst CC_SEARCH_FLAGS and
- LD_SEARCH_FLAGS.
-
-2002-07-25 Peter Spjuth <peter.spjuth@space.se>
-
- * generic/tkInt.h:
- * generic/tkWindow.c:
- * mac/tkMacWm.c:
- * unix/tkUnixWm.c:
- * win/tkWinWm.c:
- * tests/wm.test:
- * tests/winWm.test:
- * tests/unixWm.test: Objectifed wm. [Patch #564521]
- Note: At this point the Mac file is completely untested
- and may not even compile.
-
-2002-07-25 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/spinbox.test: added spinbox-22.[1-3]
- * generic/tkEntry.c (ConfigureEntry): made the textvariable value
- take precedence over changed -from/-to values, unless it must be
- constrained. [Bug #559078]
-
- * library/spinbox.tcl (MouseSelect): when not in the entry, just
- return instead of invoking - ButtonUp handles invoking already.
- [Bug #499168]
-
- * library/tk.tcl (RestoreFocusGrab): handle the case where the
- FocusGrab info is not set. [Bug #553283]
-
-2002-07-24 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/canvas.test: added canvas-14.[1-6]
- * generic/tkCanvas.c (CanvasWidgetCmd): corrected handling of
- 'scan' subcommand args. Also removed early return cases to goto
- done instead where the canvasPtr would be Tcl_Release'd. This may
- solve other problems with unreleased canvasPtr's. [Bug #581560]
-
- * win/tkWinButton.c (TkpDisplayButton): corrected display of focus
- ring around the actual text when the button is a compound button.
- [Bug #583691]
-
- * unix/README: Corrected notes about running user interactive Tk
- tests. [Bug #462320]
-
- * generic/tkText.c (TextEditUndo): set isDirtyIncrement to -1 when
- reverting to note proper "dirtiness". [Bug #580362] (callewaert)
-
- * generic/tkEntry.c (DisplayEntry): correct cursor position before
- calling Tk_SetCaretPos. (yamamoto)
-
-2002-07-23 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
-
-2002-07-22 Mo DeJong <mdejong@users.sourceforge.net>
-
- * library/choosedir.tcl (tk::dialog::file::chooseDir):
- * library/clrpick.tcl (tk::dialog::file::chooseDir):
- * library/msgbox.tcl (tk::MessageBox):
- * library/tkfbox.tcl (tk::dialog::file):
- * library/xmfbox.tcl (tk::MotifFDialog):
- Revert [Tk patch 568278]. The transient window workaround
- is no longer needed since the fix for [Tk bug 570764]
- solved the problem for withdrawn transients.
-
-2002-07-19 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure:
- * unix/configure.in:
- * win/configure:
- * win/configure.in: Add AC_PREREQ(2.13) in an attempt
- to make it more clear that the configure scripts
- must be generated with autoconf version 2.13.
- [Tcl Bug 583573]
-
-2002-07-19 D. Richard Hipp <drh@hwaci.com>
-
- * library/mkpsec.tcl: Fix a bug that was causing postscript generation
- to fail under Win2K.
-
-2002-07-18 Reinhard Max <max@suse.de>
-
- * unix/tkUnixSend.c: Using Tcl_GetTime instead of TclpGetTime.
-
-2002-07-17 Reinhard Max <max@suse.de>
-
- * library/unsupported.tcl: Extended ExposePrivateVariable, and
- ExposePrivateCommand to accept patterns as well.
-
-2002-07-17 Don Porter <dgp@users.sf.net>
-
- * generic/tkFont.c: Corrected reversed logic in assert -> panic
- conversion. [Bug 582799]
-
-2002-07-16 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkFont.c (TkFontPkgFree): Call panic instead
- of assert since assert is not used in the rest of Tk.
- [Tk bug 579651]
-
-2002-07-16 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in:
- * win/Makefile.in: Add a more descriptive warning
- in the event `make genstubs` needs to be rerun.
-
-2002-07-16 Vince Darley <vincentdarley@users.sourceforge.net>
-
- * win/tkWinWm.c:
- * doc/wm.n: fix for part of [Bug 581627], and made iconbitmap
- code on Windows more flexible about reading in icons [Bug
- 220800].
-
-2002-07-15 David Gravereaux <davygrvy@pobox.com>
-
- * win/makefile.bc (new): re-add of the borland makefile. Submitted
- by Helmut Giese <hgiese@ratiosoft.com>. This needs testing, still.
-
-2002-07-15 Don Porter <dgp@users.sf.net>
-
- * Fixes for [Bug 581627, 581795].
- * generic/tkTest.c: Test commands not supported on non-Unix
- platforms should not be defined there in the first place.
- * tests/constraints.tcl: Fixed "secureserver" constraint.
- * tests/unixWm.test: Some tests needed "unix" constraint.
- * win/tkWinWm.c: Typo in error message.
-
-2002-07-14 Don Porter <dgp@users.sf.net>
-
- * tests/event.test: Fixes to enable testing of only userInteraction
- * tests/visual_bb.test: tests.
-
- * README: Bumped HEAD to version 8.4b2 in order to
- * generic/tk.h: distinguish it from the 8.4b1 release.
- * unix/configure*: Also extended LOCALES to cover all message
- * unix/tk.spec: catalogs.
- * win/configure*:
-
- * tests/focustTcl.test: Conversion bug: Corrected backwards logic.
- * tests/imgPhoto.test: Conversion bug: overwrote unix/README.
-
- * tests/all.tcl: Completed conversion of Tk test suite
- * tests/constraints.tcl: to use tcltest.
- * tests/[b-v]*.test:
- * unix/Makefile.in:
-
-2002-07-12 Don Porter <dgp@users.sf.net>
-
- * tests/constraints.tcl: Converted more files to tcltest and
- * tests/[g-x]*.test: factored out common code.
-
-2002-07-11 Don Porter <dgp@users.sf.net>
-
- * tests/canvPsImg.tcl: Converted several files in the
- * tests/constraints.tcl (new file): Tk test suite for testing by
- * tests/[r-x]*.test: tcltest 2.1.
- * unix/Makefile.in:
-
-2002-07-11 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinDialog.c (Tk_ChooseDirectoryObjCmd): initialize
- utfTitle to NULL, add a few more notes about limitations of
- possible new Tk_ChooseDirectoryObjCmd function.
-
-2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * tests/imgPhoto.test (imgPhoto-15.1): Added test of mem-alloc
- failure, but this is non-portable.
- * generic/tkImgPhoto.c (ImgPhotoSetSize): Allowed this function to
- fail when it can't allocate enough memory. Note that not all the
- places that call it can fail nicely without API changes; some
- still panic but at least some of the potential failures are now
- handled gracefully.
-
- * tests/visual_bb.test (lpr): Stopped this from relying on
- external files; direct piping is much more flexible for this
- application.
-
-2002-07-09 Don Porter <dgp@users.sf.net>
-
- * generic/tkTest.c: Removed unused dependence on TclThread_Init()
- * tests/defs.tcl: and [testthread]. [Bug 578165, Tcl Bug 531413]
-
-2002-07-08 David Gravereaux <davygrvy@pobox.com>
-
- * unix/Makefile.in: Added missing win/lamp.bmp to the dist
- target.
-
-2002-07-05 Jeff Hobbs <jeffh@ActiveState.com>
-
- *** 8.4b1 TAGGED FOR RELEASE ***
-
-2002-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/bgerror.tcl (bgerror): Stopped the bgerror dialog from
- getting wider than the screen; in theory really long messages
- could make it become taller than the screen now, but that's much
- less likely to happen. Also trimmed a little bit of internal
- space so that the icon-message gap is the same as the icon-frame
- and message-frame gaps.
-
-2002-07-01 Don Porter <dgp@users.sf.net>
-
- * unix/configure:
- * unix/tcl.m4: Updated to latest tcl.m4 from Tcl.
-
-2002-06-28 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/msgbox.tcl (MessageBox): Force all non-button widgets to
- have the same background as the containing toplevel. [Bug #552515]
-
-2002-06-27 Andreas Kupries <andreas_kupries@users.sourceforge.net>
-
- * win/Makefile.in (install-binaries): Fix of troubled Makefile
- quoting introduced by [Patch 521356] causing the installed to
- fail.
-
-2002-06-25 Don Porter <dgp@users.sf.net>
-
- * unix/tkUnixFont.c: (Tk_DrawChars) silence compiler warning.
-
-2002-06-26 David Gravereaux <davygrvy@pobox.com>
-
- * generic/tkStyle.c: <eol> of the committing cvs client didn't
- match the <eol> of the file itself. Windows users where getting
- \r\r\n. Problem fixed.
-
-2002-06-26 Anton Kovalenko <a_kovalenko@users.sourceforge.net>
-
- * generic/tkFont.c (TkTextLayoutToPostscript): fixed potential
- buffer overflow which could be intentionally triggered from
- within safe interpreter -- malicious applet could modify
- tk::psglyphs array.
-
-2002-06-26 Anton Kovalenko <a_kovalenko@users.sourceforge.net>
-
- * tests/font.test (font-32.1): updated this test
- to expect the new behavior of canvas postscript.
-
-2002-06-25 Don Porter <dgp@users.sf.net>
-
- * unix/Makefile.in: Expanded install-binaries target to create
- * win/Makefile.in: and install a pkgIndex.tcl file to enable
- Tk as a loadable package [Patch 521356]
-
-2002-06-25 Anton Kovalenko <a_kovalenko@users.sourceforge.net>
-
- * library/mkpsenc.tcl: (added) utilities to generate
- Postscript prolog for current system encoding.
- * generic/tkCanvPs.c (TkCanvPostscriptCmd): now
- uses mkpsenc.tcl to generate Postscript prolog.
- * generic/tkFont.c (TkTextLayoutToPostscript): modified
- according to patch #546910. Now outputs system-encoded
- characters (for unibyte) or Adobe glyph names (for
- multibyte or outside-locale).
- * tests/canvText.test (canvText-17.1): updated this test
- to expect the new behavior of canvas postscript.
-
-2002-06-25 Reinhard Max <max@suse.de>
-
- * unix/tcl.m4: New macro SC_CONFIG_MANPAGES.
- * unix/configure.in: Added support for symlinks and compression
- * unix/Makefile.in: when installing the manpages. [Patch 518052]
- Default is still hardlinks and no compression.
-
- * unix/mkLinks: generated
* unix/configure:
+ * generic/tclStubInit.c:
+ * generic/tclPlatDecls.h: regen
- * unix/README: Added documentation for the new features.
-
- * unix/configure: Replaced ${exec_prefix}/lib
- * unix/tcl.m4 (SC_PATH_TCLCONFIG): by ${libdir}.
-
-2002-06-24 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/winWm.test: Verify that both an unmapped
- and already mapped toplevel are raised and receive
- the focus when deiconified.
- * tests/wm.test: Add wm deiconify tests. Check that
- a toplevel that has never been mapped is not mapped
- by the deiconify command since it should be done
- at idle by MapFrame.
- * win/tkWinWm.c (Tk_WmCmd): Check the WM_NEVER_MAPPED
- flag while processing the wm deiconify command.
- The WM_UPDATE_PENDING flag should never be set when
- WM_NEVER_MAPPED is set, but double check so that
- the implementation is more explicit and matches
- the comment just above.
- Return without invoking TkWmRestackToplevel or
- TkSetFocusWin on a toplevel that has never been
- mapped. This fixes a bug where a toplevel is mapped
- with the wrong size and is then resized by the
- idle call to MapFrame. [Tk bug 233150]
-
-2002-06-23 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinWm.c (UpdateGeometryInfo): remove the check for a null
- wrapper introduced in r1.41 on 2002-06-15 because it prevented
- geometry setting from taking effect if the window was not on the
- screen. Another check may go in it's place as IsIconic and
- IsZoomed should not be passed NULL.
-
-2002-06-22 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/wm.test: Remove invalid minsize test. Add update
- calls to wm transient tests so that idle handlers get
- run. This is needed to get the tests to pass under Win32.
- * unix/tkUnixWm.c (WmWaitMapProc): Move the special
- transient withdrawn check into the if body to
- make it easier to set a breakpoint on this test
- inside a debugger. No functional changes.
- * win/tkWinWm.c (WmWaitVisibilityOrMapProc): Ditto.
-
-2002-06-22 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/wm.n: TIP #95 Windows implementation and
- * mac/tkMacWm.c (Tk_WmCmd): docs with mac and unix stubs.
- * unix/tkUnixWm.c (Tk_WmCmd):
- * win/tkWinWm.c (Tk_WmCmd):
- * tests/unixWm.test:
- * tests/winWm.test: more wm attr tests will be needed.
-
- * generic/tkGrid.c (GridReqProc): check that gridPtr is not NULL
- (may be when embedded). [Bug #548791] (halliday)
-
- * generic/tkFont.c (TkFontPkgFree): changed panic on freeing fonts
- to an assert, and wrapped panic in #ifdef PURIFY. [Bug #568701]
-
- * library/menu.tcl: corrected menus from being posted offscreen
- on Windows. [Bug #464451] (darley)
-
- * library/console.tcl: corrected the defaultPrompt substitution
- [Bug #553207] and made Tab a default expansion key (like Escape).
-
- * win/tkWinEmbed.c (EmbedWindowDeleted): added a check for a null
- containerPtr. The core of this bug is likely elsewhere. [Bug #476176]
-
- * doc/text.n: TIP #93 implementation that
- * generic/tkText.c (TextWidgetCmd): enhances the text get and
- * generic/tkTextIndex.c (TkTextGetIndex): delete methods to accept
- * tests/text.test: multiple range pairs.
- This handles the delete case in an atomic, fixed-index fashion.
-
-2002-06-21 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/wm.test: Add tests to make sure a withdrawn
- transient does not get remapped by state changes
- in the master.
- * unix/tkUnixWm.c (Tk_WmCmd, WmWaitMapProc):
- * win/tkWinWm.c (Tk_WmCmd, WmWaitVisibilityOrMapProc):
- Add a WM_TRANSIENT_WITHDRAWN flag that gets set by the
- withdraw, deiconify, or state wm subcommands. Check
- this flag before mapping a transient when processing
- a MapNotify event. [Tk bug 570764]
-
-2002-06-21 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * unix/tk.spec (version), README, win/configure.in, unix/configure.in:
- * generic/tk.h (TK_RELEASE_*, TK_PATCH_LEVEL): Bumped to beta1.
-
-2002-06-21 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/text.n: TIP #104 implementation which generalizes the
- * generic/tkText.c: undo/redo stack to not be tied solely to the
- * generic/tkText.h: text widget. The APIs are still private.
- * generic/tkUndo.c: This also adds a stack limiting ability and
- * generic/tkUndo.h: a -maxundo option to the text widget (in
- * library/text.tcl: addition to the options from TIP #26) should
- * mac/tkMacDefault.h: users want to limit the undo/redo stack
- * tests/text.test: (should not be necessary in most cases).
- * unix/Makefile.in: [Patch #554763] (callewart)
- * unix/tkUnixDefault.h:
- * win/Makefile.in:
- * win/makefile.vc:
- * win/tkWinDefault.h:
-
-2002-06-21 Don Porter <dgp@users.sf.net>
-
- * unix/Makefile.in: Removed unnecessary dependence of tktest
- * unix/tkAppInit.c: executable on the tcltest executable on
- Unix. If there are similar dependencies on other platforms, they
- can probably be removed as well. [Bug 572134].
-
-2002-06-20 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/listbox.n:
- * generic/tkListbox.c (DisplayListbox):
- * mac/tkMacDefault.h: TIP #94 implementation adding -activestyle
- * tests/listbox.test: option to the listbox. This adds the ability
- * unix/tkUnixDefault.h: to have listboxes look native on Windows, and
- * win/tkWinDefault.h: "nicer" elsewhere using the 'dotbox' style.
-
-2002-06-20 Peter Spjuth <peter.spjuth@space.se>
-
- * generic/tkGrid.c: Corrected the test for grid propagate change.
- [Bug #571433]
-
-2002-06-19 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/panedwindow.test:
- * generic/tkPanedWindow.c: ensure that sash index is lower bounds
- checked. [Bug #548727]
-
-2002-06-19 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkClipboard.c (TkClipCleanup): Add code
- to set dispPtr->clipWindow to NULL, this was
- accidently removed by last commit. Fixes
- a crash while running the tests under win32.
-
-2002-06-19 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkBind.c (TkBindDeadWindow):
- Handle case where Tk_DestroyWindow is invoked
- on clipboard and send windows.
- * generic/tkClipboard.c (TkClipCleanup):
- Invoke Tk_DestroyWindow to cleanup the
- dispPtr->clipWindow. Call Tcl_Preserve
- and Tcl_Release on the window to avoid an
- invalid memory ref on shutdown.
- * generic/tkEvent.c (Tk_HandleEvent):
- Panic if XCreateIC is invoked twice for
- the same window. This should never happen,
- the check were just added to make sure it
- does not since this could lead to crashes
- in XCloseIM.
- * generic/tkFocus.c (TkFocusDeadWindow):
- Handle case where Tk_DestroyWindow is invoked
- on clipboard and send windows.
- * generic/tkOption.c (TkOptionDeadWindow): Ditto.
- * generic/tkWindow.c (TkCloseDisplay): Move
- deletion of dispPtr->winTable after TkpCloseDisplay
- call since Tk_DestroyWindow uses it and could
- be called by TkpCloseDisplay for clipboard/send windows.
- Also invoke ckfree for the dispPtr instead of
- doing it in TkpCloseDisplay.
- (Tk_DestroyWindow): Check for a null winPtr->mainPtr
- before doing certain cleanup tasks so the we can
- invoke Tk_DestroyWindow on clipboard and send windows.
- We need to do this so that XDestroyIC will get invoked
- for the input contexts of each window.
- * mac/tkMacXStubs.c (TkpCloseDisplay): Don't free
- the displayPtr since this is now done in TkCloseDisplay.
- * unix/tkUnixEvent.c (TkpCloseDisplay, OpenIM): Remove
- conditional compilation around calls to XCloseIM
- since I am confident that the crashes related to
- input contexts has been fixed. Don't free
- the displayPtr since this is now done in TkCloseDisplay.
- * unix/tkUnixSend.c (TkSendCleanup): Invoke the
- Tk_DestroyWindow method to cleanup the special
- send window. This will call XDestroyIC and thereby
- avoid a crash in XCloseIM. The send window needs
- to be Tcl_Preserve and Tcl_Release to avoid an
- invalid memory ref on shutdown.
- * win/tkWinX.c (TkpCloseDisplay): Don't free
- the displayPtr since this is now done in TkCloseDisplay.
- [Tk patch 570902]
-
-2002-06-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkStyle.c: TIP#48 style engine.
- See http://purl.org/tcl/tip/48.html for details.
-
- * generic/tkConfig.c (GetOptionFromObj): Split to allow for access
- to option tables via name as well as via object.
- (TkGetOptionSpec): Semi-public interface to GetOption functionality.
- (DoObjConfig, Tk_RestoreSavedOptions, FreeResources)
- (GetObjectForOption): Basic style support for configure.
-
- * generic/tkWindow.c (TkCreateMainWindow, Tk_DestroyWindow): Added
- calls to set up and tear down the style subsystem.
-
- * generic/tk.decls, generic/tk.h: Many declarations forming TIP#48
- public interface.
-
- * generic/tkInt.decls (TkStylePkgInit,TkStylePkgFree):
- * generic/tkInt.h (TkGetOptionSpec): Supporting declarations.
-
- * unix/Makefile.in, win/Makefile.in, win/makefile.vc: Added
- tkStyle.c to list of generic source files.
-
-2002-06-18 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * tests/defs.tcl (makeFile): Defined the return value of this
- procedure to be the filename of the created file, as in the real
- tcltest package...
-
-2002-06-17 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkImage.c (Tk_ImageObjCmd, DeleteImage): Call
- Tcl_Preserve and Tcl_Release for the masterPtr->winPtr
- window to avoid accessing memory that had already
- been deallocated in DeleteImage.
-
-2002-06-17 David Gravereaux <davygrvy@pobox.com>
-
- Trims to support the removal of RESOURCE_INCLUDED from rc
- scripts from Tcl's accepted FR #565088.
-
- * generic/tk.h: Changed RESOURCE_INCLUDED to be RC_INVOKED
- as the RC tool defines this already by default.
-
- * win/rc/tk.rc:
- * win/rc/wish.rc: removed the #define RESOURCE_INCLUDED lines.
-
-2002-06-17 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/Makefile.in (dist): correct installation of
- wish.exe.manifest to DISTDIR target directory.
-
- * generic/tkCmds.c (Tk_TkObjCmd):
- * generic/tkInt.h (struct TkCaret):
- * mac/tkMacXStubs.c (Tk_SetCaretPos):
- * unix/tkUnixKey.c (TkpGetString, Tk_SetCaretPos):
- * win/tkWinX.c (Tk_SetCaretPos):
- * tests/tk.test: Added 'tk caret' implementation of TIP#96
- * doc/SetCaret.3 (new): which adds a TkCaret structure element to
- * doc/tk.n: TkDisplay for maintaining state.
-
- * unix/tkUnixSend.c (TkSendCleanup): special cleanup of
- inputContext to avoid bug in XCloseIM. (dejong)
-
-2002-06-17 Don Porter <dgp@users.sf.net>
-
- * library/msgs/en_gb.msg: Added catalog for UK English.
- Currently includes only Color -> Colour translation.
-
-2002-06-17 D. Richard Hipp <drh@hwaci.com>
-
- * doc/checkbutton.n:
- * doc/radiobutton.n:
- * generic/tkButton.c:
- * generic/tkButton.h:
- * mac/tkMacButton.c:
- * tests/button.test:
- * unix/tkUnixButton.c:
- * win/tkWinButton.c: Implementation of TIP#82 - Added the
- -offrelief option to checkbutton and radiobutton.
-
-2002-06-14 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkWindow.c (Tk_DestroyWindow): Set the pathName
- component of a window to NULL after its memory has been
- deallocated to avoid a possible illegal memory access
- as a result of a call to Tk_PathName() on a Tk_Window
- structure of a window that has already been destroyed.
- [Tk bug 521946]
-
-2002-06-14 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkOption.c (Tk_GetOption): Allocate
- memory with ckalloc not malloc. This keeps
- Tk from erroring out when built with
- TCL_MEM_DEBUG.
-
-2002-06-14 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkBind.c (HandleEventGenerate):
- * generic/tkInt.h: changed warpInProgress boolean from int to a
- bit in the flags variable (TK_DISPLAY_IN_WARP)
-
- * generic/tkCmds.c (Tk_TkObjCmd):
- * unix/tkUnixKey.c (TkpGetString):
- * generic/tkEvent.c (Tk_HandleEvent):
- * generic/tkInt.h: changed useInputMethods boolean from int to a
- bit in the flags variable (TK_DISPLAY_USE_IM)
-
- * generic/tkInt.h:
- * generic/tkCmds.c (Tk_WmObjCmd):
- * unix/tkUnixWm.c (Tk_WmCmd):
- * win/tkWinWm.c (Tk_WmCmd): changed wmTracing from being an int to
- just a bit in the flags variable (TK_DISPLAY_WM_TRACING)
-
- * generic/tkEvent.c (Tk_HandleEvent):
- * unix/tkUnixEvent.c (OpenIM):
- * unix/tkUnixKey.c (TkpGetString):
- * generic/tkInt.h: added TK_DISPLAY_XIM_SPOT flag bit for TkDisplay
- and used this to allow a runtime check to see if over-the-spot XIM
- is possible. If not it will try and fallback to the old-style
- input context, which handles things like dead keys input.
-
- * generic/tk.decls: added TIP #84 implementation that adds a
- * generic/tkDecls.h: Tk_CollapseMotionEvents API which controls
- * generic/tkEvent.c: Tk's collapsing of incoming motion events
- * generic/tkInt.h: on its windows. The default remains to do
- * generic/tkStubInit.c: collapsing. Added a flags parameter to the
- * generic/tkWindow.c: internal display structure to support this
- * doc/QWinEvent.3: and be used in the future for other bits.
- [Tk patch 564642]
-
- * unix/mkLinks: updated from current docs
-
-2002-06-14 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkEvent.c (TkXErrorHandler): Declare static
- function to avoid compiler error with VC++.
- * generic/tkBind.c (ExpandPercents): Cast argument to
- Tk_GetAtomName in order to avoid compiler warning.
-
-2002-06-14 Joe English <jenglish@users.sf.net>
-
- * doc/bind.n:
- * generic/tk.h:
- * generic/tkBind.c:
- * generic/tkCanvWind.c:
- * generic/tkCmds.c:
- * generic/tkEvent.c:
- * generic/tkFocus.c:
- * generic/tkGrab.c:
- * generic/tkGrid.c:
- * generic/tkImage.c:
- * generic/tkPack.c:
- * generic/tkPlace.c:
- * generic/tkPointer.c:
- * generic/tkTextWind.c:
- * generic/tkWindow.c:
- * mac/tkMacSubwindows.c:
- * mac/tkMacWindowMgr.c
- * mac/tkMacWm.c:
- * unix/Makefile.in:
- * unix/tkUnixEmbed.c:
- * unix/tkUnixWm.c:
- * win/tkWinScrlbr.c:
- * win/tkWinWindow.c:
- * win/tkWinWm.c: Implementation of TIP #47 by Neil McKay
- "Modifying Tk to Allow Writing X Window managers".
- Add CirculateRequest, Create, MapRequest, ResizeRequest,
- and ConfigureRequest event types;
- Split TK_TOPLEVEL flag into TK_TOPLEVEL, TK_HAS_WRAPPER,
- TK_WIN_MANAGED, and TK_TOP_HIERARCHY. [Tk patch 572978]
-
-2002-06-14 Andreas Kupries <andreas_kupries@users.sourceforge.net>
-
- * unix/tkAppInit.c: Removed now unneeded and erroneous reference
- to 'matherr'. See Tcl ChangeLog entry 2002-05-31 Don Porter.
-
-2002-06-14 David Gravereaux <davygrvy@pobox.com>
-
- * win/rules.vc: The test for compiler optimizations was in error.
- Thanks goes to Roy Terry <royterry@earthlink.net> for his
- assistance with this.
-
-2002-06-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- Implement TIP 98 [Tk patch 566765]
-
- * doc/FindPhoto.3, generic/tk.h, generic/tk.decls:
- * generic/tkImgPhoto.c: Changed *_Old to *_NoComposite and
- USE_OLD_PHOTO_PUT_BLOCK to USE_COMPOSITELESS_PHOTO_PUT_BLOCK
- following a suggestion from Don Porter.
-
- * tests/imgPhoto.test: Added tests of -compositingrule
-
- * doc/photo.n: Added documentation for "-compositingrule".
- * generic/tkImgPhoto.c (ImgPhotoCmd, ParseSubcommandOptions): New
- "-compositingrule" option for [$photo copy] subcommand, using
- OPT_COMPOSITE flag and compositingRule field in SubcommandOptions
- structure.
-
- * doc/FindPhoto.3: Documented the extra argument for the
- compositing rule and the action to take if anyone wants to
- maintain total backward-compatability.
-
- * generic/tk.h (TK_PHOTO_COMPOSITE_*): Defined values for use as
- compositing rules.
- (USE_OLD_PHOTO_PUT_BLOCK): Added a way for users to select the old
- interface to Tk_PhotoPutBlock to provide an easier upgrade path.
-
- * generic/tk.decls: Alter Tk_PhotoPut*Block to Tk_PhotoPut*Block_Old
- and introduce new slots for the old name of function with an extra
- argument at the end for the compositing rule.
-
- * generic/tkImgPhoto.c (ImgPhotoCmd): Updated "transparency set"
- subcommand to use TkSubtractRegion().
-
- * win/tkWinRegion.c (TkSubtractRegion):
- * mac/tkMacRegion.c (TkSubtractRegion):
- * generic/tkInt.decls (TkSubtractRegion):
- * unix/tkUnixPort.h (TkSubtractRegion): Added function to perform
- the set-difference operation on regions; it seems all platforms
- can support it, and it makes removing rectangular bits from
- regions much easier.
-
- * generic/tkImgPPM.c (FileReadPPM): Reading a PPM/PGM always uses
- the SET compositing rule because it is faster and the format does
- not have any transparency information.
-
- * generic/tkImgGIF.c (FileReadGIF): Reading a GIF always uses the
- SET compositing rule because GIF files model transparency as a
- single special colour.
-
- * generic/tkImgPhoto.c (Tk_PhotoPutBlock, Tk_PhotoPutZoomedBlock):
- Added a compositing rule to allow better control over what happens
- to transparent pixels when inserting data into a photo image.
+2002-08-29 Andreas Kupries <andreas_kupries@users.sourceforge.net>
-2002-06-13 Mo DeJong <mdejong@users.sourceforge.net>
+ * win/tclWinThrd.c (TclpFinalizeThreadData, TclWinFreeAllocCache):
+ Applied patch for bug #599428, provided by Miguel Sofer
+ <msofer@users.sourceforge.net>.
- * tests/winfo.test: Add basic tests for winfo ismapped.
+2002-08-28 David Gravereaux <davygrvy@pobox.com>
-2002-06-13 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/unixWm.test:
- * tests/wm.test: Move wm minsize and wm maxsize
- usage tests into the cross platform wm tests.
-
-2002-06-13 Don Porter <dgp@users.sf.net>
-
- * tests/cursor.test: corrected error after cursor-2.2.
- * tests/defs.tcl: Added enhancements to Tk's fake version of
- tcltest required by recent cursor.test changes.
+ * generic/tclEnv.c:
+ * unix/configure.in:
+ * win/tclWinPort.h: putenv() on some systems copies the buffer
+ rather than taking reference to it. This causes memory leaks
+ and is know to effect mswindows (msvcrt) and NetBSD 1.5.2 . This
+ patch tests for this behavior and turns on -DHAVE_PUTENV_THAT_COPIES=1
+ when approriate. Thanks to David Welton for assistance.
+ [Bug 414910]
-2002-06-13 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * unix/configure: regen'd
- * tests/cursor.test (cursor-2.[34]): Tests added to ensure that
- cursor specs really are well-behaved lists. Also some general
- clean-up...
- * win/tkWinCursor.c (TkGetCursorByName): Undone Jeff's back-off
- and fixed things so that they should work now. Cursor specs are
- lists first and foremost.
+2002-08-28 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-2002-06-12 Mo DeJong <mdejong@users.sourceforge.net>
+ * doc/eval.n: Added mention of list command and corrected "SEE ALSO".
- * changes: Clearly label wm transient changes as
- a POTENTIAL INCOMPATIBILITY.
- * doc/wm.n: Remove "some window managers will" text
- and explicitly state what behavior a transient
- window will display. Also mention that it is an
- error to make a window a transient of itself.
+ * unix/configure.in: Cache handling of ac_cv_type_socklen_t was
+ wrong. [Bug 600931] reported by John Ellson. Fixed by putting the
+ brackets where they belong.
-2002-06-12 Mo DeJong <mdejong@users.sourceforge.net>
+2002-08-26 Miguel Sofer <msofer@users.sourceforge.net>
- * library/choosedir.tcl (tk::dialog::file::chooseDir):
- * library/clrpick.tcl (tk::dialog::file::chooseDir):
- * library/msgbox.tcl (tk::MessageBox):
- * library/tkfbox.tcl (tk::dialog::file):
- * library/xmfbox.tcl (tk::MotifFDialog): Remove the
- transient property on dialogs after they have been
- dismissed to insulate them from further state changes
- in the master. This keeps a withdrawn dialog from
- being mapped when the master is deiconified. [Tk patch 568278]
+ * generic/tclCompCmds.c: fix for [Bug 599788] (error in element
+ name causing segfault), reported by Tom Wilkason. Fixed by copying
+ the tokens instead of the source string.
-2002-06-12 Jeff Hobbs <jeffh@ActiveState.com>
+2002-08-26 Miguel Sofer <msofer@users.sourceforge.net>
- * win/tkWinCursor.c (TkGetCursorByName): reverted fix from
- 2002-06-06 because it broke the ability to use built-in cursors
- like left_ptr.
-
-2002-06-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * library/choosedir.tcl (tk::dialog::file::chooseDir):
- * library/clrpick.tcl (tk::dialog::color):
- * library/dialog.tcl (tk_dialog):
- * library/msgbox.tcl (tk::MessageBox):
- * library/tkfbox.tcl (tk::dialog::file):
- * library/xmfbox.tcl (tk::MotifFDialog_Create):
- Only make the dialog window a transient if
- the master is visible. This check already
- appeared in some of the dialogs. This patch
- just copies the check into those that were
- lacking. [Tk patch 568253]
-
-2002-06-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * changes: Add note about new transient behavior.
- * tests/unixWm.test: Check that the WM_TRANSIENT_FOR
- property for a transient window is being cleared
- when the master is destroyed.
- * tests/wm.test: Source defs.tcl instead of using
- tcltest to match the rest of Tk's test files.
- Add new tests that ensure that a transient's state
- mirrors the state of the master.
- * unix/tkUnixWm.c (WmInfo, TkWmNewWindow, TkWmMapWindow,
- TkWmDeadWindow, Tk_WmCmd, WmWaitMapProc): Add numTransients
- member to WmInfo structure. Keep state of master and
- transient in sync using a callback that tracks MapNotify
- and UnmapNotify events. When the master is mapped, map
- the transient. When the master is unmapped or iconified,
- withdraw the transient.
- * win/tkWinWm.c (TkWmMapWindow, TkpWmSetState,
- TkWmDeadWindow, Tk_WmCmd, WmWaitVisibilityOrMapProc):
- Keep state of master and transient in sync using a
- callback that tracks MapNotify and UnmapNotify events.
- Move masterPtr check from TkpWmSetState into TkWmMapWindow
- to deal with WM_NEVER_MAPPED transients. Cleanup
- numTransients and the callback in TkWmDeadWindow.
- Cleanup numTransients and the callback only after
- deleting a master in wm transient command to avoid
- deleting the callback when an error is raised.
- Add support for MapNotify and UnmapNotify events
- to the master callback. [Tk patch 561708]
-
-2002-06-11 Joe English <jenglish@users.sf.net>
-
- * library/menu.tcl: fix for bug report #530212 "Bad Window Path
- Name in tkMenuFind"
-
-2002-06-10 David Gravereaux <davygrvy@pobox.com>
-
- * win/makefile.vc: Fixed a win98 issue where the /exclude option
- for xcopy is unsupported.
- Reported by Roy Terry <royterry@earthlink.net>.
-
-2002-06-10 Anton Kovalenko <a_kovalenko@users.sourceforge.net>
-
- * library/tk.tcl: added utility functions to get "-underline" and
- "-text" for labels and buttons from translatable string containing
- "magic ampersand" [patch #566605]
- * library/clrpick.tcl:
- * library/msgbox.tcl:
- * library/tkfbox.tcl:
- * library/xmfbox.tcl: some places where msgcat is used to get
- translated label are modified to handle labels with magic ampersand.
- * library/msgs/ru.msg: russian translations added
- * library/msgs/cs.msg:
- * library/msgs/de.msg:
- * library/msgs/el.msg:
- * library/msgs/es.msg:
- * library/msgs/fr.msg:
- * library/msgs/it.msg:
- * library/msgs/nl.msg: all translation files now have labels with
- 'magic ampersand' where appropriate. In el.msg some ampersands are
- missing, as I don't know which underline positions seems natural
- to "el" users.
-
-2002-06-09 Mo DeJong <mdejong@users.sourceforge.net>
-
- * library/bgerror.tcl (tk::dialog::error::bgerror):
- Don't set the bgerror dialog as a transient of
- itself since this operation is ill defined.
-
-2002-06-06 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * win/tkWinCursor.c (TkGetCursorByName): Fixed so that the reading
- of cursors from a file with a cursor spec was built using [list]
- works when the file has a space in instead of requiring fiddling
- with backslashes.
-
-2002-06-06 Anton Kovalenko <a_kovalenko@users.sourceforge.net>
-
- * library/msgbox.tcl (MessageBox): Add -default normal
- when creating non-default buttons for message box.
- They already get -default normal when they're
- unfocused, and dialog window size used to change suddenly
- in such cases.
-
-2002-06-05 Anton Kovalenko <a_kovalenko@users.sourceforge.net>
-
- * unix/tkUnixFont.c (Tk_DrawChars): Don't assume that
- one char is always one byte, and that required
- subfont for the last character in any string is
- the same as for the previous character
- [Bug #559435] [Patch #559437]
-
-2002-05-27 Mo DeJong <mdejong@users.sourceforge.net>
-
- * changes: Document [wm transient .t .t] error.
- * tests/wm.test: Check that setting a window
- as a transient of itself raises an error. Check
- that passing a non-toplevel window to the wm
- transient command uses the enclosing toplevel.
- * unix/tkUnixWm.c (Tk_WmCmd): Raise an error
- if the user tries to make a toplevel a
- transient of itself.
- * win/tkWinWm.c (Tk_WmCmd): Raise an error
- if the user tries to make a toplevel a
- transient of itself. Test for other error
- before checking for the transient self error.
-
-2002-05-27 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/tkUnixWm.c (WmInfo, TkWmCleanup, TkWmNewWindow,
- TkWmMapWindow, TkWmDeadWindow, Tk_WmCmd): Replace
- WmInfo's master and masterWindowName members with
- a masterPtr member. This implementation is much
- simpler and mirrors the Win32 implementation. This
- change makes it easy to check the flags of the
- master window. No user visible changes.
-
-2002-05-27 Mo DeJong <mdejong@users.sourceforge.net>
-
- * generic/tkInt.decls: Add unix decl for TkpWmSetState.
- * generic/tkIntPlatDecls.h: Regen.
- * generic/tkStubInit.c: Regen.
- * tests/wm.test: Test state changes between iconic,
- normal, and withdrawn both before and after initial
- mapping.
- * unix/tkUnixWm.c (Tk_WmCmd, TkpWmSetState): Move
- state change code into TkpWmSetState to more closely
- match the Win32 implementation. No user visible changes.
-
-2002-05-27 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/embed.test: Added cross platform embed tests.
- Check that window passed to -use has the -container
- option set.
- * tests/wm.test: Remove useless catch call. Deiconify
- . just in case, stackorder tests will not pass unless
- it is in the normal state. Add -container flag to
- embedded stackorder test.
- * unix/tkUnixEmbed.c (TkpUseWindow):
- * win/tkWinEmbed.c (TkpUseWindow): Lookup Tk window
- based on the id passed in as the value for -use.
- Generate an error if the Tk window did not have
- the -container option set.
-
-2002-05-26 Peter Spjuth <peter.spjuth@space.se>
-
- * generic/tkButton.c (ConfigureButton): When creating
- a radiobutton with -value "" it was not drawn properly
- if the -variable was created by the radiobutton.
- [Bug #548765]
-
-2002-05-26 Peter Spjuth <peter.spjuth@space.se>
-
- * generic/tkCanvText.c (ComputeTextBbox): Negative
- coordinates were rounded badly causing a 1 pixel
- displacement. [Bug #556526]
+ * generic/tclThreadAlloc.c: small optimisation, reducing the
+ new allocator's overhead.
-2002-05-24 Mo DeJong <mdejong@users.sourceforge.net>
-
- * mac/tkMacWm.c (Tk_WmCmd):
- * tests/unixWm.test: Move wm transient checks over
- to wm.test so they will be run on all systems.
- * tests/wm.test: Add tests to check for error when
- an iconwindow is passed to the wm transient command.
- * unix/tkUnixWm.c (Tk_WmCmd):
- * win/tkWinWm.c (Tk_WmCmd): Raise an error if one
- of the windows passed to the wm transient command
- is an iconwindow for another toplevel.
-
-2002-05-23 Mo DeJong <mdejong@users.sourceforge.net>
-
- * mac/tkMacWm.c (TkWmStackorderToplevelWrapperMap):
- * tests/wm.test: Add embedded Window test case for
- the stackorder command.
- * unix/tkUnixWm.c (TkWmStackorderToplevelWrapperMap):
- * win/tkWinWm.c (TkWmStackorderToplevelWrapperMap):
- Ignore embedded windows during wm stackorder command.
-
-2002-05-21 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/configure.in: Invoke SC_ENABLE_SHARED before
- calling SC_CONFIG_CFLAGS so that the SHARED_BUILD
- variable can be checked inside SC_CONFIG_CFLAGS.
- * unix/tcl.m4: Update from Tcl.
-
-2002-05-20 Don Porter <dgp@users.sourceforge.net>
+2002-08-23 Miguel Sofer <msofer@users.sourceforge.net>
- * library/tk.tcl: A little namespace cleanup on Daniel Steffen's
- latest revisions to avoid defining new global commands.
+ * generic/tclObj.c (USE_THREAD_ALLOC): fixed leak [Bug 597936].
+ Thanks to Zoran Vasiljevic.
-2002-05-20 Daniel Steffen <das@users.sourceforge.net>
-
- * mac/tkMacInit.c:
- * mac/tkMacTclCode.r: include msgcat package in resources
- as bgerror depends on it. Restores ability of mac static
- build to run standalone (except for encoding file issues).
+2002-08-23 Miguel Sofer <msofer@users.sourceforge.net>
- * mac/tkMacInit.c:
- * library/console.tcl:
- * library/tk.tcl: fix tk.tcl not sourcing library files
- that define bindings at startup on mac. (independent of
- tk library files being in resources or on auto_path)
+ * generic/tclThreadAlloc.c (USE_THREAD_ALLOC): moving objects
+ between caches as a block, instead of one-by-one.
-2002-05-08 Don Porter <dgp@users.sourceforge.net>
+2002-08-22 Miguel Sofer <msofer@users.sourceforge.net>
- * library/bgerror.tcl:
- * library/tclIndex: Cleaned up namespace usage of the bgerror
- dialog. Completes soft dependence on msgcat. [FR 539309]
+ * generic/tclBasic.c:
+ * generic/tclCmdMZ.c: fix for freed memory r/w in delete traces
+ [Bug 589863], patch by Hemang Lavana.
-2002-05-07 David Gravereaux <davygrvy@pobox.com>
- * win/makefile.vc: Problem with TCLDIR macro not accepting
- forward slash path seperators resolved. Added the same logic
- to INSTALLDIR, too. [Bug #553208]
+2002-08-20 Andreas Kupries <andreas_kupries@users.sourceforge.net>
-2002-04-26 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/configure:
- * unix/tcl.m4: change HP-11 SHLIB_LD_LIBS from "" to ${LIBS} so
- that the .sl knows its dependent libs.
+ * win/Makefile.in (CFLAGS):
+ * unix/Makefile.in (MEM_DEBUG_FLAGS): Added usage of @MEM_DEBUG_FLAGS@.
+ * win/configure.in:
+ * unix/configure.in: Added usage of SC_ENABLE_MEMDEBUG.
+ * win/tcl.m4:
+ * unix/tcl.m4: Added macro SC_ENABLE_MEMDEBUG. Allows a user of
+ configure to (de)activate memory validation and debugging
+ (TCL_MEM_DEBUG). No need to modify the makefile anymore.
-2002-04-24 Daniel Steffen <das@users.sourceforge.net>
+2002-08-20 Don Porter <dgp@users.sourceforge.net>
- * mac/tkMacTclCode.r:
- * mac/tkMacResource.r: added check of
- TCLTK_NO_LIBRARY_TEXT_RESOURCES #define to allow disabling the
- inclusion of the tk library code in the resource fork of Tk
- executables and shared libraries.
- Moved tk library code inclusion to separate file like in tcl.
- Added 'panedwindow' resource.
+ * generic/tclCkalloc.c: CONSTified MemoryCmd and CheckmemCmd.
-2002-04-22 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/button.tcl (ButtonLeave): corrected the 3
- implementations of ButtonLeave to check for Priv(relief) existing
- before trying to use it. [Patch #541849]
-
- * generic/tkTextDisp.c (DisplayLineBackground):
- * unix/tkUnix3d.c (Tk_3DHorizontalBevel):
- * unix/tkUnixFont.c (Tk_DrawChars): applied fixes to not overrun
- the X window 16-bit size limit. [Patch #541999] (bonfield)
-
-2002-04-22 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkTextDisp.c (GetXView, GetYView): Comparison with
- previous values of scrollbar range are now done in a way that is
- sensitive to the bizarreness of floating-point on architectures
- where IEEE-FP is not used on the processor. Also increased the
- size of the temporary buffer to take account of the fact that
- TCL_DOUBLE_SPACE is meant to only imply enough space to take a
- printed double and trailing '\0', and no more. [Bug #223739]
- (FP_EQUAL_SCALE): New macro to help compare floating-point numbers
- for equality in a sane way, used in GetXView and GetYView.
-
-2002-04-12 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkWindow.c (TkCloseDisplay): Added to centralize where a
- display was closed. This handles freeing memory associated with a
- display and closing it.
- (DeleteWindowsExitProc): actually close displays. This would also
- ideally be done in Tk_DestroyWindow when the last window on the
- display has been closed, but that still has unresolved order of
- cleanup problems.
- (Tk_DestroyWindow): added TkFocusFree call.
-
- * generic/tkStubInit.c:
- * generic/tkIntPlatDecls.h:
- * generic/tkIntDecls.h:
- * generic/tkInt.decls: added TkFocusFree, TkClipCleanup and
- TkGCCleanup generic private procs, and TkWmCleanup, TkSendCleanup
- and TkFreeXId unix private procs.
-
- * generic/tkInt.h:
- * unix/tkUnixXId.c (TkFreeXId): frees XID resources.
- Made idCleanupScheduled a Tcl_TimerToken (was int) in TkDisplay
- structure to allow us to delete the timer scheduled for it.
-
- * unix/tkUnixWm.c (TkWmStackorderToplevel): ensure children
- structure is freed.
- (ConfigureEvent, ComputeReparentGeometry): Add extra wm tracing info
- (TkWmRestackToplevel): initialize changes to 0 to prevent UMR.
- Use WaitForConfigureNotify on all windows. This part still
- requires fixing as it is the root of the 2 second raise delay on
- some window managers (those that use extra wrapper windows of
- their own).
-
- * unix/tkUnixSend.c (TkSendCleanup): free send-related resources
-
- * unix/tkUnixEvent.c (TkpCloseDisplay): call TkSendCleanup and
- TkWmCleanup.
-
- * unix/tkUnixSelect.c (SelRcvIncrProc): added missing Tcl_Release
- of interp
-
- * generic/tkGet.c (FreeUidThreadExitProc): free thread-specific
- resources on thread exit
-
- * generic/tkFocus.c (TkFocusFree): frees TkMainInfo data
- * generic/tkClipboard.c (TkClipCleanup): frees TkDisplay data
- * generic/tkGC.c (TkGCCleanup): frees TkDisplay data
-
- * unix/tkUnixFont.c (FontPkgCleanup): cleanup thread specific font
- resources on thread exit.
-
- * mac/tkMacXStubs.c (TkpOpenDisplay): memset the initial display
- structures to 0.
-
- * generic/tkOption.c (OptionThreadExitProc): freed tsd option
- stacks on thread exit.
- (Tk_GetOption): free mem used to get Tk_Uid
-
- * generic/tkMenu.c (ConfigureMenu): freed saved options in all
- error cases.
-
- * win/tkWinInt.h: declaration for TkWinGetUnicodeEncoding
- * win/tkWinDialog.c (GetFileNameW): use TkWinGetUnicodeEncoding
- * win/tkWinInit.c (TkpDisplayWarning): use TkWinGetUnicodeEncoding
- * win/tkWinFont.c: use TkWinGetUnicodeEncoding instead of static
- unicodeEncoding.
-
- * win/tkWinX.c (Tk_SetCaretPos): remove WM_IME_STARTCOMPOSITION
- and place the IME position within Tk_SetCaretPos. Cache results in
- Tk_SetCaretPos to reduce unnecessary repositioning. Also call
- DestroyCaret if we receive WM_KILLFOCUS.
- (TkpOpenDisplay): ZeroMemory the initial display structures.
- (TkWinGetUnicodeEncoding): Added so that Windows only needs to
- cache this value one, and then free it in TkWinXCleanup.
- (HandleIMEComposition): add support for Win98 and ATOK13
- IME. (yamamoto)
-
- * generic/tkConsole.c (ConsoleCmd): correct return that should
- have just set result code.
-
- * generic/tkImgPhoto.c: Added PhotoFormatThreadExitProc to clean
- up on thread exit. (Tk_PhotoPutBlock) slight code updates
-
- * generic/tkPanedWindow.c (DestroyPanedWindow, ConfigureSlaves):
- fix mem leaks in not freeing slave info
+ * README: Bumped version number to 8.4b3 to distinguish
+ * generic/tcl.h: HEAD from the 8.4b2 release.
+ * tools/tcl.wse.in:
+ * unix/configure.in:
+ * unix/tcl.spec:
+ * win/README.binary:
+ * win/configure.in:
+ * unix/configure: autoconf
* win/configure:
- * win/tcl.m4: Enabled COFF as well as CV style debug info with
- --enable-symbols to allow Dr. Watson users to see function info.
- More info on debugging levels can be obtained at:
- http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
-
-2002-04-10 Mo DeJong <mdejong@users.sourceforge.net>
- * doc/wm.n:
- * mac/tkMacWm.c:
- * tests/wm.test:
- * unix/tkUnixWm.c:
- * win/tkWinWm.c: Update wm stackorder usage message
- to make it clear that either 1 or 3 arguments are
- required. [Bug 540013]
-
-2002-04-08 Daniel Steffen <das@users.sourceforge.net>
-
- * mac/tkMacProjects.sea.hqx: added tkPanedWindow.c to projects
- * mac/tkMacAppInit.c: fixes to MSL stdin/stdout hookup to the
- TkConsole when using shared MSL libraries; fix for crashing
- bug on exit: writing to stdin/sterr when console has already
- been destroyed. (both fixes need support in MSL, see
- 'CW Pro6 changes' in tcl/mac/tcltkMacBuildSupport.sea.hqx)
- * mac/tkMacDialog.c: fixes to Navigation Services Dialog filter.
- * mac/tkMacDraw.c: add panic for overwide TkImages that would
- crash Tk on mac otherwise.
-
-2002-04-05 Jeff Hobbs <jeffh@ActiveState.com>
-
- * mac/tkMacXStubs.c: added Tk_SetCaretPos stub (does nothing).
- * win/tkWinX.c: added Tk_SetCaretPos code to position IME windows
- correctly when WM_IME_STARTCOMPOSITION is received.
- * unix/tkUnixKey.c: added Tk_SetCaretPos and code for setting
- XIM caret in TkpGetString.
-
- * generic/tkStubInit.c:
- * generic/tkDecls.h:
- * generic/tk.decls: added Tk_SetCaretPos declaration. This command
- allows users to indicate the cursor position and is used by XIM
- (Unix) or IME (Windows) to place the caret box correctly. It is
- also part of correct Accessibility style on Windows to make the
- magnifier jump to the focus point.
-
- * win/tkWinButton.c (TkpDisplayButton):
- * generic/tkTextMark.c (TkTextInsertDisplayProc):
- * generic/tkCanvText.c (DisplayCanvText):
- * generic/tkEntry.c (DisplayEntry): added Tk_SetCaretPos calls
-
- * generic/tkInt.h: added TK_XIM_SPOT #define (default 1).
- Added XFontSet attribute to TkDisplay when TK_XIM_SPOT is true.
- * generic/tkEvent.c (Tk_HandleEvent): made sure inputContexts are
- not getting created on DestroyNotify events (for dead windows).
- Added over-the-spot support if TK_XIM_SPOT is defined (default).
- The is the nicer XIM behavior, but uses a bit more memory.
-
- * unix/tkUnixEvent.c:
- * generic/tkWindow.c: moved OpenIM over to tkUnixEvent.c.
- Removed setting inputContext to null in Tk_MakeWindowExist as it
- was redundant.
-
- * unix/tkUnixWm.c (CreateWrapper): Removed redundat setting of
- inputContext to null.
-
- * win/Makefile.in: changed gdb and shell targets to properly build
- all binaries before running (otherwise an error often occured).
-
-2002-03-28 David Gravereaux <davygrvy@pobox.com>
-
- * win/.cvsignore (new):
- * win/lamp.bmp (new):
- * win/makefile.vc:
- * win/nmakehlp.c (new):
- * win/rules.vc: Brought the makefile up-to-date with Tcl's one.
- This now has support for Win9x issues and the winhelp target now
- exists. Color scheme can be changed. I'm just imparting a first
- suggestion using orange :) I'll have to think about the install
- portion of the helpfile as I'll need to do some tricks to insert
- tk's contents file into Tcl's using some special winhlp32.exe
- switches. [Bug 533862 527941]
-
- * win/makefile.vc: Tk helpfile is now installing itself into Tcl's
- contents file as part of the install target and rebuilding the
- contents table as desired. [Bug 527941]
-
- * doc/console.n: Changed topic from "Tcl Built-In Commands" to
- "Tk Built-In Commands"
-
- * win/buildall.vc.bat: Update to match Tcl.
-
-2002-03-26 Andreas Kupries <andreask_kupries@users.sourceforge.net>
-
- * unix/tkUnixFont.c: Added inclusion of <arpa/inet.h>. This fixes
- a GCC/HPUX problem with missing a "htons". See also
- "tclUnixPort.h" for equivalent code.
-
-2002-03-21 David Gravereaux <davygrvy@pobox.com>
-
- * win/makefile.vc: Changed optimize flag to -0ti instead of -02.
- [Bug 528441]
-
-2002-03-20 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkButton.c (ButtonTextVarProc,ButtonVarProc):
- * generic/tkCmds.c (WaitVariableProc):
- * generic/tkEntry.c (EntryTextVarProc):
- * generic/tkListbox.c (ListboxListVarProc):
- * generic/tkMenu.c (MenuVarProc):
- * generic/tkMenubutton.c (MenuButtonTextVarProc):
- * generic/tkMessage.c (MessageTextVarProc):
- * generic/tkScale.c (ScaleVarProc): Updates to handle change in
- type of part2 argument of Tcl_VarTraceProc typedef. [TIP 27]
- [Patch 532644].
-
-2002-03-19 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkOldConfig.c (Tk_ConfigureValue): prevent leaving
- interp->result as NULL.
-
-2002-03-07 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/text.tcl (TextPasteSelection): Renaming of TextPaste to
- prevent confusion with tk_textPaste. Stopped code from inserting
- selections twice, which seems to have happened with TIP#26, and
- reorganized code to reduce amount of stuff protected by catch
- which is tricky to maintain.
- (tk_textPaste): Reduce amount of code protected by catch.
-
-2002-03-06 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/tkWinX.c: Define _WIN32_IE as 0x0300
- before including commctrl.h so that we can
- access the InitCommonControlsEx API when
- building Tk with mingw.
-
-2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * README, generic/tk.h, unix/configure.in, unix/tk.spec:
- * win/configure.in: Bumped patchlevel; this might need to change
- in the future, but it will help us distinguish between the CVS
- version and the most recent released version.
-
-2002-03-05 Jeff Hobbs <jeffh@ActiveState.com>
-
- *** 8.4a4 TAGGED FOR RELEASE ***
-
- * unix/README: updated --* options docs.
-
- * unix/tk.spec: fixed URL refs to use www.tcl.tk or SF.
-
-2002-03-04 Jeff Hobbs <jeffh@ActiveState.com>
-
- * README:
- * mac/README:
- * unix/README:
- * win/README: updated to use www.tcl.tk URL.
-
-2002-03-03 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/entry.tcl: added catch around Triple-1 binding use of
- sel.last
-
-2002-02-28 Don Porter <dgp@users.sourceforge.net>
-
- * library/console.tcl (ConsoleBind): Corrected console <<Paste>>
- binding on Unix platforms.
-
-2002-02-26 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
-
- * generic/tkWindow.c (Tk_MainWindow, Tk_GetNumMainWindows):
- protect against being called before Tcl stubs are init'ed.
- [Bug #220916] (porter)
-
-2002-02-25 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkText.c (ConfigureText): reenable the blinking cursor
- on state change where necessary. [Bug #503772]
-
- * tests/listbox.test:
- * generic/tkListbox.c: corrected error handling when setting to an
- invalid listvar value. [Bug #503613]
-
- * library/scale.tcl: mirror B2 bindings to B3 on Windows to better
- accomodate two button mice. [Patch #493145]
-
- * library/panedwindow.tcl: improved proxy sash handling. (boudaillier)
-
-2002-02-25 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * tests/filebox.test: Reorganised and fixed so that tests are
- executed fewer times (!) and the automatic extension adding
- behaviour of tk_getSaveFile is tested.
-
-2002-02-23 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
-
-2002-02-22 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkPanedWindow.c (PanedWindowWidgetObjCmd): fixed returns
- that should have been breaks instead. Corrected .pw configure
- handling for insufficient args. [Patch #521436] (boudaillier)
-
- * mac/tkMacDefault.h:
- * unix/tkUnixDefault.h:
- * win/tkWinDefault.h: changed panedwindow default relief to flat,
- a more natural outer relief.
-
- * library/panedwindow.tcl (ReleaseSash): changed to not pass x and
- y args at all (they aren't used).
- Added proc comments. Made configuring sash cursor more efficient.
- Added Cursor timer that restores the default cursor when pointer
- is no longer over the sash. This is necessary because Leave
- events won't be seen when moving into a paned child.
-
-2002-02-22 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/widget: New section "Paned Windows"
- * library/demos/paned2.tcl, library/demos/paned1.tcl: New files.
-
- * library/panedwindow.tcl (ReleaseSash): Added missing arguments.
- * library/tk.tcl: Bindings for paned window were not being loaded
- by default.
-
- * unix/tkUnixMenu.c (GetMenuLabelGeometry,DrawMenuEntryLabel):
- Stop meaningless GCC warnings.
-
-2002-02-21 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/panedwindow.n (new):
- * generic/tkPanedWindow.c (new):
- * generic/tkInt.h:
- * generic/tkWindow.c:
- * library/panedwindow.tcl (new):
- * mac/tkMacDefault.h:
- * tests/panedwindow.test (new):
- * unix/Makefile.in:
- * unix/tkUnixDefault.h:
- * win/Makefile.in:
+ * library/http/http.tcl: Corrected installation directory of
+ * library/msgcat/msgcat.tcl: the package tcltest 2.2. Added
+ * library/opt/optparse.tcl: comments in other packages to remind
+ * library/tcltest/tcltest.tcl: that installation directories need
+ * unix/Makefile.in: updates to match increasing version
+ * win/Makefile.in: numbers. [Bug 597450]
+ * win/makefile.bc:
* win/makefile.vc:
- * win/tkWinDefault.h: added implementation of TIP #41, panedwindow
- widget. [Patch #512503] (melski)
- * generic/tkOption.c (ReadOptionFile): fixed Tcl_Seek casting to
- remove warnings (we expect no option files with be > 2GB).
+2002-08-19 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * unix/configure: regenerated
- * unix/tcl.m4: updated to sync with Tcl's tcl.m4
- Added --enable-64bit support for AIX-4 using IBM's xlc (-q64 flag).
+ * unix/tclUnixTest.c (TestfilehandlerCmd): Changed
+ readable/writable to the more common readable|writable.
-2002-02-19 Don Porter <dgp@users.sourceforge.net>
+ Fixes SF #596034 reported by Larry Virden
+ <lvirden@users.sourceforge.net>.
- * changes: First draft of updated changes for 8.4a4 release.
+2002-08-16 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-2002-02-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkImgPhoto.c (MatchFileFormat): Tcl_Seek takes
- Tcl_WideInt offset (three places.)
- * generic/tkImgPPM.c (FileReadPPM): Tcl_Seek takes Tcl_WideInt offset.
- * generic/tkFrame.c (ConfigureFrame): Stop GCC warning.
-
- * generic/tkImgGIF.c: Made file meet the formatting rules from the
- Tcl Engineering Manual better; mostly differences in whitespace.
-
-2002-02-18 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/configure: regen'd
- * unix/tcl.m4:
- * unix/configure.in: added macros and calls to SC_TCL_EARLY_FLAGS
- and SC_TCL_64BIT_FLAGS, part of TIP #72.
+ * tests/fCmd.test: Added test to make sure that the cause of the
+ problem is detectable with an unpatched Tcl.
+ * doc/ObjectType.3: Added note on the root cause of this problem
+ to the documentation, since it is possible for user code to
+ trigger this sort of behaviour too.
+ * generic/tclIOUtil.c (SetFsPathFromAny): Objects should only have
+ their old representation deleted when we know that we are about to
+ install a new one. This stops a weird TclX bug under Linux with
+ certain kinds of memory debugging enabled which essentally came
+ down to a double-free of a string.
-2002-02-14 Mo DeJong <mdejong@users.sourceforge.net>
+2002-08-14 Miguel Sofer <msofer@users.sourceforge.net>
- * library/entry.tcl:
- * library/text.tcl: Adjust <Double-1> and <Triple-1> bindings
- so that no anchor point is set and the insertion cursor is
- set to the last character in the selection. [Bug 220943]
- * tests/event.test: Add test cases for double click and
- drag as well as triple click and drag in the text and
- entry widgets.
-
-2002-02-14 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/event.test (_text_ind_to_x_y, _get_selection): Fix
- incorrect use of results from bbox invocation so that
- y center point for a give index is calculated correctly.
- Add new method to return the selection and use it in
- test cases. Always lappend to the result list to avoid
- case where initial result includes a space.
-
-2002-02-07 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkMain.c:
- * mac/tkMacInit.c:
- * mac/tkMacKeyboard.c:
- * win/tkWinDialog.c:
- * win/tkWinTest.c: modified some callers of Tcl routines that
- were restored to return (char *) pointing into Tcl_DStrings.
+ * generic/tclInt.h:
+ * generic/tclObj.c: (code cleanup) factored the parts in the macros
+ TclNewObj() / TclDecrRefCount() into a common part for all
+ memory allocators and two new macros TclAllocObjStorage() /
+ TclFreeObjStorage() that are specific to each allocator and fully
+ describe the differences. Removed allocator-specific code from
+ tclObj.c by using the macros.
+
+2002-08-12 Miguel Sofer <msofer@users.sourceforge.net>
-2002-02-03 eric melski <ericm@interwoven.com>
+ * generic/tclCmdMZ.c: fixing UMR in delete traces, [Bug 589863].
+
+2002-08-08 David Gravereaux <davygrvy@pobox.com>
- * generic/tkImage.c (Tk_ImageObjCmd): Clean up bogus for loop in
- [image inuse] subcommand [Bug #485803].
+ * tools/man2help.tcl: Fixed $argv handling bug where if -bitmap
+ wasn't specified $argc was off by one.
-2002-02-01 Jeff Hobbs <jeffh@ActiveState.com>
+2002-08-08 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkCmds.c (Tk_TkObjCmd): don't use 'bool' as an arg as it
- conflicts with the C99 spec. [Bug #511956] (ingham)
+ * tests/uplevel.test: added 6.1 to test [uplevel] with shadowed
+ commands [Bug 524383]
-2002-02-01 David Gravereaux <davygrvy@pobox.com>
+ * tests/subst.test: added 5.8-10 as further tests for [Bug 495207]
- * win/makefile.vc: unset macro located in the tktest target
- caused a failure to build. [Bug 511652]
+2002-08-08 Don Porter <dgp@users.sourceforge.net>
-2002-01-30 Don Porter <dgp@users.sourceforge.net>
+ * tests/README: Noted removal of defs.tcl.
- * win/stubs.c (XSetCommand): Overlooked CONSTification.
+2002-08-08 Jeff Hobbs <jeffh@ActiveState.com>
-2002-02-01 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * doc/lsearch.n: corrected lsearch docs to use -inline in examples.
- * doc/photo.n: Documented transparency subcommand.
- * tests/imgPhoto.test (imgPhoto-4.40...imgPhoto-4.68): Tests for
- the transparency subcommand.
- * generic/tkImgPhoto.c (ImgPhotoCmd): Added transparency
- subcommand (see TIP #14.)
+ *** 8.4b2 TAGGED FOR RELEASE ***
-2002-01-31 Todd Helfter <tmh@users.sourceforge.net>
- * generic/tkMenu.c (ConfigureMenuCloneEntries)
- * tests/menu.test (menu3.68)
- Correct and test for logic error when cloning menus. [Bug #508988]
+ * tests/fCmd.test:
+ * tests/unixFCmd.test: updated tests for new link copy behavior.
+ * generic/tclFCmd.c (CopyRenameOneFile): changed the behavior to
+ follow links to endpoints and copy that file/directory instead of
+ just copying the surface link. This means that trying to copy a
+ link that has no endpoint (danling link) is an error.
+ [Patch #591647] (darley)
+ (CopyRenameOneFile): this is currently disabled by default until
+ further issues with such behavior (like relative links) can be
+ handled correctly.
+
+ * tests/README: slight wording improvements
+
+2002-08-07 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * docs/BoolObj.3: added description of valid string reps for a
+ boolean object [Bug 584794]
+ * generic/tclObj.c: optimised Tcl_GetBooleanFromObj and
+ SetBooleanFromAny to avoid parsing the string rep when it can be
+ avoided [Bugs 584650, 472576]
+
+2002-08-07 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclCompile.h:
+ * generic/tclObj.c: making tclCmdNameType static ([Bug 584567],
+ Don Porter).
+
+2002-08-07 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclObj.c (Tcl_NewObj): added conditional code for
+ USE_THREAD_ALLOC; objects allocated through Tcl_NewObj() were
+ otherwise being leaked. [Bug 587488] reported by Sven Sass.
+
+2002-08-06 Daniel Steffen <das@users.sourceforge.net>
+
+ * generic/tclInt.decls:
+ * unix/tclUnixThrd.c: Added stubs and implementations for
+ non-threaded build for the tclUnixThrd.c procs TclpReaddir,
+ TclpLocaltime, TclpGmtime and TclpInetNtoa.
+ Fixes link errors in stubbed & threaded extensions that include
+ tclUnixPort.h and use any of the procs readdir, localtime,
+ gmtime or inet_ntoa (e.g. TclX 8.4) [Bug 589526]
+ * generic/tclIntPlatDecls.h:
+ * generic/tclStubInit.c: Regen.
+
+2002-08-05 Don Porter <dgp@users.sourceforge.net>
+
+ * library/tcltest/tcltest.tcl: The setup and cleanup scripts are now
+ * library/tcltest/pkgIndex.tcl: skipped when a test is skipped, fixing
+ * tests/tcltest.test: [Bug 589859]. Test for bug added, and
+ corrected tcltest package bumped to version 2.2.
+
+ * generic/tcl.decls: Restored Tcl_Concat to return (char *). Like
+ * generic/tclDecls.h: Tcl_Merge, it transfers ownership of a dynamic
+ * generic/tclUtil.c: allocated string to the caller.
+
+2002-08-04 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/CmdCmplt.3: Applied Patch 585105 to fully CONST-ify
+ * doc/Concat.3: all remaining public interfaces of Tcl.
+ * doc/CrtCommand.3: Notably, the parser no longer writes on
+ * doc/CrtSlave.3: the string it is parsing, so it is no
+ * doc/CrtTrace.3: longer necessary for Tcl_Eval() to be
+ * doc/Eval.3: given a writable string. Also, the
+ * doc/ExprLong.3: refactoring of the Tcl_*Var* routines
+ * doc/LinkVar.3: by Miguel Sofer is included, so that the
+ * doc/ParseCmd.3: "part1" argument for them no longer needs
+ * doc/SetVar.3: to be writable either.
+ * doc/TraceVar.3:
+ * doc/UpVar.3: Compatibility support has been enhanced so
+ * generic/tcl.decls that a #define of USE_NON_CONST will remove
+ * generic/tcl.h all possible source incompatibilities with
+ * generic/tclBasic.c the 8.3 version of the header file(s).
+ * generic/tclCmdMZ.c The new #define of USE_COMPAT_CONST now does
+ * generic/tclCompCmds.c what USE_NON_CONST used to do -- disable
+ * generic/tclCompExpr.c only those new CONST's that introduce
+ * generic/tclCompile.c irreconcilable incompatibilities.
+ * generic/tclCompile.h
+ * generic/tclDecls.h Several bugs are also fixed by this patch.
+ * generic/tclEnv.c [Bugs 584051,580433] [Patches 585105,582429]
+ * generic/tclEvent.c
+ * generic/tclInt.decls
+ * generic/tclInt.h
+ * generic/tclIntDecls.h
+ * generic/tclInterp.c
+ * generic/tclLink.c
+ * generic/tclObj.c
+ * generic/tclParse.c
+ * generic/tclParseExpr.c
+ * generic/tclProc.c
+ * generic/tclTest.c
+ * generic/tclUtf.c
+ * generic/tclUtil.c
+ * generic/tclVar.c
+ * mac/tclMacTest.c
+ * tests/expr-old.test
+ * tests/parseExpr.test
+ * unix/tclUnixTest.c
+ * unix/tclXtTest.c
+ * win/tclWinTest.c
+
+2002-08-01 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c: bugfix (reading freed memory). Testsuite
+ passed on linux/i386, compile-13.1 hung on linux/alpha.
+
+2002-08-01 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c: added a reference count for the complete
+ execution stack, instead of Tcl_Preserve/Tcl_Release.
+
+2002-08-01 Mo DeJong <mdejong@users.sourceforge.net>
+
+ * generic/tclCkalloc.c (TclFinalizeMemorySubsystem):
+ Don't lock the ckalloc mutex before invoking the
+ Tcl_DumpActiveMemory function since it also
+ locks the same mutex. This code is only executed
+ when "memory onexit filename" has been executed
+ and Tcl is compiled with -DTCL_MEM_DEBUG.
+
+2002-08-01 Reinhard Max <max@suse.de>
+
+ * win/tclWinPort.h: The windows headers don't provide socklen_t,
+ so we have to do it.
+
+2002-07-31 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclInt.h (USE_THREAD_ALLOC): for unshared objects,
+ TclDecrRefCount now frees the internal rep before the string rep -
+ just like the non-macro Tcl_DecrRefCount/TclFreeObj [Bug 524802].
+ For the other allocators the fix was done on 2002-03-06.
+
+2002-07-31 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclInterp.c: signed/unsigned comparison warning fixed
+ (Vince Darley).
-2002-01-30 Don Porter <dgp@users.sourceforge.net>
+2002-07-31 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tk.decls: The POTENTIAL INCOMPATIBILITY in the changing
- interface of Tk_ParseArgv can now be removed by the -DUSE_NON_CONST
- compiler flag.
- * generic/tkDecls.h: make genstubs
+ * unix/tcl.m4 (SC_BUGGY_STRTOD): Enabled caching of test results.
-2002-01-29 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+ * unix/tcl.m4 (SC_BUGGY_STRTOD): Solaris 2.8 still has a buggy
+ strtod() implementation; make sure we detect it.
- * win/tkWinInit.c (TkpGetAppName): TIP 27 fixup. The code now does
- not write into the CONST path returned by "argv0" and
- Tcl_SplitPath anymore.
+ * tests/expr.test (expr-22.*): Marked as non-portable because it
+ seems that these tests have an annoying tendency to fail in
+ unexpected ways. [Bugs 584825, 584950, 585986]
-2002-01-28 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-30 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * unix/configure: Regen.
- * unix/configure.in: Don't set TCL_LIB_SPEC and
- TCL_STUB_LIB_SPEC variables since this breaks
- the AIX build. This was used in the past to
- support linking with Tcl from the build dir
- or the install dir, but it is no longer needed.
+ * tests/io.test:
+ * generic/tclIO.c (WriteChars): Added flag to break out of loop if
+ nothing of the input is consumed at all, to prevent infinite
+ looping of called with a non-UTF-8 string. Fixes Bug 584603
+ (partially). Added new test "io-60.1". Might need additional
+ changes to Tcl_Main so that unprintable results are printed as
+ binary data.
-2002-01-28 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-29 Mo DeJong <mdejong@users.sourceforge.net>
- * unix/Makefile.in: Remove commented out vars.
+ * unix/Makefile.in: Use CC_SEARCH_FLAGS instead of
+ LD_SEARCH_FLAGS when linking with ${CC}.
* unix/configure: Regen.
- * unix/configure.in: Don't subst vars that are already
- taken care of in SC_LOAD_TCLCONFIG.
- * unix/tcl.m4: Update from Tcl.
- * win/configure: Regen.
- * win/tcl.m4: Update from Tcl.
-
-2001-01-27 Daniel Steffen <das@users.sourceforge.net>
-
- * generic/tkFileFilter.c:
- * mac/tkMacInit.c:
- * mac/tkMacKeyboard.c:
- * mac/tkMacMenus.c: TIP 27 CONSTification induced changes
-
-2002-01-25 Don Porter <dgp@users.sourceforge.net>
-
- * All changes below are Patch 505159
-
- * doc/AddOption.3:
- * doc/CanvTkWin.3:
- * doc/GetPixels.3:
- * doc/Name.3:
- * doc/ParseArgv.3:
- * generic/tk.decls (Tk_AddOption,Tk_CanvasGetCoord,Tk_GetPixels,
- Tk_GetScreenMM,Tk_NameToWindow,Tk_ParseArgv):
- * generic/tkArgv.c (Tk_ParseArgv):
- * generic/tkCanvLine.c (ParseArrowShape):
- * generic/tkCanvUtil.c (Tk_CanvasGetCoord,Tk_CanvasTagsParseProc,
- Tk_CanvasTagsPrintProc,Tk_GetDash):
- * generic/tkCanvas.c (ConfigureCanvas):
- * generic/tkGet.c (Tk_GetPixels,Tk_GetScreenMM):
- * generic/tkImgPhoto.c (ImgPhotoCmd):
- * generic/tkMain.c (Tk_MainEx):
- * generic/tkOldConfig.c (FormatConfigInfo):
- * generic/tkOption.c (Tk_AddOption):
- * generic/tkText.c (TextWidgetCmd,TkTextGetTabs,DumpSegment):
- * generic/tkText.h (TkTextCreateTag):
- * generic/tkTextTag.c (TkTextCreateTag):
- * generic/tkWindow.c (Tk_NameToWindow,Initialize):
- * mac/tkMacCursor.c (FindCursorByName,TkGetCursorByName):
- * mac/tkMacWm.c (Tk_WmCmd):
- * unix/tkUnixCursor.c (TkGetCursorByName):
- * unix/tkUnixSend.c (ValidateName):
- * unix/tkUnixWm.c (Tk_WmCmd):
- * win/tkWinCursor.c (TkGetCursorByName):
- * win/tkWinWm.c (Tk_WmCmd): Updated callers of Tcl_SplitList and
- Tcl_Merge.
- * generic/tkDecls.h: make genstubs
- ***POTENTIAL INCOMPATIBILITY***
- Includes a source incompatibility in the argv argument of Tcl_ParseArgv.
-
- * generic/tkBind.c (DeleteVirtualEvent):
- * generic/tkCanvas.c (ScrollFractions, CanvasWidgetCmd,
- CanvasUpdateScrollbars):
- * generic/tkTestTag.c (TkTextTagCmd): Updated callers of
- Tcl_GetStringResult. Rewrote PrintScrollFractions to
- ScrollFractions to stop scribbling directly on interp->result.
-
- * generic/tkInt.decls (TkGetDefaultScreenName, TkpDisplayWarning,
- TkpOpenDisplay):
- * generic/tkCanvPs.c (Tk_PostscriptColor, Tk_PostscriptFont):
- * generic/tkEntry.c (EntrySetValue, EntryValidateChange, ExpandPercents,
- EntryValueChanged, Tk_EntryObjCmd, DestroyEntry, ConfigureEntry,
- EntryComputeGeometry, InsertChars, DeleteChars, EntryFetchSelection,
- EntryTextVarProc, Tk_SpinBoxObjCmd, SpinboxWidgetObjCmd):
- * generic/tkMain.c (Prompt):
- * generic/tkMenu.c (MenuVarProc):
- * generic/tkMenubutton.c (ConfigureMenuButton, MenuButtonTextVarProc):
- * generic/tkMessage.c (ConfigureMessage, MessageTextVarProc):
- * generic/tkWindow.c (GetScreen, Initialize):
- * mac/tkMacInit.c (TkpInit, TkpDisplayWarning):
- * mac/tkMacXStubs.c (TkGetDefaultScreenName, TkpOpenDisplay):
- * unix/tkUnix.c (TkGetDefaultScreenName):
- * unix/tkUnixEvent.c (TkpOpenDisplay):
- * unix/tkUnixInit.c (TkpGetAppName, TkpDisplayWarning):
- * unix/tkUnixSend.c (SendEventProc):
- * win/tkWinInit.c (TkpGetAppName, TkpDisplayWarning):
- * win/tkWinX.c (TkGetDefaultScreenName,TkpOpenDisplay): Updated
- callers of Tcl_GetVar, Tcl_GetVar2
- * generic/tkIntDecls.h: make genstubs
-
- * generic/tkCanvPs.c (TkCanvPostscriptCmd):
- * generic/tkImgBmap.c (TkGetBitmapData):
- * generic/tkOption.c (ReadOptionFile):
- * mac/tkMacInit.c (TkpInit, TkpGetAppName):
- * win/tkWinInit.c (TkpGetAppName): Updated callers of
- Tcl_SplitPath, Tcl_JoinPath, and Tcl_TranslateFileName.
-
-2002-01-18 Mo DeJong <mdejong@users.sourceforge.net>
-
- * tests/wm.test: Rewrite stackorder tests that
- deal with toplevels that have the overrideredirect
- flag set. [Tk bug 492259]
-
-2002-01-18 Don Porter <dgp@users.sourceforge.net>
-
- * win/tkWinDialog.c: Overlooked Tcl_GetIndexFromObj callers.
-
-2001-01-18 Daniel Steffen <das@users.sourceforge.net>
-
- * mac/tkMacDialog.c:
- * mac/tkMacSend.c: TIP 27 CONSTification broke the mac
- build in a few places.
-
-2002-01-16 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkListbox.c (ChangeListboxOffset): improved tracking
- when scrolling on x axis with entry/text. [Bug #225025] (voskuil)
-
-2002-01-16 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tk3d.c (Tk_GetReliefFromObj):
- * generic/tkBind.c (Tk_EventObjCmd,HandleEventGenerate):
- * generic/tkButton.c (ButtonWidgetObjCmd):
- * generic/tkCanvas.c (CanvasWidgetCmd,FindItems):
- * generic/tkClipboard.c (Tk_ClipboardObjCmd):
- * generic/tkCmds.c (Tk_BellObjCmd, Tk_TkObjCmd, Tk_TkwaitObjCmd,
- Tk_UpdateObjCmd, Tk_WinfoObjCmd, Tk_WmObjCmd):
- * generic/tkConfig.c (DoObjConfig):
- * generic/tkEntry.c (EntryWidgetObjCmd, SpinboxWidgetObjCmd):
- * generic/tkFocus.c (Tk_FocusObjCmd):
- * generic/tkFont.c (Tk_FocusObjCmd, ConfigAttributesObj):
- * generic/tkFrame.c (Tk_FrameObjCmd):
- * generic/tkGet.c (Tk_GetAnchorFromObj, Tk_GetJustifyFromObj):
- * generic/tkGrab.c (Tk_GrabObjCmd):
- * generic/tkGrid.c (Tk_GridObjCmd,GridRowColumnConfigureCommand,
- GridSlavesCommand, ConfigureSlaves):
- * generic/tkImage.c (Tk_ImageObjCmd):
- * generic/tkImgBmap.c (ImgBmapCmd):
- * generic/tkImgGIF.c (FileReadGIF):
- * generic/tkImgPhoto.c (ImgPhotoCmd):
- * generic/tkListbox.c (ListboxWidgetObjCmd, ListboxSelectionSubCmd,
- GetListboxIndex):
- * generic/tkMenu.c (MenuWidgetObjCmd, MenuAddOrInsert, MenuCmd,
- ConfigureMenu, CloneMenu):
- * generic/tkMenubutton.c (MenuButtonWidgetObjCmd):
- * generic/tkMessage.c (MessageWidgetObjCmd):
- * generic/tkOption.c (Tk_OptionObjCmd):
- * generic/tkPack.c (Tk_PackObjCmd, ConfigureSlaves):
- * generic/tkPlace.c (Tk_PlaceObjCmd):
- * generic/tkScale.c (ScaleWidgetObjCmd):
- * generic/tkSelect.c (Tk_SelectionObjCmd):
- * generic/tkSquare.c (SquareWidgetObjCmd):
- * generic/tkTest.c (TestobjconfigObjCmd, TrivialConfigObjCmd,
- TestfontObjCmd): Updates to handle change in type of tablePtr
- argument of Tcl_GetIndexFromObj(Struct) from (char **) to
- (CONST char **). [TIP 27] [Patch 504705]
-
- * generic/tkCanvText.c (GetSelText):
- * generic/tkEntry.c (Entry{FetchSelection,Setvalue},ExpandPercents):
- * generic/tkSelect.c (HandleTclCommand):
- * generic/tkText.c (TextSearchCmd):
- * generic/tkTextIndex.c (TkTextMakeByteIndex, TkTextIndexBackChars):
- * mac/tkMacFont.c (Tk_MeasureChars, BreakLine):
- * unix/tkUnixMenu.c (DrawMenuUnderline):
- * win/tkWinMenu.c (GetEntryText, DrawMenuUnderline): Updated
- callers of Tcl_Utf* and Tcl_Regexp* APIs to reflect TIP 27 API
- changes (see Tcl Patch 471509). [Patch 471513]
+ * unix/configure.in: Don't subst CC_SEARCH_FLAGS or
+ LD_SEARCH_FLAGS since this is now done in tcl.m4.
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): Document and
+ set CC_SEARCH_FLAGS whenever LD_SEARCH_FLAGS is set.
+ [Tcl patch 588290]
+
+2002-07-29 Reinhard Max <max@suse.de>
+
+ * unix/tcl.m4 (SC_SERIAL_PORT): Fixed detection for cases when
+ configure's stdin is not a tty.
+
+ * unix/tclUnixPort.h:
+ * generic/tclIOSock.c: Changed size_t to socklen_t in
+ socket-related function calls.
+
+ * unix/configure.in: Added test and fallback definition
+ for socklen_t.
+
+ * unix/configure: generated.
+
+2002-07-29 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclObj.c: fixed a comment
+
+ * generic/tcl.h:
+ * generic/tclBasic.c:
+ * generic/tclInterp.c: added the new flag TCL_EVAL_INVOKE to
+ the interface of the Tcl_Eval* functions, removing the
+ TCL_EVAL_NO_TRACEBACK added yesterday: alias invocations not only
+ require no tracebacks, but also look up the command name in the
+ global scope - see new test interp-9.4
+ * tests/interp.test: added 9.3 to test for safety of aliases to
+ hidden commands, 9.4 to test for correct command lookup scope.
+
+2002-07-29 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * generic/regc_locale.c (cclass): [[:xdigit:]] is only a defined
+ concept on western characters, so should not allow any unicode
+ digit, and hence number of ranges in [[:xdigit:]] is fixed.
+ * tests/reg.test: Added test to detect the bug.
+ * generic/regc_cvec.c (newcvec): Corrected initial size value in
+ character vector structure. [Bug 578363] Many thanks to
+ pvgoran@users.sf.net for tracking this down.
+
+2002-07-28 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tcl.h:
+ * generic/tclBasic.c: added the new flag TCL_EVAL_NO_TRACEBACK to
+ the interface of the Tcl_Eval* functions. Modified the error
+ message for too many nested evaluations.
+ * generic/tclInterp.h: changed the Alias struct to be of variable
+ length and store the prefix arguments directly (instead of a
+ pointer to a Tcl_Obj list). Made AliasObjCmd call Tcl_EvalObjv
+ instead of TclObjInvoke - thus making aliases trigger execution
+ traces [Bug 582522].
+ * tests/interp.test:
+ * tests/stack.test: adapted to the new error message.
+ * tests/trace.test: added tests for aliases firing the exec
+ traces.
-2002-01-16 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-27 Mo DeJong <mdejong@users.sourceforge.net>
+ * unix/Makefile.in: Revert fix for Tcl bug 529801
+ since it was incorrect and broke the build on
+ other systems. Fix Tcl bug 587299.
+ Add MAJOR_VERSION, MINOR_VERSION, PATCH_LEVEL,
+ SHLIB_LD_FLAGS, SHLIB_LD_LIBS, CC_SEARCH_FLAGS,
+ LD_SEARCH_FLAGS, and LIB_FILE variables to support
+ more generic library build/install rules.
* unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
- * win/configure: Regen.
- * win/tcl.m4: Update from Tcl.
-
-2002-01-04 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkMain.c (Tk_MainEx): Updated callers of CONSTified
- Tcl interfaces Tcl_EvalFile and TclGetStartupScriptFileName.
-
- * generic/tkConsole.c (ConsoleOutputProc, TkConsolePrint):
- * generic/tkInt.h (TkConsolePrint):
- * mac/tkMacAppInit.c (TkConsolePrint): Updated Tk's console to
- CONSTified channel driver interface. [Tcl Patch 503565, Tk Patch
- 503983]
+ * unix/configure.in: Move AC_PROG_RANLIB into
+ tcl.m4. Move shared build test and setting
+ of MAKE_LIB and MAKE_STUB_LIB into tcl.m4.
+ Move subst of a number of variables into
+ tcl.m4 where they are defined.
+ * unix/tcl.m4 (SC_ENABLE_SYMBOLS, SC_CONFIG_CFLAGS):
+ Subst vars where they are defined. Add MAKE_LIB,
+ MAKE_STUB_LIB, INSTALL_LIB, and INSTALL_STUB_LIB
+ rules to deal with the ugly details of running
+ ranlib on static libs at build and install time.
+ Replace TCL_SHLIB_LD_EXTRAS with SHLIB_LD_FLAGS
+ and use it when building a shared library.
+ * unix/tclConfig.sh.in: Add TCL_CC_SEARCH_FLAGS.
-2002-01-11 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-26 Miguel Sofer <msofer@users.sourceforge.net>
- Use ${libdir} instead of ${exec_prefix}/lib. [Tcl bug 489370]
+ * generic/tclExecute.c: fixed Tcl_Obj leak in code corresponding
+ to the macro NEXT_INST_V(x, 0, 1) [Bug 587495].
- * unix/configure: Regen.
- * unix/configure.in: Define and use libdir.
- * win/configure: Regen.
- * win/configure.in: Define libdir.
-
-2002-01-11 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in: Burn Tcl and Tk build
- directories into tktest executable to avoid crashes
- caused by ld loading a previously installed version
- of the tcl or tk shared libraries. Remove setting
- of LD_LIBRARY_PATH, LIBPATH, and SHLIB_PATH
- before running tktest since it should no
- longer be required.
-
-2002-01-11 Mo DeJong <mdejong@users.sourceforge.net>
-
- Enable use of Tcl stubs when building Tk as
- a shared library. This should fix the build
- under AIX. [Bugs 220858, 220955, 220921]
-
- * unix/Makefile.in: Add TCL_STUB_LIB_SPEC and
- TCL_STUB_LIB_FLAG variables.
- * unix/configure: Regen.
- * unix/configure.in: Pass TCL_STUB_LIB_SPEC into
- Makefile and use it when linking the tk shared library.
- Define USE_TCL_STUBS when building shared. Subst
- TCL_STUB_LIB_SPEC and TCL_STUB_LIB_FLAG.
+2002-07-26 Miguel Sofer <msofer@users.sourceforge.net>
-2002-01-08 D. Richard Hipp <drh@hwaci.com>
+ * generic/tclVar.c (TclObjLookupVar): leak fix and improved
+ comments.
- * win/tkWinMenu.c: Fix the following bug: If you select an entry
- on a cascade menu then the next time the parent menu is posted, the
- cascade entry was active. Also, if you traverse to a disabled entry
- using keystrokes and press ENTER on the disabled entry, then that
- entry appears active the next time the menu is posted. The same
- patch fixes both problems.
+2002-07-26 Jeff Hobbs <jeffh@ActiveState.com>
-2002-01-04 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclVar.c (TclLookupVar): removed early returns that
+ prevented the parens from being restored. also removed goto label
+ as it was not necessary.
- * generic/tkBind.c (TkBindFree):
- * generic/tkGrid.c (ResolveConstraints,CheckSlotData,DestroyGrid):
- * generic/tkSelect.c (Tk_DeleteSelHandler,TkSelDeadWindow): Replaced
- Tcl_Free calls with ckfree so that memory debugging is fully supported.
+2002-07-24 Miguel Sofer <msofer@users.sourceforge.net>
-2001-12-28 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclExecute.c:
+ * tests/expr-old.test: fix for erroneous error messages in [expr],
+ [Bug 587140] reported by Martin Lemburg.
- * test/winButton.test:
- * win/tkWinButton.c: added updated patch #463234 which returns the
- default sizing behavior (not so native), but enables native L&F
- with negative sizing (-11 for example).
+2002-07-25 Joe English <jenglish@users.sourceforge.net>
+ * generic/tclProc.c: fix for Tk Bug #219218 "error handling
+ with bgerror in Tk"
- * library/text.tcl (tk::TextButton1): made text receive focus even
- in disabled state for Windows to show selection and allow
- mouse-wheel scrolling.
+2002-07-24 Miguel Sofer <msofer@users.sourceforge.net>
- * win/tkWinInit.c (TkpDisplayWarning): added Tcl_DStringFree's
+ * generic/tclExecute.c: restoring full TCL_COMPILE_DEBUG
+ functionality.
- * win/tkWinInt.h:
- * win/tkWinX.c: added TkWinProcs that represent a function table
- to switch between unicode and ansi procs on Windows. This is
- analogous to the TclWinProcs. Using Tcl_WinUtfToTChar, we can
- easily take advantage of using unicode functions where available
- without having to switch on the platform id each time.
+2002-07-24 Don Porter <dgp@users.sourceforge.net>
- * win/tkWinWm.c (InitWindowClass): corrected init routines to
- allow unicode in window titles on Windows (for Win2K/XP).
- (TkWmStackorderToplevel): Corrected casts to enable debug compile
+ * tests/unixInit.test: relaxed unixInit-3.1 to accept iso8859-15
+ as a valid C encoding. [Bug 575336]
- * win/configure: regen'ed
- * win/tcl.m4: added shell32.lib to link libs, as these are
- necessary for new directory chooser (when enabled).
+2002-07-24 Miguel Sofer <msofer@users.sourceforge.net>
- * win/tkWinDialog.c (Tk_MessageBoxObjCmd): use MessageBoxW for
- proper display of unicode errors.
- Added patch which uses new OLE based directory chooser. This
- still has some issues, so is disabled by default. [Patch #468139]
- (ColorDlgHookProc) Corrected ability to use unicode chars in
- tk_chooseColor -title.
+ * generic/tclExecute.c: restoring the tcl_traceCompile
+ functionality while I repair tcl_traceExec. The core now compiles
+ and runs also under TCL_COMPILE_DEBUG, but execution in the
+ bytecode engine can still not be traced.
-2001-12-27 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinInit.c (TkpDisplayWarning): Use MessageBoxW in case the
- error displayed has unicode chars. [Bug #485986]
-
-2001-12-27 Daniel Steffen <das@users.sourceforge.net>
-
- * mac/tkMacInit.c:
- * mac/tkMacResource.r: synced up tkInit features to unix/win:
- use existing tkInit proc if defined. Added spinbox.tcl resource.
- Used TclGetEnv() instead of Tcl_GetVar2(interp, env)
- * mac/tkMacApplication.r:
- * mac/tkMacLibrary.r: minor version resources cleanup
-
-2001-12-27 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkButton.c (ButtonTextVarProc): guard against being
- called while the *button/label is being deleted. [Bug #490051]
-
- * library/entry.tcl:
- * library/spinbox.tcl:
- * library/text.tcl: added extra checks against bug #220269 and
- made spinbox reuse more of the entry procedure code.
-
-2001-12-20 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-24 Daniel Steffen <das@users.sourceforge.net>
+ * unix/Makefile.in:
+ * unix/configure.in: corrected fix for [Bug 529801]: ranlib
+ only needed for static builds on Mac OS X.
* unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
+ * unix/tclLoadDyld.c: fixed small bugs introduced by Vince,
+ implemented library unloading correctly (needs OS X 10.2).
-2001-12-19 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-23 Joe English <jenglish@users.sourceforge.net>
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
+ * doc/OpenFileChnl.3: (Updates from Larry Virden)
+ * doc/open.n:
+ * doc/tclsh.1: Fix section numbers in Unix man page references.
+ * doc/lset.n: In EXAMPLES section, include command to set the
+ initial value used in subsequent examples.
+ * doc/http.n: Package version updated to 2.4.
-2001-12-18 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-23 Mo DeJong <mdejong@users.sourceforge.net>
* unix/configure: Regen.
- * unix/configure.in: Move EXP file changes over from
- Tcl configure script to fix AIX build with gcc. [Bug 220955]
-
-2001-12-18 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in:
- * win/Makefile.in: Use $(MAKE) instead of make
- in the tcltest rule.
-
-2001-12-18 Don Porter <dgp@users.sourceforge.net>
-
- * tests/event.test (event-click-drag-1.2): Corrected test that
- failed on Solaris/CDE due to text scrolling. [Bug 413735]
-
-2001-12-18 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/spinbox.tcl (ButtonDown): added catch to ignore
- possible error in after cancel when Priv(afterId) isn't defined.
-
- * doc/spinbox.n: corrected spin(up|down) -> button(up|down)
-
-2001-12-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/getOpenFile.n: Documented change.
- * library/tkfbox.tcl (SetFilter): Added code to guess the correct
- default extension from whatever value was selected in the
- filetypes option menu. Adapted from code by Chris Nelson
- submitted in Patch #492220.
-
-2001-12-12 Jeff Hobbs <jeffh@ActiveState.com>
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): Enable 64 bit compilation
+ when using the native compiler on a 64 bit version of IRIX.
+ [Tcl bug 219220]
- * unix/tkUnixWm.c (TkWmStackorderToplevelWrapperMap): added static
-
-2001-12-05 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkText.c:
- * generic/tkText.h: changed TkTextEditType enums to be prefaced
- with TK_EDIT_ to prevent name collision.
-
-2001-12-05 Daniel Steffen <das@users.sourceforge.net>
-
- * mac/tkMacWm.c: mac implementation of wm stackorder
- (patch 481148, TIP 74)
-
-2001-12-03 Mo DeJong <mdejong@users.sourceforge.net>
-
- Add TK patch 481148 to implement TIP 74, the
- wm stackorder command.
-
- * doc/winfo.n: Update documentation for the winfo
- children command to indicate that top-level windows
- are not returned in stacking order.
- * doc/wm.n: Add documentation for wm stackorder.
- * generic/tkInt.decls (TkWmStackorderToplevel):
- Add decl for new function.
- * generic/tkIntDecls.h: Regen.
- * generic/tkStubInit.c: Regen.
- * tests/unixWm.test: Add stackorder command to test
- for wm command usage message.
- * tests/wm.test: Add new set of tests for generic
- window manager methods.
- * unix/tkUnixWm.c (Tk_WmCmd,
- TkWmStackorderToplevelWrapperMap,
- TkWmStackorderToplevel): Add unix implementation of
- new wm stackorder command.
- * win/tkWinWm.c (Tk_WmCmd,
- TkWmStackorderToplevelEnumProc,
- TkWmStackorderToplevelWrapperMap,
- TkWmStackorderToplevel): Add windows implementation
- of new wm stackorder command.
-
-2001-12-03 David Gravereaux <davygrvy@pobox.com>
-
- * win/makefile.vc: install target changes by request from
- Ryan Casey <scfiead@hotmail.com>.
-
-2001-11-30 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/widget: Further overhauling; shrank fonts, made
- better use of fonts, added an icon, fixed the About box. Prompted
- by Bug #487442 from Vincent Wartelle.
-
-2001-11-29 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/palette.tcl (tk_setPalette): Added heuristic to guess
- from the background whether to use black or white for the
- foreground when not told specifically. Suggested by Chris Nelson,
- this makes the command fit the documentation better!
-
-2001-11-27 David Gravereaux <davygrvy@pobox.com>
-
- * win/makefile.vc: Fixed CAT32 target. cat.c is located in the Tcl
- source, not the Tk source.
-
-2001-11-27 D. Richard Hipp <drh@hwaci.com>
-
- * library/menu.tcl: Do not allow keyboard traversal of torn-off
- menus to visit the (invisible) tearoff bar.
-
-2001-11-26 D. Richard Hipp <drh@hwaci.com>
+2002-07-23 Mo DeJong <mdejong@users.sourceforge.net>
- * win/tkWinMenu.c: disabled menu items show the activebackground
- color in their background. This change makes menu behavior
- consistent with what native windows does.
+ * unix/Makefile.in: Combine ranlib tests and
+ avoid printing unless ranlib is actually run.
-2001-11-24 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-23 Mo DeJong <mdejong@users.sourceforge.net>
- * unix/Makefile.in: Add comments to better describe
- TCL_EXE and when it should be available. Add
- rule that prints message about running `make genstubs`
- when tkStubInit.c is out of date.
- * win/Makefile.in: Add TCL_TOOL_DIR and TCL_EXE
- variables to better match the Tcl Makefile. Add
- genstubs rule so tkSTubInit.c can be regenerated.
+ * unix/tcl.m4 (SC_PATH_X): Set XINCLUDES to "" instead
+ of "# no special path needed" or "# no include files found"
+ when x headers cannot be located.
-2001-11-24 Mo DeJong <mdejong@users.sourceforge.net>
+2002-07-22 Vince Darley <vincentdarley@users.sourceforge.net>
- * win/configure: Regen.
- * win/configure.in: Don't AC_SUBST CFLAGS_DEBUG, CFLAGS_OPTIMIZE,
- or CFLAGS_WARNING since it is now done in SC_CONFIG_CFLAGS.
- * win/tcl.m4 (SC_CONFIG_CFLAGS): AC_SUBST DL_LIBS, CFLAGS_DEBUG,
- CFLAGS_OPTIMIZE, and CFLAGS_WARNING.
-
-2001-11-23 Daniel Steffen <das@users.sourceforge.net>
-
- Up-port to 8.4 of mac code changes for 8.3.3 & various new
- changes for 8.4, some already backported to 8.3.4 (patch #435660)
-
- * library/tk.tcl: added <Key-F1> binding for <<Undo>> on the mac (TIP26)
-
- * library/button.tcl: fixed undefined $Priv(repeated) error for button
- without -repeatdelay support
-
- * generic/tkConsole.c:
- * library/console.tcl:
- * mac/tkMacInit.c:
- * mac/tkMacResource.r: corrected how mac deals with tcl library
- files present both in resources and in $tk_library directory.
-
- * generic/tkConsole.c: crashing bug fix when printing to console
- at program exit after the console has already been closed.
- Now setting gStdoutInterp=NULL in ConsoleClose().
-
- * mac/tkMacInit.c: correct use of Tcl_JoinPath in tk_library
- initialization
-
- * mac/tkMacMenu.c: special MDEF_PROC_OFFSET only needed for
- exactly one specific version of the MWERKS 68k compiler .
-
- * mac/tkMacShLib.exp: removed file
-
- * unix/Makefile.in: removed reference to .exp files
-
- * mac/MWTkBuildLibHeader.h:
- * mac/MW_TkBuildLibHeader.pch:
- * mac/MW_TkHeaderCommon.h:
- * mac/MW_TkOldImgStaticHeader.h:
- * mac/MW_TkStaticHeader.h:
- * mac/MW_TkStaticHeader.pch: new precompiled header files
-
- * mac/MW_TkHeader.pch:
- * mac/MW_TkOldImgHeader.h:
- * mac/MW_TkTestHeader.pch: revised precompiled header handling: now
- include a common header file 'MW_TkHeaderCommon.h' from all .pch files,
- the .pch files themselves now only setup #defines (e.g. BUILD_tk,
- STATIC_BUILD, TCL_DEBUG, TCL_THREADS) like in makefiles on other
- platforms.
-
- * mac/tkMac.h:
- * mac/tkMacPort.h:
- * mac/tkMacInt.h: use of BUILD_tk and TCL_STORAGE_CLASS like on other
- platforms, standardize #include'd files to what's done on other
- platforms, removed use of #pragma export, changed extern to EXTERN
- where appropriate to enable DLL export via the TCL_STORAGE_CLASS
- mechanism.
-
- * mac/tkMacAppearanceStubs.c: removed use of #pragma export
-
- * mac/widget.r: new resource file for 'Widget Demos'
-
- * mac/tkMacProjects.sea.hqx: updated mac build project files:
- build support for CodeWarrior Pro6, UnivIntf 3.4 & shared runtime
- libraries (see Tcl ChangeLog for details).
- changed weak linking so that CFM68k binaries now work on all OS
- versions from the free 7.5.5 onwards, with or without AppearanceMgr
- and/or NavigationMgr installed.
- added target to automatically build 'Widget Demos'
- included XML versions of the projects for CW Pro5 or Pro7 users.
- use compat/strtod.c instead of MSL's strtod()
-
- * generic/tkInt.decls:
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkStubInit.c:
-
- * mac/tkMacInt.h: MAC_TCL tk stub support was badly broken due to
- multiply defined (mac specific) names in tk.decls and tkInt.decls,
- removed the duplicates from the internal unsupported interfaces
- "interface tkInt" and "interface tkIntPlat"; moved declaration of
- TkpIsWindowFloating from tkMacInt.h to tkInt.decls: interface tkIntPlat.
- - these changes to the stub tables might require you to recompile your
- Tk extensions if they turn out to reference one of the removed routines
- in the wrong table (should be unlikely).
-
- * generic/tkMain.c: MAC_TCL: workaround for broken/non-standard isatty
- on MW Pro6, #include <unistd.h> instead of defining isatty
+ * generic/tclIOUtil.c: made tclNativeFilesystem static
+ (since 07-19 changes removed its usage elsewhere), and
+ added comments about its usage.
+ * generic/tclLoad.c:
+ * generic/tcl.h:
+ * generic/tcl.decls:
+ * doc/FileSystem.3: converted last load-related ClientData
+ parameter to Tcl_LoadHandle opaque structure, removing a
+ couple of casts in the process.
- * generic/tkPointer.c: MAC_TCL: #include tkMacInt.h
-
- * generic/tkStubLib.c: MAC_TCL: removed obsolete special casing of mac
- headers, standardize #include'd files to what's done on other platforms
-
- * mac/tclets.r:
- * mac/tkMacWindowMgr.c:
- * mac/tkMacScrlbr.c:
- * mac/tkMacMenu.c:
- * mac/tkMacMenus.c:
- * mac/tkMacFont.c:
- * mac/tkMacDialog.c:
- * mac/tkMacButton.c: renamed obsolete apple API names to modern
- equivalents; UH3.4 support: added #include <ControlDefinitions.h>;
- fixed munged non-ASCII chars in sources due to bungled latin1<->mac
- roman encoding in CVS repository.
-
- * mac/tkMacDialog.c: added support for -filetypes option (fix for bug
- tcl #221636); added update event handling for background windows while
- in a NavigationMgr dialog; fixed nasty bug when calling CustomGetFile
- (missing addr operator) (fix for bug tk #220911 & tcl #219367); renamed
- routines conflicting with standard MoreFiles headers (see Tcl ChangeLog
- for details)
-
- * mac/tkMacApplication.r:
- * mac/tkMacLibrary.r:
- * mac/tkMacResource.r: fixed obsolete copyrights/dates in version
- strings, updated version strings to standard usage, added support for
- '(Support Libraries)' subfolder for shared runtime libraries in
- unmerged binaries, commented out demo setting of "Tcl Environment
- Variables"; reorganized resources among these files to avoid
- multiple copies in applications and shared libraries, the script
- libraries/Xcursors etc are now no longer duplicated in Wish but are
- only included in the resources of Tk.shlb.
-
- * mac/tkMacMenu.c:
- * mac/tkMacMDEF.r: changes to support MW Pro 6 68k (vers 0x2400 only)
- compiler producing different offset to start of MDEF; fix to static 68k
- presence testing when calling the custom MDEF
-
- * mac/tkMacWm.c.c:
- * mac/tkMacWindowMgr.c: added/fixed AppearanceMgr checks; override
- AppearanceMgr version detection on static 68k to ensure static 68k Wish
- runs on PPCs with recent AppearanceMgr
-
- * mac/tkMacButton.c: fixed misplaced/missing variable initialization.
-
-2001-11-20 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkText.c (TextGetText): reworked to use DString for
- improved speed. (callewaert, darley)
- (DestroyText): plugged mem leak when not clearing stack (callewaert)
- (TextGetText): more efficient string size calculation (darley)
-
-2001-11-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/entry3.tcl: New demo showing off validation and
- password entry.
-
- * library/demos/widget: Some reorganization to make the code
- simpler, plus a new entry demo.
-
-2001-11-17 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinButton.c (TkpComputeButtonGeometry): corrected the
- default size of Windows buttons to conform to the Windows style.
- This changes the default size of buttons on Windows.
- [Patch #463234] (nelson)
- **** POTENTIAL VISUAL INCOMPATABILITY ****
+ * generic/tclInt.h: removed tclNativeFilesystem declaration
+ since it is now static again.
-2001-11-16 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/menu.tcl: corrected menu traversal code on Unix to
- better handle entering cascades. [Patch #481219] (oleinick)
+2002-07-22 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-2001-11-16 David Gravereaux <davygrvy@pobox.com>
+ * tests/expr.test (expr-22.*): Added tests to help detect the
+ corrected handling.
+ * generic/tclExecute.c (IllegalExprOperandType): Improved error
+ message generated when attempting to manipulate Inf and NaN values.
+ * generic/tclParseExpr.c (GetLexeme): Allowed parser to recognise
+ 'Inf' as a floating-point number. [Bug 218000]
- * win/makefile.vc: Install target repaired.
+2002-07-21 Don Porter <dgp@users.sourceforge.net>
-2001-11-15 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * tclIOUtil.c: Silence compiler warning. [Bug 584408].
- * library/demos/image2.tcl: Many improvements to this
- image-viewing demo; now uses labelframes and tk_chooseDirectory
+2002-07-19 Vince Darley <vincentdarley@users.sourceforge.net>
- * library/palette.tcl (::tk::RecolorTree): Made this work better
- with CDE, which does some extremely annoying things with the
- option database that interact badly with Tk's way of handling
- options.
+ * generic/tclIOUtil.c: fix to GetFilesystemRecord
+ * win/tclWinFile.c:
+ * unix/tclUnixFile.c: fix to subtle problem with links shown
+ up by latest tclkit builds.
- * doc/text.n: Overhauled the documentation of undo to make it
- easier to understand.
- * library/tk.tcl (::tk::EventMotifBindings): Added Emacs-like undo
- binding, but not behaviour (we separate undo and redo.)
- * library/demos/text.tcl: Show off our undo capability!
-
-2001-11-12 David Gravereaux <davygrvy@pobox.com>
-
- * win/mkd.bat:
- * win/rmd.bat: Removed -kb CVS attribute and added changes
- from Llyod Lim for better stability. [Patch #456761]
-
- * win/rules.vc(new):
- * win/buildall.vc.bat(new):
- * win/makefile.vc: large rewrite following Tcl's makefile.vc as
- a guide and Patch #456761. Appears BugFree(tm).
-
-2001-11-12 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/text.n:
- * generic/tkText.c:
- * generic/tkText.h:
- * generic/tkTextTag.c:
- * library/text.tcl:
- * library/tk.tcl:
- * mac/tkMacDefault.h:
- * tests/text.test:
- * unix/tkUnixDefault.h:
- * win/tkWinDefault.h: added TIP #26 implementation of simple
- built-in undo/redo of text editing in the text widget.
- [Patch #458879] (callewaert)
-
-2001-11-12 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/menu.tcl: Show off -compound support in menus.
-
- * library/demos/radio.tcl: Added some code to both show off the
- extra capabilities of the buttons and also show what can be done
- with compound images on the sly.
-
-2001-11-10 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in:
- * win/Makefile.in: Add "make gdb" target. This target
- can run wish inside either gdb or insight.
-
-2001-11-09 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/clrpick.tcl: changed a few parameters so that the full
- 0..255 range could be accessed via the mouse. [Bug #478498]
-
- * unix/configure:
- * unix/tcl.m4: added -lc to AIX libs, fixed path to ldAix
-
- * win/configure:
- * win/tcl.m4:
- * win/makefile.vc: add comctl32.lib to build libs.
- * win/tkWinX.c (TkWinXInit): added InitCommonControlsEx call.
- * win/rc/tk.rc:
- * win/rc/wish.rc:
- * win/rc/wish.exe.manifest: added resources that specify using v6
- of the MS Common Controls library when available (WinXP+). This
- enables use of the themeable widgets (like scrollbars) to be used
- in Tk. [Patch #478933]
-
-2001-11-09 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure:
- * unix/tcl.m4: Update from Tcl.
-
-2001-11-08 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/Makefile.in:
- Avoid adding libc to the LIBS and WISH_LIBS
- variables since it is not needed when linking with CC.
- If required when linking with LD it should be done
- on a case by case basis in tcl.m4.
-
-2001-11-05 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/dialog2.tcl: Typo-fix.
- * library/demos/browse, library/demos/ixset, library/demos/rolodex:
- Installation does version number fixup, so we shouldn't. Thanks
- to wohnivec@iol.cz for pointing these (thankfully minor) problems
- out.
-
-2001-10-30 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/widget: Integrated labelframe item into the labels
- section and added a spinbox demo to the (retitled) entry section.
-
- * library/demos/labelframe.tcl: Adjusted so as to show off the
- labelframe widget to better effect and have a better description.
-
- * library/demos/spin.tcl: New demo to show off spinbox capabilities.
-
- * library/demos/rolodex: Changes up-ported from core-8-3-1-branch
- to make the script use more 8.*-isms, but not menus due to the way
- the context help system works.
-
- * library/demos/ixset: Changed to use the labelframe widget and
- the grid geometry manager.
-
-2001-10-29 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/browse: Changes up-ported from core-8-3-1-branch
- to make the script much more robust, particularly when neither the
- current version of wish or the script are on the path.
-
- * library/demos/hello: Added emacs trailing tag-line.
-
- * library/demos/tcolor: Changes up-ported from core-8-3-1-branch
- to make the script compliant with current good practise, as well
- as extensive use of the new labelframe widget.
-
- * library/demos/timer: Changes up-ported from core-8-3-1-branch to
- make the script look and work better.
-
- * library/demos/rmt: Changes up-ported from core-8-3-1-branch to
- use more 8.* features and make the demo script more generally
- useful to people.
-
-2001-10-23 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkCursor.c (Tk_GetCursorFromData): Fixed uninit nextPtr
- field. [adapted from Patch 473875]
- (GetCursor): Removed double-assignment to nextPtr field.
-
-2001-10-19 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/console.tcl: removed transpose ability until the console
- can get a proper rewrite of tag handling.
-
-2001-10-18 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/defs.tcl: removed threaded build warning under X.
-
- * library/console.tcl (ConsoleOutput): fixed undefined widget
- argument.
-
-2001-10-16 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/xmfbox.tcl: fixed filtering in motif file dialog.
- [Patch #469670] (nelson)
-
- * generic/tkWindow.c (OpenIM): Added simple XIM patch to enable
- basic XIM input on Unix. [Patch #412727] (fabian)
-
-2001-10-15 Jeff Hobbs <jeffh@ActiveState.com>
+2002-07-19 Mo DeJong <mdejong@users.sourceforge.net>
* unix/configure:
* unix/configure.in:
* win/configure:
- * win/configure.in:
- * win/tkConfig.sh.in: reworked to be a little cleaner in
- comparison to each other, and to AC_SUBST even empty vars for
- win/tkConfig.sh
-
-2001-10-12 Todd M. Helfter <tmh@purdue.edu>
-
- * ChangeLog:
- * doc/menu.n:
- * generic/tkMenu.c:
- * generic/tkMenu.h:
- * generic/tkMenubutton.c:
- * generic/tkMenubutton.h:
- * mac/tkMacDefault.h:
- * mac/tkMacMenu.c:
- * mac/tkMacMenubutton.c:
- * tests/menu.test:
- * unix/tkUnixDefault.h:
- * unix/tkUnixMenu.c:
- * win/makefile.vc:
- * win/tkWinDefault.h:
- * win/tkWinMenu.c:
- * win/tkWinWm.c: Implementation of TIP #63, the addition of
- a -compound option to menu entries allowing text and an image to
- be displayed at the same time.
-
-2001-10-09 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/console.tcl: added more smarts extracted from tkcon to
- the default console.
-
-2001-10-01 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinTest.c: better error reporting from testclipboard
-
- * win/tkWinDialog.c: minor cast changes to support Win64
-
- * win/tkWinWindow.c: made use of standard Tk_GetHWND instead of
- older, private TkWinGetHWND.
-
- * win/configure: regen'ed
- * win/tcl.m4:
- * win/makefile.vc: updated for Win64 SDK RC1 compilation support
-
-2001-09-30 Peter Spjuth <peter.spjuth@space.se>
-
- * doc/grid.n:
- * generic/tkGrid.c:
- * tests/grid.test: Added -uniform option to grid's row/column-
- configure. [TIP 37] [Patch 459343]
-
-2001-09-26 Peter Spjuth <peter.spjuth@space.se>
-
- * win/tkWinFont.c (Tk_DrawChars): Added support for clipping text.
-
- * doc/frame.n:
- * doc/labelframe.n:
- * doc/toplevel.n:
- * generic/tkFrame.c:
- * generic/tkInt.h:
- * generic/tkWindow.c:
- * library/demos/radio.tcl:
- * library/demos/labelframe.tcl:
- * library/demos/widget:
- * mac/tkMacDefault.h:
- * tests/frame.test:
- * unix/tkUnixDefault.h:
- * win/tkWinDefault.h: Added labelframe widget. Added -padx/y
- options to frame and toplevel.
-
- * tests/grid.test:
- * tests/pack.test:
- * tests/place.test: Used labelframe to test geometry manager changes.
- [TIP 18] [Patch 429164]
-
-2001-09-26 Peter Spjuth <peter.spjuth@space.se>
-
- * doc/GeomReq.3:
- * doc/WindowId.3:
- * generic/tk.decls:
- * generic/tk.h:
- * generic/tkDecls.h:
- * generic/tkGeometry.c:
- * generic/tkGrid.c (ArrangeGrid):
- * generic/tkInt.h:
- * generic/tkPack.c (ArrangePacking):
- * generic/tkPlace.c (RecomputePlacement):
- * generic/tkStubInit.c:
- * generic/tkUtil.c (TkComputeAnchor):
- * generic/tkWindow.c (TkAllocWindow):
- * unix/mkLinks: Geometry manager changes to support TIP#18.
- Allows a widget to set different internal border widths on
- different sides, and to set a minimum requested size.
- POTENTIAL INCOMPATIBILITY. [Patch 429164]
-
-2001-09-25 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkBind.c:
- * generic/tkInt.decls (TkpScanWindowId):
- * unix/tkUnixPort.h (Tkp{Print,Scan}WindowId):
- * unix/tkUnixXId.c (TkpScanWindowId):
- * win/tkWinWindow.c (TkpScanWindowId): Corrected definition of
- TkpScanWindowId to handle situation where types Window and int
- do not have the same number of bits. CONST-ified too.
-
- * generic/tkIntPlatDecls.h:
- * generic/tkStubInit.c: make genstubs
-
-2001-09-24 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkMain.c (StdinProc): Update to handle change in
- return type of Tcl_DStringAppend() from (char *) to (CONST char *).
- [TIP 27]
-
-2001-09-23 Peter Spjuth <peter.spjuth@space.se>
- * generic/tkPack.c (ConfigureSlaves):
- * tests/pack.test:
- * tests/grid.test: Pack accepted asymmetric values for -ipadx/y.
- Only -padx/y supports asymmetry. [Bug #462348]
-
-2001-09-21 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinWindow.c (TkpPrintWindowId, TkpScanWindowId): fixed to
- work on Win64 with 64bit XIDs.
-
- * generic/tkWindow.c (Tk_CreateAnonymousWindow):
- * generic/tkEntry.c (GetSpinboxElement): fixed unreachable returns.
-
- * win/tkWinX.c (TkGetServerInfo): added recognition of Win64.
-
- * xlib/X11/X.h: made XID __int64 type for Win64.
-
- * unix/tkUnixPort.h:
- * mac/tkMacPort.h: add (int*) cast to TkpScanWindowId.
- These may need to be changed to Window* (ulong).
-
- * generic/tkCmds.c (Tk_WinfoObjCmd):
- * generic/tkBind.c (NameToWindow):
- correct Window id's to be of type Window
-
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkInt.decls (TkpScanWindowId): changed decl to use
- Window* instead of int*.
-
- * xlib/xcolors.c:
- * generic/tkPack.c,tkWindow.c:
- * win/tkWinFont.c,tkWinMenu.c:
- * unix/tkUnixScale.c: minor cast fixes to prevent 64bit warnings.
-
- * tests/scrollbar.test (scrollbar-6.27): marked knownBug because
- it is skewed by bad dimensions returned by Windows.
-
- * tests/textDisp.test (textDisp-4.12): corrected test to work
- properly on Windows.
-
- * tests/id.test,macFont.test,macMenu.test,macscrollbar.test:
- * tests/send.test,winClipboard.test,winDialog.test,winFont.test:
- improved use of test constraints
-
- * win/tkWinWm.c (WinSetIcon): fixed SetClassLong for 64bit support.
-
-2001-09-20 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/configure: regen'ed
- * unix/tcl.m4: added --enable-64bit support for HP-11 with the
- 64-bit kernel.
-
-2001-09-17 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkGrid.c (ConfigureSlaves):
- * generic/tkPack.c (PackAfter): Corrected type definition of
- argument passed to Tcl_GetStringFromObj() from size_t to int.
- Incorrect type broke [pack] and [grid] on systems where
- sizeof(size_t) != sizeof(int). [Bugs 462375, 462342, 462338]
-
-2001-09-17 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/choosedir.tcl (DblClick):
- * library/tkfbox.tcl (OkCmd, ListInvoke): Rewrote so as to avoid
- the highly confusing string "text" and to be consistent about what
- is and what is not a list. [Bug 459895, reported by fandom]
-
-2001-09-14 Andreas Kupries <andreas_kupries@users.sourceforge.net>
-
- * generic/tkImgGIF.c:
- * generic/tkImgPPM.c:
- * generic/tkImgPhoto.c:
- * generic/tkMenu.c: Applied patch [461578], provided by Vincent
- Darley. This fixes several memory leaks in the image code. They
- happen if there are errors during the initialization of the
- channel the image is supposed to be read from.
-
-2001-09-12 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure:
- * unix/tcl.m4: Update from Tcl.
-
-2001-09-12 D. Richard Hipp <drh@hwaci.com>
-
- * library/tkfbox.tcl: fixed error that appeared when you would
- click on the canvas while viewing an empty directory.
-
-2001-09-10 Mo DeJong <mdejong@users.sourceforge.net>
-
- * unix/configure:
- * unix/tcl.m4: Update from Tcl.
-
-2001-09-09 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/Makefile.in: Fix Windows Makefile so that
- tcltest will automatically be compiled if the
- user tries to build tktest.
-
-2001-09-09 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/Makefile.in: Use TKTEST variable directly
- instead of depending on the tktest alias.
-
-2001-09-08 Mo DeJong <mdejong@users.sourceforge.net>
-
- * win/mkd.bat:
- * win/rmd.bat:
- Apply binary property (cvs admin -kb) to files and convert
- to CRLF linefeed format to fix the VC++ build. [Tcl Bug #219409]
+ * win/configure.in: Add AC_PREREQ(2.13) in an attempt
+ to make it more clear that the configure scripts
+ must be generated with autoconf version 2.13.
+ [Bug 583573]
-2001-08-29 Jeff Hobbs <jeffh@ActiveState.com>
+2002-07-19 Vince Darley <vincentdarley@users.sourceforge.net>
- * tests/menu.test:
- * tests/send.test:
- * tests/select.test: corrected to use testConfig constraints in
- the TK_ALT_DISPLAY case
+ * unix/Makefile.in: fix to build on MacOS X [Bug 529801], bug
+ report and fix from jcw.
- * tests/unixSend.test: removed test file completely identical to
- send.test. Removed platform specific named file in case somebody
- gets send working on Win/Mac in the future.
+2002-07-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * tests/config.test: added config-14.1 to test namespace import
- evaluation of widgets.
- * generic/tkButton.c (ButtonCreate):
- * generic/tkFrame.c (CreateFrame):
- * generic/tkMenubutton.c (Tk_MenubuttonObjCmd):
- * generic/tkPlace.c (Tk_PlaceObjCmd):
- * generic/tkScale.c (Tk_ScaleObjCmd):
- * generic/tkMessage.c (Tk_MessageObjCmd):
- * generic/tkEntry.c (Tk_EntryObjCmd, Tk_SpinboxObjCmd):
- * generic/tkSquare.c (SquareObjCmd): redid the handling of
- optionTables in widgets to allow them to be imported into other
- namespaces. [Bug #456632]
+ * win/tclWinSerial.c (no_timeout): Made this variable static.
-2001-08-28 Jeff Hobbs <jeffh@ActiveState.com>
+ * generic/tclExecute.c, generic/tclCompile.c, generic/tclBasic.c:
+ * generic/tclCompile.h (builtinFuncTable, instructionTable): Added
+ prefix to these symbols because they are visible outside the Tcl
+ library.
- * win/tkWinDialog.c (ChooseDirectoryHookProc): work-around for MS
- bug that caused crashing in tk_chooseDirectory on Win95.
- [Bug #224936] (baker)
+ * generic/tclCompExpr.c (operatorTable):
+ * unix/tclUnixTime.c (tmKey):
+ * generic/tclIOUtil.c (theFilesystemEpoch, filesystemWantToModify,
+ filesystemIteratorsInProgress, filesystemOkToModify): Made these
+ variables static.
- * unix/tkUnixWm.c (TkWmRestackToplevel): reworked how
- ConfigureNotify requests were handled in relation to the parent to
- avoid the problem with potential 'raise' delays on some wms.
- [Bug #220260] (baker) wms that were affected should notice the
- difference in tests unixWm-51.* not failing that failed before.
+ * unix/tclUnixFile.c: Renamed nativeFilesystem to
+ * win/tclWinFile.c: tclNativeFilesystem and declared
+ * generic/tclIOUtil.c: it properly in tclInt.h
+ * generic/tclInt.h:
-2001-08-26 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclUtf.c (totalBytes): Made this array static and const.
- * library/text.tcl (<Shift-Up> binding): Corrected TIP 44 typo
- that broke binding. Thanks to "Michal" for the fix.
- [Bug 455468]
+ * generic/tclParse.c (typeTable): Made this array static and const.
+ (Tcl_ParseBraces): Simplified error handling case so that scans
+ are only performed when needed, and flags are simpler too.
-2001-08-23 Jeff Hobbs <jeffh@ActiveState.com>
+ * license.terms: Added AS to list of copyright holders; it's only
+ fair for the current gatekeepers to be listed here!
- * unix/configure:
- * unix/tcl.m4: added QNX-6 build support. [Bug #219410] (loverso)
+ * tests/cmdMZ.test: Renamed constraint for clarity. [Bug#583427]
+ Added tests for the [time] command, which was previously only
+ indirectly tested!
- * doc/CrtPhImgFmt.3: removed bogus note about including tkPhoto.h
+2002-07-18 Vince Darley <vincentdarley@users.sourceforge.net>
-2001-08-22 Peter Spjuth <peter.spjuth@space.se>
+ * generic/tclInt.h:
+ * generic/tcl.h:
+ * */*Load*.c: added comments on changes of 07/17 and
+ replaced clientData with Tcl_LoadHandle in all locations.
- * generics/tkGrid.c (ConfigureSlaves):
- * tests/grid.test: Fixed a bug where adjacent 'x' and '^' where
- not handled properly. [Bug #452040]
-
-2001-08-22 Jeff Hobbs <jeffh@ActiveState.com>
-
- * generic/tkPack.c (TkParsePadAmount): added lint init for sepChar.
-
- * tests/dialog.test (HitReturn): fixed failing dialog-2.1 test
- because it wasn't always getting focus properly.
-
-2001-08-21 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/unixFont.test (unixFont-2.[234]): fixed to be more
- sensitive on systems that have more installed fonts.
-
- * library/dialog.tcl (tk_dialog): changed dialog to show bar on
- Windows as well and added some y padding between the buttons and
- the bar. [Patch #442835] (harrismh)
-
-2001-08-20 Peter Spjuth <peter.spjuth@space.se>
-
- * generic/tkInt.h:
- * generic/tkWindow.c:
- * generic/tkGrid.c:
- * generic/tkPack.c:
- * tests/grid.test:
- * tests/oldpack.test:
- * tests/pack.test: Objectified grid and pack commands.
-
-2001-08-20 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkObj.c (TkGetWindowFromObj): Rewrote window code to
- reuse a previously worked-out set of window information exactly
- when the reference window is the same and no window deletions have
- occurred since the object was allocated (display has same epoch
- counter.) Required changing the internal rep of the window quite
- a bit as now need to save three words-worth of information in the
- internal rep (this window, reference window, display epoch.)
- * generic/tkObj.c (SetWindowFromAny, DupWindowInternalRep,
- FreeWindowInternalRep): Code to support new internal rep for
- window objects.
- * generic/tkInt.h: Added epoch counter to TkDisplay structure
- * generic/tkWindow.c (GetScreen, Tk_DestroyWindow): Epoch counter
- is incremented every time a window is deleted.
-
-2001-08-18 Peter Spjuth <peter.spjuth@space.se>
-
- * doc/grid.n:
- * tests/grid.test:
- * generic/tkGrid.c: Grid configure rejected initial "x" and "^".
- [Bug #418664]
+ * generic/tclFCmd.c:
+ * tests/fileSystem.test: fixed a 'knownBug' with 'file
+ attributes ""'
+ * tests/winFCmd.test:
+ * tests/winPipe.test:
+ * tests/fCmd.test:
+ * tessts/winFile.test: added 'pcOnly' constraint to some
+ tests to make for more useful 'tests skipped' log from
+ running all tests on non-Windows platforms.
-2001-08-17 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkObj.c (TkGetWindowFromObj): Was failing to reuse
- cached window objects, forcing a call to Tcl_GetStringFromObj and
- Tk_NameToWindow every time. This fault has been in there for
- nearly three years...
-
-2001-08-15 Don Porter <dgp@users.sourceforge.net>
-
- * changes: Labelled the TIP 44 changes as "POTENTIAL INCOMPATIBILITY".
- Although technically internal changes are not incompatible, they'll
- be perceived as such by those who get bitten, and this will help
- them find the cause of their trouble.
-
-2001-08-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tk{Util,Font,Cursor,Color,Bitmap,3d}.c: Modified
- objtype declarations so that they can be picked up in tkObj.c and
- the names are now prefixed with "tk" too.
- * generic/tkObj.c (TkRegisterObjTypes):
- * generic/tkWindow.c (Initialize):
- * generic/tkInt.h: Added code to register Tk's object types with
- the Tcl runtime. [Tcl Bug 450545]
-
-2001-08-12 Mo DeJong <mdejong@redhat.com>
-
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
-
-2001-08-10 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/image2.tcl (loadDir): Converted non-portable
- [glob [file join $dirName *]] to [glob -directory $dirName *]
- which is both fully portable and more reliable when directory
- names contain glob-significant characters. [Bug 223313]
-
-2001-08-08 Don Porter <dgp@users.sourceforge.net>
-
- * tests/dialog.test: New file testing [tk_dialog].
-
- * library/dialog.tcl:
- * library/tkfbox.tcl: Corrections to problems introduced by
- the TIP 44 changes. [Bug 449261]
-
- * README:
- * generic/tk.h:
- * unix/configure:
- * unix/configure.in:
- * unix/tk.spec:
- * win/configure:
- * win/configure.in: Bumped up patchlevel to 8.4a4 to distinguish
- CVS snapshots from the 8.4a3 release. This does not necessarily
- mean there will be an 8.4a4 release. [Bug 448938].
-
-2001-08-07 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/Makefile.in (dist): added {unix,win}/tcl.m4 and
- library/msgs/*.msg to dist target. [Bug: #448802]
-
-2001-08-06 Jeff Hobbs <jeffh@ActiveState.com>
-
- 8.4a3 RELEASE
-
- * changes:
- * README: updated for 8.4a3 release
-
- * unix/configure: regenerated
- * unix/tcl.m4: added GNU (HURD) configuration target. (brinkmann)
- [Patch: #442974]
-
-2001-08-06 Don Porter <dgp@users.sourceforge.net>
-
- * generic/tkConsole.c:
- * generic/tkWindow.c:
- * library/bgerror.tcl:
- * library/dialog.tcl:
- * library/msgbox.tcl:
- * library/unsupported.tcl:
- * mac/tclets.tcl:
- * mac/tkMacHLEvents.c:
- * mac/tkMacWm.c: TIP 44 changes specific to the Mac and
- Windows platforms that were overlooked before: tkOpenDocument,
- tkConsoleExit, tkConsoleOutput, unsupported1 out of namespace :: .
- Thanks to Vince Darley for prompting another look.
-
-2001-08-03 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/winMain.c (WishPanic): fixed CONST changes to go with
- CONST-ification in Tcl.
-
- * win/configure: regenerated
- * win/tcl.m4: fixed DLLSUFFIX definition to always be ${DBGX}.dll.
- This is necessary for TEA compliant builds that build shared
- against a static-built Tk.
- * win/Makefile.in ($(WISH)): added $(TK_STUB_LIB_FILE) to build
- target, otherwise it wouldn't get generated in a static build.
-
-2001-08-01 Don Porter <dgp@users.sourceforge.net>
-
- * doc/console.n:
- * doc/menu.n:
- * doc/text.n:
- * doc/tkvars.n:
- * generic/tkBind.c:
- * generic/tkMenu.c:
- * library/bgerror.tcl:
- * library/button.tcl:
- * library/choosedir.tcl:
- * library/clrpick.tcl:
- * library/comdlg.tcl:
- * library/console.tcl:
- * library/dialog.tcl:
- * library/entry.tcl:
- * library/focus.tcl:
- * library/listbox.tcl:
- * library/menu.tcl:
- * library/msgbox.tcl:
- * library/optMenu.tcl:
- * library/palette.tcl:
- * library/scale.tcl:
- * library/scrlbar.tcl:
- * library/spinbox.tcl:
- * library/tclIndex:
- * library/tearoff.tcl:
- * library/text.tcl:
- * library/tk.tcl:
- * library/tkfbox.tcl:
- * library/unsupported.tcl:
- * library/xmfbox.tcl:
- * mac/tkMacMenu.c:
- * tests/clrpick.test:
- * tests/filebox.test:
- * tests/macMenu.test:
- * tests/menu.test:
- * tests/menuDraw.test:
- * tests/msgbox.test:
- * tests/text.test:
- * tests/unixMenu.test:
- * tests/winMenu.test:
- * tests/xmfbox.test:
- * unix/mkLinks:
- * unix/tkUnixDialog.c: Merged changes from feature branch
- dgp-privates-into-namespace, implementing TIP 44. All
- Tk commands and variables matching tk[A-Z]* are now in the
- ::tk namespace. See "BRANCH: dgp-privates-into-namespace"
- entries below for details. [FR 220936]
-
-2001-07-24 Mo DeJong <mdejong@redhat.com>
-
- * generic/default.h: Include tkWinDefault.h
- when built with Cygwin or Mingw.
-
-2001-07-18 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace:
- * doc/console.n: Updated names of private console commands.
-
-2001-07-16 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace:
- * library/console.tcl:
- * library/unsupported.tcl: Renamed tk::histNum to tk::HistNum
- as directed by the Tcl Style Guide.
-
-2001-07-10 Mo DeJong <mdejong@redhat.com>
-
- * unix/Makefile.in: Add AR and STLIB_LD variables.
- * unix/configure:
- * unix/configure.in: Use STLIB_LD when defining MAKE_LIB
- and MAKE_STUB_LIB. Subst STLIB_LD, RANLIB, and AR.
- * unix/tcl.m4: Update from Tcl.
- * win/configure: Regen.
- * win/tcl.m4: Update from Tcl.
-
-2001-07-06 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/tcl.m4: Update from Tcl.
-
-2001-07-05 Mo DeJong <mdejong@redhat.com>
-
- * win/Makefile.in: Subst DEPARG directly instead
- of relying on a variable. This will make Cygwin
- build faster since an extra exec will be avoided.
- * win/configure: Regen.
- * win/configure.in: Subst DEPARG.
- * win/tcl.m4: Update from Tcl.
-
-2001-07-04 Jeff Hobbs <jeffh@ActiveState.com>
-
- * README:
- * mac/README:
- * unix/README:
- * win/README: updated READMEs with purls
-
-2001-07-03 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/canvas.test:
- * generic/tkCanvPoly.c (PolygonToArea): Added patch that respects
- the polygon difference of including points in the polygon even
- when fill is empty. [Bug #226357]
-
-2001-07-03 Mo DeJong <mdejong@redhat.com>
-
- * win/Makefile.in: Remove PATHTYPE variable.
- * win/configure: Regen.
- * win/configure.in: Don't subst PATHTYPE.
- * win/tcl.m4: Update from Tcl.
-
-2001-07-03 Mo DeJong <mdejong@redhat.com>
-
- * win/Makefile.in: Don't use VPSEP, instead just use :
- in the VPATH.
- * win/configure: Regen.
- * win/configure.in: Don't subst VPSEP.
+2002-07-17 Miguel Sofer <msofer@users.sourceforge.net>
-2001-07-03 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+ * generic/tclBasic.c (CallCommandTraces): delete traces now
+ receive the FQ old name of the command.
+ [Bug 582532] (Don Porter)
- * library/xmfbox.tcl (tkMotifFDialog_ActivateSEnt): Added missing
- backslash [Bug #438247]
+2002-07-18 Vince Darley <vincentdarley@users.sourceforge.net>
-2001-07-02 Jeff Hobbs <jeffh@ActiveState.com>
+ * tests/ioUtil.test: added constraints to 1.4,2.4 so they
+ don't run outside of tcltest. [Bugs 583276,583277]
+
+2002-07-17 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkWindow.c (Tk_DestroyWindow): changed to use
- Tcl_EventuallyFree instead of ckfree so that widgets that have
- references to a tkwin can use them.
+ * generic/tclVar.c (DupParsedVarName): nasty bug fixed, reported
+ by Vince Darley.
- * generic/tkCanvArc.c:
- * generic/tkCanvBmap.c:
- * generic/tkCanvLine.c:
- * generic/tkCanvPoly.c:
- * generic/tkCanvText.c:
- * generic/tkCanvWind.c:
- * generic/tkRectOval.c: corrected argument handling in
- Create<Item> functions that could lead to ABRs or FMRs and
- corrected names of argc/argv to objc/objv.
+2002-07-17 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkImgGIF.c (Mgetc): corrected screwy use of ternary
- operator and possible FMR.
+ * generic/tclVar.c (TclPtrIncrVar): missing CONST in declarations,
+ inconsistent with tclInt.h. Thanks to Vince Darley for reporting,
+ boo to gcc for not complaining.
+
+2002-07-17 Vince Darley <vincentdarley@users.sourceforge.net>
- * generic/tkEntry.c: corrected missing Tcl_Release that caused
- font not freed complaints when trying valid cleanup calls.
- * generic/tkListbox.c: made use of Tcl_Preserve/Tcl_Release to
- prevent FMR errors in Display functions.
+ * generic/tclInt.h:
+ * generic/tclIOUtil.c:
+ * generic/tclLoadNone.c:
+ * unix/tclLoadAout.c:
+ * unix/tclLoadDl.c:
+ * unix/tclLoadDld.c:
+ * unix/tclLoadDyld.c:
+ * unix/tclLoadNext.c:
+ * unix/tclLoadOSF.c:
+ * unix/tclLoadShl.c:
+ * mac/tclMacLoad.c:
+ * win/tclWinLoad.c: modified to move more functionality
+ to the generic code and avoid duplication. Partial replacement
+ of internal uses of clientData with opaque Tcl_LoadHandle. A
+ little further work still needed, but significant changes are done.
- * unix/tkUnixScale.c (TkpDisplayScale): corrected FMR when scale
- was deleted while calling its command.
+2002-07-17 D. Richard Hipp <drh@hwaci.com>
- * library/console.tcl:
- * library/entry.tcl:
- * library/spinbox.tcl:
- * library/text.tcl:
- * library/tk.tcl: added private ::tk::GetSelection command to
- handle requesting selection. This is to support requesting
- UTF8_STRING before generic STRING on Unix. Changed Text, Spinbox,
- Entry and Console to use this command.
+ * library/msgcat/msgcat.tcl: fix a comment that was causing
+ problems for programs (ex: mktclapp) that embed the initialization
+ scripts in strings.
- * tests/select.test:
- * generic/tkSelect.c (Tk_CreateSelHandler, Tk_DeleteSelHandler):
- on Unix, a UTF8_STRING handler will be created when the user
- requests a STRING handler (in addition to the STRING handler).
- This provides implicit support for the new UTF8_STRING selection
- target.
- * unix/tkUnixSelect.c (TkSelEventProc, ConvertSelection): Added
- support for UTF8_STRING target. [RFE #418653, Patch #433283]
+2002-07-17 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkInt.h: added utf8Atom to TkDisplay structure.
+ * generic/tclInt.decls:
+ * generic/tclIntDecls.h:
+ * generic/tclStubInit.c:
+ * generic/tclVar.c: removing the now redundant functions to access
+ indexed variables: Tcl(Get|Set|Incr)IndexedScalar() and
+ Tcl(Get|Set|Incr)ElementOfIndexedArray().
+
+2002-07-17 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * tests/listbox.test: changed 'darkblue' to 'white' in a test
- because it isn't a portable color name.
+ * generic/tclExecute.c (TclExecuteByteCode): Minor fixes to make
+ this file compile with SunPro CC...
+
+2002-07-17 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkEntry.c (DestroyEntry): used Tcl_EventuallyFree
- instead of ckfree for entryPtr to prevent FMRs. [Bug #413904]
+ * generic/tclExecute.c: modified to do variable lookup explicitly,
+ and then either inlining the variable access or else calling the new
+ TclPtr(Set|Get|Incr)Var functions in tclVar.c
+ * generic/tclInt.h: declare some functions previously local to
+ tclVar.c for usage by TEBC.
+ * generic/tclVar.c: removed local declarations; moved all special
+ accessor functions for indexed variables to the end of the file -
+ they are unused and ready for removal, but left there for the time
+ being as they are in the internal stubs table.
-2001-06-26 Mo DeJong <mdejong@redhat.com>
+ ** WARNING FOR BYTECODE MAINTAINERS **
+ TCL_COMPILE_DEBUG is currently not functional; will be fixed ASAP.
+
+2002-07-16 Mo DeJong <mdejong@users.sourceforge.net>
* unix/Makefile.in:
- * win/Makefile.in: Add `make shell` target. This target
- will set the proper env vars before invoking wish
- from the build directory.
-
-2001-06-26 Mo DeJong <mdejong@redhat.com>
-
- * win/configure:
- * win/configure.in: Revert cross compiling change
- accidently added during last checkin.
-
-2001-06-26 Mo DeJong <mdejong@redhat.com>
-
- * unix/configure: Regen.
- * unix/configure.in: Fix last checkin by removing
- export since that only works in bash.
- * win/configure: Regen.
- * win/configure.in: Ditto.
-
-2001-06-26 Mo DeJong <mdejong@redhat.com>
-
- * unix/configure: Regen.
- * unix/configure.in: Set CFLAGS to "" if the user
- did not set CFLAGS in the env. This keeps AC_PROG_CC
- from adding "-g -O2" to the CFLAGS by default.
- * win/configure: Regen.
- * win/configure.in: Ditto.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/configure.in: Use RC_DEFINE flag from tcl.m4.
- * win/tcl.m4: Update from Tcl.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/tcl.m4: Update from Tcl.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/tcl.m4 (SC_CONFIG_CFLAGS): Link to the
- imm32 library when building with mingw gcc.
- * win/tkWinX.c: Include the imm.h header
- to fix compiling with mingw gcc.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/configure.in: Add resource compiler fix from
- 8.3.3 to fix compiling with mingw.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/tcl.m4: Fix silly typo in last checkin.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * unix/Makefile.in: Set CFLAGS to @CFLAGS@ and @CFLAGS_DEFAULT@.
- Set LDFLAGS to @LDFLAGS@ and @LDFLAGS_DEFAULT@. Add LDFLAGS_DEBUG
- and LDFLAGS_OPTIMIZE to match the way CFLAGS_DEFAULT works. Use
- new LDFLAGS variable in the Makefile instead of @LDFLAGS@.
- * unix/configure: Regen.
- * unix/configure.in: Don't set CFLAGS to CFLAGS_DEFAULT, instead
- subst CFLAGS_DEFAULT into the Makefile. Add AC_SUBST for CFLAGS_DEBUG,
- CFLAGS_OPTIMIZE, LDFLAGS_DEFAULT, LDFLAGS_DEBUG, and LDFLAGS_OPTIMIZE.
- Remove unused LD_FLAGS subst.
- * unix/tcl.m4: Update from Tcl.
- * win/Makefile.in: Set CFLAGS to @CFLAGS@ and @CFLAGS_DEFAULT@.
- Set LDFLAGS to @LDFLAGS@ and @LDFLAGS_DEFAULT@.
- * win/configure: Regen.
- * win/configure.in: Don't set CFLAGS or LDFLAGS, instead subst
- CFLAGS_DEFAULT and LDFLAGS_DEFAULT into the Makefile.
- * win/tcl.m4: Update from Tcl.
-
-2001-06-22 Mo DeJong <mdejong@redhat.com>
-
- * win/configure:
- * win/tcl.m4: Update From Tcl.
-
-2001-06-21 eric melski <ericm@interwoven.com>
-
- * doc/colors.n: Corrected bogus documentation with respect to
- several shades of blue, all of which were listed as RGB 0 0 0.
- [Bug #432104].
-
-2001-06-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * library/demos/floor.tcl, library/demos/filebox.tcl,
- * library/demos/clrpick.tcl, library/demos/vscale.tcl,
- * library/demos/twind.tcl, library/demos/ruler.tcl,
- * library/demos/plot.tcl, library/demos/items.tcl,
- * library/demos/hscale.tcl, library/demos/ctext.tcl,
- * library/demos/cscroll.tcl, library/demos/arrow.tcl,
- * library/xmfbox.tcl, library/msgbox.tcl,
- * library/clrpick.tcl, library/bgerror.tcl: Braced expressions.
-
-2001-06-06 Mo DeJong <mdejong@redhat.com>
-
- * win/configure: Regen.
- * win/configure.in: Handle the --prefix option correctly
- it should default to /usr/local like the unix version.
-
-2001-06-03 Jeff Hobbs <jeffh@ActiveState.com>
-
- * doc/selection.n:
- * doc/clipboard.n: added SEE ALSOs to cross-reference selection
- and clipboard, with extra note for clipboard command in selection
- docs. [Patch #422256]
-
- * unix/tkUnixFont.c: Corrected support for iso10646 (X11 Unicode)
- fonts on Unix. This adds a ucs-2be (UCS-2 Big Endian) encoding in
- Tk on Unix that is used for those fonts (X11 requires
- big-endianness). (welch) [Patch #406411; Bug #220890 #220899]
- This differs from the 8.3.3 patch by not adding ucs-2be in the
- preferred encodingList (seems works fine without).
- Added alias for jisx0201* fonts to jis0201 encoding. [Bug #414033]
-
-2001-05-30 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinKey.c (TkpSetKeycodeAndState): removed old debug info
-
-2001-05-29 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinX.c: moved the initialization of tkPlatformId from
- TkWinXInit to TkWinGetPlatformId because static builds could call
- it before it was initialized. [Bug #427278]
-
-2001-05-28 Peter Spjuth <peter.spjuth@space.se>
-
- * generic/tkFrame.c:
- * generic/tkWindow.c:
- * tests/frame.test: Upgraded frame to use the newer TK_OPTION
- style when processing configuration options. Some cleanup of
- bad comments and bad code. [part of patch #420861]
-
-2001-05-23 Mo DeJong <mdejong@redhat.com>
-
- * unix/configure:
- * unix/tcl.m4:
- * win/configure:
- * win/tcl.m4: Sync from Tcl sources.
-
-2001-05-21 Jeff Hobbs <jeffh@ActiveState.com>
-
- * unix/tcl.m4: sync'ed up wih Tcl tcl.m4. [Bug #419812]
-
- * doc/TkInitStubs.3:
- * generic/tk.h:
- * generic/tkStubLib.c: CONST'ified Tk_InitStubs to match CONST
- changes to Tcl_PkgRequireEx.
-
-2001-05-21 Todd M. Helfter <tmh@purdue.edu>
-
- * doc/menubutton.n:
- * generic/tkMenubutton.c:
- * generic/tkMenubutton.h:
- * mac/tkMacMenubutton.c:
- * tests/menubut.test:
- * unix/tkUnixMenubu.c: Implementation of TIP #11, the addition of
- a -compound option to the menubutton allowing text and an image to
- be displayed at the same time. This behavior is identical to the
- behavior of the button widget.
-
-2001-05-16 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/console.n: Added - was erroneously placed in Tcl before...
-
-2001-04-25 Mo DeJong <mdejong@redhat.com>
-
- * unix/configure: Regen.
- * unix/tcl.m4: Update from Tcl.
- * win/configure: Regen.
- * win/tcl.m4: Update from Tcl.
+ * win/Makefile.in: Add a more descriptive warning
+ in the event `make genstubs` needs to be rerun.
-2001-04-25 Mo DeJong <mdejong@redhat.com>
+2002-07-16 Mo DeJong <mdejong@users.sourceforge.net>
- * unix/configure: Regen.
- * unix/configure.in: Use $@ in MAKE_LIB and MAKE_STUB_LIB
- commands instead of using a delayed subst variable. Replace
- instances of STUB_LIB_FILE with TK_STUB_LIB_FILE.
+ * unix/Makefile.in: Use dltest.marker file
+ to keep track of when the dltest package
+ is up to date. This fixes [Tcl bug 575768]
+ since tcltest is no longer linked every time.
+ * unix/dltest/Makefile.in: Create ../dltest.marker
+ after a successful `make all` run in dltest.
-2001-04-25 Mo DeJong <mdejong@redhat.com>
+2002-07-16 Mo DeJong <mdejong@users.sourceforge.net>
- * unix/Makefile.in: Use TCL_STUB_LIB_FILE instead of STUB_LIB_FILE.
* unix/configure: Regen.
- * unix/configure.in: Don't subst STUB_LIB_FILE, use TCL_STUB_LIB_FILE
- instead.
-
-2001-04-12 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * generic/tkImage.c (Tk_ImageObjCmd,DeleteImage): Better detection
- of deletion when world is falling apart. [Bug #220819]
-
-2001-04-04 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/tkWinMenu.c (TkWinHandleMenuEvent): corrected reseting of
- service mode to only occur when it was set. [Bug #220948]
-
-2001-04-03 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/winClipboard.test: improved results for understanding when
- tests fail.
-
- * tests/winDialog.test: string totitle'd some results that
- expected [pwd] to return a capital drive letter.
-
- * tests/cursor.test: changed tests to use 'heart' cursor because
- 'arrow' on windows has a pre-skewed use count.
-
- * win/tkWinDialog.c (GetFileNameA): initialize multi to 0.
-
-2001-04-02 Jeff Hobbs <jeffh@ActiveState.com>
-
- * win/configure:
- * win/tcl.m4 (SHLIB_LD): added -incremental:no. [Bug #219381]
+ * unix/configure.in: Remove useless subst of TCL_BIN_DIR.
- * generic/tkMenu.c (TkInvokeMenu): checked for menu deletion
- before calling associated menu entry command. [Bug #220821]
+2002-07-15 Miguel Sofer <msofer@users.sourceforge.net>
- * doc/image.n: added warning about names chosen for images.
-
- * generic/tkImgPhoto.c (ImgPhotoCmd): corrected the src and dest
- values for $imageName put when -format and -to are used.
- [Bug #232741]
-
- * tests/listbox.test: added test listbox-27.1, delete during
- scrollbar update
- * generic/tkListbox.c (DestroyListbox, ListboxEventProc):
- corrected listbox to make proper use of Tcl_EventuallyFree and
- protect against unusual listbox deletion.
-
- * tests/entry.test: added tests entry-20.*, delete during widget
- activity
- * generic/tkEntry.c (DestroyEntry, EntryEventProc): fixed the
- entry widget to survive deletion while processing scrollbar
- updates and validation.
-
- * tests/canvas.test: test of canvas delete during event
- * generic/tkCanvas.c (DestroyCanvas, CanvasEventProc): fixed the
- canvas to survive deletion during event processing. [Bug #228024]
-
-2001-04-01 Jeff Hobbs <jeffh@ActiveState.com>
-
- * README:
- * mac/README: updated patchlevel to 8.4a3 and corrected links and
- notes.
-
- * generic/tk.h:
- * unix/configure.in (TK_PATCH_LEVEL):
- * unix/configure:
- * unix/tk.spec:
- * win/configure.in (TK_PATCH_LEVEL):
- * win/configure: updated patchlevel to 8.4a3
-
-2001-03-30 Jeff Hobbs <jeffh@ActiveState.com>
-
- * tests/safe.test: added note about correcting failures in
- safe.test.
- * library/tk.tcl: moved package require msgcat inside if case to
- not be used in safe interps.
-
- * win/makefile.vc:
- * win/configure:
- * win/tcl.m4: added imm32.lib to LIBS_GUI for Tk IME support.
- * win/tkWinInt.h:
- * win/tkWinKey.c:
- * win/tkWinX.c: added support for changing IME on the fly in
- Windows (2000). (lam) [Patch #402993]
+ * generic/tclVar.c: inaccurate comment fixed
- * tests/bind.test (bind-22.18):
- * generic/tkBind.c (NameToWindow): handled the error case where a
- valid-looking but invalid identifier could be passed in certain
- event generate options causing a crash. [Bug #411307]
-
- * win/tkWinWm.c (UpdateWrapper): ensured that the passed in winPtr
- had an existent window to operate on. [Bug #409172]
-
- * win/Makefile.in (install-*): improved install-* targets to use
- their base build dependency.
-
- * generic/tkImage.c (Tk_ImageObjCmd, EventuallyDeleteImage):
- added casts to allow compiling on Windows with debbuging.
-
-2001-03-29 Jeff Hobbs <jeffh@ActiveState.com>
-
- * library/msgs/de.msg: fixed translations. [Patch #403525]
-
- * doc/canvas.n: Noted ability to specify coords as a list in the
- docs. (techentin) [Patch #403660]
-
- * tests/canvas.test: added test case to check obj conversion
- * generic/tkObj.c (UpdateStringOfMM, SetMMFromAny): better
- obj-aware screen distances. (pgbaum, hobbs) [Patch #403327]
+2002-07-15 Miguel Sofer <msofer@users.sourceforge.net>
- * library/bgerror.tcl (bgerror): allow focus into details window
- for Windows C&P to work. [Bug #220929]
+ * generic/tclBasic.c (Tcl_AddObjErrorInfo):
+ * generic/tclExecute.c (TclUpdateReturnInfo):
+ * generic/tclInt.h:
+ * generic/tclProc.c:
+ Added two Tcl_Obj to the ExecEnv structure to hold the fully
+ qualified names "::errorInfo" and "::errorCode" to cache the
+ addresses of the corresponding variables. The two most frequent
+ setters of these variables now profit from the new variable name
+ caching.
- * library/tk.tcl: put a catch around adding <hpBackTab> to the
- <<PrevWindow>> virtual event as it doesn't seem to work on all HP
- systems. [Bug #411669]
+2002-07-15 Miguel Sofer <msofer@users.sourceforge.net>
- * library/tkfbox.tcl: fixed selecting directories and single files
- with spaces using tk_getOpenFile -multiple 1. [Bug #411640]
-
- * win/tkWinDialog.c (GetFileNameA): added support for -multiple to
- ascii-based tk_getOpenFile (Win9*). (haneef) [Patch #403047]
- (GetFileNameW): increased number of files that could be returned
- by tk_getOpenFile -multiple. [Patch #412042]
-
-2001-03-29 Mo DeJong <mdejong@redhat.com>
-
- * library/entry.tcl (tkEntryMouseSelect):
- * library/text.tcl (tkTextSelectTo): When
- the mouse is dragged with the button down,
- move the insertion cursor to the current
- mouse position.
- * tests/event.test: Add a series of tests
- for event generation. Add tests for selection,
- check the position of the insertion cursor.
-
-2001-03-28 Jeff Hobbs <jeffh@gimlet.activestate.com>
-
- * unix/configure:
- * unix/tcl.m4: corrected IRIX-5.x config to not use -n32.
- (english) [Patch 403626]
-
-2001-03-28 Don Porter <dgp@users.sourceforge.net>
-
- * tests/focus.test (focus-6.1):
- * tests/macEmbed.test (unixEmbed-5.1):
- * tests/macMenu.test (macMenu-21.3):
- * tests/menu.test (menu-27.1):
- * tests/unixEmbed.test (unixEmbed-8.2):
- * tests/unixWm.test (unixWm-50.4): Replaced all [load {} tk]
- in Tk test suite with [load {} Tk]. [Bug 220940, Patch 411952]
-
-2001-03-12 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace:
- * doc/menu.n:
- * unix/mkLinks: Added documentation for [tk_menuSetFocus].
-
-2001-03-12 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace:
- * doc/text.n:
- * doc/tkvars.n:
- * unix/mkLinks: Added documentation for commands and variables
- matching tk_text*.
-
-2001-03-08 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace:
- * generic/tkTextDisp.c:
- * library/unsupported.tcl:
- * tests/textDisp.test: Restored the global variables tk_textRedraw
- and tk_textRelayout. Since they match tk_*, they should remain
- publicly available until at least Tk 9.
-
-2001-03-01 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace:
- * library/unsupported.tcl: New file for Tk's unsupported
- interfaces. Contains [tk::unsupported::ExposePrivateCommand]
- and [tk::unsupported::ExposePrivateVariable] that restore the
- availability of an old public name of one of Tk's private
- commands and variables, respectively, for those applications
- and extensions that depend on the old names against advice.
-
-2001-02-28 Don Porter <dgp@users.sourceforge.net>
-
- BRANCH dgp-privates-into-namespace: Feature branch to move all
- of Tk's private commands and variable into the ::tk namespace
- and its children.
-
- * doc/tkvars.n: Documented private variable tkPriv renamed tk::Priv.
-
- * generic/tkBind.c:
- * generic/tkMenu.c:
- * generic/tkTextDisp.c:
- * library/bgerror.tcl:
- * library/button.tcl:
- * library/choosedir.tcl:
- * library/clrpick.tcl:
- * library/comdlg.tcl:
- * library/console.tcl:
- * library/dialog.tcl:
- * library/entry.tcl:
- * library/focus.tcl:
- * library/listbox.tcl:
- * library/menu.tcl:
- * library/msgbox.tcl:
- * library/optMenu.tcl:
- * library/palette.tcl:
- * library/scale.tcl:
- * library/scrlbar.tcl:
- * library/spinbox.tcl:
- * library/tclIndex:
- * library/tearoff.tcl:
- * library/text.tcl:
- * library/tk.tcl:
- * library/tkfbox.tcl:
- * library/xmfbox.tcl:
- * mac/tkMacMenu.c:
- * tests/clrpick.test:
- * tests/filebox.test:
- * tests/macMenu.test:
- * tests/menu.test:
- * tests/menuDraw.test:
- * tests/msgbox.test:
- * tests/text.test:
- * tests/textDisp.test:
- * tests/unixMenu.test:
- * tests/winMenu.test:
- * tests/xmfbox.test:
- * unix/tkUnixDialog.c: All Tk commands matching ::tk[A-Z]* and
- all Tk private variables in the global namespace were renamed to
- live in the namespace ::tk or one of its children.
-
-2001-02-13 Eric Melski <ericm@interwoven.com>
-
- * doc/photo.n: [Bug 132213] Added clarification on interpretation
- of ranges for "photoName data -from" subcommand.
-
-2001-02-12 D. Richard Hipp <drh@hwaci.com>
-
- TIP #21: Asymmetric padding in the pack and grid geometry managers.
- With this changes, you can now say "-padx {10 20}" to put 10 pixels
- of padding on the left and 20 on the right. Similar rules apply
- for vertical padding. See the revised documentation for details.
-
-2001-01-02 Andreas Kupries <a.kupries@westend.com>
-
- * Everything below belongs together and implements TIP #8
- (SF patch #102833).
-
- * win/tkWinWm.c (line 56f): Added icon structures.
- * win/tkWinWm.c (struct WmInfo, line 242): Added reference to
- optional icon for titlebar.
- * win/tkWinWm.c (struct ThreadSpecificData, line 335): Added
- reference to optional default icon for toplevel windows.
- * win/tkWinWm.c (line 387 ... 1169): All the new functions required
- to deal with icon specifications, 'InitWm' changed.
- * win/tkWinWm.c (TkWmNewWindow, UpdateWrapper, TkWmDeadWindow, Tk_WmCmd):
- Added initialization and handling of the new fields.
- * doc/wm.n: Documentation updated to explain the newly available
- functionality.
-
-2000-12-13 jeff hobbs <jhobbs@interwoven.com>
-
- * generic/tkObj.c (SetMMFromAny): Added ability to recognize
- double type object to speed up canvas coord calculations.
- [Patch 403327]
-
-2000-12-12 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/entry.n: Improved documentation of interplay between the
- -state and -textvariable options.
-
-2000-11-29 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * tests/image.test (image-1.10): Improved this test, which
- previously only worked if the command failed to delete the root
- window, and caused *major* trouble otherwise...
- * generic/tkImage.c (EventuallyDeleteImage): Created this function
- so that images that get deleted during the creation of an image
- won't cause a nasty core dump. Properly fixes bug #120819.
-
-2000-11-28 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/image.n:
- * generic/tkImage.c (Tk_ImageObjCmd): Backed out previous change.
- Bug #120819 is back again in force. Left the test in there
- though.
-
-2000-11-23 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/image.n:
- * tests/image.test (image-1.10):
- * generic/tkImage.c (Tk_ImageObjCmd): Prohibited image names that
- start with "." since they can cause some really obscure
- crashes. Fixes Bug #120819.
-
-2000-11-21 Eric Melski <ericm@ajubasolutions.com>
-
- Overall change: Implemented TIP 5, which exports
- TkClassProcs/TkSetClassProcs as Tk_ClassProcs/Tk_SetClassProcs,
- adding a size field to Tk_ClassProcs to allow for future
- expansion, and renaming the geometryProc to worldChangedProc,
- which is more in keeping with the actual use of the callback.
-
- * unix/mkLinks: Added link for Tk_SetClassProcs.
-
- * doc/SetClassProcs.3: Documentation for
- Tk_ClassProcs/Tk_SetClassProcs.
-
- * generic/tkCanvas.c:
- * generic/tkEntry.c:
- * generic/tkFrame.c:
- * generic/tkListbox.c:
- * generic/tkMenu.c:
- * generic/tkMessage.c:
- * generic/tkScale.c:
- * generic/tkText.c: Updated to use Tk_ClassProcs/Tk_SetClassProcs
- instead of TkClassProcs/TkSetClassProcs.
-
- * generic/tkMenubutton.c:
- * generic/tkScrollbar.c:
- * generic/tkButton.c: Updated to use Tk_SetClassProcs instead of
- TkSetClassProcs.
-
- * generic/tkMenubutton.h:
- * generic/tkScrollbar.h:
- * generic/tkButton.h:
- * win/tkWinButton.c:
- * win/tkWinScrlbr.c:
- * mac/tkMacButton.c:
- * mac/tkMacMenubutton.c:
- * mac/tkMacScrlbr.c:
- * unix/tkUnixButton.c:
- * unix/tkUnixMenubu.c:
- * unix/tkUnixScrlbr.c: Updated to use Tk_ClassProcs instead of
- TkClassProcs.
-
- * generic/tkDecls.h:
- * generic/tkStubInit.c:
- * generic/tkIntDecls.h: Regenned from tk.decls, tkInt.decls.
+ * generic/tclVar.c: refactorisation to reuse already looked-up Var
+ pointers; definition of three new Tcl_Obj types to cache variable
+ name parsing and lookup for later reuse; modification of internal
+ functions to profit from the caching.
- * generic/tk.h: Added declaration of Tk_ClassProcs, with size
- field. Added typedef's for Tk_ClassCreateProc,
- Tk_ClassWorldChangedProc, Tk_ClassModalProc. Added definition of
- Tk_GetClassProc macro, shorthand for extracting a member of the
- Tk_ClassProcs structure.
-
- * generic/tkInt.h: Removed declaration of TkClassProcs,
- TkClassGeometryProc, etc.
-
- * generic/tkBind.c (Tk_BindEvent): Updated to use Tk_GetClassProc
- macro to extract modalProc; added check that the modalProc is non-NULL.
-
- * generic/tkFont.c (RecomputeWidgets): Updated to use
- Tk_GetClassProc macro to extract worldChangedProc; added comment
- about the choice of a recursive versus iterative algorithm for
- propagating world changed messages.
-
- * generic/tkWindow.c (Tk_MakeWindowExist): Updated to use
- Tk_GetClassProc macro to extract createProc from Tk_ClassProcs.
-
- * generic/tk.decls: Added declaration for Tk_SetClassProcs.
-
- * generic/tkInt.decls: Commented out declaration for
- TkSetClassProcs, which is made public by this change. The entry
- is left in place, but commented, so that future developers will
- know not to reuse it's stub number.
-
-2000-11-21 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-
- * doc/ConfigWidg.3: Added deprecation note from Bug #120944 - use
- Tk_SetOption() instead.
-
- * generic/tkImgPhoto.c (TkPhotoGetValidRegion): Applied patch to
- create this function and add it to tkInt stubs. Should now be
- possible to write an extension that accesses the transparency data
- in a photo image. Bug #120930
-
-2000-11-03 Jeff Hobbs <hobbs@ajubasolutions.com>
-
- 8.4a2 RELEASE
-
- * generic/tkWindow.c (Initialize): added call to Tcl_SetMainLoop.
- This only has effect when tclsh is run (not wish), and then Tk is
- loaded in interactively.
-
-2000-11-02 Jeff Hobbs <hobbs@ajubasolutions.com>
-
- * win/tkWinButton.c:
- * win/tkWinDialog.c:
- * win/tkWinScrlbr.c:
- * win/tkWinWm.c: fixed up code for Win64 support. This mostly
- remains in _WIN64 #ifdef's, until updated compilers are standard.
-
- * win/tcl.m4:
- * win/makefile.vc: updated for Win64 compile support
-
- * unix/configure:
- * win/configure: checked in configure scripts so people doing
- CVS checkouts aren't required to have autoconf. Changes to
- configure.in in the future will require the corresponding
- configure script to also be re-autoconf'ed and checked in.
+ * generic/tclInt.decls:
+ * generic/tclInt.h:
+ * generic/tclIntDecls.h:
+ * generic/tclNamesp.c: adding CONST qualifiers to variable names
+ passed to Tcl_FindNamespaceVar and to variable resolvers; adding
+ CONST qualifier to the 'msg' argument to TclLookupVar. Needed to
+ avoid code duplication in the new tclVar.c code.
- * doc/event.n: added note that key events require window focus.
+ * tests/set-old.test:
+ * tests/var.test: slight modification of error messages due to the
+ modifications in the tclVar.c code.
-2000-11-01 Jeff Hobbs <hobbs@ajubasolutions.com>
+2002-07-15 Don Porter <dgp@users.sourceforge.net>
- * win/tkWinDialog.c (GetFileNameW, GetFileNameA,
- Tk_ChooseDirectoryObjCmd): created
- work-around for change in NT5.0/98 that caused no initialdir
- setting to open the browser up in the user's documents dir.
+ * tests/unixInit.test: Improved constraints to protect /tmp.
+ [Bug 581403]
- * tests/color.test: marked color-2.6 nonPortable as we can't
- reliably assume what 'red' maps to.
+2002-07-15 Vince Darley <vincentdarley@users.sourceforge.net>
-2000-11-01 Eric Melski <ericm@ajubasolutions.com>
-
- * tests/winDialog.test: Corrected expected results for bad option
- tests (5.2, 5.5) to include -multiple option.
-
- * win/tkWinDialog.c: Added branch for 0 return from
- CommDlgExtendedError() switches; this was formerly treated as an
- error, but it actually is not, since it just means the user hit
- cancel or closed the dialog. (GetFileNameW): Added better smarts
- such that -multiple is not considered a valid option for
- tk_getSaveFile.
- Removed CommDlgExtendedError() checks for color and choosedir
- dialogs, and removed all except the explicit invalid filename
- checks for the file dialogs.
+ * tests/winFCmd.test: renamed 'win2000' and 'notWin2000' to
+ more appropriate constraint names.
+ * win/tclWinFile.c: updated comments to reflect 07-11 changes.
+ * win/tclWinFCmd.c: made ConvertFileNameFormat static again,
+ since no longer used in tclWinFile.c
+ * mac/tclMacFile.c: completed TclpObjLink implementation which
+ was previously lacking.
+ * generic/tclIOUtil.c: comment cleanup and code speedup.
-2000-10-30 David Gravereaux <davygrvy@ajubasolutions.com>
-
- * win/configure.in:
- * win/Makefile.in:
- * win/makefile.vc:
- * win/rc/tk.rc:
- * win/rc/tk_base.rc (new):
- * win/rc/wish.rc: Added logic to derive filenames better in the
- resource scripts based on compile options along with better
- support for building a static wish shell with cursor resources.
-
-2000-10-27 Jeff Hobbs <hobbs@ajubasolutions.com>
-
- * unix/tcl.m4: added support for AIX-5.
-
- * tests/tk.test:
- * doc/tk.n: updated to reflect default on status of useinputmethods.
- * library/tk.tcl: tk useinputmethods is set to 1 by default. This
- enables Kanji and dead-char input by default. Intro'd in
- 1999-12-16 with default off to avoid some problems with older X
- servers that would slow down widget creation over time.
-
- * win/Makefile.in (test, winhelp, tktest): corrected the
- TCL_LIBRARY path specification.
-
-2000-10-18 Eric Melski <ericm@ajubasolutions.com>
-
- * win/tkWinDraw.c (RenderObject): Applied patch from [Bug: 6368],
- which corrects rendering of 1-pixel wide stippled lines on Windows.
-
- * generic/tkCanvLine.c (DisplayLine): Applied patch from
- [Bug: 6368], corrects bugs relating to use of active- and
- disabledwidth values for displaying lines (disabledwidth was never
- used, and activewidth/disablewidths would only possibly be used
- when greater than default width, rather than when simply not equal
- to default width).
-
- * library/tkfbox.tcl (OkCmd): Applied patch from [Bug: 6365],
- which adds safety for directory names containing spaces or which
- are non-lists.
-
- * win/tkWinDialog.c (GetFileNameW, GetFileNameA,
- Tk_ChooseColorObjCmd, Tk_ChooseDirectoryObjCmd): Added error
- checking for the return value from the common dialog functions, so
- that the commands will not silently fail if the common dialog
- returns an error. [Bug: 6369].
-
-2000-10-10 Eric Melski <ericm@ajubasolutions.com>
-
- * generic/tkConfig.c (Tk_InitOptions): Added
- Tcl_IncrRefCount/Tcl_DecrRefCount calls on valuePtr, to prevent
- memory leaks when the value object comes from the option
- database. [Bug: 6275].
-
-2000-10-06 Jeff Hobbs <hobbs@ajubasolutions.com>
-
- * win/Makefile.in (cat32.${OBJEXT}): add win/ subdirectory to
- cat32 target to correctly find the source file.
-
-2000-10-05 Eric Melski <ericm@ajubasolutions.com>
-
- * generic/tkCmds.c (Tk_WinfoObjCmd): Added check for
- TK_ANONYMOUS_WINDOW flag in the [winfo children] subcommand; if
- set, the window will not be printed in the list of children.
-
- * doc/CrtWindow.3: Added entry for Tk_CreateAnonymousWindow.
-
- * generic/tkWindow.c
- (Tk_CreateAnonymousWindow): New API for creating anonymous
- windows. These windows are manipulable from C, but not from Tcl,
- because they have no pathname associated with them. They are used
- initially by widgets that do rubber-band resizing (panedwindow,
- multi-column listbox, etc.), and may be useful for other widgets
- as well (dropbox, combobox).
- (Tk_DestroyWindow): Added check for TK_ANONYMOUS_WINDOW flag when
- determining whether to generate a DestroyNotify event.
-
- * generic/tkStubInit.c:
- * generic/tkDecls.h: Regen'd from tk.decls.
-
- * generic/tk.decls: Added Tk_CreateAnonymousWindow declaration.
-
- * generic/tk.h: Added TK_ANONYMOUS_WINDOW flag for Tk_Window's.
-
-2000-10-04 Eric Melski <ericm@ajubasolutions.com>
-
- * doc/MaintGeom.3: Noted that Tk_MaintainGeometry handles direct
- descendants properly.
-
- * generic/tkGeometry.c (Tk_MaintainGeometry): Added a check for
- the case in which the slave window is a direct descendant of the
- master window. In this case, we need not set up the additional
- infrastructure normally provide by Tk_MaintainGeometry, because we
- can rely on the parent/child relationship to handle it for us
- implicitly. In this case, Tk_MaintainGeometry just calls directly
- to Tk_MoveResizeWindow. This allows geometry managers to simply
- always use Tk_MaintainGeometry to maintain geometry for slaves,
- and avoid doing the direct descendant check themselves.
- (Tk_UnmaintainGeometry): Added a matching check for the direct
- descendant case; in this case, Tk_UnmaintainGeometry simply
- returns immediately.
-
-2000-10-01 Eric Melski <ericm@ajubasolutions.com>
-
- * generic/tkButton.c (ConfigureButton): Added tests for -compound
- option, so that when there is a textvariable and an image, and
- -compound is not none, the button will display both the
- textvariable and the image.
-
- * doc/SetOptions.3: Added note that restoreProc and freeProc may
- be NULL.
-
- * generic/tkConfig.c (Tk_RestoreSavedOptions): For custom options,
- added test that the restoreProc is not NULL, to allow for custom
- options that don't care about supporting Tk_RestoreSavedOptions.
-
-2000-09-29 D. Richard Hipp <drh@hwaci.com>
-
- * generic/tkBitmap.c: Changes to prevent a BadMatch error from the
- Xserver when the same bitmap is used on two or more screens of the
- same display.
-
- * tests/menu.test: Print a warning if the TK_ALT_DISPLAY environment
- variable is not configured so as to test for the bug fix above.
-
- * library/tk.tcl (::tk::SetGrabFocus): "Catch" the grab in case
- another application already holds the grab and the "grab" command
- fails.
-
-2000-09-29 Jeff Hobbs <hobbs@scriptics.com>
-
- * win/Makefile.in: commented use of TESTFLAGS
- * unix/Makefile.in: added TESTFLAGS to test and testlang targets to
- conform with Windows makefile and TEA style.
-
-2000-09-29 Eric Melski <ericm@ajubasolutions.com>
+2002-07-14 Don Porter <dgp@users.sourceforge.net>
- * generic/tkTest.c: Fixed tests to use updated API.
-
- * doc/SetOptions.3:
- * generic/tk.h:
- * generic/tkConfig.c: Changed interface for Tk_CustomOptionSetProc
- and Tk_CustomOptionGetProc; these now take a pointer to the start
- of the widget record, and an integer offset to the slot for the
- option value, instead of just a pointer to the slot. This allows
- more sophisticated options to do interesting things based on other
- data in the widget record.
-
-2000-09-17 Eric Melski <ericm@ajubasolutions.com>
-
- * generic/tk.h: Added declaration of Tk_ObjCustomOption structure,
- used for TK_OPTION_CUSTOM, and typedef's of the functions
- Tk_CustomOptionSetProc, Tk_CustomOptionGetProc,
- Tk_CustomOptionRestoreProc, and Tk_CustomOptionFreeProc, used for
- TK_OPTION_CUSTOM.
-
- * doc/SetOptions.3: Added documentation of TK_OPTION_CUSTOM, and
- section "CUSTOM OPTION TYPES" explaining how to create and use
- custom options.
-
- * tests/config.test: Added tests for custom option type.
-
- * generic/tkTest.c: Added test support for TK_OPTION_CUSTOM to
- TestobjconfigObjCmd. Added CustomOption* functions to implement a
- test custom option.
-
- * generic/tkConfig.c: Added new option type TK_OPTION_CUSTOM,
- which allows the definition of custom option types by creating
- parsing, printing, freeing, and restoring procedures for a custom
- option. This is needed by the text and canvas widgets if they are
- to be fully objectified.
-
-2000-09-07 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/Tk_Init.3:
- * doc/bell.n:
- * doc/loadTk.n: minor doc cleanup
-
-2000-09-06 Eric Melski <ericm@ajubasolutions.com>
-
- * doc/HWNDToWindow.3:
- * doc/GetHWND.3: Changed synopsis to indicate the tkPlatDecls.h
- should be included, not tk.h.
-
- * generic/tkPlatDecls.h: Removed #include <windows.h> for Windows,
- a better solution for now is to update the docs and have extension
- authors #include <tkPlatDecls.h>.
-
- * generic/tk.h: Removed '#include "tkPlatDecls.h"', as the
- incorrect inclusion order between windows.h/tkPlatDecls.h causes
- build conflicts on Windows.
-
- * generic/tkPlatDecls.h: Added #include <windows.h> for Windows,
- so that HWND, etc., are defined properly.
-
-2000-09-06 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/canvas.n: fixed doc bug (ellson). [Bug: 6218]
-
- * README:
- * generic/tk.h:
- * unix/configure.in:
- * unix/tk.spec:
- * win/configure.in: updated to patchlevel 8.4a2
-
- * generic/tkMessage.c (MessageWidgetObjCmd): initialized result to
- avoid pedantic warning.
-
- * generic/tkGrab.c (Tk_GrabObjCmd): changed len arg from size_t to
- int to fix pedantic warning.
-
-2000-09-01 Eric Melski <ericm@ajubasolutions.com>
-
- * win/makefile.vc (install-libraries):
- * win/Makefile.in (install-libraries):
- * unix/Makefile.in (install-libraries): Added tkPlatDecls.h to
- list of header files to install.
-
- * generic/tk.h: Added #include "tkPlatDecls.h", which declares the
- platform specific component of the public Tk stubs API's.
-
-2000-08-29 Eric Melski <ericm@ajubasolutions.com>
-
- * win/tkWinMenu.c (DrawWindowsSystemBitmap): Use scratchDC
- for determining the source's logical coordinates. Patch from
- [Bug: 6134 (Markus Oberhumer)].
-
- * win/tkWinMenu.c (SetDefaults): Compute the indicatorDimensions[]
- under Windows NT/2000 in the same way as under Windows 95/98.
- Patch from [Bug: 6134 (Markus Oberhumer)].
-
- * win/tkWinFont.c (GetScreenFont): Added a memset() to
- pacify memory checkers. Patch from [Bug: 6134 (Markus Oberhumer)].
-
- * library/tkfbox.tcl (::tk::dialog::file::Update): Corrected
- handling of multi-pattern filters (eg, "* *.*"), which was broken
- by the getOpenFile performance patches applied earlier.
-
-2000-08-24 Eric Melski <ericm@ajubasolutions.com>
-
- * doc/toplevel.n:
- * doc/spinbox.n:
- * doc/scrollbar.n:
- * doc/scale.n:
- * doc/menubutton.n:
- * doc/menu.n:
- * doc/listbox.n:
- * doc/entry.n:
- * doc/frame.n:
- * doc/message.n:
- * doc/checkbutton.n:
- * doc/radiobutton.n:
- * doc/button.n:
- * doc/label.n:
- * doc/canvas.n:
- * doc/text.n: Fixed Standard Options section to make best use of
- new tab settings in man.macros.
-
-2000-08-24 Mo DeJong <mdejong@redhat.com>
-
- * unix/README: Update to account for removal of --enable-gcc.
- * unix/configure.in:
- * unix/tcl.m4 (SC_ENABLE_GCC): Remove --enable-gcc option.
- * win/configure.in:
- * win/tcl.m4 (SC_ENABLE_GCC): Remove --enable-gcc option.
- Remove quick hack that provided cross compile support for
- windows builds.
-
-2000-08-23 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkButton.c (ButtonTextVarProc): reversed change below,
- it was not correct.
+ * generic/tclInt.h: Removed declarations that duplicated entries
+ in the (internal) stub table.
+
+ * library/tcltest/tcltest.tcl: Corrected errors in handling of
+ configuration options -constraints and -limitconstraints.
-2000-08-22 Jeff Hobbs <hobbs@scriptics.com>
+ * README: Bumped HEAD to version 8.4b2 so we can
+ * generic/tcl.h: distinguish it from the 8.4b1 release.
+ * tools/tcl.wse.in:
+ * unix/configure*:
+ * unix/tcl.spec:
+ * win/README.binary:
+ * win/configure*:
- * generic/tkButton.c (ButtonTextVarProc): changed order of
- incr/decr of new value object, in case they are equal.
+2002-07-11 Vince Darley <vincentdarley@users.sourceforge.net>
-2000-08-18 Eric Melski <ericm@ajubasolutions.com>
+ * doc/file.n:
+ * win/tclWinFile.c: on Win 95/98/ME the long form of the path
+ is used as a normalized form. This is required because short
+ forms are not a robust representation. The file normalization
+ function has been sped up, but more performance gains might be
+ possible, if speed is still an issue on these platforms.
- * generic/tkImgPhoto.c (ImgPhotoGet): Removed redundant call to
- DitherInstance; this call was formerly being made from
- ImgPhotoGet->ImgPhotoConfigureInstance->DitherInstance, and
- ImgPhotoGet->DitherInstance. The second call was removed.
+2002-07-11 Don Porter <dgp@users.sourceforge.net>
-2000-08-10 Jeff Hobbs <hobbs@scriptics.com>
+ * library/tcltest/tcltest.tcl: Corrected reaction to existing but
+ false ::tcl_interactive.
- * doc/SetOptions.3: added missing ')'.
+ * doc/Hash.3: Overlooked CONST documentation update.
-2000-08-09 Eric Melski <ericm@ajubasolutions.com>
+2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * doc/SetOptions.3: Updated documentation to reflect support for
- TK_OPTION_NULL_OK for TK_OPTION_DOUBLE and TK_OPTION_PIXELS.
+ * generic/tclCkalloc.c: ckalloc() and friends take the block size
+ as an unsigned, so we should use %ud when reporting it in fprintf()
+ and panic().
- * generic/tkConfig.c: Added for TK_OPTION_NULL_OK support for
- TK_OPTION_DOUBLE and TK_OPTION_PIXELS.
+2002-07-11 Miguel Sofer <msofer@users.sourceforge.net>
- * doc/place.n: Updated, reformatted manual entry.
+ * generic/tclCompile.c: now setting local vars undefined at
+ compile time, instead of waiting until the proc is initialized.
+ * generic/tclProc.c: use macro TclSetVarUndefined instead of
+ directly etting the flag.
- * tests/place.test: Added many tests.
+2002-07-11 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tkPlace.c (Tk_PlaceObjCmd): Updated to use Tk
- widget-option management facilities to manage place options (-x,
- -y, etc.), which simplifies the placer code. Added support for
- [place configure pathName] and [place configure pathName -option],
- similar to the behavior of the configure subcommand supported by
- widgets.
+ * tests/cmdAH.test: [file attr -perm] is Unix-only, so add [catch]
+ when not inside a suitably-protected test.
-2000-08-08 Eric Melski <ericm@ajubasolutions.com>
+2002-07-10 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * tests/place.test: Extended test suite to test error returns from
- [place].
+ * tests/unixFCmd.test, tests/fileName.test:
+ * tests/fCmd.test: Removed [exec] of Unix utilities that have
+ equivalents in standard Tcl. [Bug 579268] Also simplified some
+ of unixFCmd.test while I was at it.
- * generic/tkInt.h: Replaced Tk_PlaceCmd prototype with
- Tk_PlaceObjCmd prototype.
+2002-07-10 Don Porter <dgp@users.sourceforge.net>
- * generic/tkWindow.c: Updated [place] command entry to use new
- Tcl_Obj interface.
+ * tests/tcltest.test: Greatly reduced the number of [exec]s, using
+ slave interps instead.
+ * library/tcltest/tcltest.tcl: Fixed bug uncovered in the conversion
+ where a message was written to stdout instead of [outputChannel].
- * generic/tkPlace.c (Tk_PlaceObjCmd): Tcl_Obj'ified [place] command.
+ * tests/basic.test: Cleaned up, constrained, and reduced the
+ * tests/compile.test: amount of [exec] usage in the test suite.
+ * tests/encoding.test:
+ * tests/env.test:
+ * tests/event.test:
+ * tests/exec.test:
+ * tests/io.test:
+ * tests/ioCmd.test:
+ * tests/regexp.test:
+ * tests/regexpComp.test:
+ * tests/socket.test:
+ * tests/tcltest.test:
+ * tests/unixInit.test:
+ * tests/winDde.test:
+ * tests/winPipe.test:
+
+2002-07-10 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * tests/cmdAH.test: Removed [exec] of Unix utilities. [Bug 579211]
+
+ * tests/expr.test: Added tests to make sure that this works.
+ * generic/tclExecute.c (ExprCallMathFunc): Functions should also
+ be able to return wide-ints. [Bug 579284]
+
+2002-07-08 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * tests/socket.test: Fixed bug #578164. The original reason for
+ the was a DNS outage while running the testsuite. Changed [info
+ hostname] to 127.0.0.1 to bypass DNS, knowing that we operate on
+ the local host.
+
+2002-07-08 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/tcltest.n: Fixed incompatibility in [viewFile].
+ * library/tcltest/tcltest.tcl: Corrected docs. Bumped to 2.2.1.
+ * library/tcltest/pkgIndex.tcl: [Bug 578163]
+
+2002-07-08 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * tests/cmdAH.test:
+ * tests/fCmd.test:
+ * tests/fileName.test: tests which rely on 'file link' need a
+ constraint so they don't run on older Windows OS. [Bug 578158]
+ * generic/tclIOUtil.c:
+ * generic/tcl.h:
+ * generic/tclInt.h:
+ * generic/tclTest.c:
+ * mac/tclMacChan.c:
+ * unix/tclUnixChan.c:
+ * win/tclWinChan.c:
+ * doc/FileSystem.3: cleaned up internal handling of
+ Tcl_FSOpenFileChannel to remove duplicate code, and make
+ writing external vfs's clearer and easier. No
+ functionality change. Also clarify that objects with refCount
+ zero should not be passed in to the Tcl_FS API, and prevent
+ segfaults from occuring on such user errors. [Bug 578617]
+
+2002-07-06 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/pkgMkIndex.test: Constrained tests of [load] package indexing
+ to those platforms where the testing shared libraries have been built.
+ [Bug 578166].
+
+2002-07-05 Don Porter <dgp@users.sourceforge.net>
+ * changes: added recent changes
+
+2002-07-05 Reinhard Max <max@suse.de>
+
+ * generic/tclClock.c (FormatClock): Convert the format string to
+ UTF8 before calling TclpStrftime, so that non-ASCII characters
+ don't get mangled when the result string is being converted back.
+ * tests/clock.test: Added a test for that.
+
+2002-07-05 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * unix/Makefile.in (ro-test,ddd,GDB,DDD): Created new targets to
+ allow running the test suite with a read-only current directory,
+ running under ddd instead of gdb, and factored out some executable
+ names for broken sites (like mine) where gdb and ddd are installed
+ with non-standard names...
+
+ * tests/httpold.test: Altered test names to httpold-* to avoid
+ clashes with http.test, and stopped tests from failing when the
+ current directory is not writable...
+
+ * tests/event.test: Stop these tests from failing
+ * tests/ioUtil.test: when the current directory is
+ * tests/regexp.test: not writable...
+ * tests/regexpComp.test:
+ * tests/source.test:
+ * tests/unixFile.test:
+ * tests/unixNotfy.test:
+
+ * tests/unixFCmd.test: Trying to make these test-files
+ * tests/macFCmd.test: not bomb out with an error when
+ * tests/http.test: the current directory is not
+ * tests/fileName.test: writable...
+ * tests/env.test:
-2000-08-07 Eric Melski <ericm@ajubasolutions.com>
+2002-07-05 Jeff Hobbs <jeffh@ActiveState.com>
- * generic/tkWindow.c: Updated [selection] command entry to use
- new Tcl_Obj interface.
+ *** 8.4b1 TAGGED FOR RELEASE ***
- * generic/tkInt.h: Replaced Tk_SelectionCmd prototype with
- Tk_SelectionObjCmd prototype.
+2002-07-04 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * tests/select.test: Updated test suite to recognize standardized
- error messages.
+ * tests/cmdMZ.test (cmdMZ-1.4):
+ * tests/cmdAH.test: More fixing of writable-current-dir
+ assumption. [Bug 575824]
- * generic/tkSelect.c (Tk_SelectionObjCmd): Tcl_Obj'ified
- [selection] command.
+2002-07-04 Miguel Sofer <msofer@users.sourceforge.net>
-2000-08-07 Jeff Hobbs <hobbs@scriptics.com>
+ * tests/basic.test: Same issue as below; fixed [Bug 575817]
+
+2002-07-04 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * doc/cursors.n: changed .SS to more compatible macros.
+ * tests/socket.test:
+ * tests/winPipe.test:
+ * tests/pid.test: Fixed SF Bug #575848. See below for a
+ description the general problem.
+
+ * All the bugs below are instances of the same problem: The
+ testsuite assumes [pwd] = [temporaryDirectory] and writable.
+
+ * tests/iogt.test: Fixed bug #575860.
+ * tests/io.test: Fixed bug #575862.
+ * tests/exec.test:
+ * tests/ioCmd.test: Fixed bug #575836.
+
+2002-07-03 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/pkg1/direct1.tcl: removed
+ * tests/pkg1/pkgIndex.tcl: removed
+ * tests/pkgMkIndex.test: Imported auxilliary files from tests/pkg1
+ into the test file pkgMkIndex.test itself. Formatting fixes.
+
+ * unix/Makefile.in: removed tests/pkg/* from `make dist`
+
+ * tests/pkg/circ1.tcl: removed
+ * tests/pkg/circ2.tcl: removed
+ * tests/pkg/circ3.tcl: removed
+ * tests/pkg/global.tcl: removed
+ * tests/pkg/import.tcl: removed
+ * tests/pkg/pkg1.tcl: removed
+ * tests/pkg/pkg2_a.tcl: removed
+ * tests/pkg/pkg2_b.tcl: removed
+ * tests/pkg/pkg3.tcl: removed
+ * tests/pkg/pkg4.tcl: removed
+ * tests/pkg/pkg5.tcl: removed
+ * tests/pkg/pkga.tcl: removed
+ * tests/pkg/samename.tcl: removed
+ * tests/pkg/simple.tcl: removed
+ * tests/pkg/spacename.tcl: removed
+ * tests/pkg/std.tcl: removed
+ * tests/pkgMkIndex.test: Fixed [Bug 575857] where this test file
+ expected to be able to write to [file join [testsDirectory]
+ pkg]. Part of the fix was to import several auxilliary files
+ into the test file itself.
+
+ * tests/main.test: Cheap fix for [Bugs 575851, 575858]. Avoid
+ * tests/tcltest.test: non-writable . by [cd [temporaryDirectory]].
+
+ * library/auto.tcl: Fix [tcl_findLibrary] to be sure it sets
+ $varName only if a successful library script is found.
+ [Bug 577033]
+
+2002-07-03 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclCompCmds.c (TclCompileCatchCmd): return
+ TCL_OUT_LINE_COMPILE instead of TCL_ERROR: let the failure
+ happen at runtime so that it can be caught [Bug 577015].
+
+2002-07-02 Joe English <jenglish@users.sourceforge.net>
+
+ * doc/tcltest.n: Markup fixes, spellcheck.
+
+2002-07-02 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/tcltest.n: more refinements of the documentation.
+
+ * library/tcltest/tcltest.tcl: Added trace to be sure the stdio
+ constraint is updated whenever the [interpreter] changes.
+
+ * doc/tcltest.n: Reverted [makeFile] and [viewFile] to
+ * library/tcltest/tcltest.tcl: their former behavior, and documented
+ * tests/cmdAH.test: it. Corrected misspelling of hook
+ * tests/event.test: procedure. Restored tests.
+ * tests/http.test:
+ * tests/io.test:
+
+ * library/tcltest/tcltest.tcl: Simplified logic of
+ [GetMatchingFiles] and [GetMatchingDirectories], removing
+ special case processing.
+
+ * doc/tcltest.n: More documentation updates. Reference sections
+ are complete. Only examples need adding.
+
+2002-07-02 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * tests/fCmd.test:
+ * generic/tclCmdAH.c: clearer error msgs for 'file link',
+ as per the man page.
+
+2002-07-01 Joe English <jenglish@users.sourceforge.net>
+
+ * doc/Access.3:
+ * doc/AddErrInfo.3:
+ * doc/Alloc.3:
+ * doc/Backslash.3:
+ * doc/CrtChannel.3:
+ * doc/CrtSlave.3:
+ * doc/Encoding.3:
+ * doc/Eval.3:
+ * doc/FileSystem.3:
+ * doc/Notifier.3:
+ * doc/OpenFileChnl.3:
+ * doc/ParseCmd.3:
+ * doc/RegExp.3:
+ * doc/Tcl_Main.3:
+ * doc/Thread.3:
+ * doc/TraceCmd.3:
+ * doc/Utf.3:
+ * doc/WrongNumArgs.3:
+ * doc/binary.n:
+ * doc/clock.n:
+ * doc/expr.n:
+ * doc/fconfigure.n:
+ * doc/glob.n:
+ * doc/http.n:
+ * doc/interp.n:
+ * doc/lsearch.n:
+ * doc/lset.n:
+ * doc/msgcat.n:
+ * doc/packagens.n:
+ * doc/pkgMkIndex.n:
+ * doc/registry.n:
+ * doc/resource.n:
+ * doc/safe.n:
+ * doc/scan.n:
+ * doc/tclvars.n: Spell-check, fixed typos (Updates from Larry Virden).
+
+2002-07-01 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): Made Solaris use gcc for linking
+ when building with gcc to resolve problems with undefined symbols
+ being present when tcl library used with non-gcc linker at later
+ stage. Symbols were compiler-generated, so it is the compiler's
+ business to define them. [Bug #541181]
+
+2002-07-01 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/tcltest.n: more work in progress updating tcltest docs.
+
+ * library/tcltest/tcltest.tcl: Change [configure -match] to
+ stop treating an empty list as a list of the single pattern "*".
+ Changed the default value to [list *] so default operation
+ remains the same.
+
+ * tests/pkg/samename.tcl: restored. needed by pkgMkIndex.test.
+
+ * library/tcltest/tcltest.tcl: restored writeability testing of
+ -tmpdir, augmented by a special exception for the deafault value.
+
+2002-07-01 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * doc/concat.n: Documented the *real* behaviour of [concat]!
+
+2002-06-30 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/tcltest.n: more work in progress updating tcltest docs.
+
+ * tests/README: Updated the instructions on running and
+ * tests/cmdMZ.test: adding to the test suite. Also updated
+ * tests/encoding.test: several tests, mostly to correctly create
+ * tests/fCmd.test: and destroy any temporary files in the
+ * tests/info.test: [temporaryDirectory] of tcltest.
+ * tests/interp.test:
+
+ * library/tcltest/tcltest.tcl: Stopped checking for writeability
+ of -tmpdir value because no default directory can be guaranteed to
+ be writeable.
+
+ * tests/autoMkindex.tcl: removed.
+ * tests/pkg/samename.tcl: removed.
+ * tests/pkg/magicchar.tcl: removed.
+ * tests/pkg/magicchar2.tcl: removed.
+ * tests/autoMkindex.test: Updated auto_mkIndex tests to use
+ [makeFile] and [removeFile] so tests are done in [temporaryDirecotry]
+ where write access is guaranteed.
+
+ * library/tcltest/tcltest.tcl: Fixed [makeFile] and [viewFile] to
+ * tests/cmdAH.test: accurately reflect a file's contents.
+ * tests/event.test: Updated tests that depended on buggy
+ * tests/http.test: behavior. Also added warning messages
+ * tests/io.test: to "-debug 1" operations to debug test
+ * tests/iogt.test: calls to (make|remove)(File|Directory).
+
+ * unix/mkLinks: `make mklinks` on 6-27 commits.
+
+2002-06-28 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclCompile.h: modified the macro TclEmitPush to not
+ call its first argument repeatedly or pass it to other macros,
+ [Bug 575194] reported by Peter Spjuth.
+
+2002-06-28 Don Porter <dgp@users.sourceforge.net>
+
+ * docs/tcltest.n: Doc revisions in progress.
+ * library/tcltest/tcltest.tcl: Corrected -testdir default value.
+ Was not reliable, and disagreed with docs! Thanks to Hemang Lavana.
+ [Bug 575150]
-2000-08-05 Jeff Hobbs <hobbs@scriptics.com>
+2002-06-28 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * library/safetk.tcl: rationalized the setting of tk_library when
- initialized Tk in a safe interpreter.
+ * unix/tclUnixThrd.c: Renamed the Tcl_Platform* #defines to
+ * unix/tclUnixPipe.c: TclOS* because they are only used
+ * unix/tclUnixFile.c: internally. Also stopped double-#def
+ * unix/tclUnixFCmd.c: of TclOSlstat [Bug #566099, post-rename]
+ * unix/tclUnixChan.c:
+ * unix/tclUnixPort.h:
-2000-08-03 Eric Melski <ericm@ajubasolutions.com>
+ * doc/string.n: Improved documentation for [string last] along
+ lines described in Bug #574799 so it indicates that the supplied
+ index marks the end of the search space.
- * generic/tkWindow.c: Updated "grab" command entry to use
- Tcl_Obj'ified command.
+2002-06-27 Don Porter <dgp@users.sourceforge.net>
- * generic/tkInt.h: Replaced Tk_GrabCmd prototype with
- Tk_GrabObjCmd prototype.
+ * doc/dde.n: Work in progress updating the documentation
+ * doc/http.n: of the packages that come bundled with
+ * doc/msgcat.n: the Tcl source distribution, notably tcltest.
+ * doc/registry.n:
+ * doc/tcltest.n:
- * tests/grab.test: Initial suite of tests for [grab] command.
+ * library/tcltest/tcltest.tcl: Made sure that the TCLTEST_OPTIONS
+ environment variablle configures tcltest at package load time.
- * generic/tkGrab.c (Tk_GrabObjCmd): Tcl_Obj'ified [grab] command.
+2002-06-26 Vince Darley <vincentdarley@users.sourceforge.net>
- * generic/tkInt.h: Removed Tk_AfterCmd function prototype; the
- function does not exist (since 4.0p3). Cleaned up some line
- wrapping.
+ * tests/fileSystem.test:
+ * generic/tclIOUtil.c: fix to handling of empty paths ""
+ which are not claimed by any filesystem (Bug #573758).
+ Ensure good error messages are given in all cases.
+ * tests/cmdAH.test:
+ * unix/tclUnixFCmd.c: fix to bug reported as part of
+ (Patch #566669). Thanks to Taguchi, Takeshi for the report.
- * generic/tk.h: Removed "#define Tk_AfterCmd Tcl_AfterCmd";
- nothing in the core uses Tk_AfterCmd, and Tcl_AfterCmd doesn't exist
- anymore anyway.
-
- * generic/tkInt.h: Replace Tk_BindCmd prototype with
- Tk_BindObjCmd prototype.
-
- * generic/tkWindow.c: Updated "bind" command entry to use
- Tcl_Obj'ified command.
-
- * generic/tkCmds.c (Tk_BindObjCmd): Tcl_Obj'ified [bind] command.
+2002-06-26 Reinhard Max <max@suse.de>
- * tests/bind.test: Tweaked expected error messages for [bindtags]
- to comply with updated error messages.
+ * unix/tclUnixTime.c: Make [clock format] respect locale settings.
+ * tests/clock.test: Bug #565880. ***POTENTIAL INCOMPATIBILITY***
- * generic/tkMenu.c (CloneMenu): Replaced calls to Tk_BindtagsCmd
- with equivalent calls to Tk_BindtagsObjCmd.
+2002-06-26 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkInt.h: Replace Tk_BindtagsCmd prototype with
- Tk_BindtagsObjCmd prototype.
-
- * generic/tkWindow.c: Updated "bindtags" command entry to use
- Tcl_Obj'ified command.
-
- * generic/tkCmds.c (Tk_BindtagsObjCmd): Tcl_Obj'ified [bindtags]
- command.
+ * doc/CrtInterp.3:
+ * doc/StringObj.3: clarifications by Don Porter, bugs #493995 and
+ #500930.
+
+2002-06-24 Don Porter <dgp@users.sourceforge.net>
-2000-08-02 Eric Melski <ericm@ajubasolutions.com>
+ * library/tcltest/tcltest.tcl: Corrected suppression of -verbose skip
+ * tests/tcltest.test: and start by [test -output]. Also
+ corrected test suite errors exposed by corrected code. [Bug 564656]
- * generic/tkCmds.c (Tk_TkwaitObjCmd): Tcl_Obj'ified [tkwait] command.
+2002-06-25 Reinhard Max <max@suse.de>
- * generic/tkWindow.c: Updated "tkwait" command entry to use
- Tcl_Obj'ified command.
+ * unix/tcl.m4: New macro SC_CONFIG_MANPAGES.
+ * unix/configure.in: Added support for symlinks and compression
+ * unix/Makefile.in: when installing the manpages. [Patch 518052]
+ * unix/mkLinks.tcl: Default is still hardlinks and no compression.
- * generic/tkInt.h: Replace Tk_TkwaitCmd prototype with
- Tk_TkwaitObjCmd prototype.
+ * unix/mkLinks: generated
+ * unix/configure:
- * generic/tkGrid.c (Tk_GridCmd): Split [grid] subcommands into
- separate functions instead of inlining them all in Tk_GridCmd.
+ * unix/README: Added documentation for the new features.
-2000-08-01 Eric Melski <ericm@ajubasolutions.com>
+ * unix/tcl.m4 (SC_PATH_TCLCONFIG): Replaced ${exec_prefix}/lib by
+ ${libdir}.
+
+2002-06-25 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * generic/tclUtil.c (TclGetIntForIndex): Fix of critical bug
+ #533364 generated when the index is bad and the result is a shared
+ object. The T_ASTO(T_GOR, ...) idiom likely exists elsewhere
+ though. Also removed some cruft that just complicated things to
+ no advantage.
+ (SetEndOffsetFromAny): Same fix, though this wasn't on the path
+ excited by the bug.
+
+2002-06-24 Don Porter <dgp@users.sourceforge.net>
+
+ * library/tcltest/tcltest.tcl: Implementation of TIP 101. Adds
+ * tests/parseOld.test: and exports a [configure] command
+ * tests/tcltest.test: from tcltest.
+
+2002-06-22 Don Porter <dgp@users.sourceforge.net>
+
+ * changes: updated changes file for 8.4b1 release.
+
+ * library/tcltest/tcltest.tcl: Corrections to tcltest and the
+ * tests/basic.test: Tcl test suite so that a test
+ * tests/cmdInfo.test: with options -constraints knownBug
+ * tests/compile.test: -limitConstraints 1 only tests the
+ * tests/encoding.test: knownBug tests. Mostly involves
+ * tests/env.test: replacing direct access to the
+ * tests/event.test: testConstraints array with calls
+ * tests/exec.test: to the testConstraint command
+ * tests/execute.test: (which requires tcltest version 2)
+ * tests/fCmd.test:
+ * tests/format.test:
+ * tests/http.test:
+ * tests/httpold.test:
+ * tests/ioUtil.test:
+ * tests/link.test:
+ * tests/load.test:
+ * tests/namespace.test:
+ * tests/pkgMkIndex.test:
+ * tests/reg.test:
+ * tests/result.test:
+ * tests/scan.test:
+ * tests/stack.test:
+
+2002-06-22 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * tools/tcl.wse.in (Disk Label), unix/tcl.spec (version):
+ * win/README.binary, README, win/configure.in, unix/configure.in:
+ * generic/tcl.h (TCL_RELEASE_*, TCL_PATCH_LEVEL): Bump to beta1.
+
+2002-06-21 Joe English <jenglish@users.sourceforge.net>
+
+ * generic/tclCompExpr.c:
+ * generic/tclParseExpr.c: LogSyntaxError() should reset
+ the interpreter result [Bug 550142 "Tcl_ExprObj -> abort"]
+
+2002-06-21 Don Porter <dgp@users.sourceforge.net>
+
+ * unix/Makefile.in: Updated all package install directories
+ * win/Makefile.in: to match current Major.minor versions
+ * win/makefile.bc: of the packages. Added tcltest package
+ * win/makefile.vc: to installation on Windows.
+
+ * library/init.tcl: Corrected comments and namespace style
+ issues. Thanks to Bruce Stephens. [Bug 572025]
+
+2002-06-21 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * tests/cmdAH.test: Added TIP#99 implementation
+ * tests/fCmd.test: of 'file link'. Supports creation
+ * tests/fileName.test: of symbolic and hard links in the
+ * tests/fileSystem.test: native filesystems and in vfs's,
+ * generic/tclTest.c: when the individual filesystem
+ * generic/tclCmdAH.c: supports the concept.
+ * generic/tclIOUtil.c:
+ * generic/tcl.h:
+ * generic/tcl.decls:
+ * doc/FileSystem.3:
+ * doc/file.n:
+ * mac/tclMacFile.c:
+ * unix/tclUnixFile.c:
+ * win/tclWinFile.c: Also enhanced speed of 'file normalize' on
+ Windows.
- * generic/tkInt.h: Replaced prototype for Tk_MessageCmd with
- prototype for Tk_MessageObjCmd.
+2002-06-20 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkWindow.c: Marked message command as using the new
- MessageObjCmd instead of the old MessageCmd.
+ * generic/tclBasic.c (TclEvalObjvInternal): fix for [Bug 571385]
+ in the implementation of TIP#62 (command tracing). Vince Darley,
+ Hemang Lavana & Don Porter: thanks.
- * tests/message.test: Added tests for the message widget.
+2002-06-20 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkMessage.c: Obj'ified the message widget.
+ * generic/tclExecute.c (TclCompEvalObj): clarified and simplified
+ the logic for compilation/recompilation.
- * generic/tkInt.h: Removed prototype for Tk_ClipboardCmd, added
- prototype for Tk_ClipboardObjCmd.
+2002-06-19 Joe English <jenglish@users.sourceforge.net>
+ * doc/file.n: Fixed indentation. No substantive changes.
- * generic/tkWindow.c: Updated function pointers for clipboard
- command to use Tcl_Obj version.
+2002-06-19 Jeff Hobbs <jeffh@ActiveState.com>
- * tests/clipboard.test: Updated tests to expect standard error
- messages.
+ * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): get the resultPtr again
+ as the Tcl_ObjSetVar2 may cause the result to change.
+ [Patch #558324] (watson)
- * generic/tkClipboard.c (Tk_ClipboardObjCmd): Obj'ified
- Tk_ClipboardCmd -> Tk_ClipboardObjCmd.
+2002-06-19 Miguel Sofer <msofer@users.sourceforge.net>
-2000-07-28 Eric Melski <ericm@ajubasolutions.com>
+ * generic/tclExecute.c (TEBC): removing unused "for(;;)" loop;
+ improved comments; re-indentation.
- * unix/tkUnixButton.c (TkpDisplayButton): Added bits to change
- the indicator color when radio-/check-buttons are disabled. This
- reduces the visual incongruity when a group of these controls are
- disabled together.
+2002-06-18 Miguel Sofer <msofer@users.sourceforge.net>
- * win/tkWinMenu.c (ReconfigureWindowsMenu): Added MF_GRAYED bit
- for disabled menu entries, to ensure that those which are drawn by
- the system are shown grayed (such as entries on menubars) [Bug: 4372].
+ * generic/tclExecute.c (TEBC):
+ - elimination of duplicated code in the non-immediate INST_INCR
+ instructions.
+ - elimination of 103 (!) TclDecrRefCount macros. The different
+ instructions now jump back to a common "DecrRefCount zone" at
+ the top of the loop. The macro "ADJUST_PC" was replaced by two
+ macros "NEXT_INST_F" and "NEXT_INST_V" that take three params
+ (pcAdjustment, # of stack objects to discard, resultObjPtr
+ handling flag). The only instructions that retain a
+ TclDecrRefCount are INST_POP (for speed), the common code for
+ the non-immediate INST_INCR, INST_FOREACH_STEP and the two
+ INST_LSET.
- * doc/label.n: Added -disabledforeground to list of options [Bug:
- 6053].
+ The object size of tclExecute.o was reduced by approx 20% since
+ the start of the consolidation drive, while making room for some
+ peep-hole optimisation at runtime.
- * mac/tkMacDefault.h:
- * unix/tkUnixDefault.h: Added default values for listbox
- disabledforeground and state.
+2002-06-18 Miguel Sofer <msofer@users.sourceforge.net>
- * win/tkWinDefault.h: Changed default listbox background color to
- white and listbox selection borderwidth to 0, in keeping with the
- "Microsoft Windows User Experience"; added default values for
- listbox disabledforeground and listbox state.
+ * generic/tclExecute.c (TEBC, INST_DONE): small bug in the panic
+ code for tcl-stack corruption.
- * doc/listbox.n: Added documentation for -state option.
+2002-06-17 David Gravereaux <davygrvy@pobox.com>
- * generic/tkListbox.c: Added support for -state to listbox. [RFE:
- 6052].
+ Trims to support the removal of RESOURCE_INCLUDED from rc
+ scripts from FR #565088.
- * tests/listbox.test: Tests for listbox disabled state.
+ * generic/tcl.h: moved the #ifndef RC_INVOKED start block up in
+ the file. rc scripts don't need to know thread mutexes.
-2000-07-27 Mo DeJong <mdejong@redhat.com>
+ * win/tcl.rc:
+ * win/tclsh.rc: removed the #define RESOURCE_INCLUDED to let the
+ built-in -DRC_INVOKED to the work.
- * win/configure.in: TCL_STUB_LIB_FLAG and
- TK_STUB_LIB_FLAG should not include ${TCL_DBGX}
- in win/tkConfig.sh, fix that.
+2002-06-17 Jeff Hobbs <jeffh@ActiveState.com>
-2000-07-25 Joe English <jenglish@flightlab.com>
- * doc: CanvPsY.3, ConfigWidg.3, CrtImgType.3, CrtItemType.3,
- FontId.3, GetFont.3, canvas.n, font.n, options.n, text.n:
- Documentation fix: Replaced references to XFontStruct *
- and Tk_FontStruct with Tk_Font.
+ * doc/CrtTrace.3: Added TIP#62 implementation of command
+ * doc/trace.n: execution tracing [FR #462580] (lavana).
+ * generic/tcl.h: This includes enter/leave tracing as well
+ * generic/tclBasic.c: as inter-procedure stepping.
+ * generic/tclCmdMZ.c:
+ * generic/tclCompile.c:
+ * generic/tclExecute.c:
+ * generic/tclInt.decls:
+ * generic/tclInt.h:
+ * generic/tclIntDecls.h:
+ * generic/tclStubInit.c:
+ * generic/tclVar.c:
+ * tests/trace.test:
+
+2002-06-17 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * win/tclWinPipe.c (BuildCommandLine): Fixed bug #554068 ([exec]
+ on windows did not treat { in filenames well.). Bug reported by
+ Vince Darley <vincentdarley@users.sourceforge.net>, patch
+ provided by Vince too.
+
+2002-06-17 Joe English <jenglish@users.sourceforge.net>
+
+ * generic/tcl.h: #ifdef logic for K&R C backwards compatibility
+ changed to assume modern C by default. See SF FR #565088 for
+ full details.
+
+2002-06-17 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/msgcat.n: Corrected en_UK references to en_GB. UK is not
+ a country designation recognized in ISO 3166.
+
+ * library/msgcat/msgcat.tcl: More Windows Registry locale codes
+ from Bruno Haible.
+
+ * doc/msgcat.n:
+ * library/msgcat/msgcat.tcl:
+ * library/msgcat/pkgIndex.tcl:
+ * tests/msgcat.test: Revised locale initialization to interpret
+ environment variable locale values according to XPG4, and to
+ recognize the LC_ALL and LC_MESSAGES values over that of LANG.
+ Also added many Windows Registry locale values to those
+ recognized by msgcat. Revised tests and docs. Bumped to
+ version 1.3. Thanks to Bruno Haible for the report and
+ assistance crafting the solution. [Bug 525522, 525525]
+
+2002-06-16 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclCompile.c (TclCompileTokens): a better algorithm for
+ the previous bug fix.
+
+2002-06-16 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclCompile.c (TclCompileTokens):
+ * tests/compile.test: [Bug 569438] in the processing of dollar
+ variables; report by Georgios Petasis.
+
+2002-06-16 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c: bug in the consolidation of the
+ INCR_..._STK instructions; the bug could not be exercised as the
+ (faulty) instruction INST_INCR_ARRAY_STK was never compiled-in
+ (related to [Bug 569438]).
+
+2002-06-14 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): runtime peep-hole
+ optimisation of variables (INST_STORE, INST_INCR) and commands
+ (INST_INVOKE); faster check for the existence of a catch.
+ (TclExecuteByteCode): runtime peep-hole optimisation of
+ comparisons.
+ (TclExecuteByteCode): runtime peep-hole optimisation of
+ INST_FOREACH - relies on peculiarities of the code produced by the
+ bytecode compiler.
-2000-07-24 Eric Melski <ericm@ajubasolutions.com>
+2002-06-14 David Gravereaux <davygrvy@pobox.com>
- * tests/text.test: Added tests for -regexp -nocase searches with
- backslash character classes.
+ * win/rules.vc: The test for compiler optimizations was in error.
+ Thanks goes to Roy Terry <royterry@earthlink.net> for his
+ assistance with this.
- * generic/tkText.c (TextSearchCmd): Text search did not work
- properly when -regexp and -nocase were used, in combination with
- backslash character classes represented by capital letters (ie,
- \W, \M); altered implementation of -regexp -nocase searches to use
- new regexp interfaces to fix this problem. [Bug: 5988].
+2002-06-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
-2000-07-21 Eric Melski <ericm@ajubasolutions.com>
+ * doc/trace.n, tests/trace.test:
+ * generic/tclCmdMZ.c (Tcl_TraceObjCmd,TclTraceCommandObjCmd)
+ (TclTraceVariableObjCmd): Changed references to "trace list" to
+ "trace info" as mandated by TIP#102.
+
+2002-06-13 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): consolidated code for
+ the conditional branch instructions.
+
+2002-06-13 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): fixed the previous
+ patch - wouldn't compile with TCL_COMPILE_DEBUG set.
+
+2002-06-13 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): consolidated the
+ handling of exception returns to INST_INVOKE and INST_EVAL, as
+ well as most of the code for INST_CONTINUE and INST_BREAK, in the
+ new jump target "processExceptionReturn".
+
+2002-06-13 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c (TclExecuteByteCode): consolidated variable
+ handling opcodes, replaced redundant code with some 'goto'. All
+ store/append/lappend opcodes on the same data type now share the
+ main code; same with incr opcodes.
+ * generic/tclVar.c: added the bit TCL_TRACE_READS to the possible
+ flags to Tcl_SetVar2Ex - it causes read traces to be fired prior
+ to setting the variable. This is used in the core for [lappend].
+
+ ***NOTE*** the usage of TCL_TRACE_READS in Tcl_(Obj)?GetVar.* is
+ not documented; there, it causes the call to create the variable
+ if it does not exist. The new usage in Tcl_(Obj)?SetVar.* remains
+ undocumented too ...
+
+2002-06-13 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * tests/fCmd.test:
+ * tests/winFile.test:
+ * tests/fileSystem.test:
+ * generic/tclTest.c:
+ * generic/tclCmdAH.c:
+ * generic/tclIOUtil.c:
+ * doc/FileSystem.3:
+ * mac/tclMacFile.c:
+ * unix/tclUnixFile.c:
+ * win/tclWinFile.c: fixed up further so both compiles and
+ actually works with VC++ 5 or 6.
+ * win/tclWinInt.h:
+ * win/tclWin32Dll.c: cleaned up code and vfs tests and
+ added tests for the internal changes of 2002-06-12, to see
+ whether WinTcl on NTFS can coexist peacefully with links
+ in the filesystem. Added new test command 'testfilelink'
+ to enable the newer code to be tested.
+ * tests/fCmd.test: (made certain tests of 'testfilelink' not
+ run on unix).
+
+2002-06-12 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * tclBasic.c (Tcl_DeleteTrace): fixed [Bug 568123] (thanks to
+ Hemang Lavana)
+
+2002-06-12 Jeff Hobbs <jeffh@ActiveState.com>
- * tests/text.test: Added tests for searching when text is elided.
+ * win/tclWinFile.c: corrected the symbolic link handling code to
+ allow it to compile. Added real definition of REPARSE_DATA_BUFFER
+ (found in winnt.h). Most of the added definitions appear to have
+ correct, cross-Win-version equivalents in winnt.h and should be
+ removed, but just making things "work" for now.
- * generic/tkText.c (TextSearchCmd): Text search was not returning
- the correct index when the search covered (but did not search)
- elided characters; corrected this by adjusting the match index by
- the number of elided characters preceeding the start of the match,
- just as is done with embedded windows, etc. [Bug: 5470].
+2002-06-12 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tclIOUtil.c:
+ * generic/tcl.decls:
+ * generic/tclDecls.h: made code for Tcl_FSNewNativePath
+ agree with man pages.
+
+ * doc/FileSystem.3: clarified the circumstances under which
+ certain functions are called in the presence of symlinks.
+
+ * win/tclWinFile.c:
+ * win/tclWinPort.h:
+ * win/tclWinInt.h:
+ * win/tclWinFCmd.c: Fix for Windows to allow 'file lstat',
+ 'file type', 'glob -type l', 'file copy', 'file delete',
+ 'file normalize', and all VFS code to work correctly in the
+ presence of symlinks (previously Tcl's behaviour was not very
+ well defined). This also fixes possible serious problems in
+ all versions of WinTcl where 'file delete' on a NTFS symlink
+ could delete the original, not the symlink.
+ Note: symlinks cannot yet be created in pure Tcl.
+
+2002-06-11 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclBasic.c:
+ * generic/tclCompCmds.c:
+ * generic/tclInt.h: reverted the new compilation functions;
+ replaced by a more general approach described below.
+
+ * generic/tclCompCmds.c:
+ * generic/tclCompile.c: made *all* compiled variable access
+ attempts create an indexed variable - even get or incr without
+ previous set. This allows indexed access to local variables that
+ are created and set at runtime, for example by [global], [upvar],
+ [variable], [regexp], [regsub].
+
+2002-06-11 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * doc/global.n:
+ * doc/info.n:
+ * test/info.test:
+ * generic/tclCmdIL.c: fix for [Bug 567386], [info locals] was
+ reporting some linked variables.
+
+ * generic/tclBasic.c:
+ * generic/tclCompCmds.c:
+ * generic/tclInt.h: added compile functions for [global],
+ [variable] and [upvar]. They just declare the new local variables,
+ the commands themselves are not compiled-in. This gives a notably
+ faster read access to these linked variables.
+
+2002-06-11 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclExecute.c: optimised algorithm for exception range
+ lookup; part of [Patch 453709].
+
+2002-06-10 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * unix/tclUnixFCmd.c: fixed [Bug #566669]
+ * generic/tclIOUtil.c: improved and sped up handling of
+ native paths (duplication and conversion to normalized paths),
+ particularly on Windows.
+ * modified part of above commit, due to problems on Linux.
+ Will re-examine bug report and evaluate more closely.
+
+2002-06-07 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/tcltest.test: More corrections to test suite so that tests
+ of failing [test]s don't show up themselves as failing tests.
+
+2002-06-07 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * generic/tclExecute.c: Tidied up headers in relation to float.h
+ to cut the cruft and ensure DBL_MAX is defined since doubles seem
+ to be the same size everywhere; if the assumption isn't true, the
+ variant platforms had better have run configure...
+
+ * unix/tclUnixPort.h (EOVERFLOW): Added code to define it if it
+ wasn't previously defined. Also some other general tidying and
+ adding of comments. [Tcl bugs 563122, 564595]
+ * compat/tclErrno.h: Added definition for EOVERFLOW copied from
+ Solaris headers; I've been unable to find any uses of EFTYPE,
+ which was the error code previously occupying the slot, in Tcl, or
+ any definition of it in the Solaris headers.
+
+2002-06-06 Mo DeJong <mdejong@users.sourceforge.net>
+
+ * unix/dltest/Makefile.in: Remove hard coded CFLAGS=-g
+ and add CFLAGS_DEBUG, CFLAGS_OPTIMIZE, and
+ CFLAGS_DEFAULT varaibles. [Tcl bug 565488]
+
+2002-06-06 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/tcltest.test: Corrections to test suite so that tests
+ of failing [test]s don't show up themselves as failing tests.
+
+ * tests/io.test: Fixed up namespace variable resolution issues
+ revealed by running test suite with "-singleproc 1".
+
+ * doc/tcltest.n:
+ * library/tcltest/tcltest.tcl:
+ * tests/tcltest.test: Several updates to tcltest.
+ 1) changed to lazy initialization of test constraints
+ 2) deprecated [initConstraintsHook]
+ 3) repaired badly broken [limitConstraints].
+ 4) deprecated [threadReap] and [mainThread]
+ [Patch 512214, Bug 558742, Bug 461000, Bug 534903]
+
+2002-06-06 Daniel Steffen <das@users.sourceforge.net>
+
+ * unix/tclUnixThrd.c (TclpReaddir, TclpLocaltime, TclpGmtime):
+ added mutex wrapped calls to readdir, localtime & gmtime in
+ case their thread-safe *_r counterparts are not available.
+ * unix/tcl.m4: added configure check for readdir_r
+ * unix/tcl.m4 (Darwin): set TCL_DEFAULT_ENCODING to utf-8 on
+ MacOSX (where posix file apis expect utf-8, not iso8859-1).
+ * unix/configure: regen
+ * unix/Makefile.in: set DYLD_LIBRARY_PATH in parallel
+ to LD_LIBRARY_PATH for MacOSX dynamic linker.
+ * generic/tclEnv.c (TclSetEnv): fix env var setting on
+ MacOSX (adapted from patch #524352 by jkbonfield).
-2000-07-21 Mo DeJong <mdejong@redhat.com>
+2002-06-05 Don Porter <dgp@users.sourceforge.net>
- * win/configure.in: Add TK_STUB_LIB_FLAG and
- TK_BUILD_STUB_LIB_SPEC. These are needed to build a stub enabled
- extension.
+ * doc/Tcl_Main.3: Documented $tcl_rcFileName and added more
+ clarifications about the intended use of Tcl_Main(). [Bug 505651]
-2000-07-20 Eric Melski <ericm@ajubasolutions.com>
+2002-06-05 Daniel Steffen <das@users.sourceforge.net>
- * unix/tkUnixDraw.c (TkScrollWindow): Replaced a use of a trinary
- operator with an if/else, to avoid build problems on some
- platforms [Bug: 5819].
+ * generic/tclFileName.c (TclGlob): mac specific fix to
+ recent changes in 'glob -tails' handling.
+ * mac/tclMacPort.h:
+ * mac/tclMacChan.c: fixed TIP#91 bustage.
+ * mac/tclMacResource.c (Tcl_MacConvertTextResource): added utf
+ conversion of text resource contents.
+ * tests/macFCmd.test (macFCmd-1.2): allow CWIE creator.
- * win/makefile.vc: Applied patch from Don Porter to enhance nmake
- support on NT/Alpha [RFE: 5939].
+2002-06-04 Don Porter <dgp@users.sourceforge.net>
-2000-07-19 Eric Melski <ericm@ajubasolutions.com>
+ * library/tcltest/tcltest.tcl:
+ * tests/init.test:
+ * tests/tcltest.test: Added more TIP 85 tests from Arjen Markus.
+ Converted tcltest.test to use a private namespace. Fixed bugs in
+ [tcltest::Eval] revealed by calling [tcltest::test] from a non-global
+ namespace, and namespace errors in init.test.
- * library/text.tcl: Enhanced <Tab> binding to behave like normal
- <Tab> bindings when the text widget is disabled (ie, it advances
- focus to the next widget).
+2002-06-04 Mo DeJong <mdejong@users.sourceforge.net>
- * generic/tkText.c (TextSearchCmd): Added a test for a NULL
- segment pointer when doing backwards searches for "" on an empty
- text widget. [Bug: 6007].
+ * win/README: Update msys+mingw URL.
-2000-07-18 Mo DeJong <mdejong@redhat.com>
+2002-06-03 Don Porter <dgp@users.sourceforge.net>
- * unix/aclocal.m4: Use tcl.m4.
+ * doc/tcltest.n:
+ * library/tcltest/tcltest.tcl:
+ * library/tcltest/pkgIndex.tcl:
+ * tests/tcltest.test: Implementation of TIP 85. Allows tcltest
+ users to add new legal values of the -match option to [test],
+ associating each with a Tcl command that does the matching of
+ expected results with actual results of tests. Thanks to
+ Arjen Markus. => tcltest 2.1 [Patch 521362]
- * unix/configure.in: Properly quote LOCALES variable. Properly quote
- argument to m4 macro.
-
- * unix/tcl.m4: Add updated file from tcl.
-
- * win/tcl.m4: Updated file from tcl.
+2002-06-03 Miguel Sofer <msofer@users.sourceforge.net>
-2000-07-18 Eric Melski <ericm@ajubasolutions.com>
+ * doc/namespace.n: added description of [namepace forget]
+ behaviour for unqualified patterns [Bug 559268]
- * library/tkfbox.tcl: Fixed keyboard navigation in the iconlist.
+2002-06-03 Miguel Sofer <msofer@users.sourceforge.net>
- * unix/configure.in (MAKE_LIB): Corrected definition of MAKE_LIB
- for shared builds, with patch from Mike Hopkirk.
+ * generic/tclExecute.c: reverting an accidental modification in
+ the last commit.
-2000-07-18 Mo DeJong <mdejong@redhat.com>
+2002-06-03 Miguel Sofer <msofer@users.sourceforge.net>
- * win/Makefile.in: Fix TCL_GENERIC_DIR variable
- so that it uses the TK_SRC_DIR in the same way
- as the unix version.
+ * doc/Tcl.n: clarify the empty variable name issue ([Bug 549285]
+ reported by Tom Krehbiel, patch by Don Porter).
-2000-07-17 David Gravereaux <davygrvy@ajubasolutions.com>
+2002-05-31 Don Porter <dgp@users.sourceforge.net>
- * generic/tkConsole.c: Added comments for a Win2K OS bug with
- GetStdHandle(STD_OUTPUT_HANDLE). No change was done to the code
- as the resulting behaviour of ShouldUseConsoleChannel() was
- correct, anyways. [BUG: 5971]
+ * library/package.tcl: Fixed leak of slave interp in [pkg_mkIndex].
+ Thanks to Helmut for report. [Bug 550534]
-2000-07-17 Eric Melski <ericm@scriptics.com>
+ * tests/io.test:
+ * tests/main.test: Use the "stdio" constraint to control whether
+ an [open "|[interpreter]"] is attempted.
- * generic/tkStubImg.c (Tk_InitImageArgs): Applied patch from [Bug:
- 5990], from Anselm Lingnau, which correctly sets the value of
- useNewImage to 0 when the new image system is not to be used,
- instead of leaving it at -1, which causes the check to be
- performed more times than is really necessary.
-
- * library/bgerror.tcl: Fixed a typo in one of the bgerror dialog
- label.
-
- * library/msgs/it.msg: Italian message catalog, from Paolo
- Brutti. [RFE: 6012].
-
-2000-07-07 Eric Melski <ericm@ajubasolutions.com>
-
- * library/msgs/el.msg: Greek message catalog, from George Petasis.
+ * generic/tclExecute.c (TclMathInProgress,TclExecuteByteCode
+ ExprCallMathFunc):
+ * generic/tclInt.h (TclMathInProgress):
+ * unix/Makefile.in (tclMtherr.*):
+ * unix/configure.in (NEED_MATHERR):
+ * unix/tclAppInit.c (matherr):
+ * unix/tclMtherr.c (removed file):
+ * win/tclWinMtherr.c (_matherr): Removed internal routine
+ TclMathInProgress and Unix implementation of matherr(). These
+ are now obsolete, dealing with very old versions of the C math
+ library. Windows version is retained in case Borland compilers
+ require it, but it is inactive. Thanks to Joe English.
+ [Bug 474335, Patch 555635].
+ * unix/configure: regen
-2000-07-07 Mo DeJong <mdejong@redhat.com>
+2002-05-30 Miguel Sofer <msofer@users.sourceforge.net>
- * win/configure.in: Fix subst of TK_SHARED_BUILD
- variable in tkConfig.sh.in. Fix definition of
- TK_SRC_DIR variable so that it matches the
- unix version.
+ * generic/tclCompExpr.c:
+ * generic/tclCompile.c:
+ * generic/tclCompile.h: removed exprIsJustVarRef and
+ exprIsComparison from the ExprInfo and CompileEnv structs. These
+ were set, but not used since dec 1999 [Bug 562383].
-2000-07-05 Mo DeJong <mdejong@redhat.com>
+2002-05-30 Vince Darley <vincentdarley@users.sourceforge.net>
- * generic/tkFileFilter.c (AddClause): Cast to match function prototype.
- * win/stubs.c (_XInitImageFuncPtrs): Add return value for function.
- * win/tkWinButton.c (buttonStyles, ButtonBindProc, ComputeStyle):
- Remove unused declarations.
- * win/tkWinColor.c (GetColorByName, GetColorByValue): Remove unused
- function declarations.
- * win/tkWinDialog.c (TrySetDirectory): Remove unused function
- declaration.
- * win/tkWinEmbed.c (TkWinEmbeddedEventProc): Cast to match function
- prototype.
- * win/tkWinMenu.c (winMenuMutex, MenuExitProc): Remove unused
- declaration.
- * win/tkWinWindow.c (StackWindow): Remove unused declaration.
- * win/tkWinWm.c (ConfigureEvent): Remove unused declaration.
- * win/tkWinX.c (winXMutex): Remove unused declaration.
- * xlib/ximage.c (XCreateBitmapFromData): Cast to match function
- prototype.
+ * generic/tclFileName.c (TclGlob): fix to longstanding
+ 'knownBug' in fileName tests 15.2-15.4, and fix to a new
+ Tcl 8.4 bug in certain uses of 'glob -tails'.
+ * tests/fileName.test: removed 'knownBug' flag from some tests,
+ added some new tests for above bugs.
+
+2002-05-29 Jeff Hobbs <jeffh@ActiveState.com>
-2000-07-05 Eric Melski <ericm@ajubasolutions.com>
+ * unix/configure: regen'ed
+ * unix/configure.in: replaced bigendian check with autoconf
+ standard AC_C_BIG_ENDIAN, which defined WORDS_BIGENDIAN on
+ bigendian systems.
+ * generic/tclUtf.c (Tcl_UniCharNcmp):
+ * generic/tclInt.h (TclUniCharNcmp): use WORDS_BIGENDIAN instead of
+ TCL_OPTIMIZE_UNICODE_COMPARE to enable memcmp alternative.
+
+ * generic/tclExecute.c (TclExecuteByteCode INST_STR_CMP):
+ * generic/tclCmdMZ.c (Tcl_StringObjCmd): changed the case for
+ choosing the Tcl_UniCharNcmp compare to when both objs are of
+ StringType, as benchmarks show that is the optimal check (both
+ bigendian and littleendian systems).
+
+2002-05-29 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclMain.c: Removed "dummy" reference to Tcl_LinkVar.
+ It is no longer needed since Tcl_Main() now actually calls
+ Tcl_LinkVar(). Thanks to Joe English for pointing that out.
+
+2002-05-29 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * generic/tclExecute.c (TclExecuteByteCode):
+ * generic/tclCmdMZ.c (Tcl_StringObjCmd): Use the macro version.
+ * generic/tclInt.h (TclUniCharNcmp): Optimised still further with
+ a macro for use in sensitive places like tclExecute.c
+
+ * generic/tclUtf.c (Tcl_UniCharNcmp): Use new flag to figure out
+ when we can use an optimal comparison scheme, and default to the
+ old scheme in other cases which is at least safe.
+ * unix/configure.in (TCL_OPTIMIZE_UNICODE_COMPARE): New optional
+ flag that indicates when we can use memcmp() to compare Unicode
+ strings (i.e. when the high-byte of a Tcl_UniChar precedes the
+ low-byte.)
+
+2002-05-29 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclInt.decls:
+ * generic/tclIntDecls.h:
+ * generic/tclStubInit.c:
+ * generic/tclUtf.c: added TclpUtfNcmp2 private command that
+ mirrors Tcl_UtfNcmp, but takes n in bytes, not utf-8 chars. This
+ provides a faster alternative for comparing utf strings internally.
+ (Tcl_UniCharNcmp, Tcl_UniCharNcasecmp): removed the explicit end
+ of string check as it wasn't correct for the function (by doc and
+ logic).
+
+ * generic/tclCmdMZ.c (Tcl_StringObjCmd): reworked the string equal
+ comparison code to use TclpUtfNcmp2 as well as short-circuit for
+ equal objects or unequal length strings in the equal case.
+ Removed the use of goto and streamlined the other parts.
+
+ * generic/tclExecute.c (TclExecuteByteCode): added check for
+ object equality in the comparison instructions. Added
+ short-circuit for != length strings in INST_EQ, INST_NEQ and
+ INST_STR_CMP. Reworked INST_STR_CMP to use TclpUtfNcmp2 where
+ appropriate, and only use Tcl_UniCharNcmp when at least one of the
+ objects is a Unicode obj with no utf bytes.
+
+ * generic/tclCompCmds.c (TclCompileStringCmd): removed error
+ creation in code that no longer throws an error.
+
+ * tests/string.test:
+ * tests/stringComp.test: added more string comparison checks.
+
+ * tests/clock.test: better qualified 9.1 constraint check for %s.
+
+2002-05-28 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclThreadAlloc.c (TclpRealloc, TclpFree): protect
+ against the case when NULL is based.
+
+ * tests/clock.test: added clock-9.1
+ * compat/strftime.c:
+ * generic/tclClock.c:
+ * generic/tclInt.decls:
+ * generic/tclIntDecls.h:
+ * unix/tclUnixTime.c: fix for Windows msvcrt mem leak caused by
+ using an env(TZ) setting trick for in clock format -gmt 1. This
+ also makes %s seem to work correctly with -gmt 1 as well as
+ making it a lot faster by avoid the env(TZ) hack. TclpStrftime
+ now takes useGMT as an arg. [Bug #559376]
+
+2002-05-28 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tclIOUtil.c: fixes to Tcl_FSLoadFile when called on
+ a file inside a vfs. This should avoid leaving temporary
+ files sitting around on exit. [Bug #545579]
+
+2002-05-27 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * win/tclWinError.c: Added comment on conversion of
+ ERROR_NEGATIVE_SEEK because that is a mapping that really belongs,
+ and not a catch-all case.
+ * win/tclWinPort.h (EOVERFLOW): Should be either EFBIG or EINVAL
+ * generic/tclPosixStr.c (Tcl_ErrnoId, Tcl_ErrnoMsg): EOVERFLOW can
+ potentially be a synonym for EINVAL.
+
+2002-05-24 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ === Changes due to TIP#91 ===
+
+ * win/tclWinPort.h: Added declaration of EOVERFLOW.
+ * doc/CrtChannel.3: Added documentation of wideSeekProc.
+ * generic/tclIOGT.c (TransformSeekProc, TransformWideSeekProc):
+ Adapted to use the new channel mechanism.
+ * unix/tclUnixChan.c (FileSeekProc, FileWideSeekProc): Renamed
+ FileSeekProc to FileWideSeekProc and created new FileSeekProc
+ which has the old-style interface and which errors out with
+ EOVERFLOW when the returned file position can't fit into the
+ return type (int for historical reasons.)
+ * win/tclWinChan.c (FileSeekProc, FileWideSeekProc): Renamed
+ FileSeekProc to FileWideSeekProc and created new FileSeekProc
+ which has the old-style interface and which errors out with
+ EOVERFLOW when the returned file position can't fit into the
+ return type (int for historical reasons.)
+ * mac/tclMacChan.c (FileSeek): Reverted to old interface; Macs
+ lack large-file support because I can't see how to add it.
+ * generic/tclIO.c (Tcl_Seek, Tcl_Tell): Given these functions
+ knowledge of the new arrangement of channel types.
+ (Tcl_ChannelVersion): Added recognition of new version code.
+ (HaveVersion): New function to do version checking.
+ (Tcl_ChannelBlockModeProc, Tcl_ChannelFlushProc)
+ (Tcl_ChannelHandlerProc): Made these functions use HaveVersion for
+ ease of future maintainability.
+ (Tcl_ChannelBlockModeProc): Obvious lookup function.
+ * generic/tcl.h (Tcl_ChannelType): New wideSeekProc field, and
+ seekProc type restored to old interpretation.
+ (TCL_CHANNEL_VERSION_3): New channel version.
+
+2002-05-24 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * tests/winPipe.test: Applied patch for SF Tcl Bug #549617. Patch
+ and bug report by Kevin Kenny <kennykb@users.sourceforge.net>.
+
+ * win/tclWinSock.c (TcpWatchProc): Fixed SF Tcl Bug #557878. We
+ are not allowed to mess with the watch mask if the socket is a
+ server socket. I believe that the original reporter is George
+ Peter Staplin.
- * tests/imgPhoto.test: Added test for GIF writing code [Bug: 5823].
+2002-05-21 Mo DeJong <mdejong@users.sourceforge.net>
- * generic/tkImgGIF.c: Applied patch from Jan Nijtmans to fix a
- problem with the GIF writing code [Bug: 5823].
+ * unix/configure: Regen.
+ * unix/configure.in: Invoke SC_ENABLE_SHARED before
+ calling SC_CONFIG_CFLAGS so that the SHARED_BUILD
+ variable can be checked inside SC_CONFIG_CFLAGS.
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): Pass -non_shared
+ instead of -shared to ld when configured with
+ --disable-shared under OSF. [Tcl bug 540390]
- * generic/tkCursor.c: Added initialization for nextPtr field of
- TkCursor, patch from Nijtmans/Howlett.
+2002-05-20 Daniel Steffen <das@users.sourceforge.net>
-2000-07-05 Eric Melski <ericm@ajubasolutions.com>
+ * generic/tclInt.h: added prototype for TclpFilesystemPathType().
+ * mac/tclMacChan.c: use MSL provided creator type if available
+ instead of the default 'MPW '.
- * library/msgs/nl.msg: Dutch message catalog for dialogs, from Jan
- Nijtmans.
+2002-05-16 Joe English <jenglish@users.sf.net>
-2000-06-30 Eric Melski <ericm@scriptics.com>
+ * doc/CrtObjCmd.3:
+ Added Tcl_GetCommandFromObj, Tcl_GetCommandFullName
+ (Tcl Bug #547987, #414921)
- * doc/keysyms.n:
- * doc/colors.n: Added extra .CE/.CS pairs to break up the large
- text block, so that the generated Windows help file could
- accomodate the manual entry. [Bug: 5862]
+2002-05-14 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * tests/filebox.test: Adjusted tests to accomodate -multiple.
+ * unix/tclUnixChan.c (TtyOutputProc): #if/#endif-ed this function
+ out to stop compiler warnings. Also much general tidying of
+ comments in this file and removal of whitespace from blank lines.
- * library/xmfbox.tcl: Adjusted arguments list construction such
- that -multiple is not presented as an option for tk_getSaveFile.
+2002-05-13 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * library/tk.tcl: Added test for safe interpreter status before
- attempting to load message catalogs (which is impossible in a
- standard safe interpreter). This means that SafeTk will not have
- localized dialogs, unless a means is found for loading the message
- catalog files.
+ * unix/tclUnixChan.c (SETBREAK): Solaris thinks ioctl() takes a
+ signed second argument, and Linux thinks ioctl() takes an unsigned
+ second argument. So need a longer definition of this macro to get
+ neither to spew warnings...
-2000-06-29 Eric Melski <ericm@scriptics.com>
+2002-05-13 Vince Darley <vincentdarley@users.sourceforge.net>
- * library/msgs/de.msg: German message catalog.
+ * generic/tclEvent.c:
+ * generic/tclIOUtil.c:
+ * generic/tclInt.h: clean up all memory allocated by the
+ filesystem, via introduction of 'TclFinalizeFilesystem'.
+ Move TclFinalizeLoad into TclFinalizeFilesystem so we can
+ be sure it is called at just the right time.
+ Fix bad comment also. [Bug #555078 and 'fs' part of #543549]
+ * win/tclWinChan.c: fix comment referring to wrong function.
- * library/msgs/en.msg: English message catalog.
-
- * library/msgs/es.msg: Spanish message catalog.
-
- * library/msgs/fr.msg: French message catalog.
-
- * unix/Makefile.in:
- * unix/configure.in:
- * library/tk.tcl:
- * library/clrpick.tcl:
- * library/choosedir.tcl:
- * library/console.tcl:
- * library/msgbox.tcl:
- * library/tkfbox.tcl:
- * library/xmfbox.tcl:
- * library/bgerror.tcl: Applied patches from Laurent Duperval to
- provide localization of Tk dialogs. [RFE: 2671].
-
-2000-06-27 Eric Melski <ericm@scriptics.com>
-
- * generic/tkMenu.c (DeleteMenuCloneEntries): Applied fix from
- [Bug: 5275], which corrected a segfault-causing indexing problem
- when deleting entries from torn-off menus.
-
-2000-06-22 Eric Melski <ericm@ajubasolutions.com>
-
- * doc/getOpenFile.n: Updated with information about -multiple.
-
- * library/choosedir.tcl: Tweaked to handle modified tkIconList API's.
-
- * library/tkfbox.tcl: Preliminary implementation of multiple
- selection; based on patch from [RFE: 604]. Some of the tkIconList
- functions changed to support this and to make the dialog faster.
+2002-05-10 Don Porter <dgp@users.sourceforge.net>
- * library/xmfbox.tcl: Added support for multiple selection, from
- patch in [RFE: 4999].
+ * tests/load.test:
+ * tests/safe.test:
+ * tests/tcltest.test: Corrected some list-quoting issues and
+ other matters that cause tests to fail when the patch includes
+ special characters. Report from Vince Darley. [Bug 554068].
-2000-06-21 Eric Melski <ericm@scriptics.com>
+2002-05-08 David Gravereaux <davygrvy@pobox.com>
- * library/text.tcl: Corrected behavior of text widget with respect
- to this sequence of events: click, shift-click. Previously, the
- shift-click just moved the cursor and anchor; now, the shift-click
- will select the text between the click and the shift-click, which
- is the behavior most users expect. [Bug: 5929].
+ * doc/file.n:
+ * tools/man2tcl.c:
+ * tools/man2help2.tcl: Thanks to Peter Spjuth
+ <peter.spjuth@space.se>, again. My prior fix for
+ single-quote macro mis-understanding was wrong. Reverted to
+ reimpliment the 'macro2' proc which handles single-quote macros
+ and restored file.n text arrangement to avoid single-quotes on
+ the first line. Sorry for all the confusion.
-2000-06-19 Eric Melski <ericm@scriptics.com>
+2002-05-08 David Gravereaux <davygrvy@pobox.com>
- * library/bgerror.tcl: Added auto-truncation for long error
- messages (more than 30 characters wide, or more than 4 lines
- long), so that the dialog remains a manageable size. [RFE: 5782]
+ * tools/man2tcl.c:
+ * tools/man2help2.tcl: Proper source of macro error mis-
+ understanding single-quote as the leading macro command found
+ and repaired.
-2000-06-15 Eric Melski <ericm@scriptics.com>
+ * doc/file.n: Reverted to prior state before I messed with
+ it.
- * win/tkWinDialog.c: Patched to support tk_getOpenFile
- -multiple. [RFE: 604].
+2002-05-08 Don Porter <dgp@users.sourceforge.net>
-2000-06-13 Eric Melski <ericm@scriptics.com>
+ * library/tcltest/tcltest.tcl: Corrected [uplevel] quoting when
+ [source]-ing test script in subdirectories.
+ * tests/fileName.test:
+ * tests/load.test:
+ * tests/main.test:
+ * tests/tcltest.test:
+ * tests/unixInit.test: Fixes to test suite when there's a space
+ in the working path. Thanks to Kevin Kenny.
+
+2002-05-07 David Gravereaux <davygrvy@pobox.com>
+
+ -- Changes from Peter Spjuth <peter.spjuth@space.se>
+ * tools/man2tcl.c: Increased line buffer size and a bail-out if
+ that should ever be over-run.
+ * tools/man2help.tcl: Include Courier New font in rtf header.
+ * tools/man2help2.tcl: Improved handling of CS/CE fields. Use
+ Courier New for code samples and indent better.
+
+ * doc/file.n:
+ * doc/TraceCmd.3: winhelp conversion tools where understanding
+ a ' as the first character on a line to be an unknown macro.
+ Not knowing how to repair tools/man2tcl.c, I decided to rearrange
+ the text in the docs instead.
+
+2002-05-07 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tclFileName.c: fix to similar segfault when using
+ 'glob -types nonsense -dir dirname -join * *'. [Bug 553320]
+
+ * doc/FileSystem.3: further documentation on vfs.
+ * tests/cmdAH.test:
+ * tests/fileSystem.test:
+ * tests/pkgMkindex.test: Fix to testsuite bugs when running out
+ of directory whose name contains '{' or '['.
+
+2002-05-07 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * tests/basic.test: Fix for [Bug 549607]
+ * tests/encoding.test: Fix for [Bug 549610]
+ These are testsuite bugs that caused failures when the filename
+ contained spaces. Report & fix by Kevin Kenny.
+
+2002-05-02 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tclFileName.c: fix to freeing a bad object
+ (i.e. segfault) when using 'glob -types nonsense -dir dirname'.
+ * generic/tclWinFile.c: fix to [Bug 551306], also wrapped some
+ long lines.
+ * tests/fileName.test: added several tests for the above bugs.
+ * doc/FileSystem.3: clarified documentation on refCount
+ requirements of the object returned by the path type function.
+ * generic/tclIOUtil.c:
+ * win/tclWinFile.c:
+ * unix/tclUnixFile.c:
+ * mac/tclMacFile.c: moved TclpFilesystemPathType to the
+ platform specific directories, so we can add missing platform-
+ specific implementations. On Windows, 'file system' now returns
+ useful results like "native NTFS", "native FAT" for that system.
+ Unix and MacOS still only return "native".
+ * doc/file.n: clarified documentation.
+ * tests/winFile.test: test for 'file system' returning correct
+ values.
+ * tests/fileSystem.test: test for 'file system' returning correct
+ values. Clean up after failed previous test run.
+
+2002-04-26 Jeff Hobbs <jeffh@ActiveState.com>
- * win/aclocal.m4:
- * win/configure.in:
- * win/Makefile.in: Applied patch from [RFE: 5844], to provide
- support for the mingw compile environment for Windows.
+ * unix/configure:
+ * unix/tcl.m4: change HP-11 SHLIB_LD_LIBS from "" to ${LIBS} so
+ that the .sl knows its dependent libs.
-2000-06-06 Jeff Hobbs <hobbs@scriptics.com>
+2002-04-26 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- 8.4a1 RELEASE
+ * tests/obj.test (obj-11.[56]): Test conversion to boolean more
+ thoroughly.
+ * generic/tclObj.c (SetBooleanFromAny): Was not calling an integer
+ parsing function on native 64-bit platforms! [Bug 548686]
-2000-06-03 Jeff Hobbs <hobbs@scriptics.com>
+2002-04-24 Jeff Hobbs <jeffh@ActiveState.com>
- * doc/CrtCmHdlr.3: new doc for ClientMessage handler procs
- * generic/tk.h: added typdef for Tk_ClientMessageProc
- * generic/tkStubInit.c:
- * generic/tkDecls.h:
- * generic/tk.decls: Added Tk_CreateClientMessageHandler and
- Tk_DeleteClientMessageHandler declarations.
- * generic/tkEvent.c (Tk_HandleEvent): Added
- Tk_CreateClientMessageHandler and Tk_DeleteClientMessageHandler to
- allow adding event handlers that invoke for ClientMessage events.
- This is necessary to support unix dnd protocols.
+ * generic/tclInt.h: corrected TclRememberJoinableThread decl to
+ use VOID instead of void.
+ * generic/tclThreadJoin.c: noted that this code isn't needed on Unix.
-2000-06-02 Jeff Hobbs <hobbs@scriptics.com>
+2002-04-23 Jeff Hobbs <jeffh@ActiveState.com>
- * canvas.test: added test for 5783.
- * generic/tkCanvPoly.c (DisplayPolygon): added checks for the
- polygon fillGC not being empty to prevent segfault. [Bug: 5783]
+ * doc/exec.n:
+ * doc/tclvars.n: doc updates [Patch #509426] (gravereaux)
-2000-05-31 Eric Melski <ericm@scriptics.com>
+2002-04-24 Daniel Steffen <das@users.sourceforge.net>
- * library/bgerror.tcl: Improved bgerror based on work by Donal
- K. Fellows; no longer dependant on tk_dialog; features a
- Windows-esque "Details" button, and a customizable extra function
- button that allows the user to (for example) save the stack trace
- to a file.
+ * mac/tclMacResource.r: added check of
+ TCLTK_NO_LIBRARY_TEXT_RESOURCES #define to allow disabling the
+ inclusion of the tcl library code in the resource fork of Tcl
+ executables and shared libraries.
-2000-05-30 Eric Melski <ericm@scriptics.com>
+2002-04-23 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tkImgGIF.c: Changed defines for GIF87a/GIF89a to be
- static char arrays with integer initialization, to address EBCIDIC
- vs. ASCII encoding issues and to handle compilers that don't deal
- with "\xAB" syntax for specifying hex values in strings.
+ * doc/TraceCmd.3: New file that documents Tcl_CommandTraceInfo,
+ Tcl_TraceCommand and Tcl_UntraceCommand [Bug 414927]
-2000-05-28 Jeff Hobbs <hobbs@scriptics.com>
+2002-04-22 Jeff Hobbs <jeffh@ActiveState.com>
- * doc/spinbox.n: (new file) docs for spinbox widget
- * generic/tkInt.h: added Tk_SpinboxObjCmd declaration
- * generic/tkEntry.c: added 'spinbox' widget - an extension of the
- entry widget type.
- * generic/tkWindow.c: added 'spinbox' to core Tk commands
- * library/spinbox.tcl: (new file) binding and helper procs for spinbox
- * library/tk.tcl: added spinbox.tcl to list of files to source
- * tests/entry.test: updated changed error messages
- * tests/spinbox.test: (new file) test suite for spinbox
+ * generic/tclAlloc.c:
+ * generic/tclInt.h:
+ * generic/tclThreadAlloc.c (new):
+ * unix/Makefile.in:
+ * unix/tclUnixThrd.c:
+ * win/Makefile.in:
+ * win/tclWinInt.h:
+ * win/tclWinThrd.c: added new threaded allocator contributed by
+ AOL that significantly reduces lock contention when multiple
+ threads are in use. Only Windows and Unix implementations are
+ ready, and the Windows one may need work. It is only used by
+ default on Unix for now, and requires that USE_THREAD_ALLOC be
+ defined (--enable-threads on Unix will define this).
- * generic/tkPlace.c (Tk_PlaceCmd): reworked place master/slave
- table init'n to prevent seg fault when using place on multiple
- displays.
+ * generic/tclIOUtil.c (Tcl_FSRegister, Tcl_FSUnregister):
+ corrected calling of Tcl_ConditionWait to ensure that there would
+ be a condition to wait upon.
- * generic/tk.h: added comments ot Tk_FakeWin structure
+ * generic/tclCmdAH.c (Tcl_FileObjCmd): added cast in FILE_SIZE.
-2000-05-26 Eric Melski <ericm@scriptics.com>
+ * win/tclWinFCmd.c (DoDeleteFile): check return of setattr API
+ calls in file deletion for correct Win32 API handling.
- * generic/tkOption.c (Tk_GetOption): Extended Tk_GetOption to
- support a new syntax for option names in option tables. If the
- option name has an embedded ".", it indicates that the name field
- contains both an option name and an overriding widget class, in
- the form "class.option". The lookup for the option value will be
- performed as though the widget class is that specified, rather
- than the actual widget class.
- (SetupStacks): Replaced several lines of array element copying
- with a for loop for conciseness.
+ * win/Makefile.in: correct dependencies for shell, gdb, runtest
+ targets.
-2000-05-25 Eric Melski <ericm@scriptics.com>
+ * doc/clock.n:
+ * compat/strftime.c (_fmt): change strftime to correctly handle
+ localized %c, %x and %X on Windows. Added some notes about how
+ the other values could be further localized.
- * library/button.tcl: Tweaks for -overrelief handling on Windows.
+2002-04-19 Don Porter <dgp@users.sourceforge.net>
- * doc/radiobutton.n: Added documentation for -overrelief option.
+ * generic/tclMain.c (Tcl_Main): Free the memory allocated for the
+ startup script path. [Bug 543549]
- * doc/checkbutton.n: Added documentation for -overrelief option.
+ * library/msgcat/msgcat.tcl: [mcmax] wasn't using the caller's
+ namespace when determining the max translated length. Also
+ made revisions for better use of namespace variables and more
+ efficient [uplevel]s.
- * doc/label.n: Added documentation for -state option.
+ * doc/msgcat.n:
+ * library/msgcat/msgcat.tcl:
+ * library/msgcat/pkgIndex.tcl: Added [mcload] to the export list
+ of msgcat; bumped to 1.2.3. [Bug 544727]
- * generic/tkButton.c: Added -overrelief option for checkbuttons,
- and radiobuttons.
+2002-04-20 Daniel Steffen <das@users.sourceforge.net>
- * library/button.tcl (tkButtonDown, macintosh version): Added
- protection against querying the -repeatdelay option from a widget
- that doesn't support it (ie, checkbuttons, radiobuttons, etc).
- Other platforms use a different binding script for checkbuttons
- and radiobuttons, so they don't have this issue.
- (tkCheckRadioEnter, windows version): Added code to handle
- -overrelief for check/radiobuttons on windows.
+ * generic/tclInt.decls:
+ * generic/tclIntPlatDecls.h:
+ * generic/tclStubInit.c:
+ * mac/tclMacFCmd.c:
+ * mac/tclMacFile.c:
+ * mac/tclMacUtil.c: Modified TclpObjNormalizePath to be alias
+ file aware, and replaced various calls to FSpLocationFrom*Path
+ by calls to new alias file aware versions FSpLLocationFrom*Path.
+ The alias file aware routines don't resolve the last component of
+ a path if it is an alias. This allows [file copy/delete] etc. to
+ act correctly on alias files. (c.f. discussion in Bug #511666)
-2000-05-22 Eric Melski <ericm@scriptics.com>
+2002-04-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tkButton.c: Added -activeforeground, -activebackground
- for labels, for the -state option.
+ * tests/lindex.test (lindex-3.7):
+ * generic/tclUtil.c (TclGetIntForIndex): Stopped indexes from
+ hitting wide ints. [Bug #526717]
- * doc/label.n: Added documentation for -state option,
- -activeforeground, -activebackground.
+2002-04-18 Miguel Sofer <msofer@users.sourceforge.net>
-2000-05-22 Jeff Hobbs <hobbs@scriptics.com>
+ * generic/tclNamesp.c:
+ * tests/info.test: [Bug 545325] info level didn't report
+ namespace eval, bug report by Richard Suchenwirth.
- * win/Makefile.in (install-libraries): corrected to install X
- headers [Bug: 5516]
+2002-04-18 Don Porter <dgp@users.sourceforge.net>
- * doc/bind.n:
- * doc/canvas.n:
- * doc/entry.n:
- * doc/listbox.n:
- * doc/photo.n: doc fix-ups [Bug: 5396]
+ * doc/subst.n: Clarified documentation on handling unusual return
+ codes during substitution, and on variable substitutions implied
+ by command substitution, and vice versa. [Bug 536838]
-2000-05-17 Jeff Hobbs <hobbs@scriptics.com>
+2002-04-18 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * doc/bell.n:
- * tests/bell.test:
- * generic/tkCmds.c (Tk_BellObjCmd): added -nice option to
- optionally avoid resetting screen saver [Bug: 4279]
+ * generic/tclCmdIL.c (InfoBodyCmd):
+ * tests/info.test (info-2.6): Proc bodies without string reps
+ would report as empty [Bug #545644]
-2000-05-15 Jeff Hobbs <hobbs@scriptics.com>
+ * generic/tclCmdMZ.c (Tcl_SubstObj): More clarification for
+ comment on behaviour when substitutions are not well-formed,
+ prompted by [Bug #536831]; alas, removing the ill-defined
+ behaviour is a lot of work.
- * win/tkWinWm.c (Tk_WmCmd): changed wm deiconify from using idle
- callback to calling restack and focus code immediately.
+2002-04-18 Miguel Sofer <msofer@users.sourceforge.net>
-2000-05-17 Eric Melski <ericm@scriptics.com>
+ * generic/tclExecute.c:
+ * tests/expr-old.test: fix for [Bug #542588] (Phil Ehrens), where
+ "too large integers" were reported as "floating-point value" in
+ [expr] error messages.
- Overall change: Added "-readonlybackground" option for entries,
- to enable a visual change when state goes to readonly.
+2002-04-17 Jeff Hobbs <jeffh@ActiveState.com>
- * mac/tkMacDefault.h (DEF_ENTRY_READONLY_BG_COLOR,
- DEF_ENTRY_READONLY_BG_COLOR):
- * win/tkWinDefault.h (DEF_ENTRY_READONLY_BG_COLOR,
- DEF_ENTRY_READONLY_BG_COLOR):
- * unix/tkUnixDefault.h (DEF_ENTRY_READONLY_BG_COLOR,
- DEF_ENTRY_READONLY_BG_COLOR): Added default values for entry
- -readonlybackground option.
+ * generic/tclEncoding.c (EscapeFromUtfProc):
+ * generic/tclIO.c (WriteChars, Tcl_Close): corrected the handling
+ of outputting end escapes for escape-based encodings.
+ [Bug #526524] (yamamoto)
- * generic/tkEntry.c: Added -readonlybackground option, cleaned up
- excessive use of graphics contexts.
+2002-04-17 Don Porter <dgp@users.sourceforge.net>
- * tests/entry.test: Added configuration test for
- -readonlybackground option.
+ * doc/tcltest.n: Removed [saveState] and [restoreState] from
+ tcltest 2 documentation, effectively deprecating them. [Bug 495660]
+ * library/tcltest/tcltest.tcl: Made separate export for commands
+ kept only for tcltest 1 compatibility.
- * doc/entry.n: Added documentation for -readonlybackground option.
+ * tests/iogt.test: Revised to run tests in a namespace, rather than
+ use the useless and buggy [saveState] and [restoreState] commands
+ of tcltest. Updated to use tcltest 2 as well. [Patch 544911]
- Overall change: changed implementation of "link" relief for
- buttons. Instead of a new relief style (-relief link), there is a
- new option, -overrelief, which if set is used when the mouse is
- over the button.
+2002-04-16 Don Porter <dgp@users.sourceforge.net>
- * doc/SetOptions.3: Added information about TK_OPTION_NULL_OK with
- TK_OPTION_RELIEF.
+ * tests/io.test: Revised to run tests in a namespace, rather than
+ use the useless and buggy [saveState] and [restoreState] commands
+ of tcltest. Updated to use tcltest 2 as well. [Patch 544546]
- * win/tkWinButton.c: Removed bits about TK_RELIEF_LINK.
+2002-04-15 Miguel Sofer <msofer@users.sourceforge.net>
- * tests/button.test: Added tests for -overrelief; removed tests
- for -relief link.
+ * generic/tclProc.c:
+ * tests/proc-old.test: Improved stack trace for TCL_BREAK and
+ TCL_CONTINUE returns from procs. Patch by Don Porter
+ [Bug 536955].
+
+ * generic/tclExecute.c:
+ * tests/compile.test: made bytecodes check for a catch before
+ returning; the compiled [return] is otherwise non-catchable.
+ [Bug 542142] reported by Andreas Kupries.
- * mac/tkMacButton.c: Removed bits about TK_RELIEF_LINK.
+2002-04-15 Don Porter <dgp@users.sourceforge.net>
- * generic/tkOldConfig.c: Removed bits about TK_RELIEF_LINK.
+ * tests/socket.test: Increased timeout values so that tests have
+ time to successfully complete even on slow/busy machines. [Bug 523470]
- * generic/tkConfig.c: Removed bits about TK_RELIEF_LINK; added
- support for TK_OPTION_NULL_OK for TK_OPTION_RELIEF.
+ * doc/tcltest.n:
+ * library/tcltest/tcltest.tcl:
+ * tests/tcltest.test: Revised [tcltest::test] to return errors
+ when called with invalid syntax and to accept exactly two arguments
+ as documented. Improved error messages. [Bug 497446, Patch 513983]
+ ***POTENTIAL INCOMPATIBILITY***: Incompatible with previous
+ tcltest 2.* releases, found only in alpha releases of Tcl 8.4.
- * library/button.tcl: Added binding support for -overrelief.
+2002-04-11 Jeff Hobbs <jeffh@ActiveState.com>
- * generic/tk3d.c (Tk_GetRelief): Added branch for TK_RELIEF_NULL.
+ * generic/tclNotify.c (TclFinalizeNotifier): remove remaining
+ unserviced events on finalization.
- * generic/tkButton.c: Added -overrelief option; removed
- Enter/Leave EventProc masks and handlers.
+ * win/tcl.m4: Enabled COFF as well as CV style debug info with
+ --enable-symbols to allow Dr. Watson users to see function info.
+ More info on debugging levels can be obtained at:
+ http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp
- * generic/tk.h: Added TK_RELIEF_NULL definition, removed
- TK_RELIEF_LINK.
+ * tests/ioCmd.test: fixed iocmd-8.15 to have mac and unixPc variants.
- * mac/tkMacDefault.h (DEF_BUTTON_OVER_RELIEF):
- * win/tkWinDefault.h (DEF_BUTTON_OVER_RELIEF):
- * unix/tkUnixDefault.h (DEF_BUTTON_OVER_RELIEF): Added default
- value for the -overrelief option.
+ * generic/tclParse.c (Tcl_ParseVar): conditionally incr obj
+ refcount to prevent possible mem leak.
-2000-05-16 Eric Melski <ericm@scriptics.com>
+2002-04-08 Daniel Steffen <das@users.sourceforge.net>
- * win/tkWinMenu.c (ReconfigureWindowsMenu): Added code to add the
- MF_SEPARATOR bit for SEPARATOR_ENTRY menu items. This causes
- separator entries on the system menu to be drawn correctly [Bug: 5451].
+ * generic/tcl.h: no <sys/types.h> on mac.
+ * mac/tclMacFile.c: minor fixes to Vince's changes from 03-24.
+ * mac/tclMacOSA.c:
+ * mac/tclMacResource.c: added missing Tcl_UtfToExternalDString
+ conversions of resource file names.
+ * mac/tclMacSock.c (TcpGetOptionProc): fixed bug introduced
+ by Andreas on 02-25; changed strcmp's to strncmp's so that
+ option comparison behaves like on other platforms.
+ * mac/tcltkMacBuildSupport.sea.hqx (CW Pro6 changes): added
+ support to allow Tk to hookup C library stderr/stdout to TkConsole.
+ * tests/basic.test:
+ * tests/cmdAH.test:
+ * tests/encoding.test:
+ * tests/fileSystem.test:
+ * tests/ioCmd.test: fixed tests failing on mac: check for
+ existence of [exec], changed some result strings.
+
+2002-04-06 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * unix/tclUnixFCmd.c (Realpath): added a little extra code to
+ initialize a realpath arg when compiling in PURIFY mode in order
+ to prevent spurious purify warnings. We should really create our
+ own realpath implementation, but this will at least quiet purify
+ for now.
+
+2002-04-05 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclCmdMZ.c (Tcl_SubstObj):
+ * tests/subst.test: Corrected [subst] so that return codes
+ TCL_BREAK and TCL_CONTINUE returned by variable substitution
+ have the same effect as when those codes are returned by command
+ substitution. [Bug 536879]
+
+2002-04-03 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * library/tcltest/tcltest.tcl: added getMatchingFiles back (alias
+ to GetMatchingFiles), which was a public function in tcltest 1.0.
+
+2002-04-01 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tclEnv.c:
+ * generic/tclIOUtil.c: invalidate filesystem cache when the
+ user changes env(HOME). Fixes [Bug #535621]. Also cleaned up
+ some of the documentation.
+ * tests/fileSystem.test: added test for bug just fixed.
+
+2002-04-01 Kevin Kenny <kennykb@acm.org>
+
+ * win/tclWinTime.c (Tcl_GetTime): made the checks of clock
+ frequency more permissive to cope with the fact that Win98SE
+ is observed to return 1.19318 in place of 1.193182 for the
+ performance counter frequency.
+
+2002-03-29 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * generic/tclCmdMZ.c (Tcl_TraceObjCmd, TraceVarProc)
+ (TraceCommandProc, TclTraceCommandObjCmd): corrected
+ potential double-free of traces on variables by flagging in
+ Trace*Proc that it will free the var in case the eval wants to
+ delete the var trace as well. [Bug #536937]
+ Also converted Tcl_UntraceVar -> Tcl_UntraceVar2 and Tcl_Eval to
+ Tcl_EvalEx in Trace*Proc for slight efficiency improvement.
+
+2002-03-29 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/AllowExc.3:
+ * generic/tclBasic.c (Tcl_EvalObjv,Tcl_EvalEx,Tcl_EvalObjEx):
+ * generic/tclCompile.h (TclCompEvalObj):
+ * generic/tclExecute.c (TclCompEvalObj,TclExecuteByteCode):
+ * tests/basic.test: Corrected problems with Tcl_AllowExceptions
+ having influence over the wrong scope of Tcl_*Eval* calls. Patch
+ from Miguel Sofer. Report from Jean-Claude Wippler. [Bug 219181]
+
+2002-03-28 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclVar.c: Refactored CallTraces to collect repeated
+ handling of its returned value into CallTraces itself.
-2000-05-15 Eric Melski <ericm@scriptics.com>
+2002-03-28 David Gravereaux <davygrvy@pobox.com>
- * doc/image.n: Added documentation for [image inuse] command.
+ * tools/feather.bmp:
+ * tools/man2help.tcl:
+ * tools/man2help2.tcl:
+ * win/makefile.vc: More winhelp target fixups. Added a feather
+ bitmap to the non-scrollable area and changed the color to be
+ yellow from a plain white. The colors can be whatever we want
+ them to be, but thought I would start with something bold.
+ [Bug 527941]
+
+ * doc/SetVar.3:
+ * doc/TraceVar.3:
+ * doc/UpVar.3: .AP macro syntax repair.
+
+2002-03-27 David Gravereaux <davygrvy@pobox.com>
+
+ * tools/man2help.tcl:
+ * win/makefile.vc: winhelp target now copies all needed files
+ from tools/ to a workarea under $(OUT_DIR) and builds it from
+ there. No build cruft is left in tools/ anymore. All paths
+ used in man2help.tcl are now relative to where the script is.
+ [Bug 527941]
+
+2002-03-27 David Gravereaux <davygrvy@pobox.com>
+
+ * win/.cvsignore:
+ * win/buildall.vc.bat:
+ * win/coffbase.txt:
+ * win/makefile.vc:
+ * win/nmakehlp.c (new):
+ * win/rules.vc: First draft fix for [Bug 527941]. More changes
+ need to done to the makehelp target to get to stop leaving build
+ files in the tools/ directory. This does not address the syntax
+ errors in the man files. Having the contents of tcl.hpj(.in)
+ inside makefile.vc allows for version numbers to be replaced with
+ macros.
+
+ The new nmakehlp.c is built by rules.vc in preprocessing and removes
+ the need to use tricky shell syntax that wasn't compatible on Win9x
+ systems. Clean targets made Win9x complient. This is a first draft
+ repair for [Bug 533862].
+
+2002-03-28 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclBasic.c (Tcl_EvalEx): passing the correct commandSize
+ to TclEvalObjvInternal. [Bug 219362], fix by David Knoll.
+
+2002-03-28 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclBasic.c (Tcl_EvalEx):
+ * tests/basic.test: avoid exceptional returns at level 0
+ [Bug 219181]
+
+2002-03-27 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/tcltest.n ([mainThread]):
+ * library/tcltest/tcltest.tcl:
+ * tests/tcltest.test: Major code cleanup to deal with whitespace,
+ coding conventions, and namespace issues, with several minor bugs
+ fixed in the process.
+
+ * tests/main.test: Added missing [after cancel]s.
+
+2002-03-25 Don Porter <dgp@users.sourceforge.net>
+
+ * tests/main.test: Removed workarounds for Bug 495977.
+
+ * library/tcltest/tcltest.tcl: Keep the value of $::auto_path
+ unchanged, so that the tcltest package can test code that depends
+ on auto-loading. If a testing application needs $::auto_path pruned,
+ it should do that itself. [Bug 495726]
+ Improve the processing of the -constraints option to [test] so that
+ constraint lists can have arbitrary whitespace, and non-lists don't
+ blow things up. [Bug 495977]
+ Corrected faulty variable initialization. [Bug 534845]
+
+2002-03-25 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * doc/CrtTrace.3: small doc correction
+ * generic/tclBasic.c (Tcl_DeleteTrace): Allow NULL callback on
+ trace deletions [Bug 534728] (Hemang Lavana).
+
+2002-03-24 Miguel Sofer <msofer@users.sourceforge.net>
+
+ * generic/tclBasic.c (Tcl_EvalObjv): replaced obscure, incorrect
+ code as described in [Bug 533907] (Don Porter).
+
+2002-03-24 Don Porter <dgp@users.sourceforge.net>
+
+ * library/tcltest/tcltest.tcl: Use [interpreter] to set/query the
+ executable currently running the tcltest package. [Bug 454050]
+
+ * library/tcltest/tcltest.tcl: Allow non-proc commands to be used
+ as the customization hooks. [Bug 495662]
+
+2002-03-24 Vince Darley <vincentdarley@users.sourceforge.net>
+
+ * generic/tclFilename.c:
+ * generic/tclFCmd.c:
+ * generic/tclTest.c:
+ * generic/tcl.h:
+ * generic/tclIOUtil.c:
+ * win/tclWinFile.c:
+ * win/tclWinFCmd.c:
+ * win/tclWinPipe.c:
+ * unix/tclUnixFile.c:
+ * unix/tclUnixFCmd.c:
+ * mac/tclMacFile.c:
+ * doc/FileSystem.3:
+ * doc/file.n:
+ * tests/cmdAH.test:
+ * tests/fileName.test:
+ * tests/fileSystem.test: (new file)
+ * tests/winFCmd.test: fix [Bug 511666] and [Bug 511658],
+ and improved documentation of some aspects of the filesystem,
+ particularly 'Tcl_FSMatchInDirectory' which now might match
+ a single file/directory only, and 'file normalize' which
+ wasn't very clear before. Removed inconsistency betweens
+ docs and the Tcl_Filesystem structure. Also fixed
+ [Bug 523217] and corrected file normalization on Unix so that
+ it expands symbolic links. Added some new tests of the
+ filesystem code (in the new file 'fileSystem.test'), and
+ some extra tests for correct handling of symbolic links.
+ Fix to [Bug 530960] which shows up on Win98. Made comparison
+ with ".com" case insensitive in tclWinPipe.c
+
+ ***POTENTIAL INCOMPATIBILITY***: But only between alpha
+ releases (users of the new Tcl_Filesystem lookup table in Tcl
+ 8.4a4 need to handle the new way in which Tcl may call
+ Tcl_FSMatchInDirectory, and 'file normalize' on unix now
+ behaves correctly). Only known impact is with the 'tclvfs'
+ extension.
- * tests/image.test: Added tests for [image inuse] command.
+2002-03-22 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkImage.c (Tk_ImageObjCmd): Added [image inuse] command,
- which provides a means for programmers to determine if a given
- image is in use by any widgets. [RFE: 3327].
+ * tests/basic.test (basic-46.1): adding test for [Bug 533758],
+ fixed earlier today.
+
+2002-03-22 Jeff Hobbs <jeffh@ActiveState.com>
-2000-05-14 Eric Melski <ericm@scriptics.com>
+ * win/tclWinInt.h: moved undef of TCL_STORAGE_CLASS. [Bug #478579]
- * doc/clipboard.n: Added documentation for "clipboard get".
+2002-03-22 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkClipboard.c (Tk_ClipboardCmd): Added "clipboard get"
- subcommand [RFE: 4628].
+ * generic/tclBasic.c (Tcl_EvalObjEx):
+ * generic/tclExecute.c (TclCompEvalObj): fixed the errorInfo for
+ return codes other than (TCL_OK, TCL_ERROR) to runLevel 0
+ [Bug 533758]. Removed the static RecordTracebackInfo(), as its
+ functionality is easily replicated by Tcl_LogCommandInfo. Bug
+ and redundancy noted by Don Porter.
- * tests/clipboard.test: Updated to use "clipboard get" instead of
- "selection get -s CLIPBOARD".
+2002-03-21 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * library/entry.tcl: Adjusted Button-1 binding to set focus to the
- entry when it is readonly or normal.
+ * doc/expr.n: Improved documentation for ceil and floor [Bug 530535]
- * doc/entry.n: Added documentation for readonly state,
- -disabledforeground, -disabledbackground.
+2002-03-20 Don Porter <dgp@users.sourceforge.net>
- * tests/entry.test: Added tests for readonly state.
+ * doc/SetVar.3:
+ * doc/TraceVar.3:
+ * doc/UpVar.3:
+ * generic/tcl.h (Tcl_VarTraceProc):
+ * generic/tcl.decls (Tcl_GetVar2, Tcl_SetVar2, Tcl_TraceVar2,
+ Tcl_UnsetVar2, Tcl_UntraceVar2, Tcl_UpVar2, Tcl_VarTraceInfo2,
+ Tcl_GetVar2Ex, TclSetVar2Ex):
+ * generic/tclCmdMZ.c (TraceVarProc):
+ * generic/tclEnv.c (EnvTraceProc):
+ * generic/tclEvent.c (VwaitVarProc):
+ * generic/tclInt.decls (TclLookupVar,TclPrecTraceProc):
+ * generic/tclLink.c (LinkTraceProc):
+ * generic/tclUtil.c (TclPrecTraceProc):
+ * generic/tclVar.c (CallTraces, MakeUpvar, VarErrMsg, TclLookupVar,
+ Tcl_GetVar2, Tcl_SetVar2, Tcl_TraceVar2, Tcl_UnsetVar2,
+ Tcl_UntraceVar2, Tcl_UpVar2, Tcl_VarTraceInfo2, Tcl_GetVar2Ex,
+ TclSetVar2Ex): Updated interfaces of generic/tclVar.c according
+ to TIP 27. In particular, the "part2" arguments were CONSTified.
+ [Patch 532642]
+ * generic/tclDecls.h:
+ * generic/tclIntDecls.h: make genstubs
+
+2002-03-15 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * tests/compile.test (compile-12.3): Test to detect bug 530320.
+ * generic/tclCompile.c (TclCompileTokens): Fixed buffer overrun
+ reported in bug 530320.
+
+2002-03-14 Mo DeJong <mdejong@users.sourceforge.net>
- * generic/tkEntry.c: Added support for "readonly" state, and
- redefined "disabled" state. A disabled entry will display its
- text in a dimmed color and possibly with a different background,
- and will be completely unusable (no selection, no editing). A
- readonly entry will look like a normal entry, but it will not be
- editable; selection is still allowed. [RFE: 4239]. To support the
- new disabled state properly, "-disabledforeground" and
- "-disabledbackground" options were added.
- *** THIS IS A BACKWARDS INCOMPATIBLE BEHAVIOR CHANGE ***
+ * win/configure: Regen.
+ * win/configure.in: Add configure time test for SEH
+ support in the compiler.
+ * win/tclWin32Dll.c (ESP, EBP, TclpCheckStackSpace,
+ _except_checkstackspace_handler):
+ * win/tclWinChan.c (ESP, EBP, Tcl_MakeFileChannel,
+ _except_makefilechannel_handler):
+ * win/tclWinFCmd.c (ESP, EBP, DoRenameFile,
+ _except_dorenamefile_handler,
+ DoCopyFile, _except_docopyfile_handler):
+ Implement SEH support under gcc using inline asm.
+ Tcl and Tk should now compile with Mingw 1.1. [Patch 525746]
- * win/tkWinDefault.h:
- * mac/tkMacDefault.h:
- * unix/tkUnixDefault.h: Added DEF_ENTRY_DISABLED_FG,
- DEF_ENTRY_DISABLED_BG_COLOR, DEF_ENTRY_DISABLED_BG_MONO.
+2002-03-14 Mo DeJong <mdejong@users.sourceforge.net>
-2000-05-12 Eric Melski <ericm@scriptics.com>
+ * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Handle
+ an SEH exception with EXCEPTION_EXECUTE_HANDLER instead
+ of restarting the faulting instruction with
+ EXCEPTION_CONTINUE_EXECUTION. Bug 466102 provides an
+ example of how restarting could send Tcl into an
+ infinite loop. [Patch 525746]
- * unix/tkUnixButton.c (TkpDisplayButton, TkpComputeButtonGeometry):
- * mac/tkMacButton.c (TkpDisplayButton, TkpComputeButtonGeometry):
- * win/tkWinButton.c (TkpDisplayButton, TkpComputeButtonGeometry):
- Added code for drawing compound buttons.
+2002-03-11 Mo DeJong <mdejong@users.sourceforge.net>
- * tests/button.test: Added configuration tests for -repeatdelay,
- -repeatinterval, -compound.
+ * win/tclWinFCmd.c (DoRenameFile, DoCopyFile, DoDeleteFile,
+ DoRemoveJustDirectory): Make sure we don't pass NULL or ""
+ as a path name to Win32 API functions since this was
+ crashing under Windows 98.
- * library/button.tcl: Added support for -repeatedelay,
- -repeatinterval options.
+2002-03-11 Don Porter <dgp@users.sourceforge.net>
- * generic/tkOldConfig.c: Changed handling of link relief so that
- proper error messages are used.
+ * library/tcltest/tcltest.tcl:
+ * library/tcltest/pkgIndex.tcl: Bumped tcltest package to 2.0.2.
- * generic/tkButton.h: Added -compound, -repeatdelay,
- -repeatinterval options.
+2002-03-11 Mo DeJong <mdejong@users.sourceforge.net>
- * generic/tkButton.c: Added event watchers for enter/leave events,
- for link relief support.
+ * library/tcltest/tcltest.tcl (getMatchingFiles): Pass
+ a proper list to foreach to avoid munging a Windows
+ patch like D:\Foo\Bar into D:FooBar before the glob.
- * generic/tk3d.c: Changed handling of link relief so that proper
- error messages are used.
+2002-03-11 Mo DeJong <mdejong@users.sourceforge.net>
- * generic/tk.h: Changed values of
- TK_OPTION_LINK_OK/TK_CONFIG_LINK_OK for link relief support.
+ * generic/tclEncoding.c: Fix typo in comment.
+ * generic/tclIO.c (DoReadChars, ReadBytes, ReadChars):
+ Use NULL value instead of pointer set to NULL to make
+ things more clear. Reorder arguments so that they
+ match the function signatures. Cleanup little typos
+ and add more descriptive comment.
-2000-05-12 Jeff Hobbs <hobbs@scriptics.com>
+2002-03-08 Mo DeJong <mdejong@users.sourceforge.net>
- * win/tkWinFont.c (LoadFontRanges): improved support for all chars
- in 0-255 range for bitmap ANSI fonts. May be improved to handle
- bitmap non-ANSI fonts in the future. [Bug: 2172]
+ * win/README: Update to indicate that Mingw 1.1 is
+ required to build Tcl. Add section describing new
+ msys based build process. Update Cygwin build
+ instructions so users know where to find Mingw 1.1.
- * win/tkWinWm.c (RaiseWinWhenIdle): added TK_DONT_DESTROY_WINDOW
- to flag check to prevent timing related core dump. [Bug: 5438]
+2002-03-08 Jeff Hobbs <jeffh@ActiveState.com>
-2000-05-11 Jeff Hobbs <hobbs@scriptics.com>
+ * win/tclWinFCmd.c (DoCopyFile): correctly set retval to TCL_OK.
- * win/tkWinTest.c (TestclipboardObjCmd): ensured CloseClipboard
- would always get called for each OpenClipboard.
+2002-03-07 Mo DeJong <mdejong@users.sourceforge.net>
- * tests/focus.test (focusSetupAlt): removed wm withdraw from proc
- as it would cause a hang for tkwait visibility
+ * win/tclWin32Dll.c (TclpCheckStackSpace):
+ * win/tclWinFCmd.c (DoRenameFile, DoCopyFile): Replace
+ hard coded constants with Win32 symbolic names.
+ Move control flow statements out of __try blocks
+ since the documentation indicates it is frowned upon.
- * tests/menu.test:
- * generic/tk3d.c:
- * generic/tkColor.c:
- * generic/tkCursor.c: corrected handling of 3DBorder, Cursor and
- Color objects on multiple screens. [Bug: 5454]
+2002-03-07 Don Porter <dgp@users.sourceforge.net>
-2000-05-09 Eric Melski <ericm@scriptics.com>
+ * doc/interp.n:
+ * generic/tclInterp.c(Tcl_InterpObjCmd,SlaveObjCmd,SlaveRecursionLimit):
+ * generic/tclTest.c:
+ * tests/interp.test: Added the [interp recursionlimit] command to
+ set/query the recursion limit of an interpreter. Proposal and
+ implementation from Stephen Trier. [TIP 87, Patch 522849]
- * doc/button.n: Added documentation for link relief.
+2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * tests/button.test: Added tests for link relief for buttons.
+ * generic/tcl.h, tools/tcl.wse.in, unix/configure.in,
+ * unix/tcl.spec, win/README.binary, win/configure.in, README:
+ Bumped patchlevel; this might need to change in the future, but it
+ will help us distinguish between the CVS version and the most
+ recent released version.
- * generic/tk.h (TK_CONFIG_LINK_OK): Added definition of
- TK_RELIEF_LINK, TK_OPTION_LINK_OK and TK_CONFIG_LINK_OK. [RFE: 4348]
+2002-03-06 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tk3d.c: Added support for link relief. [RFE: 4348]
+ * generic/tclInt.h: for unshared objects, TclDecrRefCount now
+ frees the internal rep before the string rep - just like the
+ non-macro Tcl_DecrRefCount/TclFreeObj [Bug 524802].
- * mac/tkMacButton.c (TkpDisplayButton):
- * unix/tkUnixButton.c (TkpDisplayButton): Added support for link
- relief. [RFE: 4348]
+2002-03-06 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tkOldConfig.c (Tk_ConfigureWidget):
- * generic/tkConfig.c (DoObjConfig): Added understanding of link
- relief, which is allowed only for widgets that have
- TK_OPTION_LINK_OK or TK_CONFIG_LINK_OK set for the "-relief"
- option. [RFE: 4348]
+ * doc/lsearch.n: Documentation of new features, plus examples.
+ * tests/lsearch.test: Tests of new features.
+ * generic/tclCmdIL.c (Tcl_LsearchObjCmd): TIP#80 support. See
+ http://purl.org/tcl/tip/80 for details.
- * generic/tkButton.c: Added TK_OPTION_LINK_OK to "-relief" option
- for buttons. [RFE: 4348]
+2002-03-05 Jeff Hobbs <jeffh@ActiveState.com>
- * win/tkWinWm.c (EX_TRANSIENT_STYLE): Removed WS_EX_TOOLWINDOW
- style bit, so that transient windows have full-size titlebars
- (like the tk_getOpenFile dialog).
+ *** 8.4a4 TAGGED FOR RELEASE ***
- * win/tkWinMenu.c (GetMenuSeparatorGeometry): Tweaked height
- requested for separator bars to be (linespace - (2*descent))
- instead of just (linespace); this makes the separator occupy a
- more correct amount of vertical space. [Bug: 5303].
+ * unix/tclUnixChan.c: initial remedy for [Bug #525783] flush
+ problem introduced by TIP #35. This may not satisfy true serial
+ channels, but it restores the correct flushing of std* channels on
+ exit.
-2000-05-09 Jeff Hobbs <hobbs@scriptics.com>
+ * unix/README: added --enable-langinfo doc.
- * library/focus.tcl: fixed calling of takeFocus proc [Bug: 5372]
+ * unix/tcl.spec:
+ * tools/tcl.wse.in: fixed URL refs to use www.tcl.tk or SF.
-2000-05-02 Jeff Hobbs <hobbs@scriptics.com>
+2002-03-04 Jeff Hobbs <jeffh@ActiveState.com>
* README:
- * generic/tk.h:
- * library/tk.tcl:
* mac/README:
+ * unix/Makefile.in:
* unix/README:
- * unix/configure.in:
- * unix/tk.spec:
* win/README:
- * win/aclocal.m4:
- * win/configure.in:
- * win/makefile.vc: updated patchlevel to 8.4a1
-
- * unix/Makefile.in: added tk.spec to dist target
-
-2000-04-27 Eric Melski <ericm@scriptics.com>
-
- * doc/Tk_Init.3: Added Tk_SafeInit information [Bug: 1884].
-
- * doc/keysyms.n: Man page enumerating keysyms [RFE: 1645].
-
- * doc/colors.n: Man page enumerating valid color names [RFE: 1645].
-
- * doc/cursors.n: Man page enumerating valid cursor values [RFE: 1645].
-
- * library/msgbox.tcl: Corrected Unix tk_messageBox implementation
- to make the first button the default when no default is specified
- [Bug: 2218].
-
- * doc/messageBox.n: Updated documentation with regards to
- selection of default button when none is specified (now it will
- use the first button as the default in that case) [Bug: 2218].
-
-2000-04-26 Jeff Hobbs <hobbs@scriptics.com>
-
- 8.3.1 RELEASE
-
- * README:
- * mac/README:
- * unix/README:
- * unix/tk.spec:
- * win/README: Updating URLs to reference dev.scriptics.com
-
-2000-04-25 Jeff Hobbs <hobbs@scriptics.com>
-
- * unix/Makefile.in:
- * win/Makefile.in: makefile cleanup
-
-2000-04-25 Eric Melski <ericm@scriptics.com>
-
- * generic/tkMain.c: Fixed function header comment for Tk_MainEx.
-
- * unix/mkLinks:
- * doc/GetScroll.3: Added information about Tk_GetScrollInfoObj
- [Bug: 1866].
-
-2000-04-24 Eric Melski <ericm@scriptics.com>
-
- * unix/mkLinks:
- * doc/Grab.3: Man page for Tk_Grab and Tk_Ungrab [Bug: 1868, 1889]
-
- * unix/mkLinks:
- * doc/MainWin.3: Added entry for Tk_GetNumMainWindows [Bug: 1865].
-
- * unix/mkLinks:
- * doc/GetHINSTANCE.3: Man page for Tk_GetHINSTANCE [Bug: 1862].
-
-2000-04-24 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkImage.c (Tk_PostscriptImage): added check to create
- necessary prolog for photos
- * generic/tkCanvPs.c: added Tk_PostscriptPhoto that outputs PS for
- photo images
- * generic/tkImgPhoto.c: new func ImgPhotoPostscript and added that
- in as ps proc in tkPhotoImageType.
- * generic/tkStubInit.c:
- * generic/tkDecls.h:
- * generic/tk.decls: added Tk_PostscriptPhoto
-
- * generic/tkConfig.c (DoObjConfig): removed direct setting of
- interp->result.
-
- * mac/tkMacWm.c (Tk_WmCmd): initialized gotToplevel in
- colormapwindows case (bug found by Reasoning, Inc's automated code
- testing).
-
-2000-04-24 Eric Melski <ericm@scriptics.com>
-
- * unix/mkLinks:
- * doc/GetHWND.3: Man page for Tk_GetHWND [Bug: 1863].
-
- * unix/mkLinks:
- * doc/HWNDToWindow.3: Man page for Tk_HWNDToWindow [Bug: 1869].
-
- * unix/mkLinks:
- * doc/AddOption.3: Man page for Tk_AddOption [Bug: 1854]
-
-2000-04-22 Jim Ingham <jingham@cygnus.com>
-
- * mac/tkMacDialog.c (Tk_MacGetOpenFile): Add empty bodies for the
- "-initialfile" and "-defaultextension" options.
-
- * mac/tkMacDialog.c (NavServicesGetFile): Only cons the result up
- into a list if multiple is true.
-
- * mac/tkMacMenus.c (SourceDialog): Use the "tk_getOpenFile"
- instead of hand-coding the dialog with StandardGetFile. This way
- we get the Navigation dialogs for free.
-
- * doc/getOpenFile.n: Document the -multiple and -message flags
- which are only implemented on the Mac. Also note that the -title
- works on the Mac with Nav Services installed.
-
-2000-04-19 Eric Melski <ericm@scriptics.com>
-
- * doc/WinViewable.3:
- * unix/mkLinks: Removed docs for Tk_IsViewable.
+ * win/README.binary: updated to use www.tcl.tk URL.
- * win/tkWinDialog.c: Removed calls to Tk_IsViewable.
+ * unix/Makefile.in: added older ChangeLogs to dist target.
- * generic/tkUtil.c:
- * generic/tkStubInit.c:
- * generic/tkDecls.h:
- * generic/tkCmds.c:
- * generic/tk.decls: Removed Tk_IsViewable function (it was not
- actually needed).
+ * tests/io.test:
+ * tests/encoding.test: corrected iso2022 encoding results.
+ added encoding-24.*
+ * generic/tclEncoding.c (EscapeFromUtfProc): corrected output of
+ escape codes as per RFC 1468. [Patch #474358] (taguchi)
+ (TclFinalizeEncodingSubsystem): corrected potential double-free
+ when encodings were finalized on exit. [Bug #219314, #524674]
-2000-04-19 Jeff Hobbs <hobbs@scriptics.com>
+2002-03-01 Jeff Hobbs <jeffh@ActiveState.com>
- * win/aclocal.m4: made SC_PROG_TCLSH search specifically for
- tclsh*.exe type files to find an executable.
+ * library/encoding/iso2022-jp.enc:
+ * library/encoding/iso2022.enc:
+ * tools/encoding/iso2022-jp.esc:
+ * tools/encoding/iso2022.esc: gave <ESC>$B precedence over <ESC>$@,
+ based on comments (point 1) in [Bug #219283] (rfc 1468)
- * win/Makefile.in: fixed up cleanup, winhelp, cat32 targets
+ * tests/encoding.test: added encoding-23.* tests
+ * generic/tclIO.c (FilterInputBytes): reset the TCL_ENCODING_START
+ flags in the ChannelState when using 'gets'. [Bug #523988]
+ Also reduced the value of ENCODING_LINESIZE from 30 to 20 as this
+ seems to improve the performance of 'gets' according to tclbench.
- * library/console.tcl: made console use systemfixed font on Win
+2002-02-28 Jeff Hobbs <jeffh@ActiveState.com>
- * generic/tkEntry.c: removed unnecessary ENTRY_VALIDATE #define
+ * generic/tclCmdMZ.c (TraceCommandProc): ensure that TraceCommandInfo
+ structure was also deleted when a command was deleted to prevent a
+ mem leak.
-2000-04-19 Eric Melski <ericm@scriptics.com>
+ * generic/tclBasic.c (Tcl_CreateObjTrace): set tracePtr->flags
+ correctly.
- * generic/tkRectOval.c (ConfigureRectOval): Added checks for valid
- outline settings before creating of outline GC; this means that it
- is really possible now to have an oval or rectangle with no
- outline. [Bug: 5029].
+ * generic/tclTimer.c (TimerExitProc): remove remaining events in
+ tls on thread exit.
-2000-04-19 Jeff Hobbs <hobbs@scriptics.com>
+2002-02-28 Miguel Sofer <msofer@users.sourceforge.net>
- * library/choosedir.tcl (::tk::dialog::file::chooseDir::Config):
- * library/tkfbox.tcl (::tk::dialog::file::Config): removed the
- extraneous glob on -initialdir after file isdir already returned 1
- and moved cd trick into this case as the else already uses [pwd].
- [Bug: 5181]
+ * generic/tclNamesp.c: allow cached fully-qualified namespace
+ names to be usable from different namespaces within the same
+ interpreter without forcing a new lookup [Patch 458872].
- * win/winMain.c: moved extern call out of WinMain func
+2002-02-28 Miguel Sofer <msofer@users.sourceforge.net>
- * README:
- * generic/tk.h:
- * unix/configure.in:
- * unix/tk.spec:
- * win/configure.in: bumped to version 8.3.1
-
- * library/msgbox.tcl (tkMessageBox): changed to use grid in some
- places, realign icon to anchor nw.
-
- * mac/tkMacScale.c: reverted tkMacScale.c to 1.5 equivalent (it
- was accidentally bumped forward).
-
-2000-04-18 Eric Melski <ericm@scriptics.com>
-
- * win/tkWinPointer.c: Changed Mod2Mask in TkWinGetModifierState to
- ALT_MASK, to fix some event problems [Bugs: 1160, 5088].
-
- * win/tkWinX.c: Changed Mod2Mask in GetState to ALT_MASK, to fix
- some event problems [Bugs: 1160, 5088].
-
- * generic/tkInt.h: Moved definition of ALT_MASK and META_MASK here
- so that it would be accessible from other modules than tkBind.c.
-
- * generic/tkBind.c: Added code in BindEvent to check for ALT_MASK
- and META_MASK in the event state field, as this field may not be
- set up with the correct display modifier mask bits if the XEvent
- structure was created by [event generate] or by the Windows X
- emulation. [Bugs: 1160, 5088].
-
-2000-04-18 Scott Redman <redman@HILO>
-
- * win/tk.rc:
- * win/wish.rc:
- * win/wish.ico: Modified copyright dates in Windows resource
- files. Updated the icon for wish.exe.
+ * generic/tclExecute.c: Replaced a few direct stack accesses
+ with the POP_OBJECT() macro [Bug 507181] (Don Porter).
-2000-04-17 Eric Melski <ericm@scriptics.com>
+2002-02-27 Don Porter <dgp@users.sourceforge.net>
- * win/tkWinDialog.c: Added checks for visibility of parent window
- before creating MessageBox and ChooseColor dialogs; this prevents
- the application from locking when the parent is withdrawn and the
- message box is created. In these cases, the window will be
- created without a parent.
+ * doc/GetIndex.3:
+ * generic/tcl.decls (Tcl_GetIndexFromObjStruct):
+ * generic/tclIndexObj.c (Tcl_GetIndexFromObjStruct): Revised the
+ prototype of the Tcl_GetIndexFromObjStruct to take its struct
+ table as a (CONST VOID *) argument, better describing what it is,
+ maintaining source compatibility, and adding CONST correctness
+ according to TIP 27. Thanks to Joe English for an elegant
+ solution. [Bug 520304]
- * unix/mkLinks: Added WinViewable.3.
-
- * tests/msgbox.test: Added tests for patch from [Bug: 4997].
-
- * library/msgbox.tcl:
- * library/dialog.tcl: Applied patch from [Bug: 4997]; detaches
- dialog window from parent if parent is not viewable.
-
- * library/bgerror.tcl: Removed workaround from [Bug: 4370]; this
- is superceeded by patches to dialog.tcl.
-
- * generic/tkCmds.c: Changed WinfoObjCmd to use Tk_IsViewable
- function to determine visibility of windows instead of inlining
- the code.
-
- * generic/tkStubInit.c:
- * generic/tkDecls.h:
- * generic/tk.decls: Added Tk_IsViewable declaration.
-
-2000-04-17 Eric Melski <ericm@scriptics.com>
-
- * library/text.tcl: Tweaked double-/triple-click selection;
- previously, anchor and insert marks were placed in unexpected
- locations following a double or triple click. Now they are placed
- logically. Also tweaked the extension of selection via
- shift-double-clicks so that it no longer selects the contiguous
- whitespace on the side of the selection opposite the
- double-click. [RFE: 4253].
-
- * doc/menu.n: Added note regarding rendering of
- checkbuttons/radiobuttons in menubars on different platforms --
- some systems do not draw indicators for check/radiobuttons in
- menubars.
-
- * library/menu.tcl: Corrected behavior of
- checkbuttons/commands/radiobuttons in menubars [Bug: 630].
-
- * tests/grid.test: Added test for [grid propagate . 0] to not toggle.
-
- * generic/tkGrid.c: Fixed bogus logic in [grid propagate] that
- caused [grid propagate . 0] to act as a toggle instead of an
- absolute set. [Bug: 2286].
+ * generic/tclDecls.h: make genstubs
-2000-04-16 Jeff Hobbs <hobbs@scriptics.com>
+ * generic/tclMain.c (Tcl_Main,StdinProc): Corrected some reference
+ count management errors on the interactive command Tcl_Obj found by
+ Purify. Thanks to Jeff Hobbs for the report and assistance.
- * win/tkWinColor.c (FindSystemColor): correct calculation of
- colors when shifting value. [Bug: 4919]
+2002-02-27 Jeff Hobbs <jeffh@ActiveState.com>
-2000-04-16 Jim Ingham <jingham@cygnus.com>
+ * generic/tclBasic.c (Tcl_EvalTokensStandard): corrected mem leak
+ in error case.
- * mac/tkMacPort.h: protect against strncasecmp already defined -
- it is in the Pro5 version of MSL.
+ * generic/tclTest.c (TestStatProc[123]): correct harmless UMRs.
- * mac/tkMacWindowMgr.c (GenerateKeyEvent): Check for a null tkWin.
- If the hidden window we use for double-buffering controls manages
- to percolate to the top (should never happen, but...) this will
- keep us from crashing.
+ * generic/tclLink.c (Tcl_LinkVar): correct mem leak in error case.
- * mac/tkMacButton.c (InitSampleControls): Hide the
- double-buffering window BEHIND the first "." window you can find.
- This will keep it from ever being the front window, and thus a
- black hole for events. * mac/tkMacButton.c (ButtonEventProc):
- Disable the controls when the window is in the background. This
- is required by the MacOS HIG. This doesn't always get called when
- it should, it still needs more work.
+2002-02-27 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * mac/tkMacDialog.c: Pretty substantial rewrite to include
- Navigation Services support for systems which have it.
+ * tests/socket.test (2.7): Accepted and applied patch for Tcl SF
+ bug #523470 provided by Don Porter <dgp@users.sourceforge.net>
+ to avoid timing problems in that test.
-2000-04-14 Eric Melski <ericm@scriptics.com>
+ * unix/tclUnixChan.c (TclpOpenFileChannel): Added code to regonize
+ "/dev/tty" (by name) and to not handle it as tty / serial
+ line. This is the controlling terminal and is special. Setting
+ it into raw mode as is done for other tty's is a bad idea. This
+ is a hackish fix for expect SGF Bug #520624. The fix has
+ limitation: Tcl_MakeFileChannel handles tty's specially too, but
+ is unable to recognize /dev/tty as it only gets a file
+ descriptor, and no name for it.
- * win/tkWinKey.c: Added check for ASCII delete character in
- KeycodeToKeysym, to fix [Bug: 5090]. See comment in code for more
- information.
-
- * generic/ks_names.h: Added Scroll_Lock and Sys_Req definitions.
-
- * win/tkWinKey.c: Changed implementation of KeycodeToKeysym,
- et. al., to use a keycode table for lookups; this will result in
- faster keycode -> keysym translations for non-ASCII keys like
- Control, Alt, etc.
-
-2000-04-14 Jeff Hobbs <hobbs@scriptics.com>
-
- * win/tkWinWm.c (WmProc): added check in WM_MOUSEACTIVATE so we
- correctly activate native menus when clicking in when we didn't
- have focus [Bug: 2272]
-
- * generic/tkCanvas.c (CanvasEventProc:2451): corrected cast
-
- * generic/tkEntry.c (Tk_EntryObjCmd): adjusted finishing error
- cases and changed TK_CONFIG_NULL_OK to TK_OPTION_NULL_OK
-
- * tests/scale.test:
- * generic/tkScale.c:
- * generic/tkScale.h:
- * unix/tkUnixScale.c:
- * mac/tkMacScale.c: moved (PixelToValue|ValueToPixel|SetScaleValue)
- to tkScale.c. Caused an associated variable to be immediately set
- [Bug: 4833]
-
- * library/scale.tcl (tkScaleActivate): reduced number of scale
- redisplays by checking current value of state before setting it
- again. [Bug: 4191]
-
- * tests/winDialog.test: tk_chooseDirectory seems to get a noop
- from GetOpenFileName in the static build, hanging some tests.
- The tests were fixed to timeout (noop cause unknown).
-
- * unix/aclocal.m4 (SC_ENABLE_THREADS): enhanced the detection of
- pthread_mutex_init [Bug: 4359] and (SC_CONFIG_CFLAGS) added
- --enable-64bit-vis switch for Sparc VIS compilation [Bug: 4995]
-
-2000-04-13 Eric Melski <ericm@scriptics.com>
-
- * win/tkWinKey.c: Added smarts to check whether the left or right
- Control, Shift, or Alt key was pressed. [Bug: 870].
-
- * win/tkWinMenu.c: Corrected code that created separator items on
- menus; originally, it requested that the system be responsible for
- drawing those items, so it would ignore configuration items like
- the widget background. Now, we draw the separators ourselves (as
- we do with every other kind of menu item already). [Bug: 1166].
-
- * win/tkWin3d.c:
- * unix/tkUnix3d.c: Applied patch from [RFE: 2501]: adds more
- sophisticated smarts to TkpGetShadows, so that the highlight of a
- very bright color is actually distinguishable from the color, and
- the shadow of a very dark color is similarly distinguishable from
- the color.
-
- * generic/tkCanvas.c: Applied patch from [Bug: 4202]; adds a check
- for NULL tkwin in Tk_CanvasEventuallyRedraw.
-
-2000-04-12 Jeff Hobbs <hobbs@scriptics.com>
-
- * test/winClipboard.test:
- * win/tkWinInt.h:
- * win/tkWinClipboard.c (UpdateClipboard):
- * win/tkWinX.c (GenerateXEvent): added updatingClipboard tsd and
- TkWinUpdatingClipboard accessor function to allow us to flag
- ourselves when we are the ones updating the clipboard. This
- corrected inability to create our own clipboard types within a Tk
- application. [Bug: 2338 4318]
- * win/tkWinTest.c (TestclipboardCmd): improved TestclipboardCmd
- with better error handling and obj'ification
-
-2000-04-11 Eric Melski <ericm@scriptics.com>
-
- * msgcat.n: Added docs for new behavior from patch in [Bug: 4158].
-
- * msgcat.test: Added tests for new behavior from patch in [Bug:
- 4158].
-
- * msgcat.tcl: Applied patch from [Bug: 4158], which enables
- msgcat::mc to search the entire namespace ancestry chain for
- message translations (ie, first it checks the current namespace,
- then the parent, then the parent's parent, etc). Also allows the
- specification of additional args for msgcat::mc; if extra args are
- given, the [format] command is used to substitute the additional
- args in the translated message.
-
- * library/bgerror.tcl: Moved check for withdrawn state after check
- for tkerror; this was causing problems when tkerror was used.
-
-2000-04-10 Eric Melski <ericm@scriptics.com>
-
- * library/bgerror.tcl: Added check for withdrawn state of . and
- unsetting of transient bit for .bgerrorDialog if . is not
- viewable; this protects against the application hanging on systems
- like Windows, where transient windows are withdrawn with their
- parents. [Bug: 4370].
-
- * tests/event.test: Added test for [event generate $widget
- <Alt-z>] [Bug: 4611].
-
- * tests/choosedir.test: Changed "namespace import ::tcltest" to
- "namespace import -force ::tcltest".
-
- * win/tkWinKey.c:
- * unix/tkUnixKey.c:
- * mac/tkMacKeyboard.c: Changed InitKeymapInfo to
- TkpInitKeymapInfo. [Bug: 4611].
-
- * generic/tkStubInit.c:
- * generic/tkIntDecls.h: Re-gen'd from tkInt.decls.
-
- * generic/tkInt.decls: Added TkpInitKeymapInfo to list of function
- decls.
-
- * generic/tkBind.c (HandleEventGenerate): Added code to initialize
- keymap info if necessary, and to correctly set modifier bits in
- XEvent structure create to handle [event generate] calls.
- Previously, the alt/meta bits were not set correctly, so [event
- generate $widget <Alt-z>] would always fail. [Bug: 4611]
-
-2000-04-07 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkGrid.c (InitMasterData): fixed uninit'd data in
- GridMaster struct [Bug: 4387]
-
- * library/safetk.tcl (disallowTk): made disallowTk work in the
- simple case.
-
- * library/comdlg.tcl (tkFocusGroup_In): fixed key navigation
- problems in dialogs under CDE [Bug: 2960]
-
- * tests/winDialog.test: removed knownBug constraint from 5.16
-
- * win/tkWinFont.c (GetScreenFont): corrected adjustment against
- LC_FACESIZE limitation for NT [Bug: 4931]
-
- * win/makefile.vc (TKTEST_OBJS):
- * win/Makefile.in (TKTEST_OBJS): moved tkWinTest.c from normal
- objs to TKTEST_OBJS where it belonged.
-
-2000-04-03 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkTest.c: fixed incorrect platform inclusion for
- TkplatformtestInit (it would never get called).
-
- * unix/Makefile.in (MAN_INSTALL_DIR): patch to accept --mandir
- correctly [Bug: 4085]
-
- * library/clrpick.tcl (tkColorDialog_Config): error now thrown
- when -initialcolor "" specified. [Bug: 4198]
-
-2000-03-31 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/DrawFocHlt.3: doc name correction
-
- * generic/tkEntry.c: set TK_OPTION_NULL_OK bit on -invcmd option
- and removed #ifdef ENTRY_VALIDATE expressions
-
- * library/menu.tcl (tkMenuInvoke): corrected naming of tearoffs
- [Bug: 4506]
-
- * library/tkfbox.tcl (tkIconList_Goto): caused browsecmd to be
- called in tkIconList_Select. This causes the entry to be set
- properly when using the type-in-name-in-listbox bindings.
-
- * win/tkWinDialog.c: added unicode-aware open/save file dialogs
-
- * win/tkWinFont.c (TkpFontPkgInit): move private ref to platformId
- to TkWinGetPlatformId
-
- * win/tkWinMenu.c (SetDefaults): moved private use of versionInfo
- to TkWinGetPlatformId and removed all code for
- (versionInfo.dwMajorVersion < 4) (== Win32s)
-
- * win/tkWinX.c:
- * win/tkWin32Dll.c: moved TkWinGetPlatformId to tkWinX.c
- * win/tkWinInit.c: added TkWinXInit to TkpInit to ensure that its
- called for static Windows shells. [Bug: 3647]
-
- * win/tkWinInt.h:
- * win/tkWinX.c:
- * win/tkWinDraw.c (SetUpGraphicsPort):
- * win/tkWinScrlbr.c (UpdateScrollbar): removed use of tkpIsWin32s
-
- * win/tkWinInt.h (TkWinDCState struct): added bkmode value
- * win/tkWinDraw.c (TkWinGetDrawableDC, et al): added support for
- properly transparent dashed lines on Windows. [Bug: 4617]
-
-2000-03-30 Eric Melski <ericm@scriptics.com>
-
- * generic/tkImgGIF.c: Fixed some ANSI specific bits to avoid
- compile problems with non-ANSI compilers (ie, replace const with
- CONST, etc). [Bug: 4223].
-
- * unix/configure.in: Applied patch from [Bug: 4237]; ensures that
- srcdir is fully qualified.
-
- * unix/Makefile.in: Applied patch from [Bug: 4237]; if tcltest was
- not compiled, make test/tktest failed. Now it has a rule to build
- tcltest if it has not been built.
-
-2000-03-28 Eric Melski <ericm@scriptics.com>
-
- * library/tkfbox.tcl: Moved an overlooked tkFDialog* function in
- ::tk::dialog::file namespace.
-
- * tests/unixWm.test: Added tests for memory leak conditions in
- tkUnixWm.c.
-
- * tests/canvas.test: Added test for bad configuration options on
- empty and non-empty canvas.
-
- * generic/tkCanvas.c: Removed bad code in CANV_CONFIGURE block of
- CanvasWidgetCmd; this was causing non-empty canvases to improperly
- handle bad configuration options [Bug: 4456].
-
-2000-03-27 Eric Melski <ericm@scriptics.com>
-
- * unix/tkUnixWm.c: Applied patch from [Bug: 4405]; fixes memory
- leak in Unix wm command.
-
-2000-03-24 Eric Melski <ericm@scriptics.com>
-
- * tests/filebox.test:
- * tests/choosedir.test: Updated tests.
-
- * library/xmfbox.tcl: Updated to stash data array in
- ::tk::dialog::file namespace instead of in global namespace.
-
- * library/tkfbox.tcl: Extended some functions to support creation
- of a choosedir dialog, to allow greater code reuse between the two
- dialogs. Moved tkFDialog* functions into a namespace
- (::tk::dialog::file). Because these are private Tk functions (and
- should thus not be used directly by users), this should not impact
- anybody (the tk_getOpenFile and tk_getSaveFile commands still
- exist at the global scope).
-
- * library/tk.tcl:
- * library/tclIndex: Updated function names for tkFDialog*
- functions and choosedir functions.
-
- * library/choosedir.tcl: New and improved implementation of
- tk_chooseDirectory dialog. Based on tk_getOpenFile dialog.
-
-2000-03-23 Eric Melski <ericm@scriptics.com>
-
- * generic/tkWindow.c:
- * generic/tkInt.h: Updated Tcl_OptionCmd -> Tcl_OptionObjCmd
-
- * generic/tkOption.c: Tcl_Obj'ectified the "option" command.
-
-2000-03-22 Eric Melski <ericm@scriptics.com>
-
- * library/listbox.tcl (tkListboxCancel): Added a check for empty
- string value for tkPriv(listboxPrev). Without this check, it's
- possible to get a stack trace under certain conditions. [Bug: 4373].
-
-2000-03-15 Sven Delmas <sven@scriptics.com>
-
- * win/tkWinDialog.c: Changed the behavior for the
- tk_chooseDirectory dialog under Windows. Instead of trying to
- return the currently selected listbox entry (which didn't work in
- case the user selected the initial directory anyway), we now
- return the value shown in the entry. This seems to be in
- accordance with the expected behavior for this dialog.
-
-2000-03-14 Eric Melski <ericm@scriptics.com>
-
- * tests/choosedir.test: Marked test 3.1 and 3.2 as bad until the
- issue with those tests on IRIX can be determined.
-
-2000-03-10 Eric Melski <ericm@scriptics.com>
-
- * library/menu.tcl: Applied patch from [Bug: 4155]; protects
- against grabs on non-viewable windows.
-
-2000-03-08 Eric Melski <ericm@scriptics.com>
-
- * tests/choosedir.test: Modified test 3.1 (-mustexist works) to be
- more careful about cleaning up its potentially troublesome after
- events.
-
-2000-03-07 Eric Melski <ericm@scriptics.com>
-
- * tests/button.test:
- * generic/tkButton.c: Added -disabledforeground/-state to labels.
-
-2000-03-07 Jeff Hobbs <hobbs@scriptics.com>
-
- * tests/entry.test:
- * generic/tkEntry.c (EntrySetValue): malloc the value when
- validating because validation could cause the pointer to become
- invalid. Also fixed configure to not trigger focus-based
- validation. Improved use of Tcl_WrongNumArgs. [Bug: 4320]
-
-2000-03-06 Eric Melski <ericm@scriptics.com>
-
- * library/menu.tcl: Added a check in tkMenuFirstEntry that changes
- menu behavior to only auto-post an immediate child cascade if we
- are currently on a menubar menu. This prevents massive
- auto-cascading in cases where the first entry of the cascade is
- itself a cascade, and the first entry of that cascade is a
- cascade, and the first entry of that cascade is a cascade
- ... [Bug: 676].
-
- * generic/tkOldConfig.c: Added check for NULL tkwin value in
- Tk_ConfigureWidget [Bug: 4079]
-
- * generic/tkWindow.c: Added check for NULL tkwin value in
- Tk_NameToWindow [Bug: 4079]
-
-2000-03-02 Jeff Hobbs <hobbs@scriptics.com>
-
- * tests/color.test:
- * xlib/xcolors.c (XParseColor FindColor):
- * win/tkWinColor.c (XAllocColor): Fixed bit fiddling for colors to
- return "correct" values for color mapping. [Bug: 4282]
-
- * unix/Makefile.in (SCRIPT_INSTALL_DIR): removed extraneous '/'
- * unix/aclocal.m4: corrected TCL_NEEDS_EXP_FILE to be 1 for AIX
-
- * win/tkWinInt.h: change extern to EXTERN for TkWinChildProc
- declaration with extra #defs. [Bug: 4240]
-
- * library/focus.tcl: fixed tkFocusOK to protect $w in
- uplevel with list. [Bug: 4208]
-
- * doc/CrtItemType.3: fixed docs for Tk_CreateItemType to reflect
- changes made in 8.3.0 (but old style would still work as well).
- [Bug: 4252]
-
- * tests/config.test: extra test to check object cleanup when
- destroying the widget
- * generic/tkListbox.c (DestroyListbox): fixed crash in
- DestroyListbox due to null tkwin. [Bug: 4207]
-
- * tests/entry.test: added test suite for entry validation
- * doc/entry.n: improved docs discussing caveats and gotchas when
- mixing textvar with widget validation
- * generic/tkEntry.c (EntryValidateChange): improved handling of
- validation with relation to -textvariable. Previously, it would
- turn off whenever the textvar was set. Now it will it will turn
- off only when the textvar is set and validation returns 0. Added
- %V (type of validation occuring) to %-subs to help work with
- trickier validation.
-
-2000-03-01 Eric Melski <ericm@scriptics.com>
-
- * tests/clrpick.test:
- * library/clrpick.tcl: Added code to make color chooser dialog
- inherit screen setting from parent (bug #2334)
-
-2000-02-25 Jeff Hobbs <hobbs@scriptics.com>
-
- * win/tkWinWm.c (RaiseWinWhenIdle): Checked for the possibility
- that the window could be destroyed (can occur with
- wm deiconify .toplevel; destroy .toplevel).
+2002-02-26 Jeff Hobbs <jeffh@ActiveState.com>
-2000-02-25 Eric Melski <ericm@scriptics.com>
+ * generic/tclCmdAH.c (StoreStatData): corrected mem leak.
- * generic/tkImgGIF.c: Applied "spirit of" the patch in 1605 (the
- submitted patch was more complicated than necessary and did not
- extend to writing GIF's, only reading), to allow reading/writing
- of GIF files on EBCDIC and other non-ASCII based systems.
+ * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): prevent obj leak in
+ remedial regsub case.
-2000-02-14 Eric Melski <ericm@scriptics.com>
+ * generic/tclFileName.c (Tcl_TranslateFileName): decr refcount for
+ error case to prevent mem leak.
- * unix/tk.spec: RPM specification for producing a binary Tk RPM
- for Linux.
+ * generic/tclVar.c (Tcl_ArrayObjCmd): removed extra obj allocation.
- * unix/Makefile.in: Added rpm target to generate Tk
- binary RPM.
+ * unix/tclUnixSock.c (Tcl_GetHostName): added an extra
+ gethostbyname check to guard against failure with truncated
+ names returned by uname.
-2000-02-10 Jeff Hobbs <hobbs@scriptics.com>
+ * unix/configure:
+ * unix/tcl.m4 (SC_SERIAL_PORT): added sys/modem.h check and defined
+ _XOPEN_SOURCE_EXTENDED for HP-11 to get updated header decls.
- 8.3.0 RELEASE
+ * unix/tclUnixChan.c: added Unix implementation of TIP #35, serial
+ port support. [Patch #438509] (schroedter)
- * changes: updated for 8.3.0 release
+2002-02-26 Miguel Sofer <msofer@users.sourceforge.net>
- * generic/tkImgGIF.c (FileReadGIF): added cast for trashBuffer
+ * generic/tclCmpCmds.c: (bugfix to the bugfix, hopefully the last)
+ Bugfix to the new [for] compiling code: was setting a
+ exceptArray parameter using another param which wasn't yet
+ initialised, thus filling it with noise.
- * generic/tkIntXlibDecls.h:
- * generic/tkInt.decls: declared some Xlib emulation calls for
- the Mac
+2002-02-25 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * generic/tkFrame.c (TkInstallFrameMenu): added extra panic to
- inform user of bad call when framePtr is NULL [Bug: 2530]
+ * mac/tclMacSock.c (TcpGetOptionProc): Changed to recognize the
+ option "-error". Essentially ignores the option, always
+ returning an empty string.
- * generic/tkMenu.c (DestroyMenuInstance): Placed checks around
- menu name objects before trying to incr the ref. [Bug: 3402]
+2002-02-25 Jeff Hobbs <jeffh@ActiveState.com>
- * generic/tkTest.c: removed USE_OLD_IMAGE def for Mac
+ * doc/Alloc.3:
+ * doc/LinkVar.3:
+ * doc/ObjectType.3:
+ * doc/PkgRequire.3:
+ * doc/Preserve.3:
+ * doc/TCL_MEM_DEBUG.3: Updated documentation to describe the ckalloc,
+ ckfree, ckrealloc, attemptckalloc, and attemptckrealloc macros, and
+ to accurately describe when and how they are used. [Bug #497459] (dgp)
- * library/listbox.tcl:
- * library/text.tcl: added support for <4> and <5> for mousewheel
- style scrolling on Unix for mice that map to these buttons.
+ * generic/tclHash.c (AllocArrayEntry, AllocStringEntry):
+ Before invoking ckalloc when creating a Tcl_HashEntry,
+ check that the amount of memory being allocated is
+ at least as large as sizeof(Tcl_HashEntry). The previous
+ code was allocating memory regions that were one
+ or two bytes short. [Bug #521950] (dejong)
- * tests/scrollbar.test: fixed check of testmetrics command to
- allow unix tests to run (testmetrics is mac/pc only)
+2002-02-25 Miguel Sofer <msofer@users.sourceforge.net>
- * unix/tkUnixWm.c (Tk_CoordsToWindow): qualified delete of error
- handler as the goto label is reached from above and below.
+ * generic/tclBasic.c (Tcl_EvalEx): avoiding a buffer overrun
+ reported by Joe English, and restoring tcl7.6 behaviour for
+ [subst]: badly terminated nested scripts will raise an error
+ and not be evaluated. [Bug #495207]
- * unix/configure.in:
- * unix/aclocal.m4: cleaned up macros to coincide with tcl.m4,
- added -export-dynamic to LDFLAGS for FreeBSD-3+ [Bug: 2998]
+2002-02-25 Don Porter <dgp@users.sourceforge.net>
- * unix/README:
- * unix/Makefile.in (dist): removed porting.notes and porting.old
- from distribution and CVS. The information was very outdated. Now
- refer to http://dev.scriptics.com/services/support/platforms.html
+ * unix/tclUnixPort.h: corrected strtoll prototype mismatch on Tru64.
+ * compat/strtod.c (strtod): simplified #includes
+ * compat/strtol.c (strtol): gather result in a long before returning
+ as a long: necessary on platforms where sizeof(int) != sizeof(long).
- * xlib/xgc.c: #def'd out XDrawSegments for the Mac, and added
- some extra include info for the Mac
+2002-02-25 Daniel Steffen <das@users.sourceforge.net>
-2000-02-09 Jim Ingham <jingham@cygnus.com>
+ * unix/tclLoadDyld.c: updated to use Mac OS X 10.1 dyld APIs that
+ have more libdl-like semantics. (bug #514392)
- * mac/tkMacButton.c: Stop removing the appearance window from the
- Window List. It is not clear why Ray did this, and it causes the
- Appearance manager to crash at random times.
-
- * mac/tkMacWM.c: Add support in unsupported1 style for the Appearance
- specification of window styles, including floating window support.
- * mac/tkMacWindowMgr.c: Operate on the front non-floating window,
- unless the mouse is directly over the floating window. Also,
- keystrokes go to the front non-floating window.
- * mac/tkMacAppInit.c: Initialize floating window support.
- * mac/tkMacScrlbr.c:
- * mac/tkMacmenu.c: Fixes for floating windows - operate on the
- FrontNonFloatingWindow.
- * mac/tkMacLibrary.r: Fix typo in File info string.
- * mac/tkMacApplication.r: Fix typo in file info string. Add
- Finder balloon help for no apparent reason.
-
- * mac/tkMacSubwindows.c: Change panic in tkMacGetDrawablePort to
- Debugger. This is only a temporary fix. The panic is only
- triggered when a safeTk interpreter is torn down, and ignoring it
- does no harm. I haven't figured out how to avoid it yet, however.
- Also use the Appearance MoveWindowStructure call when available.
-
- New Files:
- * MW_TkOldImageHeader.h: Handle #defining USE_OLD_IMAGE for tkImgPPM.c.
- * MW_TkTestHeader.h:
- * MW_TkTestHeader.pch:
- * MW_TkHeader.h: Add separate prefix files for test & release
- versions of Tk, so we can just have separate targets w/o having to
- edit files.
-
- * tclets.r: The D&D Tclets icon in rez form so we can have a
- target for this.
+2002-02-25 Miguel Sofer <msofer@users.sourceforge.net>
- The above are curtesy of Daniel Steffen (steffen@math.mq.edu.au)
-
- * tkMacAppearanceStubs.c: Stubs of the Mac Appearance calls I use
- so I can link the static 68K Shell without putting ifdef's all
- over the code.
+ * generic/tclCompCmds: fixing a bug in patch dated 2002-02-22, in
+ the code for [for] and [while]. Under certain conditions, for long
+ bodies, the exception range parameters were badly computed. Tests
+ forthcoming: I still can't reproduce the conditions in the
+ testsuite (!), although the bug (with assorted segfault or panic!)
+ can be triggered from the console or with the new parse.bench in
+ tclbench.
-2000-02-08 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tk.decls:
- * generic/tkBind.c:
- * generic/tkInt.decls:
- * generic/tkIntDecls.h:
- * generic/tkStubInit.c:
- * mac/tkMacKeyboard.c:
- * unix/tkUnixKey.c:
- * win/tkWinKey.c: Fix for keyboard handling of "dead" keys and
- caps lock from Peter Spjuth. [Bug: 4105 3359 2493]
- Split functions into platform specific files:
- Static functions GetKeySym(), SetKeycodeAndState() and InitKeymapInfo()
- from tkBind.c moved into platform files tkWinKey.c tkUnixKey.c and
- tkMacKeyboard.c. GetKeySym() and SetKeycodeAndState() renamed to
- Tkp* and made public (as private functions) in tkInt.decls.
-
- Step 2, fixes in tkWinKey.c
- New static function: KeycodeToKeysym(), based on XKeycodeToKeysym()
- but with different arguments, and a lot of improvements.
- TkpGetString() changed to use KeycodeToKeysym() + other fixes.
- TkpGetKeySym() changed to use KeycodeToKeysym() + other fixes.
- InitKeymapInfo() changed to use KeycodeToKeysym().
- TkpSetKeycodeAndState() rewritten, mostly by copying code from
- XKeysymToKeycode().
- XKeycodeToKeysym() rewritten. Preferably it should be removed.
-
- EXPLANATION: The main problem is ToAscii() which has a lot of side
- effects, and also that XKeycodeToKeysym() is not provided enough
- input to do a proper job. The changes' main goal is to avoid
- calling ToAscii() if not necessary, and to provide it with as
- correct information as possible when called. Also some attempts
- to clean up what ToAscii() did are done. See the code for details.
-
- BUGS FIXED: Typing shifted (and AltGr) dead keys did not work.
- Keyboard lock lamps did not work on Win98.
- Events regarding AltGr-keys behaved badly.
- Example: On a Swedish keyboard, $ is typed with AltGr-4.
- That keyboard event would get the keysym '4' not 'dollar'.
- Also, doing [event generete . <Key-dollar>] would send keysym '4'.
- Translation to ascii in TkpGetString did not handle return and
- tab correctly. I.e. [event generate . <Key-Return>] gave wrong %A
-
- * generic/tkDecls.h:
- * generic/tk.decls:
- * generic/tk.h: moved new public functions created in dash patch
- to the stubs interface [Bug: 4062]
-
- * generic/tk.h:
- * doc/CrtImgType.3:
- * doc/CrtPhImgFmt.3:
- * generic/tk.h:
- * generic/tkImgGIF.c:
- * generic/tkImgPhoto.c:
- * generic/tkStubImg.c (new file):
- * generic/tkTest.c:
- * unix/Makefile.in:
- * win/Makefile.in:
- * win/makefile.vc: improved support for moving from the old style
- image C API to the new obj'ified one with new Tk_InitImageArgs
- command and stub'ing of image code. See docs for how to make the
- transition. [Bug: 4060]
-
- * library/tk.tcl: wrapped check for tcl_platform(os) around info
- exists because it won't in safe interpreters
-
- * win/tkWinFont.c: corrected symbol font use to only work on 8-bit
- characters [Bug: 2406]
-
- * unix/aclocal.m4: changed all -fpic to -fPIC
-
- * README:
- * unix/configure.in:
- * win/configure.in:
- * generic/tk.h (TK_RELEASE_SERIAL): Moved to 8.3.0 patchlevel
-
-2000-02-07 Eric Melski <ericm@scriptics.com>
-
- * library/tkfbox.tcl: Applied patch from bug #4117,
- tk_getOpenFile/getSaveFile doesn't do the right thing when user
- types a directory name in the entry and a default extension is
- specified.
-
-2000-02-05 Jeff Hobbs <hobbs@scriptics.com>
-
- * unix/tkUnixScale.c (TkpDestroyScale): changed ckfree to
- Tcl_EventuallyFree to behave with Tcl_Preserve in TkpDisplayScale
- (prevents possible segfault).
-
-2000-02-03 Eric Melski <ericm@scriptics.com>
-
- * tests/canvText.test: test for fix for bug #2525.
-
- * generic/tkFont.c (Tk_ComputeTextLayout): Was erroneously setting
- the width of newline-only text display chunks to some arbitrary
- huge number, instead of 0; this was interfering with things like
- the canvas find enclosed feature. (bug #2525).
-
- * tests/text.test:
- * generic/tkText.c (DumpLine/DumpSegment): Changed DumpSegment to
- take a TkTextIndex instead of two integer offsets, so that it
- could use TkTextPrintIndex to format the offsets into an index,
- which makes it UTF smart (bug #2582).
-
-2000-02-01 Eric Melski <ericm@scriptics.com>
-
- * library/tk.tcl:
- * library/tclIndex:
- * library/choosedir.tcl: Moved choosedir functions into the
- ::tk::dialog::chooseDir namespace instead of a toplevel
- ::tkChooseDirectory namespace. Additional cleanup on the
- chooseDir dialog.
-
-2000-02-01 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/text.n: clarified docs on what happens during a search with
- -count when images/windows are embedded
-
- * win/Makefile.in (install-*): reduced verbosity of install
-
- * win/tkWinPixmap.c (XGetGeometry): added support for windows in
- XGetGeometry [Bug: 4069]
-
- * win/tkWinFont.c (GetScreenFont): fixed possible mem overrun with
- long font names [Bug: 4108]
-
- * win/tkWinDialog.c: added EnableWindow calls to dialogs to
- correct for possible loss of control in parent Tk toplevel
- [Bug: 1212 et al]
-
- * generic/tkRectOval.c (ConfigureRectOval):
- * generic/tkCanvLine.c (ConfigureLine):
- * generic/tkCanvPoly.c (ConfigurePoly):
- * generic/tkCanvArc.c (Configure/DisplayArc): fixed handling for
- negative dash values [Bug: 4104]
-
- * generic/tkScale.c (TkRoundToResolution): fixed incorrect
- assumption that (N+1)*delta = N*delta + delta with floating point
- math [Bug: 3689, 4099]
- (DestroyScale) Fixed check for cancelling TkpDisplayScale (was
- REDRAW_ALL, is now REDRAW_PENDING)
-
- * tests/listbox.test: corrected test case for listbox itemconfigure
-
- * unix/aclocal.m4: added *BSD ELF recognition for
- SHARED_LIB_SUFFIX determination (from Tcl's tcl.m4)
-
-2000-01-27 Eric Melski <ericm@scriptics.com>
-
- * generic/tkImgPhoto.c: Removed unneccesary object translation in
- MatchStringFormat (bug #4103).
-
-2000-01-27 Eric Melski <ericm@scriptics.com>
-
- * generic/tkImgGIF.c: Additional code cleanup (now we only have
- one decoder! neat!)
-
-2000-01-26 Eric Melski <ericm@scriptics.com>
-
- * doc/getOpenFile.n:
- * doc/chooseDirectory.n: Man page/cross links for
- tk_chooseDirectory (bug #1786).
-
- * library/tk.tcl:
- * library/tclIndex: Added hooks for tk_chooseDirectory. (bug #1786)
-
- * library/choosedir.tcl: tk_chooseDirectory implementation for
- Unix/Mac (bug #1786).
-
- * generic/tkImgPhoto.c: Added some comments regarding slow
- processing of transparent images.
-
- * generic/tkImgGIF.c: Improved GIF decoder for ~60% speed
- increase. Added some comments on how to further improve the
- implementation, time permitting.
-
- * doc/photo.n: Added a description of what the -data string can
- contain (base64 or binary data).
-
- * generic/tkImgPhoto.c: Fixed bug with use of binary data for
- "-data" option to "image create" command.
-
-2000-01-21 Eric Melski <ericm@scriptics.com>
-
- * library/tkfbox.tcl: Fixed bug relating to incorrect parent
- values for error message boxes displayed by the file dialog (bug
- #3616).
-
- * tests/text.test:
- * generic/tkText.c: Fixed bug relating to regexp searching for
- empty lines; previously, the starting line was ignored. (bug #1643).
-
-2000-01-20 Jeff Hobbs <hobbs@scriptics.com>
-
- * library/text.tcl: fixed double-click selection behavior where
- there were embedded windows/widgets in the same line. [Bug: 3989]
-
- * win/tkWinWm.c (TkWmProtocolEventProc): cached atom name as the
- window could get destroyed during eval [Bug: 2513]
-
- * generic/tkCanvLine.c (LineCoords): fixed segfault when too few
- coords were passed to a line with certain options set (it should
- always have thrown an error anyway). [Bug: 4042]
-
- * tests/text.test:
- * generic/tkText.c: fixed missing " in error case and missing
- 'dump' in subcommand listing [Bug: 4036]
-
- * generic/tkListbox.c: adjusted use of basic string concatenation
- in (non-K&R behavior) [Bug: 4027]
- Swapped bg/fg class for -select(bg|fg) for listbox and their
- items [Bug: 4039]
-
- * unix/mkLinks:
- * doc/WindowId.3: added docs for Tk_IsContainer and Tk_IsEmbedded
-
- * doc/text.n: clarified mark gravity definition and usage of
- ``word'' in binding definitions. [Bug: 2004 2277 1388]
-
- * generic/tkInt.h: moved new TkDisplay useInputMethods structure
- element to end to not disturb position of previous elements in
- the structure (as compared to Tk <=8.2).
-
-2000-01-20 Eric Melski <ericm@scriptics.com>
-
- * tests/grid.test: Added a test for the consecutive ^ and multiple
- widget case (bug #1386).
-
- * generic/tkGrid.c: Fixed interpretation of consecutive ^
- characters in grid command. Previously, ^ ^ was interpreted as
- meaning that there must be a 2-column widget above to extend,
- neglecting the case where there was actually 2 1-column widgets
- above. Now, ^ ^ is interpreted as a possible width; the gridder
- will consume as many ^'s as there are columns in the widget, and
- leave the rest for the extension of other widgets. (bug #1386).
-
-2000-01-19 Eric Melski <ericm@scriptics.com>
-
- * library/tk.tcl: Created a virtual event <<PrevWindow>> for
- reverse tab traversals, with one default binding <Shift-Tab>, and
- OS specific bindings for Linux, HP-UX, and IRIX. (bug #3163)
-
-2000-01-13 Jeff Hobbs <hobbs@scriptics.com>
-
- * changes: updated changes file to reflect 8.3b2 mods
- * README:
- * generic/tk.h:
- * unix/configure.in:
- * win/configure.in: updated to patchlevel 8.3b2
-
- * win/tkWinWm.c: added visibility event handler to make sure
- that transient window wrappers would be updated when the master
- was initially mapped.
-
-2000-01-12 Jeff Hobbs <hobbs@scriptics.com>
-
- * tests/text.test: changed test to reflect change of -hidden
- to -elide in search options.
-
- * win/tkWinScrlbr.c: added check for valid hwnd in ModalLoopProc
- to avoid crash when building statically
-
- * doc/event.n:
- * generic/tkBind.c: prevented core with event -warp on Windows
- when window wasn't mapped [Bug: 4004] and added docs stating
- the requirement for mapped windows.
-
- * generic/tkCanvas.c: fixed mem leak with TagSearchExprInit
- [Bug: 3977]
-
- * generic/tkStubInit.c:
- * generic/tkDecls.h: remove non-existent
- Tk_(Get|Create)CanvasVisitor prototypes
-
- * generic/tkText.c:
- * generic/tkEntry.c: fixed cursor to not blink when widget was
- disabled [Bug: 1807]
-
- * generic/tkRectOval.c: added note about change to bloat for
- RectOval bounds calculation for WIN32 only
-
- * library/dialog.tcl: improved handling of $default arg to allow
- for name of given button, as well as bounds checking
-
- * doc/wm.n:
- * tests/winWm.test:
- * tests/unixWm.test:
- * mac/tkMacWm.c:
- * unix/tkUnixWm.c: fixed possible X error being raised [Bug: 3377]
- * win/tkWinWm.c: wm deiconify in zoom state [Bug: 2077],
- fixed possible flashing of unmapped toplevel in deiconify [Bug: 3338]
- and fixed mapping of transient window [Bug: 572]
- Also, for all wm's, extended 'wm state' command to allow setting
- of the state, and added official support of 'zoomed' state on Win.
-
- * unix/aclocal.m4: strtod bug on Tru64 [Bug: 3378]
-
- * unix/Makefile.in: added tests to prevent unnecessary chmod +x
- in source dirs while installing [Bug: 3367]
-
- * unix/configure.in: properly sub'ed in TK_SHARED_BUILD [Bug: 3385]
-
-2000-01-05 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/text.n:
- * generic/tkText.c:
- * generic/tkText.h:
- * generic/tkTextBTree.c:
- * generic/tkTextDisp.c:
- * generic/tkTextTag.c: removed the -state option for text tags,
- and reoriented it around -elide, as -state disabled was never
- implemented, and -state hidden is better as -elide.
-
- * mac/tkMacClipboard.c: fixed i18n problems with clipboard [Bug: 3544]
-
- * library/entry.tcl:
- * library/focus.tcl:
- * library/listbox.tcl:
- * library/scale.tcl:
- * library/scrlbar.tcl:
- * library/tearoff.tcl:
- * library/text.tcl:
- * library/tkfbox.tcl:
- * library/xmfbox.tcl: fixed unprotected arg parsing through eval/after
- [Bug: 3943]
-
- * unix/Makefile.in: added unix/aclocal.m4 to distribution [Bug: 3938]
- * unix/aclocal.m4: changed NetBSD SHLIB_CFLAGS from -fpic to -fPIC
-
- * win/tkWinImage.c: added static declaration to function
-
-1999-12-22 Jeff Hobbs <hobbs@scriptics.com>
-
- * changes: updated changes file
-
- * generic/tkScale.c:
- * generic/tkScale.h:
- * mac/tkMacScale.c:
- * unix/tkUnixScale.c: fixed potential segv from patch in 3897
-
- * tests/unixWm.test: nonPOrtable -> nonPortable
-
-1999-12-21 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tk.h:
- * unix/configure.in:
- * win/configure.in:
- * win/aclocal.m4:
- * README: updated for patch level 8.3b1
-
- * unix/tkUnixWm.c: fixed panic in Tk_CoordsToWindow to print error
- and continue instead (for Tix) [Bug: 716 et al]
-
- * scale.test:
- * generic/tkScale.c:
- * generic/tkScale.h: fixed possible core when freeing options
- (cursor) associated with scale widget [Bug: 3897]
-
- * doc/MeasureChar.3: fixed docs for Tk_MeasureChars to reflect code
- * doc/listbox.n: fixed formatting problem
-
- * generic/tk3d.c: added extra calculations to ensure that thin
- frames get refreshed too [Bug: 3596]
-
- * unix/tkUnixMenu.c:
- * unix/tkUnixFont.c:
- * generic/tkCanvText.c:
- * generic/tkEntry.c:
- * generic/tkFont.c:
- * generic/tkImgPPM.c: removed extranneous vars that were set but
- never used.
-
- * mac/tclMacHLEvents.c: fixed applescript for I18N [Bug: 3644]
-
- * unix/aclocal.m4: removed -O flag for AIX when using the IBM
- compiler (several versions have a bug that crops up in the text
- widget). [Bug: 2316]
-
- * unix/Makefile.in: removed extra slash in SCRIPT_INSTALL_DIR
- [Bug: 3896]
-
- * library/listbox.tcl: added extra checks for existence of
- tkPriv(listboxSelection) before it was used. [Bug: 3892]
-
-1999-12-16 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/GetCursor.3:
- * win/tkWinCursor.c: added support for Windows cursors to
- TkGetCursorByName (.ani, .cur) using -cursor @<filename>
- (Ascher) [Bug: 1350]
-
- * win/tkWinWm.c: fixed 'wm deiconify' to update position of the
- toplevel if event is waiting before mapping. (Mao) [Bug: 3687]
- This removes the need for 'update idle' before 'wm deiconify' on
- Windows.
-
- * doc/listbox.n: added doc for <<ListboxSelect>> [Bug: 3500]
-
- * doc/getOpenFile.n: removed note that -initialfile didn't work
- for tk_getOpenFile
- * library/tkfbox.tcl: updated tk_get*File to better match the
- Windows file box it emulates, give proper support to -initialfile,
- and fixes lack of global tkPriv call. [Bug: 3735 3882]
-
- * doc/tk.n: added doc for 'tk useinputmethods ...'
- * tests/tk.test:
- * unix/tkUnixKey.c:
- * generic/tkCmds.c:
- * generic/tkEvent.c:
- * generic/tkWindow.c:
- * generic/tkInt.h: add 'tk useinputmethods ?-display win? ?bool?'
- call to provide support for disabling/enabling the use of XIM on
- X. This was previously all done at compile time, and always on.
- Now it is turned off by default, even when available, and the user
- must turn it on to use XIM (per display).
-
- * generic/tkCanvUtil.c: fixed bug in Tk_CanvasPsOutline that freed
- mem it shouldn't.
-
- * generic/tkFont.c: added "bitstream cyberbit" (popular Windows
- CJK font) to list of font fallbacks. (kenny) [Bug: 2407]
-
- * mac/tkMacMenu.c: finished bug 3075 by changing the char values of
- what was checked (verified correctness on Mac).
-
-1999-12-13 Jeff Hobbs <hobbs@scriptics.com>
-
- * doc/canvas.n: added docs for items added by dash patch (-*dash*,
- -state, -active*, -disabled*, -offset, essentially rewrote the
- man patch for completely updated 8.3 canvas widget.
- * doc/entry.n: added docs for entry widget validation
- * doc/event.n: added docs for -warp
- * doc/text.n: doc'ed new -state value 'hidden'
- * doc/GetDash.3: (new file) man page explaining Tk_GetDash
- * generic/tkStubInit.c:
- * generic/tkDecls.h:
- * generic/tkIntXlibDecls.h:
- * generic/tkInt.decls: added XSetDashes and XWarpPointer
- * generic/tk.decls: added Tk_CreateSmoothMethod, and reserved
- two spots
- * generic/tk.h: added Tk_SmoothMethod struct,
- state item to canvas record, #defines for item state,
- support for using old char*-based canvas item C creation
- procedures with -DUSE_OLD_CANVAS,
- Tk_Dash, Tk_TSOffset (-offsets) & Tk_Outline structs and #defs,
- decls for dash, outline and postscript routines
- * generic/tkBind.c: added support for Quadruple clicks, and added
- the -warp option to 'event' with pointer warping routines
- * xlib/xgc.c:
- * generic/tkRectOval.c:
- * generic/tkCanvArc.c:
- * generic/tkCanvBmap.c:
- * generic/tkCanvImg.c:
- * generic/tkCanvLine.c:
- * generic/tkCanvPoly.c:
- * generic/tkCanvPs.c:
- * generic/tkCanvText.c:
- * generic/tkCanvUtil.c:
- * generic/tkCanvWind.c:
- * generic/tkCanvas.c:
- * generic/tkCanvas.h: Canvas and items received overhaul to with
- the addition of the dash patch (Nijtmans, et al) This includes
- objectification of the 'canvas' command, as well as support for
- (where appropriate) dashes in items, extended stipple support,
- state for all items, and postscript generation of images and
- windows. See the new canvas man page for related docs.
- * generic/tkEntry.c: added entry widget validation, see entry.n
- * generic/tkEvent.c: on simulated events, ButtonPress should
- be matched with ButtonRelease to be correct
- * generic/tkFont.c: corrected possible null reference
- * generic/tkFrame.c: made frame a Tcl_Obj based command
- * generic/tkGet.c: added TkGetDoublePixels
- * generic/tkImage.c: bug fixes from Img patch and new
- Tk_PostscriptImage and Tk_SetTSOrigin functions
- * generic/tkImgBmap.c: new ImgBmapPostscript function
- * generic/tkImgPhoto.c: new Tk_CreatePhotoOption, Tk_DitherPhoto
- * generic/tkInt.h: declarations for some new functions
- * generic/tkMessage.c: reworked relief drawing
- * generic/tkOldConfig.c: added TK_CONFIG_OBJS so old style
- ConfigureWidget calls can pass in Tcl_Obj arrays
- * generic/tkScrollbar.c:
- * generic/tkScrollbar.h: made -orient use an option table
- * generic/tkText.c:
- * generic/tkText.h: made -wrap and -state use option tables
- * generic/tkTextBTree.c:
- * generic/tkTextDisp.c:
- * generic/tkTextImage.c:
- * generic/tkTextMark.c:
- * generic/tkTextTag.c:
- * generic/tkTextWind.c: added support for -elide and -state hidden
- * generic/tkTrig.c: changed TkMakeBezierCurve to support returning
- the upper limit of points needed for spline
- * generic/tkUtil.c: new option table parsing routines
- * generic/tkWindow.c: init'ing of warp stuff, mouseButtonState
-
- related bug ids for the fixes:
- [Bug: 648 1541 1540 1779 2168 2311 2297 2340 2348 2578 3386]
-
- * tests/bind.test:
- * tests/canvImg.test:
- * tests/canvPsArc.tcl:
- * tests/canvPsImg.tcl: (new file)
- * tests/canvRect.test:
- * tests/canvText.test:
- * tests/canvas.test:
- * tests/defs.tcl:
- * tests/entry.test:
- * tests/event.test:
- * tests/font.test:
- * tests/frame.test:
- * tests/imgPhoto.test:
- * tests/safe.test:
- * tests/scale.test:
- * tests/scrollbar.test:
- * tests/select.test:
- * tests/text.test:
- * tests/textDisp.test:
- * tests/textTag.test:
- * tests/unixFont.test:
- * tests/unixWm.test:
- * tests/visual_bb.test:
- * tests/winClipboard.test: tests for the dash patch changes
-
- * unix/mkLinks: added GetDash.3 into the mkLink step
-
- * mac/tkMacDraw.c: mac still needs pointer warping routine
- * mac/tkMacXStubs.c:
- * win/tkWinDraw.c:
- * win/tkWinPointer.c: added support for pointer warping and
- platform specific support for dash patch items
-
-1999-12-12 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkText.c: fixed bug in TextSearchCmd for multibyte chars
- (Darley) [Bug: 3839]
-
- * unix/aclocal.m4: added warning when configuring with
- --enable-threads that Tk may have problems
-
-1999-12-09 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkImgGIF.c: updated casting
-
- * win/makefile.vc: removed 16bit stuff, simplified makefile.
-
-1999-12-06 Scott Redman <redman@scriptics.com>
-
- * generic/tkMain.c: need to include tclInt.h for new hook
- functions that are internal-use-only.
-
-1999-12-06 Jeff Hobbs <hobbs@scriptics.com>
-
- * library/comdlg.tcl: removed tclVerifyInteger and tclSortNoCase,
- they weren't used, and were not actually correct
-
- * mac/tkMacFont.c:
- * mac/tkMacMenu.c:
- * mac/tkMacWindowMgr.c: fixed greyed out menu items, handling of
- ... elipsis, font mapping problem, and enabled generated menu
- posting [Bug: 3705]
-
-1999-12-02 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkInt.h:
- * generic/tkWindow.c:
- * generic/tkCmds.c: converted Tk_DestroyCmd, Tk_LowerCmd and
- Tk_RaiseCmd to their ObjCmd equivalent.
-
- * library/msgbox.tcl: added color icons for tk_messageBox on Unix
- and Mac when tk_strictMotif isn't set. (Hipp)
- * library/tk.tcl: added window bounds checking to ::tk::PlaceWindow
-
- * tests/imgPPM.test: fixed test 2.2 to use -format ppm (since
- we know have GIF write capability)
-
-1999-12-01 Scott Redman <redman@scriptics.com>
-
- * generic/tkMain.c :
- * unix/tkAppInit.c:
- * win/winMain.c: Added added hooks into the main() code for
- supporting TclPro and other "big" shells more easily without
- requiring a copy of the main() code.
-
-1999-11-29 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkImgGIF.c: added GIF writing that uses miGIF RLE
- [Bug: 2039, new patch]
-
- * library/entry.tcl: fixed up tkEntrySeeInsert (Nemthi)
-
- * generic/tkListbox.c: fixed 'get' of listbox to return a string
- when only one item is requested.
-
- * tests/clrpick.test:
- * tests/filebox.test: minor whitespace cleanup
-
- * library/tk.tcl: fixed missing $w in ::tk::PlaceWindow
-
-1999-11-24 Jeff Hobbs <hobbs@scriptics.com>
-
- * library/clrpick.tcl:
- * library/msgbox.tcl:
- * library/tk.tcl:
- * library/tkfbox.tcl:
- * library/xmfbox.tcl: fixed dialogs to center over -parent,
- added utility functions ::tk::PlaceWindow, ::tk::SetFocusGrab,
- ::tk::RestoreFocusGrab to tk.tcl to help
-
-1999-11-23 Eric Melski <ericm@scriptics.com>
-
- * tests/listbox.test: Added a test to check that the topIndex is
- update when items are removed from the listvar variable.
-
- * generic/tkListbox.c: Added a check the updates the topIndex when
- items are removed from the listvar variable.
-
- * tests/listbox.test: Added a test to check that the vertical
- scrollbar is updated when the listvar changes.
-
- * generic/tkListbox.c (ListboxListVarProc): added a check that
- sets the UPDATE_V_SCROLLBAR flag if the length of the listvar has
- changed.
-
-1999-11-23 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tk.h:
- * generic/tkConfig.c: added support for TK_OPTION_DONT_SET_DEFAULT
- as equiv for TK_CONFIG_DONT_SET_DEFAULT
- * generic/tkListbox.c: added TK_OPTION_DONT_SET_DEFAULT to the
- item specs
-
-1999-11-19 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkColor.c:
- * generic/tkColor.h: fixed Tk_NameOfColor to work correctly,
- with minor change to TkColor struct.
-
- * generic/tkConsole.c: added static declaration to
- ConsoleDeleteProc function (proto already had it)
-
- * win/tkWinInt.h: removed TkFontAttributes typedef (was
- redundant with tkFont.h).
- * win/tkWinPort.h: put #ifndef __GNUC__ around redefinition
- of str[n]casecmp, as cygwin uses the originals.
- * win/tkWinX.c: changed GetCurrentTime to GetTickCount (the
- former is deprecated). [Bug: 2053]
-
-1999-11-19 Eric Melski <ericm@scriptics.com>
-
- * tests/listbox.test: Added tests for itemcget and itemconfigure.
-
- * doc/listbox.n: Added documentation for -listvar option and for
- itemconfigure and itemcget commands.
-
- * generic/tkListbox.c: Added support for itemconfigure/itemcget
- listbox subcommands (addresses rfe #936)
-
-1999-11-17 Eric Melski <ericm@scriptics.com>
-
- * tests/listbox.test: Updated tests for new error messages.
-
- * generic/tkListbox.c: Improved error messages for bad -listvar's.
-
- * tests/listbox.test: Added tests for bad -listvar's.
-
- * generic/tkListbox.c: Added handlers for bad -listvar's (ie, bad
- lists)
-
- * tests/listbox.test: Added tests for ListboxUpdateHScrollbar.
+2002-02-25 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tkListbox.c: Changed some old static buffers to base
- size on TCL_DOUBLLE_SPACE instead of (completely) hardcoding the size.
+ * compat/strtoul.c, compat/strtol.c, compat/strtod.c: Added UCHAR,
+ CONST and #includes to clean up GCC output.
- * tests/listbox.test: New tests for -listvar functionality, and an
- odd extra case that wasn't covered before.
+2002-02-23 Don Porter <dgp@users.sourceforge.net>
- * generic/tkListbox.c: Tests exposed some bugs, now fixed.
+ * compat/strtoull.c (strtoull):
+ * compat/strtoll.c (strtoll):
+ * compat/strtoul.c (strtoul): Fixed failure to handle leading
+ sign symbols '+' and '-' and '0X' and raise overflow errors.
+ [Bug 440916] Also corrects prototype and errno problems.
-1999-11-16 Eric Melski <ericm@scriptics.com>
+2002-02-23 Mo DeJong <mdejong@users.sourceforge.net>
- * tests/listbox.test: Fixed tests to comply with new objectified
- error messages. No -listvar specific tests yet.
+ * configure: Regen.
+ * unix/tcl.m4 (SC_CONFIG_CFLAGS): Link with -n32
+ instead of -32 when building on IRIX64-6.* system.
+ [Tcl bug 521707]
- * win/tkWinDefault.h:
- * unix/tkUnixDefault.h:
- * mac/tkMacDefault.h: Added default value for -listvar option.
+2002-02-22 Don Porter <dgp@users.sourceforge.net>
- * generic/tkWindow.c: Changed "listbox" mapping from old-school to
- new-school objectified command.
+ * generic/tclInt.h:
+ * generic/tclObj.c: renamed global variable emptyString ->
+ tclEmptyString because it is no longer static.
+ * generic/tclPkg.c: Fix for panic when library is loaded on a
+ platform without backlinking without proper use of stubs. [Bug 476537]
- * generic/tkListbox.c: Objectified listbox; added support for
- -listvar option. Converted internal structure to use a Tcl list
- object to store the data.
+2002-02-22 Jeff Hobbs <jeffh@ActiveState.com>
- * generic/tkInt.h: Changed reference to Tk_ListboxCmd to
- Tk_ListboxObjCmd.
+ * tests/regexpComp.test: updated regexp-11.[1-4] to match changes
+ in regexp.test for new regsub syntax
-1999-11-09 Jeff Hobbs <hobbs@scriptics.com>
+ * unix/configure:
+ * unix/tcl.m4: added --enable-64bit support for AIX-4 (using -q64
+ flag) when using IBM's xlc compiler.
- * generic/tkGrid.c: changed Tcl_Alloc to ckalloc
+ * tests/safe.test: updated safe-8.5 and safe-8.7
+ * library/safe.tcl (CheckFileName): removed the limit on
+ sourceable file names (was only *.tcl or tclIndex files with no
+ more than one dot and 14 chars). There is enough internal
+ protection in a safe interpreter already. Fixes [Tk Bug #521560].
- * generic/tkEntry.c: fixed C expr error in destroy of entry
- that could lead to 'malformed bucket chain' error
+2002-02-22 Miguel Sofer <msofer@users.sourceforge.net>
- * win/winMain.c: corrected winMain to not do a DebugBreak when
- returning an error message from the top level
+ * generic/tclCompCmds: [FR 465811]. Optimising [if], [for] and
+ [while] for constant conditions; in addition, [for] and [while]
+ are now compiled with the "loop rotation" optimisation (thanks to
+ Kevin Kenny).
-1999-10-30 Jeff Hobbs <hobbs@scriptics.com>
+2002-02-22 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * win/tkWinKey.c: fixed XKeysymToKeycode to handle mapping of
- symbolic keysyms (Left, Home, ...) with event generate
+ --- TIP#76 CHANGES ---
+ * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): Final-argument-less
+ [regsub] returns the modified string.
+ * doc/regsub.n: Updated docs.
+ * tests/regexp.test: Updated and added tests.
- * library/entry.tcl: change tkEntrySeeInsert to avoid the use
- of a while loop that could eat CPU tremendously. Behavior of
- moving the cursor at the right edge changes slightly (previously
- it tried to keep the cursor at the right edge, now it moves the
- cursor to a "central right" location - better IMHO).
+ * compat/strtoll.c (strtoll):
+ * compat/strtoull.c (strtoull):
+ * unix/tclUnixPort.h:
+ * win/tclWinPort.h: Const-ing 64-bit compatability declarations.
+ Note that the return pointer is non-const because it is entirely
+ legal for the functions to be called from somewhere that owns the
+ string being passed. Fixes problem reported by Larry Virden.
-1999-10-28 Jeff Hobbs <hobbs@scriptics.com>
+2002-02-21 David Gravereaux <davygrvy@pobox.com>
- * doc/CrtImgType.3:
- * doc/CrtPhImgFmt.3:
- * doc/FindPhoto.3:
- * doc/photo.n:
- * generic/tk.h:
- * generic/tkCmds.c:
- * generic/tkImage.c:
- * generic/tkImgBmap.c:
- * generic/tkImgGIF.c:
- * generic/tkImgPPM.c:
- * generic/tkImgPhoto.c:
- * generic/tkInt.h:
- * generic/tkTest.c:
- * generic/tkWindow.c:
- * tests/imgPhoto.test: added Img patch (Nijtmans) with docs,
- headers #def'd with USE_OLD_IMAGE. Upgrades image stuff to
- Tcl_Obj API, adds alpha channel (images are now 32 bpp)
+ * win/mkd.bat (removed):
+ * win/coffbase.txt (new):
+ * win/makefile.bc:
+ * win/makefile.vc: Changed the 'setup' target to stop using
+ the mkd.bat file and just make the directory right in the rule.
+ Same change to makefile.bc. configure.in nor Makefile.in use
+ it.
- * makefile.vc: changed 'c:/program files' to c:/progra~1
+ coffbase.txt will be the master list for our "prefered base
+ addresses" set by the linker. This should improve load-time
+ (NT only) by avoiding relocations. Submissions to the list
+ by extension authors are encouraged.
-1999-10-19 Jeff Hobbs <hobbs@scriptics.com>
+ Added a 'tidy' target to compliment 'clean' and 'hose' to remove
+ just the outputs. Also removed the $(winlibs) macro as it wasn't
+ being used.
- * library/scrlbar.tcl: changed tkScrollButtonUp to check for
- existence of tkPriv(relief) in order to avoid spurious release
- events
+ Stuff left to do:
+ 1) get the winhelp target to stop building in the tools/
+ directory.
+ 2) stop using rmd.bat
+ 3) add more dependacy rules.
- * unix/Makefile.in: added ChangeLog to dist archive
+ * win/tclAppInit.c: Reverted back to -r1.6, as the header file
+ change to tclPort.h won't allow for easy embedded support
+ outside of the source dist. Thanks to Don Porter for pointing
+ this out to me.
-1999-09-24 Jeff Hobbs <hobbs@scriptics.com>
+2002-02-21 David Gravereaux <davygrvy@pobox.com>
- * */README:
* win/makefile.vc:
- * */configure.in:
- * generic/tk.h:
- * library/tk.tcl: up'd to 8.3a1
-
- * unix/Makefile.in: changed 'mkdir' to 'mkdir -p'
-
- * library/dialog.tcl: changed {Times 18} to {Times 12} for
- dialog font.
-
-1999-09-16 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkFont.c: fixed processing of font options and error
- returned [Bug: 2075]
-
- * win/tkWinWm.c: fixed bug in 'wm deiconify' that raised the
- wrong toplevel, and changed it to not set focus on overridden
- toplevels
-
-1999-09-15 Jeff Hobbs <hobbs@scriptics.com>
-
- * unix/aclocal.m4: added fix for FreeBSD-[1-2] recognition [Bug: 2070]
- and fix to AIX-* to get ldAix right [Bug: 2624], fixed AIX
- version check (readjust from 8-21 fix) and several other config
- fixes for AIX
- * mac/tkMacMenubutton.c:
- * unix/tkUnixMenubu.c: fixed permanently stippled menubutton image
- * win/tkWinButton.c: fixed possible pointer smash [Bug: 2733]
-
-1999-09-14 Jeff Hobbs <hobbs@scriptics.com>
-
- * win/tkWinMenu.c: fix for stack overrun in GetTextFace [Bug: 909]
-
-1999-09-01 Jeff Hobbs <hobbs@scriptics.com>
-
- * win/tkWinDraw.c:
- * unix/tkUnixDraw.c: fixed header style for TkpDrawHighlightBorder
- * generic/tkCanvas.c: fixed GC error (bg <> fg) in tkCanvas.c
- (from code added to support TkpDrawHighlightBorder) [Bug: 2676]
- * unix/aclocal.m4: added -bnoentry to the AIX-* flags
- * library/msgbox.tcl: changed the behavior of tk_messageBox on
- Unix to be more Windows like in handling of <Return> and the
- default button
- * library/button.tcl:
- * library/clrpick.tcl:
- * library/comdlg.tcl:
- * library/console.tcl:
- * library/dialog.tcl:
- * library/entry.tcl:
- * library/focus.tcl:
- * library/listbox.tcl:
- * library/menu.tcl:
- * library/msgbox.tcl:
- * library/palette.tcl:
- * library/safetk.tcl:
- * library/scale.tcl:
- * library/scrlbar.tcl:
- * library/tearoff.tcl:
- * library/text.tcl:
- * library/tk.tcl:
- * library/tkfbox.tcl:
- * library/xmfbox.tcl: updated commands to use [string] ops
- instead of expr equality operators
-
-1999-08-21 Jeff Hobbs <hobbs@scriptics.com>
-
- * unix/aclocal.m4: Changed AIX-4.[2-9] check to AIX-4.[1-9]
- [Bug: 1909]
-
-1999-08-20 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkCursor.c: fixed bug in GetCursorFromObj that caused
- panic [Bug: 2562]
-
- * TK 8.2.0 RELEASED
-
-1999-08-13 Jim Ingham <jingham@cygnus.com>
-
- * mac/tkMacMenu.c: Tk_DrawChars ends up setting the menu background
- wrong. There is no clean way to stop it, so I use lower level routines
- here to draw the text.
- * mac/tkMacProjects.sea.hqx: Rearrange the projects so that the build
- directory is separate from the sources. Much more convenient!
-
-1999-08-10 Jeff Hobbs <hobbs@scriptics.com>
-
- * win/tkWinWm.c: changed "wm deiconify" on Windows to raise and
- force the focus on the deiconified window (behavioral change from
- 8.1 to comply better with Windows style) [Bug: 1609]
- * doc/wm.n: clarified behavior of "wm deiconify".
- * generic/tkInt.decls: added TkSetFocusWin
- * generic/tkFocus.c: changed static SetFocus to TkSetFocusWin
-
- * library/clrpick.tcl:
- * library/console.tcl:
- * library/tk.tcl: fixed code where abbreviations where used
- in calling widget methods (confuses iWidgets) [Bug: 2422]
-
-1999-08-09 Jeff Hobbs <hobbs@scriptics.com>
-
- * library/button.tcl: cleaned up programming (config -> configure)
- and fixed Windows relief bug [Bug: 664]
- * library/entry.tcl: changed Entry C/C/P to not use global data
- (now uses tkPriv(data)) [Bug: 1475]
- * library/listbox.tcl: fixed extended mode script error [Bug: 866]
- * doc/options.n: clarified that -troughcolor doesn't work on Windows
- * doc/wm.n: fixed wm positionfrom docs [Bug: 2284]
-
-1999-08-01 Jeff Hobbs <hobbs@scriptics.com>
-
- * mac/tkMacPort.h: wrapped panic in #ifndef panic to avoid
- compiler errors when used with stubs-#defines, from Vince Darley.
- [Bug: 2389]
-
-1999-07-31 Scott Redman <redman@scriptics.com>
-
- * xlib/X11/Xlib.h: Remove XFillRectangle since it is now in the
- stub tables.
-
-1999-07-30 Jeff Hobbs <hobbs@scriptics.com>
-
- * generic/tkInt.decls: Added stub entry for XFillRectangle [Bug: 2446]
-
-1999-07-30 <redman@scriptics.com>
+ * win/rules.vc: Added a new "loimpact" option that sets the
+ -ws:aggressive linker option. Off by default. It's said to
+ keep the heap use low at the expense of alloc speed.
- * win/makefile.vc: Corrected building threaded tktest.exe on
- Windows. Needed to link in .obj files from Tcl, needs to change
- later so that code is in Tk and doesn't require a Tcl build.
- Also added runtest target.
+ * win/tclAppInit.c: Changed #include "tcl.h" to be tclPort.h to
+ remove the raw windows.h include. tclPort.h brings in windows.h
+ already and lessens the pre-compiled-header mush and the randomly
+ useless #pragma comment (lib,...) references throughout the big
+ windows.h tree (as observed at high linker warning levels).
-1999-07-29 <redman@scriptics.com>
+2002-02-21 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * generic/tkConsole.c: Allow tcl to open CON and NUL, even for std
- channels. Checking for bad/unusable std channels was moved to Tk
- since its only purpose was to check whether to use the Tk Console
- Window for the std channels. [Bug: 2393 2392 2209 2458]
+ * generic/tcl.h: Better guessing of LP64/ILP32 architecture, but
+ now sensitive to presence of (suitable) <limits.h>
- * win/Makefile.in: Corrected building threaded tktest.exe on
- Windows. Needed to link in .obj files from Tcl, needs to change
- later so that code is in Tk and doesn't require a Tcl build.
+2002-02-20 Don Porter <dgp@users.sourceforge.net>
-1999-07-22 <redman@scriptics.com>
+ * generic/tcl.decls (Tcl_RegExpRange,Tcl_GetIndexFromObjStruct):
+ Overlooked a few source incompatibilities. Now using CONST84.
+ * generic/tclDecls.h: make genstubs
+ * generic/tcl.h (Tcl_CmdObjTraceProc): silence warning from Sun
+ Workshop compiler.
- * Changed version to 8.2b2
+2002-02-20 David Gravereaux <davygrvy@pobox.com>
- * win/tkWinPort.h: Block out include of sys/stat.h in order to
- build extensions with MetroWerks compiler for Win32. [Bug: 2385]
-
- * unix/Makefile.in: Need to make install-sh executable before
- calling (with chmod +x). [Bug: 2413]
-
- * library/menu.tcl: Applied patch from Jeff Hobbs to fix typo.
- [Bug: 2425]
-
-1999-07-21 <redman@scriptics.com>
-
- * unix/Makefile.in: Add Windows configure script to distribution.
-
-1999-07-16 <redman@scriptics.com>
-
- * unix/Makefile.in:
- * win/Makefile.in: Copy the prolog.ps from the generic directory
- for install-libraries.
-
- * unix/aclocal.m4: Check for Alpha/Linux to set the IEEE flag to
- the compiler to be -mieee. Patch from Don Porter.
-
-1999-07-08 <stanton@scriptics.com>
-
- * tests/unixSelect.test: Fixed broken test.
-
- * win/makefile.vc: Added special case target to ensure that
- tkStubLib.obj is built with -DSTATIC_BUILD.
-
- * win/tkWinX.c (TkWinChildProc): Changed to pass
- WM_WINDOWPOSCHANGED through to DefWindowProc to make OpenGL
- sub-windows happy. This allows Windows to generate the WM_SIZE
- and WM_MOVE messages.
-
-1999-07-08 <redman@scriptics.com>
-
- * unix/configure.in: Fix Tk stub lib file names and flags.
-
-1999-06-30 <redman@scriptics.com>
-
- * generic/tkGrid.c: removed deprecated functions (applied patch
- from Jan Nijtmans). [Bug: 2080]
-
- * generic/tkImgGIF.c:
- * generic/tkImgPPM.c:
- * generic/tkImgPhoto.c: Applied patch to allow Img extension to
- work with 8.2, from Jan Nijtmans. [Bug: 2068]
-
- * win/tkWinWm.c: Applied patch from Don Porter to prevent the
- windows code from calling the Tcl functions when the stub table
- has not been initialized in TkWinWmCleanup. [Bug: 2269]
-
-1999-06-16 <wart@scriptics.com>
-
- * unix/configure.in:
- * unix/Makefile.in:
- * unix/aclocal.m4: Numerous build changes to make Tk conform to
- the proposed TEA spec
-
- * tkConsole.c: changed some variable types from (int) to (size_t)
- to prevent compiler warnings. Cast return value from strlen()
- to (int) in one place for the same reason.
-
-1999-06-03 <stanton@scriptics.com>
-
- * unix/tkUnixSelect.c:
- * tests/unixSelect.test:
- * generic/tkSelect.c: Fixed selection code to handle Unicode data
- in COMPOUND_TEXT and STRING selections. [Bug: 1791]
-
-1999-06-02 <stanton@scriptics.com>
-
- * generic/tkIntXlibDecls.h:
- * xlib/X11/Xlib.h: Added Mac specific defines to help with
- compilation.
-
- * generic/tkFont.c: lint
-
-1999-06-01 <stanton@scriptics.com>
-
- * unix/tkUnixSelect.c: Improved I18N selection support.
- COMPOUND_TEXT is converted to/from iso2022, and STRING is
- converted to/from iso8859-1. There are still a few loose ends to
- tie up before this is completely done.
-
- * unix/tkUnixFont.c: Eliminated redundant case folding code.
-
- * generic/tkFont.c: Eliminated use of isupper/tolower in favor of
- Unicode variants.
-
-1999-05-24 <stanton@scriptics.com>
-
- * generic/tkStubLib.c:
- * generic/tkStubInit.c:
- * generic/tkIntXlibDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkIntDecls.h:
- * generic/tkInt.decls:
- * generic/tkConsole.c: Various changes to try to get the Mac
- builds working.
-
-1999-05-21 <stanton@scriptics.com>
-
- * win/tkWinClipboard.c: Fixed clipboard code to handle lack of
- CF_LOCALE information (e.g. from command.com).
-
-1999-05-20 <redman@scriptics.com>
-
- * library/console.tcl: Changed copyright string to read 1999
- Scriptics Corp. in wish console about box.
-
-1999-05-19 <redman@scriptics.com>
-
- * generic/tk.h: Add extern "C" block around entire header file for
- C++ compilers to fix linkage issues. Submitted by Don Porter and
- Paul Duffin.
-
-1999-05-18 <stanton@scriptics.com>
-
- * tests/winClipboard.test:
- * win/tkWinClipboard.c: Fixed clipboard code so it handles Unicode
- data properly on Windows NT and 95. [Bug: 1791]
-
-1999-05-07 <stanton@scriptics.com>
-
- * library/menu.tcl: Fixed bug where tk_popup fails when called too
- quickly. [Bug: 2009]
-
-1999-04-30 <stanton@scriptics.com>
-
- * Changed version number to 8.1.1.
-
-1999-04-30 <stanton@scriptics.com>
-
- * Merged changes from 8.1.0 branch:
-
- * generic/tkDecls.h:
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkIntXlibDecls.h:
- * generic/tkPlatDecls.h:
- * generic/tkStubInit.c: Changed to avoid the need for forward
- declarations in stub initializers. Added extern "C" blocks around
- stub table pointer declarations so the stubs can be used from C++
- code. [Bug: 1934]
-
- * generic/tkInt.decls: Added TkClipBox, XDrawSegments, and
- XForceScreenSaver to stubs.
-
- * generic/tkStubLib.c: Reordered declarations to avoid
- circularities and forward references.
-
- * generic/tkStubInit.c: Added includes for Mac.
-
- * generic/tkMenubutton.c: lint
-
- * generic/tkEntry.c: Fixed bad option table entry.
-
- * generic/tkImgBmap.c:
- * generic/tkImgPPM.c:
- * generic/tkImgPhoto.c: Set the -translation and -encoding options
- to binary for image files. (reported by Marco Gazzetta)
-
-1999-04-23 <stanton@scriptics.com>
-
- * generic/tkInt.decls: Added TkClipBox, XDrawSegments, and
- XForceScreenSaver to stubs.
-
- * generic/tkStubLib.c: Reordered declarations to avoid
- circularities and forward references.
-
- * generic/tkStubInit.c: Added includes for Mac.
-
- * generic/tkMenubutton.c: lint
-
- * generic/tkEntry.c: Fixed bad option table entry.
-
-1999-04-22 <redman@scriptics.com>
-
- * generic/tkImgBmap.c:
- * generic/tkImgPPM.c:
- * generic/tkImgPhoto.c: Set the -translation and -encoding options
- to binary for image files. (reported by Marco Gazzetta)
-
-1999-04-20 <redman@scriptics.com>
-
- * xlib/X11/Xlib.h: changed definition of Status type to use a
- typedef instead of a #define to avoid conflicting with the cygwin
- win32 headers [Bug 1804]
-
-1999-04-15 <stanton@scriptics.com>
-
- * Merged 8.1 branch into the main trunk
-
-1999-04-09 <redman@scriptics.com>
-
- * generic/tkWindow.c: Fixed deadlock situation when the Initialize()
- function returns without releasing the mutex. Found while testing
- Bug 1700, during safe.test (tk).
-
-1999-04-06 <stanton@scriptics.com>
-
- * generic/tkMain.c (Tk_MainEx): Changed to reset result before
- calling Tcl_EvalFile. The ensures that error messages will be
- generated cleanly.
-
- * tests/winfo.test: Enabled tests that previously failed.
-
-1999-04-05 <stanton@scriptics.com>
-
- * library/bgerror.tcl:
- * library/button.tcl:
- * library/clrpick.tcl:
- * library/console.tcl:
- * library/dialog.tcl:
- * library/entry.tcl:
- * library/focus.tcl:
- * library/listbox.tcl:
- * library/menu.tcl:
- * library/msgbox.tcl:
- * library/palette.tcl:
- * library/scale.tcl:
- * library/scrlbar.tcl:
- * library/tearoff.tcl:
- * library/text.tcl:
- * library/tk.tcl: Lots of minor performance improvements
- contributed by Jeffrey Hobbs. [Bug: 1118]
-
- * win/tkWinWm.c (Tk_WmCmd): Fixed bad code in tracing
- suboption. [Bug: 1519]
-
- * library/tkfbox.tcl: Change to restore button text after an
- action to avoid the sticky "Open" button in a save dialog.
- [Bug: 1640]
-
- * library/entry.tcl: Fixed so selection is returned using the
- -show character during cut and paste operations. [Bug: 1687]
-
-1999-04-5 <redman@scriptics.com>
-
- * generic/tkInt.decls:
- * generic/tkIntXlibDecls.h:
- * generic/tkStubInit.c:
- * xlib/xgc.c:
- * xlib/X11/Xlib.h:
- * xlib/X11/Xutil.h: Added more X functions to the Win & Mac stubs
- tables.
-
-1999-04-05 <stanton@scriptics.com>
-
- * unix/configure.in:
- * generic/tkCanvPs.c: Added configure test for pw_gecos field in
- pwd to support OS/390. [Bug: 1724]
-
-1999-04-02 <stanton@scriptics.com>
-
- * tests/text.test:
- * generic/tkText.c: Fixed handling of Unicode in text searches.
- The -count option was returning byte counts instead of character
- counts. [Bug: 1056, 1148, 1666]
-
-1999-04-01 <redman@scriptics.com>
-
- * generic/tk.decls:
- * generic/tk.h:
- * generic/tkStubInit.c:
- * generic/tkWindow.c:
- * unix/Makefile.in:
- * win/makefile.vc: Tk now uses its own stub library to store
- pointers to its own stubs table.
-
- * doc/dde.n: (removed)
- * doc/send.n:
- * generic/tk.decls:
- * tests/winSend.test:
- * generic/tkPlatDecls.h:
- * win/tkWinSend.c: Removed the DDE-based send and dde commands,
- they were causing Tk to lock up when any window on the system was
- not processing its message queue (more importantly, windows in Tcl
- and Tk). The send command needs to be rewritten to prevent the
- deadlock situation (soon). The dde command is being pushed into
- its own package and will provide almost all of the capabilities
- that send did before (using a "dde eval" command), not yet
- completed.
-
-1999-03-31 <redman@scriptics.com>
-
- * win/tkWinSend.c: Modified dde/send code to work properly on
- Win95/Win98. String lengths are not returned properly by DDE, so
- NULL terminate all strings going in and ignore the string length
- coming back out. Do not destroy handles until all necessary work
- on those handles (and child handles) is done.
-
-1999-03-30 <stanton@scriptics.com>
-
- * generic/tkWindow.c (Tk_DestroyWindow): Image handlers are now
- finalized before the font subsystem since complex image handlers
- may contain references to fonts (e.g. Tix compound images).
- [Bug: 1603]
-
-1999-03-29 <stanton@scriptics.com>
-
- * doc/MeasureChar.3:
- * doc/TextLayout.3:
- * generic/tk.decls:
- * generic/tkCanvText.c:
- * generic/tkEntry.c:
- * generic/tkFont.c:
- * generic/tkListbox.c:
- * generic/tkMessage.c:
- * mac/tkMacFont.c:
- * unix/tkUnixButton.c:
- * unix/tkUnixFont.c:
- * unix/tkUnixMenu.c:
- * win/tkWinFont.c:
- * win/tkWinMenu.c: Standardized text layout and font interfaces
- so they are consistent with respect to byte versus character
- oriented indices. The layout functions all manipulate character
- oriented values while the lower level measurement functions all
- operate on byte oriented values. This distinction was not clear
- and so the functions were being used improperly in a number of
- places. [Bug: 1053, 747, 749, 1646]
-
- * generic/tk.decls: Eliminated uses of C++ STL types string and
- list from declarations.
-
- * generic/tkFont.c: Changes to named fonts were not being
- propagated in some cases. [Bug: 1144]
-
- * xlib/X11/Xlib.h:
- * generic/tkInt.decls: Added XParseColor to xlib stub
- tables. [Bug: 1574]
-
- * doc/GetBitmap.3:
- * generic/tkBitmap.c (BitmapInit): Eliminated use of Tk_Uid's in
- bitmaps. Added a few CONST declarations.
-
-1999-03-29 <redman@scriptics.com>
-
- * unix/configure.in:
- * unix/Makefile.in:
+ * win/buildall.vc.bat:
* win/makefile.vc:
- * generic/tkDecls.h:
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkPlatDecls.h:
- * generic/tkIntXlibDecls.h: Removed stub functions. Always use the
- Tcl stubs when building with --enable-shared.
-
+ * win/rules.vc: General clean-ups. Added compiler and linker tests
+ for a) the pentium 0x0F errata, b) optimizing (not all have this),
+ and c) linker v6 section alignment confusion. All these are tested
+ first to make sure any D4002 or LNK1117 warnings aren't displayed.
+ The pentium 0x0F errata is a recommended switch. The v5 linker's
+ section alignment default is 512, but the v6 linker was changed
+ to 4096 in an attempt to speed loading on Win98. I changed the
+ default to always be 512 across both linkers, unless linking
+ statically, then 4096 is used for the claimed speed effect. Using
+ a 512 alignment saves 12k bytes of dead space in the DLL.
-1999-03-26 <redman@scriptics.com>
+ Added IA64 B-stepping errata switch when the compiler supports it.
- * generic/tkTextIndex.c:
- * tests/testIndex.test: Avoid looking past the beginning of the
- array storing data for the text widget (.t index end-2c). Added
- test case to check for the bug. [Bug 991]
-
- * generic/tkConsole.c: Copy static strings into a Tcl_DString
- before passing to Tcl_Eval, in case the compiler puts static
- strings into read-only memory.
+ Added profiling to $(lflags) when requested and also removed the
+ explict -entry option as the default works fine as is.
-1999-03-26 <suresh@scriptics.com>
-
- * unix/configure.in:
- --nameble-shared is now the default and builds Tk as a shared
- library; specify --disable-shared to build a static Tk library
- and shell.
+ Removed win/tclWinInit.c from the special case section to let it
+ use the common implicit rule as the $(EXTFLAGS) macro it had was
+ never referenced anywhere.
-1999-03-26 <surles@scriptics.com>
+2002-02-20 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * library/menu.tcl: Fixed bug reported by Bryan Oakley in the
- menubutton bindings. There was a false assumption that there was
- always a menu attached to the button. [Bug 1116]
+ * generic/tcl.h: Added code to guess the correct settings for
+ TCL_WIDE_INT_IS_LONG and TCL_WIDE_INT_TYPE when configure doesn't
+ tell us them, as can happen with extensions.
-1999-03-26 <redman@scriptics.com>
+2002-02-19 Donal K. Fellows <fellowsd@cs.man.ac.uk>
- * unix/configure.in: Removed --enable-tcl-stub. Linking Tk to Tcl
- stubs is causing too many problems when linking executables like wish.
- Until the Tk is a fully loadable extension, linking against the Tcl
- stubs is not supported in Tk.
+ * doc/format.n: Updated docs to list the specification.
+ * generic/tclCmdAH.c (Tcl_FormatObjCmd): Made behaviour on 64-bit
+ platforms correctly meet the specification, that %d works with the
+ native word-sized integer, instead of trying to guess (wrongly)
+ from the value being passed.
-1999-03-19 <redman@scriptics.com>
+2002-02-19 Don Porter <dgp@users.sourceforge.net>
- * generic/tkBitmap.c:
- * generic/tkCursor.c:
- * generic/tkGC.c: When creating hash tables that key off of XID
- handles, make sure to pass TCL_ONE_WORD_KEYS. XIDs are guaranteed
- to be 32bit numbers, although on some 64bit systems (including 64bit
- Solaris 7) they are packed into a 64bit value where the upper 32bits
- are zero. The normal method of sizeof(XID)/sizeof(int) causes the
- hash table code to assume that the XID is a pointer to an array of
- two ints, which it is not. Tk now supports 64bit Solaris 7.
+ * changes: First draft of updated changes for 8.4a4 release.
-1999-03-17 <stanton@scriptics.com>
+2002-02-15 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * unix/tclUnixPort.h: add strtoll/strtoull declarations for
+ platforms that do not define them.
+
+ * generic/tclIndexObj.c (STRING_AT): removed ptrdiff_t cast and
+ use of VOID* in default case (GNU-ism).
+
+2002-02-15 Kevin Kenny <kennykb@acm.org>
+
+ * compat/strtoll.c:
+ * compat/strtoul.c:
+ * compat/strtoull.c:
+ * generic/tclIOUtil.c:
+ * generic/tclPosixStr.c:
+ * generic/tclTest.c:
+ * generic/tclTestObj.c:
+ * tests/get.test:
+ * win/Makefile.vc: Further tweaks to the TIP 72 patch to make it
+ compile under VC++.
+
+2002-02-15 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * tclExecute.c:
+ * tclIOGT.c:
+ * tclIndexObj.c: Touchups to the TIP 72 patch to make it
+ compileable under Windows again. The changes are not complete,
+ there is one nasty regarding _stati64
+
+2002-02-15 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ +----------------------+
+ | TIP #72 IMPLEMENTED. |
+ +----------------------+
+
+ There are a lot of changes from this TIP, so please see
+ http://purl.org/tcl/tip/72.html for discussion of
+ backward-compatability issues, but the main ones modifications are
+ in:
+
+ * generic/tcl.h: New types.
+ * generic/tcl.decls: New public functions.
+ * generic/tclExecute.c: 64-bit aware bytecode engine.
+ * generic/tclBinary.c: 64-bit handling in [binary] command.
+ * generic/tclScan.c: 64-bit handling in [scan] command.
+ * generic/tclCmdAH.c: 64-bit handling in [file] and [format]
+ commands.
+ * generic/tclBasic.c: New "wordSize" entry in ::tcl_platform.
+ * generic/tclFCmd.c: Large-file support (with many consequences.)
+ * generic/tclIO.c: Large-file support (with many consequences.)
+ * compat/strtoll.c, compat/strtoull.c: New support functions.
+ * unix/tcl.m4, unix/configure: 64-bit support and greatly enhanced
+ cacheing.
+
+ Most other changes, including all those in doc/* and test/* as
+ well as the majority in the platform directories, follow on from
+ these.
+
+ Also coming out of the woodwork:
+ * generic/tclIndex.c: Better support for Cray PVP.
+ * win/tclWinMtherr.c: Better Borland support.
+
+ Note that, in a number of places through the Unix part of the
+ platform support, there are Tcl_Platform* references. These are
+ expanded into the correct way to call that particular underlying
+ function, i.e. with or without a '64' suffix, and should be used
+ by people working on the core in preference to the API functions
+ they overlay so that the code remains portable depending on the
+ presence or absence of 64-bit support on the underlying platform.
+
+ ***POTENTIAL INCOMPATIBILITY***: Extracted from the TIP
+
+ SUMMARY OF INCOMPATIBILITIES AND FIXES
+ ======================================
+
+ The behaviour of expressions containing constants that appear
+ positive but which have a negative internal representation will
+ change, as these will now usually be interpreted as wide
+ integers. This is always fixable by replacing the constant with
+ int(constant).
+
+ Extensions creating new channel types will need to be altered as
+ different types are now in use in those areas. The change to the
+ declaration of Tcl_FSStat and Tcl_FSLstat (which are the new
+ preferred API in any case) are less serious as no non-alpha
+ releases have been made yet with those API functions.
+
+ Scripts that are lax about the use of the l modifier in format and
+ scan will probably need to be rewritten. This should be very
+ uncommon though as previously it had absolutely no effect.
+
+ Extensions that create new math functions that take more than one
+ argument will need to be recompiled (the size of Tcl_Value
+ changes), and functions that accept arguments of any type
+ (TCL_EITHER) will need to be rewritten to handle wide integer
+ values. (I do not expect this to affect many extensions at all.)
+
+2002-02-14 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * generic/tclIOCmd.c (Tcl_GetsObjCmd): Trivial fix for bug
+ #517503, a memory leak reported by Miguel Sofer
+ <msofer@users.sourceforge.net>. The leak happens if an error
+ occurs for "set var [gets $chan]" and leak one empty object.
+
+2002-02-12 David Gravereaux <davygrvy@pobox.com>
+
+ * djgpp/ (new directory)
+ * djgpp/Makefile (new):
+ * unix/tclAppInit.c:
+ * unix/tclMtherr.c:
+ * unix/tclUnixFCmd.c:
+ * unix/tclUnixFile.c:
+ * unix/tclUnixInit.c:
+ * unix/tclUnixPort.h: Early stage of DJGPP support for building
+ Tcl on DOS. Dynamic loading isn't working, yet. Requires watt32
+ for the TCP/IP stack. No autoconf, yet. Barely tested, but
+ makes a working exe that runs Tcl in protected-mode, flat memory.
+ [exec] and pipes will need the most work as multi-tasking on DOS
+ has to be carefully.
+
+2002-02-10 Kevin Kenny <kennykb@acm.org>
+
+ * doc/CrtObjCmd.3:
+ * doc/CrtTrace.3:
+ * generic/tcl.decls:
+ * generic/tcl.h:
+ * generic/tclBasic.c:
+ * generic/tclInt.h:
+ * generic/tclTest.c:
+ * tests/basic.test: Added Tcl_CreateObjTrace,
+ Tcl_GetCommandInfoFromToken and Tcl_SetCommandInfoFromToken.
+ (TIPs #32 and #79.)
+
+ * generic/tclDecls.h:
+ * generic/tclStubInit.c: Regenerated Stubs tables.
+
+2002-02-08 Jeff Hobbs <jeffh@ActiveState.com>
- * win/makefile.vc:
- * generic/tk.h: Changed to use TCL_BETA_RELEASE macro, and fixed
- so this works in rc files.
-
- * win/makefile.vc:
- * win/makefile.bc:
- * win/README:
- * unix/configure.in:
- * generic/tk.h:
- * README: Updated version to 8.1b3.
+ * unix/configure:
+ * unix/tcl.m4: added -pthread for FreeBSD to EXTRA_CFLAGS and
+ LDFLAGS. Also triggered nodots only for FreeBSD-3.
+ Added AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) for Solaris.
+
+ * unix/tclUnixPort.h:
+ * unix/tclUnixThrd.c: added thread-safe versions of readdir,
+ localtime, gmtime and inet_ntoa for threaded build. (jgdavidson)
+
+ * generic/tclScan.c (Tcl_ScanObjCmd): prevented ckfree being
+ called on a pointer to NULL.
+
+2002-02-07 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/DString.3:
+ * doc/Encoding.3:
+ * doc/GetCwd.3:
+ * doc/SplitPath.3:
+ * doc/Translate.3:
+ * doc/Utf.3:
+ * generic/tcl.decls:
+ * generic/tcl.h:
+ * generic/tclEncoding.c:
+ * generic/tclEnv.c:
+ * generic/tclFileName.c:
+ * generic/tclIOUtil.c:
+ * generic/tclUtf.c:
+ * generic/tclUtil.c:
+ * mac/tclMacInit.c:
+ * unix/tclUnixFile.c:
+ * unix/tclUnixInit.c:
+ * unix/tclUnixPipe.c:
+ * win/tclWin32Dll.c:
+ * win/tclWinFCmd.c:
+ * win/tclWinFile.c:
+ * win/tclWinInit.c: Partial TIP 27 rollback. Following routines
+ restored to return (char *): Tcl_DStringAppend,
+ Tcl_DStringAppendElement, Tcl_JoinPath, Tcl_TranslateFileName,
+ Tcl_ExternalToUtfDString, Tcl_UtfToExternalDString,
+ Tcl_UniCharToUtfDString, Tcl_GetCwd, Tcl_WinTCharToUtf. Also
+ restored Tcl_WinUtfToTChar to return (TCHAR *) and
+ Tcl_UtfToUniCharDString to return (Tcl_UniChar *). Modified
+ some callers. This change recognizes that Tcl_DStrings are
+ de-facto white-box objects.
+
+ * generic/tclDecls.h:
+ * generic/tclPlatDecls.h: make genstubs
+
+ * generic/tclCmdMZ.c: corrected use of C++-style comment.
+
+2002-02-06 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * tests/scan.test:
+ * generic/tclScan.c (Tcl_ScanObjCmd): corrected scan 0x... %x
+ handling that didn't accept the 0x as a prelude to a base 16
+ number. [Bug #495213]
+
+ * generic/tclCompCmds.c (TclCompileRegexpCmd): made early check
+ for bad RE to stop checking further.
+
+ * generic/tclCmdMZ.c (Tcl_RegsubObjCmd): added special case to
+ search for simple 'string map' style regsub calls.
+ Delayed creation of resultPtr object until an initial match is
+ made, as the input string object can then be reused for no matches.
+ (Tcl_StringObjCmd): optimization improvements to the STR_MAP
+ algorithm for zero-length and nocase cases.
+
+ * tests/regexp.test:
+ * tests/regexpComp.test: extra code coverage tests.
+
+ * tests/string.test: added 10.18 and 10.19 extra tests.
+
+ * generic/regc_locale.c (casecmp): slight performance improvement.
+
+2002-02-05 Don Porter <dgp@users.sourceforge.net>
+
+ * library/http/http.tcl:
+ * library/http/pkgIndex.tcl: Corrected use of http::error when
+ ::error was intended. Bump to http 2.4.2.
+
+2002-02-04 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * unix/tclUnixChan.c (FileOutputProc): Fixed [bug 465765] reported
+ by Dale Talcott <daletalcott@users.sourceforge.net>. Avoid
+ writing nothing into a file as STREAM based implementations will
+ consider this a EOF (if the file is a pipe). Not done in the
+ generic layer as this type of writing is actually useful to
+ check the state of a socket.
+
+ * doc/open.n: Fixed [Bug 511540], added cross-reference to 'pid'
+ as the command to use to retrieve the pid of a command pipeline
+ created via 'open'.
-1999-03-14 <stanton@GASPODE>
+2002-02-01 Jeff Hobbs <jeffh@ActiveState.com>
- * unix/configure.in: Added missing stub related definitions.
+ * generic/tclCmdMZ.c (Tcl_RegexpObjCmd): handle quirky about case
+ earlier to avoid shimmering problem.
- * unix/Makefile.in: Install tkDecls.h in addition to tk.h.
+2002-02-01 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * generic/tkStubLib.c: Added flags to ensure we are using Tcl
- stub macros.
+ * tests/io.test: io-39.22 split into two tests, one platform
+ dependent, the other not. -eofchar is not empty on the windows
+ platform.
-1999-03-11 <stanton@GASPODE>
+2002-02-01 Vince Darley <vincentdarley@users.sourceforge.net>
- * generic/tkInt.decls: Added reserved slot for XSetDashes for use
- by the dash patch.
+ * generic/tclTest.c: fix to picky windows compiler problem
+ with the 'MainLoop' function declaration.
-1999-03-10 <redman@scriptics.com>
+2002-01-31 Andreas Kupries <andreas_kupries@users.sourceforge.net>
- * xlib/xdraw.c:
- * xlib/X11/Xlib.h:
- * mac/tkMac.h:
- * mac/tkMacInt.h:
- * mac/tkMacPort.h:
- * mac/tkMacXStubs.c:
- * mac/tkMacAppInit.c:
- * mac/tkMacCursor.c:
- * win/makefile.vc:
- * win/tkWin.h:
- * win/tkWinInt.h:
- * win/tkWinPort.h:
- * win/winMain.c:
- * generic/tk.h:
- * generic/tkInt.h:
- * generic/tk.decls:
- * generic/tkInt.decls:
- * generic/tkDecls.h:
- * generic/tkPlatDecls.h:
- * generic/tkIntDecls.h:
- * generic/tkIntPlatDecls.h:
- * generic/tkIntXlibDecls.h:
- * generic/tkStubs.c:
- * generic/tkPlatStubs.c:
- * generic/tkIntStubs.c:
- * generic/tkIntPlatStubs.c:
- * generic/tkIntXlibStubs.c:
- * generic/tkStubInit.c:
- * generic/tkStubLib.c:
- * generic/tkBind.c:
- * generic/tkCmds.c:
- * generic/tkConfig.c:
- * generic/tkConsole.c:
- * generic/tkCursor.c:
- * generic/tkGrab.c:
- * generic/tkImgPhoto.c:
- * generic/tkMain.c:
- * generic/tkMenu.c:
- * generic/tkPointer.c:
- * generic/tkTextDisp.c:
- * generic/tkWindow.c:
- * unix/tkUnixInt.h:
- * unix/tkUnixPort.h:
- * unix/Makefile.in:
- * unix/configure.in:
- * unix/tkConfig.sh.in:
- * unix/tkUnix.c:
- * unix/tkUnix3d.c:
- * unix/tkUnixDraw.c:
- * unix/tkUnixFont.c:
- * unix/tkUnixMenubu.c: Stubs implementation for 8.1. Tk_Main() is
- replaced with a macro which calls Tk_MainEx(). Tk can link to the Tcl
- stubs library, wish links directly to Tcl and Tk. Use
- --enable-tcl-stubs to link Tk to the Tcl stubs library (Unix), on
- by default on Windows. Exported all public functions through the
- stubs mechanism (see the *.decls files) and many of the internal
- functions. Most of the changes dealt with shifting around the
- function declarations in the header files. Mac code may not
- compile, but it shouldn't take much work to fix this.
-
- * mac/tkMacMenu.c: Added dummy TkpMenuThreadInit for Mac to be
- consistent with Unix and Windows versions.
-
-1999-03-08 <lfb@scriptics.com>
+ * win/tclWinFCmd.c: TIP 27: Applied patch fixing CONST warnings on
+ behalf of Don Porter <dgp@users.sourceforge.net>.
- * win/tkWinWm.c: Toplevel class no longer shared between
- threads.
-
- * win/tkWinX.c: Multiple threads no longer share the same
- TkDisplay structure. Required because TkDisplay stores much
- thread-specific data for a given thread.
+2002-01-30 Don Porter <dgp@users.sourceforge.net>
- * win/tkWinSend.c: Moved application instance handle out
- out thread-local storage. DDE was failing to initialize
- when the instance handles were different between threads.
-
- * win/makefile.vc: Added THREADDEFINES for building with
- threads enabled.
-
- * generic/tkMenu.c:
- * win/tkWinMenu.c:
- * unix/tkUnixMenu.c: Added TkpMenuThreadInit for initializing
- thread-specific Menu state.
-
-1999-03-01 <redman@scriptics.com>
+ * generic/tcl.decls:
+ * generic/tcl.h:
+ * generic/tclInt.h: For each interface identified in the TIP 27
+ changes below as a POTENTIAL INCOMPATIBILITY, the source of the
+ incompatibility has been parameterized so that it can be
+ removed. When compiling extension code against the Tcl header
+ files, use the compiler flag -DUSE_NON_CONST to remove the
+ irresolvable source incompatibilities introduced by the TIP 27
+ changes. Resolvable changes are left for extension authors to
+ resolve.
+ * generic/tclDecls.h: make genstubs
- * win/tkWinWm.c:
- * win/tkWinPointer.c:
- * win/tkWinInt.h: Fix "focus -force" for Windows. The Win32 API
- function SetForegroundWindow() does not work unless the window
- handle is a toplevel window (a Windows toplevel). The handle
- being passed was a Tk toplevel, which is a child of the Windows
- toplevel.
+2002-01-30 Vince Darley <vincentdarley@users.sourceforge.net>
-1999-02-26 <redman@scriptics.com>
+ * doc/FileSystem.3: added documentation for 3 public
+ functions which had been overlooked. Fixes [Bug 507701].
+ * unix/mkLinks: make mklinks
- * win/cat.c: Remove this file, use the one in the Tcl source directory.
+2002-01-29 Jeff Hobbs <jeffh@ActiveState.com>
- * win/makefile.vc: Remove the wishc.exe from the default targets. Add
- a separate console-wish target to build it. The need for a
- console-wish will go away soon, so we don't want to encourage its
- use.
+ * tests/regexpComp.test:
+ * generic/tclCompCmds.c (TclCompileRegexpCmd): enhanced to support
+ -nocase and -- options.
-1999-02-25 <redman@scriptics.com>
+2002-01-28 Mo DeJong <mdejong@users.sourceforge.net>
- * win/tkWinWm.c: Properly initialize the tsdPtr->firstWindow field.
-
- * win/cat.c: Code for cat32.exe, copied from the Tcl sources. Required
- in order to run the test suite from the makefile
+ * unix/tcl.m4 (SC_LOAD_TCLCONFIG):
+ * win/tcl.m4 (SC_LOAD_TCLCONFIG): Set TCL_LIB_SPEC,
+ TCL_STUB_LIB_SPEC, and TCL_STUB_LIB_PATH to the
+ values of TCL_BUILD_LIB_SPEC, TCL_BUILD_STUB_LIB_SPEC,
+ and TCL_BUILD_STUB_LIB_PATH when tclConfig.sh is loaded
+ from the build directory. A Tcl extension should
+ make use of the non-build versions of these variables
+ since they will work in both cases. This modification
+ was described in TIP 34.
+
+2002-01-28 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * win/tclWinReg.c (regConnectRegistryProc,RecursiveDeleteKey)
+ (DeleteKey,GetKeyNames,GetType,GetValue,OpenSubKey,SetValue):
+ redid the CONSTification as previous changes caused failing tests.
+
+ * tests/regexpComp.test (new):
+ * generic/tclInt.h:
+ * generic/tclBasic.c: added TclCompileRegexpCmd entry
+ * generic/tclCompCmds.c (TclCompileStringCmd): corrected to return
+ TCL_OUT_LINE_COMPILE instead of TCL_ERROR for parsing errors, so
+ it only throws the error for runtime compile, in case the user
+ modifies 'string'.
+ (TclCompileRegexpCmd): first try at a byte-compiled regexp
+ command. It handles static strings and ^$ bounded static strings.
+ (TclCompileAppendCmd): made TclPushVarName call always use
+ TCL_CREATE_VAR as numWords is always > 2 at that point.
+
+ * generic/tclExecute.c (TclExecuteByteCode:INST_LIST): correct
+ possibly dangerous decr in macro call.
+
+ * win/tclWinInit.c (TclpFindVariable): CONSTification touch-up
+
+ * win/tclWinReg.c (OpenSubKey): corrected bug introduced in
+ CONSTification that dropped pointer reference.
+
+ * ChangeLog.2000 (new file):
+ * ChangeLog: broke changes from 2000 into ChangeLog.2000 to reduce
+ size of the main ChangeLog.
+
+2002-01-28 David Gravereaux <davygrvy@pobox.com>
+
+ * generic/tclPlatDecls.h: Added preprocessor logic to force a
+ typedef of TCHAR when __STDC__ is defined when using the uncommon
+ -Za compiler switch with the microsoft compiler.
+
+2002-01-27 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/package.n: Documented global namespace context for script
+ evaluation by [package require].
+
+2002-01-27 Daniel Steffen <das@users.sourceforge.net>
+
+ * generic/tclInt.decls:
+ * generic/tclIntPlatDecls.h:
+ * mac/tclMacChan.c:
+ * mac/tclMacFCmd.c:
+ * mac/tclMacFile.c:
+ * mac/tclMacInit.c:
+ * mac/tclMacLoad.c:
+ * mac/tclMacResource.c:
+ * mac/tclMacSock.c: TIP 27 CONSTification induced changes
- * win/winMain.c: Add main() for a console-based wishc.exe, which meant
- adding code to disable the call to Tk_ConsoleInit().
-
- * generic/tkConsole.c: Check the standard handles before creating the
- new standard channels. This allows a windows app that has stdin,
- stdout, or stderr to correctly connect to them.
-
- * generic/tkMain.c: Add a proper check for the interactive mode, since
- the standard channels may actually be connected in windows mode or
- even in the console-based wish.
-
- * win/makefile.vc: Add targets for wishc.exe (console-based wish) and
- cat32.exe (for testing). Fix the test suite target so it can be run
- from the makefile (which can happen since the standard handles have
- been fixed).
-
-1999-02-12 <lfb@scriptics.com>
-
- * generic/tkMenuButton.h:
- * generic/tkMenuButton.c:
- * mac/tkMacMenubutton.c:
- * mac/tkMacDefault.h
- * unix/tkUnixMenubu.c: Eliminated Tk_Uids used by -state option.
- * unix/tkUnixDefault.h
- * win/tkWinDefault.h
-
+ * tests/event.test:
+ * tests/main.test: added catches/constraints to test that
+ use features that don't exist on the mac.
+
+2002-01-25 Mo DeJong <mdejong@users.sourceforge.net>
+
+ Make -eofchar and -translation options read only for
+ server sockets. [Bug 496733]
+
+ * generic/tclIO.c (Tcl_GetChannelOption, Tcl_SetChannelOption):
+ Instead of returning nothing for the -translation option
+ on a server socket, always return "auto". Return the empty
+ string enclosed in quotes for the -eofchar option on
+ a server socket. Fixup -eofchar usage message so that
+ it matches the implementation.
+ * tests/io.test: Add -eofchar tests and -translation tests
+ to ensure options are read only on server sockets.
+ * tests/socket.test: Update tests to account for -eofchar
+ and -translation option changes.
+
+2002-01-25 Don Porter <dgp@users.sourceforge.net>
+
+ * compat/strstr.c (strstr):
+ * generic/tclCmdAH.c (Tcl_FormatObjCmd):
+ * generic/tclCmdIL.c (InfoNameOfExecutableCmd):
+ * generic/tclEnv.c (ReplaceString):
+ * generic/tclFileName.c (ExtractWinRoot):
+ * generic/tclIO.c (FlushChannel,Tcl_BadChannelOption):
+ * generic/tclStringObj.c (AppendUnicodeToUtfRep):
+ * generic/tclThreadTest.c (TclCreateThread):
+ * generic/tclUtf.c (Tcl_UtfPrev):
+ * mac/tclMacFCmd.c (TclpObjListVolumes):
+ * mac/tclMacResource.c (TclMacRegisterResourceFork,
+ BuildResourceForkList):
+ * win/tclWinInit.c (AppendEnvironment): Sought out and eliminated
+ instances of CONST-casting that are no longer needed after the
+ TIP 27 effort.
+
+ * Following is [Patch 501006]
+ * generic/tclInt.decls (Tcl_AddInterpResolvers, Tcl_Export,
+ Tcl_FindNamespace, Tcl_GetInterpResolvers, Tcl_ForgetImport,
+ Tcl_Import, Tcl_RemoveInterpResolvers):
+ * generic/tclNamesp.c (Tcl_Export, Tcl_Import, Tcl_ForgetImport,
+ Tcl_FindNamespace):
+ * generic/tclResolve.c (Tcl_AddInterpResolvers,Tcl_GetInterpResolvers,
+ Tcl_RemoveInterpResolvers): Updated APIs in generic/tclResolve.c
+ and generic/tclNamesp.c according to the guidelines of TIP 27.
+ * generic/tclIntDecls.h: make genstubs
+
+ * Following is [Patch 505630]
+ * doc/AddErrorInfo.3:
+ * generic/tcl.decls (Tcl_LogCommandInfo):
+ * generic/tclBasic.c (Tcl_LogCommandInfo): Updated interfaces
+ of generic/tclBasic.cc according to TIP 27.
+ * generic/tclDecls.h: make genstubs
+
+ * Following is [Patch 506818]
+ * doc/Hash.3:
+ * generic/tcl.decls (Tcl_HashStats):
+ * generic/tclHash.c (Tcl_HashStats): Updated APIs of generic/tclHash.c
+ according to guidelines of TIP 27.
+ * generic/tclDecls.h: make genstubs
+ * generic/tclVar.c (Tcl_ArrayObjCmd): Updated callers.
+
+ * Following is [Patch 506807]
+ * doc/ObjectType.3:
+ * generic/tcl.decls (Tcl_GetObjType):
+ * generic/tclObj.c (Tcl_GetObjType): Updated APIs of generic/tclObj.c
+ according to guidelines of TIP 27.
+ * generic/tclDecls.h: make genstubs
+
+ * Following is [Patch 507304]
+ * doc/Encoding.3:
+ * generic/tcl.decls (Tcl_WinUtfToTChar,Tcl_WinTCharToUtf):
+ * win/tclWin32Dll.c (Tcl_WinUtfToTChar,Tcl_WinTCharToUtf):
+ Updated interfaces in win/tclWin32Dll.c according to TIP 27.
+ * generic/tclPlatDecls.h: make genstubs
+ * generic/tclIOUtil.c (TclpNativeToNormalized):
+ * win/tclWinFCmd.c (TclpObjNormalizePath):
+ * win/tclWinFile.c (TclpFindExecutable,TclpMatchInDirectory,
+ NativeIsExec,NativeStat):
+ * win/tclWinLoad.c (TclpLoadFile):
+ * win/tclWinPipe.c (TclpOpenFile,ApplicationType):
+ * win/tclWinReg.c (regConnectRegistryProc,RecursiveDeleteKey,DeleteKey,
+ GetKeyNames,GetType,GetValue,OpenSubKey,SetValue):
+ * win/tclWinSerial.c (SerialSetOptionProc): Update callers.
+
+ * Following is [Patch 505072]
+ * doc/Concat.3:
+ * doc/Encoding.3:
+ * doc/Filesystem.3:
+ * doc/Macintosh.3:
+ * doc/OpenFileChnl.3
+ * doc/SetResult.3:
+ * doc/SetVar.3:
+ * doc/SplitList.3:
+ * doc/SplitPath.3:
+ * doc/Translate.3:
+ * generic/tcl.h (Tcl_FSMatchInDirectoryProc):
+ * generic/tclInt.h (TclpMatchInDirectory):
+ * generic/tcl.decls (Tcl_Concat,Tcl_GetStringResult,Tcl_GetVar,
+ Tcl_GetVar2,Tcl_JoinPath,Tcl_Merge,Tcl_OpenCommandChannel,Tcl_SetVar,
+ Tcl_SetVar2,Tcl_SplitList,Tcl_SplitPath,Tcl_TranslateFileName,
+ Tcl_ExternalToUtfDString,Tcl_GetEncodingName,Tcl_UtfToExternalDString,
+ Tcl_GetDefaultEncodingDir,Tcl_SetDefaultEncodingDir,
+ Tcl_FSMatchInDirectory,Tcl_MacEvalResource,Tcl_MacFindResource):
+ * generic/tclInt.decls (TclCreatePipeline,TclGetEnv,TclpGetCwd,
+ TclpCreateProcess):
+ * mac/tclMacFile.c (TclpGetCwd):
+ * generic/tclEncoding.c (Tcl_GetDefaultEncodingDir,
+ Tcl_SetDefaultEncodingDir,Tcl_GetEncodingName,
+ Tcl_ExternalToUtfDString,Tcl_UtfToExternalDString, OpenEncodingFile,
+ LoadEscapeEncoding):
+ * generic/tclFileName.c (DoTildeSubst,Tcl_JoinPath,Tcl_SplitPath,
+ Tcl_TranslateFileName):
+ * generic/tclIOUtil.c (Tcl_FSMatchInDirectory):
+ * generic/tclPipe.c (FileForRedirect,TclCreatePipeline,
+ Tcl_OpenCommandChannel):
+ * generic/tclResult.c (Tcl_GetStringResult):
+ * generic/tclUtil.c (Tcl_Concat,Tcl_SplitList,Tcl_Merge):
+ * generic/tclVar.c (Tcl_GetVar,Tcl_GetVar2,Tcl_SetVar,Tcl_SetVar2):
+ * mac/tclMacResource.c (Tcl_MacEvalResource,Tcl_MacFindResource):
+ Updated interfaces of generic/tclEncoding, generic/tclFilename.c,
+ generic/tclIOUtil.c, generic/tclPipe.c, generic/tclResult.c,
+ generic/tclUtil.c, generic/tclVar.c and mac/tclMacResource.c according
+ to TIP 27. Tcl_TranslateFileName rewritten as wrapper around
+ VFS-aware version.
+ ***POTENTIAL INCOMPATIBILITY***
+ Includes source incompatibilities: argv arguments of Tcl_Concat,
+ Tcl_JoinPath, Tcl_OpenCommandChannel, Tcl_Merge; argvPtr arguments of
+ Tcl_SplitList and Tcl_SplitPath.
+ * generic/tclDecls.h:
+ * generic/tclIntDecls.h: make genstubs
+
+ * generic/tclCkalloc.c (MemoryCmd):
+ * generic/tclClock.c (FormatClock):
+ * generic/tclCmdAH.c (Tcl_CaseObjCmd,Tcl_EncodingObjCmd,Tcl_FileObjCmd):
+ * generic/tclCmdIL.c (InfoLibraryCmd,InfoPatchLevelCmd,
+ InfoTclVersionCmd):
+ * generic/tclCompCmds.c (TclCompileForeachCmd):
+ * generic/tclCompCmds.h (TclCompileForeachCmd):
+ * generic/tclCompile.c (TclFindCompiledLocal):
+ * generic/tclEnv.c (TclSetupEnv,TclSetEnv,Tcl_PutEnv,TclGetEnv,
+ EnvTraceProc):
+ * generic/tclEvent.c (Tcl_BackgroundError):
+ * generic/tclIO.c (Tcl_BadChannelOption,Tcl_SetChannelOption):
+ * generic/tclIOCmd.c (Tcl_ExecObjCmd,Tcl_OpenObjCmd):
+ * generic/tclIOSock.c (TclSockGetPort):
+ * generic/tclIOUtil.c (SetFsPathFromAny):
+ * generic/tclLink.c (LinkTraceProc):
+ * generic/tclMain.c (Tcl_Main):
+ * generic/tclNamesp.c (TclTeardownNamespace):
+ * generic/tclProc.c (TclCreateProc):
+ * generic/tclTest.c (TestregexpObjCmd,TesttranslatefilenameCmd,
+ TestchmodCmd,GetTimesCmd,TestsetCmd,TestOpenFileChannelProc1,
+ TestOpenFileChannelProc2,TestOpenFileChannelProc3,AsyncHandlerProc,
+ TestpanicCmd):
+ * generic/tclThreadTest.c (ThreadErrorProc,ThreadEventProc):
+ * generic/tclUtil.c (TclPrecTraceProc):
+ * mac/tclMacFCmd.c (GetFileSpecs):
+ * mac/tclMacFile.c (TclpMatchInDirectory):
+ * mac/tclMacInit.c (TclpInitLibraryPath,Tcl_SourceRCFile):
+ * mac/tclMacOSA.c (tclOSAStore,tclOSALoad):
+ * mac/tclMacResource.c (Tcl_MacEvalResource):
+ * unix/tclUnixFCmd.c (TclpObjNormalizePath):
+ * unix/tclUnixFile.c (TclpMatchInDirectory,TclpGetUserHome,TclpGetCwd,
+ TclpReadLink):
+ * unix/tclUnixInit.c (TclpInitLibraryPath,TclpSetVariables,
+ Tcl_SourceRCFile):
+ * unix/tclUnixPipe.c (TclpOpenFile,TclpCreateTempFile,
+ TclpCreateProcess):
+ * win/tclWinFile.c (TclpGetCwd,TclpMatchInDirectory):
+ * win/tclWinInit.c (TclpInitLibraryPath,Tcl_SourceRCFile,
+ TclpSetVariables):
+ * win/tclWinPipe.c (TclpCreateProcess): Updated callers.
+
+2002-01-24 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclIOUtil.c (SetFsPathFromAny): Corrected tilde-substitution
+ of pathnames where > 1 separator follows the ~. [Bug 504950]
+
+2002-01-24 Jeff Hobbs <jeffh@ActiveState.com>
+
+ * library/http/pkgIndex.tcl:
+ * library/http/http.tcl: don't add port in default case to handle
+ broken servers. http bumped to 2.4.1 [Bug #504508]
+
+2002-01-23 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * unix/mkLinks: Regenerated.
+ * doc/CrtChannel.3:
+ * doc/ChnlStack.3: Moved documentation for 'Tcl_GetTopChannel'
+ from 'CrtChannel' to 'ChnlStack'. Added documentation of
+ 'Tcl_GetStackedChannel'. Bug #506147 reported by Mark Patton
+ <msp@users.sourceforge.net>.
+
+2002-01-23 Don Porter <dgp@users.sourceforge.net>
+
+ * win/tclWinFile.c (NativeAccess,NativeStat,NativeIsExec,
+ TclpGetUserHome):
+ * win/tclWinPort.h (TclWinSerialReopen):
+ * win/tclWinSerial.c (TclWinSerialReopen):
+ * win/tclWinSock.c (Tcl_OpenTcpServer): Corrections to earlier
+ TIP 27 changes. Thanks to Andreas Kupries for the feedback.
+ * generic/tclPlatDecls.h: make genstubs
+
+ * doc/GetHostName.3:
+ * doc/GetOpnFl.3:
+ * doc/OpenTcp.3:
+ * tcl.decls (Tcl_GetHostName,Tcl_GetOpenFile,Tcl_OpenTcpClient,
+ Tcl_OpenTclServer):
+ * mac/tclMacSock.c (CreateSocket,Tcl_OpenTcpClient,Tcl_OpenTcpServer,
+ Tcl_GetHostName,GetHostFromString):
+ * unix/tclUnixChan.c (CreateSocket,CreateSocketAddress,
+ Tcl_OpenTcpClient,Tcl_OpenTcpServer,Tcl_GetOpenFile):
+ * unix/tclUnixSock.c (Tcl_GetHostName):
+ * win/tclWinSock.c (CreateSocket,CreateSocketAddress,
+ Tcl_OpenTcpClient,Tcl_OpenTcpServer,Tcl_GetHostName):
+ Updated socket interfaces according to TIP 27.
+ * generic/tclCmdIL.c (InfoHostnameCmd): Updated callers.
+ * generic/tclDecls.h: make genstubs
+
+2002-01-21 David Gravereaux <davygrvy@pobox.com>
+
+ * generic/tclLoadNone.c: TclpLoadFile() didn't match proto of
+ typedef Tcl_FSLoadFileProc. OK'd by vincentdarley.
+ [Patch #502488]
+
+2002-01-21 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * generic/tclIO.c (WriteChars): Fix for SF #506297, reported by
+ Martin Forssen <ruric@users.sourceforge.net>. The encoding
+ chosen in the script exposing the bug writes out three intro
+ characters when TCL_ENCODING_START is set, but does not consume
+ any input as TCL_ENCODING_END is cleared. As some output was
+ generated the enclosing loop calls UtfToExternal again, again
+ with START set. Three more characters in the out and still no
+ use of input ... To break this infinite loop we remove
+ TCL_ENCODING_START from the set of flags after the first call
+ (no condition is required, the later calls remove an unset flag,
+ which is a no-op). This causes the subsequent calls to
+ UtfToExternal to consume and convert the actual input.
+
+2002-01-21 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclTest.c: Converted declarations of TestReport file system
+ to more portable form. [Bug 501417].
+
+ * generic/tcl.decls (Tcl_TraceCommand,Tcl_UntraceCommand,
+ Tcl_CommandTraceInfo):
+ * generic/tclCmdMZ.c (Tcl_TraceCommand,Tcl_UntraceCommand,
+ Tcl_CommandTraceInfo): Updated APIs in generic/tclCmdMZ.c
+ according to the guidelines of TIP 27.
+ * generic/tclDecls.h: make genstubs
+
+2002-01-18 Don Porter <dgp@users.sourceforge.net>
+
+ * win/tclWinChan.c:
+ * win/tclWinFCmd.c:
+ * win/tclWinFile.c: Overlooked callers of Tcl_FSGetNativePath
+
+ * win/tclWinDde.c:
+ * win/tclWinReg.c: Overlooked callers of Tcl_GetIndexFromObj
+
+2002-01-18 Daniel Steffen <das@users.sourceforge.net>
+
+ * generic/tclThreadTest.c:
+ * mac/tclMacChan.c:
+ * mac/tclMacFCmd.c:
+ * mac/tclMacFile.c:
+ * mac/tclMacLoad.c:
+ * mac/tclMacResource.c: TIP 27 CONSTification broke the mac
+ build in a number of places.
+
+2002-01-17 Andreas Kupries <andreas_kupries@users.sourceforge.net>
+
+ * generic/tclIOCmd.c (Tcl_GetsObjCmd): Fixed bug #504642 as
+ reported by Brian Griffin <bgriffin@users.sourceforge.net>,
+ using his patch. Before the patch the generic I/O layer held an
+ unannounced reference to the interp result to store the read
+ line into. This unfortunately has disastrous results if the
+ channel driver executes a tcl script to perform its operation,
+ this freeing the interp result. In that case we are
+ dereferencing essentially a dangling reference. It is not truly
+ dangling because the object is in the free list, but this only
+ causes us to smash the free list and have the error occur later
+ somewhere else. The patch simply creates a new object for the
+ line and later sets it into the interp result when we are done
+ with reading.
- * generic/tk.h:
- * generic/tkScale.h:
- * generic/tkScale.c:
- * generic/tkWindow.c:
- * unix/tkUnixScale.c:
- * unix/tkUnixDefault.h:
- * unix/tkWinDefault.h:
- * mac/tkMacDefault.h: Objectified scale widget.
+2002-01-16 Mo DeJong <mdejong@users.sourceforge.net>
- * win/tkWinX.c: Removed Thread-specific data from process
- initialization code that was stopping the Tk Dll from
- loading.
+ * unix/tcl.m4 (SC_LOAD_TCLCONFIG):
+ * win/tcl.m4 (SC_LOAD_TCLCONFIG): Subst TCL_DBGX
+ into TCL_STUB_LIB_FILE and TCL_STUB_LIB_FLAG
+ variables so that an extension does not need
+ to subst TCL_DBGX into its makefile. [Tk Bug 504356]
+
+2002-01-16 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/FileSystem.3:
+ * doc/GetCwd.3:
+ * doc/GetIndex.3:
+ * generic/tcl.decls (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct,
+ Tcl_GetCwd, Tcl_FSFileAttrStrings, Tcl_FSGetNativePath,
+ Tcl_FSGetTranslatedStringPath):
+ * generic/tcl.h (Tcl_FSFileAttrStringsProc):
+ * generic/tclFCmd.c (TclFileAttrsCmd):
+ * generic/tclIOUtil.c (Tcl_GetCwd,NativeFileAttrStrings,
+ Tcl_FSFileAttrStrings,Tcl_FSGetTranslatedStringPath,
+ Tcl_FSGetNativePath):
+ * generic/tclIndexObj.c (Tcl_GetIndexFromObj,Tcl_GetIndexFromObjStruct):
+ More TIP 27 updates in tclIOUtil.c and tclIndexObj.c that were
+ overlooked before. [Patch 504671]
+ ***POTENTIAL INCOMPATIBILITY***
+ Includes a source incompatibility in the tablePtr arguments of
+ the Tcl_GetIndexFromObj* routines.
+ * generic/tclDecls.h: make genstubs
+
+ * generic/tclBinary.c (Tcl_BinaryObjCmd):
+ * generic/tclClock.c (Tcl_ClockObjCmd):
+ * generic/tclCmdAH.c (Tcl_EncodingObjCmd, Tcl_FileObjCmd):
+ * generic/tclCmdIL.c (Tcl_InfoObjCmd,Tcl_LsearchObjCmd,Tcl_LsortObjCmd):
+ * generic/tclCmdMZ.c (Tcl_TraceObjCmd,Tcl_RegexpObjCmd,Tcl_RegsubObjCmd,
+ Tcl_StringObjCmd,Tcl_SubstObjCmd,Tcl_SwitchObjCmd,
+ TclTraceCommandObjCmd,TclTraceVariableObjCmd):
+ * generic/tclCompCmds.c (TclCompileStringCmd):
+ * generic/tclEvent.c (Tcl_UpdateObjCmd):
+ * generic/tclFileName.c (Tcl_GlobObjCmd):
+ * generic/tclIO.c (Tcl_FileEventObjCmd):
+ * generic/tclIOCmd.c (Tcl_SeekObjCmd,Tcl_ExecObjCmd,Tcl_SocketObjCmd,
+ Tcl_FcopyObjCmd):
+ * generic/tclInterp.c (Tcl_InterpObjCmd,SlaveObjCmd):
+ * generic/tclNamesp.c (Tcl_NamespaceObjCmd):
+ * generic/tclPkg.c (Tcl_PackageObjCmd):
+ * generic/tclTest.c (Tcltest_Init,TestencodingObjCmd,TestgetplatformCmd,
+ TestlocaleCmd,TestregexpObjCmd,TestsaveresultCmd,
+ TestGetIndexFromObjStructObjCmd,TestReportFileAttrStrings):
+ * generic/tclTestObj.c (TestindexObjCmd,TeststringObjCmd):
+ * generic/tclTimer.c (Tcl_AfterObjCmd):
+ * generic/tclVar.c (Tcl_ArrayObjCmd):
+ * mac/tclMacFCmd.c (SetFileFinderAttributes):
+ * unix/tclUnixChan.c (TclpOpenFileChannel):
+ * unix/tclUnixFCmd.c (tclpFileAttrStrings):
+ * unix/tclUnixFile.c (TclpObjAccess,TclpObjChdir,TclpObjStat,
+ TclpObjLstat):
+ * win/tclWinFCmd.c (tclpFileAttrStrings): Updated callers.
+
+ * doc/RegExp.3:
+ * doc/Utf.3:
+ * generic/tcl.decls:
+ * generic/tclInt.decls:
+ * generic/tclRegexp.c:
+ * generic/tclUtf.c: Updated APIs in generic/tclUtf.c and
+ generic/tclRegexp.c according to the guidelines of TIP 27.
+ [Patch 471509]
+
+ * generic/regc_locale.c (element,cclass):
+ * generic/tclCmdMZ.c (Tcl_StringObjCmd):
+ * generic/tclFileName.c (TclpGetNativePathType,SplitMacPath):
+ * generic/tclIO.c (ReadChars):
+ * mac/tclMacLoad.c (TclpLoadFile):
+ * win/tclWinFile.c (TclpGetUserHome): Updated callers.
+
+ * generic/tclDecls.h:
+ * generic/tclIntDecls.h: make genstubs
+
+ * doc/ParseCmd.3 (Tcl_ParseVar):
+ * generic/tcl.decls (Tcl_ParseVar):
+ * generic/tclParse.c (Tcl_ParseVar):
+ * generic/tclTest.c (TestparsevarObjCmd): Updated APIs in
+ generic/tclParse.c according to the guidelines of TIP 27. Updated
+ callers. [Patch 501046]
+ * generic/tclDecls.h: make genstubs
+
+ * generic/tcl.decls (Tcl_RecordAndEval):
+ * generic/tclDecls.h: make genstubs
+ * generic/tclHistory.c (Tcl_RecordAndEval): Updated APIs in
+ generic/tclHistory.c according to the guidelines of TIP 27.
+ [Patch 504091]
+
+ * doc/CrtSlave.3:
+ * generic/tcl.decls (Tcl_CreateAlias, Tcl_CreateAliasObj,
+ Tcl_CreateSlave, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_GetSlave):
+ * generic/tclInterp.c (Tcl_CreateAlias, Tcl_CreateAliasObj,
+ Tcl_CreateSlave, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_GetSlave):
+ Updated APIs in the file generic/tclInterp.c according to the
+ guidelines of TIP 27. [Patch 501371]
+ ***POTENTIAL INCOMPATIBILITY***
+ Includes a source incompatibility in the targetCmdPtr arguments of
+ the Tcl_GetAlias* routines.
+
+ * generic/tclDecls.h: make genstubs
+
+2002-01-15 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/SetErrno.3 (Tcl_ErrnoMsg): Corrected documentation for
+ Tcl_ErrnoMsg; it takes an integer argument. Thanks to Georgios
+ Petasis. [Bug 468183]
+
+ * doc/AddErrInfo.3 (Tcl_PosixError):
+ * doc/Eval.3 (Tcl_EvalFile):
+ * doc/FileSystem.c (Tcl_FSOpenFileChannel,Tcl_FSOpenFileChannelProc):
+ * doc/OpenFileChnl.3 (Tcl_OpenFileChannel):
+ * doc/SetErrno.3 (Tcl_ErrnoId,Tcl_ErrnoMsg):
+ * doc/Signal.3 (Tcl_SignalId,Tcl_SignalMsg):
+ * generic/tcl.decls (Tcl_ErrnoId,TclErrnoMsg,Tcl_EvalFile,
+ Tcl_OpenFileChannel,Tcl_PosixError,Tcl_SignalId,Tcl_SignalMsg,
+ Tcl_FSOpenFileChannel):
+ * generic/tcl.h (Tcl_FSOpenFileChannelProc):
+ * generic/tclIO.c (FlushChannel):
+ * generic/tclIOUtil.c (Tcl_OpenFileChannel,Tcl_EvalFile,TclGetOpenMode,
+ Tcl_PosixError,Tcl_FSOpenFileChannel):
+ * generic/tclInt.decls (TclGetOpenMode):
+ * generic/tclInt.h (TclOpenFileChannelProc_,TclGetOpenMode,
+ TclpOpenFileChannel):
+ * generic/tclPipe.c (TclCleanupChildren):
+ * generic/tclPosixStr.c (Tcl_ErrnoId,Tcl_ErrnoMsg,Tcl_SignalId,
+ Tcl_SignalMsg):
+ * generic.tclTest.c (PretendTclpOpenFileChannel,
+ TestOpenFileChannelProc1,TestOpenFileChannelProc2,
+ TestOpenFileChannelProc3,TestReportOpenFileChannel):
+ * mac/tclMacChan.c (TclpOpenFileChannel):
+ * unix/tclUnixChan.c (TclpOpenFileChannel):
+ * win/tclWinChan.c (TclpOpenFileChannel): Updated APIs in
+ generic/tclIOUtil.c and generic/tclPosixStr.c according to the
+ guidelines of TIP 27. Updated callers. [Patch 499196]
+
+ * generic/tclDecls.h:
+ * generic/tclIntDecls.h: make genstubs
+
+ * doc/CrtChannel.3:
+ * doc/OpenFileChnl.3:
+ * generic/tcl.decls:
+ * generic/tclIO.h:
+ * generic/tclIO.c (DoWrite, Tcl_RegisterChannel, Tcl_GetChannel,
+ Tcl_CreateChannel, Tcl_GetChannelName, CloseChannel, Tcl_Write,
+ Tcl_WriteRaw, Tcl_Ungets, Tcl_BadChannelOption, Tcl_GetChannelOption,
+ Tcl_SetChannelOption, Tcl_GetChannelNamesEx, Tcl_ChannelName):
+ Updated APIs in the file generic/tclIO.c according to the guidelines
+ of TIP 27. Several minor documentation corrections as well.
+ [Patch 503565]
+ * generic/tclDecls.h: make genstubs
+
+ * generic/tcl.h (Tcl_DriverOutputProc, Tcl_DriverGetOptionProc,
+ Tcl_DriverSetOptionProc):
+ * generic/tclIOGT.c (TransformOutputProc, TransformGetOptionProc,
+ TransformSetOptionProc):
+ * mac/tclMacChan.c (FileOutput, StdIOOutput):
+ * man/tclMacSock.c (TcpGetOptionProc, TcpOutput):
+ * unix/tclUnixChan.c (FileOutputProc, TcpGetOptionProc, TcpOutputProc,
+ TtyGetOptionProc, TtySetOptionProc):
+ * unix/tclUnixPipe.c (PipeOuputProc):
+ * win/tclWinChan.c (FileOutputProc):
+ * win/tclWinConsole.c (ConsleOutputProc):
+ * win/tclWinPipe.c (PipeOuputProc):
+ * win/tclWinSerial.c (SerialOutputProc, SerialGetOptionProc,
+ SerialSetOptionProc):
+ * win/tclWinSock.c (TcpGetOptionProc, TcpOutput): Updated channel
+ driver interface according to the guidelines of TIP 27. See also
+ [Bug 500348].
+
+ * doc/CrtChannel.3:
+ * generic/tcl.h:
+ * generic/tclIO.c:
+ * generic/tclIO.h:
+ * generic/tclInt.h:
+ * tools/checkLibraryDoc.tcl:
+ Moved Tcl_EolTranslation enum declaration from generic/tcl.h to
+ generic/tclInt.h (renamed to TclEolTranslation). It is not used
+ anywhere in Tcl's public interface.
+
+2002-01-14 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/GetIndex.3:
+ * doc/WrongNumArgs.3:
+ * generic/tcl.decls (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct,
+ Tcl_WrongNumArgs):
+ * generic/tclIndexObj.c (Tcl_GetIndexFromObj, Tcl_GetIndexFromObjStruct,
+ Tcl_WrongNumArgs): Updated APIs in the file generic/tclIndexObj.c
+ according to the guidelines of TIP 27. [Patch 501491]
+ * generic/tclDecls.h: make genstubs
-1999-02-11 <stanton@GASPODE>
+2002-01-11 Mo DeJong <mdejong@users.sourceforge.net>
- * README:
- * generic/tk.h:
+ * unix/configure: Regen.
* unix/configure.in:
- * win/README:
- * win/makefile.bc:
- * win/makefile.vc: Updated version to 8.1b2.
-
- * unix/tkUnixSend.c: Fixed one more Tcl_*ObjVar instance.
-
-1999-02-04 <stanton@GASPODE>
-
- * Various cleanup related to the Tcl_Eval and Tcl_ObjSetVar
- changes in Tcl.
-
- INTEGRATED PATCHES FROM 8.0.5b2:
-
- * win/tkWinMenu.c (TkpDestroyMenu): Changed so modalMenuPtr is
- cleared when it is being destroyed.
-
- * generic/tkImgPhoto.c: Changed so color tables are freed
- immediately instead of being delayed. This ensures that color
- tables are properly disposed at process exit.
-
- * library/prolog.ps: Changed string that determines font height to
- include European character with an umlaut.
-
- * generic/tkImgBmap.c (ImgBmapConfigureInstance): If an image
- mask changed but ended up with the same XID, the GC failed to be
- updated and so the new mask was not used. [Bug: 970]
-
- * generic/tkFocus.c (SetFocus): Changed so focus window is always
- set if -force is specified. This fixes the problem on Windows
- where Tk does not activate the window if it already has focus.
-
- * generic/tkConsole.c: Fixed so errors in console eval are
- reported properly. Eliminated duplicate result messages. [Bug: 973]
-
- * win/tkWinWm.c: Changed so windows that aren't resizable don't
- have resize handles and the zoom box is disabled.
-
- * win/tkWinInt.h:
- * win/tkWinPointer.c: Changed to cancel the mouse timer when a
- user initiated move/resize loop begins.
-
- * unix/configure.in: TK_LD_SEARCH_FLAGS was set incorrectly if
- SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through
- the C compiler. Systems affected are Linux, MP-RAS and NEXTSTEP,
- but also with gcc on many more systems. [Bug: 908]
-
- * win/makefile.vc: First stab at install target. Fixed quoting so
- paths with spaces work.
-
- * tests/main.test:
- * tests/unixWm.test: Better cleanup of temporary files.
-
- * mac/tkMacAppInit.c:
- * generic/tkTest.c:
- * generic/tkAppInit.c:
- * win/winMain.c: Changed some EXTERN declarations to extern
- since they are not defining exported interfaces. This avoids
- generating useless declspec() attributes and makes the windows
- makefile simpler.
-
- * library/menu.tcl (tkMenuFind): Changed so keyboard shortcuts
- will only be found in the current toplevel. Previously, they
- might be found in menus attached to other toplevels that might not
- even be mapped. [Bug: 924]
-
- * generic/tkCanvLine.c: Changed to treat zero width lines like
- they have width 1 for purposes of selection. [Bug: 925]
-
- * win/tkWinFont.c (Tk_MeasureChars): Added a workaround for a bug
- in GetTextExtentExPoint on Win NT 4.0/Japanese. [Bug: 1006]
-
- * unix/tkUnixSend.c (Tk_SetAppName): Fixed uninitialized memory
- access bug. [Bug: 919]
-
-1999-1-28 <stanton@GASPODE>
-
- * generic/tkGrid.c: Fixed bug in "grid forget" that failed to cancel
- pending idle handlers, resulting in a crash in a few odd cases.
-
-1999-01-06 <lfb@JUSTICE>
-
- * generic/tk.h, generic/tkGet.c, generic/tkConfig.c,
- * generic/tkOldConfig.c, generic/tkEntry.c, generic/tkMenubutton.c,
- * generic/tkMenubutton.h, generic/tkScale.c, generic/tkScale.h,
- * generic/tkTextDisplay.c, generic/tkText.c, unix/tkUnixMenubu.c,
- * unix/tkUnixScale.c, mac/tkMacMenu.c, mac/tkMacMenubutton.c,
-
- Removed global Tk_Uids dealing with "-state" configuration option
- and added new TK_CONFIG_STATE configSpec that doesn't use
- Tk_Uids.
-
-1998-12-11 === Tk 8.1b1 Release ===
-
-1998-12-11 <stanton@GASPODE>
-
- * generic/tkMain.c (Tk_Main): Fixed improper command line encoding
- handling.
-
-1998-12-08 <stanton@GASPODE>
-
- * win/tkWinClipboard.c (TkSelGetSelection, TkWinClipboardRender):
- Changed to handle multibyte characters properly. [Bug: 935]
-
-1998-12-07 <stanton@GASPODE>
-
- * library/xmfbox.tcl (tkMotifFDialog_Create): In the cached case,
- the data array was not being initialized with the correct set of
- widgets.
-
-1998-12-4 <welch@SAGE>
-
- * Changed patchLevel to 8.1b1
-
- * generic/tkMenu.c (ConfigureMenuCloneEntries): The -menu configuration
- option was being incorrectly specified as just "menu".
-
-1998-11-30 <stanton@GASPODE>
-
- * generic/tkButton.c (ConfigureButton): The error result was
- getting lost when restoring configuration options. [Bug: 619]
-
-1998-11-25 <stanton@GASPODE>
-
- * unix/tkUnixFont.c (GetFontAttributes): Initialize an unspecified
- family to an empty string.
- (FontMapLoadPage): if the font included characters below 32, the
- index computation was incorrect because the range was shifted up
- to 32.
- (CreateClosestFont): check for empty locale as well as NULL.
-
- * generic/tkFont.c (TkFontParseXLFD): initialize charset to
- iso8859-1 if no charset is specified.
-
- * mac/tkMacHLEvents.c (OdocHandler): added conversion from
- external string to UTF [Bug: 869]
-
- * integrated tk8.0.4 changes.
-
- * generic/tkBind.c: fixed deletion order bug where a crash would
- result if a binding deleted "."
-
- * generic/tkMenu.c (MenuWidgetObjCmd): disabled menu entries were
- getting reenabled whenever the mouse passed over the entry [Bug: 860]
+ * win/configure: Regen.
+ * win/configure.in: Use ${libdir} instead of ${exec_prefix}/lib
+ to properly support the --libdir option to configure. [Bug 489370]
- * unix/tkUnixMenu.c (TkpComputeStandardMenuGeometry): hidemargin
- option was not honored properly in menus [Bug: 859]
+2002-01-11 Andreas Kupries <andreas_kupries@users.sourceforge.net>
-1998-11-24 <stanton@GASPODE>
+ * win/tclWinSerial.c (SerialSetOptionProc): Applied patch for SF
+ bug #500348 supplied by Rolf Schroedter
+ <schroedter@users.sourceforge.net>. The function modified the
+ contents of the the 'value' string and now does not do this
+ anymore. This is a followup to the change made on 2001-12-17.
- * tkMacMenu.c, tkUnixMenu.c, tkWinMenu.c, tkMenuDraw.c, tkMenu.h,
- * tkMenu.c: Backed out the previous fix for bug 620 and
- eliminated a bunch of code that created unnecessary objects.
- Changed back to using internal types instead of objects for many
- configuration options. There are many more fixes like this that
- could be made, but some require a little restructuring of the
- code. In any case the leaks are fixed and there is a lot less
- allocation happening. [Bug: 620]
+2002-01-11 David Gravereaux <davygrvy@pobox.com>
-1998-11-19 <stanton@GASPODE>
+ * win/makefile.vc: Removed -GD compiler option. It was intended
+ for future use, but MS is again changing the future at their whim.
+ The D4002 warning was harmless though, but someone using VC .NET
+ logged it as a concern. [Bug #501565]
- * tkMenu.c (DestroyMenuEntry): fixed memory leaks [Bug: 620]
-
- * tkWinX.c (GetTranslatedKey): fixed bad code merge
+2002-01-11 Mo DeJong <mdejong@users.sourceforge.net>
- * tkWinWm.c, tkWinMenu.c: fixed titles and menus so they properly
- display Unicode [Bug: 819]
+ * unix/Makefile.in: Burn Tcl build directory
+ into tcltest executable to avoid crashes caused
+ by ld loading a previously installed version
+ of the tcl shared library. [Bug 218110]
+
+2002-01-10 Don Porter <dgp@users.sourceforge.net>,
+ Kevin Kenny <kennykb@users.sourceforge.net>
+
+ * unix/tclLoadDld.c (TclpLoadFile): syntax error: unbalanced
+ parens. Kevin notes that it's far from clear that this file is
+ ever included in an actual build; Linux without dlopen appears to
+ be a nonexistent configuration.
+
+2002-01-08 Don Porter <dgp@users.sourceforge.net>,
+ Kevin Kenny <kennykb@users.sourceforge.net>
+
+ * doc/StaticPkg.3 (Tcl_StaticPackage):
+ * generic/tcl.decls (Tcl_StaticPackage):
+ * generic/tclDecls.h (Tcl_StaticPackage):
+ * generic/tclInt.decls (TclGuessPackageName):
+ * generic/tclInt.h (TclGuessPackageName):
+ * generic/tclLoad.c (Tcl_StaticPackage):
+ * generic/tclLoadNone.c (TclGuessPackageName):
+ * mac/tclMacLoad.c (TclGuessPackageName):
+ * unix/tclLoadAout.c (TclGuessPackageName):
+ * unix/tclLoadDl.c (TclGuessPackageName):
+ * unix/tclLoadDld.c (TclGuessPackageName):
+ * unix/tclLoadDyld.c (TclGuessPackageName):
+ * unix/tclLoadNext.c (TclGuessPackageName):
+ * unix/tclLoadOSF.c (TclGuessPackageName):
+ * unix/tclLoadShl.c (TclGuessPackageName):
+ * win/tclWinLoad.c (TclGuessPackageName): Updated APIs in
+ the files */tcl*Load*.c according to the guidelines of TIP 27.
+ [Patch 501096]
+
+2002-01-09 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclTest.c (MainLoop):
+ * tests/main.test (Tcl_Main-1.{3,4,5,6}): Corrected some non-portable
+ tests from the new Tcl_Main changes. Thanks to Kevin Kenny.
+
+2002-01-07 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tclEvent.c (TclInExit):
+ * generic/tclIOUtil.c (SetFsPathFromAbsoluteNormalized,
+ SetFsPathFromAny,Tcl_FSNewNativePath,DupFsPathInternalRep):
+ * generic/tclListObj.c (TclLsetList,TclLsetFlat): Added some type
+ casts to satisfy picky compilers.
+
+ * generic/tclMain.c: Bug fix: neglected the NULL case in
+ TclGetStartupScriptFileName(). Broke Tk/wish.
+
+2002-01-05 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/Tcl_Main.3:
+ * generic/tclMain.c: Substantial rewrite and expanded documentation
+ of Tcl_Main to correct a number of bugs and flaws:
+
+ * Interactive Tcl_Main can now enter a main loop, exit
+ that loop and continue interactive operations. The loop
+ may even exit in the midst of interactive command typing
+ without loss of the partial command. [Bugs 486453, 474131]
+ * Tcl_Main now gracefully handles deletion of its master
+ interpreter.
+ * Interactive Tcl_Main can now operate with non-blocking stdin
+ * Interactive Tcl_Main can now detect EOF on stdin even in
+ mid-command. [Bug 491341]
+ * Added VFS-aware internal routines for managing the
+ startup script selection.
+ * Tcl variable 'tcl_interactive' is now linked to C variable
+ 'tty' so that one can disable/enable interactive prompts
+ at the script level when there is no startup script. This
+ is meant for use by the test suite.
+ * Consistent use of the Tcl libraries standard channels as
+ returned by Tcl_GetStdChannel(); as opposed to the channels
+ named 'stdin', 'stdout', and 'stderr' in the master interp,
+ which can be different or unavailable.
+ * Tcl_Main now calls Tcl_Exit() if evaluation of [exit] in the
+ master interpreter returns, assuring Tcl_Main does not return.
+ * Documented Tcl_Main's absence from public stub table
+ * Documented that Tcl_Main does not return.
+ * Documented Tcl variables set by Tcl_Main.
+ * All prompts are done from a single procedure, Prompt.
+ * Use of Tcl_Obj-enabled interfaces everywhere.
+
+ * generic/tclInt.decls (TclGetStartupScriptPath,
+ TclSetStartupScriptPath): New internal VFS-aware routines for
+ managing the startup script of Tcl_Main.
+ * generic/tclIntDecls.h:
+ * generic/tclStubInit.c: make genstubs
+
+ * generic/tclTest.c (TestsetmainloopCmd,TestexitmainloopCmd,
+ Tcltest_Init,TestinterpdeleteCmd):
+ * tests/main.test (new): Added new file to test suite that
+ thoroughly tests generic/tclMain.c; added some new test commands
+ for testing Tcl_SetMainLoop().
+
+2002-01-04 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/Alloc.3:
+ * doc/Concat.3:
+ * doc/CrtMathFnc.3:
+ * doc/Hash.3:
+ * doc/Interp.3:
+ * doc/LinkVar.3:
+ * doc/ObjectType.3:
+ * doc/PkgRequire.3:
+ * doc/Preserve.3:
+ * doc/SetResult.3:
+ * doc/SplitList.3:
+ * doc/SplitPath.3:
+ * doc/TCL_MEM_DEBUG.3: Updated documentation to describe the ckalloc,
+ ckfree, ckrealloc, attemptckalloc, and attemptckrealloc macros, and
+ to accurately describe when and how they are used. [Bug 497459]
+
+ * generic/tclThreadJoin.c (TclRememberJoinableThread,TclJoinThread):
+ Replaced Tcl_Alloc and Tcl_Free calls with ckalloc and ckfree so that
+ memory debugging is supported.
+
+2002-01-04 Daniel Steffen <das@users.sourceforge.net>
+
+ * mac/tclMacTime.c (TclpGetTZName): fix for daylight savings TZName bug
+
+2002-01-03 Don Porter <dgp@users.sourceforge.net>
+
+ * doc/FileSystem.3:
+ * generic/tclIOUtil.c: Updated some old uses of "fileName" to
+ new VFS terminology, "pathPtr".
+
+2002-01-03 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * tests/basic.test (basic-39.4): Greatly simplified test while
+ still leaving it so that it crashes when run without the fix to
+ the [foreach] implementation.
+ * generic/tclCmdAH.c (Tcl_ForeachObjCmd): Stopped Bug #494348 from
+ happening by not trying to be so clever with cacheing; if nothing
+ untoward is happening anyway, the less efficient technique will
+ only add a few instruction cycles (one function call and a few
+ derefs/assigns per list per iteration, with no change in the
+ number of tests) and if something odd *is* going on, the code is
+ now far more robust.
+
+ * tests/basic.test (basic-39.4): Reproducable script from Bug #494348
+
+2002-01-02 Donal K. Fellows <fellowsd@cs.man.ac.uk>
+
+ * tests/util.test (Wrapper_Tcl_StringMatch,util-5.*): Rewrote so
+ the test is performed with the right internal function since
+ [string match] no longer uses Tcl_StringCaseMatch internally.
+
+ * tests/string.test (string-11.51):
+ * generic/tclUtf.c (Tcl_UniCharCaseMatch):
+ * generic/tclUtil.c (Tcl_StringCaseMatch): Fault with matching
+ case-insensitive non-ASCII patterns containing upper case
+ characters. [Bug #233257]
+
+ ******************************************************************
+ *** CHANGELOG ENTRIES FOR 2001 IN "ChangeLog.2001" ***
+ *** CHANGELOG ENTRIES FOR 2000 IN "ChangeLog.2000" ***
+ *** CHANGELOG ENTRIES FOR 1999 AND EARLIER IN "ChangeLog.1999" ***
+ ******************************************************************
diff --git a/tcl/README b/tcl/README
index 45c0ea1d2d7..e48983c5566 100644
--- a/tcl/README
+++ b/tcl/README
@@ -1,5 +1,5 @@
-README: Tk
- This is the Tk 8.4.0 source distribution.
+README: Tcl
+ This is the Tcl 8.4.0 source distribution.
Tcl/Tk is also available through NetCVS:
http://tcl.sourceforge.net/
You can get any source release of Tcl from the file distributions
@@ -7,39 +7,180 @@ README: Tk
RCS: @(#) $Id$
+Contents
+--------
+ 1. Introduction
+ 2. Documentation
+ 3. Compiling and installing Tcl
+ 4. Development tools
+ 5. Tcl newsgroup
+ 6. Tcl contributed archive
+ 7. Tcl Resource Center
+ 8. Mailing lists
+ 9. Support and Training
+ 10. Thank You
+
1. Introduction
---------------
+Tcl provides a powerful platform for creating integration applications that
+tie together diverse applications, protocols, devices, and frameworks.
+When paired with the Tk toolkit, Tcl provides the fastest and most powerful
+way to create GUI applications that run on PCs, Unix, and the Macintosh.
+Tcl can also be used for a variety of web-related tasks and for creating
+powerful command languages for applications.
+
+Tcl is maintained, enhanced, and distributed freely by the Tcl community.
+The home for Tcl/Tk sources and bug/patch database is on SourceForge:
+
+ http://tcl.sourceforge.net/
-This directory contains the sources and documentation for Tk, an X11
-toolkit implemented with the Tcl scripting language.
+with the Tcl Developer Xchange hosted at:
-For details on features, incompatibilities, and potential problems with
-this release, see the Tcl/Tk 8.4 Web page at
+ http://www.tcl.tk/
+Tcl is a freely available open source package. You can do virtually
+anything you like with it, such as modifying it, redistributing it,
+and selling it either in whole or in part. See the file
+"license.terms" for complete information.
+
+2. Documentation
+----------------
+
+Extensive documentation is available at our website.
+The home page for this release, including new features, is
http://www.tcl.tk/software/tcltk/8.4.html
-or refer to the "changes" file in this directory, which contains a
-historical record of all changes to Tk.
+Detailed release notes can be found at the file distributions page
+by clicking on the relevant version.
+ http://sourceforge.net/project/showfiles.php?group_id=10894
+
+Information about Tcl itself can be found at
+ http://www.tcl.tk/scripting/
+
+There are many Tcl books on the market. Most are listed at
+ http://www.tcl.tk/resource/doc/books/
+
+2a. Unix Documentation
+----------------------
+
+The "doc" subdirectory in this release contains a complete set of
+reference manual entries for Tcl. Files with extension ".1" are for
+programs (for example, tclsh.1); files with extension ".3" are for C
+library procedures; and files with extension ".n" describe Tcl
+commands. The file "doc/Tcl.n" gives a quick summary of the Tcl
+language syntax. To print any of the man pages on Unix, cd to the
+"doc" directory and invoke your favorite variant of troff using the
+normal -man macros, for example
+
+ ditroff -man Tcl.n
+
+to print Tcl.n. If Tcl has been installed correctly and your "man" program
+supports it, you should be able to access the Tcl manual entries using the
+normal "man" mechanisms, such as
+
+ man Tcl
+
+2b. Windows Documentation
+-------------------------
+
+The "doc" subdirectory in this release contains a complete set of Windows
+help files for Tcl. Once you install this Tcl release, a shortcut to the
+Windows help Tcl documentation will appear in the "Start" menu:
+
+ Start | Programs | Tcl | Tcl Help
+
+3. Compiling and installing Tcl
+-------------------------------
-Tk is maintained, enhanced, and distributed freely by members of the
-Tcl community. The home for Tcl/Tk sources and bug database is on
-SourceForge at:
+There are brief notes in the unix/README, win/README, and mac/README about
+compiling on these different platforms. There is additional information
+about building Tcl from sources at
+
+ http://www.tcl.tk/doc/howto/compile.html
+
+4. TclPro Development tools
+---------------------------
+
+A high quality set of commercial quality development tools is available to
+accelerate your Tcl application development. The TclPro product provides a
+debugger, static code checker, packaging utility, and bytecode compiler.
+TclPro was open-sourced when Scriptics/Ajuba was acquired by Interwoven.
+Visit its home at SourceForge for more information and source/binaries:
+
+ http://tclpro.sourceforge.net/
+
+5. Tcl newsgroup
+----------------
+
+There is a network news group "comp.lang.tcl" intended for the exchange of
+information about Tcl, Tk, and related applications. The newsgroup is a
+great place to ask general information questions. For bug reports, please
+see the "Support and bug fixes" section below.
+
+6. Tcl contributed archive
+--------------------------
+
+Many people have created exciting packages and applications based on Tcl
+and/or Tk and made them freely available to the Tcl community. An archive
+of these contributions is kept on the machine ftp.neosoft.com. You
+can access the archive using anonymous FTP; the Tcl contributed archive is
+in the directory "/pub/tcl". The archive also contains several FAQ
+("frequently asked questions") documents that provide solutions to problems
+that are commonly encountered by TCL newcomers.
+
+7. Tcl Resource Center
+----------------------
+
+Visit http://www.tcl.tk/resource/ to see an annotated index of
+many Tcl resources available on the World Wide Web. This includes
+papers, books, and FAQs, as well as development tools, extensions,
+applications, binary releases, and patches. You can also recommend
+additional URLs for the resource center using the forms labeled "Add a
+Resource".
+
+8. Mailing lists
+----------------
+
+Several mailing lists are hosted at SourceForge to discuss development or
+use issues (like Macintosh and Windows topics). For more information and
+to subscribe, visit:
+
+ http://sourceforge.net/projects/tcl/
+
+and go to the Mailing Lists page.
+
+9. Support and Training
+------------------------
+
+We are very interested in receiving bug reports, patches, and suggestions
+for improvements. We prefer that you send this information to us via the
+bug form at SourceForge, rather than emailing us directly. The bug
+database is at:
http://tcl.sourceforge.net/
-with the Tcl Developer Xchange at:
+The bug form was designed to give uniform structure to bug reports as
+well as to solicit enough information to minimize followup questions.
- http://www.tcl.tk/
+We will log and follow-up on each bug, although we cannot promise a
+specific turn-around time. Enhancements may take longer and may not happen
+at all unless there is widespread support for them (we're trying to slow
+the rate at which Tcl/Tk turns into a kitchen sink). It's very difficult
+to make incompatible changes to Tcl/Tk at this point, due to the size of
+the installed base.
-Tk is a freely available open source package. You can do virtually
-anything you like with it, such as modifying it, redistributing it,
-and selling it either in whole or in part. See the file
-"license.terms" for complete information.
+The Tcl community is too large for us to provide much individual support
+for users. If you need help we suggest that you post questions to
+comp.lang.tcl. We read the newsgroup and will attempt to answer esoteric
+questions for which no-one else is likely to know the answer. In addition,
+see the following Web site for links to other organizations that offer
+Tcl/Tk training:
+
+ http://www.tcl.tk/resource/community/commercial/training
-2. See Tcl README
------------------
+10. Thank You
+-------------
-Please see the README file that comes with the associated Tcl release
-for more information. There are pointers there to extensive
-documentation. In addition, there are additional README files
-in the subdirectories of this distribution.
+We'd like to express our thanks to the Tcl community for all the
+helpful suggestions, bug reports, and patches we have received.
+Tcl/Tk has improved vastly and will continue to do so with your help.
diff --git a/tcl/changes b/tcl/changes
index 8d8da5bf953..d24add87332 100644
--- a/tcl/changes
+++ b/tcl/changes
@@ -1,5313 +1,5602 @@
-This file summarizes all changes made to Tk since version 1.0 was
-released on March 13, 1991. Changes that aren't backward compatible
-are marked specially.
+Recent user-visible changes to Tcl:
RCS: @(#) $Id$
-3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
-the interpreter when the main window is deleted (otherwise there will
-be dangling pointers to the non-existent window).
+1. No more [command1] [command2] construct for grouping multiple
+commands on a single command line.
-3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
-some X servers get upset at this.
+2. Semi-colon now available for grouping commands on a line.
-3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
-couldn't find group on shareList" panic.
+3. For a command to span multiple lines, must now use backslash-return
+at the end of each line but the last.
-3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
-handle listboxes (and scrollbars) with zero total entries in them.
+4. "Var" command has been changed to "set".
-3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.
+5. Double-quotes now available as an argument grouping character.
-3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
-in some cases where wish scripts invoke "destroy .".
+6. "Return" may be used at top-level.
-3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
-handler.
+7. More backslash sequences available now. In particular, backslash-newline
+may be used to join lines in command files.
-3/23/91 (bug fix and new feature) Added -name option to main.c, made
-it more clever about choosing name (was always using the name "wish"
-on most Unix systems).
+8. New or modified built-in commands: case, return, for, glob, info,
+print, return, set, source, string, uplevel.
-3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
-used it to malloc strings for various widget options that used to be
-Tk_Uid's (e.g. button text, message strings, etc.). Eliminates core
-leaks when values change in continuous non-repeating fashion.
+9. After an error, the variable "errorInfo" is filled with a stack
+trace showing what was being executed when the error occurred.
-3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
-Tk_EventuallyFree procedures to help manage widget records and avoid
-premature memory free-ing.
+10. Command abbreviations are accepted when parsing commands, but
+are not recommended except for purely-interactive commands.
-4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
-wasn't tracking correctly when wm-induced size change also changed window
-position (e.g. menus wouldn't be displayed at the right places).
+11. $, set, and expr all complain now if a non-existent variable is
+referenced.
-4/5/91 (new feature) Added "invoke" option to widget command for buttons,
-check buttons, and radio buttons.
+12. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man.
-4/5/91 (new feature) Added "unpack" option to "pack" command.
+13. Changed to distinguish between empty variables and those that don't
+exist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed
+(NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY ***
-4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
-more careful about window deletions that occur while repacking is in
-progress.
+14. Changed meaning of "level" argument to "uplevel" command (1 now means
+"go up one level", not "go to level 1"; "#1" means "go to level 1").
+*** POTENTIAL INCOMPATIBILITY ***
-4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
-Tk_Preserve and Tk_Release. Should fix many problems.
+15. 3/19/90 Added "info exists" option to see if variable exists.
-4/6/91 (bug fix) Changed "winfo children" to generate correct lists
-when child names have embedded spaces.
+16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations.
-4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
-"winfo".
+17. 3/19/90 Added extra errorInfo option to "error" command.
-4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
-%-substitutions in commands (e.g. long path names) and caused memory
-to be overwritten. Modified tkBind.c to fix.
+18. 3/21/90 Double-quotes now only affect space: command, variable,
+and backslash substitutions still occur inside double-quotes.
+*** POTENTIAL INCOMPATIBILITY ***
----------------------- Release 1.1, 4/18/91 -------------------------
+19. 3/21/90 Added support for \r.
-4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
-windows causes windows to gradually walk south when moved or resized.
-Fixed tkWm.c to patch around the problem.
+20. 3/21/90 List, concat, eval, and glob commands all expect at least
+one argument now. *** POTENTIAL INCOMPATIBILITY ***
----------------------- Release 1.2, 4/24/91 -------------------------
+21. 3/22/90 Added "?:" operators to expressions.
-4/26/91 (new feature) Added -geometry and -display switches to wish.
-Also wrote wish manual entry.
+22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed.
-5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
-at right edge of window when strings were to large to fit in window.
+------------------- Released version 3.1 ---------------------
-5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
-updated when elements were deleted: tended to cause errors in
-communication with scrollbars.
+23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c".
-5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
-consecutive points in a polygon were the same (happened with some
-configurations of radio buttons, for example).
+24. 3/29/90 Semi-colon is not treated specially when enclosed in
+double-quotes.
-5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.
+------------------- Released version 3.2 ---------------------
-6/1/91 (bug fix) Make sure that pointers are never used after being
-freed.
+25. 4/16/90 Rewrote "exec" not to use select or signals anymore.
+Should be more Sys-V compatible, and no slower in the normal case.
-6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
-values to not always be printed correctly.
+26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code
+left in Tcl, now), and added Tcl_TildeSubst procedure. Added automatic
+tilde-substitution in many commands, including "glob".
-6/15/91 (bug fix) Make sure that interpreters are always unregistered
-when their main windows are deleted, and make wish delete the main
-window before exiting.
+------------------- Released version 3.3 ---------------------
-8/21/91 (misfeature correction) Automatically set source of window
-position to "user" in "wm geometry" command, unless it has been
-explicitly set to "program".
+27. 7/11/90 Added "Tcl_AppendResult" procedure.
-9/5/91 (bug fix) Modified option code to accept '#' as a comment
-character in .Xdefaults files, in addition to '!'.
+28. 7/20/90 "History" with no options now defaults to "history info"
+rather than to "history redo". Although this is a backward incompatibility,
+it should only be used interactively and thus shouldn't present any
+compatibility problems with scripts.
-9/10/91 (misfeature correction) Changed binding mechanism so that
-numeric %-sequences are output in decimal instead of hex.
+29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean"
+procedures.
-9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
-checking files and X connections properly so it missed events.
+30. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to be
+necessary, since the same effect can be achieved with the deletion
+callbacks on individual commands. *** POTENTIAL INCOMPATIBILITY ***
-10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
-table" structure, which can be used to create bindings on items in
-canvases as well as windows.
+31. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar,
+and Tcl_VarTraceInfo procedures, "trace" command.
-10/6/91 (new feature) Upgraded buttons and menus to use new tracing
-code in Tcl 6.0. Allows radio buttons and check buttons to both set
-and clear themselves when associated variable changes.
+32. 8/9/90 Mailed out list of all bug fixes since 3.3 release.
-10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
-selection when new entries were inserted in the listbox after the location
-of the selected item(s), and goofed up on redisplay if selected item
-was deleted and then selection was immediately lost.
+33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and
+semi-colons. Mailed out patch.
-10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
-manages window; this led to core dumps in some situations.
+34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s.
+Mailed out patch.
-10/31/91 (reorganization) Renamed manual entries so that they are no
-more than 14 characters in length.
+35. 9/19/90 Rewrote exec to always use files both for input and
+output to the process. The old pipe-based version didn't work if
+the exec'ed process forked a child and then exited: Tcl waited
+around for stdout to get closed, which didn't happen until the
+grandchild exited.
-10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
-doesn't needed to be included by tk.h.
+36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough
+in Tcl_Eval, allowing error messages from different commands to
+pile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval that
+re-initializes result and ERR_IN_PROGRESS flag. Didn't mail out
+patch: changes too complicated to describe.
-11/3/91 (portability improvement) Eliminated use of "class" as a variable
-name, since it's a reserved word in C++.
+37. 12/19/90 Added Tcl_VarEval procedure as a convenience for
+assembling and executing Tcl commands.
-11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
-use of Tcl hash tables instead of separate "Hash_" module. The "lib"
-subdirectory is no longer needed in Tk.
+38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedure
+and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from
+Tcl_Eval.
----------------------- Release 1.3, 11/7/91 -------------------------
+----------------- Released version 5.0 with Tk ------------------
-11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
-are modified (FindSequence in tkBind.c forget to set *maskPtr).
+39. 4/3/91 Removed change bars from manual entries, leaving only those
+that came after version 3.3 was released.
-11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue. Could
-cause new entries to get created unnecessarily.
+40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach.
+
+41. 5/23/91 Massive revision to Tcl parser to simplify the implementation
+of string and floating-point support in expressions. Newlines inside
+[] are now treated as command separators rather than word separators
+(this makes newline treatment consistent throughout Tcl).
+*** POTENTIAL INCOMPATIBILITY ***
-12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
-special characters (e.g. [ or \) that appear in %-replacements, so that
-they can be parsed cleanly.
+42. 5/23/91 Massive rewrite of expression code to support floating-point
+values and simple string comparisons. The C interfaces to expression
+routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble,
+etc.), but all old Tcl expression strings should be accepted by the new
+expression code.
+*** POTENTIAL INCOMPATIBILITY ***
-12/10/91 (bug fix) Manual entries had first lines that caused "man" program
-to try weird preprocessor. Added blank comment lines to fix problem.
+43. 5/23/91 Modified tclHistory.c to check for negative "keep" value.
-1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
-and the like to make it more clear that the argument must be a Tk_Uid
-and not a string.
+44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It now
+returns 0 to indicate that a backslash sequence should be replaced by
+no character at all.
+*** POTENTIAL INCOMPATIBILITY ***
-1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
-very narrow (too small to hold both arrows) could cause negative values
-in calls to XClearArea, which crashed some servers.
+45. 5/29/91 Modified to use ANSI C function prototypes. Must set
+"USE_ANSI" switch when compiling to get prototypes.
-1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
-is 0. Occasionally affected things like message window geometry.
+46. 5/29/91 Completed test suite by providing tests for all of the
+built-in Tcl commands.
-1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
-Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
-in Tk_ConfigureWidget.
+47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing
+white-space in each of the things it concatenates and to ignore
+elements that are empty or have only white space in them. This
+produces cleaner output from the "concat" command.
+*** POTENTIAL INCOMPATIBILITY ***
+
+48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return
+new value of variable.
----------------------- Release 1.4, 1/10/92 -------------------------
+49. 6/1/91 Added "while" and "cd" commands.
-1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
-properly during menubutton cleanup if an error occurred during
-menubutton creation.
+50. 6/1/91 Changed "exec" to delete the last character of program
+output if it is a newline. In most cases this makes it easier to
+process program-generated output.
+*** POTENTIAL INCOMPATIBILITY ***
-1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
-scrollbars to display a slider that was too large.
+51. 6/1/91 Made sure that pointers are never used after freeing them.
-2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
-where new mask was specified for existing handler.
+52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with
+[] inside quotes correctly.
-2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
-bindings from the pattern table: only did the removal for the
-first pattern in a pattern list.
+53. 6/8/91 Fixed exec.test to accept return values of either 1 or
+255 from "false" command.
-2/15/92 (new feature) Added procedures Tk_DefineBitmap and
-Tk_SizeOfBitmap. Tk_GetBitmapFromData is now considered obsolete
-and probably shouldn't be used anymore. Tk_GetBitmapFromData
-is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.
+54. 7/6/91 Massive overhaul of variable management. Associative
+arrays now available, along with "unset" command (and Tcl_UnsetVar
+procedure). Variable traces have been completely reworked:
+interfaces different both from Tcl and C, and multiple traces may
+exist on same variable. Can no longer redefine existing local
+variable to be global. Calling sequences have changed slightly
+for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar
+can fail and return a NULL result. New forms of variable-manipulation
+procedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable
+$-notation changed to support array indexing.
+*** POTENTIAL INCOMPATIBILITY ***
-2/15/92 (new feature) Added "curselection" and "select clear" options
-to widget command for listboxes.
+55. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement,
+Tcl_ConvertElement, Tcl_AppendElement.
-2/15/92 (new feature) Added Tk_3DBorderColor procedure.
+56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the
+work of the "source" command.
-2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
-the slider position to lie within the object's range: can scroll off the
-end of an object, if the object permits it. Changed listboxes and
-entries to explicitly prevent viewing off the ends. Also relaxed
-listbox index checks so that out-of-range indices are automatically
-adjust to fit within the listbox range.
+57. 7/20/91 Major reworking of "exec" command to allow pipelines,
+more redirection, background. Added new procedures Tcl_Fork,
+Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old
+"< input" notation has been replaced by "<< input" ("<" is for
+redirection from a file). Also handles error returns and abnormal
+terminations (e.g. signals) differently.
+*** POTENTIAL INCOMPATIBILITY ***
-2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
-if a new window's name was found to be in use already. Fixed to clean
-them up.
+58. 7/21/91 Added "append" and "lappend" commands.
-2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
--width options to labels, buttons, check buttons, menu buttons, and radio
-buttons. This means that (a) size can be controlled better, (b) bitmaps
-can be displayed in any buttons, (c) the position of the text within the
-button can be controlled, and (d) a button can be made to display the value
-of a variable, continuously updating itself. Also changed -selector option
-so that if it's specified as an empty string then no selector is drawn
-for the button.
+59. 7/22/91 Reworked error messages and manual entries to use
+?x? as the notation for an optional argument x, instead of [x]. The
+bracket notation was often confused with the use of brackets for
+command substitution. Also modified error messages to be more
+consistent.
-2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
-added new -bitmap option for entries.
+60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether
+or not the command actually existed, and the "rename" command uses
+this information to return an error if an attempt is made to delete
+a non-existent command.
+*** POTENTIAL INCOMPATIBILITY ***
-2/26/92 (bug fix) "after" command, when invoked with just one argument,
-called Tk_Sleep rather than registering a timer handler and looping on
-Tk_DoOneEvent. As a result, it caused the application to become non-
-responsive to X events during the sleep. Changed to use a Tk_DoOneEvent
-loop so that it is responsive.
+61. 7/25/91 Added new "errorCode" mechanism, along with procedures
+Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. Renamed
+Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to
+avoid compatibility problems.
-2/26/92 (bug fix) Tk's main program didn't map the main window until
-after the startup script returned. Changed to map the window as a
-do-when-idle handler, so that scripts can cause the window to be
-mapped immediately with a call to "update" or "after".
+62. 7/26/91 Extended "case" command with alternate syntax where all
+patterns and commands are together in a single list argument: makes
+it easier to write multi-line case statements.
-2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
-was originally mapped: window got mapped anyway. Fixed so that the
-window doesn't get mapped as long as it's withdrawn.
+63. 7/27/91 Changed "print" command to perform tilde-substitution on
+the file name.
-2/29/92 (new feature) Can use "focus none" to clear input focus.
+64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright"
+options to "string" command.
-2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
-properly. These weren't being generated previously.
+65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file"
+command.
-2/29/92 (bug fix) Fixed entries so that newline characters can be properly
-displayed (as `\x0a'). Had to change interface to TkDisplayChars in order
-to do this (added flags argument).
+66. 8/1/91 Added "split" and "join" commands.
-2/29/92 (bug fix) Change Tk not to update size and position of top-level
-windows directly during calls like Tk_ResizeWindow. Instead, wait until
-actual event is received. This makes updates happen at same time as
-callbacks.
+67. 8/11/91 Added commands for file I/O, including "open", "close",
+"read", "gets", "puts", "flush", "eof", "seek", and "tell".
-3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
-pressed at a time when there was no associated menu for the button.
-
-3/6/92 (new feature) Added Tk script library directory with official
-Tk initialization file "tk.tcl". Other procedures used by Tk are in
-other files. Tk procedures and variables all have names starting
-with "tk_". Also added Wish startup script "wish.tcl", which sources
-both the Tk and Tcl startup scripts. This means that things like
-auto-loading and abbreviation expansion are now available in wish.
-Added new variables tk_library, tk_priv, and tk_version.
-
-3/6/92 (new feature) It's now possible to set bindings for whole
-classes by using the class name in the bind command. For example,
-"bind Button <Enter> {puts stdout Hi!}" will cause a message to be
-printed whenever any mouse button is entered. Can also use "all"
-to set bindings for all widgets. Widget-specific bindings override
-class bindings which override "all" bindings.
-
-3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
-eliminate all hard-wired behavior. Instead, default behavior is set
-by class bindings in tk.tcl. Also set up class bindings for menus,
-menubuttons, and entries, which previously had no default behavior at
-all. Scrollbars and scales still have hard-wired behavior that can't
-be overridden.
-
-3/7/92 (look-and-feel change) Changed listboxes and entries and menus
-to use button 2 for scanning instead of button 3. This is more consistent
-with the official Motif use of button 2 for dragging.
-
-3/10/92 (new features) Added more options to "winfo" command: screencells,
-screendepth, screenmmheight, screenmmwidth, and screenvisual.
-
-3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
-to see whether window was mapped before sharing events with it.
-
-3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
-geometry-management procedures, causing core-dumps when menu buttons
-had their border widths changed.
-
-3/16/92 (bug fix) Menus were setting their geometry directory rather
-than using Tk_GeometryRequest mechanism.
-
-3/17/92 (new feature) Added -cursor option to all widgets to set the
-active cursor for the widget. Also added TK_CONFIG_ACTIVE_CURSOR
-configure type.
-
-3/18/92 (new feature) Implemented generalized screen coordinates to
-allow resolution-independent specification in many cases (but pixel-
-based coordinates are still OK). Added Tk_GetScreenMM(),
-Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
-TK_CONFIG_PIXELS. Changed widgets to use this new configure types
-wherever possible (a few of the more complex cases still haven't
-been taken care of yet). Added "pixels" and "fpixels" options to
-"winfo" command.
-
-3/18/92 (new feature) First cut at canvas widgets is done and part of
-the official Tk now. Canvases display text and structured graphics,
-and allow you to bind commands to events related to the text and
-graphics.
-
-3/21/92 (new feature) Added new "place" command. It implements a
-new geometry manager that provides fixed placement, rubber-sheet
-placement, and combinations of the two. Eliminated the commands
-"move", "resize", and "map" that were provided by main.c but never
-officially supported; the placer provides all of this functionality.
-
-3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
-occasionally not being given the right size. The problem occurred
-when a string of resizes happened all in a row (such as deleting all
-the windows in an application and then recreating them).
-
-3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
-"winfo containing" command. These may be used to locate the window
-containing a given point.
-
-3/28/92 (new feature) Added "-exportselection" option to listboxes,
-so that listbox selection need not necessarily be the X selection.
-
-4/12/92 (bug fix) Changed menu buttons to store name of menubutton
-in the associated variable, rather than the name of the menu. This
-is necessary in order to allow several menu buttons to share the
-same menu.
+68. 8/14/91 Switched to use a hash table for command lookups. Command
+abbreviations no longer have direct support in the Tcl interpreter, but
+it should be possible to simulate them with the auto-load features
+described below. The "noAbbrev" variable is no longer used by Tcl.
*** POTENTIAL INCOMPATIBILITY ***
-4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
-removing the first error record from the error list.
+68.5 8/15/91 Added support for "unknown" command, which can be used to
+complete abbreviations, auto-load library files, auto-exec shell
+commands, etc.
-4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
-event specifications from being processed correctly: the "1" was
-treated as a button name rather than a keysym.
+69. 8/15/91 Added -nocomplain switch to "glob" command.
-4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
-procedures.
+70. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Also
+added "info script" option.
-4/18/92 (new feature) Major revision to listboxes. Can now scroll and
-scan in both x and y, plus -exportselection option allows selection not
-to be exported. The "view" widget command has been replaced by "xview"
-and "yview", and the "scan" widget command has a new syntax.
+71. 8/20/91 Changed "file" command to take "option" argument as first
+argument (before file name), for consistency with other Tcl commands.
*** POTENTIAL INCOMPATIBILITY ***
-4/18/92 (new feature) Added -exportselection option to entries, so you
-can select whether you want the entry selection to be the X selection
-or not.
-
-4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
-plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
-and TK_CONFIG_OPTION_SPECIFIED. Several other new types, such as
-TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.
-
-4/29/92 (bug fix) Changed "-selector" default for menus to have separate
-values for mono and color.
-
-4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
-bogus scroll commands (last index less than first).
+72. 8/20/91 Changed format of information in $errorInfo variable:
+comments such as
+ ("while" body line 1)
+are now on separate lines from commands being executed.
+*** POTENTIAL INCOMPATIBILITY ***
-4/30/92 (reorganization) Moved demos directory to "library/demos".
+73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees
+large buffers that it allocates.
----------------------- Release 2.0, 5/1/92 -------------------------
+74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort"
+commands.
-5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
-redisplays after repeated insertions. Also reduced number of invocations
-of scrollbar commands.
+75. 8/28/91 Added "incr" and "exit" commands.
-5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
-flag; it isn't needed and it causes problems on some systems.
+76. 8/30/91 Added "regexp" and "regsub" commands.
-5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c
+77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure
+address). This allows for alternative storage managers.
+*** POTENTIAL INCOMPATIBILITY ***
-5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
-attempts to print non-existent bindings.
+78. 9/6/91 Added "index", "length", and "range" options to "string"
+command. Added "lindex", "llength", and "lrange" commands.
-5/11/92 (bug fix) Maximum name length for applications (name used in
-"send" commands) was too short (only 20); increased to 1000. Also
-fixed bug related to over-long names that caused core dumps.
+79. 9/8/91 Removed "index", "length", "print" and "range" commands.
+"Print" is redundant with "puts", but less general, and the other
+commands are replaced with the new commands described in change 78
+above.
+*** POTENTIAL INCOMPATIBILITY ***
-5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
-group was deleted as a side-effect of a shared event.
+80. 9/8/91 Changed history revision to occur even when history command
+is nested; needed in order to allow "history" to be invoked from
+"unknown" procedure.
-5/13/92 (bug fix) Various initialization and core leak problems in
-tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
-tkCanvLine.c, tkListbox.c, tkEntry.c.
+81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less
+general now, but makes it easier to run Tcl on systems that don't
+have vfprintf). Also changed "strerror" not to redeclare sys_errlist.
-5/13/92 (bug fix) Empty entries could be scanned off the left edge,
-displaying a garbage character.
+82. 9/19/91 Lots of changes to improve portability to different UNIX
+systems, including addition of "config" script to adapt Tcl to the
+configuration of the system it's being compiled on.
-5/13/92 (bug fix) Fixed a few problems with window manager interactions,
-such as tendency for windows to spontaneously shrink in size. By no
-means are all of the problems fixed, though.
+83. 9/22/91 Added "pwd" command.
-5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
-invoke geometry manager unless requested size has changed.
+84. 9/22/91 Renamed manual pages so that their filenames are no more
+than 14 characters in length, moved to "doc" subdirectory.
----------------------- Release 2.1, 5/14/92 -------------------------
+85. 9/24/91 Redid manual entries so they contain the supplemental
+macros that they need; can just print with "troff -man" or "man"
+now.
-5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
-plus added "idletasks" option to "update" command. Tk_DoWhenIdle arguments
-look different now, but the change should be upward-compatible.
+86. 9/26/91 Created initial version of script library, including
+a version of "unknown" that does auto-loading, auto-execution, and
+abbreviation expansion. This library is used by tclTest
+automatically. See the "library" manual entry for details.
-5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
-to the "bind" command. For some reason they weren't supported previously.
+----------------- Released version 6.0, 9/26/91 ------------------
-5/17/92 (new feature) Added "tkwait" command.
+87. 9/30/91 Made "string tolower" and "string toupper" check case
+before converting: on some systems, "tolower" and "toupper" assume
+that character already has particular case.
-5/17/92 (new feature) Added "grab" command.
+88. 9/30/91 Fixed bug in Tcl_SetResult: wasn't always setting freeProc
+correctly when called with NULL value. This tended to cause memory
+allocation errors later.
-5/17/92 (new feature) Added "-width" option to messages. Also changed
-messages to use the computed (i.e. desired) line length when displaying,
-not the actual width of the window.
+89. 10/3/91 Added "upvar" command.
-5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
-of improving window manager interactions. Now there won't be more than
-one configure request outstanding to the wm at a time.
+90. 10/4/91 Changed "format" so that internally it converts %D to %ld,
+%U to %lu, %O to %lo, and %F to %f. This eliminates some compatibility
+problems on some machines without affecting behavior.
-5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
-or scaled correctly.
+91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all
+option when the last match wasn't at the end of the string.
-5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
-(wrong windowUnits was passed to scrollbars).
+92. 10/17/91 Fixed problems with backslash sequences: \r support was
+incomplete and \f and \v weren't supported at all.
-5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
-leaves window with button down. Also changed redisplay to double-buffer
-for smoother redraws.
+93. 10/24/91 Added Tcl_InitHistory procedure.
-5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.
+94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that
+don't match, rather than returning an error.
-5/22/92 (new feature) Buttons can now be disabled using the "-state" and
-"-disabledforeground configuration options. The "activate" and "deactivate"
-widget commands for buttons are now obsolete and will go away soon.
-Please change Tcl scripts not to use them.
+95. 10/27/91 Modified "regexp" to return actual strings in matchVar
+and subMatchVars instead of indices. Added "-indices" switch to cause
+indices to be returned.
+*** POTENTIAL INCOMPATIBILITY ***
-5/23/92 (new feature) Entries can now be disabled using the "-state"
-config option. Also improved class bindings for entries to keep the
-cursor visible in the window when operations occur. Also made slight
-improvements in the way redisplay is done.
+96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for
+sizes of floats and doubles instead of using "sizeof".
-5/23/92 (new feature) Added "-textvariable" option to entries so that
-the text in an entry can be tied to the value of a global variable in
-a fashion similar to buttons.
+97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages
+weren't being storage-managed correctly, causing spurious free's.
-5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
-messages.
+98. 10/31/91 Form feed and vertical tab characters are now considered
+to be space characters by the parser.
-5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
-to menubuttons.
+99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar.
-5/28/92 (feature change) Changed "-width" and "-height" options on
-all flavors of buttons and menubuttons so that they are orthogonal
-to "-padx" and "-pady". It used to be that -width overrode -padx
-(no padding). Now they accumulate.
+100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted
+if all case branches were embedded in a single list.
-5/29/92 (new feature) Added "-disabledforeground" option to menus and
-all flavors of buttons (can specify color for disabled things rather
-than just using stipple to gray out).
+101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official
+POSIC types and function prototypes.
-5/29/92 (new features) Added many new options to menu entries:
--activebackground, -background, -font, -state, -underline. The
-"disable" and "enable" widget commands for menus are now obsolete
-and will go away soon. Please change Tcl scripts not to use them.
+----------------- Released version 6.1, 11/7/91 ------------------
-5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
-command.
+102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several
+ways. First, allowed caller to request that only backslashes be used
+(no braces). Second, made Tcl_ConvertElement more aggressive in using
+backslashes for braces and quotes.
-5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
-can be used to change listbox behavior so that only a single item is
-selected at once.
+103. 12/5/91 Added "type", "lstat", and "readlink" options to "file"
+command, plus added new "type" element to output of "stat" and "lstat"
+options.
-6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
-"bind" command.
+104. 12/10/91 Manual entries had first lines that caused "man" program
+to try weird preprocessor. Added blank comment lines to fix problem.
-6/3/92 (new feature) Added "winfo toplevel" command.
+105. 12/16/91 Fixed a few bugs in auto_mkindex proc: wasn't handling
+errors properly, and hadn't been upgraded for new "regexp" syntax.
-6/3/92 (new feature) Made several changes for greater Motif compliance,
-including:
- - menu retention if you click and release in the menu button,
- - keyboard traversal of menus (see traversal.man)
- - no widget flashing if you set $tk_strictMotif to 1
+106. 1/2/92 Fixed bug in "file" command where it didn't properly handle
+a file names containing tildes where the indicated user doesn't exist.
-6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
-binding could get reallocated while the command was being executed (e.g.
-bindings that delete or change themselves).
+107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different
+errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number; Tcl
+will only use one of them.
-6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
-can cause core dumps for fonts that don't enough information to compute
-tab widths.
+108. 1/2/92 Lots of changes to configuration script to handle many more
+systems more gracefully. E.g. should now detect the bogus strtoul that
+comes with AIX and substitute Tcl's own version instead.
-6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
-related events to be reported both to the correct window and its parent.
+----------------- Released version 6.2, 1/10/92 ------------------
-7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
-StaticGray or StaticColor.
+109. 1/20/92 Config didn't have code to actually use "uid_t" variable
+to set TCL_UIT_T #define.
-7/15/92 (new feature) Text widgets now exist. They display any number of
-lines of text with a variety of display formats, and include hypertext
-facilities. See the manual page for details.
+110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when
+too-deep recursion occurred.
-7/20/92 (bug fix) If a top-level window was put in the iconic state to
-begin with, it could be deiconified with "wm deiconify .foo" until it had
-first been deiconified by hand from the window manager. Tk was getting
-confused and thought the window was mapped when it wasn't.
+111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean.
-7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
-dimensions. Round up to at least one pixel.
+112. 3/19/92 Config wasn't installing default version of strtod.c for
+systems that don't have one in libc.a.
-7/29/92 (new features) Major upgrade to canvases:
- - new item types: arc, window, bitmap
- - added Bezier spline support for lines and polygons
- - rectangles and ovals now center their outlines on the shape,
- rather than drawing them entirely inside the shape
- - new "coords" and "bbox" widget commands
- - new "-tags" option for all item types.
- - new "-confine" option to prevent scrolling off edge of canvas.
+113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s,
+like 0.75, couldn't be properly substituted into expressions with
+variable or command substitution.
-8/6/92 (new feature) Added "-width" and "-height" options to frames.
-The "-geometry" option is now obsolete and should be removed from Tcl
-scripts: it may go away in the future.
+114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't
+checking to make sure that it was able to write the variable OK.
-8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
-the option name where they should have included its value.
+115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't
+compute file size right for device files.
----------------------- Release 2.2, 8/7/92 -------------------------
+116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting
+the trace command.
-8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
-it passes to XCopyArea.
+----------------- Released version 6.3, 5/1/92 ------------------
-8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
-dumps when text views changed (e.g. typing return on last line of screen).
+117. 5/1/92 Added Tcl_GlobalEval.
-8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
-keyboard to traverse over separator menu entries.
+118. 6/1/92 Changed auto-load facility to source files at global level.
-8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
-maximum # of open files.
+119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which
+sometimes caused core dumps.
-8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
-changes. They also weren't recentering canvases on window size changes.
+120. 6/21/92 Fixed bug in initialization of regexp pattern cache. This
+bug caused segmentation violations in regexp commands under some conditions.
-8/10/92 (bug fix) There were still a few places where commands were being
-invoked at local level instead of global level (e.g. commands associated
-with buttons and menu entries).
+121. 6/22/92 Changed implementation of "glob" command to eliminate
+trailing slashes on directory names: they confuse some systems. There
+shouldn't be any user-visible changes in functionality except for names
+in error messages not having trailing slashes.
-8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
-all keys (i.e. <Shift-Tab> was treated the same as <Tab>). Modified to
-allow explicit request for shift modifier, like <Shift-Tab>.
+122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0.
-8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
-explicitly.
+123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing
+the buffer to an empty string.
-8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
-the bounding boxes for arcs, in order to make sure that proper redisplay
-occurs when arcs are moved (little turds were getting left behind).
+124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string
+after errors in the "default" clause.
-8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
-area is off the screen. Also, only do a background clear for the portion
-of the redraw area that is on-screen. Also, reduced size of off-screen
-pixmaps used for redisplaying, which speeds up redisplay in some cases.
+125. 7/25/92 Speeded up auto_load procedure: don't reread all the index
+files unless the path has changed.
-8/19/92 (bug fix) Canvases that were taller than wide were not being
-redisplayed properly.
+126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not
+_POSIX_PATH_MAX.
-8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
-all X events (useful for tracing, watching non-Tk windows, etc.).
+----------------- Released version 6.4, 8/7/92 ------------------
-8/21/92 (bug fix) Widgets weren't always being notified when they got
-the focus back again (the problem had to do with grabs and menus in
-particular).
+127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by
+putting a backslash before the newline.
-8/21/92 (new feature) Added "-state" option to scale widgets.
+128. 8/21/92 Modified "unknown" to allow the source-ing of a file for
+an auto-load to trigger other nested auto-loads, as long as there isn't
+any recursion on the same command name.
-8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
-to occur in bitmap file names.
+129. 8/25/92 Modified "format" command to allow " " and "+" flags, and
+allow flags in any order.
----------------------- Release 2.3, 8/24/92 -------------------------
+130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt
+to look up the variable if "noEval" mode is in effect in the interpreter
+(it just parses the name). This avoids the errors that used to occur
+in statements like "expr {[info exists foo] && $foo}".
-8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
-for menubuttons were being lost.
+131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the
+correct error message if a level was specified but no command.
-8/27/92 (bug fix) Entries were selecting last character when a B1-drag
-occurred past the right edge of the text.
+132. 9/14/92 Renamed manual entries to have extensions like .3 and .n,
+and added "install" target to Makefile.
-8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
-press caused the canvas state to lock up so that it didn't select a
-new current item.
+133. 9/18/92 Modified "unknown" command to emulate !!, !<num>, and
+^<old>^<new> csh history substitutions.
-9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
-are out of range; now it just rounds them off to the nearest existing
-entry.
+134. 9/21/92 Made the config script cleverer about figuring out which
+switches to pass to "nm".
-9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
-invoking "yview -pickplace" widget command on texts that are too small
-to hold any lines at all.
+135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables.
+Used to forget about traces in progress and make extra recursive calls
+on trace procs.
-9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
-when adding tags to non-existent lines.
+136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables
+that might not exist.
-9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
-color (i.e. couldn't make them transparent).
+137. 10/7/92 Changed "parray" library procedure to print any array
+accessible to caller, local or global.
-9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
-extensions. Added "install" target to Makefile to suggest how Tk should
-be installed.
+138. 10/15/92 Fixed bug where propagation of new environment variable
+values among interpreters took N! time if there exist N interpreters.
-9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
-screen 0 rather than using DefaultRootWindow. DefaultRootWindow doesn't
-always go to screen 0 on displays with multiple screens, which can result
-in send's not being possible between the screens.
+139. 10/16/92 Changed auto_reset procedure so that it also deletes any
+existing procedures that are in the auto_load index (the assumption is
+that they should be re-loaded to get the latest versions).
-9/18/92 (new feature) Added three new options to "wm" command: "protocol",
-"client", and "command". These provide support for window manager protocols
-such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
-WM_CLIENT_MACHINE and WM_COMMAND properties.
+140. 10/21/92 Fixed bug that caused lists to be incorrectly generated
+for elements that contained backslash-newline sequences.
-9/30/92 (new feature) Implemented color model support, including
-"tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
-procedures. These allow you to force mono operation even on a color
-display. Also changed color allocation not to give errors when colors
-run out, but just to switch to a mono color model.
+141. 12/9/92 Added support for TCL_LIBRARY environment variable: use
+it as library location if it's present.
-10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
-during text deletion.
+142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure.
-10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
-colors. This is needed to work around improper reference count management
-for colormap entries under X11/NeWS.
+143. 12/16/92 Changed the Makefile to check to make sure "config" has been
+run (can't run config directly from the Makefile because it modifies the
+Makefile; thus make has to be run again after running config).
-10/7/92 (new feature) Added support for different visual types, including
-procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
-Tk_Visual, Tk_Depth, and Tk_Colormap. The code for this was contributed
-by Paul Mackerras.
+----------------- Released version 6.5, 12/17/92 ------------------
-10/7/92 (new feature) Added Tk_IsTopLevel macro.
-
-10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
-cascaded children not to track mouse motion correctly (the cascade
-switched in response to mouse motions within the cascaded child).
-
-10/12/92 (new feature) Major changes to focus handling:
-(a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
- and Leave, so it will work better with explicit-focus-model window
- managers (e.g. mwm in default mode).
-(b) Tk generates FocusIn and FocusOut events for the focus window now.
- The old procedural interface (via Tk_CreateFocusHandler) is obsolete
- and is no longer used inside Tk. It is still supported for
- compatibility, but won't be for long. You should change your code
- to use FocusIn and FocusOut events instead.
-(c) The model for FocusIn and FocusOut events is different than the
- one described in Xlib documentation. See the "focus" manual entry
- for details.
-(d) If there is no input focus then keyboard events are discarded. They
- used to be directed to the mouse pointer window, although this wasn't
- documented. The focus now defaults to the root window.
-*** POTENTIAL INCOMPATIBILITY ***
+144. 12/21/92 Changed config to look in several places for libc file.
-10/15/92 (bug fix) Fixed text items in canvases where they didn't
-display the insertion cursor if the item had no characters in it.
-
-10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
-BadWindow X protocol errors when retrieving the selection. Tk wasn't
-making sure that a window existed before using it to retrieve the
-selection.
-
-10/30/92 (feature change) Changed canvases so that if the scroll region
-is smaller than the window and -confine is on, the scroll region isn't
-forced to be centered in the window; it can be anywhere that meets the
-confinement restrictions.
-
-11/2/92 (new feature) Added "winfo exists" command.
-
-11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
-when-idle handler is created as a side-effect of another when-idle
-handler, the new handler isn't invoked until Tk has first checked
-for other events to process.
-
-11/6/92 (bug fixes, new features) Major overhaul of window manager
-interface:
-(a) Tk should now work with virtual-root window managers;
-(b) windows will now place more accurately on the screen and stay where
- they're supposed to;
-(c) size changes handled more reliably;
-(d) code now works robustly in the face of withdrawals followed
- immediately by deiconifications.
-(e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
- vrootx, vrooty, vrootwidth, vrootheight.
-(f) Added "overrideredirect" option to "wm".
-(g) Fixed bug where change in width-only via "wm geom" didn't always work
- (min and max window sizes weren't being set properly for the wm).
-
-11/6/92 (bug fixes) Modified menus so that they work correctly with
-virtual root window managers. Also fixed bug where menus didn't move
-along with their associated windows, so that the menu popped up at
-the old location of the window rather than its new location.
-
-11/9/92 (new constraint) Made it illegal to give windows names that
-start with upper-case letters, since such names will goof up the
-option database by appearing to be classes rather than names.
+145. 12/23/92 Added "elseif" support to if. Also, "then", "else", and
+"elseif" may no longer be abbreviated.
*** POTENTIAL INCOMPATIBILITY ***
-11/10/92 (new feature) Added Postscript output to canvases.
+146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline"
+switch instead of additional "nonewline" argument. The old form is
+still supported, but it is discouraged and is no longer documented.
+Also changed "puts" to make the file argument default to stdout: e.g.
+"puts foo" will print foo on standard output.
-11/13/92 (bug fix) Changed default for maximum size passed to window
-manager from 1000000 (which causes some wm's to make windows too large
-when "maximized") to the size of the display.
+147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when
+typed interactively, or in "info complete".
-11/14/92 (feature change) Major overhaul of menubuttons and pull-down
-menus. Removed event-sharing code, including Tk_ShareEvents and
-Tk_UnshareEvents. The -variable option for menubuttons has been
-removed,and the "post" and "unpost" widget commands for menubuttons
-no longer exist. The "post" widget command for menus no longer
-allows a group option. The procedure tk_menus has been replaced
-with a new procedure, tk_menuBar, which has a slightly different
-interface.
-*** POTENTIAL INCOMPATIBILITY ***
-
-11/20/92 (new features, feature changes) Major overhaul of grab
-mechanism to produce more correct event streams. Also changed Tcl
-commands to require explicit window for grab releases (makes it
-possible for grabs to work on multiple displays simultaneously).
-The old "grab none" command no longer exists, but new options
-have been added: "current", "release", "set", and "status".
-*** POTENTIAL INCOMPATIBILITY ***
+148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close
+quotes were being lost from last element before replacement or
+insertion.
-11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
-directory location, if it is defined. Otherwise fall back on usual
-compiled-in value.
+149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring
+a newline at the end of a line before considering a command to be
+complete. The bug caused some very long lines in script files to
+be processed as multiple separate commands.
-11/25/92 (bug fix) "wm grid" command was using wrong window.
+150. 1/29/93 Various changes in Makefile to add more configuration
+options, simplify installation, fix bugs (e.g. don't use -f switch
+for cp), etc.
-11/29/92 (bug fix) Fixed core dump that occurred when trying to use
-placer on top-level windows: return error instead.
+151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and
+"part2" to avoid name conflicts with stupid C++ implementations that
+use "name1" and "name2" in a reserved way.
-11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
-on whose behalf selection is being retrieved actually exists.
+152. 2/1/93 Added "putenv" procedure to replace the standard system
+version so that it will work correctly with Tcl's environment handling.
-12/3/92 (new feature) Added support for Mode_switch key to support the
-full ISO character set. Also added event handlers for MappingNotify
-events so that Tk updates itself in response to keycode and modifier
-changes.
+----------------- Released version 6.6, 2/5/93 ------------------
-12/6/92 (bug fix) Ignore recursive attempts to destroy window.
+153. 2/10/93 Fixed bugs in config script: missing "endif" in libc loop,
+and tried to use strncasecmp.c instead of strcasecmp.c.
-12/9/92 (new demos) Added "tcolor" and "rmt" demos.
+154. 2/10/93 Makefile improvements: added RANLIB variable for easier
+Sys-V configuration, added SHELL variable for SGI systems.
-12/10/92 (new features) Added "yposition" widget command for menus,
-changed "delete" widget command to take an optional second index,
-and changed -command option for cascade entries so that it is
-invoked when the entry is activated rather than when it is invoked.
-*** POTENTIAL INCOMPATIBILITY ***
+----------------- Released version 6.7, 2/11/93 ------------------
-12/12/92 (implementation change) Changed the procedures Tk_FreeBitmap,
-Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
-Tk_FreeGC to require an addition Display argument. This is needed for
-Tk to function correctly when an application has windows on multiple
-displays.
+153. 2/6/93 Changes in backslash processing:
+ - \Cx, \Mx, \CMx, \e sequences no longer special
+ - \<newline> also eats up any space after the newline, replacing
+ the whole sequence with a single space character
+ - Hex sequences like \x24 are now supported, along with ANSI C's \a.
+ - "format" no longer does backslash processing on its format string
+ - there is no longer any special meaning to a 0 return value from
+ Tcl_Backslash
+ - unknown backslash sequences, like (e.g. \*), are replaced with
+ the following character (e.g. *), instead of just treating the
+ backslash as an ordinary character.
*** POTENTIAL INCOMPATIBILITY ***
-12/12/92 (new feature) Started creating a test suite. Right now it
-only has a few tests.
-
-12/12/92 (new feature) Modified the packer so that a window can be
-packed in descendants of its parent (used to be restricted to the
-parent alone). This makes it possible to hide extra windows used
-for geometry management. Also, can use generalized screen distances
-in the "pack" command.
-
-12/16/92 (feature change) Boolean options such as -exportselection now
-print as 0/1 rather than true/false (both the default and current values
-print this way). This makes it easier to use these values in expressions.
-*** POTENTIAL INCOMPATIBILITY ***
+154. 2/6/93 Updated all copyright notices. The meaning hasn't changed
+at all but the wording does a better job of protecting U.C. from
+liability (according to U.C. lawyers, anyway).
-12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
-been renamed "Radiobutton" and "Checkbutton" for consistency. From now
-on widget class names will have exactly one capital letter.
+155. 2/6/93 Changed "regsub" so that it overwrites the result variable
+in all cases, even if there is no match.
*** POTENTIAL INCOMPATIBILITY ***
-12/16/92 (new feature) Added -setgrid option to listboxes.
+156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format"
+command.
-12/16/92 (new feature) The "destroy" command, and the "delete" widget
-command for canvases, now accept any number of arguments, including
-zero.
+157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite
+recursion could result in core dumps.
-12/16/92 (new feature) Changed internal TkBindError procedure to
-Tk_BackgroundError and exported it to Tk clients.
+158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e.
+return an error) with a situation where a library file that supposedly
+defines a procedure doesn't actually define it.
-12/16/92 (option name change) Changed the place command's "dependents"
-option to "slaves" for better consistency with documentation.
+159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and
+changed errorCode variable usage to use POSIX as keyword instead of
+UNIX.
*** POTENTIAL INCOMPATIBILITY ***
-12/16/92 (name changes) Renamed the "cursor*" options in entries and
-canvases to "insert*". Also renamed the "cursor" index to "insert" and
-the "cursor" widget command to "icursor". This was done to avoid
-confusion between the mouse cursor and the insertion cursor.
+160. 2/19/93 Changes to exec and process control:
+ - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection.
+ - When exec puts processes into background, it returns a list of
+ their pids as result.
+ - Added support for <file, >file, etc. (i.e. no space between
+ ">" and file name.
+ - Added -keepnewline option.
+ - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and
+ waitpid instead).
+ - Added waitpid compatibility procedure for systems that don't have
+ it.
+ - Added Tcl_ReapDetachedProcs procedure.
+ - Changed "exec" to return an error if there is stderr output, even
+ if the command returns a 0 exit status (it's always been documented
+ this way, but the implementation wasn't correct).
+ - If a process returns a non-zero exit status but doesn't generate
+ any diagnostic output, then Tcl generates an error message for it.
*** POTENTIAL INCOMPATIBILITY ***
----------------------- Release 3.0, 12/17/92 -------------------------
-
-12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
-if a <LeaveNotify> binding deleted the current item.
-
-12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
-Also, tkWm.c wasn't properly setting WM_CLASS property on application
-startup.
-
-12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
-Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
-"display" argument.
-
-12/18/92 (missing documentation) Added documentation for the canvas
-"postscript" command, which was missing in the 3.0 release.
-
-12/21/92 (bug fixes) There were lots of problems with the new installation
-targets in the Makefiles, such as using "cp -f" and not installing
-prolog.ps. Made several other miscellaneous improvements to Makefile.
+161. 2/25/93 Fixed two memory-management problems having to do with
+managing the old result during variable trace callbacks.
-12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
-after coordinate changes made with the "coords" widget command.
+162. 3/1/93 Added dynamic string library: Tcl_DStringInit, Tcl_DStringAppend,
+Tcl_DStringFree, Tcl_DStringResult, etc.
-12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
-ever deiconify it again.
-
-12/21/92 (bug fix) Double-button event sequences didn't always trigger
-properly when grabs were in effect.
-
-12/22/92 (bug fix) The packer didn't display any top or bottom windows
-after a left or right expanded window, and vice versa. Also made the
-distribution of space among expanded windows more even.
-
-12/28/92 (new features) Several improvements to selection:
-(a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
-(b) Added "clear" and "own" options to "selection" command, extended
- "handle" option to delete handlers.
-(c) Error returns from "selection handle" scripts are now turned into
- selection retrieval errors ("no such selection") rather than an
- empty selection.
-(d) Tk responds automatically for targets APPLICATION (name of application,
- so you can "send" to it) and WINDOW_NAME (name of window within
- application.
-(e) Added test file "select.test" to test suite.
-
-12/28/92 (bug fix) Fixed problem with flashing menus that occurred
-because menu.tcl was willing to unpost and then immediately repost
-the same menu.
-
-1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
-of ==.
-
-1/21/93 (bug fix) Changed many widgets to eliminate use of
-DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
-and colormaps for the actual windows instead. Also changed to
-inherit colormaps and windows from parent by default.
-
-1/21/93 (new features) Added new winfo options "cells", "depth", and
-"visual".
-
-1/23/93 (bug fix) Fixed problem with text display that could result
-in negative XCopyArea heights being sent to X server. This causes some
-servers (e.g. some versions of OpenWindows) to crash.
-
-1/25/93 (new feature) Added -postcommand option to menus, so that menus
-can be reconfigured before each posting.
-
-1/29/93 (feature change) Changed %X and %Y in bindings so that they
-refer to the virtual root rather than the true root. Although
-potentially incompatible, this change should almost always "do the
-right thing".
+163. 3/1/93 Modified glob command to only return the names of files that
+exist, and to only return names ending in "/" if the file is a directory.
*** POTENTIAL INCOMPATIBILITY ***
-1/31/93 (bug fix) Changed "send" code to grab server while updating
-the registry property (before this fix, two programs could allocate
-the same interpreter name if they started up simultaneously). In
-order to make this fix I had to change the code for reclaiming
-names of dead interpreters in a way that sometimes allows dead
-interpreters to persist in the registry.
-
-2/1/93 (feature change) Changed entries to allow leftmost "visible"
-character to be the end of the text (i.e. no characters actually visible).
-This is needed so that the cursor can be displayed even if the last
-actual character is too wide to fit in the window.
-
-2/3/93 (bug fix) Fixed two bugs in tkFocus.c: (a) FocusIn events
-were getting lost in some cases because the focus window hadn't been
-created yet (e.g. new top-level window pops up underneath the mouse);
-(b) Tk was accidentally triggering FocusOut events when the mouse
-moved from a top-level window to one of its children.
-
-2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
-it easier to wait for a new window to appear on the screen.
+164. 3/19/93 Modified not to use system calls like "read" directly,
+but instead to use special Tcl procedures that retry automatically
+if interrupted by signals.
----------------------- Release 3.1, 2/5/93 -------------------------
-
-2/10/93 (installation improvements) Makefile improvements: added RANLIB
-variable for easier Sys-V installation, changed to use INCLUDE_DIR
-properly, and added SHELL variable for SGI systems.
-
----------------------- Release 3.2, 2/11/93 -------------------------
-
-2/11/93 (new feature) Added "wm state" command, and improved wm so that
-the right thing will happen if you invoke "wm iconify" when a window is
-withdrawn.
-
-2/14/93 (bug fix) When -colormap option was used in generating Postscript
-for canvases, Tk didn't add an extra space after the color command.
-
-2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
-which will use the definition of EXTERN from tcl.h and work correctly
-in C++ programs.
-
-2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
-canvas items when the items were deleted. As a result, they could
-suddenly re-appear for new items if the new items were allocated a
-record at the same addresses as the old ones.
-
-2/18/93 (feature reversal) Changed "after" back again, so that it sleeps
-*without* responding to events when it is invoked with just one argument;
-can always use tkwait plus after with additional arguments to achieve
-the effect of responding to events.
+165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus
+TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2.
*** POTENTIAL INCOMPATIBILITY ***
-2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
-set correctly for new top-level windows on different screens than their
-parents (the bug results in X protocol errors: "invalid Colormap
-parameter").
-
-2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
-"#!/usr/local/bin/wish" to reflect new location of binary.
-
-2/22/93 (new feature) Added new reliefs "groove" and "ridge".
-
-2/25/93 (new feature) Added new built-in bitmaps: "error", "hourglass",
-"info", "question", "questhead", and "warning". Also added new demo in
-"widget" to display all of these (under the Miscellaneous menu).
-
-2/25/93 (improved implementation) Changed DrawText procedure in
-prolog for outputting Postscript from canvases to use stringwidth
-instead of charpath+pathbbox: avoids limitcheck problems with long
-strings, and also properly includes space characters in calculation.
-
-2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
-menu traversal to mis-behave when menu had no entries.
-
-2/26/93 (new feature) Added "wm frame" command.
+166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval.
+*** POTENTIAL INCOMPATIBILITY ***
-3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
-pull-down menus were sometimes unresponsive. Modified tk.tcl to ignore
-the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
-release simulated button grabs correctly.
+167. 4/3/93 Changes to expressions:
+ - The "expr" command now accepts multiple arguments, which are
+ concatenated together with space separators.
+ - Integers aren't automatically promoted to floating-point if they
+ overflow the word size: errors are generated instead.
+ - Tcl can now handle "NaN" and other special values if the underlying
+ library procedures handle them.
+ - When printing floating-point numbers, Tcl ensures that there is a "."
+ or "e" in the number, so it can't be treated as an integer accidentally.
+ The procedure Tcl_PrintDouble is available to provide this function
+ in other contexts. Also, the variable "tcl_precision" can be used
+ to set the precision for printing (must be a decimal number giving
+ digits of precision).
+ - Expressions now support transcendental and other functions, e.g. sin,
+ acos, hypot, ceil, and round. Can add new math functions with
+ Tcl_CreateMathFunc().
+ - Boolean expressions can now have any of the string values accepted
+ by Tcl_GetBoolean, such as "yes" or "no".
+*** POTENTIAL INCOMPATIBILITY ***
-3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
-which caused text to be displayed at the wrong horizontal position in
-several places (labels/buttons, listboxes, canvas text, scales). This
-change will cause slight changes in the way certain widgets are
-displayed.
-
-3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
-zero values in entryPtr->avgWidth.
+168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK
+or TCL_ERROR instead of 0 or -1.
+*** POTENTIAL INCOMPATIBILITY ***
-3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
-Changed to use virtual-root coordinates when a virtual-root window
-manager is being used. Before this fix, "winfo containing" didn't
-return the correct window under virtual-root window managers.
-
-3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
-manager over position of window; it just takes what the window manager
-gives it.
-
-3/21/93 (new feature) Changed menus to display cascade entries with
-standard Motif arrows at right side.a
+169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures;
+can use Tcl_DStrings instead.
+*** POTENTIAL INCOMPATIBILITY ***
-3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
-get trashed with the integer value 1.
+170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic
+string for buffer space. This makes the procedure re-entrant and
+thread-safe, whereas it wasn't before.
+*** POTENTIAL INCOMPATIBILITY ***
-3/22/93 (bug fix) Canvas text didn't print correctly if it contained
-an open paren (or other special character) immediately followed by
-an octal digit.
-
-3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
-where two or more groups of lines both got taller at the same time
-(e.g. from tag changes), causing two separate bit copies where the
-first bit copy's target area overlapped the source area for
-the second bit copy.
-
-4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
-if that's supported by the Postscript interpreter. Also added workaround
-for bug in NeWSprint related to stipple fills.
-
-4/1/93 (bug fixes) Made various changes to focusing and grabs to
-eliminate extraneous focus events and generally improve behavior.
-
-4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
-manager to map or reconfigure a window: this led to deadlock in some
-situations, such as creating a new top-level window with a grab held.
-
-4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
-across the screen in some situations. Also fixed problem where rapid
-posting and unposting of cascaded submenus (or menus?) could cause Tk
-to become confused about whether or not a window is mapped (added
-TkWmUnmapWindow procedure to make top-level unmaps synchronous).
-
-4/24/93 (feature change) Changed the "after" command to allow times
-less than or equal to 0, and to use 0 whenever they occur.
-
-4/26/93 (new feature) Implemented security check for "send" as proposed
-by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
-access control is enabled and (b) the list of authorized hosts is
-empty. In other words, you have to use xauth to use send. This feature
-can be disabled by setting the TK_NO_SECURITY flag at compile-time.
-
-5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
-real values as Tcl results. This potentially allows higher precision.
-Switched to use %.15g whenever printing reals in Postscript files.
-However, the change Tcl_PrintDouble causes incompatibilities. For
-now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
-Tk 4.0 will delete the macro, and you can also delete it now if you
-want the better (but incompatible) behavior.
-
-5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
-closeness calculations for canvas oval items.
-
-5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
-value in tkBind.c, which could cause incorrect %-substitutions in event
-bindings in a few exotic cases.
-
-6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
-Makefile format changed, and Tcl is no longer automatically included
-in Tk releases.
-
-6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
-during redisplay of canvases.
-
-6/9/93 (feature improvement) Modified default bindings for entries to
-keep one character visible to the left of the cursor during backspaces.
-
-6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
-future patch releases, and also added tk_patchLevel variable to make the
-patch level available in scripts.
+171. 4/14/93 Eliminated tclHash.h, and moved everything from it to
+tcl.h
+*** POTENTIAL INCOMPATIBILITY ***
-6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
-very large scale values.
+172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always
+be part of interpreter.
+*** POTENTIAL INCOMPATIBILITY ***
-6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
-the "coords" widget command was used to add one new coordinate.
+173. 4/16/93 Modified "file" command so that "readable" option always
+exists, even on machines that don't support symbolic links (always returns
+same error as if the file wasn't a symbolic link).
+
+174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled
+right (pretended not to match when it really did, and looped infinitely
+if -all was specified).
+
+175. 4/29/93 Various improvements in the handling of variables:
+ - Can create variables and array elements during a read trace.
+ - Can delete variables during traces (note: unset traces will be
+ invoked when this happens).
+ - Can upvar to array elements.
+ - Can retarget an upvar to another variable by re-issuing the
+ upvar command with a different "other" variable.
+
+176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl
+command such as whether it exists and its ClientData. Also added
+Tcl_SetCommandInfo, which allows any of this information to be modified
+and also allows a command's delete procedure to have a different
+ClientData value than its command procedure.
+
+177. 5/5/93 Added Tcl_RegExpMatch procedure.
+
+178. 5/6/93 Fixed bug in "scan" where it didn't properly handle
+%% conversion specifiers. Also changed "scan" to use Tcl_PrintDouble
+for printing real values.
+
+179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch"
+command to allow different kinds of pattern matching.
+
+180. 5/7/93 Added many new switches to "lsort" to control the sorting
+process: "-ascii", "-integer", "-real", "-command", "-increasing",
+and "-decreasing".
+
+181. 5/10/93 Changes to file I/O:
+ - Modified "open" command to support a list of POSIX access flags
+ like {WRONLY CREAT TRUNC} in addition to current fopen-style
+ access modes. Also added "permissions" argument to set permissions
+ of newly-created files.
+ - Fixed Scott Bolte's bug (can close stdin etc. in application and
+ then re-open them with Tcl commands).
+ - Exported access to Tcl's file table with new procedures Tcl_EnterFile
+ and Tcl_GetOpenFile.
+
+182. 5/15/93 Added new "pid" command, which can be used to retrieve
+either the current process id or a list of the process ids in a
+pipeline opened with "open |..."
+
+183. 6/3/93 Changed to use GNU autoconfig for configuration instead of
+the home-brew "config" script. Also made many other configuration-related
+changes, such as using <unistd.h> instead of explicitly declaring system
+calls in tclUnix.h.
+
+184. 6/4/93 Fixed bug where core-dumps could occur if a procedure
+redefined itself (the memory for the procedure's body could get
+reallocated in the middle of evaluating the body); implemented
+simple reference count mechanism.
+
+185. 6/5/93 Changed tclIndex file format in two ways: (a) it's now
+eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries
+in auto_index are now commands to evaluate, which allows commands to
+be loaded in different ways such as dynamic-loading of C code. The
+old tclIndex file format is still supported.
+
+186. 6/7/93 Eliminated tclTest program, added new "tclsh" program
+that is more like wish (allows script files to be invoked automatically
+using "#!/usr/local/bin/tclsh", makes arguments available to script,
+etc.). Added support for Tcl_AppInit plus default version; this
+allows new Tcl applications to be created without modifying the
+main program for tclsh.
+
+187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from
+working correctly in some cases during interactive input.
+
+188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically
+keep a Tcl variable in sync with a C variable.
+
+189. 6/16/93 Increased maximum nesting depth from 100 to 1000.
+
+190. 6/16/93 Modified "trace var" command so that error messages from
+within traces are returned properly as the result of the variable
+access, instead of the generic "access disallowed by trace command"
+message.
+
+191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an
+interpreter is deleted (same functionality as Tcl_WatchInterp, which
+used to exist in versions before 6.0).
+
+193. 6/16/93 Added "-code" argument to "return" command; it's there
+primarily for completeness, so that procedures implementing control
+constructs can reflect exceptional conditions back to their callers.
+
+194. 6/16/93 Split up Tcl.n to make separate manual entries for each
+Tcl command. Tcl.n now contains a summary of the language syntax.
+
+195. 6/17/93 Added new "switch" command to replace "case": allows
+alternate forms of pattern matching (exact, glob, regexp), replaces
+pattern lists with single patterns (but you can use "-" bodies to
+share one body among several patterns), eliminates "in" noise word.
+"Case" command is now obsolete.
+
+196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands
+to include a "--" switch. All initial arguments starting with "-" are now
+treated as switches unless a "--" switch is present to end the list.
+*** POTENTIAL INCOMPATIBILITY ***
-6/26/93 (bug fix) Changed canvases to handle large stipple patterns
-gracefully (stipples used to jump around during redisplay and lose
-coherency).
+197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout,
+and stderr from the parent. This allows truly interactive sub-processes
+(e.g. vi) to be auto-exec'ed from a tcl shell command line.
-7/1/93 (syntax change, new feature) Implemented the new packer syntax
-as described in the book. For now the old syntax will continue to be
-supported too. Converting over is straightforward except (a) use
-"-anchor" instead of "frame", and (b) padding is different (separate
-internal and external padding, plus pad amounts are *on each side*
-instead of total). Also added "pack propagate" command for keeping
-the packer from setting the master's requested size.
+198. 6/18/93 Added patchlevel.h, for use in coordinating future patch
+releases, and also added "info patchlevel" command to make the patch
+level available to Tcl scripts.
-7/1/93 Changed copyright notices. The effect is the same as with the
-old notices, but the new notices more clearly disclaim liability.
+199. 6/19/93 Modified "glob" command so that a leading "//" in a name
+gets left as is (this is needed for systems like Apollos where "//" is
+the super-root; Tcl used to collapse the two slashes into a single
+slash).
-7/7/93 (new feature) Added support for window stacking order. Windows
-will now stack in the order created (most recent on top), plus "raise"
-and "lower" commands may be used to restack (Tk_RestackWindow procedure
-is available from C level).
+200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum
+allowable nesting depth can be controlled for an interpreter from C.
-7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
-call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
-application name, and added default Tcl_AppInit procedure for wish.
-Also added tkTest.c to hold C code for testing.
+----------------- Released version 7.0 Beta 1, 7/9/93 ------------------
-7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
-up properly before exiting. It replaces the Tcl "exit" command, and
-can be used in place of "destroy .".
+201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision
+unsigned integers can be specified without overflow errors.
-7/9/93 (new features) Added tk_dialog library procedure that creates
-dialogs with a bitmap, message, and any number of buttons. Also changed
-default tkerror procedure to use tk_dialog plus offer the user a chance
-to see a Tcl stack trace.
+202. 7/12/93 Configuration changes: eliminate leading blank line in
+configure script; provide separate targets in Makefile for installing
+binary and non-binary information; check for size_t and a few other
+potentially missing typedefs; don't put tclAppInit.o into libtcl.a;
+better checks for matherr support.
--------------------- Release 3.3 Beta 1, 7/9/93 -------------------------
+203. 7/14/93 Changed tclExpr.c to check the termination pointer before
+errno after strtod calls, to avoid problems with some versions of
+strtod that set errno in unexpected ways.
-7/12/93 (configuration changes) Eliminated leading blank line in
-configure script; provided separate targets in Makefile for installing
-binary and non-binary information; fixed -lnsl and -lsocket handling
-in configure; added autoconf support for fd_set type; check for various
-typedefs like mode_t and size_t, and provide substitutes if they
-don't exist; don't include tkAppInit.o in libtk.a; try to locate the
-X includes and library in all of the standard places for various systems.
+204. 7/16/93 Changed "scan" command to be more ANSI-conformant:
+eliminated %F, %D, etc., added code to ignore "l", "h", and "L"
+modifiers but always convert %e, %f, and %g with implicit "l";
+also added support for %u and %i. Also changed "format" command
+to eliminate %D, %U, %O, and add %i.
+*** POTENTIAL INCOMPATIBILITY ***
-7/14/93 (new feature) Modified tkMain.c so that it stores the value
-of the -display command-line option into the DISPLAY environment
-variable, if it is specified.
+205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used
+from global level to global level: this used to generate an error.
-7/15/93 (feature removal) Removed auto-initialization feature from
-Tk_ConfigureWidget, so that you must once again initialize all fields
-of a widget record before calling Tk_ConfigureWidget. This restores
-the behavior back to what it was in Tk 3.2.
+206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures
+to avoid conflicts with system procedures with the same names. If
+you want Tcl's procedures to override the system procedures, do it
+in the Makefile (instructions are in the Makefile).
+*** POTENTIAL INCOMPATIBILITY ***
-7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
-unless it is explicitly requested in a binding. Without this fix,
-buttons and menus and other things didn't work if the Caps Lock key
-was active.
+----------------- Released version 7.0 Beta 2, 7/21/93 ------------------
--------------------- Release 3.3 Beta 2, 7/21/93 -------------------------
+207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally
+used if a procedure returned an element of a local array.
-7/21/93 (new feature) Change "make install" so that it will modify the
-#! lines on demo scripts to reflect the place where the wish binary
-is installed.
+208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle
+errors occurring in the "auto_load" procedure, leaving its state
+inconsistent.
-7/23/93 (new feature) Added Tk_MainWindow procedure that returns the
-main window associated with a Tcl interpreter. This is intended for
-use by Tcl_AppInit and other initialization procedures.
+209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for
+consistency with sh. This is incompatible with earlier beta releases
+of 7.0 but not with pre-7.0 releases, which didn't support either
+operator.
-7/24/93 (configuration improvements) Changed configure script not to
-omplain about "fd_set" missing if it's defined in <sys/select.h>.
+210. 7/28/93 Changed backslash-newline handling so that the resulting
+space character *is* treated as a word separator unless the backslash
+sequence is in quotes or braces. This is incompatible with 7.0b1
+and 7.0b2 but is more compatible with pre-7.0 versions that the b1
+and b2 releases were.
-7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
-sometimes occurring when several top-level windows got created
-at the same time, due to wrong choice of sibling when stacking
-windows.
+211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to
+Tcl_LinkVar to accomplish same purpose. This change is incompatible
+with earlier beta releases, but not with releases before Tcl 7.0.
-8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
-to wish main program: makes prompts user-settable.
+212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX
+regexp functions that use the same name.
-8/19/93 (bug fix) Bindings to event sequences like "aD" never matched
-because the Shift key has to be pressed before D. Modified Tk to
-ignore extraneous keypresses if they are for modifier keys.
+213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return"
+command: these allow for much better handling of the errorInfo
+and errorCode variables in some cases.
-8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
-procedures to use it and Tcl_Init. Added support for .wishrc file.
+214. 8/12/93 Changed "expr" so that % always returns a remainder with
+the same sign as the divisor and absolute value smaller than the
+divisor.
-8/28/93 (new feature) The main window is now a legitimate toplevel
-widget.
+215. 8/14/93 Turned off auto-exec in "unknown" unless the command
+was typed interactively. This means you must use "exec" when
+invoking subprocesses, unless it's a command that's typed interactively.
+*** POTENTIAL INCOMPATIBILITY ***
--------------------- Release 3.3 Beta 3, 8/30/93 -------------------------
+216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables
+to tclMain.c: makes prompts user-settable.
-9/2/93 (bug fix) The packer wasn't always relaying out a master after
-changes to some of the configuration options of its slaves.
+217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so
+that signals can be taken cleanly by Tcl applications.
-9/2/93 (bug fix) The binding mechanism made it impossible for patterns
-like <Double-ButtonRelease-1> to ever match.
+218. 8/16/93 Moved information about open files from the interpreter
+structure to global variables so that a file can be opened in one
+interpreter and read or written in another.
-9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
-if Postscript is generated but no -bitmap option has been specified.
+219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no
+official support for overriding setenv, unsetenv, and putenv.
-9/4/93 (enhancement) Slight improvements to menu traversal: set menu
-traversal bindings for menubar window in tk_menuBar, plus trigger
-traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.
+220. 8/20/93 Various configuration improvements: coerce chars
+to unsigned chars before using macros like isspace; source ~/.tclshrc
+file during initialization if it exists and program is running
+interactively; allow there to be directories in auto_path that don't
+exist or don't have tclIndex files (ignore them); added Tcl_Init
+procedure and changed Tcl_AppInit to call it.
-9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
-prevent events from triggering bindings.
+221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all
+getting treated as integers with value 0.
-9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
-property from root window of screen 0, rather than using default
-screen.
+222. 8/26/93 Added "tcl_interactive" variable to tclsh.
-9/9/93 (bug fix) Entry widgets weren't allocating quite enough width
-for themselves. Fixed this and changed the size computation to match
-what's done for buttons and texts.
+223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a
+given file can be read or written or both. Modified Tcl_EnterFile
+to take a permissions mask rather than separate read and write arguments.
-9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
-instead always invoke "exit" Tcl command so that application can redefine
-the command to do additional cleanup.
+224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call
+to "access" for each file caused a 5-10x slow-down for big directories).
--------------------- Release 3.3, 9/29/93 -------------------------
+----------------- Released version 7.0 Beta 3, 8/28/93 ------------------
-9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.
+225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system
+include file by same name.
-9/30/93 (bug fix) Binding event sequences such as <Right> were being
-misprinted as ASCII characters such as "S".
+226. 9/9/93 Added Tcl_DontCallWhenDeleted.
-10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
-got unmapped, which caused problems for window items whose windows weren't
-descendants of the canvas (they got left on the screen).
+227. 9/16/93 Changed not to call exit C procedure directly; instead
+always invoke "exit" Tcl command so that application can redefine the
+command to do additional cleanup.
-10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
-to have a special undocumented meaning (fd was display); eliminated this
-special interpretation.
+228. 9/17/93 Changed auto-exec to handle names that contain slashes
+(i.e. don't use PATH for them).
-10/7/93 (configuration change) Eliminated dependency of tkMain.c on
-tkInt.h and tkConfig.h, so that it's easier for people to copy the file
-out of the source directory to make modified versions.
+229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't
+clear EOF conditions.
-10/8/93 (bug fix) 3.0 introduced a bug where the class of the application
-wasn't being set properly, so options based on the application class
-weren't triggering. Fixed by adding new argument to Tk_CreateMainWindow.
+----------------- Released version 7.0, 9/29/93 ------------------
-10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
-cause core dumps due to halfwayLinePtr not getting set correctly.
+230. 10/7/93 "Scan" command wasn't properly aligning things in memory,
+so segmentation faults could arise under some circumstances.
-10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
-display N characters in an entry with "-width N" (tended to scroll the
-entry so that only N-1 characters were visible at once).
+231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to
+backslash leading curly brace when creating lists.
-10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
-weren't overriding xmkmf like they were supposed to.
+232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and
+tclUnix.h, so that people can copy the file out of the Tcl source
+directory to make modified private versions.
-10/23/93 (new feature) Allow negative scale factors in canvas "scale"
-widget command.
+233. 10/8/93 Fixed bug in auto-loader that reversed the priority order
+of entries in auto_path for new-style index files. Now things are
+back to the way they were before 3.0: first in auto_path is always
+highest priority.
-10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
-window was deleted, causing core-dumps in some cases.
+234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize
+comments and treat them as such. Thus if you typed the line
+ # {
+interactively, Tcl would think that the command wasn't complete and
+wait for more input before evaluating the script.
-10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
-the "anchor" mark exists.
+235. 10/14/93 Fixed bug where "regsub" didn't set the output variable
+if the input string was empty.
-10/27/93 (bug fix) Fixed core dump that could occur in a text widget if
-the scroll command modifies the text.
+236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough
+file descriptors in child processes, causing children not to exit
+properly in some cases.
-11/1/93 (bug fix) Change texts so that the -yscrollcommand option is
-invoked at display time, not when the window is re-layed out. This
-eliminated various core dumps that could occur if -yscrollcommand modified
-the text.
+237. 10/28/93 Changed "list" and "concat" commands not to generate
+errors if given zero arguments, but instead to just return an empty
+string.
--------------------- Release 3.4, 11/04/93 -------------------------
+----------------- Released version 7.1, 11/4/93 ------------------
-Note: there is no 3.5 release. It was flawed and was thus withdrawn
+Note: there is no 7.2 release. It was flawed and was thus withdrawn
shortly after it was released.
-11/12/93 (bug fix) TkMain.c didn't compile on some systems because of
+238. 11/10/93 TclMain.c didn't compile on some systems because of
R_OK in call to "access". Changed to eliminate call to "access".
--------------------- Release 3.6, 11/26/93 -------------------------
-
-11/10/93 (bug fix) Packer and placer didn't always reposition a window
-correctly if it was managed inside a neice or lower descendant (using
-"-in" option) and the neice's parent moved.
-
-11/24/93 (bug fix) Fixed time problem in selection (retrievals could
-fail if retriever hasn't received any X events since selection was
-made, so that time of retrieval appears to be older than time of
-selection). Selection code is now much less picky about times, both
-on retrieving and supplying sides.
+----------------- Released version 7.3, 11/26/93 ------------------
-12/2/93 (new feature) Changed arrow-head drawing code for canvas
-lines to draw a 0-width outline in addition to filling the area:
-this produces much nicer, more symmetrical displays.
+239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace"
+so that "end" can be specified as an index.
-12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
-when its state was internally inconsistent, which could cause
-core dumps in some situations (e.g. if tkerror used the same color
-that caused colors to run out). Changed notification to occur
-as a when-idle handler.
+240. 11/6/93 Modified "append" and "lappend" to allow only two
+words total (i.e., nothing to append) without generating an error.
-12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
-in the list of grabbed events, so pointer motion couldn't be tracked
-outside the grabbing application.
-
-12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
-when they only contained two points.
-
-12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
-errors during window creation could cause Destroy events to be generated
-for a window that was never completely initialized.
-
-12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
-dumps at line 1467 under exmh. The exact situation is that a text
-widget was being redisplayed at a time when it had a -yscrollcommand
-option but hadn't yet been mapped onto the screen.
-
-12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
-with non-default visuals still inherited border pixmap from parent (root),
-which could cause visual clash and X error.
-
-12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
-error in the information passed to scroll commands.
-
-12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
-some situations if a master with siblings packed "-in" it was deleted.
-
-12/18/93 (bug fix) Added "compat" directory to distribution, since it's
-referenced by tkConfig.h on some systems.
-
-12/18/93 (performance improvement) Improved performance of appending to
-a listbox, so that inserting N items doesn't take N**2 time.
-
-12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
-for the oval to stick out past the outline.
-
-1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
-that they won't run out in long running applications. There are three
-new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
-Modified all Tk code to use these procedures, so wish applications should
-now be able to run forever without running out of identifiers.
-
-1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
-cursors, which caused memory leaks in programs that changed cursors
-frequently.
-
-1/21/94 (bug fix) Fixed bug in scales that caused them to loop
-infinitely drawing tick-marks when -from and -to were the same.
-
-2/2/94 (bug fix) Fixed problem where messages that contained tabs
-didn't always compute the correct size, so that text spilled off
-the right edge. The fix adds an extra "tabOrigin" parameter to
-the internal procedures TkMeasureChars, TkDisplayChars, and
-TkUnderlineChars.
-
-2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
-it to read past the initialized part of dispPtr->modKeyCodes.
-
-2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
-that the "current" character got stuck if a grab occurred while a
-mouse button was down. It would get unstuck until after the
-next button press and release.
-
-2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
-canvases) so that it correctly prints all of the characters in the
-ISO Latin-1 character set.
-
-2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
-result across the execution of binding scripts. Otherwise if an event
-triggers in the middle of some other script (e.g. a destroy event during
-window creation, because there was an error in the creation command),
-the intepreter's result gets lost.
-
-2/19/94 (bug fix) Fixed bug in dealing with results of sent command
-that could cause them to get lost in some situations.
-
-2/21/94 (bug fix) Don't let user close a dialog window created by
-tk_dialog, since this would cause tk_dialog to hang: force the user
-to select one of the dialog's buttons.
-
-2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
-correctly handle changes in the number of points (via "coords"
-widget command).
-
-2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
-because they overflowed the 64-KB limit on strings in Postscript.
-Changed canvas printing to split up large bitmaps into mutliple
-smaller ones for printing.
-
-2/25/94 (bug fix) The "." window was being set up with -width
-and -height options, which interfered with geometry management (any
-configuration change on "." causes the window to change size to
-200x200, then change back again).
-
-2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
-event handler for a window deleted the window's parent.
-
-3/3/94 (new features) Changes to binding mechanism:
- - The modifiers for "Alt", "Meta", and "M" are now computed by
- examining the modifier map, rather than being hardwired to
- M2, M1, and M1.
- - When processing events, one script is invoked for each object
- in the list passed to Tk_BindEvent, rather than stopping as
- soon as a script is invoked for some object. The "break" and
- "continue" commands can be used within a script to abort all
- scripts for the event or the current one.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added "bindtags" command so that new binding groups can be
- defined for widgets and the evaluation order can be changed.
- - When matching events to bindings, extra modifiers are now ignored,
- as if "Any" were specified for every event. The "Any" modifier
- is still recognized, but it is ignored and is deprecated.
- *** POTENTIAL INCOMPATIBILITY ***
- - In % sequences that print window identifiers (e.g. %a and %S), print
- in hexadecimal rather than decimal, for consistence with "winfo id".
- *** POTENTIAL INCOMPATIBILITY ***
- - The "bind" command no longer supports the event types CirculateRequest,
- ConfigureRequest, MapRequest, or ResizeRequest. These event types
- are somewhat dangerous, and they never worked anyway.
-
-3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
-It appears that this command never really worked at all, but it should
-work OK now.
-
-3/14/94 (feature changes) Removed several obsolete features:
- - Eliminated "enable" and "disable" widget commands for menus.
- *** POTENTIAL INCOMPATIBILITY ***
- - Eliminated "activate" and "deactivate" widget commands for buttons,
- checkbuttons, radiobuttons, and menubuttons.
- *** POTENTIAL INCOMPATIBILITY ***
- - Removed -geometry option for frames and toplevels: it causes
- problems when .Xdefaults files contain entries like
- "*geometry: +0+0". Must use -width and -height instead.
- *** POTENTIAL INCOMPATIBILITY ***
- - Desupported "tkVersion" variable: use "tk_version" instead.
- *** POTENTIAL INCOMPATIBILITY ***
-
-3/16/94 (feature changes) Changes to listboxes:
- - Eliminated -geometry option (it causes problems when .Xdefaults
- files contain entries like "*geometry: +0+0"). Added -width
- and -height options to use instead.
- *** POTENTIAL INCOMPATIBILITY ***
-
-3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
-properly cleaned up after window deletion; this could cause the wrong
-value from the option database to be used under some conditions.
-
-3/25/94 (new features) Changes to geometry management:
- - Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures
- to solve problems with -in windows. Modified the packer, the
- placer, and canvases to use them.
- - Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc *
- to a pointer to a structure with additional information about
- the geometry manager, such as name and procedure to call when
- slaves are stolen.
- *** POTENTIAL INCOMPATIBILITY ***
-
-3/28/94 (new feature) Overhauled event management:
- - Added "cancel" option to the "after" command so that you can
- cancel previously-scheduled commands.
- - Separated X-specific stuff from generic event management. The
- file tkEvent.c can now be used stand-alone without the rest of Tk.
- See the manual entry for Tk_EventInit for information on which
- procedures are available this way.
- - Added Tk_CreateFileHandler2 procedure, which provides a lower-level
- and more powerful form of file event handler.
- - Fixed bug in Tk_DoOneEvent where an infinite loop could occur if
- the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously
- (there were bugs with several other combinations too; all should
- be fixed now).
-
-3/28/94 (new feature) Added "fileevent" command, which allows event-
-driven I/O in the style of Mark Diekhans' "addinput" command.
-
-4/11/94 (new feature) Better support for colormaps and visuals:
- - Added new -colormap and -visual options to toplevels and frames.
- - Added "winfo visualsavailable" command.
- - Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS
- to Tk_SetWindowColormap.
- - Added new library procedures Tk_GetVisual, Tk_GetColormap,
- and Tk_FreeColormap.
-
-4/11/94 (bug fix) Fixed core dump that used to occur when specifying
-an iconwindow ("wm iconwindow") for a toplevel on a different screen
-than the main window.
-
-4/23/94 (new feature) Added support for images, including the following:
- - New "image" command for creating images.
- - Built-in image type: bitmap.
- - New "image" item type in canvases.
- - Labels, buttons, checkbuttons, radiobuttons, menubuttons, and
- menu entries now support a -image option for displaying images.
- - Tk_CreateImageType and Tk_ImageChanged procedures, for defining
- new types of images in C.
- - Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage
- procedures, for using images in widgets.
-
-5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
-Tk_3DHorizontalBevel.
-
-5/11/94 (new features) Major overhaul of text widgets:
- - Implemented embedded windows and "window" widget command.
- - Added new configuration options for tags: -justify, -lmargin1,
- -lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3.
- See the "Display styles" widget demo for examples.
- - Added new configuration options for texts: -spacing1, -spacing2,
- and -spacing3.
- - Added "tagList" option to "insert" widget command to control
- tags on new text. Made tagged regions so they aren't sticky on
- either side: new characters get a tag only if the old chars. on
- both sides had it.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added gravity for marks, and "mark gravity" widget command.
- - Added horizontal scrolling, "xview" widget command, -xscrollcommand
- option. Changed "scan" widget commands to support horizontal
- scrolling.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added "search" widget command for searching (either exact matches
- or regular expressions).
- - New widget commands: bbox, dlineinfo, and see.
- - Changed implementation of bindings so that Enter and Leave
- events are not generated unless the tag has just become present
- (or just ceased to be present) on the current character. Also
- changed bindings to process separately for each tag, rather than
- having high-priority tags override low-priority ones.
- - The "end" index now refers to the character after the last newline
- rather than the newline itself. You can now tag the final newline
- and set a mark after the final newline.
- - Deletions of the "sel" tag and the "insert" and "current" marks
- are now ignored silently, rather than generating errors. This means
- you can do things like "eval .t tag delete [.t tag names]".
-
-5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
-text.
-
-5/20/94 (new feature) Added "bell" command to ring the display's bell.
-
-5/20/94 (new feature) Incorporated "square" demonstration widget into
-tktest application.
-
-5/20/94 (new features) Changed wish application (tkMain.c):
- - wish no longer processes the -help option.
- *** POTENTIAL INCOMPATIBILITY ***
- - The wish main program is now called Tk_Main; tkAppInit.c has a
- "main" procedure that calls Tk_Main. This makes it easier to use
- Tk with C++ programs, which need their own main programs, and it
- also allows an application to prefilter the argument list before
- calling Tk_Main.
- *** POTENTIAL INCOMPATIBILITY ***
- - The application's class is now the same as its name (except the
- first letter is capitalized), instead of "Tk".
- *** POTENTIAL INCOMPATIBILITY ***
- - The -file keyword is no longer required: the script file name can
- be provided as the first argument without being preceded by "-file",
- as in tclsh. For backward compatibility the "-file" keyword is
- ignored if it is the first argument, but it is deprecated.
-
-5/26/94 (feature removed) Removed support for "fill" justify mode from
-Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option. None
-of the built-in widgets ever supported this mode anyway.
-*** POTENTIAL INCOMPATIBILITY ***
+241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking
+I/O instead of EWOULDBLOCK: this should fix problem where non-blocking
+I/O didn't work correctly on System-V systems.
-5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
-that it converts reals to strings. This means that floating-point
-values will be generated in some cases where integer-like values were
-generated before.
-*** POTENTIAL INCOMPATIBILITY ***
+242. 12/22/93 Fixed bug in expressions where cancelled evaluation
+wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}"
+failed with a divide by zero error).
-6/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
-The old "pack info" command is no longer available.
-*** POTENTIAL INCOMPATIBILITY ***
+243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of
+a dummy procedure Tcl_Volatile, since -1 causes portability problems on
+some machines (e.g., Crays).
-6/20/94 (feature changes) Overhaul of entry widgets:
- - Added "-justify" option.
- - Added "-show" option to make entries easier to use for passwords.
- - Added "cget" widget command.
- - Added "selection range" and "selection present" widget commands.
- - Added "anchor" symbolic index.
- - Changed "-scrollcommand" option to "-xscrollcommand", "view"
- widget command to "xview", for compatibility with other widgets.
- *** POTENTIAL INCOMPATIBILITY ***
- - Changed sel.last to refer to character just *after* last one
- selected, again for compatibility with other widgets.
- *** POTENTIAL INCOMPATIBILITY ***
- - For "delete" widget command, second index now refers to character
- just *after* last one to delete.
- *** POTENTIAL INCOMPATIBILITY ***
- - Overhauled bindings to be more Motif-compatible and to include
- common Emacs bindings for editing.
- - Changed -width option: if specified as 0, widget sizes to fit
- its current text.
-
-6/11/94 (new features) Improved Motif compatibility:
- - Added "-highlightwidth" and "-highlightcolor" options to all widgets.
-
-6/27/94 (bug fix) Postscript generation for text items in canvases was
-not justifying the text properly when a -width was specified that was
-longer than the longest line.
-
-6/27/94 (bug fix) "winfo exists" used to report a window as existing
-if it was in the process of being destroyed (i.e., a destroy handler
-is in the middle of execution). Changed to report it as non-existent
-under these conditions.
-*** POTENTIAL INCOMPATIBILITY ***
+244. 2/4/94 Added support for unary plus.
-7/11/94 (bug fix) Selections claimed via "selection own" weren't always
-being cleared properly when the selection was claimed away. Also fixed
-bug where Tk wasn't properly claiming the selection, if there haven't
-been any recent X events at the time of the claim.
-
-7/13/94 (feature changes) Overhaul of scrollbar widgets:
- - New widget commands: "activate", "cget", "fraction", and "identify".
- - New options: -activebackground, -activerelief, -highlightcolor,
- -jump, -highlightthickness, and -troughcolor. What used to be
- -background is now -troughcolor, -foreground is now -background,
- and -activeforeground is now -activebackground.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added new syntax for "set" command, "get" result, and generated
- commands. Changed other widgets to use the new syntax.
- - Moved the bindings out of C and into Tcl scripts, using the new
- options and widget commands. Added support for all Motif
- bindings, plus jump scrolling and cancelling of slider drags.
-
-7/16/94 (bug fix) Canvases assumed that the Leave event for one item
-didn't modify or delete the next current item; this could cause core
-dumps under some conditions.
-
-7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
-is invoked as an idle handler. If tkerror generates a break exception
-then all other queued reports are aborted.
-
-8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
-canvases, resulting in the same time being used for both.
-
-8/16/94 (bug fix) "tkwait variable" command didn't detect errors in
-variable name, such as trying to wait for an entire array.
-
-9/2/94 (new features) Overhaul of scale widgets:
- - Floating-point values are supported now, following Paul Mackerras'
- "fscale" widget. Added "-resolution" and "-digits" options.
- - Added "-variable" option to link scale to variable, following
- Henning Schulzrinne's implementation.
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget commands "cget", "coords", "identify", plus
- improved "get"; removed wired-in bindings, added complete set
- of Motif bindings via Tcl scripts.
- - Changed -sliderforeground option to -background, -background to
- -troughColor, -activeforeground to -activebackground.
- *** POTENTIAL INCOMPATIBILITY ***
- - Moved value label from below horizontal scales to above the scale,
- for Motif compliance.
-
-9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
-command under some conditions (window already at the top of the stack).
-
-9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
-widgets:
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget command "cget".
- - Changed -selector option to -selectcolor, and changed its meaning
- too: empty no longer means don't draw the indicator; it means
- don't use a special color when selected.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added -indicatoron (controls whether indicator is displayed) and
- -selectimage (gives special image to display when selected) options.
- - Modified bindings to be more Motif-like, added binding for space
- key.
- - Changed padding defaults to give widgets correct Motif appearance
- by default. Also, changed to ignore padding options when displaying
- an image or bitmap.
- *** POTENTIAL INCOMPATIBILITY ***
- - Can now display text on multiple lines: newlines cause line breaks,
- and word wrapping can be requested with -wraplength option. Also
- added -justify and -underline options.
- - The -value option for radiobuttons can now have an empty string as
- its value; it no longer defaults to the name of the widget.
- *** POTENTIAL INCOMPATIBILITY ***
-
-9/13/94 (new features) Modified both canvases and messages to support
--highlightthickness and -highlightcolor options plus "cget" widget
-command.
+245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to
+call Tcl_GlobalEval instead of Tcl_Eval. Otherwise, invocation of
+these facilities in nested procedures can cause unwanted results.
-9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
-to use it. Also changed Tk_SetGrid so that at most one window per
-toplevel can have gridding enabled.
-
-9/23/94 (new features) Major overhaul of listbox widgets:
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget command "cget".
- - Revised selection commands to support single selections as well
- as multiple disjoint selections; syntax of "selection" widget
- command has changed to support this. Added new option -selectmode
- for specifying which mode to use. Default is single selection;
- tk_listboxSingleSelect procedure no longer exists. Selections
- now return as items separated by newlines instead of a list whose
- elements are the items.
- *** POTENTIAL INCOMPATIBILITY ***
- - Extended "get" widget command to allow many items to be retrieved
- at once.
- - Added "bbox" widget command for finding position of an element on
- screen.
- - Added "activate" command to mark element with traversal focus.
- - Extended index mechanism to support new types of indices:
- "active", "anchor", "@x,y".
- - Added "see" widget command.
- - Revised bindings to include all Motif features except for AddMode.
- - If -width or -height option is <= 0, the widget requests a size just
- large enough to hold all of its text.
-
-10/6/94 (new features) Overhaul of menubuttons:
- - Added focus highlight (-highlightthickness and -highlightcolor
- options).
- - Added new widget command "cget".
- - Added -indicatoron option to display option menu indicator.
- - The -menu option must be a child of the menubutton.
- *** POTENTIAL INCOMPATIBILITY ***
-
-10/6/94 (new features) Overhaul of menu widgets:
- - Added new widget commands "cget" and "entrycget".
- - Changed the implementation of tear-off menus to be more
- Motif-like; added -tearoff option for specifying whether
- tearoff entry is displayed.
- - Changed interpretation of "@y" index: it now returns the
- closest entry, rather than "none" if y is outside the menu's
- range.
- *** POTENTIAL INCOMPATIBILITY ***
- - The -menu option for a cascade entry must now be a child of
- the menu.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added "type" widget command, so that you can query the type of
- an entry.
- - Added -foreground, -activeforeground, -selectcolor, -indicatoron,
- -image, and -selectimage options to menu entries.
- - Changed "selector" menu option to "selectColor" for Motif compliance.
- *** POTENTIAL INCOMPATIBILITY ***
- - Added -relief option for menus, just for consistency with other
- widgets (it was implicitly "raised" before).
-
-10/6/94 (feature change) Completely overhauled the bindings for menus
-and menubuttons. They now fit better with other Tk 4.0 facilities,
-such as the new binding mechanism, and they provide better Motif
-compliance (e.g. keyboard traversal of submenus). Also, the bindings
-now support option menus, popup menus, and proper Motif tear-off
-menus.
-
-10/6/94 (obsolete features) The procedures tk_menuBar and
-tk_bindForTraversal are no longer needed in Tk 4.0. They still exist
-for compability, but they do nothing.
-
-10/6/94 (new procedures) Added "tk_popup" procedure for posting a
-popup menu, and "tk_optionMenu" for creating an option menubutton
-and its associated menu.
-
-10/6/94 (change in name) The variable "tk_priv" has been renamed
-to "tkPriv" to reflect that fact that it is private to Tk now.
-This shouldn't cause any problems, since no-one except Tk should
-have been using it before anyway (right?).
-
-10/6/94 (bug fix) Fixed bug in texts where sometimes the text would
-stop tracking mouse motion (the "current" item wouldn't get updated)
-because the text widget missed a ButtonRelease event.
-
-10/20/94 (new features) Overhauled selection code to support multiple
-selections (primary, secondary, etc.) and multiple displays:
- - Changed "selection" command to support new options such as
- "-displayof" and "-selection". Old command formats are still
- supported for compatibility, but they are no longer documented
- and are deprecated.
- - Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and
- Tk_ClearSelection to take additional "selection" argument.
- *** POTENTIAL INCOMPATIBILITY ***
- - Selection targets APPLICATION and WINDOW_NAME have been replaced
- by TK_APPLICATION and TK_WINDOW.
- *** POTENTIAL INCOMPATIBILITY ***
-
-10/20/94 (new features) Added support for clipboard:
- - New "clipboard" command.
- - C procedures Tk_ClipboardClear and Tk_ClipboardAppend.
- - Bindings for "cut", "paste", and "copy" for text and entry widgets,
- plus "copy" binding for listboxes.
-
-10/24/94 (bug fix) Button widgets weren't checking for errors when
-setting the values of associated variables.
-
-11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
-from inside a <Destroy> binding.
-
-11/15/94 (new features) Overhaul of focus mechanism:
- - Added support for multiple displays: separate focus windows are
- kept for each display.
- - Added support for keyboard traversal.
- - Changed focus model so Tk keeps track of a focus window for each
- top-level window and automatically sets the focus on Enter to the
- top-level. Tk no longer synthesizes FocusIn and FocusOut events,
- but just uses the standard X mechanisms. There is no "default"
- focus window anymore; the focus reverts to top-levels by default.
- *** POTENTIAL INCOMPATIBILITY ***
- - Changed focus command: eliminated "focus default" and "focus none",
- added "-displayof" and "-lastfor" options. An empty string is now
- used to signify "no focus" instead of "none".
- *** POTENTIAL INCOMPATIBILITY ***
- - Added library procedures tk_focusNext, tk_focusPrev, and
- tk_focusFollowsMouse.
- - Removed obsolete Tk_CreateFocusHandler: must use FocusIn and
- FocusOut events now.
- *** POTENTIAL INCOMPATIBILITY ***
-
-11/23/94 (new features) Overhaul of "send" command:
- - Added support for multiple displays: -displayof option to "send".
- - Added asynchronous sends: -async option to "send".
- - Eliminated fixed timeouts on sends: as long as the target
- application appears to exist, the send will wait for it.
- - Stale entries get removed from the application registry now,
- so "winfo interps" should never return non-existent applications.
- - Can change the name of an application with "tk appname" command.
- This is also the preferred way of querying the application name
- now.
- - The errorCode and errorInfo variables are now propagated back to
- the sender now, so a full stack trace is available.
- - Tk checks display security on each send now, instead of just during
- initialization, so changes in the security status are seen immediately
- by all applications.
- - The above changes required changes to the data formats used for
- communication between source and target applications, so Tk 4.0
- applications cannot send to, or be sent from, Tk 3.6 applications.
- *** POTENTIAL INCOMPATIBILITY ***
- - The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName.
- *** POTENTIAL INCOMPATIBILITY ***
-
-12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
-since it is no longer needed.
-*** POTENTIAL INCOMPATIBILITY ***
+246. 2/17/94 Fixed bug in tclExpr.c where an expression such as
+"expr {"12398712938788234-1298379" != ""}" triggers an integer
+overflow error for the number in quotes, even though it isn't really
+a proper integer anyway.
-12/7/94 (feature change) Changed the "wm" command so that top-level
-windows are now resizable by default. You can no longer specify
-empty arguments to "wm maxsize" and "wm minsize".
-*** POTENTIAL INCOMPATIBILITY ***
+247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result
+from interpreter to a dynamic string.
-12/8/94 (new feature) Added new "photo" image type using code provided
-by Paul Mackerras: currently supports only PPM "P6" format images.
+248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite
+the contents of a static result in some situations. This can cause
+bizarre errors such as variables suddenly having empty values.
-12/14/94 (new features) Canvas modifications:
- - Modified the interfaces between generic canvas code and the item
- types so that it's easy for people to write new item types outside
- of Tk.
- - Added support for transparent bitmap items: just specify an
- empty string as the background color.
- - Changed the "xview" and "yview" commands for canvases to use the
- new scrolling syntax.
- - Eliminated -scrollincrement option.
- *** POTENTIAL INCOMPATIBILITY ***
+249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement,
+and the "lappend" command that caused improper omission of a separator
+space in some cases. For example, the script
+ set x "abc{"; lappend x "def"
+used to return the result "abc{def" instead of "abc{ def".
-12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
-scaled during a "scale" widget command, but the scaling was only
-temporary and got lost on the next re-configure of the item. The
-correct behavior is for the arrowheads not to scale.
+250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if
+TCL_DONT_USE_BRACES was set. This depends on old pre-7.0 meaning of
+\0, which is no longer in effect, so it didn't really work. Changed
+to output empty elements as {} always.
--------------------- Release 4.0b1, 12/23/94 -------------------------
+251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended
+it so that it can be used to lengthen a string as well as shorten it.
+Tcl_DStringTrunc is defined as a macro for backward compatibility, but
+it is deprecated.
-12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
-size), fixed "install" target.
+252. 3/3/94 Added Tcl_AllowExceptions procedure.
-1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
-implicit conversions from prototypes don't work when compiling under
-non-ANSI compilers. Tk is now clean under gcc -Wconversion.
+253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format"
+to mis-behave on 64-bit Big-Endian machines.
-1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
-in tkCanvText.c: caused tabs in canvas text items to get messed up.
+254. 3/13/94 Changed to use vfork instead of fork on systems where
+vfork exists.
-1/4/95 (bug fix) Canvases forgot to register the built-in types if
-Tk_CreateItemType was called before a canvas widget was created.
+255. 3/23/94 Fixed bug in expressions where ?: didn't associate
+right-to-left as they should.
-1/4/95 (bug fixes) Fixed glitches in various text bindings:
- - Up used to do nothing if the cursor was at 2.0.
- - Right used to make the cursor invisible if it was just before
- the final newline of the text.
- - Control-t didn't conform to Emacs; made it conform to GNU Emacs.
- - Deleted Control-x binding, since it doesn't conform to anything and
- is confusing for Emacs users.
+256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@
+redirection in exec, so that data buffered for them is written
+before any new data added by the subprocess.
-1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
-above) an deleted Control-x for entries (see above).
+257. 4/3/94 Added "subst" command.
-1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
-this could cause slaves to get "lost" so that they weren't mapped until the
-master resized.
-
-1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
-the mouse entered the widget; this caused problems if tk_strictMotif was
-set.
-
-1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
-widgets to allow arbitrary screen distances when specifying -width and
--height for an image or bitmap (the manual pages already documented this
-but the code didn't implement it).
-
-1/6/95 (new feature) Added very primitive support for input methods,
-as suggested by Martin Forssen. This should be enough for European
-character sets (Compose key) but it isn't near enough for Asian
-character sets.
+258. 5/20/94 The tclsh main program is now called Tcl_Main; tclAppInit.c
+has a "main" procedure that calls Tcl_Main. This makes it easier to use
+Tcl with C++ programs, which need their own main programs, and it also
+allows an application to prefilter the argument list before calling
+Tcl_Main.
+*** POTENTIAL INCOMPATIBILITY ***
-1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
-where divide-by-zero errors could sometimes occur.
+259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable
+could get truncated if an unset trace was invoked as part of returning
+from the procedure.
-1/8/95 (bug fix) New event handler didn't properly handle files for
-which both TK_READABLE and TK_WRITABLE were specified.
+260. 6/13/94 Added "wordstart" and "wordend" options to "string" command.
-1/11/95 (bug fix) Fixed bug with text selections: was returning count
-too high for data, causing bogus garbage to appear when selection was
-copied.
+261. 6/27/94 Fixed bug in expressions where they didn't properly cancel
+the evaluation of math functions in &&, ||, and ?:.
--------------------- Release 4.0b2, 1/12/95 -------------------------
+262. 7/11/94 Incorrect boolean values, like "ogle", weren't being
+handled properly.
-1/27/95 (feature removal) Removed %D substitution from binding scripts:
-wasn't portable, shouldn't be used anyway.
-*** POTENTIAL INCOMPATIBILITY ***
+263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange,
+which provide lower-level access to regular expression pattern matching.
-1/27/95 (new features) Added -displayof options to the commands
-"winfo atom", "winfo atomname", "winfo containing", "winfo interps",
-and "winfo pathname".
+264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user"
+would complain about a missing user. Now it doesn't complain anymore.
-1/27/95 (new feature) Added "idle" option to "after" command to run
-scripts as idle handlers.
+265. 8/4/94 Fixed bug with linked variables where they didn't behave
+correctly when accessed via upvars.
-1/28/95 (new feature) Modified placer to make -x and -relx additive
-if you specify both. Same for -y and -rely, -width and -relwidth,
-and -height and -relheight. This makes it easy to make request such
-as "make .a 2 pixels larger than .b".
-*** POTENTIAL INCOMPATIBILITY ***
+266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result.
-1/28/95 (new feature) Improved auto-grab mechanism in canvases (which
-prevents current item from changing while a button is down): changed
-to report Enter and Leave events for the current item while a button
-is down. However, as before, no Enter events are reported for other
-items until the button goes up.
+267. 8/31/94 Modified "open" command so that errors in exec-ing
+subprocesses are returned by the open immediately, rather than
+being delayed until the "close" is executed.
-1/28/95 (new feature) Bitmap images are now transparent if the -background
-is specified as an empty string (-maskdata and -maskfile are ignored in
-this case). This is also the default.
+268. 9/9/94 Modified "expr" command to generate errors for integer
+overflow (includes addition, subtraction, negation, multiplication,
+division).
-1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
-such as SunAudioMute. Modified tkBind.c so that it uses XStringToKeysym
-in addition to its own hash table, so that all keysyms are now available.
+269. 9/23/94 Modified "regsub" to return a count of the number of
+matches and replacements, rather than 0/1.
-1/30/95 (feature change) Modified "clipboard append" so that it reclaims
-the clipboard selection if it had been previously lost, rather than just
-generating an error. This handles certain race conditions more cleanly,
-and also allows the use of programs like "xclipboard".
+279. 10/4/94 Added new features to "array" command:
+ - added "get" and "set" commands for easy conversion between arrays
+ and lists.
+ - added "exists" command to see if a variable is an array, changed
+ "names" and "size" commands to treat a non-existent array (or scalar
+ variable) just like an empty one.
+ - added pattern option to "names" command.
-1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
-options to canvases.
+280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get
+called during append operations.
-1/31/95 (bug fix) Geometry management was broken if a particular geometry
-manager claimed a slave away from itself.
+281. 10/20/94 Fixed bug in "read" command where reading from stdin
+required two control-D's to stop the reading.
-1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
-than requested was being selected in preference to one with just the right
-number of bits.
+282. 11/3/94 Changed "expr" command to use longs for division just like
+all other expr operators; it previously used ints for division.
-1/31/95 (bug fix) Texts weren't redisplaying the padding region properly
-after changes in -padx or -pady.
+283. 11/4/94 Fixed bugs in "unknown" procedure: it wasn't properly
+handling exception returns from commands that were executed after
+being auto-loaded.
-1/31/95 (new features) More text improvements:
- - Extended "insert" widget command for texts to allow multiple
- text-tagList pairs in the same command.
- - Added -nocase option to "search" widget command.
- - Added -overstrike option to tags.
- - Added tab stops, via -tabs option for widget and for tags.
+----------------- Released version 7.4b1, 12/23/94 ------------------
-2/10/95 (bug fix) Modified all widgets to allow renaming of widget
-commands. Deleting a widget command will delete the widget.
+284. 12/26/94 Fixed "install" target in Makefile (couldn't always
+find install program).
-2/11/95 (new feature) Added -highlightbackground option to all widgets.
+285. 12/26/94 Added strcncasecmp procedure to compat directory.
-2/14/95 (new feature) Added "insert" widget command for menus.
+286. 1/3/95 Fixed all procedure calls to explicitly cast arguments:
+implicit conversions from prototypes (especially integer->double)
+don't work when compiling under non-ANSI compilers. Tcl is now clean
+under gcc -Wconversion.
-2/15/95 (new feature) Modified text display code (for all widgets) to
-display well-known control characters like newline and backspace as
-\n or \b instead of \xa.
+287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for
+both a label and a variable; caused problems on several older compilers,
+making array command misbehave and causing many errors in Tcl test suite.
-2/15/95 (bug fix) Modified bitmap and photo image managers to delete
-the image command when the image is deleted. Also modified them to
-allow renaming of the image command, and to delete the image if the
-image command is deleted.
+----------------- Released version 7.4b2, 1/12/95 ------------------
-2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
-even if wrapping was enabled, if a line isn't entirely visible due to
-a large character or embedded window.
+288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added
+Tcl_GetCommandName procedure. Together, these procedures make it possible
+to track renames of a command.
-2/16/95 (feature change) Added "postcascade" widget command to menus,
-changed "invoke" and "activate" not to post or unpost submenus. Also
-fixed bug in redisplay that tended to leave bits of garbage on menu
-when submenu unposted.
+289. 2/13/95 Fixed bug in expr where "089" was interpreted as a
+floating-point number rather than a bogus octal number.
*** POTENTIAL INCOMPATIBILITY ***
-2/16/95 (feature removal) Removed "snap back" behavior (slider
-snaps back to old position if you move the mouse outside the widet
-before releasing the button) from scrollbars and scales.
+290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for
+overflows when reading in numbers.
-2/16/95 (bug fix) The last line of a listbox wasn't being displayed if
-it was only partially visible.
-
-2/16/95 (new features) Added support for "-resolution 0" (no rounding
-of values) to scale widgets, plus smarter computation of how many digits
-to display.
-
-2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
-didn't properly set the anchor position.
-
-2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
-add the toplevel implicitly to the end of the list if it wasn't already
-on the list somewhere. Without this, some window managers implicitly
-put it at the front of the list, so that colormaps in internal windows
-are never used.
-
-2/20/95 (bug fix) Changed to use separate command procedures for
-button, checkbutton, label, and radiobutton commands. This allows the
-class commands to be renamed without breaking their behavior.
-
-2/20/95 (removed feature) The "bind" command no longer supports
-"Keymap" events; they never worked anyway.
-
-2/20/95 (bug fix) The text "search" widget command looped infinitely
-when searching an empty text.
-
-2/20/95 (bug fix) Canvases weren't redrawing their borders after
-configuration changes.
-
-2/20/95 (upgrade) Changed to use autoconf version 2.2.
-
-2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
-when menus have no entries.
-
-2/21/95 (bug fix) Fixed bug in geometry management that caused windows
-packed -in siblings to not always be mapped and unmapped properly
-(particularly when the toplevel got unmapped and mapped).
-
-2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
-caused embedded windows not to be unmapped when off-screen.
-
-2/23/95 (bug fix) "After cancel" dumped core when the script for an
-after event cancelled itself.
-
-2/24/95 (bug fix) Text and entry widgets weren't properly ignoring
-Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
-for one of these resulted in the character also being inserted.
-
-2/24/95 (bug fix) Several widgets accidentally performed unsigned
-division on negative numbers, thereby losing the sign bit. This
-mostly affected the display of images and bitmaps in buttons,
-menubuttons, and messages.
-
-2/24/95 (feature reversal) Restored old behavior of %A so that it
-returns non-printing characters as well as printing ones now.
-*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
-
-2/24/95 (bug fix) Duplicate "leave" events could occur for canvas
-items under some conditions, due to recursive calls to PickCurrentItem.
-Added code to detect and skip the nested calls.
-
-2/24/95 (bug fix) Fixed bug where an error could occur during the first
-keystroke in an application if its binding invoked "break".
-
-2/25/95 (new feature) Modified syntax of "search" widget command for
-texts. The -nowrap switch and the "variable" final argument are no
-longer supported. Instead, there is a -count switch to replace
-the final argument; if the final argument is specified, it is now
-a stopping index for the search. The features of -nowrap can be
-achieved now with the stopping index.
-*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
-
-2/27/95 (bug fix) Fixed problem that appears to prevent keyboard
-input for working under IRIX: tkBind.c was ignoring XmbLookupString
-calls that returned a status of XLookupBoth.
-
-2/27/95 (new feature) Added Tk_GetItemTypes procedure to return
-information about available canvas item types.
-
-2/27/95 (feature change) Changed Makefile to always use install-sh
-for installations: there's just too much variation among "install"
-system programs, which makes installation flakey.
-
-2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
-the app's main window was destroyed by a destroy handler on a
-child.
-
-3/5/95 (feature change) Change separator character used in "bind +..."
-bindings from semi-colon to newline (permits bindings that are
-comments, for what that's worth).
-
-3/7/95 (bug fix/feature change) Overhauled focus code, both in C
-and in Tcl:
- - Tk won't move the X focus in response to the "focus" command
- unless either the application already has the focus or the
- -force switch is specified.
- - Tk no longer sets the X focus to anything other than top-levels;
- it synthesizes events for FocusIn and FocusOut to children.
- - A window no longer has to be viewable when focussed to; Tk will
- set the X focus later, when the window becomes viewable.
- - Added -takefocus option to all widgets.
- - Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option.
- These procedures no longer set the focus; they just return the
- next window in focus order.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
- - Eliminated tk_focusContinue.
- *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
-
-3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
-in C: Tk_StrictMotif library procedure. Modified buttons, menubuttons,
-menus to use it. This fixes the problem with menus not supporting
-tk_strictMotif properly in Tk4.0b1 and b2.
-
-3/16/95 (feature overhaul) Overhauled color management:
- - Changed Tk so it never denies a color request because a colormap
- filled up. Instead, it allocates the closest available color.
- - Eliminated "color model" mechanism. The "tk colormodel" command
- is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel.
- *** POTENTIAL INCOMPATIBILITY ***
- - Changed 3D border implementation to allocate colors for shadows
- lazily, so they're never allocated if they're never used. Also
- added new feature whereby stippling is used for borders when
- the colormap has run out of entries. Changed arguments to many
- of Tk_3D C procedures to take a Tk_Window as argument instead of
- a (Display *). This is needed to do lazy color allocation.
- *** POTENTIAL INCOMPATIBILITY ***
- - Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue,
- and Tk_Get3DBorder.
- *** POTENTIAL INCOMPATIBILITY ***
-
-3/16/95 (feature change) Event bindings created from Tcl will now ignore
-Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
-This is done in anticipation of mega-widgets, so that the user of a
-mega-widget can create Enter/Leave bindings on the mega-widget without
-seeing spurious events as the mouse moves among the windows in the
-mega-widget.
-*** POTENTIAL INCOMPATIBILITY ***
+291. 2/18/95 Changed "array set" to stop after first error, rather than
+continuing after error.
-3/17/95 (feature change) Changed C interfaces throughout Tk to use ints
-instead of unsigneds: the unsigneds turn out to cause subtle problems
-with arithmetic in some places, and using ints everywhere is just
-simpler.
-*** POTENTIAL INCOMPATIBILITY ***
+292. 2/20/95 Upgraded to use autoconf version 2.2.
-3/23/95 (bug fix) Selections longer than 4000 bytes were being
-truncated to 4000 bytes.
+293. 2/20/95 Fixed core dump that could occur in "scan" command if a
+close bracket was omitted.
--------------------- Release 4.0b3, 3/24/95 -------------------------
+294. 2/27/95 Changed Makefile to always use install-sh for installations:
+there's just too much variation among "install" system programs, which
+makes installation flakey.
+
+----------------- Released version 7.4b3, 3/24/95 ------------------
3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
"make install" will work even when "." isn't in the search path.
-3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
-dumps in other applications during retrievals of large selections
-(this is actually a bug in the other apps, but I've patched Tk to
-keep it from getting triggered).
-
-3/25/95 (bug fix) Fixed bug where X window for "." wasn't being
-deleted.
-
-3/27/95 (bug fix) Fixed many bugs associated with having more than
-one application in a single process.
-
-3/28/95 (bug fix) The "search" widget command for texts didn't
-return the correct index and count if there were embedded widgets
-on the same line as the returned range but before the end of
-the range.
-
-3/28/95 (bug fix) Changed pasting via button 2 in text and entries
-so that it inserts at the pointer location, not the location of
-the insertion cursor.
-
-3/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
-that delete ancestors in the window hierarchy. Also eliminated
-extraneous calls to XDestroyWindow, which speeds up window deletion
-by about 3x.
-
-3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
-properly handle image deletions that occurred while the widget was
-being deleted (caused core dumps).
-
-3/29/95 (bug fix) When retrieving long selections from text widgets,
-parts of lines were getting duplicated in the selection information.
-
-4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
-scales with 0 range.
-
-4/1/95 (bug fix) Fixed problem with -command option for scrollbars and
--takefocus option that caused commands to be evaluated in the wrong
-context.
-
-4/1/95 (bug fix) Fixed problem with option database that caused it to
-sometimes use the wrong option (wasn't flushing the database properly
-after a change in a window's class).
+3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't
+protecting the values of the errorCode and errorInfo variables.
-4/1/95 (bug fix) If a line in a text widget just barely fit in the window,
-Tk was allocating a second screen line just for the newline character.
+3/29/95 (new feature) Added optional pattern argument to "parray" procedure.
-4/1/95 (new feature) When backspacing in an entry widget, when you reach
-the left edge of the widget, the insertion cursor gets recentered.
+3/29/95 (bug fix) Made the full functionality of
+ "return -code ... -errorcode ..."
+work not just inside procedures, but also in sourced files and at
+top level.
-4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
-to fetch the current pointer position.
+4/6/95 (new feature) Added "pattern" option to "array names" command.
-4/6/95 (bug fix) If the last line of a text widget was only partially
-visible, it was counted as visible for purposes of the scrollbar. Now
-it is treated as if it were off-screen for scrolling purposes.
+4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline
+immediately after an argument in braces or quotes.
-4/6/95 (new feature) Modified "bell" command to reset screen saver as well.
+4/19/95 (new feature) Added tcl_library variable, which application can
+set to override default library directory.
-4/6/95 (feature change) Modified menu scanning (where menus pull down
-as you drag across their menubuttons) so it only works among menus
-in the same toplevel; it used to work for any menubuttons in the
-application.
-
-4/6/95 (bug fix) Canvas text items weren't allowing real numbers in
-"@x,y" notation for specifying indices.
-
-4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
-was large.
-
-4/7/95 (bug fix) Changed "clipboard append" command to support -- option
-and to always treat the last argument as data, even if it starts with
-"-".
-
-4/17/95 (new feature) Added -wrap option to text tags.
-
-4/18/95 (bug fix) Listboxes and texts weren't updating their grid information
-when -width or -height changed.
-
-4/18/95 (bug fix) "Down" didn't work right in text widgets if the last
-line was only partially visible in the window.
-
-4/19/95 (bug fix) Listboxes didn't handle partially visible last lines
-right: couldn't scroll it into full visibility, for example.
-
-4/20/95 (bug fix) If a toplevel was positioned with a command like
-"wm geometry . -0-0", the window didn't reposition itself to maintain
-that geometry after a size change.
-
-4/21/95 (feature change) Changed order of binding tags so widget bindings
-fire before class bindings. New order is: widget, class, toplevel, all.
-*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
-
-4/23/95 (new feature) Added "winfo colormapfull" command.
-
-4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
-treat Return the same as Space, unless tk_strictMotif is set.
-
-4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
-binding tags and bindings of the original in the copy.
-
-4/25/95 (bug fix and feature change) Modified mechanism for choosing
-"best" visual to fix a bug where depth wasn't really getting highest
-priority in all situations.
-
-4/28/95 (bug fix) Failed text searches starting at "end" could result
-in an infinite loop in Tk.
-
-4/30/95 (new feature) Added "wm resizable" command to enable and
-disable interactive resizing.
-
-4/30/95 (new feature) Added "window names" widget command to texts:
-returns a list of all embedded windows.
-
-5/2/95 (feature change) Changed text searches so that forward searches
-start at the given index, rather than the character just after the
-given index.
-*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
-
-5/4/95 (bug fix) Default bit gravity for windows was wrong (it was
-ForgetGravity) causing unnecessary flashing when windows were resized.
-
-5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
-sleep if there's nothing that will wake it up again (e.g. no file
-or timer handlers). Returns 0 immediately.
+4/30/95 (bug fix) During trace callbacks for array elements, the variable
+name used in the original reference would be temporarily modified to
+separate the array name and element name; if the trace callback used
+the same name string, it would get the wrong name (the array name without
+element). Fixed to restore the variable name before making trace
+callbacks.
-5/5/95 (configuration change) Changed to use BSDgettimeofday instead
-of gettimeofday on systems like IRIX where BSDgettimeofday is
-available. This avoids compilation problems due to the different
-interface to gettimeofday provided by IRIX.
+4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables
+switches to "subst" command.
-5/5/95 (feature change) Changed binding mechanism so that all bindings
-are created immediately at initialization time, rather than waiting
-until the first FocusIn or Enter event for a class.
+5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval.
-5/6/95 (feature change) Changed default text for labels, buttons,
-checkbuttons, radiobuttons, menubuttons, and messages from " " to
-"".
+5/5/95 (bug fix) Format command would overrun memory when printing
+integers with very large precision, as in "format %.1000d 0".
-5/6/95 (bug fix) If the application was destroyed in the middle of
-an "update" command, Tk would dump core.
+5/5/95 (portability improvement) Changed to use BSDgettimeofday on
+IRIX machines, to avoid compilation problems with the gettimeofday
+declaration.
5/6/95 (bug fix) Changed manual entries to use the standard .TH
macro instead of a custom .HS macro; the .HS macro confuses index
generators like makewhatis.
-5/6/95 (bug fix) Change "wm iconwindow" command to disable button
-presses for the icon window. This is needed so that the window
-manager can get those events (X only allows button presses to go
-to one client for a given window).
+5/9/95 (bug fix) Modified configure script to check for Solaris bug
+that makes vfork unreliable (core dumps result if vforked child
+changes a signal handler); will use fork instead of vfork if the
+bug is present.
-5/9/95 (new feature) When specifying visuals, can now use "best"
-with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.
+6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls
+to lsort from a comparison function. This is needed because qsort
+is not reentrant.
-5/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
-screen distances weren't allowed, only integers.
+6/5/95 (bug fix) Undid change 243 above: changed TCL_VOLATILE and
+TCL_DYNAMIC back to integer constants rather than procedure addresses.
+This was needed because procedure addresses can have multiple values
+under some dynamic loading systems (e.g. SunOS 4.1 and Windows).
-5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.
-
-5/22/95 (color change) Changed the Tk color palette to a gray scheme.
-Also added a library procedure tk_setPalette that makes it easy to
-change colors on the fly, and a procedure tk_bisque that restores the
-previous light brown scheme.
-
-5/28/95 (bug fix) Modified canvases so that the -width and -height
-options refer to the space inside the borders, not the total widget
-space. Also changed "xview" and "yview" commands and scroll-increment
-rounding to use the pixel just inside the borders, rather than (0,0).
-
-5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
-didn't properly handle unsets of variables they were tracing, if the
-variables were reference through upvars in procedures.
-
-6/4/95 (bug fix) The placer wasn't rounding window widths right when
-both -relx and -relwidth were specified (or -rely and -relheight) so
-that rounding errors accumulated.
-
-6/4/95 (feature improvement) Change parsing of text indices to handle
-weird mark and tag names better (e.g. any string ending with ".first"
-will now be parsed as a tag name, even if it contains embedded spaces,
-etc.).
+6/8/95 (feature change) Modified interface to Tcl_Main to pass in the
+address of the application-specific initialization procedure.
+Tcl_AppInit is no longer hardwired into Tcl_Main. This is needed
+in order to make Tcl a shared library.
-6/4/95 (feature change) If a font defines glyphs for control characters,
-they are now displayed, instead of translating the character to a
-backslash sequence (however, tabs and newlines are still treated
-specially; glyphs are not displayed for these characters).
+6/8/95 (feature change) Modified Makefile so that the installed versions
+of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and
+libtcl7.4.a) and the library directory name also has an embedded version
+number (e.g., /usr/local/lib/tcl7.4). This should make it easier for
+Tcl 7.4 to coexist with earlier versions.
-6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
-toplevels so that it now works under olwm and olvwm. It didn't use to
-work, and the problem is really in the window manager, but Tk now
-patches around it. However, only "total" raises and lowers work:
-raising and lowering relative to a sibling still don't work under
-olvwm and olwm.
+----------------- Released version 7.4b4, 6/16/95 ------------------
-6/4/95 (feature change) Modified tab code in texts so that a tab always
-occupies at least as much space as a space character.
+6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps
+if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays.
-6/4/95 (bug fix) The "%t" substitution wasn't being made properly in
-Enter and Leave event bindings.
+6/21/95 (feature removal) Removed overflow checks for integer arithmetic:
+they just cause too much trouble (e.g. for random number generators).
-6/7/95 (new feature) Added support for GIF images. Unfortunately it's
-a bit fragile: certain kinds of badly formed images can cause core
-dumps; I don't know enough about the GIF reader (taken from giftoppm)
-to figure this out.
+6/28/95 (new features) Added tcl_patchLevel and tcl_version variables,
+for consistency with Tk.
-6/7/95 (bug fix and feature change) Fixed PPM image reader to be more
-flexible about header formats, and added support for PGM images.
+6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record
+the right termination character if a script ended with a comment. This
+caused erroneous output for the following command, among others:
+puts "[
+expr 1+1
+# duh!
+]"
-6/7/95 (feature change) Added -outlinestipple option to canvas arc
-items, changed "-style arc" to use -outline as the color instead of
--fill (the old approach was pretty quirky).
-*** POTENTIAL INCOMPATIBILITY ***
+6/29/95 (message change) Changed the error message for ECHILD slightly
+to provide a hint about why the problem is occurring.
-6/8/95 (feature change) Modified interface to Tk_Main to pass in the
-address of the application-specific initialization procedure.
-Tcl_AppInit is no longer hardwired into Tk_Main. This is needed
-in order to make Tcl a shared library.
+----------------- Released version 7.4, 7/1/95 ------------------
-6/8/95 (feature change) Modified Makefile so that the installed versions
-of wish and libtk.a have version number in them (e.g. wish4.0 and
-libtk4.0.a) and the library directory name also has an embedded version
-number (e.g., /usr/local/lib/tk4.0). This should make it easier for
-Tk 4.0 to coexist with earlier versions.
+7/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if
+the last index is less than the first index or if the last index
+is < 0.
-6/9/95 (new feature) Added -outline and -width options to canvas polygon
-items.
+7/18/95 (bug fix) Fixed bugs with backslashes in comments:
+Tcl_CommandComplete (and "info complete") didn't properly handle
+strings ending in backslash-newline, and neither Tcl_CommandComplete
+nor the Tcl parser handled other backslash sequences right, such
+as two backslashes before a newline.
-6/9/95 (feature changed) Renamed -decimate in photo widget to -subsample
-(decimate wasn't technically correct).
-*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***
+7/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table
+entry for the command before invoking its callback. This is needed in
+order to deal with reentrancy.
--------------------- Release 4.0b4, 6/16/95 -------------------------
+7/22/95 (bug fix) "exec" wasn't reaping processes correctly after
+certain errors (e.g. if the name of the executable was bogus, as
+in "exec foobar").
-6/19/95 (bug fix) Colors weren't being rounded correctly in canvas
-Postscript generation: caused "white" to appear slightly gray when
-the display of the canvas used only 8 bits per color.
+7/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided
+by the "configure" script. This caused problems on some SCO systems.
-6/20/95 (bug fix) "bbox" widget command for texts didn't return
-proper width for tabs.
+7/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly
+handle the case where endPtr == NULL.
-6/20/95 (bug fix) Scrollbars didn't always work right for texts:
-couldn't scroll all the way to the bottom of the text in a single
-drag of the slider.
+----------------- Released patch 7.4p1, 7/29/95 -----------------------
-6/20/95 (new feature) Added "delta" widget command for scrollbars
-(needed for above bug fix).
+8/4/95 (bug fix) C-level trace callbacks for variables were sometimes
+receiving the PART1_NOT_PARSED flag, which could cause errors in
+subsequent Tcl library calls using the flags. (JO)
-6/23/95 (bug fix) Listboxes weren't properly redisplaying their
-borders when the were configured to a smaller size.
+8/4/95 (bug fix) Calls to toupper and tolower weren't using the
+UCHAR macros, which caused trouble in non-U.S. locales. (JO)
-6/23/95 (new feature) Added "winfo server" command.
+8/10/95 (new feature) Added the "load" command for dynamic loading of
+binary packages, and the Tcl_PackageInitProc prototype for package
+initialization procedures. (JO)
-6/23/95 (bug fix) If a menu was posted, couldn't switch to another
-menu with an Alt- key.
+8/23/95 (new features) Added "info sharedlibextension" and
+"info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO)
-6/24/95 (new feature) Added "winfo pointerxy" command.
+8/25/95 (bug fix) If the target of an "upvar" was non-existent but
+had traces set, the traces were silently lost. Change to generate
+an error instead. (JO)
-6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
-option names.
+8/25/95 (bug fix) Undid change from 7/19, so that commands can stay
+around while their deletion callbacks execute. Added lots of code to
+handle all of the reentrancy problems that this opens up. (JO)
-6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
-could get garbage in it if the main window's class was changed by
-calling Tk_SetClass.
+8/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars
+if there was an upvar from one entry in the table to the next entry
+in the same table. (JO)
-6/25/95 (bug fix) Fixed two bugs in menus, one where errors in
-variable traces weren't propagated correctly and one where "invoke"
-was invoked at the wrong stack level, with the result that variable
-traces didn't have access to the right variables.
+8/28/95 (bug fix) Exec wasn't handling bad user names properly, as
+in "exec ~bogus_user/foo". (JO)
-6/27/95 (bug fix) tk3d.c wasn't using all the right information
-when deciding whether or not to stipple borders, so it stippled
-borders even on 16-bit true-color displays.
+8/29/95 (bug fixes) Changed backslash-newline handling to correct two
+problems:
+ - Only spaces and tabs following the backslash-newline are now
+ absorbed as part of the backslash-newline. Newlinew are no
+ longer absorbed (add another backslash if you want to absorb
+ another newline).
+ - TclWordEnd returns the character just before the backslash in
+ the sequence as the end of the sequence; it used to not consider
+ the backslash-newline as a word separator. (JO)
-6/28/95 (bug fix) Page up and down operations in texts could cause
-insertion cursor to drift to the right. Changed tkTextScrollPages
-to use upper-left corner of current character, rather than center
-of character.
+8/31/95 (new feature) Changed man page installation (with "mkLinks"
+script) to create additional links for manual pages corresponding to
+each of the procedure and command names described in the pages. (JO)
-6/28/95 (bug fix) Changed text widget so that you can't put the
-insertion cursor after the last newline in the text.
+9/10/95 Reorganized Tcl sources for Windows and Mac ports. All sources
+are now in subdirectories: "generic" contains sources that work on all
+platforms, "windows", "mac", and "unix" directories contain platform-
+specific sources. Some UNIX sources are also used on other platforms. (SS)
-6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.
+9/10/95 (feature change) Eliminated exported global variables (they
+don't work with Windows DLLs). Replaced tcl_AsyncReady and
+tcl_FileCloseProc with procedures Tcl_AsyncReady() and
+Tcl_SetFileCloseProc(). Replaced C variable tcl_RcFileName with
+a Tcl variable tcl_rcFileName. (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-6/28/95 (bug fix) Fixed problem that could cause core dumps in the
-text widget when dealing with embedded windows (there were problems
-if the act of redisplaying caused the window layout to change, which
-can happen with embedded windows).
+9/11/95 (new feature) Added procedure Tcl_SetPanicProc to override
+the default implementation of "panic". (SS)
+
+9/11/95 (new feature) Added "interp" command to allow creation of
+new interpreters and execution of untrusted scripts. Added many new
+procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe,
+to provide C-level access to the interpreter facility. This mechanism
+now provides almost all of the generic functions of Borenstein's and
+Rose's Safe-Tcl (but not any Tk or email-related stuff). (JL)
+
+9/11/95 (feature change) Changed file management so that files are
+no longer shared between interpreters: a file cannot normally be
+referenced in one interpreter if it was opened in another. This
+feature is needed to support safe interpreters. Added Tcl_ShareHandle()
+procedure for allowing files to be shared, and added "interp" argument
+to Tcl_FilePermissions procedure. (JL)
+*** POTENTIAL INCOMPATIBILITY ***
-6/28/95 (bug fix) Texts didn't handle indices with double negatives,
-such as ".t mark set insert {insert + -20 chars}".
+9/11/95 (new feature) Added "AssocData" mechanism, whereby extensions
+can associate their own data with an interpreter and get called back
+when the interpreter is deleted. This is visible at C level via the
+procedures Tcl_SetAssocData and Tcl_GetAssocData. (JL)
-6/28/95 (bug fix) Fixed problem where focus didn't always revert to
-its prior window after a dialog box was dismissed.
+9/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value
+into a human-readable string. This is now used instead of calling
+strerror because strerror mesages vary dramatically from platform
+to platform, which messes up Tcl tests. Tcl_ErrnoMsg uses the standard
+POSIX messages for all the common signals, and calls strerror for
+signals it doesn't understand.
-6/28/95 (bug fix) Fixed problem with "search" widget command returning
-incorrect length on some backwards regexp searches.
+----------------- Released patch 7.4p2, 9/15/95 -----------------------
-6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
-a core dump.
+----------------- Released 7.5a1, 9/15/95 -----------------------
-6/29/95 (new feature) Added -elementborderwidth option for scrollbars
-so the -borderwidth can be set to 0 without flattening the arrows and
-slider.
+9/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that
+handle directories whose paths might contain spaces. (RJ)
--------------------- Release 4.0, 7/1/95 -------------------------
+9/27/95 (bug fix) The "format" command didn't check for huge or negative
+width specifiers, which could cause core dumps. (JO)
-7/18/95 (bug fix) %t in event bindings didn't work properly for some
-events (e.g. PropertyNotify).
+9/27/95 (bug fix) Core dumps could occur if an interactive command typed
+to tclsh returned a very long result for tclsh to print out. The bug is
+actually in printf (in Solaris 2.3 and 2.4, at least); switched to use
+puts instead. (JO)
-7/18/95 (bug fix) Changed "exec wish" lines in demo scripts to
-"exec wish4.0" to avoid version conflicts.
+9/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency
+for tcl1675.dll on the Borland run time library. (SS)
-7/18/95 (bug fix) Fixed round-off errors in scrolling for texts,
-canvases, listboxes, and entries. The error could cause the view
-to shift up in a command like "$w yview moveto [lindex [$w yview] 0]".
+9/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead
+of tcl16.dll. (SS)
-7/19/95 (bug fix) Canvases weren't always redrawing borders correctly
-when they became unobscured. There were also some problems with
-improper refresh after size changes.
+9/28/95 (bug fix) Tcl was not correctly detecting the difference
+between Win32s and Windows '95. (SS)
-7/19/95 (bug fix) Fixed bug in text index processing that causes
-tests textIndex-11.1 and textIndex12.1 to fail on some platforms.
+9/28/95 (bug fix) "exec" was not passing environment changes to child
+processes under Windows. (SS)
-7/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during
-"raise" and "lower" commands for toplevel windows under some window
-managers (such as fvwm).
+9/28/95 (bug fix) Changed Tcl to ensure that open files are not passed
+to child processes under Windows. (SS)
-7/20/95 (bug fix) Text searches were misbehaving when there were embedded
-windows on the starting line of the search. The most common symptom is
-that Tk would fail to find a match at the starting position for the
-search.
+9/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can
+handle both console and windows apps. (SS)
-7/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton
-entry's -variable option referred to an array (or couldn't be read
-by the menu C code for some other reason).
+9/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves
+temp files lying around. Also changed it so the temp files are
+created in the appropriate system dependent temp directory. (SS)
-7/22/95 (bug fix) Text widgets didn't update their scrollbars when
-changes were made to information that was off-screen.
+9/28/95 (bug fix) Eliminated source dependency on the Win32s Universal
+Thunk header file, since it is not bundled with VC++. (SS)
-7/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen
-in the command ".l bbox end" if the listbox was empty.
+9/28/95 (bug fix) Under Windows, Tcl now constructs the HOME
+environment variable from HOMEPATH and HOMEDRIVE when HOME is not
+already set. (SS)
-7/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't
-move active element to remain on the screen.
+9/28/95 (bug fix) Added support for "info nameofexecutable" and "info
+sharedlibextension" to the Windows version. (SS)
-7/25/95 (bug fix) Patched around H-P compiler problem that results in
-core-dumps in tkImgPhoto.c during image handling.
+9/28/95 (bug fix) Changed tclsh to correctly parse command line
+arguments so that backslashes are preserved under Windows. (SS)
-7/25/95 (bug fix) Fixed bug in tkImgPhoto.c that caused core dumps
-(during Tk self-tests and other image uses) on AIX and other machines
-where "schar" in tkImgPhoto.c was being defined as "short" instead of
-"char".
+9/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end
+of line in "gets", which caused lines ending in CRLF to be treated as
+two separate lines. Changed to allow only character as end-of-line:
+carriage return on Macs, newline elsewhere. (JO)
-7/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity
-values other than 255.
+9/29/95 (new feature) Changed to install "configInfo" file in same
+directory as library scripts. It didn't used to get installed. (JO)
-7/26/95 (bug fix) Canvases didn't redraw their borders when the relief
-changed from raised to flat.
+9/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX
+errors under some circumstances. (SS)
-7/27/95 (bug fix) Canvases didn't set the scrolling values correctly
-when no scroll region was specified.
+10/2/95 (bug fix) Safe interpreters no longer get initialized with
+a call to Tcl_Init(). (JL)
-7/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any
-old grab that might have been in effect before a menu or dialog was
-posted.
+10/1/95 (new feature) Added "tcl_platform" global variable to provide
+environment information such as the instruction set and operating
+system. (JO)
------------------ Released patch 4.0p1, 7/29/95 ----------------------
+10/1/95 (bug fix) "exec" command wasn't always generating the
+"child process exited abnormally" message when it should have. (JO)
-8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR
-macro, so they didn't always work in non-U.S. locales. (JO)
+10/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates
+won't create links that overwrite original manual entries (there was
+a problem where pack-old.n was overwriting pack.n). (JO)
-8/14/95 (new feature) Added -tearoffcommand option for menus.
+10/2/95 (feature change) Changed to use -ldl for dynamic loading under
+Linux if it is available, but fall back to -ldld if it isn't. (JO)
-8/16/95 (bug fix) Canvases didn't generate proper Enter and Leave
-events if the Leave handler for an item reconfigured the canvas in
-a way that made the old current item the new current item again. (JO)
+10/2/95 (bug fix) File sharing was causing refcounts to reach 0
+prematurely for stdin, stdout and stderr, under some circumstances. (JL)
-8/21/95 (bug fix/feature change) When -takefocus was a script, Tk
-was allowing window viewability to override it. Changed so that
-viewability is now ignored when -takefocus is a script. (JO)
+10/2/95 (platform support) Added support for Visual C++ compiler on
+Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL)
-8/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and
-tkUnixWm.c (JO).
+10/3/95 (bug fix) Tcl now frees any libraries that it loads before it
+exits. (SS)
-8/21/95 (bug fix) Text widgets didn't handle commands like
-".t search -backwards foo end 1.0" properly: never found foo. (JO)
+10/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l
+and -C options would fail in anything but the HOME directory. (RJ)
-8/23/95 (new feature) Added Makefile and configure.in support for
-dynamic loading. (JO)
+----------------- Released 7.5a2, 10/6/95 -----------------------
-8/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely
-be renamed, due to a kludgy way that they shared a single command
-procedure. Split into separate procedures. (JO)
+10/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead
+of "/". (JO)
-8/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab
-window not visible" errors for popup menus (and perhaps elsewhere?). (JO)
+10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
+the tcl.def file from Borland object files. (SS)
+
+10/17/95 (new features) Moved the event loop from Tcl to Tk, made major
+revisions along the way:
+ - New Tcl commands: after, update, vwait (replaces "tkwait variable").
+ - "tkerror" is now replaced with "bgerror".
+ - The following procedures are similar to their old Tk counterparts:
+ Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall,
+ Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler,
+ Tcl_DeleteTimerHandler, Tcl_BackgroundError.
+ - Revised notifier, add new concept of "event source" with the following
+ procedures: Tcl_CreateEventSource, Tcl_DeleteEventSource,
+ Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent,
+ Tcl_WaitForEvent. (JO)
+
+10/31/95 (new features) Implemented cross platform file name support to make
+it easier to write cross platform scripts. Tcl now understands 4 file naming
+conventions: Windows (both DOS and UNC), Mac, Unix, and Network. The network
+convention is a new naming mechanism that can be used to paths in a platform
+independent fashion. See the "file" command manual page for more details.
+The primary interfaces changes are:
+ - All Tcl commands that expect a file name now accept both network and
+ native form.
+ - Two new "file" subcommands, "nativename" and "networkname", provide a
+ way to convert between network and native form.
+ - Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that
+ it always returns a filename in native form. Tcl_TildeSubst is defined
+ as a macro for backward compatibility, but it is deprecated. (SS)
+
+11/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that
+either name can be used to manipulate the command (provides temporary
+backward compatibility for existing scripts that use tkerror). (JO)
+
+11/5/95 (new feature) Added exit handlers and new C procedures
+Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO)
+
+11/6/95 (new feature) Added pid command for Macintosh version of
+Tcl (it didn't previously exist on the Mac). (RJ)
+
+11/7/95 (new feature) New generic IO facility and support for IO to
+files, pipes and sockets based on a common buffering scheme. Support
+for asynchronous (non-blocking) IO and for event driver IO. Support
+for automatic (background) asynchronous flushing and asynchronous
+closing of channels. (JL)
+
+11/7/95 (new feature) Added new commands "fconfigure" and "fblocked"
+to support new I/O features such as nonblocking I/O. Added "socket"
+command for creating TCP client and server sockets. (JL).
+
+11/7/95 (new feature) Complete set of C APIs to the new generic IO
+facility:
+ - Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel,
+ Tcl_OpenTcpClient, Tcl_OpenTcpServer.
+ - I/O procedures on channels, which roughly mirror the ANSI C stdio
+ library: Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek,
+ Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption,
+ Tcl_SetChannelOption.
+ - Extension mechanism for creating new kinds of channels:
+ Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType,
+ Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel,
+ Tcl_UnregisterChannel, Tcl_GetChannel.
+ - Event-driven I/O on channels: Tcl_CreateChannelHandler,
+ Tcl_DeleteChannelHandler. (JL)
+
+11/7/95 (new feature) Channel driver interface specification to allow
+new types of channels to be added easily to Tcl. Currently being used
+in three drivers - for files, pipes and TCP-based sockets. (JL).
+
+11/7/95 (new feature) interp delete now takes any number of path
+names of interpreters to delete, including zero. (JL).
+
+11/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName
+command to get host name of machine on which the Tcl process is running. (JL)
+
+11/9/95 (new feature) Implemented file APIs for access to low level files
+on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile,
+Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits
+in a system dependent manner for a child process. (JL)
+
+11/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a
+Tcl variable to be updated after its C variable changes. (JO)
+
+11/9/95 (bug fix) The glob command has been totally reimplemented so
+that it can support different file name conventions. It now handles
+Windows file names (both UNC and drive-relative) properly. It also
+supports nested braces correctly now. (SS)
+
+11/13/95 (bug fix) Fixed Makefile.in so that configure can be run
+from a clean directory separate from the Tcl source tree, and compilations
+can be performed there. (JO)
+
+11/14/95 (bug fix) Fixed file sharing between interpreters and file
+transferring between interpreters to correctly manage the refcount so that
+files are closed when the last reference to them is discarded. (JL)
+
+11/14/95 (bug fix) Fixed gettimeofday implementation for the
+Macintosh. This fixes several timing related bugs. (RJ)
+
+11/17/95 (new feature) Added missing support for info nameofexecutable
+on the Macintosh. (RJ)
+
+11/17/95 (bug fix) The Tcl variables argc argv and argv0 now return
+something reasonable on the Mac. (RJ)
+
+11/22/95 (new feature) Implemented "auto-detect" mode for end of line
+translations. On input, standalone "\r" mean MAC mode, standalone "\n"
+mean Unix mode and "\r\n" means Windows mode. On output, the mode is
+modified to whatever the platform specific mode for that platform is. (JL)
+
+11/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh,
+which is more complete and uses slightly different names. Also
+arranged for tclConfig.sh to be installed in the platform-specific
+library directory instead of Tcl's script library directory. (JO)
+*** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 ***
-8/25/95 (bug fix / new feature) The "gray25" bitmap was really only
-12.5% on, not 25%. Added new "gray12" bitmap that is the same as the
-old "gray25". "Gray25" is still supported for compatibility, but its
-use is deprecated. (JO)
+----------------- Released patch 7.4p3, 11/28/95 -----------------------
-8/25/95 (bug fix) Scrollbar bindings didn't properly handle case where
-B2 is clicked while B1 is already down. (JO)
+12/5/95 (new feature) Added Tcl_File facility to support platform-
+independent file handles. Changed all interfaces that used Unix-
+style integer fd's to use Tcl_File's instead. (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-8/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif
-was set, but not -activeforeground. Changed to ignore both. (JO)
+12/5/95 (new feature) Added a new "clock" command to Tcl. The command
+allows you to get the current "clicks" or seconds & allows you to
+format or scan human readable time/date strings. (RJ)
-8/26/95 (bug fix) Scales and scrollbars didn't properly handle a
--repeatdelay value of 0 (they shouldn't auto-repeat in this case). (JO)
+12/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree
+to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO)
-8/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when
-clicking on a disabled option menu. (JO)
+12/18/95 (new feature) Added new "package" command and associated
+procedures Tcl_PkgRequire and Tcl_PkgProvide. Also wrote
+pkg_mkIndex library procedure to create index files from binaries
+and scripts. (JO)
-8/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead
-of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO)
+12/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO)
-8/28/95 (bug fix) Fixed bug in photo images that caused garbling of
-image data in the "put" and "copy" commands if the source data had
-only one scan line but had a width less than the width of the target
-image. (JO)
+12/21/95 (new features) Made package name argument to "load" optional
+(Tcl will now attempt to guess the package name if necessary). Also
+added Tcl_StaticPackage and support in "load" for statically linked
+packages. (JO)
-8/29/95 (bug fix) Tk used to refuse to post menus if they had no
-entries. This made it impossible for a menu to fill itself the first
-time it is posted. Changed to allow menus with no entries to be
-posted. (JO)
+12/22/95 (new feature) Upgraded the foreach command to accept multiple
+loop variables and multiple value lists. This lets you iterate over
+multiple lists in parallel, and/or assign multiple loop variables from
+one value list during each iteration. The only potential compatibility
+problem is with scripts that used loop variables with a name that could be
+construed to be a list of variable names (i.e. contained spaces). (BW)
-8/30/95 (bug fix) If there was extra space at the bottom of a menu,
-it wasn't being redisplayed properly.
+1/5/96 (new feature) Changed tclsh so it builds as a console mode
+application under Windows. Now tclsh can be used from the command
+line with pipes or interactively. Note that this only works under
+Windows 95 or NT. (SS)
-8/30/95 (new feature) Added -transient option to menus.
+1/17/96 (new feature) Modified Makefile and configure script to allow
+Tcl to be compiled as a shared library: use the --enable-shared option
+when configuing. (JO)
-8/30/95 (new features) Added proper button 2 support to both scrollbars
-and scales (it sets the slider position from the mouse position). (JO)
+1/17/96 (removed obsolete features) Removed the procedures Tcl_EnterFile
+and Tcl_GetOpenFile: these no longer make sense with the new I/O system. (JL)
+*** POTENTIAL INCOMPATIBILITY ***
-8/30/95 (bug fix) Fixed potential core dump that could occur in
-photo images (ReadPPMFileHeader could overflow buffer under some bad
-inputs, such as certain GIF images). (JO)
+1/19/96 (bug fixes) Prevented formation of circular aliases, through the
+Tcl 'interp alias' command and through the 'rename' command, as well as
+through the C API Tcl_CreateAlias. (JL)
-8/30/95 (bug fix) Errors of the form `syntax error in expression "!"'
-could occasionally happen in tkScaleDrag. (JO)
+1/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters
+with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a
+patch received from Viktor Dukhovni of ESM. (JL)
-8/31/95 (new feature) Changed man page installation (with "mkLinks"
-script) to create additional links for manual pages corresponding to
-each of the procedure and command names described in the pages. (JO)
+1/19/96 (new feature) Implemented on-close handlers for channels; added
+the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL)
-9/1/95 (new feature) Added "after info" command. Also added checks
-so that one interpreter can't cancel another's "after" events. (JO)
+1/19/96 (new feature) Implemented portable error reporting mechanism; added
+the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL)
-9/8/95 (bug fix) Fixed bug that could cause memory corruption and core
-dumps if a "fileevent" handler was deleted while the handler was
-active. (JO)
+1/24/96 (bug fix) Unknown command processing properly invokes external
+commands under Windows NT and Windows '95 now. (SS)
-9/11/95 Reorganized Tk sources for Windows and Mac ports. All sources
-are now in subdirectories: "generic" contains sources that work on all
-platforms, "windows", "mac", and "unix" directories contain platform-
-specific sources. (SS)
-
-9/11/95 (new feature) Added new "notifier" mechanism to allow multiple
-implementations of the mechanisms for finding out about events. This
-change was necessary to support Mac and PC platforms, but it may also
-allow other goodies such as combining Xt and Tk widgets in a single
-application. See the new manual entry Notifier.3 for details. (SS)
-
-9/11/95 (feature change) Changed interface to Tk_RestrictProc so that
-(a) it takes a clientData argument instead of display and arg, and
-(b) it returns a value that can ask for the event to be discarded as well
-as deferred or processed. (SS)
-*** POTENTIAL INCOMPATIBILITY ***
+1/23/96 (bug fix) Eliminated extremely long startup times under Windows '95.
+The problem was a result of the option database initialization code that
+concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the
+file name. Under Windows '95, this is incorrectly interpreted as a UNC
+path. They delays came from the network timeouts needed to determine that
+the file name was invalid. Tcl_TranslateFileName now suppresses duplicate
+slashes that aren't at the beginning of the file name. (SS)
+
+1/25/96 (bug fix) Changed exec and open to create children so they are
+attached to the application's console if it exists. (SS)
-9/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent
-to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS)
+1/31/96 (bug fix) Fixed command line parsing to handle embedded
+spaces under Windows. (SS)
-9/11/95 (feature change) Can't export variables anymore because this doesn't
-work under Windows DLLs. Eliminated tk_NumMainWindows variable and replaced
-with procedure Tk_GetNumMainWindows. (SS)
-*** POTENTIAL INCOMPATIBILITY ***
+----------------- Released 7.5b1, 2/1/96 -----------------------
-9/11/95 (new feature) Added procedure Tk_PreserveColormap to increment
-the reference count on colormaps. Used in photo widgets. (SS)
+2/7/96 (bug fix) Fixed off by one error in argument parsing code under
+Windows. (SS)
------------------ Released patch 4.0p2, 9/15/95 ----------------------
+2/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly
+initialized the tcl75.dll. Fixed bugs in Borland makefile that caused
+build failures under Windows NT. (SS)
------------------ Released 4.1a1, 9/15/95 ----------------------
+2/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation
+mode which would cause a socket server with several concurrent clients
+writing in CRLF mode to hang. (JL)
-9/22/95 (renamed files) Changed the names of the bitmap images in the
-$tk_library/demos/images directory to use the .bmap file extension. (RJ)
+2/9/96 (API change) Replaced -linemode option to fconfigure with a
+new -buffering option, added "none" setting to enable immediate write. (JL)
+*** INCOMPATIBILITY with b1 ***
-9/22/95 (bug fix) Fixed bug where text widgets could occasionally
-display the insertion cursor both at the end of one line and the
-beginning of the next. (JO)
+2/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count
+of bytes currently buffered in the input buffer of a channel, and o for
+output only channels. (JL)
-9/25/95 (bug fix) Fixed bug that could cause core dumps when an
-application uses multiple screens and a binding destroys the main
-window (bind code was using MainInfo structure after it had been
-freed). (JO)
+2/9/96 (new feature) Implemented asynchronous connect for sockets. (JL)
-9/25/95 (bug fix) Text widgets sometimes scrolled backwards on
-occasion if you dragged down past the bottom of the scrollbar. (JO)
+2/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per
+channel) the default end of line translation mode. This is the mode that
+will be installed if an output operation is done on the channel while it is
+still in AUTO mode. (JL)
-9/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted
-from a torn-off menu could be left posted if mouse was pulled off the
-end of the cascade and released. (JO)
+2/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly
+handle all of the combinations of stdio inheritance in background
+pipelines. See the Tcl_OpenFileChannel(3) man page for more
+info. This change fixes the bug where exec of a background pipeline
+was not getting passed the stdio handles properly. (SS)
-9/25/95 (new feature) Added "--" switch to wish, so that you can
-pass arguments like -n through to a script without having wish
-interpret them. (JO)
+2/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and
+restored the old version for Unix platforms only. All new code should
+use Tcl_CreateCommandChannel instead. (SS)
-9/25/95 (bug fix) Fixed core dump that could occur for radiobuttons
-and selectbuttons if -selectcolor was an empty string. (JO)
+2/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl
+library so that shared libraries are more likely to be found correctly
+on more platforms. (JO)
-9/26/95 (bug fix) Entries didn't used to notice if a trace procedure
-on the -textvariable overrode a new value set by the entry. This
-could cause the variable to get out of sync with the contents of the
-entry. (JO)
+2/13/96 (new feature) Added C API Tcl_SetNotifierData and
+Tcl_GetNotifierData to allow notifier and channel driver writers to
+associate data with a Tcl_File. The result of this change is that
+Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile
+can be used to construct a Tcl_File for an externally constructed OS
+handle. (SS)
-9/26/95 (new feature) Added -sliderrelief option to scales, changed
-default bindings to change the slider's relief to sunken while it's
-being dragged with the mouse. (JO)
+2/13/96 (bug fix) Changed Windows socket implementation so it doesn't
+set SO_REUSEADDR on server sockets. Now attempts to create a server
+socket on a port that is already in use will be properly identified
+and an error will be generated. (SS)
-9/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly;
-could result in X Protocol error for QueryColors when colormaps run
-out of colors. (JO)
+2/13/96 (bug fix) Fixed problems with DLL initialization under Visual
+C++ that left the C run time library uninitialized. (SS)
-9/26/95 (bug fix) Wish couldn't handle script files with spaces in
-their names. (JO)
+2/13/96 (bug fix) Fixed Windows socket initialization so it loads
+winsock the first time it is used, rather than at the time tcl75.dll
+is loaded. This should fix the bug where the modem immediately starts
+trying to connect to a service provider when wish or tclsh are
+started. (SS)
-9/27/95 (cosmetic clean-up) Removed extraneous spaces to make error
-messages consistent: ": should be" is now ": should be". (JO)
+2/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and
+Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into
+channels. Provided implementations on Unix and Windows. (JL)
-9/27/95 (feature change) Modified tk_dialog so that it uses the
-option database for the -wraplength option on the message. This
-allows the option to be overridden by the caller. (JO)
+2/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL)
-9/28/95 (bug fix) Wish incorrectly parsed the command line under
-Windows, causing backslashes to be substituted. (SS)
+2/14/96 (bug fix) Fixed reentrancy problem in fileevent handling
+and made it more robust in the face of errors. (JL)
-9/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS)
+2/14/96 (feature change) Made generic IO level emulate blocking mode if the
+channel driver is unable to provide it, e.g. if the low level device is
+always nonblocking. Thus, now blocking behavior is an advisory setting for
+channel drivers and can be ignored safely if the channel driver is unable
+to provide it. (JL)
-9/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances
-when it was possible to find more work to do. For example, if a
-signal interrupted select(), but no event handlers were triggered, it
-would return 0 even though it could still detect events by reentering
-select(). (SS)
+2/15/96 (new feature) Added "binary" end of line translation mode, which is
+a synonym of "lf" mode. (JL)
-9/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS)
+2/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs
+deletion of channel event handlers. (JL)
-10/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of
-Tk_IdlePending. (SS)
+2/15/96 (bug fix) Fixed bug in event handling which would cause a
+nonblocking channel to not see further readable events after the first
+readable event that had insufficient input. (JL)
-10/1/95 (bug fix) Turned motion event collapsing into an idle handler
-so it will be easier to move the event loop into Tcl. (SS)
+2/17/96 (bug fix) "info complete" didn't properly handle comments
+in nested commands. (JO)
-10/1/95 (bug fix) Fixed several problems with negative coordinates
-in canvases. One example: dragging a canvas rectangle with a wide
-border and fractional coordinates could leave junk on the screen
-if the rectangle was in negative coordinate space. (JO)
+2/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle
+very long command lines (>200 chars). (SS)
-10/2/95 (bug fix) Tk was improperly handling Enter/Leave events
-during a button grab. (SS)
+2/21/96 (bug fix) Sockets could get into an infinite loop if a read
+event arrived after all of the available data had been read. (SS)
-10/2/95 (new feature) Added support for the Macintosh do script
-('dosc') event. Available only on the Macintosh. (RJ)
+2/22/96 (bug fix) Added cast of st_size elements to (long) before
+sprintf-ing in "file size" command. This is needed to handle systems
+like NetBSD with 64-bit file offsets. (JO)
-10/4/95 (new feature) Added support for compiling with VC++.
-Resulting binaries work under Win32s through NT.
+----------------- Released 7.5b2, 2/23/96 -----------------------
------------------ Released 4.1a2, 10/6/95 ----------------------
+2/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly
+when compiling with C++. (JO)
-10/10/95 (new feature) Macintosh Tk now supports the complete set
-of X cursors that Unix Tk supports. (RJ)
+2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
+this caused problems on some platforms (like Linux?). (JO)
-10/11/95 (bug fix) Tk now supports all of the X11 cursors under
-Windows. (SS)
+2/24/96 (bug fix) Fixed configuration bug that made Tcl not compile
+correctly on Linux machines with neither -ldl or -ldld. (JO)
-10/11/95 (bug fix) The "wm resizable" command was missing from the
-Windows version of Tk. (SS)
+2/24/96 (new feature) Added a block of comments and definitions to
+Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace
+the library procedures setenv etc, so that calls to setenv etc. in
+the application automatically update the Tcl "env" variable. (JO)
-10/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel
-windows that children of any frame other than another toplevel. (RJ)
+2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL)
+to C API Tcl_Close and simplified closing of command channels. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
-10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
-the tk.def file from Borland object files. (SS)
-
-10/16/95 (bug fix) Fixed clipping and update problems relating to
-the raising and lowering of overlapping windows on Mac. (RJ)
-
-10/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse),
-was focussing on windows even in situations where keyboard traversal would
-skip the window. Changed to use the tkFocusOK procedure so that the
-criteria for focussing are the same in both modes. (JO)
-
-11/2/95 (bug fix) Changed listbox bindings to ignore double-clicks.
-This avoids errors that used to occur if a user defined a binding
-for double-click that deleted the listbox. (JO)
-
-11/3/95 (feature change) Moved most of the Tk event loop to Tcl. Many
-Tk_ names have become Tcl names now:
-
-TK_READABLE => TCL_READABLE
-TK_WRITABLE => TCL_WRITABLE
-TK_EXCEPTION => TCL_EXCEPTION
-TK_DONT_WAIT => TCL_DONT_WAIT
-TK_WINDOW_EVENTS => TCL_WINDOW_EVENTS
-TK_FILE_EVENTS => TCL_FILE_EVENTS
-TK_TIMER_EVENTS => TCL_TIMER_EVENTS
-TK_IDLE_EVENTS => TCL_IDLE_EVENTS
-TK_ALL_EVENTS => TCL_ALL_EVENTS
-Tk_IdleProc => Tcl_IdleProc
-Tk_FileProc => Tcl_FileProc
-Tk_TimerProc => Tcl_TimerProc
-Tk_TimerToken => Tcl_TimerToken
-Tk_BackgroundError => Tcl_BackgroundError
-Tk_CancelIdleCall => Tcl_CancelIdleCall
-Tk_CreateFileHandler => Tcl_CreateFileHandler
-Tk_CreateTimerHandler =>Tcl_CreateTimerHandler
-Tk_DeleteFileHandler => Tcl_DeleteFileHandler
-Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler
-Tk_DoOneEvent => Tcl_DoOneEvent
-Tk_DoWhenIdle => Tcl_DoWhenIdle
-Tk_Sleep => Tcl_Sleep
-tkerror => bgerror
-
-Other than the name changes, the functions are the same. In addition,
-there are #defines in tk.h so that the old Tk names will still work.
-tkerror and bgerror are specially hacked as synonyms, so it should be
-safe to use either one. You should switch to the new Tcl names ASAP,
-though, since the old Tk names will eventually be desupported. (JO)
-
-11/7/95 (features removed) As part of moving the event loop to Tcl,
-the following procedures were deleted:
- - Tk_EventInit (the presence of the event loop in Tcl should
- make this unneccessary).
- - Tk_CreatFileHandler2 (you can get the same effect by using event
- sources in Tcl, but you have to modify your code to use the new
- Tcl APIs).
- - All of the stuff in the manual entries Notifer.3 and QueueEvent.3;
- this has changed because the notifier got reworked when it was
- moved to Tcl.
-*** POTENTIAL INCOMPATIBILITY ***
+2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL)
+to C type definition Tcl_DriverCloseProc; modified all channel drivers to
+implement close procedures that accept the additional argument. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
-11/7/95 (feature change) Changed to use exit handler to cleanup windows
-in Tk, so Tk no longer needs to have a private copy of the "exit" command.
-(JO)
+2/28/96 (bug fix) Fixed memory leak that could occur if an upvar
+referred to an element of an array in the same stack frame as the
+upvar. (JO)
-11/7/95 (bug fix) If wish was invoked with a command-line geometry and
-a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of
-the windows created by the script used the -setgrid option, then the
-width and height from the command line were lost. (JO)
+2/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent
+so that they return immediately in cases where they would otherwise
+block forever (e.g. if there are no event handlers of any sort). (JO)
-11/8/95 (bug fix) The "see" command didn't work quite right for texts:
-if the window was small and you try to "see" a line just offscreen,
-Tk centered the line (actually, mis-centered it) when it should have
-aligned it at the top or bottom. (JO)
+2/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and
+Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for
+buffers allocated to store input or output in a channel. (JL)
-11/9/95 (bug fix) The "send" command crashed if you tried to send to
-a different display with "-displayof". (JO)
+2/29/96 (new feature) Added option -buffersize to Tcl fconfigure command
+to allow Tcl scripts to query and set the size of channel buffers. (JL)
-11/9/95 (bug fix) The Symbol font didn't print right in Postscript
-output, because of changes made to re-encode fonts to get proper
-ISO Latin1 behavior. Changed the code not to re-encode the Symbol
-font. (JO)
+2/29/96 (feature removed) Removed channel driver function to specify
+the buffer size to use when allocating a buffer. Removed the C typedef
+for Tcl_DriverBufferSizeProc. Channels are now created with a default
+buffer size of 4K. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
-11/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that
-configure can be run from a clean directory separate from the Tcl source
-tree, and compilations can be performed there. (JO)
+2/29/96 (feature change) The channel driver function for setting blocking
+mode on the device may now be NULL. If the generic code detects that the
+function is NULL, operations that set the blocking mode on the channel
+simply succeed. (JL)
-11/17/95 (bug fix) If a window was gridded, Tk still computed the
-default maximum dimensions in pixel units, which resulted in windows
-that could grow much larger than the screen. (JO)
+3/2/96 (bug fix) Fixed core dump that could occur if a syntax error
+(such as missing close paren) occurred in an array reference with a
+very long array name. (JO)
-11/17/95 (bug fix) If a menus entries were all disabled, posting
-the menu and typing Up or Down caused an infinite loop, locking
-up the screen (JO).
+3/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes
+all existing auto-load information whenever the "auto_path" variable
+is changed. Instead, new information adds to what was already there.
+Otherwise, changing the "auto_path" variable causes all package-
+related information to be lost. If you really want to get rid of
+existing auto-load information, use auto_reset before setting auto_path. (JO)
-11/19/95 (bug fix) The focus wasn't being restored properly after a
-menu selection in a cascaded menu. (JO)
+3/5/96 (new feature) Added version suffix to shared library names so that
+Tcl will compile under NetBSD and FreeBSD (I hope). (JO)
-11/19/95 (bug fix) Menubutton's didn't stipple display their images
-differently when disabled. Change to have the same behavior as buttons:
-the image is stippled over in the background color when the menubutton
-is disabled. (JO)
+3/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond
+more closely to old I/O system. (JO)
-11/21/95 (bug fix) Changes in display attributes such as font could
-cause core dumps in the text widget under some circumstances involving
-line wrapping. (JO)
+3/6/96 (new feature) Added -myaddr and -myport options to the socket
+command, removed -tcp and -- options. This lets clients and servers
+choose a particular interface. Also changed the default server address
+from the hostname to INADDR_ANY. The server accept callback now gets
+passed the client's port as well as IP address. The C interfaces for
+Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the
+above changes. (BW)
+*** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
-11/22/95 (bug fix/new feature) Changed both the placer and the packer
-to ensure that slaves are unmapped whenever the master is unmapped.
-This saves time that slaves might otherwise spend trying to redisplay
-themselves when they're unmapped. (JO)
+3/6/96 (changed feature) The library function auto_mkindex will now
+default to using the pattern "*.tcl" if no pattern is given. (RJ)
-11/22/95 (bug fix) Space and return keys didn't work for menus if
-they were posted via Alt-x keystrokes. (JO)
+3/6/96 (bug fix) The socket channel code for the Macintosh has been
+rewritten to use native MacTcp. (RJ)
-11/24/95 (bug fix) tk_dialog procedure had binding for <Return> that
-always activated default binding, even if input focus was in some
-other binding. Removed this feature, since existing focus support
-will already "do the right thing". (JO)
+3/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel
+interfaces to allow applications to explicitly set and get the global
+standard channels. (SS)
-11/24/95 (bug fix) Both canvases and texts could dump core if a binding
-(such as ButtonRelease on an internal item) deleted the widget. (JO)
+3/7/96 (bug fix) Tcl did close not the file descriptors associated
+with "stdout", etc. when the corresponding channels were closed. (SS)
-11/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh,
-which is more complete and uses slightly different names. Also
-arranged for tkConfig.sh to be installed in the platform-specific
-library directory. (JO)
-
-11/24/95 (bug fix) It was possible for a slave to be placed or packed
--in itself, with unpleasant consequences. It is now an error for the
-slave to be its own master for geometry management. (JO)
-
-11/25/95 (bug fix) The -command option of scales was sometimes being
-invoked spuriously (e.g. when the mouse moved in the scale without a
-button down). This was because the scale wasn't rounding properly
-when setting the scale value from its associated variable. (JO)
-
------------------ Released patch 4.0p3, 11/28/95 ----------------------
-
-12/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and
-Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc. Added #defines
-to tk.h so that the old names still work. (JO)
-
-12/23/95 (bug fix) If a single process had > 1 Tk application, Tk
-didn't guarantee that the application names were unique, which could
-cause all sorts of confusion with "send". (JO)
-
-12/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved
-all of its functionality to Tk_Init. All that you need to do now
-to get Tk in an application is to call Tk_Init. Improved Tk_Init
-so that -colormap and -visual command-line arguments are now passed
-through to TkCreateFrame. Tk_Main is much simpler now, since a lot
-of its functionality has moved to Tk_Init. (JO)
-*** POTENTIAL INCOMPATIBILITY ***
+3/7/96 (bug fix) Reworked shared library and dynamic loading stuff to
+try to get it working under AIX. Added new @SHLIB_LD_LIBS@ autoconf
+symbol as part of this. AIX probably doesn't work yet, but it should
+be a lot closer. (JO)
-12/23/95 (new feature) Added support for Tcl_StaticPackage so
-that Tk can now be loaded into slave interpreters with the "load"
-command to create new applications. (JO)
+3/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the
+signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take
+Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change
+should not affect any code outside Tcl because the signatures of
+Tcl_ChannelProc and Tcl_FileProc are compatible. (JL)
-12/23/95 (new features) Added support for -colormap and -visual command-
-line options for wish. (JO)
+3/7/96 (API change) Modified signature of Tcl_GetChannelOption to return
+an int instead of char *, and to take a Tcl_DString * argument. Modified
+the implementation so that the option name can be NULL, to mean that the
+call should retrieve a list of alternating option names and values. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
-1/4/95 (bug fix) Fixed keyboard code to properly handle alt-key
-sequences for international keyboards and menu-accelerators. (SS)
+3/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc
+typedefs, added two slots setOptionProc and getOptionProc to the channel
+type structure. These may be NULL to indicate that the channel type does
+not support any options. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 ***
-1/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses
-to tkPriv(relief) during control-clicks. (JO)
+3/7/96 (feature change) stdin, stdout and stderr can now be put into
+nonblocking mode. (JL)
-1/9/96 (new feature) added the "grid" command to provide a table based
-geometry manager. (SU)
+3/8/96 (feature change) Eliminated dependence on the registry for
+finding the Tcl library files. (SS)
-1/12/96 (performance optimization) Changed the way tag information is kept
-in the text's Btree so the cost of adding and removing tag ranges is no longer
-proportional to the number of unique tags in the text. In the old system
-the cost of adding N unique tags was O(N-squared). The new implementation is
-optimized for tags that only cover a small amount of text, measuring from
-their earliest tag range to the end of their last range. In the best case the
-cost of adding a tag range is unrelated to the number of unique tags, so the
-cost of adding N tags is only O(N). In the worst case, where all tags
-cover all the text, the cost is still O(N-squared) to add N such tags.
-Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared),
-but it is now a factor of 2 faster than the old system. (BW)
+----------------- Released 7.5b3, 3/8/96 -----------------------
-1/12/96 (new feature) added the text "dump" operation that returns information
-about all elements in a text widget: text, tags, marks, and windows. (BW)
+3/12/96 (feature improvement) Modified startup script to look in several
+different places for the Tcl library directory. This should allow Tcl
+to find the libraries under all but the weirdest conditions, even without
+the TCL_LIBRARY environment variable being set. (JO)
-1/12/96 (new feature) added the text "mark next" and "mark previous" operations
-to search forward and backwards for the next (previous) mark in the text. (BW)
+3/13/96 (bug fix) Eliminated use of the "linger" option from the Windows
+socket implementation. (JL)
-1/12/96 (new feature) added the text "tag prevrange" operation to search
-backwards for the current or previous range of a tag. (BW)
+3/13/96 (new feature) Added -peername and -sockname options for fconfigure
+for socket channels. Code contributed by John Haxby of HP. (JL)
-1/16/96 (new feature) Added support for relative widget placement on
-the "grid" command. (SU)
+3/13/96 (bug fix) Fixed panic and core dump that would occur if the accept
+callback script on a server socket encountered an error. (JL)
-1/17/96 (new feature) Modified the Makefile/configure setup to support
-compiling Tk as a shared library. Use the --enable-shared option to
-the "configure" script. (JO)
+3/13/96 (feature change) Added -async option to the Tcl socket command.
+If the command is creating a client socket and the flag is present, the
+client is connected asynchronously. If the option is absent (the default),
+the client socket is connected synchronously, and the command returns only
+when the connection has been completed or failed. This change was suggested
+by Mark Diekhans. (JL)
------------------ Released 4.1b1, 1/26/96 -----------------------
+3/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to
+take an additional int argument, async. If nonzero, the client is connected
+to the server asynchronously. If the value is zero, the connection is made
+synchronously, and the call to Tcl_OpenTcpClient returns only when the
+connection fails or succeeds. This change was suggested by Mark Diekhans. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
-2/2/96 (bug fix) Frames were getting a default size of 200x200, whereas
-there should be no default. (JO)
+3/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO)
-2/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed
-the arguments it understood from those on the command line. (JO)
+3/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries
+and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't
+(however, the converse is still not true). Patches provided by Jan
+Nijtmans. (JO)
-2/6/96 (bug fix) Fixed off by one error in argument parsing code under
-Windows. (SS)
+3/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec
+to fix bug in Ultrix where exec was not sharing standard IO handles with
+subprocesses. Fix suggested by Mark Diekhans. (JL)
-2/6/96 (bug fix) "wm transient" now works under Windows. The resulting
-toplevel is created with a modal dialog box frame and will not appear
-in the taskbar under Windows '95. (SS)
+3/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the
+channel instead of leaking system resources. The manifestation was that Tcl
+would eventually run out of file descriptors if it was handling a large
+number of nonblocking sockets or pipes with high congestion. (JL)
-2/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk
-libraries so that shared libraries are more likely to be found correctly
-on more platforms. (JO)
+3/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors.
+The manifestation was that Tcl would eventually run out of file descriptors
+if the tests were rerun many times (> a hundred times on Solaris). (JL)
-2/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because
-it can't be exported safely across DLL boundaries. Instead, exported
-Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for
-use by canvas type managers in creating their own custom options. (JO)
-*** POTENTIAL INCOMPATIBILITY ***
+3/15/96 (bug fix) Fixed channel creation code so that it never creates
+unnamed channels. This would cause a panic and core dump when the channel
+was closed. (JL)
-2/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window
-crashed wish. (SS)
+3/16/96 (bug fixes) Made lots of changes in configuration stuff to get
+Tcl working under AIX (finally). Tcl should now support the "load"
+command under AIX and should work either with or without shared
+libraries for Tcl and Tk. (JO)
-2/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS)
+3/21/96 (configuration improvement) Changed configure script so it
+doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under
+SunOS 4.1, where they don't work anyway. (JO)
-2/14/96 (bug fix) Cursors were not being updated until an enter event.
-In cases where the cursor left the toplevel and reentered before Tk
-noticed, the cursor would get "stuck" until the next enter event.
-Similarly, if the cursor attribute of a window was updated while the
-mouse was in the window, the cursor would not change until the next
-time the mouse entered the window. (SS)
+3/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension
+writers to discover when an interpreter is being deleted. (JL)
+
+3/22/96 (bug fix) The standard IO channels are now added to each
+trusted interpreter as soon as the interpreter is created. This ensures
+against the bug where a child would do IO before the master had done any,
+and then the child is destroyed - the standard IO channels would be then
+closed and the master would be unable to do any IO. (JL)
+
+3/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by
+using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process
+of interpreter deletion into two distinct phases. Also went through all of
+Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL)
+
+3/22/96 (bug fix) Fixed several places where C code was reading and writing
+into freed memory, especially during interpreter deletion. (JL)
+
+3/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to
+be freed twice if the release callback did Tcl_Preserve and Tcl_Release on
+the same memory as the chunk currently being freed. (JL)
+
+3/22/96 (bug fix) Removed several memory leaks that would cause memory
+buildup on half-K chunks in the generic IO level. (JL)
+
+3/22/96 (bug fix) Fixed several core dumps which occurred when new
+AssocData was being created during the cleanups in interpreter deletion.
+The solution implemented now is to loop repeatedly over the AssocData until
+none is left to clean up. (JL)
+
+3/22/96 (bug fix) Fixed a bug in event handling which caused an infinite
+loop if there were no files being watched and no timer. Fix suggested by
+Jan Nijtmans. (JL)
+
+3/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more
+robust if the interpreter is being deleted. Also fixed several order
+dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter
+was being deleted. (JL)
+
+3/26/96 (bug fix) Upon a "short read", the generic code no longer calls
+the driver for more input. Doing this caused blocking on some platforms
+even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL)
+
+3/26/96 (new feature) Added 'package Tcltest' which is present only in
+test versions of Tcl; this allows the testing commands to be loaded into
+new interpreters besides the main one. (JL)
+
+3/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can
+now get a FILE * from a registered channel; Unix only. (JL)
+
+3/27/96 (bug fix) The regular expression code did not support more
+than 9 subexpressions. It now supports up to 20. (SS)
+
+4/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short
+read, so that fileevents wouldn't fire correctly. Bug reported by Mark
+Roseman.(JL, RJ)
+
+4/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in
+tclInterp.c; previously interpreters were being freed only conditionally
+and sometimes not at all. (JL)
+
+4/1/96 (bug fix) Fixed error reporting in slave interpreters when the
+error message was being generated directly by C code. Fix suggested by
+Viktor Dukhovni of ESM. (JL)
+
+4/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused
+events to variously get lost, to get sent multiple times, or to be ignored
+by the driver. The manifestation was blocking if the channel is blocking,
+and either getting EAGAIN or infinite loops if the channel is nonblocking.
+This series of bugs was found by Ian Wallis of Cisco. Now all tests (also
+those that were previously commented out) in socket.test pass. (JL, SS)
+
+4/2/96 (feature change/bug fix) Eliminated network name support in
+favor of better native name support. Added "file split", "file join",
+and "file pathtype" commands. See the "file" man page for more
+details. (SS)
+*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
+
+4/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex
+files will properly handle path names in a cross platform context. (SS)
+
+4/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the
+chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the
+user can set the channel buffer size to a large size and the read will
+occur orders of magnitude faster. For example, on a 2MB file, reading in 4K
+chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a
+SS-20). Problem identified and fix suggested by John Haxby of HP. (JL)
+
+4/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if
+inet_addr failed (very unlikely). Before this change the order was reversed
+and this made things much slower than they needed to be (gethostbyname
+generally requires an RPC, which is slow). Problem identified and fix
+suggested by John Loverso of OSF. (JL)
+
+4/9/96 (feature change) Modified "auto" translation mode so that it
+recognizes any of "\n", "\r" and "\r\n" in input as end of line, so
+that a file can have mixed end-of-line sequences. It now outputs
+the platform specific end of line sequence on each platform for files and
+pipes, and for sockets it produces crlf in output on all platforms. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
+
+4/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow
+setting of an end of file character for input and output. If an input eof
+char is set, it is recognized as EOF and further input from the channel is
+not presented to the caller. If an output eof char is set, on output, that
+byte is appended to the channel when it is closed. On Unix and Macintosh,
+all channels start with no eof char set for input or output. On Windows,
+files and pipes start with input and output eof chars set to Crlt-Z (ascii
+26), and sockets start with no input or output eof char. (JL)
+*** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 ***
+
+4/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split
+across buffer boundaries in input, in AUTO mode. (JL, BW)
+
+4/17/96 (test suite improvement) Fixed test suite so that tests that
+depend on the availability of Unix commands such as echo, cat and others
+are not run if these commands are not present. (JL)
+
+4/17/96 (test suite improvement) The socket test now automatically starts,
+on platformst that support exec, a separate process for remote testsing. (JL)
+
+----------------- Released 7.5, 4/21/96 -----------------------
+
+5/1/96 (bug fix) "file tail ~" did not correctly return the tail
+portion of the user's home directory. (SS)
+
+5/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment
+variables correctly: could confuse "H" and "HOME", for example. (JO)
+
+5/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries",
+not "make install-libraries". (JO)
+
+5/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless
+it has the standard shared library extension. On SunOS, attempts to load
+Tcl scripts cause the whole application to be aborted (there's no way to
+get the error back into Tcl). (JO)
+
+5/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to
+avoid potential core dumps. (JO)
-2/15/96 (bug fix) If a top-level was resizable in one direction
-(e.g. "wm resizable . 0 1"), once the user resized it any changes
-in the internally requested size (by the widgets) were ignored,
-even for the non-resizable dimension. Fixed to handle the two
-dimensions totally independently, so the widget's requests are
-honored as long as that dimension hasn't been set by the user. (JO)
+5/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl,
+such as pkg_mkIndex. (JO)
+
+5/7/96 (bug fix) Fixed cast on socket address resolution code that
+would cause a failure to connect on Dec Alphas. (JL)
+
+5/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of
+commands available in a safe interpreter. (JL)
+
+5/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr
+from being implicitly closed when the last reference to the standard
+channel containing that handle is discarded when an interpreter is deleted.
+Explicitly closing standard channels by using "close" still works. (JL)
+
+5/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on
+Unix if the devices are closed. This prevents a duplicate channel name
+panic later on when the fd is used to open a channel and the channel is
+registered in an interpreter. (JL)
+
+5/23/96 (bug fix) Fixed bug that prevented the use of standard channels in
+interpreters created after the last interpreter was destroyed. In the sequence
+
+ interp = Tcl_CreateInterp();
+ Tcl_DeleteInterp(interp);
+ interp = Tcl_CreateInterp();
+
+channels for stdio would not be available in the second interpreter. (JL)
+
+5/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new
+channels with Tcl_Files in them that are already used by another channel.
+This would cause core dumps when the Tcl_Files were being freed twice. (JL)
+
+5/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel
+to be removed from the standard channel table too early when the channel
+was being closed. If the channel was being flushed asynchronously, it could
+get recreated before being actually destroyed, and the recreated channel
+would contain the same Tcl_File as the one being closed, leading to
+dangling pointers and core dumps. (JL)
+
+5/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to
+always return a list of one element, a list of the settings, for
+-translation and -eofchar options. Now correctly returns the value
+described by the documentation (Mark Diekhans found this, thanks!). (JL)
+
+5/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL)
+
+5/30/96 (bug fix) If a fileevent scripts gets an error, delete it before
+causing a background error. This is to allow the error handler to reinstall
+the fileevent and to prevent infinite loops if the event loop is reentered
+in the error handler. (JL)
+
+5/31/96 (bug fix) Channels now will get properly flushed on exit. (JL)
+
+6/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to
+Tcl_Alloc, Tcl_Free, and Tcl_Realloc. Added documentation for these
+routines now that they are officially supported. Extension writers
+should use these routines instead of free() and malloc(). (SS)
+
+6/10/96 (bug fix) Changes the Tcl close command so that it no longer
+waits on nonblocking pipes for the piped processes to exit; instead it
+reaps them in the background. (JL)
+
+6/11/96 (bug fix) Increased the length of the listen queue for server
+sockets on Unix from 5 to 100. Some OSes will disregard this and reset it
+to 5, but we should try to get as long a queue as we can, for performance
+reasons. (JL)
+
+6/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events
+if the fileevent script read less than was available. Now reading less than
+is available does not cause a flood of Tcl events. (JL, SS)
+
+6/11/96 (bug fix) Fixed bug in background flushing on closed channels that
+would prevent the last buffer from getting flushed. (JL)
+
+6/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if
+a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a
+Tcl socket. The problem was that the indirection table was not being
+initialized. (JL)
+
+6/13/96 (bug fix) Fixed OS level resource leak that would occur when a
+Tcl channel was still registered in some interpreter when the process
+exits. Previously the channel was not being closed and the OS level handles
+were not being released; the output was being flushed but the device was
+not being closed. Now the device is properly closed. This was only a
+problem on Win3.1 and MacOS. (JL, SS)
+
+6/28/96 (bug fix) Fixed bug where transient errors were leaving an error
+code around, so that it would erroneously get reported later. This bug was
+exercised intermittently by closing a channel to a file on a very loaded
+NFS server, or to a socket whose other end blocked. (JL, BW)
+
+7/3/96 (bug fix) Fileevents declared in an interpreter are now deleted
+when the channel is closed in that interpreter. Before this fix, the
+fileevent would hang around until the channel is completely closed, and
+would cause errors if events happened before the channel was closed. This
+could happen in two cases: first if the channel is shared between several
+interpreters, and second if an async flush is in progress that prevents the
+channel from being closed until the flush finishes. (JL)
+
+7/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands
+where too much white space was being removed. For example, the command
+ lreplace {\}\ hello} end end
+was returning "\}\", losing the significant space in the first list
+element and corrupting the list. (JO)
+
+7/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for
+extensions that depend on Tk, because it didn't load Tk into the child
+interpreter before loading the extension. Now it loads Tk if Tk is
+present in the parent. (JO)
+
+7/23/96 (bug fix) Added compat version of strftime to fix crashes
+resulting from bad implementations under Windows. (SS)
+
+7/23/96 (bug fix) Standard implementations of gmtime() and localtime()
+under Windows did not handle dates before 1970, so they were replaced
+with a revised implementation. (SS)
+
+7/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because
+the global environ pointer was left pointing to freed memory. (SS)
+
+7/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if
+a package's AppInit procedure called Tcl_StaticPackage to register
+static packages. (JO)
+
+8/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async
+writebehind in the presence of read event handlers now works, and so that
+async writebehind also works on sockets for which a read event handler was
+declared and whose channels were then closed before the async write
+finished. The bug was reported by John Loverso and Steven Wahl,
+independently, test case supplied by John Loverso. (JL)
+
+----------------- Released patch 7.5p1, 8/2/96 -----------------------
+
+5/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether
+a channel is open for reading and writing. (JL)
+
+5/8/96 (API changes) Revised C APIs for channel drivers:
+ - Removed all Tcl_Files from channel driver interface; you can now have
+ channels that are not based on Tcl_Files.
+ - Added channelReadyProc and watchChannelProc procedures to interface;
+ these are used to implement event notification for channels.
+ - Added getFileProc to channel driver, to allow the generic IO code
+ to retrieve a Tcl_File from a channel (presumably if the channel
+ uses Tcl_Files they will be stored inside its instanceData). (JL)
+*** INCOMPATIBILITY with Tcl 7.5 ***
+
+5/8/96 (API change) The Tcl_CreateChannel C API was modified to not take
+Tcl_File arguments, and instead to take a mask specifying whether the
+channel is readable and/or writable. (JL)
+*** INCOMPATIBILITY with Tcl 7.5 ***
+
+6/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value
+of the variable is a NULL pointer instead of "". (JL)
+
+6/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by
+Purify, in Tcl_Preserve/Tcl_Release. (JL)
+
+8/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message
+if the act of autoloading a procedure caused the procedure to be invoked
+again. (JO)
+
+8/9/96 (bug fix) Configure script produced bad library names and extensions
+under SunOS and a few other platforms if the --disable-load switch was used.
+(JO)
-2/17/96 (bug fix) If a text widget had very long lines (e.g. more than
-32K pixels), integer overflow could occur, resulting in parts of the
-line not being visible. (JO)
+8/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable
+being updated was read-only. (JO)
-2/20/96 (feature change) Changed the -minsize option of grid to take
-screen units instead of pixels. (SU)
+8/14/96 (bug fix) The macintosh now supports synchronous socket
+connections. Other minor bugs were also fixed. (RJ)
-2/20/96 (bug fix) grid row and column weights are compared against
-MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors
-during weight normalization. (SU)
+8/15/96 (configuration improvement) Changed the file patchlevel.h
+to be tclPatch.h. This avoids conflict with the Tk file and is now
+in 8.3 format on the Windows platform. (RJ)
-2/20/96 (bug fix) Menu commands were not being invoked sometimes.
-There was a race condition that caused events to be processed while a
-menu was being unposted. (SS)
+8/20/96 (bug fix) Fixed core dump in interp alias command for interpreters
+created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL)
+
+8/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so
+that the higher level of the IO mechanism sees the error instead of
+entering an infinite loop. (JL)
+
+8/20/96 (bug fix) Destroying the last interpreter no longer closes the
+standard channels. (JL)
+
+8/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and
+then opening a new channel now correctly assigns the new channel as the
+standard channel that was closed. (JL)
+
+8/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with
+FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where
+either O_NONBLOCK is not supported or implemented incorrectly. (JL)
+
+8/21/96 (bug fix) Fixed "file extension" so it correctly returns the
+extension on files like "foo..c" as "..c" instead of ".c". (SS)
+
+8/22/96 (bug fix) If environ[] contains static strings, Tcl would core
+dump in TclSetupEnv because it was trying to write NULLs into the actual
+data in environ[]. Now we instead copy as appropriate. (JL)
+
+8/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel
+for Windows platform. Code contributed by Mark Diekhans. (JL)
+
+8/22/96 (new feature) Added a new memory allocator for the Macintosh
+version of Tcl. It's quite a bit faster than MetroWerk's version. (RJ)
+
+8/26/96 (documentation update) Removed old change bars (for all changes
+in Tcl 7.5 and earlier releases) from manual entries. (JO)
+
+8/27/96 (enhancement) The exec and open commands behave better and work in
+more situations under Windows NT and Windows 95. Documentation describes
+what is still lacking. (CS)
+
+8/27/96 (enhancement) The Windows makefiles will now compile even if the
+compiler is not in the path and/or the compiler's environment variables
+have not been set up. (CS)
+
+8/27/96 (configuration improvement) The Windows resource files are
+automatically updated when the version/patch level changes. The header file
+now has a comment that reminds the user which other files must be manually
+updated when the version/patch level changes. (CS)
+
+8/28/96 (new feature) Added file manipulation features (copy, rename, delete,
+mkdir) that are supported on all platforms. They are implemented as
+subcommands to the "file" command. See the documentation for the "file"
+command for more information. (JH)
+
+----------------- Released 7.6b1, 8/30/96 -----------------------
+
+9/3/96 (bug fix) Simplified code so that standard channels are created
+lazily, they are added to an interpreter lazily, and they are never added
+to a safe interpreter. (JL)
+
+9/3/96 (bug fix) Closing a channel after closing a standard channel, e.g.
+stdout, would cause the implicit recreation of that standard channel. (JL)
+
+9/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL
+interpreter increments the refcount so that code outside any interpreter
+can use channels that are also registered in interpreters, without worrying
+that the channel may turn into a dangling pointer at any time. Calling
+Tcl_UnregisterChannel with a NULL interpreter only decrements the recount
+so that code outside any interpreter can safely declare it is no longer
+interested in a channel. (JL)
+
+9/4/96 (new features) Two changes to dynamic loading:
+ - If the file name is empty in the "load" command and there is no
+ statically loaded version of the package, a dynamically loaded
+ version will be used if there is one.
+ - Tcl_StaticPackage ignores redundant calls for the same package. (JO)
+
+9/6/96 (bug fix) Platform specific procedures for manipulating files are
+no longer macros and have been prefixed with "Tclp", such as TclpRenameFile.
+Unix file code now handles symbolic links and other special files correctly.
+The semantics of file copy and file rename has been changed so that if
+a target directory exists, the source files will NOT be merged with the
+existing files. (JH)
+
+9/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect
+to the standard channel, do not increment the refcount. The channel can
+be NULL if there is for example no standard input. (JL)
+
+9/6/96 (portability improvement) Changed parsing of backslash sequences
+like \n to translate directly to absolute values like 0xa instead of
+letting the compiler do the translation. This guarantees that the
+translation is done the same everywhere. (JO)
+
+9/9/96 (bug fix) If channel is opened and not associated with any
+interpreter, but Tcl decides to use it as one of the standard channels, it
+became impossible to close the channel with Tcl_Close -- instead you had
+to call Tcl_UnregisterChannel. Fixed now so that it's safe to call
+Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL)
+
+9/11/96 (feature change) The Tcl library is now placed in the Tcl
+shared libraries resource. You no longer need to place the Tcl files
+in your applications explicitly. (RJ)
+
+9/11/96 (feature change) Extensions no longer automatically have the
+resource fork of the extension opened for it. Instead you need to
+use the tclMacLibrary.c file in your extension. (RJ)
+*** POTENTIAL INCOMPATIBILITY ***
------------------ Released 4.1b2, 2/23/96 -----------------------
+9/12/96 (bug fix) The extension loading mechanism on the Macintosh now
+looks at the 'cfrg' resource to determine where to load the code
+fragment from. This means FAT fragments should now work. (RJ)
+
+9/18/96 (enhancement) The exec and open commands behave better and work in
+more situations under Windows 3.X. Documentation describes what is still
+lacking. (CS)
+
+9/19/96 (bug fix) Fixed a panic which would occur if you delete a
+non-existent alias before any aliases are created. Now instead correctly
+returns an error that the alias is not found. (JL)
+
+9/19/96 (bug fix) Slave interpreters could rename aliases and they would
+not get deleted when the alias was being redefined. This led to dangling
+pointers etc. (JL)
+
+9/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted
+twice during alias management operations. (JL)
+
+9/19/96 (bug fix) Fixed bug in event loop that could cause the input focus
+in Tk to get confused during menu traversal, among other problems. The
+problem was related to handling of the "marker" when its event was
+deleted. (JO)
+
+9/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event
+happened to precede any left over FD_READ events. Now correctly remembers
+seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they
+do not contain any data. This allows Tcl to correctly get a zero read and
+notice EOF. (JL)
+
+9/26/96 (bug fix) Was not resetting READABLE state properly on sockets
+under Windows if the driver discarded an FD_READ event because no data was
+present. Now correctly resets the state. (JL)
+
+9/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent
+readable will fire repeatedly until the socket is closed. Previously the
+fileevent fired only once. This could lead to never-closed connections if
+the Tcl script in the fileevent wasn't closing the socket immediately. (JL)
+
+10/2/96 (new feature) Improved the package loader:
+ - Added new variable tcl_pkgPath, which holds the default
+ directories under which packages are normally installed (each
+ package goes in a separate subdirectory of a directory in
+ $tcl_pkgPath). These directories are included in auto_path by
+ default.
+ - Changed the package auto-loader to look for pkgIndex.tcl files
+ not only in the auto_path directories but also in their immediate
+ children. This should make it easier to install and uninstall
+ packages (don't have to change auto_path or merge pkgIndex.tcl
+ files). (JO)
+
+10/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of
+tclsh.rc on startup under Windows. This is more consistent with wish and
+uses the right extension. (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-2/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus
-caused menus to be posted in the parent toplevel. (JO)
+10/8/96 (bug fix) Convertclock does not parse 24-hour times of the
+form "hhmm" correctly when hour = 00. In the parse code, hour must be
+>= 100 for minutes to be non-zero. Thanks to Lint LaCour for this
+bug fix. (RJ)
-2/23/96 (bug fix) Canvases weren't always updating their scrollbars
-when they should. (JO)
+10/11/96 (bug fix) Under Windows, the pid command returned the process
+handle instead of the process id. (SS)
-2/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL
-handler generated an error. (JO)
+----------------- Released 7.6, 10/16/96 -----------------------
-2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
-this caused problems on some platforms (like Linux?). (JO)
+10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after
+the first accept(), due to a typo. (JL)
-2/24/96 (feature change) Changed text and entry widgets so that they
-set the insertion cursor before inserting during a button-2 click.
-Also made optional bindings check for tk_strictMotif at the time of
-the event, rather than at the time the bindings are created. (JO)
+10/29/96 (bug fix) Incorrect refcount management caused standard channels
+not to get deleted at process exit or DLL unload time, causing a memory
+leak of upwards of 20K each time. (JL)
-2/24/96 (bug fix) Tk tended to crash with an X error when unsetting
-an icon window (e.g. "wm iconwindow . {}"). (JO)
+11/7/96 (bug fix) Auto-exec didn't work on file names that contained
+spaces. (JO)
-2/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS
-property when they were deleted. (JO)
+11/8/96 (bug fix) Fixed core dump that would occur if more than one call
+to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL)
-3/1/96 (new feature) Added new "bbox" widget command for entries.
-Also modified mouse bindings for entries and texts so that the
-mouse position rounds to the nearest inter-character gap, rather
-than the left edge of the character under the mouse. This provides
-more natural selection behavior. (JO)
+11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd
+to only treat -1 as error, instead of all negative numbers. (JL)
-3/1/96 (bug fix) Fixed core dump that could occur in image code if an
-image was deleted while in use in a widet, then re-used in another
-widget while "deleted". (JO)
+11/12/96 (bug fix) Do not blocking waiting for processes at the end of a
+pipe during exit cleanup. (JL)
-3/1/96 (bug fix) Calling wish with a single argument caused a crash
-under Windows due to an off-by-one error in the argument parsing code. (SS)
+11/12/96 (bug fix) If we are in exit cleanup, do not close the system level
+file descriptors 0, 1 and 2. Previously they were being closed which is
+incorrect, in the embedded case. This led to weird behavior for programs
+that want to interpose on I/O through the standard file descriptors (e.g.
+Netscape Navigator). (JL)
-3/1/96 (bug fix) Palette management was broken and resulted in
-incorrect palette realization and refresh behavior. Also, images were
-being drawn incorrectly if they were attached to widgets that had a
-private colormap. (SS)
+11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on
+deletion order at exit. Now all socket functions check to see if sockets
+are (still) initialized, before calling through function pointers. Before,
+they would call and might end up calling unloaded object code. (JL)
-3/2/96 (bug fix) It was possible to press the mouse button over an
-option menu, drag to a pulldown menu, and have the pulldown menu
-popup in place of the option menu. Fixed this so that option menus
-are isolated from each other and from pulldowns. (JO)
+11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine
+if sockets were not installed on the system. Before, it was not properly
+checking the result of attempting to load the socket DLL, so it would call
+through uninitialized function pointers. (JL)
-3/2/96 (bug fix) Fixed yet another bug that caused long delays when
-raising toplevel windows. (JO)
+11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket
+DLL handle open and could hold the socket DLL in memory uneccessarily,
+until a reboot. (JL)
-3/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles
-and ovals didn't always redisplay right (could leave trailing
-garbage on screen when moved). (JO)
+12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result
+in lost data if a client was closed too soon after sending data. (RJ)
-3/2/96 (bug fix) Entry widgets reset their insertion cursor, selection,
-and view whenever the text variable changed, plus whenever a "configure"
-widget command was invoked and there was a text variable for the
-widget. Fixed to preserve this information as much as possible. (JO)
+12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an
+event. This was happening because of an interaction between buffering and
+nonblocking mode on sockets. Now switched to sockets being blocking by
+default, so we are also no longer emulating blocking through a private
+event loop. (JL)
-3/5/96 (new feature) Added version suffix to shared library names so that
-Tk will compile under NetBSD and FreeBSD (I hope). (JO)
+1/21/97 (performance bug fix) Client TCP connections were slow to create
+because getservbyname was always called on the port. Now this is only
+done if Tcl_GetInt fails. (BW)
-3/6/96 (bug fix) Changed the way certain configure & motion events are
-reported. This fixes several bugs in menus & "winfo rootx". (RJ)
+1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH
+during make. Previously it was only set during autoconf process.
-3/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a
-selection. If you had dragged left, then tried to drag back right, the
-left edge of the selection wasn't being updated because the tag remove
-wasn't doing anything. (BW)
+1/29/97 (bug fix) Fixed some problems with the clock command that
+impacted how dates were scaned after the year 2000. (RJ)
-3/7/96 (bug fix) Fixed the boundary conditions of tag prevrange. The second
-index argument wasn't effecting in stopping the search if it fell within
-a range. The second index has to come at or before the start of a range
-for the range to be found by tag prevrange. (BW)
+----------------- Released 7.6p2, 1/31/97 -----------------------
-3/7/96 (bug fix) "puts" to stdout or stderr when running from a script
-caused wish41.exe to exit silently. Now the output is silently
-discarded without generating an error. (SS)
+2/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes
+in the input stream were not being handled correctly. (JL)
-3/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input
-as end of input, if the input came from stdin. This would cause it to
-complain about missing closing braces etc. (JL)
+2/24/97 (bug fix) Fix bug with exec under Win32s not being able to create
+stderr file which caused all execs to fail. Fixed temp file leak under
+Win32s. Fixed optional parameter bug with SearchPath that only happened
+under Win32s 1.25. (CCS)
------------------ Released 4.1b3, 3/8/96 -----------------------
+----------------------------------------------------------
+Changes for Tcl 7.6 go above this line.
+Changes for Tcl 7.7 go below this line.
+----------------------------------------------------------
-3/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text
-widgets of the form 'can't use non-numeric string as operand of "-"'. (JO)
+5/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes
+into a channel's input buffer. This can be used for "push" model channels
+where the input is obtained via callbacks instead of by request of the
+generic IO code. No Tcl procedure yet. (JL)
+
+11/15/96 (new feature) Implemented hidden commands. New C APIs:
+ Tcl_HideCommand -- hides an existing exposed command.
+ Tcl_ExposeCommand -- exposes an existing hidden command.
+New tcl APIs:
+ interp invokehidden -- invokes a hidden command in a slave.
+ interp hide -- hides an existing exposed command.
+ interp expose -- exposes an existing hidden command.
+ interp hidden -- returns a list of hidden commands.
+The implementation of Safe Tcl now uses the new hidden commands facility
+to implement the safe base, instead of deleting the commands from a safe
+interpreter. (JL)
-3/12/96 (feature improvement) Modified startup script to look in several
-different places for the Tcl library directory. This should allow tk
-to find the libraries under all but the weirdest conditions, even without
-the TK_LIBRARY environment variable being set. (JO)
+11/15/96 (new feature) Implemented the safe base, a mechanism for
+installing and requesting security policies, purely in Tcl code. Overloads
+the package command to also allow an interpreter to "require" a policy. The
+following new library commands are provided:
+ tcl_safeCreateInterp -- creates a slave an initializes the
+ policy mechanism.
+ tcl_safeInitInterp -- initializes an existing slave with the
+ policy mechanism.
+ tcl_safeDeleteInterp -- deletes a slave and deinitializes the
+ policy mechanism.
+Added a new file to the library, safeinit.tcl, to hold implementation. (JL)
+On 7/9/97, removed the policy loading mechanism from the Safe Base. Left
+only the Safe Base aliases dealing with auto-loading and source. (JL)
+
+12/6/96 (new feature) Implemented Tcl_Finalize, an API that should be
+called by a process when it is done using Tcl. This API runs all the exit
+handlers to allow them to clean up resources etc. (JL)
+
+12/17/96 (new feature) Add an http Tcl script package to the Tcl library.
+This package implements the client side of HTTP/1.0; the GET, HEAD,
+and POST requests. (BW)
+
+1/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and
+to the interpreter object command. It removes the "safe" mark on an
+interpreter and disables hard-wired checks for safety in the C sources. (JL)
+
+1/21/97 (removed feature) Removed "vwait" from set of commands available in
+a safe interpreter. (JL)
+
+2/11/97 (new feature, bug fix) http package. Added -accept to http_config
+so you can set the Accept header. Added -handler option to http_get so
+you can supply your own data handler. Also fixed POST operation to
+set the correct MIME type on the request. (BW)
-3/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO)
+----------------------------------------------------------
+Changes for Tcl 7.7 go above this line.
+Changes for Tcl 8.0 go below this line.
+----------------------------------------------------------
-3/14/96 (bug fix) Button-2 wasn't claiming the focus during paste
-operations. (JO)
+9/17/96 (bug fix) Using "upvar" it was possible to turn an array element
+into an array itself. Changed to disallow this; it was quirky and didn't
+really work correctly anyway. (JO)
+
+10/21/96 (new feature) The core of the Tcl interpreter has been replaced
+with an on-the-fly compiler that translates Tcl scripts to bytecoded
+instructions; a new interpreter then executes the bytecodes. The compiler
+introduces only a few minor changes at the level of Tcl scripts. The biggest
+changes are to expressions and lists.
+ - A second level of substitutions is no longer done for expressions.
+ This substantially improves their execution time. This means that
+ the expression "$x*4" produces a different result than in the past
+ if x is "$y+2". Fortunately, not much code depends on the old
+ two-level semantics. Some expressions that do, such as
+ "expr [join $list +]" can be recoded to work in Tcl8.0 by adding
+ an eval: e.g., "eval expr [join $list +]".
+ - Lists are now completely parsed on the first list operation to
+ create a faster internal representation. In the past, if you had a
+ misformed list but the erroneous part was after the point you
+ inserted or extracted an element, then you never saw an error.
+ In Tcl8.0 an error will be reported. This should only effect
+ incorrect programs that took advantage of behavior of the old
+ implementation that was not documented in the man pages.
+Other changes to Tcl scripts are discussed in the web page at
+http://www.scriptics.com/doc/compiler.html. (BL)
+*** POTENTIAL INCOMPATIBILITY ***
-3/14/96 (bug fix) "tkwait visibility" use to hang forever if its window
-was deleted. Now it detects this condition and returns an error. (JO)
+10/21/96 (new feature) In earlier versions of Tcl, strings were used as a
+universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj
+structures ("objects") that can hold both a string value and an internal
+form such as a binary integer or compiled bytecodes. The new objects make it
+possible to store information in efficient internal forms and avoid the
+constant translations to and from strings that occurred with the old
+interpreter. There are new many new C APIs for managing objects. Some of the
+new library procedures for objects (such as Tcl_EvalObj) resemble existing
+string-based procedures (such as Tcl_Eval) but take advantage of the
+internal form stored in Tcl objects for greater speed. Other new procedures
+manage objects and allow extension writers to define new kinds of objects.
+See the manual entries doc/*Obj*.3 (BL)
+
+10/24/96 (bug fix) Fixed memory leak on exit caused by some IO related
+data structures not being deallocated on exit because their refcount was
+artificially boosted. (JL)
+
+10/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL
+Tcl_Channel. (JL)
+
+11/19/96 (new feature) Added library procedures for finding word
+breaks in strings in a platform specific manner. See the library.n
+manual entry for more information. (SS)
+
+11/22/96 (feature improvements) Added support for different levels of
+tracing during bytecode compilation and execution. This should help in
+tracking down suspected problems with the compiler or with converting
+existing code to use Tcl8.0. Two global Tcl variables, traceCompile
+and traceExec, can be set to generate tracing information in stdout:
+ - traceCompile: 0 no tracing (default)
+ 1 trace compilations of top level commands and procs
+ 2 trace and display instructions for all compilations
+ - traceExec: 0 no tracing
+ 1 trace only calls to Tcl procs
+ 2 trace invocations of all commands including procs
+ 3 detailed trace showing the result of each instruction
+traceExec >= 2 provides a one line summary of each called command and
+its arguments. Commands that have been "compiled away" such as set are
+not shown. (BL)
+
+11/30/96 (bug fix) The command "info nameofexecutable" could sometimes
+return the name of a directory. (JO)
+
+11/30/96 (feature improvements) Changed the code in library/init.tcl
+that reads in pkgIndex.tcl so that (a) it reads the files from child
+directories before those in the parent, so that the parent gets
+precedence, and (b) it doesn't quit if there is an error in a
+pkgIndex.tcl file; instead, it prints an error message on standard
+error and continues. (JO)
+
+10/5/96 (feature improvements) Partial implementation of binary string
+support: the ability for Tcl string values to contain embedded null bytes.
+Changed the Tcl object-based APIs to take a byte pointer and length pair
+instead of a null-terminated C string. Modified several object type managers
+to support binary strings but not, for example, the list type manager.
+Existing string-based C APIs are unchanged and will truncate binary
+strings. Compiled scripts containing nulls are also truncated. (BL)
+
+12/12/96 (feature change) Removed the commands "cp", "mkdir", "mv",
+"rm", and "rmdir" from the Macintosh version of Tcl. They were never
+officially supported and their functionality is now available via
+the file command. (RJ)
+
+----------------- Released 8.0a1, 12/20/96 -----------------------
+
+1/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead
+of stat for current dir on c: drive.
+
+1/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick
+lookups of keyword arguments. (JO)
+
+1/12/97 (new feature) Serial IO channel drivers for Windows and Unix,
+available by using Tcl open command to open pseudo-files like "com1:" or
+"/dev/ttya". New option to Tcl fconfigure command for serial files:
+"-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and
+stop bits. Serial IO is not yet available on Mac.
+
+1/16/97 (feature change) Restored the Tcl7.x "two level substitution
+semantics" for expressions. Expressions not enclosed in braces are
+implemented, in general, by calling the expr command procedure
+(Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a
+first round of substitutions. This is slow (about Tcl7.x speed) because new
+code for the expression is generally compiled each time. However, if the
+expression has only variable substitutions (and not command substitutions),
+"optimistic" fast code is generated inline. This inline code will fail if a
+second round of substitutions is needed (i.e., if the value of a substituted
+variable itself requires more substitutions). The optimistic code will
+catch the error and back off to call the slower but guaranteed correct
+expr command procedure. (BL)
+
+1/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj
+to round out expression-related procedures. (BL)
+
+1/16/97 (feature change) Under Windows, at startup the environment variables
+"path", "comspec", and "windir" in any capitalization are converted
+automatically to upper case. The PATH variable could be spelled as path,
+Path, PaTh, etc. and it makes programming rather annoying. All other
+environment variables are left alone. (CS)
+
+1/20/97 (new features) Rewrote the "lsort" command:
+ - The new version is based on reentrant merge sort code provided
+ by Richard Hipp, so it eliminates the reentrancy and stability
+ problems with the old qsort-based implementation.
+ - The new version supports a -dictionary option for sorting, and
+ it also supports a -index option for sorting lists using one
+ element for comparison.
+ - The new version is an object command, so it works well with the
+ Tcl compiler, especially in conjunction with the new -index
+ option. When the -index option is used, this version of lsort
+ is more than 100 times faster than the Tcl 7.6 lsort, which had
+ to use the -command option to get the same effect. (JO)
+
+1/20/97 (feature improvements) Added the improved debugging support for Tcl
+objects prototyped by Karl Lehenbauer <karl@hammer1.ops.NeoSoft.com>.
+If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc
+directly in order to record the caller's source file name and line
+number. (BL)
+
+1/21/97 (removed feature) Desupported the tcl_precision variable: if
+set, it is ignored. Tcl now uses the full 17 digits of precision when
+converting real numbers to strings (with the new object system real
+numbers are rarely converted to strings so there is no efficiency
+disadvantage to printing all 17 digits; the new scheme improves
+accuracy and simplifies several APIs). (JO)
+*** POTENTIAL INCOMPATIBILITY ***
-3/16/96 (bug fix) Changed configuration stuff to get dynamic loading and
-shared libraries working under AIX. (JO)
+1/21/97 (feature change) Removed the "interp" argument for the
+procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and
+Tcl_StringObjAppendObj. Also removed the "interp" argument for
+the updateStringProc procedure in Tcl_ObjType structures. With
+the tcl_precision changes above, these are no longer needed. (JO)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 ***
-3/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter
-was deleted in the middle of executin bindings. (JO)
+1/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in
+an extra call to the command callback. In addition, if the transaction
+gets a premature eof, the state(status) is "eof", not "ok". (BW)
-3/18/96 (new feature) Added support for Activate/Deactivate events.
-Currently, these new X events will generated only on the Macintosh. (RJ/CS)
+----------------- Released 8.0a2, 1/24/97 -----------------------
-3/21/96 (bug fix) The "tag prevrange" command would fail to return the current
-range if it began at 1.0 and the starting point of the search was within
-the range. (BW)
+1/29/97 (feature change) Changed how two digit years are parsed in the
+clock command. The old interface just added 1900 which will seem
+broken by the year 2000. The new scheme follows the POSIX standard
+and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038. All
+other two digit dates are undefined. (RJ)
+*** POTENTIAL INCOMPATIBILITY ***
-3/21/96 (configuration improvement) Changed configure script so it
-doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under
-SunOS 4.1, where they don't work anyway. (JO)
+2/4/97 (bug fix) Fixed bug in clock code that dealt with relative
+dates. Using the relative month code you could get an invalid date
+because it jumped into a non-existant day. (For example, Jan 31
+to Feb 31.) The code now will return the last valid day of the
+month in these situations. Thanks to Hume Smith for sending in
+this bug fix. (RJ)
+
+2/10/97 (feature change) Eliminated Tcl_StringObjAppend and
+Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj
+and Tcl_AppendStringsToObj procedures. Added new procedure
+Tcl_SetObjLength. (JO)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 ***
+
+2/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating
+error messages about incorrect number of arguments. (JO)
+
+2/11/97 (new feature, bug fix) http package. Added -accept to http_config
+so you can set the Accept header. Added -handler option to http_get so
+you can supply your own data handler. Also fixed POST operation to
+set the correct MIME type on the request. (BW)
+
+2/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be
+computed incorrectly under AIX. (JO)
+
+2/25/97 (new feature, feature change) Added support for both int and long
+integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj
+procedures and renamed the Tcl_Obj internalRep intValue member to
+longValue. Tcl_GetIntFromObj now checks for integer values too large to
+represent as non-long integers. Changed Tcl_GetAllObjTypes to
+Tcl_AppendAllObjTypes. (BL)
+
+3/5/97 (new feature) Added new Tcl_SetListObj procedure to round out
+collection of procedures that set the type and value of existing Tcl
+objects. (BL)
+
+3/6/97 (new feature) Added -global flag for interp invokehidden. (JL)
+
+3/6/97 (new feature, feature change) Added isNativeObjectProc field to the
+Tcl_CmdInfo structure to indicate (when 1) if the command has an
+object-based command procedure. Removed the nameLength arg from
+Tcl_CreateObjCommand since command names can't contain null characters. (BL)
+
+3/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto-
+loading to fail on commands whose names begin with digits. (JO)
+
+3/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters
+only accept the Version 2 and onwards tclIndex files. (JL)
+
+3/13/97 (bug fix) Fixed core dump due to interaction between aliases and
+hidden commands. Bug found by Lindsay Marshall. (JL)
+
+3/14/97 (bug fix) Fixed mac bugs relating to time. The -gmt option
+now adjusts the time in the correct direction. (Thanks to Ed Hume for
+reporting a fix to this problem.) Also fixed file "mtime" etc. to
+return times from GMT rather than local time zone. (RJ)
+
+3/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function
+changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]". All Tcl object
+commands changed to use new declaration of objv. Naive translation of
+string-based command procs to object-based command procs could very easily
+have yielded code where the contents of the objv array were changed. This
+is not a problem with string-based command procs, but doing something as
+simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to
+crash. Introduced CONST in declaration of objv so that attempted assignment
+of new pointer values to elements of the objv array will be caught by the
+compiler. (CCS)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 ***
+
+3/19/97 (bug fix) Fixed panic due to object sharing. The root cause was
+that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL)
+
+3/20/97 (new feature) Added a new subcommand for the file
+command. file attributes filename can give a list of platform-specific
+options (such as file/creator type on the Mac, permissions on Unix) or
+set the values of them. Added a new subcommand for the file
+command. file nativename name gives back the platform-specific form
+for the file. This is useful when the filename is needed to pass to
+the OS, such as exec under Windows 95 or AppleScript on the Mac. For
+more info, see file.n. (SRP)
+
+3/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now
+the policy path is computed from the auto_path by appending the directory
+'policies' to each element. Also fixed several bugs in automatic tracking
+of auto_path by computed policy path. (JL)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 ***
+
+4/8/97 (new feature) If the variable whose name is passed to lappend doesn't
+already exist, and there are no value arguments, lappend now creates the
+variable with an empty value instead of returning an error. Change suggested
+by Tom Tromey. (BL)
+
+4/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to
+TCL_PARSE_PART1. (BL)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 ***
+
+4/10/97 (bug fixes) Fixed various compilation-related bugs:
+ - "UpdateStringOfCmdName should never be invoked" panic.
+ - Bad code generated for expressions not in {}'s inside catch commands.
+ - Segmentation fault in some command procedures when two argument
+ object pointers refer to the same object.
+ - Second level of substitutions were never done for expressions not
+ in {}'s that consist of a single variable reference: e.g.,
+ "set x 27; set bool {$x}; if $bool {puts foo}" would fail with error.
+ - Bad code generated when code storage was grown while compiling some
+ expressions: ones with compilation errors or consisting of only a
+ variable reference.
+ - Bugs involving multiple interpreters: wasn't checking that a
+ procedure's code was compiled for the same interpreter as the one
+ executing it, and didn't invalidate code on hidden-exposed command
+ transitions.
+ - "Bad stack top" panic when executing scripts that require a huge
+ amount of stack space.
+ - Incorrect sharing of code for procedure bodies, and procedure code
+ deallocated before last execution of the procedure finished.
+ - Fixed compilation of expression words in quotes. For example,
+ if "0 < 3" {puts foo}.
+ - Fixed performance bug in array set command with large assignments.
+ - Tcl_SetObjLength segmentation fault setting length of empty object.
+ - If Tcl_SetObjectResult was passed the same object as the interpreter's
+ result object, it freed the object instead of doing nothing. Bug fix
+ by Michael J. McLennan.
+ - Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix
+ by Michael J. McLennan.
+ - Segmentation fault if empty variable list was specified in a foreach
+ command. Bug fix by Jan Nijtmans.
+ - NULL command name was always passed to Tcl_CreateTrace callback
+ procedure.
+ - Wrong string representation generated for the value LONG_MIN.
+ For example, expr 1<<31 printed incorrectly on a 32 bit machine.
+ - "set {a($x)} 1" stored value in wrong variable.
+ - Tcl_GetBooleanFromObj was not checking for garbage after a numeric
+ value.
+ - Garbled "bad operand type" error message when evaluating expressions
+ not surrounded by {}'s. (BL)
+
+4/16/97 (new feature) The expr command now has the "rand()" and
+"srand()" functions for getting random numbers in expr. (RJ)
+
+4/23/97 (bug fix) Fixed core dump in bgerror when the error handler command
+deletes the current interpreter. Found by Juergen Schoenwald. (JL)
+
+4/23/97 (feature change) The notifier interfaces have been redesigned
+to make embedding in applications with external event loops possible.
+A number of interfaces in the notifier and the channel drivers have
+changed. Refer to the Notifier.3 and CrtChannel.3 manual entries for
+more details. (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-3/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it
-should be safe to delete an interpreter with a Tk application inside it,
-without first deleting the Tk application. (JL)
+4/23/97 (removed feature) The Tcl_File interfaces have been removed.
+The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take
+Unix fd's and are only supported on the Unix platform.
+Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle.
+Tcl_MakeFileChannel now takes a platform specific file handle. (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-3/26/96 (bug fix) Tk now returns results from a "send" to an interpreter
-in which the Tk application is destroyed, if the interpreter continues
-computing after the Tk application is destroyed. Previously any results
-computed after '.' was destroyed in the target interpreter were discarded
-by the "send". (JL)
+4/23/97 (removed feature) The modal timeout interface has been
+removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-3/26/96 (new feature) Tk now provides a static Tktest package which is
-present only in test versions of Tk; this allows the testing commands to
-be loaded into new interpreters besides the main one. (JL)
+4/23/97 (feature change) Channel drivers are now required to correctly
+implement blocking behavior when they are in blocking mode. (SS)
+*** POTENTIAL INCOMPATIBILITY ***
-3/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the
-dialog a transient for its parent. The old behavior meant that the
-dialog did not get posted if the parent was iconified. (JO)
+4/23/97 (new feature) Added the "binary" command for manipulating
+binary strings. Also, changed the "puts", "gets", and "read" commands
+to preserve embedded nulls. (SS)
+
+4/23/97 (new feature) Added tcl_platform(byteOrder) element to the
+tcl_platform array to identify the native byte order for the current
+host. (SS)
+
+4/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS)
+
+4/24/97 (bug fix) In the process of copying a file owned by another user,
+Tcl was changing the owner of the copy back to the owner of the original
+file, therefore causing further file operations to fail because the current
+user didn't own the copy anymore. The owner of the copy is now left as the
+current user. (CCS)
+
+4/24/97 (feature change) Under Windows, don't automatically uppercase the
+environment variable "windir" -- it's supposed to be lower case. (CCS)
+
+4/29/97 (new feature) Added namespace support based on a namespace
+implementation by Michael J. McLennan of Lucent Technologies. A namespace
+encapsulates a collection of commands and variables to ensure that they
+won't interfere the commands and variables of other namespaces. The global
+namespace holds all global variables and commands. Additional namespaces are
+created with the new namespace command. The new variable command lets you
+create Tcl variables inside a namespace. The names of Tcl variables and
+commands may now be qualified by the name of the namespace containing them.
+The key namespace-related commands are summarized below:
+ - namespace ?eval? name arg ?arg...?
+ Used to define the commands and variables in a namespace.
+ Optionally creates the namespace.
+ - namespace export ?-clear? ?pattern pattern...?
+ Specifies which commands are exported from a namespace. These
+ are the ones that can be imported into another namespace.
+ - namespace import ?-force? ?pattern pattern...?
+ Makes the specified commands accessible in the current namespace.
+ - namespace current
+ Returns the name of the current namespace.
+ - variable name ?value? ?name ?value?...?
+ Creates one or more namespace variables. (BTL)
+
+5/1/97 (bug fix) Under Windows, file times were reported in GMT. Should be
+reported in local time. (CCS)
+
+5/2/97 (feature change) Changed the name of the two Tcl variables used for
+tracing bytecode compilation and execution to tcl_traceCompile and
+tcl_traceExec respectively. These variables are now documented in the
+tclvars man page. (BL)
+
+5/5/97 (new feature) Support "end" as the index for "lsort -index". (BW)
+
+5/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW)
+
+5/8/97 (feature change) Newly created Tcl objects now have a reference count
+of zero instead of one. This simplifies C code that stores newly created
+objects in Tcl variables or in data structures such as list objects. That C
+code must increment the new object's reference count since the variable or
+data structure will contain a long-term reference to the object. Formerly,
+when new objects started out with reference count one, it was necessary to
+decrement the new object's reference count after the store to make sure it
+was left with the correct value; this is no longer necessary. (BL)
+
+5/9/97 (new feature) Added the Tcl_GetsObj interface that takes an
+object reference instead of a dynamic string (as in Tcl_Gets). (SS)
+
+5/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs
+to allow an alias command to be created with a vector of Tcl_Obj structures
+and to get the vector back later. (JL)
+
+5/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to
+leave an object result instead of a string result. (JL)
+
+5/14/97 (feature change) Improved the handling of the interpreter result.
+This is still either an object or a string, but the two values are now kept
+consistent unless some C code reads or writes interp->result directly. See
+the SetResult man page for details. Removed the Tcl_ResetObjResult
+procedure. (BL)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 ***
+
+5/16/97 (new feature) Added "fcopy" command to move data between
+channels. Refer to the manual page for more information. Removed the
+"unsupported0" command since it is obsolete now. (SS)
+
+5/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs
+to get an interpreter's result as a string. If the result was previously set
+to an object, this procedure will convert the object to a string. Use of
+Tcl_GetStringResult is intended to replace direct access to interp->result,
+which is not safe. (BL)
+
+5/20/97 (new features) Fixed "fcopy" to return the number of bytes
+transferred in the blocking case. Updated the http package to use
+fcopy instead of unsupported0. Added -timeout and -handler options to
+http_get. http_get is now blocking by default. It is only non-blocking
+if you supply a -command argument. (BW)
+
+5/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do
+with the -dictionary option and the presence of numbers embedded in the
+strings. (JO)
-4/5/96 (bug fix) Tk would occasionally crash when destroying toplevels
-under Windows. (SS)
+----------------- Released 8.0b1, 5/27/97 -----------------------
-4/5/96 (bug fix) Fonts were not being properly deallocated, causing
-GDI resources to be consumed and never released under Windows. (SS)
+6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
+finding the library files when they are installed in a directory
+containing a space in the name. (SS)
-4/11/96 (bug fix) Toplevel windows with no specified geometry were
-always appearing in the upper left corner of the screen under
-Windows. (SS)
+6/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was
+not being cleared under some circumstances. (SS)
+
+6/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in
+namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create
+commands in the global namespace unless the command names are qualified. Tcl
+procedures continue to be created in the current namespace by default. (BL)
+
+6/6/97 (new features) Added new namespace API procedures
+Tcl_AppendExportList and Tcl_Export to allow C code to get and set a
+namespace's export list. (BL)
+
+6/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine
+parallels the string-based routine Tcl_Concat. (SRP)
+
+6/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based
+routines parallels the string-based routine Tcl_SetErrorCode. (SRP)
+
+6/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows
+will exec an external program, instead of always complaining "console1 not
+opened for writing". (CCS)
+
+6/12/97 (bug fix) Fixed core dump experienced by the following simple
+script:
+ interp create x
+ x alias exec exec
+ interp delete x
+This panic was caused by not installing the new CmdDeleteProc when exec
+got redefined by the alias creation step. Reported by Lindsay Marshal (JL)
+
+6/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a
+string representation that points to a shared heap string of length 1. (They
+used to have NULL bytes and typePtr fields. This was treated as a special
+case to indicate an empty string, but made type manager implementations
+complex and error prone.) The new procedure Tcl_InvalidateStringRep is used
+to mark an object's string representation invalid and to free any storage
+associated with the old string representation. (BL)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 ***
+
+6/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched
+if the string ended with a backslash. (JO)
+
+6/17/97 (bug fix) Fixed channel event bug where readable events would be
+lost during recursive events loops if the input buffers contained
+data. (SS)
+
+6/17/97 (bug fix) Fixed bug in Windows socket code that didn't
+reenable read events in the case where an external entity is also
+reading from the socket. (SS)
+
+6/18/97 (bug fix) Changed initial setting of the notifier service mode
+to TCL_SERVICE_NONE to avoid unexpected event handling during
+initialization. (SS)
+
+6/19/97 (bug fix/feature change) The command callback to fcopy is now
+called in case of errors during the background copy. This adds a second,
+optional argument to the callback that is the error string. The callback
+in case of errors is required for proper cleanup by the user of fcopy. (BW)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
+
+6/19/97 (bug fix) Fixed a panic due to the following four line script:
+ interp create x
+ x alias foo bar
+ x eval rename foo blotz
+ x alias foo {}
+The problem was that the interp code was not using the actual current name
+of the command to be deleted as a result of un-aliasing foo. (JL)
+
+6/19/97 (feature change) Pass interp down to the ChannelOption and
+driver specific calls so system errors can be differentiated from syntax
+ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption,
+TcpGetOptionProc, TtyGetOptionProc, etc. (DL)
+*** POTENTIAL INCOMPATIBILITY ***
-4/11/96 (bug fix) "wm minsize" did not properly report the minimum
-size imposed by the Windows window manager. (SS)
+6/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver
+specific option procedures (Set and Get) to return a complete and
+meaningful error message. (DL)
+
+6/19/97 (bug fixes) If a system call error occurs while doing an
+fconfigure on tcp or tty/com channel: return the appropriate error
+message (instead of the syntax error one or none). (Fixed for Unix and
+most of the Win and Mac drivers). (DL)
+
+6/20/97 (feature change) Eval is no longer assumed as the subcommand name
+in namespace commands: you must now write "namespace eval nsName {...}".
+Abbreviations of namespace subcommand names are now allowed. (BL)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 ***
+
+6/20/97 (feature change) Changed the errorInfo traceback message for
+compilation errors from "invoked from within" to "while compiling". (BL)
+
+6/20/97 (bug fixes) Fixed various compilation-related bugs:
+ - "UpdateStringOfCmdName should never be called" and
+ "UpdateStringOfByteCode should never be called" panics.
+ - Segfault in TclObjInterpProc getting procedure name after evaluation
+ stack is reallocated (grown).
+ - Could not use ":" at end of variable and command names.
+ - Bad code generated for while and for commands with test expressions
+ enclosed in quotes: e.g., "set i 0; while "$i > 5" {}".
+ - Command trace procedures would crash if they did a Tcl_EvalObj that
+ reallocated the evaluation stack.
+ - Break and continue commands did not reset the interpreter result.
+ - The Tcl_ExprXXX routines, both string- or object-based, always
+ modified the interpreter result even if there was no error.
+ - The argument parsing procedure used by several compile procedures
+ always treated "]" as end of a command: e.g., "set a ]" would fail.
+ - Changed errorInfo traceback message for compilation errors from
+ "invoked from within" to "while compiling".
+ - Problem initializing Tcl object managers during interpreter creation.
+ - Added check and error message if formal parameter to a procedure is
+ an array element. (BL)
+
+6/23/97 (new feature) Added "registry" package to allow manipulation
+of the Windows system registry. See manual entry for details. (SS)
+
+6/24/97 (feature change) Converted http to a package and added the
+http1.0 subdirectory of the Tcl script library. This means you have
+to do a "package require http" to use this, as advertised in the man page. (BW)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
+
+6/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without
+TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL)
+
+6/26/97 (feature change) Changed name of Tcl_ExprStringObj to
+Tcl_ExprObj. (BL)
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 ***
-4/13/96 (bug fix) Text widgets could dump core in some cases where
-text was inserted on the top visible line. (JO)
+----------------- Released 8.0b2, 6/30/97 -----------------------
-4/16/96 (bug fix) Changed menu code to ignore errors that occur when
-restoring a grab: the old grab window might not be visible anymore. (JO)
+7/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh
+when Tcl has been built with --enable-shared. A new tclLibObjs
+make target, echoing the list of the .o's needed to build a tcl
+library, is now provided. (DL)
+
+7/1/97 (feature change) compat/getcwd.c removed and changed the
+only place where getcwd is used so a new USEGETWD flag selects
+the use of the replacement "getwd". Adding this flag is recommended
+for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL)
+
+7/7/97 (feature change) The split command now supports binary data (i.e.,
+null characters in strings). (BL)
+
+7/7/97 (bug fix) string first returned the wrong result if the first
+argument string was empty. (BL)
+
+7/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command
+callback was supplied and an error or eof condition caused no background
+activity. A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW)
+
+7/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not
+need a trailing path component. You can now get away with just
+http_get www.scriptics.com (BW)
+
+7/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing
+commands with names similar to the generated name. Previously creating an
+anonymous interpreter could smash an existing command, now it skips until
+it finds a command name that isn't being used. (JL)
+
+7/9/97 (feature change) Removed the policy management mechanism from the
+Safe Base; left the aliases to source and load modules, and to do a limited
+form of the "file" command. See entry of 11/15/96. (JL)
+
+7/9/97 (bug fixes) Fixed various compilation-related bugs:
+ - Line numbers in errorInfo now are the same as those in Tcl7.6 unless
+there are compilation errors. Compilation error messages now include the
+entire command in error.
+ - Trailing ::s after namespace names weren't being ignored.
+ - Could not refer to an namespace variable with an empty name using a
+name of the form "n::". (BL)
+
+7/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting
+from other than the current namespace. (BL)
+
+7/9/97 (bug fix) env.test was removing env var needed for proper finding
+of libraries in child process. (DL)
+
+7/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information
+is leaked to safe interps. Error message fixes for interp sub commands.
+Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called
+without argument to generate the slave name (like in interp create). (DL)
+
+7/10/97 (bug fixes) Bytecode compiler now generates more detailed
+command location information: subcommands as well as commands now have
+location information. This means command trace procedures now get the
+correct source string for each command in their command parameter. (BL)
+
+7/22/97 (bug fixes) Performance improvement in Safe interpreters
+handling. Added new mask value to (tclInt.h) Interp.flags record. (DL)
+
+7/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug
+was present since Tcl 7.6. (JL)
+
+7/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the
+procedure's namespace must be used to look up compile procedures, not the
+current namespace. (BL)
+
+7/22/97 (bug fix) Use of the -channel option of http_get was not setting
+the end of line translations mode on the channel, so copying binary data
+with the -channel option was corrupting the result on non-unix platforms. (BW)
+
+7/22/97 (bug fixes) file commands and ~user (seg fault and other
+improper returns). (DL)
+
+7/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL)
+
+7/23/97 (bug fixes) Fixed two bugs involving read traces on array variables
+in procedures: trace procedures were sometimes not called, and reading
+nonexistant array elements didn't create undefined element variables that
+could later be defined by trace procedures. (BL)
+
+7/24/97 (bug fix) Windows memory allocation performance was
+superlinear in some cases. Made the Mac allocator generic and changed
+both the Mac and Windows platforms to use the new allocator instead of
+malloc and free. (SS)
+
+7/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe
+sourcing/loading (see safe.n) to hide pathnames, use virtual
+paths tokens instead, improved security in several respects and made it
+more tunable. Multi level interp loading can work too now. Package auto
+loading now works in safe interps as long as the package directory is in
+the auto_path (no deep crawling allowed in safe interps). (DL)
+*** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases ***
+
+7/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value
+as an empty string. (This fixes hairy crash case where you would crash
+because load command for other interps assumed presence of
+errorInfo...). (DL)
+
+7/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces. It will
+use the export list of a namespace and create auto_index entries for
+all export commands. Those names are in their fully qualified form in the
+auto_index. Therefore, I tweaked unknown to try both $cmd and ::$cmd.
+Also fixed pkg_mkIndex so you can have "package require" commands inside
+your packages. These commands are ignored, which is mostly ok except
+when you must load another package before loading yours because of
+linking dependencies. (BW)
+
+7/28/97 (bug fix) A variable created by the variable command now persists
+until the namespace is destroyed or the variable is unset. This is true even
+if the variable has not been initialized; these variables used to be
+destroyed if an error occurred when accessing them. In addition, the "info
+vars" command lists uninitialized namespace variables, while the "info
+exists" command returns 0 for them. (BL)
+
+7/29/97 (feature change) Changed the http package to use the ::http
+namespace. http_get renamed to http::geturl, http_config renamed to
+http::config, http_formatQuery renamed to http::formatQuery.
+It now provides the 2.0 version of the package.
+The 1.0 version is still available with the old names.
+*** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 ***
+
+7/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to
+preserve NULLs in commands and command output. Added new API procedure
+Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object
+containing a command. (BL)
+
+7/30/97 (bug fix) Tcl freed strings in the environ array even if it
+did not allocate them. (SS)
+
+7/30/97 (bug fix) If a procedure is renamed into a different namespace, it
+now executes in the context of that namespace. (BL)
+
+7/30/97 (bug fix) Prevent renaming of commands into and from namespaces as
+part of hiding them. (JL)
+
+7/31/97 (feature change) Moved the history command from C to tcl.
+This uses the ::history namespace. The "words" and "substitute" options
+are no longer supported. In addition, the "keep" option without a value
+returns the current keep limit. There is a new "clear" option.
+The unknown command now supports !! again. (BW)
+*** POTENTIAL INCOMPATIBILTY ***
+
+7/30/97 (bug fix) Made sure that a slave can not fool the master into
+hiding the wrong command. Made sure we don't crash in hiding + namespaces
+issues. (DL)
+
+8/4/97 (bug fix) Concat, eval, uplevel, and similar commands were
+incorrectly trimming trailing space characters from their arguments
+even when the space characters were preceded by a backslash. (JO)
+
+8/4/97 (bug fix) Removed the hard link between bgerror and tkerror.
+Only bgerror is supported in tcl core. Tk will still look for a
+tkerror but using regular tcl code for that feature. (DL)
+*** POTENTIAL INCOMPATIBILTY with code relying on the hard link ***
+
+8/6/97 (bug fix) Reduced size required for compiled bytecodes by using a
+more compact encoding for the command pc-to-source map. (BL)
+
+8/6/97 (new feature) Added support for additional compilation and execution
+statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL)
+
+8/7/97 (bug fix) Expressions not in {}s that have a comparison operator as
+the topmost operator must be compiled out-of-line (call the expr cmd at
+runtime) to properly support expr's two-level substitution semantics. An
+example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL)
+
+8/11/97 (bug fix) The catch command would sometimes crash if a variable name
+was given and the bytecode evaluation stack was grown when executing the
+argument script. (BL)
+
+8/12/97 (feature change) Reinstated the variable tcl_precision to control
+the number of digits used when floating-point values are converted to
+strings, with default of 12 digits. However, had to make tcl_precision
+shared among all interpreters (except that safe interpreters can't
+modify it). This makes the Tcl 8.0 behavior almost identical to 7.6
+except that the default precision is 12 instead of 6. (JO)
+*** POTENTIAL INCOMPATIBILITY ***
------------------ Released 4.1, 4/21/96 -----------------------
+----------------- Released 8.0, 8/18/97 -----------------------
-5/1/96 (bug fix) "option readfile" did not handle files with CRLF
-line termination. (SS)
+8/19/97 (bug fix) Minimal fix for glob -nocomplain bugs:
+"glob -nocomplain unreadableDir/*" was generating an anonymous
+error. More in depth fixes will come with 8.1. (DL).
+
+8/20/97 (bug fix) Removed check for FLT_MIN in binary command so
+underflow conditions are handled by the compiler automatic
+conversions. (SS)
+
+8/20/97 (bug fixes) Fixed several compilation-related bugs:
+ - Array cmd wasn't detecting arrays that, while compiled, do not yet
+ exist (e.g., are marked undefined since they haven't been assigned
+ to yet).
+ - The GetToken procedure in tclCompExpr.c wasn't recognizing properly
+ whether an integer token was invalid. For example, "0x$" is not
+ a valid integer.
+ - Performance bug in TclExecuteByteCode: the size of its stack frame
+ was reduced by over 20% by moving errorInfo code elsewhere.
+ - Uninitialized memory read error in tclCompile.c. (BL)
+
+8/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's
+configure : it changes only the options you provide and you can get
+the current value of any single option. New ?-nested boolean? and
+?-statics boolean? for all safe::interp* commands but we still
+accept (upward compatibility) the previously defined non valued
+flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL).
-5/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries",
-not "make install-libraries". (JO)
+8/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the
+tcl_precision variable is still used and that it is now shared by all
+interpreters. (BL)
-5/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to
-avoid potential core dumps. (JO)
+8/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType
+procedure in tclExecute.c: it was not properly supporting the || and &&
+operators. (BL)
-5/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a
-transient window again. This is needed to make sure that the dialog
-box doesn't get obscured. Also changed it to return -1 if the dialog
-window is deleted before the user presses a button. (JO)
+8/27/97 (bug fix) In cases where a channel handler was created with an
+empty event mask while data was still buffered in the channel, the
+channel code would get stuck spinning on a timer that would starve
+idle handlers. This mostly happened in Tk when reading from stdin. (SS)
+
+9/4/97 (bug fix) Slave interps now inherit the maximum recursion limit
+of their parent instead of starting back at the default. {nb: this still
+does not prevent stack overflow by multi-interps recursion or aliasing} (DL)
+
+9/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused
+pipes to fail to report eof properly under Windows. (SS)
+
+9/12/97 (bug fix) "exec" was misidentifying some DOS executables as not
+executable. (CCS)
+
+9/14/97 (bug fix) Was using the wrong structure in sizeof operation in
+tclUnixChan.c. (JL)
+
+9/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if
+Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get
+a chance to check whether the event just handled is significant. This
+affected mainly recursive calls to Tcl_VWaitCmd; these did not get a
+chance to notice that the variable they were waiting for has been set
+and thus they didn't terminate the vwait. (JL, DL, SS)
+
+9/15/97 (bug fix) Alignment problems in "binary format" would cause a
+crash on some platforms when formatting floating point numbers. (SS)
+
+9/15/97 (bug fix) Fixed bug in Macintosh socket code. Now passes all
+tests in socket.test that are not platform specific. (Thanks to Mark
+Roseman for the pointer on the fix.) (RJ)
+
+9/18/97 (bug fix) Fixed bug -dictionary option of lsort that could
+cause the compare function to run off the end of an array if the
+number only contained 0's. (Thanks to Greg Couch for the report.) (RJ)
+
+9/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up
+properly. (DL, JI)
+
+9/18/97 (bug fix) Fixed long-standing bug where an "array get" command
+did not trigger traces on the array or its elements. (BL)
+
+9/18/97 (bug fixes) Fixed compilation-related bugs:
+ - Fixed errorInfo traceback information for toplevel coomands that
+ contain nested commands.
+ - In the expr command, && and || now accept boolean operands as well
+ as numeric ones. (BL)
+
+9/22/97 (bug fix) Fixed bug that prevented translation modes from being
+set independently for input and output on sockets if input was "auto". (JL)
+
+9/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on
+files containing NUL chars. (DL)
+
+9/26/97 (bug fix) Fixed use of uninitialized memory in the environ array
+that later could cause random core dumps. Applies to all platforms. (JL)
+
+9/26/97 (bug fix) Fixed use of uninitialized memory in socket address data
+structure under some circumstances. This could cause random core dumps.
+This applies only to Unix. (JL)
+
+9/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang
+until the system timed after the file was closed. (SS)
+
+10/6/97 (bug fix) The join(n) command, though objectified, was loosing
+NULs in the joinString and in list elements after the 2nd one.
+Now you can "join $list \0" for instance. (DL)
+
+10/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a
+non-existent directory, exec would fail when trying to create its temporary
+files. (CCS)
+
+10/9/97 (bug fix) Under mac and windows, "info hostname" would crash if
+sockets were installed but the hostname could not be determined anyhow.
+Tcl_GetHostName() was returning NULL when it should have been returning
+an empty string. (CCS)
+
+10/10/97 (bug fix) "file attribute /" returned error on windows. (CCS)
+
+10/10/97 (bug fix) Fixed the auto_load procedure to handle procedures
+defined in namespaces better. Also fixed pgk_mkIndex so it sees procedures
+defined in nested namespaces. Index entries are still only made for
+exported procedures. (BW)
+
+10/13/97 (bug fix) On unix, for files with unknown group or owner
+attributes, querying the "file attributes" would return an error rather than
+returning the group's or owner's id number, although tha command accepts
+numbers when setting the file's group or owner. (CCS)
+
+10/22/97 (bug fix) "fcopy" did not eval the callback script at the
+global scope. (SS)
+
+10/22/97 (bug fix) Fixed the signature of the CopyDone callback used in
+the http package(s) so they can handle error cases properly. (BW)
+
+10/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object
+in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace
+on the variable. (BL)
+
+10/28/97 (bug fix) Changed binary scan to properly handle sign
+extension of integers on 64-bit or larger machines. (SS)
+
+11/3/97 (bug fixes) Fixed several bugs:
+ - expressions such as "expr ($x)" must be compiled out-of-line
+ (call the expr command procedure at runtime) to ensure the correct
+ behavior when "$x" is an expression such as "5+10".
+ - "array set a {}" now creates a new array var with an empty array
+ value if the var didn't already exist.
+ - "lreplace $foo end end" no longer returns an error (just an empty
+ list) if foo is empty.
+ - upvar will no longer create a variable in a namespace that refers
+ to a variable in a procedure.
+ - deleting a command trace within a command trace callback would
+ make the code that calls traces to reference freed memory.
+ - significantly sped up "string first" and "string last" (fix from
+ darrel@gemstone.com).
+ - seg fault in Tcl_NewStringObj() when a NULL is passed as the byte
+ pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG.
+ - documentation and error msg fixes. (BL)
+
+11/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on
+64-bit machines. (SS)
+
+11/6/97 (bug fix) The exit code of the first process created by Tcl
+on Windows was not properly reported due to an initialization
+problem. (SS)
-5/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget
-with -setgrid 1 was deleted by removing its command. (JO)
+----------------- Released 8.0p1, 11/7/97 -----------------------
-5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
-initialized variables left over from previous invocation of Tk_Init on
-another interpreter. (JL)
+11/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently
+cleared out a shared argument list object. (BL).
-5/16/96 (new feature) Implemented application embedding on Windows
-platforms (only Tk inside another application, not the other way yet). (JL)
+11/19/97 (bug fix) Autoloading in namespaces was not working properly.
+auto_mkindex is still not really namespace aware but most common
+cases should now be handled properly (see init.test). (BW, DL)
-5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
-interpreter. (JL)
+11/20/97 (enhancement) Made the changes required by the new Apple
+Universal Headers V.3.0, so that Tcl will compile with CW Pro 2.
-5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
-initialized variables left over from previous invocation of Tk_Init on
-another interpreter. (JL)
+11/24/97 (bug fix) Fixed tests in clock test suite that needed the
+-gmt flag set. Thanks to Jan Nijtmans for reporting the problem. (RJ)
-5/16/96 (new feature) Implemented application embedding on Windows
-platforms (only Tk inside another application, not the other way yet). (JL)
+----------------- Released 8.0p2, 11/25/97 -----------------------
-5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
-interpreter. (JL)
+12/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous
+instances of double evaluations if "if" and "expr" statements from
+the library files. It is recommended that unless you need a double
+evaluation you always use "expr {...}" instead of "expr ..." and
+"if {...} ..." instead of "if ... ...". It will also be faster
+thanks to the byte compiler. (DL)
-5/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on
-button 1. (JO)
+---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ----
-6/12/96 (bug fix) Focus was automatically placed on new toplevels.
-This caused the titlebar to flash during menubar traversal. (SS)
+12/8/97 (bug fix) Need to protect the newly accepted channel in an
+accept callback on a socket, otherwise the callback may close it and
+cause an error, which would cause the C code to attempt to close the
+now deleted channel. Bumping the refcount assures that the channel sticks
+around to be really closed in this case. (JL)
+
+12/8/97 (bug fix) Need to protect the channel in a fileevent so that it
+is not deleted before the fileevent handler returns. (CS, JL)
+
+12/18/97 (bug fix) In the opt argument parsing package: if the description
+had only flags, the "too many arguments" case was not detected. The default
+value was not used for the special "args" ending argument. (DL)
+
+1/15/98 (improvement) Moved common part of initScript in common file.
+Moved windows specific initialization to init.tcl so you can initialize
+Tcl in windows without having to call Tcl_Init which is now only
+searching for init.tcl {back ported from 8.1}. (DL)
+
+---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ----
+
+5/27/98 (bug fix) Windows socket driver did not notice new data arriving
+on nonblocking sockets until the event loop was entered. (SS)
+
+5/27/98 (bug fix) Windows socket driver used FIONREAD, which is not
+supported correctly by WinSock. (SS)
+
+6/9/98 (bug fix) Generic channel code failed to report readable file
+events on buffered data that was left behind by a gets or read that
+did not consume all available data. (SS)
+
+6/18/98 (bug fix) Compilation of loop expressions was too aggressive
+and incorrectly inlined non-literal expressions. (SS)
+
+6/18/98 (bug fix) "info var" and "info locals" incorrectly reported
+the existence of compiler temporary variables. (SS)
+
+6/18/98 (bug fix) Dictionary sorting used signed character
+comparisons. (SS)
+
+6/18/98 (bug fix) Compile procs corrupted the exception stack in some
+cases. (SS)
+
+6/18/98 (bug fix) Array set had erratic behavior when initializing a
+variable from an empty value list. (SS)
+
+6/18/98 (bug fix) The Windows registry package had a bad bounds check
+that could lead to a crash. (SS)
+
+6/18/98 (bug fix) The foreach compile proc did not correctly handle
+non-local variable references. (SS)
+
+6/25/98 (new features) Added name resolution hooks to support [incr Tcl].
+There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks.
+With this changes it should be possible to dynamically load [incr Tcl]
+as an extension. (MM)
+
+7/1/97 (bug fix) The commands "info args, body, default, procs" did
+not correctly handle imported procedures. (RJ)
+
+7/6/98 (improvement) pkg_mkIndex now implements the "package require"
+command. This makes it possible to create index files for packages
+that require another package and then execute code from that package in
+their file. Previously, this would throw an error because the required
+package had not been loaded. The -nopkgrequied flag is provided to
+revert back to the old functionality. (EMS)
+
+7/6/98 (improvement) back-ported the -direct flag from 8.1 into
+pkg_mkIndex. This results in pkgIndex.tcl files that contain direct
+source or load commands instead of tclPkgSetup commands. (EMS)
+
+7/6/98 (improvement) made changes to the AuxData items structures to support
+storage of compiled scripts on disk. Also some related minor changes in
+the compilation and execution engine. (EMS)
+
+6/4/98 (enhancement) Added new internal routines to support inserting
+and deleting from the stat, access, and open-file-channel mechanisms.
+TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc
+insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc,
+& TclOpenFileChannelDeleteProc delete pointers to such routines. See
+the file generic/tclIOUtils.c for more details. (SKS)
+
+7/1/98 (enhancement) Added a new internal C variable
+tclPreInitScript. This is a pointer to a string that may hold an
+initialization script; If this pointer is non-NULL it is evaluated in
+Tcl_Init() prior to the built-in initialization script defined in the
+file generic/tclInitScript.h. (SKS)
+
+7/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that
+the TCL_LIBRARY value can be safely patched in binaries. (BW)
+
+7/24/98 (enhancement) Incorporated a new version of auto_mkindex that
+can support the [incr Tcl] class structures. This version will index
+all procedures in a source file, not just those where "proc" starts
+at the beginning of the line. If you want the old behavior, use the
+auto_mkindex_old procedure. (MM)
+
+7/24/98 (feature change) Changed the Windows registry key to be
+HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path
+in the default value instead of "Root". Also, this key can be
+specified at compile time in case Tcl is being used in a different
+context where it needs an alternate library path from the standard Tcl
+installation. (SS)
+
+7/24/98 (feature change) Changed the search order for init.tcl. The
+tcl_library variable can now be set before calling Tcl_Init to avoid
+doing any searches. If it isn't set, then Tcl checks
+env(TCL_LIBRARY), the static value set at compile time, an install
+directory relative to the executable, a source directory relative to
+the executable, and a tcl directory relative to the source heirarchy
+containing the executable. See the comment at the top of
+generic/tclInitScript.h for more details. (SS)
+
+7/27/98 (config change) Changed the use of the DBGX flag in configure.in
+and the makefile to be TCL_DBGX. Users of tclConfig.sh may need to pass
+this through their configure files with AC_SUBST. (BW)
+
+729/98 (bug fix) Changed [info body] to return a copy of the body of a
+compiled procedure instead of the body itself, to avoid invalidation
+of the internal rep and loss of the byte-codes. (EMS)
+
+8/5/98 (bug fix) The platform init code could walk off the end of a
+buffer when reading the PkgPath registry value on Windows. (SS)
+
+8/5/98 (Windows makefile change) Introduced a set of macros to deal with
+exporting symbols when compiling DLLS on Windows. See win/README for
+details. (EMS)
+
+8/5/98 (addendum) Added a second Windows registry key under
+HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath".
+This is a multi-string value used to initialize the tcl_pkgPath
+variable. This is required if extension DLLs are in architecture specific
+subdirectories. (SS)
+
+8/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by
+extensions, including Tk. This searches in a canonical way for
+an extensions library directory and initialization file. (BW)
+
+8/10/98 (bug fix) Imported commands used to get lost if the target
+of the import was redefined. Tcl_CreateCommand and Tcl_CreateObjCommand
+were updated to restore import links. (Note that if you rename a command,
+the import links move to the new name, and if you delete a command then
+the import links get lost. These semantics have not changed.) (MC)
+
+-------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------
+
+9/3/98 (bug fix) Tcl_Realloc was failing under Windows because the
+GlobalReAlloc API was not correctly re-allocating blocks that were
+32k+. The fix was to use newer Win32 APIs (HeapAlloc, HeapFree, and
+HeapReAlloc.) (BS)
+
+10/5/98 (bug fix) Fixed bug in pkg_mkIndex that caused some files that do
+a "package require" of packages in the Tcl libraries to give a warning like
+ warning: "xx.tcl" provides more than one package ({xx 2.0} {yy 0.3})
+and generate a broken pkgIndex.tcl file. (EMS)
+
+10/5/98 (bug fix) Pkg_mkIndex was not doing a case-insensitive comparison
+of extensions to determine whether to load or source a file. Thus, under
+Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS)
+
+10/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's
+internal representation holds a pointer to a Proc structure. Extended
+TclCreateProc to take both strings and "procbody". (EMS)
+
+10/13/98 (bug fix) The "info complete" command can now handle strings
+with NULLs embedded. Thanks to colin@field.medicine.adelaide.edu.au
+for providing this fix. (RJ)
+
+10/13/98 (bug fix) The "lsort -dictionary" command did not properly
+handle some numbers starting with 0. Thanks to Richard Hipp
+<drh@acm.org> for submitting the fix to Scriptics. (RJ)
+
+10/13/98 (bug fix) The function Tcl_SetListObj was creating an invalid
+Tcl_Obj if the list had zero elements (despite what the comments said
+it would do). Thanks to Sebastian Wangnick for reporting the
+problem. (RJ)
+
+10/20/98 (new feature) Added tcl_platform(debug) element to the
+tcl_platform array on Windows platform. The existence of the debug
+element of the tcl_platform array indicates that the particular Tcl
+shell has been compiled with debug information. Using
+"info exists tcl_platform(debug)" a Tcl script can direct the
+interpreter to load debug versions of DLLs with the load
+command. (SKS)
-6/12/96 (bug fix) Iconification of a window with a specified geometry
-by using the minimize button would leave the window in an inconsistent
-state. When the window was deiconified using "wm deiconify", the
-window would continue to display as an icon with the deiconified
-geometry. (SS)
+10/20/98 (feature change) The Makefile and configure scripts have been
+changed for IRIX to build n32 binaries instead of the old 32 abi
+format. If you have extensions built with the o32 abi's you will need
+to update them to n32 for them to work with Tcl. (RJ)
+*** POTENTIAL INCOMPATIBILITY ***
-6/12/96 (bug fix) Fixed a resource leak where the text widget was not
-freeing all of the TkRegions it created. This fix affects all
-platforms, but is particularly important for Win32s. (SS)
+10/23/98 (bug fix) tcl_findLibrary had a stray ] in one of the
+pathnames it searched for the initialization script. tclInitScript.h
+was incorrectly adding the parent of tcl_library to tcl_pkgPath. This
+logic was moved into init.tcl, and the initialization of auto_path was
+documented. Thanks to Donald Porter and Tom Silva for related
+patches. (BW)
-6/21/96 (configuration change) Added --enable-gcc switch to configure
-script to make Tk just like Tcl. Now Tk will not use gcc unless you
-request it explicitly. (JO)
+10/29/98 (bug fix) Fixed Tcl_NotifyChannel to use Tcl_Preserve instead
+of Tcl_RegisterChannel so that 1) unregistered channels do not get
+closed after their first fileevent, and 2) errors that occur during
+close in a fileevent script are actually reflected by the close
+command. (BW)
-7/18/96 (bug fix) Changed "configure" script to add an extra -R switch
-(or whatever is appropriate to the platform) if the X library is in a
-nonstandard place. This guarantees that the shared library can be
-found at runtime without having to set the LD_LIBRARY_PATH variable. (JO)
+10/30/98 (bug fix) Overhaul of pkg_mkIndex to deal with transitive
+package requires and packages split among scripts and binary files.
+Also fixed ommision of global for errorInfo in tcl_findLibrary. (BW)
-7/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a
-GIF file contained multiple images. (JO)
+11/08/98 (bug fix) Fixed the resource command to always detect
+the case where a file is opened a second time with the same
+permissions. IM claims that this will always cause the same
+FileRef to be returned, but in MacOS 8.1+, this is no longer the case,
+so we have to test for this explicitly. (JI)
-7/20/96 (bug fix) Deadlock could occur if a recursive series of send
-operations involved multiple displays. (JO)
+11/10/98 (feature change) When compiling with Metrowerk's MSL, use the
+exit function from MSL rather than ExitToShell. This allows MSL to
+clean up its temporary files. Thanks to Vince Darley for this
+improvement. (JI)
-7/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were
-taking up memory on Windows and Macintosh platforms. (SS)
+----------------- Released 8.0.4, 11/19/98 -------------------------
-7/30/96 (bug fix) A core dump could occur if a <Destroy> handler for
-a window tried to create a child in the half-dead window. Fixed by
-making the window's name disappear from the name table once it starts
-to be deleted. (JO)
+11/20/98 (bug fix) Handle possible NULL return in TclGetStdFiles. (RJ)
------------------ Released patch 4.1p1, 8/2/96 -----------------------
+11/20/98 (bug fix) The dltests would not build on SGI. They reported
+that you could not mix n32 with 032 binaries. The configure script
+has been modified to get the EXTRA_CFLAGS from the tcl configure
+script. [Bug id: 840] (RJ)
-4/30/96 (new feature) Added support for named virtual events. New "event"
-command to define/destroy named virtual events and to programmatically
-send both real and virtual events to Tk. (CS)
+12/3/98 (bug fix) Windows NT creates sockets so they are inheritable
+by default. Fixed socket code so it turns off this bit right after
+creation so sockets aren't kept open by exec'ed processes. [Bug: 892]
+Thanks to Kevin Kenny for this fix. (SS)
-8/6/96 (bug fix) Entry widgets were invoking scrollbar update functions
-too often. (JO)
+1/11/98 (bug fix) On HP, "info sharedlibextension" was returning
+empty string on static apps. It now always returns ".sl". (RJ)
-8/9/96 (bug fix) 7/30 change above for <Destroy> handlers broke many
-things by making window available during Destroy handler. Reworked
-fix for core dump to simply disallow creating children of half-dead
-parents. (JO)
+1/28/99 (configure change) Now support -pipe option on gcc. (RJ)
-8/12/96 (bug fix) Fixed bug where using the Copy menu item on the
-Macintosh would append a NULL character at the end of the text. (RJ)
+2/2/99 (bug fix) Fixed initialization problem on Windows where no
+searching for init.tcl would be performed if the registry keys were
+missing. (stanton)
-8/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in
-text and entry widgets when function & other non-printing keys were
-pressed. (RJ)
+2/2/99 (bug fix) Added support for HKEY_PERFORMANCE_DATA and
+HKEY_DYN_DATA keys in the "registry" command. (stanton)
-8/15/96 (configuration improvement) Changed the file patchlevel.h
-to be tkPatch.h. This avoids conflict with the Tcl file and is now
-in 8.3 format on the Windows platform. (RJ)
+2/2/99 (bug fix) ENOTSUP and EOPNOTSUPP clashed on some Linux
+variants. (stanton)
-8/19/96 (bug fix) Fixed a bug under Windows where the initial window
-position for a toplevel window was reported as +0+0, regardless of the
-actual position. (SS)
+2/2/99 (enhancement) The "open" command has been changed to use the
+object interfaces. (stanton)
-8/21/96 (bug fix) If the last character on a line in a text widget was
-a space character that didn't completely fit, the text widget would
-sometimes add an extra wrap line. (JO)
+2/2/99 (bug fix) In some cases Tcl would crash due to an overflow of
+the exception stack resulting from a missing byte code in some
+expressions. (stanton)
-8/22/96 (feature change) Complete rewrite of the grid geometry manager.
-There is a new layout algorithm that produces better (but different)
-layouts in many common cases. (SU)
+2/2/99 (bug fix) Changed configure so Linux and IRIX shared libraries
+are linked with the system libraries. (stanton)
-8/22/96 (new feature) There are two new options for the grid geometry
-manager, "grid update" which forces an immediate layout calculation,
-and a "-pad" option to rowconfigure and columnconfigure that allows for
-extra space around widgets. (SU)
+2/2/99 (bug fix) Added support for BSDI 4.x (BSD/OS-4*) to the
+configure script. (stanton)
-8/22/96 (feature change) The order in which the grid geometry manager
-reports slaves is now last-managed first. (SU)
+2/2/99 (bug fix) Fixed bug where upvar could resurrect a namespace
+variable after the namespace had been deleted. (stanton)
-8/22/96 (feature change) The column and row weights in the grid
-geometry manager are kept internally as integers, instead of floating
-point values. Floating point values are still accepted on the command line,
-but are truncated to integers. (SU)
+2/2/99 (bug fix) In some cases when creating variables, the
+interpreter result was being modified even if the TCL_LEAVE_ERR_MSG
+flag was set. (stanton)
-8/22/96 (new feature) There are four new commands for opening common
-dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and
-tk_messageBox. Native dialog boxes are used wherever available. (IL)
+2/2/99 (bug fix & new feature) Changed the socket drivers to properly
+handle failures during an async socket connection. Added a new
+fconfigure option "-error" to retrieve the failure message. See the
+socket.n manual entry for details. (stanton)
-8/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL)
+2/2/99 (bug fix) Deleting a renamed interp alias could result in a
+panic. (stanton)
-8/23/96 (feature change) Invoking the edit menu on the Macintosh now
-generates the following virtual events <<Cut>>, <<Copy>>, <<Paste>>,
-and <<Clear>> instead of faking key events. (RJ)
+2/2/99 (feature change/bug fix) Changed the behavior of "file
+extension" so that it splits at the last period. Now the extension of
+a file like "foo..o" is ".o" instead of "..o" as in previous versions.
*** POTENTIAL INCOMPATIBILITY ***
-8/25/96 (bug fix) Fixed a bug that would cause "grid x" to dump core. (SU)
-
-8/26/96 (new feature) Added the "unsupported1" command to the
-Macintosh version of Tk. This command will allow you to set the style
-of a new toplevel Window (much like overrideredirect). You can use
-this to get access to all of the Native Mac window styles. This is to
-hold you over until we get a more general solution added to the
-toplevel command. (RJ)
-
-8/26/96 (new feature) Added support to handle the zoom box on a
-Macintosh window. (Currently, you can only get a Tk window with a
-zoom box by using the "unsupported1" command. (RJ)
-
-8/27/96 (documentation change) Removed old change bars (for changes in
-Tk 4.1 and earlier releases) from manual entries. (JO)
-
------------------ Released 4.2b1, 8/30/96 -----------------------
-
-9/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files
-could be listed twice, if a long list of files were shown, and the view
-scrolled to the right, and then a different file file was shown, the
-scrollregion on the canvas wasn't being reset, so the file dialog was
-broken from then on, added an update idletasks so that the watch
-cursor was shown when the dialog was thinking. For the motif file
-dialog, fixed the weights for resizing. On the clrpicker, fixed the
-finalColor variable which caused problems when the OK button was
-"clicked" before the dialog was mapped (in the test suite). Added Ioi's
-last changes from before he left. For message boxes, if a single button
-message box is shown (currently only 'ok'), it is set to be the default
-even if not specified. (KC)
-
-9/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a
-seemingly random location. (RJ)
-
-9/5/96 (bug fix) Text widgets had rounding problems with the "yview"
-command that caused them sometimes to round to the line before the
-correct one. (JO)
-
-9/5/96 (bug fix) Changed grab code to retry grabs after errors where
-another application already has the grab. This is needed to get
-around race conditions with some window managers and will hopefully
-solve the grab errors that people see occasionally. (JO)
-
-9/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling
-of window items in canvases. (JO)
-
-9/11/96 (bug fix) The open and save file dialogs would change the
-current working directory under Windows. (SS)
-
-9/12/96 (bug fix) The Tk event system was delivering events to dead
-windows, if the event handler got reentered during a Destroy event
-handler. This could cause core dumps and other problems. (JO)
-
-9/20/96 (bug fix) In XFillRectangles under Windows, a brush was not
-being deallocated. (SS)
-
-9/20/96 (bug fix) The Mac window manager used to generate a mouseUp
-event for a top level that was recently raised to the front/active
-window which often caused a tk(priv) error. The up event is no
-longer generated with solves several problems. (RJ)
-
-9/25/96 (bug fix) The font code under Windows was leaking memory
-whenever a new font was referenced using the three part font names. (SS)
-
-9/26/96 (bug fix) The tests for the common dialogs still used the 'testevent'
-function. I updated these calls in clrpick.test, msgbox.test, filebox.test
-to use the new event gereating mechanism.
-
-9/18/96 (bug fix) Long-standing bug in bind where <Button-1><Button-1> was
-reported as <Double-Button-1>, but <Double-Key-a> was reported as "aa". (CS)
-
-9/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes
-made for virtual events. (CS)
-
-9/30/96 (feature change) Binding for new virtual events included both
-lower and upper-case, e.g., <<Copy>> was defined as <Control-c> and
-<Control-C>. Previously, widgets were directly bound to only lower-case
-bindings. The upper-case binding caused incompatibility with some existing
-Tcl programs, so the upper case bindings for <<Cut>>, <<Copy>>, and <<Paste>>
-were removed. (CS)
-
-9/30/96 (bug fix) The postscript code in the canvas widget now uses
-channels to get and write .ps files which fixed a bug on the Mac where
-an output file would have mixed EOL characters. In addition, I added
-the ability for the prolog to come from the Tk shared library on the
-Mac which makes it possible to have a standalone application. (RJ)
-
-10/1/96 (feature change) "grid forget" was renamed "grid remove". A new
-command "grid forget" was added whose semantics are the same as "pack forget"
-(SAU)
+----------------- Released 8.0.5, 3/9/99 -------------------------
+
+======== Changes for 8.0 go above this line ========
+======== Changes for 8.1 go below this line ========
+
+6/18/97 (new feature) Tcl now supports international character sets:
+ - All C APIs now accept UTF-8 strings instead of iso8859-1 strings,
+ wherever you see "char *", unless explicitly noted otherwise.
+ - All Tcl strings represented in UTF-8, which is a convenient
+ multi-byte encoding of Unicode. Variable names, procedure names,
+ and all other values in Tcl may include arbitrary Unicode characters.
+ For example, the Tcl command "string length" returns how many
+ Unicode characters are in the argument string.
+ - For Java compatibility, embedded null bytes in C strings are
+ represented as \xC080 in UTF-8 strings, but the null byte at the end
+ of a UTF-8 string remains \0. Thus Tcl strings once again do not
+ contain null bytes, except for termination bytes.
+ - For Java compatibility, "\uXXXX" is used in Tcl to enter a Unicode
+ character. "\u0000" through "\uffff" are acceptable Unicode
+ characters.
+ - "\xXX" is used to enter a small Unicode character (between 0 and 255)
+ in Tcl.
+ - Tcl automatically translates between UTF-8 and the normal encoding for
+ the platform during interactions with the system.
+ - The fconfigure command now supports a -encoding option for specifying
+ the encoding of an open file or socket. Tcl will automatically
+ translate between the specified encoding and UTF-8 during I/O.
+ See the directory library/encoding to find out what encodings are
+ supported (eventually there will be an "encoding" command that
+ makes this information more accessible).
+ - There are several new C APIs that support UTF-8 and various encodings.
+ See Utf.3 for procedures that translate between Unicode and UTF-8
+ and manipulate UTF-8 strings. See Encoding.3 for procedures that
+ create new encodings and translate between encodings. See
+ ToUpper.3 for procedures that perform case conversions on UTF-8
+ strings.
+
+9/18/97 (enhancement) Literal objects are now shared by the ByteCode
+structures created when compiled different scripts. This saves up to 45%
+of the total memory needed for all literals. (BL)
+
+9/24/97 (bug fixes) Fixed Tcl_ParseCommand parsing of backslash-newline
+sequences at start of command words. Suppressed Tcl_EvalDirect error logging
+if non-TCL_OK result wasn't an error. (BL)
+
+10/17/97 (feature enhancement) "~username" now refers to the users' home
+directory on Windows (previously always returned failure). (CCS)
+
+10/20/97 (implementation change) The Tcl parser has been completely rewritten
+to make it more modular. It can now be used to parse a script without actually
+executing it. The APIs for the new parser are not correctly exported, but
+they will eventually be exported and augmented with Tcl commands so that
+Tcl scripts can parse other Tcl scripts. (JO)
+
+10/21/97 (API change) Added "flags" argument to Tcl_EvalObj, removed
+Tcl_GlobalEvalObj procedure. Added new procedures Tcl_Eval2 and
+Tcl_EvalObjv. (JO)
*** POTENTIAL INCOMPATIBILITY ***
-10/1/96 (feature change) grid no longer accepts floating point values for
-row or column weights, integers must be used. (SAU)
+10/22/97 (API change) Renamed Tcl_ObjSetVar2 and Tcl_ObjGetVar2 to
+Tcl_SetObjVar2 and Tcl_GetObjVar2 (for consistency with other C APIs)
+and changed the name arguments to be strings instead of objects. (JO)
*** POTENTIAL INCOMPATIBILITY ***
-10/1/96 (feature change) "grid {column,row}configure <master> <index>"
-returns a list of option value pairs for all of the row or column
-constraints. It used to return an error. (SAU)
+10/27/97 (enhancement) Bytecode compiler rewritten to use the new Tcl
+parser. (BL)
-10/1/96 (bug fix) "The way grid handles '^' short-cuts was re-written
-to eliminate core dumps. (SAU)
+11/3/97 (New routines) Added Tcl_AppendObjToObj, which appends the
+string rep of one Tcl_Obj to another. Added Tcl_GetIndexFromObjStruct,
+which is similar to Tcl_GetIndexFromObj, except that you can give an
+offset between strings. This allows Tcl_GetIndexFromObjStruct to be
+called with a table of records which have strings in them. (SRP)
-10/3/96 (feature change) A virtual event binding associated with a
-given physical event is now considered less specific than a binding for
-that same physical event, all other things being equal. (CS).
+12/4/97 (enhancement) New Tcl expression parser added. Added new procedure
+Tcl_ParseExpr and new token types TCL_TOKEN_SUB_EXPR and
+TCL_TOKEN_OPERATOR. Expression compiler is reimplemented to use this
+parser. (BL)
-10/3/96 (bug fix) Under Windows text placed on the clipboard did not
-undergo CRLF translation when delivered to other applications. (SS)
+12/9/97 (bug fix) Tcl_EvalObj() increments/decrements the refcount of the
+script object to prevent the object from deleting itself while in the
+middle of being evaluated. (CCS)
-10/3/96 (bug fix) Copying an image onto itself with a zoom factor that
-caused the image to grow was accessing freed memory. (SS)
+12/9/97 (bug fix) Memory leak in Tcl_GetsObjCmd(). (CCS)
-10/3/96 (bug fix) Under Windows, the image blank subcommand did not
-work. (SS)
+12/11/97 (bug fix) Environment array leaked memory when compiled with
+Visual C++. (SS)
-10/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC
-were not implemented, and XSetLineAttributes did not correctly update
-the GC. (SS)
+12/11/97 (bug fix) File events and non-blocking I/O did not work on
+pipes under Windows. Changed to use threads to achieve non-blocking
+behavior. (SS)
-10/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not
-handled properly. (SS)
+12/18/97 (bug fixes) Fixed segfault in "namespace import"; importing a
+procedure that causes a cycle now returns an error. Modified "info procs",
+"info args", "info body", and "info default" to return information about
+imported procedures as well as procedures defined in a namespace. (BL)
-10/10/96 (bug fix) Under Windows, images of depth other than 8 or 24
-bits were not being rendered properly. (SS)
+12/19/97 (enhancement) Added new Tcl_GetString() procedure that can be used
+in place of Tcl_GetStringFromObj() if the string representation's length
+isn't needed. (BL)
-10/10/96 (bug fix) Under Windows, bitmap subimages were not correctly
-displayed. (SS)
+12/18/97 (bug fix) In the opt argument parsing package: if the description
+had only flags, the "too many arguments" case was not detected. The default
+value was not used for the special "args" ending argument. (DL)
-10/14/96 (bug fix) Under Window, wm resizable would constrain both
-programatic resizes as well as user resizes. (SS)
+1/7/98 (clean up) Moved everything not absolutly necessary out of init.tcl
+procs now in auto.tcl and package.tcl can be autoloaded if needed. (DL)
------------------ Released 4.2, 10/16/96 -----------------------
+1/7/98 (enhancement) tcltest made at install time will search for it's
+init.tcl where it is, even when using virtual path compilation. (DL)
-10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause
-a crash when used with a clipping bitmap. (SS)
+1/8/98 (os bug workaround) when needed, using a replacement for memcmp so
+string compare "char with high bit set" "char w/o high bit set" returns
+the expected value on all platforms. (DL)
-10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog
-on the Macintosh to the shared library for Tk. (RJ)
+1/8/98 (unix portability/configure) building from .../unix/targetName/
+subdirectories and simply using "../configure" should now work fine. (DL)
-10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an
-error due to a misplaced common in library/menu.tcl. (JO)
-
-10/23/96 (bug fix) Errors in files sourced by the Macintosh
-"Source..." menu are now correctly reported via the background
-error mechanism. (RJ)
+1/14/98 (enhancement) Added new regular expression package that
+supports AREs, EREs, and BREs. The new package includes new escape
+characters, meta-syntax, and character classes inside brackets.
+Regexps involving backslashes may behave differently. (MH)
+*** POTENTIAL INCOMPATIBILITY ***
-10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation
-that caused refreshes to not occur for canvases with embedded
-windows. (RJ)
+1/16/98 (os workaround) Under windows, "file volume" was causing chatter
+and/or several seconds of hanging when querying empty floppy drives.
+Changed implementation to call an empirically-derived function that doesn't
+cause this. (CCS)
-10/24/96 (bug fix) Provided workaround for Apple bug that doesn't
-handle zooming correctly for floating windows. (RJ)
+1/16/98 (enhancement) Converted regular expressions to a Tcl_Obj type so
+their compiled form gets cached automatically. Reduced NSUBEXP from 100
+to 20. (BW)
-10/24/96 (bug fix) Macintosh tearoff menus are now correctly
-displayed as Mac floating windows. (RJ)
+1/16/98 (documentation) Change unclear documentation and comments for
+functions like Tcl_TranslateFileName() and Tcl_ExternalToUtfDString(). Now
+it explicitly says they take an uninitialized or free DString. A DString
+that is "empty" or "not holding anything" could have been interpreted as one
+currently with a zero length, but with a large dynamically allocated buffer.
+(CCS)
-11/1/96 (bug fix) Restored manual page for procedures like
-Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted
-when Tk_CreateMainWindow procedure was decommissioned. (JO)
+----------------- Released 8.1a1, 1/22/98 -----------------------
-11/19/96 (bug fix) Fixed bugs in postscript code that would cause the
-prefix to not be included and the output file to have the wrong
-permissions. (RJ)
+1/28/98 (new feature) Added a "-direct" optional flag to pkg_mkIndex
+to generate direct loading package indexes (such those you need
+if you use namespaces and plan on using namespace import just after
+package require). pkg_mkIndex still has limitations regarding
+package dependencies but errors are now ignored and with -direct, correct
+package indexes can be generated even if there are dependencies as long
+as the "package provide" are done early enough in the files. (DL)
+
+1/28/98 (enhancement) Performance tuning of regexp and regsub. (CCS)
+
+1/28/98 (bug fix) regexp and regsub with "-indices" returned the byte-offsets
+of the characters in the UTF-8 representation, not the character offsets
+themselves. (CCS)
+
+1/28/98 (bug fix) "clock format 0 -format %Z -gmt 1" would return the local
+timezone string instead of "GMT" on Solaris and Windows.
+
+1/28/98 (bug fix) Restore tty settings when closing serial device on Unix.
+This is good behavior when closing real serial devices, essential when
+closing the pseudo-device /dev/tty because the user's terminal settings
+would be left useless, in raw mode, when tcl quit. (CCS)
+
+1/28/98 (bug fix) Tcl_OpenCommandChannel() was modifying the contents of the
+argv array passed to it, causing problems for any caller that wanted to
+continue to use the argv array after calling Tcl_OpenCommandChannel(). (CCS)
+
+2/1/98 (bug fix) More bugs with %Z in format string argument to strftime():
+1. Borland always returned empty string.
+2. MSVC always returned the timezone string for the current time, not the
+ timezone string for the specified time.
+3. With MSVC, "clock format 0 -format %Z -gmt 1" would return "GMT" the first
+ time it was called, but would return the current timezone string on all
+ subsequent calls. (CCS)
+
+2/1/98 (bug fix) "file stat" was broken on Windows.
+1. "file stat" of a root directory (local or network) or a relative path that
+ resolved to a root directory (c:. when in pwd was c:/) was returning error.
+2. "file stat" on a regular file (S_IFREG), the st_mode was sign extended to
+ a negative int if the platform-dependant type "mode_t" was declared as a
+ short instead of an unsigned short.
+3. "file stat" of a network directory, the st_dev was incorrectly reported
+ as the id of the last accessed local drive rather than the id of the
+ network drive. (CCS)
+
+2/1/98 (bug fix) "file attributes" of a relative path that resolved to a
+root directory was returning error. (CCS)
+
+2/1/98 (bug fix) Change error message when "file attribute" could not
+determine the attributes for a file. Previously it would return different
+error messages on Unix vs. Windows vs. Mac. (CCS)
+
+2/4/98 (bug fixes) Fixed several instances of bugs where the parser/compiler
+would reach outside the range of allocated memory. Improved the array
+lookup algorithm in set compilation. (DL)
+
+2/5/98 (change) The TCL_PARSE_PART1 flag for Set/Get(Obj)Var2 C APIs is now
+deprecated and ignored. The part1 is always parsed when the part2 argument
+is NULL. This is to avoid a pattern of errors for extension writers converting
+from string based Tcl_SetVar() to new Tcl_SetObjVar2() and who could easily
+forget to provide the flag and thus get code working for normal variables
+but not for array elements. The performance hit is minimal. A side effect
+of that change is that is is no longer possible to create scalar variables
+that can't be accessed by tcl scripts because of their invalid name
+(ending with parenthesis). Likewise it is also parsed and checked to
+ensure that you don't create array elements of array whose name is a valid
+array element because they would not be accessible from scripts anyway.
+Note: There is still duplicate array elements parsing code. (DL)
+*** POTENTIAL INCOMPATIBILITY ***
-12/2/96 (bug fix) Fixed problem with canvas lines where it didn't
-compute bounding boxes correctly for zero-width lines: this could
-potentially leave garbage on the screen when items were deleted or
-moved. (JO)
+2/11/98 (bug fix) Sharing objects between interps, such as by "interp
+eval" or "send" could cause a crash later when dereferencing an interp
+that had been deleted, given code such as:
+ set a {set x y}
+ interp create foo
+ interp eval foo $a
+ interp delete foo
+ unset a
+Interp "foo" was gone, but "a" had a internal rep consisting of bytecodes
+containing a dangling pointer to "foo". Unsetting "a" would attempt to
+return resources back to "foo", causing a crash as random memory was
+accessed. The lesson is that that if an object's internal rep depends on
+an interp (or any other data structure) it must preserve that data in
+some fashion. (CCS)
+
+2/11/98 (enhancement) The "interp" command was returning inconsistent error
+messages when the specified slave interp could not be found. (CCS)
+
+2/11/98 (bug fix) Result codes like TCL_BREAK and TCL_CONTINUE were not
+propagating through the master/slave interp boundaries, such as "interp
+eval" and "interp alias". TCL_OK, TCL_ERROR, and non-standard codes like
+teh integer 57 work. There is still a question as to whether TCL_RETURN
+can/should propagate. (CCS)
+
+2/11/98 (bug fix) TclCompileScript() was derefering memory 1 byte before
+start of the string to compile, looking for ']'. (CCS,DL)
+
+2/11/98 (bug fix) Tcl_Eval2() was derefering memory 1 byte before start
+of the string to eval, looking for ']'. (CCS,DL)
+
+2/11/98 (bug fix) Compiling "set a(b" was running off end of string. (CCS,DL)
+
+2/11/98 (bug fix) Windows initialization code was dereferencing
+uninitialized memory if TCL_LIBRARY environment didn't exist. (CCS)
+
+2/11/98 (bug fix) Windows "registry" command was dereferencing
+uninitialized memory when constructing the $errorCode for a failed
+registry call. (CCS)
+
+2/11/98 (enhancement) Eliminate the TCL_USE_TIMEZONE_VAR definition from
+configure.in, because it was the same information as the already existing
+HAVE_TM_ZONE definition. The lack of HAVE_TM_ZONE is used to work around a
+Solaris and Windows bug where "clock format [clock sec] -format %Z -gmt 1"
+produces the local timezone string instead of "GMT". (CCS)
+
+2/11/98 (bug fix) Memleaks and dereferencing of uninitialized memory in
+regexp if an error occurred while compiling a regular expression. (CCS).
+
+2/18/98 (new feature) Added mutexes and thread local storage in order
+to make Tcl thread safe. For testing purposes, there is a testthread
+command that creates a new thread and an interpreter inside it. See
+thread.test for examples, but this script-level interface is not fixed.
+Each thread has its own notifier instance to manage its own events,
+and threads can post messages to each other's message queue.
+This uses pthreads on UNIX, and native thread support on other platforms.
+You enable this by configuring with --enable-threads. Note that at
+this time *Tk* is still not thread safe. Special thanks to
+Richard Hipp: his earlier implementation inspired this work. (BW, SS, JI)
+
+2/18/98 (hidden feature change) The way the env() array is shared among
+interpreters changed. Updates to env used to trigger write traces in
+other interpreters. This undocumented feature is no longer implemented.
+Instead, variable tracing is used to keep the C-level environ array in sync
+with the Tcl-level env array. This required adding TCL_TRACE_ARRAY support
+to Tcl_TraceVar2 so that array names works properly. (BW)
+*** POTENTIAL INCOMPATIBILITY ***
-12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y
-which was returning garbage. (RJ)
+2/18/98 (enhancement) Conditional compilation for unix systems (e.g.,
+IRIX, SCO) that use f_bsize instead of st_blksize to determine disk block
+size. (CCS)
-12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was
-incorrect for non-zero values of ipadx and ipady (SU)
+2/23/98 (bug fix) Fixed the emulation of polling selects in the threaded
+version of the Unix notifier. The bug was showing up on a multiprocessor
+as starvation of the notifier thread. (BW)
-12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an
-already managed slave is re-managed in a different master. (SAU)
+----------------- Released 8.1a2, Feb 23 1998 -----------------------
------------------ Released 4.2p1, 12/8/96 (Mac only) --------------
+9/22/98 (bug fix) Changed the value of TCL_TRACE_ARRAY so it no longer
+conflicts with the deprecated TCL_PARSE_PART1 flag. This should
+improve portability of C code. (stanton)
-1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync
-with the Macintosh clipboard on start-up. (RJ)
+10/6/98 (bug fix) The compile procedure for "if" incorrectly attempted
+to match against the literal string "if", resulting in a stack
+overflow when "::if" was compiled. It also would incorrectly accept
+"if" instead of "elsif" in later clauses. (stanton)
------------------ Released 4.2p2, 1/31/97 --------------
+10/15/98 (new feature) Added a "totitle" subcommand to the "string"
+command to convert strings to capitalize the first character of a string
+and lowercase all of the other characters. (stanton)
-----------------------------------------------------------
-Changes for Tk 4.2 go above this line.
-Changes for Tk 4.3 go below this line.
-----------------------------------------------------------
+10/15/98 (bug fix) Changed regexp and string commands to properly
+handle case folding according to the Unicode character
+tables. (stanton)
-9/19/96 (improvement) Implemented table driven mechanism for deciding
-whether a command is safe. If it is added by Tk_Init and it appears in the
-table then it is kept, otherwise it is removed in a safe interpreter. (JL)
+10/21/98 (new feature) Added an "encoding" command to facilitate
+translations of strings between different character encodings. See
+the encoding.n manual entry for more details. (stanton)
-10/18/96 (new feature) Added support for application embedding:
- - Frame and toplevel widgets now have a -container option, which
- turns the widget into a container.
- - Toplevel widgets have a -use option for requesting that the
- widget be embedded in another application.
- - Wish also supports a -use command-line option.
-Embedding is fully supported under Unix, but the implementation is
-not complete under Windows or the Macintosh (it works just well
-enough to support the Tcl/Tk plugin). (JO)
+11/3/98 (bug fix) The regular expression character classification
+syntax now includes Unicode characters in the supported
+classes. (stanton)
-10/22/96 (bug fix) The commands "winfo rootx" and "winfo rooty" didn't
-work for non-toplevel windows in embedded applications: they returned
-the coordinates of the nearest toplevel. (JO)
+11/6/98 (bug fix) Variable traces were causing crashes when upvar
+variables went out of scope. [Bug: 796] (stanton)
-12/02/96 (new feature) Implemented Safe Tk. Tk can now be loaded into a
-safe interpreter that has been created with tcl_safeCreateInterp, by
-calling load {} Tk interpname. (JL)
+11/9/98 (bug fix) "format" now correctly handles multibyte characters
+in %s format strings. (stanton)
-12/02/96 (new feature) A safe Tk interpreter can no longer generate
-postscript output from a canvas. (JL)
+11/10/98 (new feature) "regexp" now accepts three new switches
+("-line", "-lineanchor", and "-linestop") that control how regular
+expressions treat line breaks. See the regexp manual entry for more
+details. (stanton)
-12/02/96 (new feature) Added -channel option to photo command to allow
-image data to be read from a channel. This is useful in safe Tk
-interpreters where the data cannot be read directly from a file. (JL)
+11/17/98 (bug fix) "scan" now correctly handles Unicode
+characters. (stanton)
-----------------------------------------------------------
-Changes for Tk 4.3 go above this line.
-Changes for Tk 8.0 go below this line.
-----------------------------------------------------------
+11/17/98 (new feature) "scan" now supports XPG3 position specifiers
+and the "%n" conversion character. See the "scan" manual entry for
+more details. (stanton)
+
+11/17/98 (bug fix) The Tcl memory allocator now returns 8-byte aligned
+chunks of memory which improves performance on Windows and avoids
+crashes on other platforms. [Bug: 834] (stanton)
+
+11/23/98 (bug fix) Applied various regular expression performance bug
+fixes supplied by Henry Spencer. (stanton)
+
+11/30/98 (bug fix) Fixed various thread related race conditions. [Bug:
+880 & 607] (stanton)
+
+11/30/98 (bug fix) Fixed a number of memory overflow and leak
+bugs. [Bug: 584] (stanton)
+
+12/1/98 (new feaure) Added support for Korean encodings. (stanton)
+
+12/1/98 (feature change) Changed the Tcl_EvalObjv interface to remove
+the string and length arguments.
+*** POTENTIAL INCOMPATIBILITY with previous alpha releases ***
+
+12/2/98 (bug fix) Fixed various bugs related to line feed
+translation. [Bug: 887] (stanton)
+
+12/4/98 (new feature) Added a message catalog facility to help with
+localizing Tcl scripts. Thanks to Mark Harrison for contributing the
+initial implementation of the "msgcat" package. (stanton)
+
+12/7/98 (bug fix) The memory allocator was failing to update the
+block list for large memory blocks that were reallocated into a
+different address. [Bug: 933] (stanton)
+
+----------------- Released 8.1b1, Dec 10 1998 -----------------------
+
+12/22/98 (performance improvement) Improved the -command option of the
+lsort command to better use the object system for improved
+performance (about 5x speed up). Thanks to Syd Polk for suppling the
+patch. [RFE: 726] (rjohnson)
+
+2/10/99 (bug fix) Restored the Tcl_ObjSetVar2/Tcl_ObjGetVar2
+interfaces from 8.0 and renamed the Tcl_GetObjVar2/Tcl_SetObjVar2
+interfaces to Tcl_GetVar2Ex and Tcl_SetVar2Ex. This should provide
+better compatibility with 8.0. (stanton)
+*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases ***
+
+2/10/99 (bug fix) Made the eval interfaces compatible with 8.0 by
+renaming Tcl_EvalObj to Tcl_EvalObjEx, renaming Tcl_Eval2 to
+Tcl_EvalEx and restoring Tcl_EvalObj and Tcl_GlobalEvalObj interfaces
+so they match Tcl 8.0. (stanton)
+*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases ***
+
+2/25/99 (bug fix/new feature) On Windows, the channel drivers for
+consoles and serial ports now completely support file events. (redman)
+
+3/5/99 (bug fix) Integrated patches to fix various configure problems
+that affected HP-UX-11, 64-bit IRIX, Linux, and Solaris. (stanton)
+
+3/9/99 (bug fix) Integrated various AIX related patches to improve
+support for shared libraries. (stanton)
+
+3/9/99 (new feature) Added tcl_platform(user) to provide a portable
+way to get the name of the current user. (welch)
+
+3/9/99 (new feature) Integrated the stub library mechanism contributed
+by Jan Nijtmans, Paul Duffin, and Jean-Claude Wippler. This feature
+should make it possible to write extensions that support multiple
+versions of Tcl simultaneously. It also makes it possible to
+dynamically load extensions into statically linked interpreters. This
+patch includes the following changes:
+ - Added a Tcl_InitStubs() interface
+ - Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx,
+ and Tcl_PkgPresent.
+ - Added va_list versions of all VARARGS functions so they can be
+ invoked from wrapper functions.
+See the manual for more information. (stanton)
+
+
+3/10/99 (feature change) Replaced Tcl_AlertNotifier with
+Tcl_ThreadAlert since the Tcl_AlertNotifier function relied on passing
+internal data structures. (stanton)
+*** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases ***
+
+3/10/99 (new feature) Added a Tcl_GetVersion API to make it easier to
+check the Tcl version and patch level from C. (redman)
+
+3/14/99 (feature change) Tried to unify the TclpInitLibrary path
+routines to look in similar places from Windows to UNIX. The new
+library search path is: TCL_LIBRARY, TCL_LIBRARY/../tcl8.1, relative
+to DLL (Windows Only) relative to installed executable, relative to
+develop executable, and relative to compiled-in in location (UNIX
+Only.) This fix included:
+ - Defining a TclpFindExecutable
+ - Moving Tcl_FindExecutable to a common area in tclEncoding.c
+ - Modifying the TclpInitLibraryPath routines.
+(surles)
+
+3/14/99 (feature change) Added hooks for TclPro Wrapper to initialize
+the location of the encoding files and libraries. This fix included:
+ - Adding the TclSetPerInitScript routine.
+ - Modifying the Tcl_Init routines to evaluate the non-NULL
+ pre-init script.
+ - Adding the Tcl_SetdefaultEncodingDir and Tcl_GetDefaultEncodingDir
+ routines.
+ - Modifying the TclpInitLibrary routines to append the default
+ encoding dir.
+(surles)
-9/1/96 (new features) The font mechanism in Tk has been completely
-reworked:
- - Font names need not be nasty X LFDs: more intuitive names like
- {Times 12 Bold} can also be used. See the manual entry font.n
- for details.
- - Font requests always succeed now. If the requested font is not
- available, Tk finds the closest available font and uses that one.
- - Tk now supports named fonts whose precise attributes can be
- changed dynamically. If a named font is changed, any widget
- using that font updates itself to reflect the change.
- - There is a new command "font" for creating named fonts and querying
- various information about fonts.
- - There are now officially supported C APIs for measuring and
- displaying text. If you use these APIs now, your code will
- automatically handle international text when internationalization
- is added to Tk in a future release. See the manual entries
- MeasureChar.3, TextLayout.3, and FontId.3.
- - The old C procedures Tk_GetFontStruct, Tk_NameOfFontStruct, and
- Tk_FreeFontStruct have been replaced with more portable procedures
- Tk_GetFont, Tk_NameOfFont, and Tk_FreeFont.
- *** POTENTIAL INCOMPATIBILITY ***
-(CS)
-
-9/24/96 (bug fix) Under Windows, transient windows would be destroyed
-if their master was destroyed, even if the transient window was not a
-child of the master. (SS)
-
-10/18/96 (new features) A -menu option has been added to the toplevel
-widget command, which allows a menu to operate as a menubar. On the
-Macintosh, the menubar is displayed accross the top of the main monitor,
-just like with other applications. Under Windows and Unix, the menu is
-attached to the toplevel window. Also, changed some semantics.
-Tearoff menus will now reflect changes to the menu it was
-torn off from, and are deleted when the master menu is
-deleted. Tearoffs also reflect more look-and-feel of the
-platforms they are running on. (SRP)
-
-10/31/96 (bug fix) Under Windows, missing system cursors would
-generate an error instead of falling through to the Tk cursor of the
-same name. (SS)
-
-11/7/96 (feature change) Under Unix, default borderwidth is now 1 to
-more closely approximate CDE. (SS)
-Note: this change was undone on 6/12/97, restoring the default border
-width to 2 again. (JO)
-
-11/7/96 (new feature) The button widget now supports a -default option
-that draws a platform specific default ring around the widget. (SS)
-
-11/7/96 (feature change) Under Windows, buttons and scrollbars now
-have native look and feel. This affects the default class bindings
-and the way the some configuration options are interpreted. Refer to
-the widget manual pages for more details. (SS)
+3/14/99 (feature change) Test suite now uses "test" namespace to
+define the test procedure and other auxiliary procedures as well as
+global variables.
+ - Global array testConfige is now called ::test::testConfig.
+ - Global variable VERBOSE is now called ::test::verbose, and
+ ::test::verbose no longer works with numerical values. We've
+ switched to a bitwise character string. You can set
+ ::test::verbose by using the -verbose option on the Tcl command
+ line.
+ - Global variable TESTS is now called ::test::matchingTests, and
+ can be set on the Tcl command line via the -match option.
+ - There is now a ::test::skipTests variable (works similarly to
+ ::test::matchTests) that can be set on the Tcl command line via
+ the -match option.
+ - The test suite can now be run in any working directory. When
+ you run "make test", the working directory is nolonger switched
+ to ../tests.
+(hirschl)
*** POTENTIAL INCOMPATIBILITY ***
-11/19/96 (bug fix) Under Windows, images were incorrectly drawn on
-16-bit displays. (SS)
-
-11/19/96 (bug fix) Under Windows, the class name for the main window
-(.) was not properly generated from argv0. (SS)
-
-11/20/96 (bug fix) Fixed a couple of bugs in the Canvas widget. The
-postscript file is now created with the correct permissions. Also,
-the prolog is now properly included in all cases. (RJ)
-
-11/22/96 (bug fix) Under Windows, the initial directory and file names
-were not properly translated before being passed to the system
-open/save file dialogs. So forward slashes were not converted to
-backslashes, and tilde substitution was not performed. (SS)
+--------------- Released 8.1b2, March 16, 1999 ----------------------
-11/25/96 (feature change) Under Windows and Macintosh, the selection
-highlight is now hidden whenever an entry or text widget loses focus.
-Also, the previous selection information is not lost when a new
-selection is made in a different widget. (SS)
+3/18/99 (bug fix) Fixed missing/incorrect characters in shift-jis table
+(stanton)
-11/26/96 (new feature) Added support for images as primitive types in
-text widgets. (SU)
-
-11/30/96 (configuration improvement) Modified configure.in to handle the
-case where Tcl and Tk are installed in different places by including both
-their library directories in the library search path for Tk. (JO)
+3/18/99 (feature change) The glob command ignores the
+FS_CASE_IS_PRESERVED bit on file systesm and always returns
+exactly what it gets from the system. (stanton)
+*** POTENTIAL INCOMPATIBILITY ***
-12/3/96 (bug fixes) Fixed two bugs related to canvas lines that caused
-the screen to be incorrectly refreshed, leaving garbage on the screen.
-One bug was related to lines with width zero, and the other was
-related to lines with very long miters. (JO)
+3/19/99 (new feature) Added support for --enable-64bit. For now,
+this is only supported on Solaris 7 64bit (SunOS 5.7) using the Sun
+compiler. (redman)
-12/4/96 (bug fix) The "update" command was only syncing the display
-for its main window. Changed to sync all displays. (JO)
+3/23/99 (bug fix) Fixed fileevents and gets on Windows consoles and
+serial devices so that non-blocking channels do not block on partial
+input lines. (redman)
-12/5/96 (bug fix) Color deallocation would occasionally cause a panic
-under Windows. (SS)
+3/23/99 (bug fix) Added a new Tcl_ServiceModeHook interface.
+This is used on Windows to avoid the various problems that people
+have been seeing where the system hangs when tclsh is running
+outside of the event loop. As part of this, renamed
+TclpAlertNotifier back to Tcl_AlertNotifier since it is public.
+(stanton)
-12/5/96 (bug fix) Errors during startup were silently discarded under
-Windows. (SS)
-
-12/5/96 (bug fix) Errors during startup were silently discarded under
-Windows. (SS)
+3/23/99 (feature change) Test suite now uses "tcltest" namespace to
+define the test procedure and other auxiliary procedures as well as
+global variables. The previously chosen "test" namespace was thought
+to be too generic and likely to create conflits.
+(hirschl)
+*** POTENTIAL INCOMPATIBILITY ***
-12/11/96 (bug fix) Text widgets weren't considering the -spacing1
-and -spacing2 options when computing their desired geometry. (JO)
+3/24/99 (bug fix) Make sockets thread safe on Windows.
+(redman)
-12/12/96 (feature change) Option menus using tk_optionMenu were
-created with command entries that set the option menu's variable in a
-command string. This has been changed so that the option menu's
-entries are now radiobutton entries so that the entries that matches
-the variable is now checked when the menu is posted. (SRP)
+3/24/99 (bug fix) Fix cases where expr would incorrect return
+a floating point value instead of an integer. (stanton)
-12/12/96 (feature change) The destroy command no longer returns an
-error when a window does not exist. (SRP)
+3/25/99 (bug fix) Added ASCII to big5 and gb2312 encodings.
+(stanton)
-12/13/96 (new feature) grid row/column-configure accepts a list of
-indices in addition to a single index. (SU)
+3/25/99 (feature change) Changed so aliases are invoked at current
+scope in the target interpreter instead of at the global scope. This
+was an incompatibility introduced in 8.1 that is being removed.
+(stanton)
+*** POTENTIAL INCOMPATIBILITY with previous beta releases ***
-12/17/96 (bug fix) Under Windows, command line was not being parsed
-correctly if it contained the literal characters \" (CS)
+3/26/99 (feature change) --enable-shared is now the default and build
+Tcl as a shared library; specify --disable-shared to build a static Tcl
+library and shell.
+*** POTENTIAL INCOMPATIBILITY ***
-12/17/96 (feature change) Native Windows labels do not get a focus-ring
-border. (CS)
+3/29/99 (bug fix) Removed the stub functions and changed the stub
+macros to just use the name without params. Pass &tclStubs into the
+interp (don't use tclStubsPtr because of collisions with the stubs on
+Solaris). (redman)
-12/17/96 (bug fix) Under Windows, colors specified as "#XXYYZZ" where XX, YY,
-or ZZ were not valid hex digits were getting a random color value instead of
-being an error. (CS)
+3/30/99 (bug fix) Loadable modules are now unloaded at the last
+possible moment during Tcl_Finalize to fix various exit-time crashes.
+(welch)
------------------ Released 8.0a1, 12/17/96 -----------------------
+3/30/99 (bug fix) Tcl no longer calls setlocale(). It looks at
+env(LANG) and env(LC_TYPE) instead. (stanton)
-12/23/96 (bug fix) Fixed two menu bugs:
- - Menus could get stacked below other windows so that they weren't
- visible when posted (especially under olvwm and fvwm).
- - Under olvwm if you pressed button 1 over an entry in a new-style
- menubar, the menu didn't appear until you moved the mouse slightly.
-(JO)
+4/1/99 (bug fix) Fixed the Ultrix multiple symbol definition problem.
+Now, even Tcl includes a copy of the Tcl stub library. (redman)
-1/6/97 (bug fix) Focus could accidentally get grabbed by an application
-away from the rightful focus owner if the focus recently changed from one
-application to another. (JO)
+4/1/99 (bug fix) Internationalized the registry package.
-1/6/97 (bug fix) Under Windows, the console was appearing even for
-non-interactive applications. This was a side effect of a general
-problem with the wm state of windows that were being mapped for the
-first time. (SS)
+4/1/99 (bug fix) Changed the implemenation of Tcl_ConditionWait and
+Tcl_ConditionNotify on Windows. The new algorithm eliminates a race
+condition and was suggested by Jim Davidson. (welch)
-1/6/97 (bug fix) Under Windows, the initialization code was not
-looking in the right directory for the Tk libraries when the program
-being run was not in the Tcl installation heirarchy. (SS)
+4/2/99 (new apis) Made various Unicode utility functions public.
+Tcl_UtfToUniCharDString, Tcl_UniCharToUtfDString, Tcl_UniCharLen,
+Tcl_UniCharNcmp, Tcl_UniCharIsAlnum, Tcl_UniCharIsAlpha,
+Tcl_UniCharIsDigit, Tcl_UniCharIsLower, Tcl_UniCharIsSpace,
+Tcl_UniCharIsUpper, Tcl_UniCharIsWordChar, Tcl_WinUtfToTChar,
+Tcl_WinTCharToUtf (stanton)
-1/8/97 (bug fix) Under Windows, the windows were not being unmapped
-properly, which led to strange packer behavior. (SS)
+4/2/99 (feature change) Add new DDE package and removed the Tk
+send command from the Windows version. Changed DDE-based send
+code into "dde eval" command. The DDE package can be loaded
+into tclsh, not just wish. Windows only. (redman)
-1/8/97 (bug fix) The "winfo containing" command (and the Tk_CoordsToWindow
-procedure) didn't work properly on Unix in the presence of embedding or
-menubars. (JO)
+4/5/99 (bug fix) Changed safe-tcl so that the encoding command
+is an alias that masks out the "encoding system" subcommand.
+(redman)
-1/15/97 (bug fix) Invoking "destroy ." as the command from a menu would
-cause Tk to crash because TkMainInfo was freed before menu released its
-resources. This bug had already been fixed for scrollbars and buttons. (CS)
+4/5/99 (bug fix) Configure patches to improve support for
+OS/390 and BSD/OS 4.*. (stanton)
-1/15/97 (bug fix) Tk is now working under Win32s again, including Win32
-version 1.25. Fixed separate problems in fonts and dialogs. (CS)
+4/5/99 (bug fix) Fixed crash in the clock command that occurred
+with negative time values in timezones east of GMT. (stanton)
-1/15/97 (feature change) Under Windows, font sizes are now specified in
-points, not pixels. The mapping between pointsize and pixels depends on
-Windows having accurate metrics for the monitor (plug&play helps). Font
-metrics are still reported in pixels. (CS)
+4/6/99 (bug fix) Moved the "array set" C level code into a common
+routine (TclArraySet). The TclSetupEnv routine now uses this API to
+create an env array w/ no elements. This fixes the bug caused when
+every environ varaible is removed, and the Tcl env variable is
+synched. If no environ vars existed, the Tcl env var would never be
+created. (surles)
-1/21/97 (bug fix) Grid no longer reports rows or columns "out of range"
-when requesting their constraints. (SAU)
+4/6/99 (bug fix) Made the Env module I18N compliant. (surles)
-1/21/97 (bug fix) Fixed some window manager related bugs on the
-Macintosh. Now better support global grabs. (RJ)
+4/6/99 (bug fix) Changed the FindVariable routine to TclpFindVariable,
+that now does a case insensitive string comparison on Windows, and not
+on UNIX. (surles)
-1/21/97 (bug fix) For Windows: Fixed problems with canvas items that
-used end caps. Fixed arc implementation to more closely approximate
-X. Stippling now works properly on fat lines. (SS)
+--------------- Released 8.1b3, April 6, 1999 ----------------------
-1/21/97 (bug fix) Small interlaced GIF images were not properly
-decoded. (SS)
+4/9/99 (bug fix) Fixed notifier deadlock situation when the pipe used
+to talk back notifier thread is filled with data. Found as a result of the
+focus.test for Tk hanging. (redman)
-1/21/97 (bug fix) More changes to image code to try to handle 16-bit
-displays properly under Windows. (SS)
+4/13/99 (bug fix) Fixed bug where socket -async combined with
+fileevent for writing did not work under Windows NT. (redman)
-1/21/97 (bug fix) Numerous display bugs on Unix and Macintosh are now
-fixed. Numerous binding problems for menubars under Unix are now
-fixed. Deletion of menu separators under Windows is now fixed. (SRP)
+4/13/99 (encoding fix) Restored the double byte definition of GB2312
+and added the EUC-CN encoding. EUC-CN is a variant of GB2312 that
+shifts the characters into bytes with the high bit set and includes
+ASCII as a subset. (stanton)
------------------ Released 8.0a2, 1/24/97 -----------------------
+4/27/99 (bug fix) Added 'extern "C" {}' block around the stub table
+pointer declaration so the stub library can be used from C++. (stanton)
-1/29/97 (feature change) The -transient field for menus is no longer
-supported. There is now a -type field which is used to achieve the
-same purpose that the -transient field accomplished. When a menu is
-created, the -type field controls whether the menu is a normal
-pull-down menu, a floating tearoff menu or a menubar. This option is
-normally only used by the library code and internally by the menubar
-code. (SRP)
-*** POTENTIAL INCOMPATIBILITY ***
+--------------- Released 8.1 final, April 29, 1999 ----------------------
-2/5/97 (feature change) Changed the photo image mechanism to use
-Tcl_Channels instead of FILE * as an argument to image matching
-functions. The change will make it much easier to write cross
-platform image types in Tk. Note: FILE * is no longer used anywhere
-in Tk. (RJ)
-*** POTENTIAL INCOMPATIBILITY ***
+4/22/99 (bug fix) Changed Windows NT socket implementation to avoid
+creating a communication window. This avoids the problem where the
+system hangs waiting for tclsh to respond to a system-wide synchronous
+broadcast (e.g. if you change system colors). (redman)
-2/7/97 (enhancement) Were not allowed to bind to virtual events inside of
-canvas or text widget (e.g., "$canvas bind all <<foo>> {script}" or
-"$text tag bind sel <<foo>> {script}"); it would return an error
-disallowing that binding. Now _can_ bind to a virtual event, but that
-binding inside of the canvas or text widget will only fire if the
-underlying virtual event definition is of type key, button, motion,
-enter, or leave; all other physical event types get filtered out by the
-widget before the virtual event mapping is done. (CS)
-
-2/22/97 (bug fix) Under Unix, "wm geometry +-20+-30" didn't work. (JO)
-
-2/24/97 (bug fix) The photo image didn't always zero out enough of its
-pixel and dither correction arrays. (JO)
-
-2/25/97 (bug fix) Fixed focus problem that could cause "BadMatch (invalid
-parameter attributes)" in X_SetInputFocus requests on Unix. (JO)
-
-2/25/97 (bug fix and new feature) Added new "gray75" bitmap, fixed
-"gray25" bitmap to really be 25% on (due to an ancient mistake, it
-had been only 12% on). (JO)
-
-2/28/97 (bug fix) Windows: made embedding work again on Win32 platform.
-Prevent iconification, deiconinification on embedded windows. (JL)
-
-3/4/97 (new feature) Added the ability to manipulate the Apple and
-Help menus on the Macintosh; the system menu on Windows; and to have a
-right justified Help menu on Unix. See the documentation for menu.n
-for more details. (SRP)
-
-3/4/97 (bug fix) Prevented core dump at exit if a <Destroy> binding on "."
-gets invoked from destroying a nested widget and the binding causes the
-interpreter to be deleted. The core dump was being caused by the
-interpreter not being Tcl_Preserve'd during the destroy of ".". (JL)
-
-3/4/97 (bug fix) Under Unix, when embedded Tk is running in a separate
-process, correctly handle a race condition: ignore cross-over messages from
-the X server for windows that Tk thinks it had already deleted, when the
-containing process deletes its container window. Some other race conditions
-still remain, e.g. with pixmaps, colormaps and images. (JL)
-
-3/10/97 (bug fix) Prevented core dump in generic console code due to
-following a NULL pointer when the console interpreter was already deleted.
-This may happen due to different orders of deletion possible at exit. (JL)
-
-3/10/97 (bug fix) Fixed bug on Mac and Windows that caused time to be
-ignored when considering if a single click was actually a double
-click. (RJ)
-
-3/11/97 (feature change) A major oversight has been that although it was
-documented that the Tk programmer was asking for a font in points (1/72 of an
-inch), under Unix and Mac Tk was actually asking for a font in pixels, while
-only under Windows was it using points. This caused applications to appear
-much larger when run under Windows. Now, on all platforms the (purportedly)
-correct size in points is used when asking for fonts. However, for
-compatibility with existing tk4.2 applications that depend on fonts being of
-specified pixel size, XLFDs retain their incorrect behavior of getting a
-font in pixels. (CCS)
+4/22/99 (bug fix) Added call to TclWinInit from TclpInitPlatform when
+building a static library since DllMain will not be invoked. This
+could break old code that explicitly called TclWinInit, but should be
+simpler in the long run. (stanton)
*** POTENTIAL INCOMPATIBILITY ***
-3/13/97 (new feature) "tk scaling" command to setup the mapping between
-pixels and points. This scaling factor is used by all widgets that accept
-ruler distances, not just fonts. (CCS)
-
-3/24/97 (new feature) Added "-columnbreak" option to menu
-entries. When this value is "1", the entry will appear at the top of a
-new column in a non-menubar menu. Also added "-hideMargin". Together
-with "-columnBreak", menus with palettes are now possible. (SRP)
-
-3/26/97 (new features and bug fix) Titles for tearoff menus were
-broken on the Mac and Windows. Added the ability to set the title of a
-menu when it gets torn off and override Tk's automatic generation of
-the title. On the Macintosh, whenever a menu
-label contains three dots in a row "...", the menu will instead
-display the elipses character 'É'. (SRP)
-
-3/27/97 (bug fixes) When a menu had an error executing a postcommand,
-the error information was getting lost. On Windows, a set of
-menubuttons was not highligting properly when clicking between
-windows. On Windows, post commands were getting executed twice for
-popup menus. On Macintosh, fixed problem where menubars were not
-always current. (SRP)
-
-4/11/97 (new feature) Menubuttons now have a direction flag which
-controls where the menu popups up relative to the button. (SRP)
-
-4/24/97 (bug fix) Transient windows did not obey the resizable setting
-under Windows. (SS)
-
-4/24/97 (bug fix) wm geometry did not correctly parse negative
-coordinates. (SS)
-
-4/29/97 (bug fix) Changed the canvas polygon implementation to only
-report the coordinates specified by the end user not the automatically
-generated end point of a self closing polygon. (RJ)
-*** POTENTIAL INCOMPATIBILITY ***
+4/23/99 (bug fix) Added support for the koi8-r Cyrillic
+encoding. [Bug: 1771] (stanton)
-4/23/97 (feature change) Loosened the rules on parsing font names so that
-unix-centric fonts in scripts don't break when run on Windows or Mac.
-(1) Previously, an XLFD had to specify font name, weight, slant, and size;
-now, a minimal XLFD (such as "*-times-*") will be accepted, and all
-unspecified attributes will be given default values. (2) Previously, in the
-{name size style ...} format, only the style was optional; now both the size
-and the style are optional; this solves the problem of old scripts that
-contain specifications of the form "-font fixed" or "-font times". (CCS)
-
-5/7/97 (new feature) Menus now send a virtual event <<MenuSelect>>
-when an item is highlighted in a menu. Applications can use this to
-implement context-sensitive help. (SRP)
-
-5/14/97 (bug fix) Fixed a race condition in the focus code where focus
-could be taken away from a window incorrectly. Scenario is that the main
-window creates a toplevel and assigns focus to it. When the user moves the
-mouse from the main window into the toplevel there was a race between
-two different kinds of focus events. (BW)
-
-5/20/97 (bug fix) Fixed bug where the clipboard was not rendered before
-the application exited. (SS)
-
-5/22/97 (feature change) When a Tk8.0 menu is configured, all menus
-derived from it (menubars, tearoff) mirror the changes. This was not
-true for the "-tearoff" flag. In Tk4.6, tearoff menus had the
-"-tearoff" flag turned off. Now, the "-tearoff" flag is tracked just
-as the other options are. Tearoff menus and menubars with the
-"-tearoff" option set will not display the tearoff item. This means
-that a given menu entry for a menu and a tearoff of that menu will
-match now. (SRP)
-*** POTENTIAL INCOMPATIBILITY ***
+4/28/99 (bug fix) Changed internal Tcl_Obj usage to avoid freeing the
+internal representation after the string representation has been
+freed. This makes it easier to debug extensions. (stanton)
------------------ Released 8.0b1, 5/27/97 -----------------------
+4/30/99 (bug fix) Fixed a memory leak in CommandComplete. (stanton)
-5/30/97 (bug fix) Made the options to the grid command shortcut-able.
-Ie. You can now use -stick, in addition to -sticky. (RJ)
+5/3/99 (bug fix) Fixed a bug where the Tcl_ObjType was not being set
+in a duplicated Tcl_Obj. [Bug: 1975, 2047] (stanton)
-6/2/97 (bug fix) Fixed bug in startup code that caused a problem in
-finding the library files when they are installed in a directory
-containing a space in the name. (SS)
+5/3/99 (bug fix) Changed Tcl_ParseCommand to avoid modifying eval'ed
+strings that are already null terminated. [Bug: 1793] (stanton)
-6/2/97 (bug fix) Virtual events associated with <Enter>/<Leave> in text
-widget tag caused panic. (CCS)
+5/3/99 (new feature) Applied Jeff Hobbs's string patch which includes
+the following changes:
+ - added new subcommands: equal, repeat, map, is, replace
+ - added -length option to "string compare|equal"
+ - added -nocase option to "string compare|equal|match"
+ - string and list indices can be an integer or end?-integer?.
+ - added optional first and last index args to string toupper, et al.
+See the string.n manual entry for more details about the new string
+features. [Bug: 1845] (stanton)
-6/6/97 (bug fix) On some systems, struct timeval.tv_sec is unsigned. (SS)
+5/6/99 (new feature) Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf
+string comparision easier. (stanton)
-6/6/97 (feature change) Changed -default option on buttons to take
-three states: normal, active, disabled. This allows apps to have a
-row of buttons where the default ring moves between buttons without
-changing the geometry of the buttons. See the button.n manual page
-for more details. (SS)
-*** POTENTIAL INCOMPATIBILITY with Tk 8.0b1, but not with Tk 4.2 ***
+5/7/99 (bug fix) Improved OS/390 support. [Bug: 1976, 1997] (stanton)
-6/9/97 (bug fix) Canvas postscript printing now works for bitmaps
-under Windows. (SS)
+5/12/99 (bug fix) Changed Windows initialization code to avoid using
+GetUserName system call in favor of the env(USERNAME) variable. This
+provides a significant startup speed improvement. (stanton)
-6/10/97 (bug fix) Fixed bug in bindings for listboxes where state wasn't
-being properly initialized on Shift-1 button presses. (JO)
+5/12/99 (bug fix) Replaced the per-interpreter regexp cache with a
+per-thread cache. Changed the Regexp object to take advantage of this
+extra cache. Added a reference count to the TclRegexp type so regexps
+can be shared by multiple objects. Removed the per-interp regexp cache
+from the interpreter. Now regexps can be used with no need for an
+interpreter. This set of changes should provide significant speed
+improvements for many Tcl scripts. [Bug: 1063] (stanton)
-6/11/97 (bug fix) Text widget display code did not include internal
-padding in the damage calculation for borders leading to unrefreshed
-sections on Windows and Mac. (SS)
+5/14/99 (bug fix) Durining initialization on Unix, Tcl now extracts the
+encoding subfield from the LANG/LC_ALL environment variables in cases
+where the locale is not found in the built-in locale table. It also
+attempts to initialize the locale subsystem so X11 is happy. [Bug: 1989]
+(stanton)
-6/12/97 (feature reversal) Changed default border widths under Unix
-back to 2 again. This reverses the change made on 11/7/96. (JO)
+5/14/99 (bug fix) Applied the patch to fix 100-year and 400-year
+boundaries in leap year code, from Isaac Hollander. [Bug: 2066] (redman)
-6/13/97 (bug fixes) In canvas text item: the insertion cursor wasn't shown
-if insertion point was at end of text item, it was impossible to click to
-position the insertion point after the last character, and @x,y indices were
-computed incorrectly if -scrollregion had been specified and canvas was
-scrolled. (CCS)
+5/14/99 (bug fix) Fixed a crash caused by a failure to reset the result
+before evaluating the test expression in an uncompiled for
+statement. (stanton)
-6/13/97 (bug fix) Hitting up/down arrows in a text widget packed in a
-toplevel window created with the "-screen" option would cause an error dialog
-to pop up. (CCS)
+5/18/99 (bug fix) Modified initialization code on Windows to avoid
+inherenting closed or invalid channels. If the standard input is
+anything other than a console, file, serial port, or pipe, then we fall
+back to the standard Tk window console. (stanton)
-6/12/97 (bug fix) Fixed bug in canvas text items where multi-line
-selections were not highlighted properly. This bug existed only in
-earlier releases of Tk 8.0. (JO)
+5/19/99 (bug fix) Added an extern "C" block around the entire tcl.h
+header file to avoid C++ linkage issues. (redman)
-6/16/97 (bug fix) In some obscure cases, canvas window items could
-accidentally specified a 0x0 size for the window, which caused a
-BadValue error under X. (JO)
+5/19/99 (new feature) Applied Jeff Hobb's patch to add
+Tcl_StringCaseMatch to support case insensitive glob style matching and
+Tcl_UniCharIs* character classification functions. (stanton)
-6/17/97 (bug fix) Tk buttons on the Macintosh will now correctly
-draw under MacOS 8.0. (RJ)
+5/20/99 (bug fix) Added the directory containing the executuble and the
+../lib directory relative to that to the auto_path variable. (redman)
-6/18/97 (feature change) Changed the way highlights are drawn in text
-widgets so that the empty space to the left of a line is highlighted
-whenever the leftmost character of the line is highlighted (the empty
-space didn't used to be highlighted). This produces a neater left
-edge when several lines are selected. (JO)
+--------------- Released 8.1.1, May 25, 1999 ----------------------
-6/18/97 (bug fix) Tk was using the wrong system colors to draw various
-widgets under Windows. (SS)
+5/21/99 (bug fix) Fixed launching command.com on Win95/98, no longer
+hangs. [Bug: 2105] (redman)
-6/19/97 (bug fix) Under Windows, the "wm transient" and "wm overrideredirect"
-subcommands can now be applied to a toplevel to change its window
-style at any time during the life of the window. (SS)
+5/28/99 (bug fix) Fixed bug where dde calls were being passed an
+invalid dde handle. [Bug: 2124] (stanton)
-6/19/97 (feature change) All GIF and XBM images needed for the "TK"
-file dialog box are included in-line in tkfbox.tcl. (IL)
+6/1/99 (bug fix) Small configure.in patches. [Bug: 2121] (stanton)
-6/27/97 (bug fix) Revamped focus code to eliminate most XSetInputFocus
-calls from the FilterEvent procedure. This moves the implementation back
-towards the Tk 4.2 implementation, but adds embedding support. There is
-still a known bug with twm's NoTitleFocus and embedded windows. However,
-the races in a2 and the funny focus stealing in b1 are gone. (BW)
+6/1/99 (bug fix) Applied latest regular expression patches to fix an
+infinite loop bug and add support for testing whether a string could
+match with additional input. [Bug: 2117] (stanton)
-6/25/97 (bug fix) Error message was not properly reported when using
-button 'toggle'. (DL)
+6/2/99 (bug fix) Fixed incorrect computation of relative ordering in
+Utf case-insensitive comparison. [Bug: 2135] (stanton)
-6/25/97 (bug fix) Removed one source of memory corruption in tkGrid.c code
-(fixes what was exercised by "grid col . 0 -w 1; grid col . 0 -w 25") (DL)
+6/3/99 (bug fix) Fxied bug where string equal/compare -nocase
+reported wrong result on null strings. [Bug: 2138] (stanton)
------------------ Released 8.0b2, 6/30/97 -----------------------
+6/4/99 (new feature) Windows build now uses Cygwin tools plus GNU
+make and autoconf to build static/dynamic and debug/nodebug. (stanton)
-7/1/97 (bug fix) Menu shortcut and tearoff reported problem fixed. (DL)
-
-7/1/97 (new feature) TK_BUILD_SHARED flag set in tkConfig.sh
-when Tk has been built with --enable-shared. TK_SRC_DIR added.
-A new tkLibObjs make target, echoing the list of the .o's needed
-to build a tk library, is now provided. (DL)
-
-7/9/97 (bug fix) Fixed Tk_CreateFileHandler and Tk_DeleteFileHandler
-macros to directly call the Tcl equivalents. (JL)
-
-7/10/97 (bug fix) On the Mac, if the binding for <<MenuSelect>> was
-drawing, the drawing could bleed over into the menus. This is now
-fixed. (SRP)
-
-7/10/97 (bug fixes) Removed duplicate code related to Tk_SafeInit,
-made a single init script handling both cases. (DL)
-
-7/10/97 (feature change) On Unix, to be able to load Tk into a safe
-interp you need to set the env(DISPLAY) var. Some API should be
-added to allow master crontrol over Tk instantiation. (DL)
-
-7/11/97 (new feature) On the Mac, menus that are too big for the
-screen will now scroll. This is part of the interface on the Mac,
-impossible under Windows, and is not done for Unix. (SRP)
-
-7/21/97 (bug fix) After fixing the bug that in canvas text item the insertion
-cursor wasn't shown if insertion point was at end of text item, introduced a
-different bug in where clicking in entry widget with 0 characters would
-crash or display garbage. (CCS)
-
-7/22/97 (bug fix) If there were a whole bunch of returns or tabs in a row in
-a canvas text item, then the temporary buffer used when outputting
-postscript could overflow and overwrite the stack. (CCS)
-
-7/23/97 (feature change) Reenabled "tkwait" in the Safe Tk base. (JL)
-
-7/24/97 (bug fix) Single init script for both Win and Unix.
-new library/safetk.tcl using features from new tcl safe.tcl (DL)
-
-7/30/97 (feature change) As a result of native menus, you can no
-longer drag through a frame of menubuttons on Macintosh and Windows
-and have the menus pop down. You can still click on individual
-menubuttons and their menus will pop down. Applications needing to
-present a menubar should consider using the new "-menu" configuration
-of the toplevel widget to set up menubar which behaves correctly on
-Macintosh, Windows and X Windows. (SRP)
-
-7/31/97 (bug fix) Tk widget commands can now safely be hidden commands.
-Previously destroying the widget would potentially leave dangling pointers
-and destroy an exposed command instead of a hidden one if an exposed
-command by that name existed. (JL)
-
-7/31/97 (bug fix) On Windows, popup menus were not tracking the right mouse
-button correctly if it was used to invoke the menu. On Unix, tearoff
-menus were stealing focus when the mouse moving over them even when
-focus following was turned off. (SRP)
-
-8/4/97 (bug fix) Fixed problem under USENIX where raising a toplevel
-window could cause an X error if the window had just been withdrawn. (JO)
-
-8/4/97 (feature change) tkerror and bgerror are not anymore hard links
-maintained by the Tcl core. The implementation of bgerror provided by
-Tk tries, for backward compatibility only, to to call "tkerror" and
-if that fails, falls back to the usual dialog and stack trace option
-posting. You can thus still use either "bgerror" or "tkerror" as your
-application error handling proc, but using "bgerror" is strongly
-recommended as support for "tkerror" will eventually vanish in upcoming
-releases. (DL)
-*** POTENTIAL INCOMPATIBILITY with scripts that were using
- the actual hardlink implementation 'features' and with
- scripts (if any) that would be calling the default "tkerror" to
- simulate error messages (use "bgerror" instead) ***
-
-8/7/97 (feature change/addition) Removed the gif files used for the
-Open dialog box on UNIX (they were previously made inline). Added a
-new images directory that includes several images of the Tcl and Tcl
-Powered logos. (RJ)
-
-8/7/97 (bug fix) Fixed focus to deal with embedding when there is
-no window manager. (BW)
-
-8/8/97 (bug fix) Fixed bug in photo image code where photo images from
-different interpreters could get confused if they had the same name. (JO)
-
-8/8/97 (new feature) Added new procedure Tk_GetImageMasterData for
-mapping image names to master data. (JO)
-
-8/8/97 (feature change) Modified Tk_FindPhoto procedure to require
-extra "interp" argument (needed for bug fix above). (JO)
-*** POTENTIAL INCOMPATIBILITY ***
+6/7/99 (new feature) Optimized string index, length, range, and
+append commands. Added a new Unicode object type. (hershey)
-8/8/97 (bug fix) Fixed problems under Windows renaming toplevels with
-menubars. Fixed problems on all platforms renaming menu widgets and
-using new menus of the same name as an old one as cascades. Fixed a
-cosmetic problem with tearoff menus. (SRP)
+6/8/99 (bug fix) Rolled back Windows socket driver to 8.1.0
+version. (stanton)
-8/13/97 (bug fixes) Fixed "-from" option for the "image create" and
-"imageName read" commands for GIF images, which didn't used to work
-correctly. Also made transparency work correctly for GIF images
-without the TRANSPARENT_GIF_COLOR hack; TRANSPARENT_GIF_COLOR is
-now ignored. These fixes were provided by Jan Nijtmans. (JO)
+6/9/99 (new feature) Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo
+to public Tcl API, these functions are needed by Expect. Changed
+tools/genStubs.tcl to always write output in LF mode. (stanton)
-8/13/97 (new feature) added safe::loadTk command to load Tk in a
-safe slave interpreter. See the loadTk.n manual page for more
-details. (DL)
+6/14/99 (new feature) Merged string and Unicode object types. Added
+new public Tcl API functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj,
+Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange,
+Tcl_AppendUnicodeToObj. (hershey)
------------------ Released 8.0, 8/18/97 -----------------------
+6/16/99 (new feature) Changed to conform to TEA specification, added
+tcl.m4 and aclocal.m4 macro libraries for configure. (wart)
-8/22/97 - (bug fix) Fixed syntax error in tk_popup; option menus now
-popup over their selected items like they did in tk4.2. Fixed problem
-where cascades sometimes did not work on X. On X, menubars with
-checkbuttons and radiobuttons in them would infinite loop when
-mappped. (SRP)
+6/17/99 (new feature) Added new regexp interfaces: -expanded, -line,
+-linestop, and -lineanchor switches. Renamed Tcl_RegExpMatchObj to
+Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent
+to Tcl_RegExpMatch. Added public macros for regexp flags. Added
+REG_BOSONLY flag to allow Expect to iterate through a string and only
+find matches that start at the current position within the
+string. (stanton)
-8/27/97 (new feature) Added support for new X11R6 colors under Windows
-and Mac platforms. (SS)
+6/21/99 (bug fix) Fixed memory leak in TclpThreadCreate where thread
+attributes were not being released. [Bug: 2254] (stanton)
-8/29/97 (bug fix) Wish crashed if stdin was closed. (SS)
+6/23/99 (new feature) Updated Unicode character tables to reflect
+Unicode 2.1 data. (stanton)
-9/10/97 (bug fix) "font actual {helvetica 10} -displayof ." wasn't taking
-into account the "-displayof" option. This problem also existed for the
-"font metrics" and "font measure" commands. (CCS)
+6/25/99 (new feature) Fixed bugs in non-greedy quantifiers for regular
+expression code. (stanton)
-9/16/97 (new feature) Added "resource delete" and "resource files"
-command to the Mac. Also fixed "resource write" when the resource
-was specified by id and already existed. (JI)
+6/25/99 (new feature) Added initial implementation of new Tcl test
+harness package. Modified test files to use new tcltest package.
+(jenn)
-9/16/97 (bug fix) Added null bindings to <Command-KeyPress> for the
-text and entry widget on the Macintosh. This prevents unbound command
-key sequences from having the character echoed to the widget. Also
-fixed Cut & Copy bindings. (JI) (RJ)
+6/26/99 (new feature) Applied patch from Peter Hardie to add poke
+command to dde and changed the dde package version number to
+1.1. (redman)
-9/18/97 (bug fix) Revamped Macintosh focus code. Cut, Copy & Paste
-virtual events now go to the correct (focus) window. (RJ)
+6/28/99 (bug fix) Applied patch from Peter Hardie to fix problem in
+Tcl_GetIndexFromObj() when the key being passed is the empty string.
+[Bug: 1738] (redman)
-9/19/97 (bug fix) Made Macintosh tearoff menus non-resizable. (RJ)
+6/29/99 (new feature) Added options to tcltest package: -preservecore,
+-limitconstraints, -help, -file, -notfile, and flags. (jenn)
-10/9/97 (bug fix) Default font for new canvas text items was hardcoded to
-"Helvetica 12" instead of using DEF_CANVTEXT_FONT defined in
-tk{platform}Default.h like all the other widget settings. (CCS)
+7/3/99 (new feature) Changed parsing of variable names to allow empty
+array names. Now "$(foo)" is a variable reference. Previously you
+had to use something line $::(foo), which is slower. This change was
+requested by Jean-Luc Fontaine for his STOOOP package. (welch)
-10/9/97 (bug fix) Image code could cause crashes during "exit" under
-some conditions (such as an image named "place"). (JO)
+7/3/99 (new feature) Added Tcl_SetNotifier (public API) and
+associated hook points in the notifiers to be able to replace the
+notifier calls at runtime. The Xt notifier and test program use this
+hook. (welch)
-10/9/97 (bug fix) Fixed bug that sometimes prevented listboxes from
-scrolling far enough horizontally to see the rightmost character. (JO)
+7/3/99 (new feature) Added a new variant of the "Trf core patch" from
+Andreas Kupries that adds new C APIs Tcl_StackChannel,
+Tcl_UnstackChannel, and Tcl_GetStackedChannel. This allows the Trf
+extension to work without applying patches to the Tcl core. (welch)
-10/10/97 (bug fix) In canvas text items, if the text ended with a \n, it
-was not counted in the bbox height, as it did in tk4.2. This caused
-"hello\n" to be the same height as "hello" and you couldn't see the
-cursor positioned on the next line. (CCS)
+7/6/99 (new feature) Added -timeout option to http.tcl to handle
+timeouts that occur during connection attempts to hosts that are
+down. (welch)
-10/10/97 (bug fix) The grid geometry manager didn't always properly
-forget about windows after a "grid forget" or "grid remove" command:
-the windows could reappear on the screen later. (JO)
+7/6/99 (bug fix) Applied new implementation of the Windows serial
+port driver from Rolf Schroedter that fixes reading only one byte from
+the port at a time. Uses polling every 10ms to implement
+fileevents. [Bug: 1980 2217] (redman)
-10/13/97 (bug fix) Selection could not be restored to a text widget
-after "selection clear" on Windows. (SS)
+7/8/99 (bug fix) Applied fix for bug in DFA state caching under
+lookahead conditions (regular expressions). [Bug: 2318] (stanton)
-10/14/97 (bug fix) If a canvas had contained windows that were off-screen,
-the windows could sometimes reappear (in the wrong place) if the canvas was
-enlarged. (JO)
+7/8/99 (bug fix) Fixed bug in string range bounds checking
+code. (stanton)
-10/20/97 (bug fix) Omitting the arguments to the text widget "mark
-gravity" option caused a crash. (SS)
+--------------- Released 8.2b1, July 14, 1999 ----------------------
-10/21/97 (bug fix) Tk did not reset the result after native dialog
-modal loops on Window so background events could perturb the dialog
-result. (SS)
+7/16/99 (bug fix) Added Tcl_SetNotifier to stub table. [Bug: 2364]
+Added check for Alpha/Linux to correct the IEEE floating point flag,
+patch from Don Porter. (redman)
-10/23/97 (bug fix) Memory leak in unix's TkpGetFontFamilies. Thanks
-to James Bonfield for the fix. (DL)
+7/20/99 (bug fix) Merged 8.0.5 code to handle tcl_library properly,
+also fixed a bug that caused TCL_LIBRARY to be ignored. (hershey)
-10/27/97 (bug fix) Fixed event reporting for the Mac during a grab
-when the pointer was out of the toplevel window. (RJ)
+7/21/99 (bug fix) Implemented modified socket driver for Windows that
+uses a thread to manage the socket event window. Code works the same
+on all supported versions of Windows and was based on original 8.1.0
+code. [Bug: 2178 2256 2259 2329 2323 2355] (redman)
-10/28/97 (bug fix) Under Unix, override-redirect was getting set
-incorrectly for menus, so that "wm overrideredirect" returned 0. (JO)
+7/21/99 (new feature) Applied patch from Rolf Schroedter to add
+-pollinterval option to fconfigure for Windows serial ports. Allows
+the maxblocktime to be modified to control how often serial ports are
+checked for fileevents. Also added documentation for \\.\comX
+notation for opening serial ports on Windows. (redman)
-10/28/97 (bug fix) Under Unix, focus code could sometimes cause the
-display to deadlock (it wasn't flushing the output buffer after issuing
-an ungrab command). (JO)
+7/21/99 (bug fix) Changed APIs in stub tables to use "unsigned long"
+instead of the platform-specific "size_t", primarily after SunOS 4
+users could no longer compile. (redman)
-10/28/97 (bug fix) If a PPM image file wasn't complete (e.g. it
-consisted of nothing but space characters) Tk entered an infinite loop
-reading the header. (JO)
+7/22/99 (bug fix) Fixed crashing during "array set a(b) {}".
+[Bug: 2427] (redman)
-10/28/97 (bug fixes) On the Mac, menubars assigned to toplevels would
-disappear after a menu item was invoked from them. On Windows,
-clicking a system menu with added items and then again with a
-different set of added items would crash. On all platforms, a command
-menu entry that caused the entry to be deleted, another one created in
-its place, and the replacement deleted would cause a panic. On Unix,
-<<MenuSelect>> event bindings were firing every time the mouse moved,
-instead of everytime the active menu item changed. (SRP)
+7/22/99 (bug fix) The install-sh script must be given execute
+permissions prior to running. [Bug: 2413] (redman)
-10/27/97 (bug fix) If a particular race condition occurred under Windows,
-Tk would crash complaining about trying to free a color that wasn't
-allocated. (SS)
+7/22/99 (bug fix) Applied patch from Ulrich Ring to remove ANSI-style
+prototypes in the code. [Bug: 2391] (redman)
-10/28/97 (bug fix) Under Windows, button grabs did not report motion
-events that occurred outside of Tk windows. (SS)
+7/22/99 (bug fix) Added #if blocks around #includes of sys/*.h header
+files, to allow an extension author on Windows to use the MetroWerks
+compiler. [Bug: 2385] (redman)
-10/28/97 (bug fix) Fixed incorrect display of transparent images on
-the Macintosh. (JI)
+7/22/99 (bug fix) Fixed running the safe.test test suite, one change
+to the Windows Makefile.in to fix paths and another in safe.test to
+check for the tcl_platform(threaded) variable properly. (redman)
-10/29/97 (bug fix) Reworked the handling of out-of-range indices in
-the widget command for listboxes: there were all sorts of quirks
-before (e.g., ".l delete -1" actually deleted the first element
-of the listbox). (JO)
+7/22/99 (bug fix) Fixed hanging in new Win32 socket driver with
+threads enabled. (redman)
-10/29/97 (bug fix) Fixed crash on the Macintosh that could occur if a
-window is moved before it is mapped where the X window was created but
-the Macintosh port was not. (RJ)
+7/26/99 (bug fix) Fixed terminating of helper threads by holding any
+mutexes from the primary thread while waiting for the helper thread to
+terminate. Fixes dual-CPU WinNT hangs, only one rare sporadic hang
+that still exists with dual-CPU WinNT. Also fixed test cases so that
+they would not depend as much on timing for dual-CPU WinNT. (redman)
-10/29/97 (bug fix) Fixed several errors in how wm state was maintained
-on the Macintosh. Tk now also will iconify a toplevel window on the
-Mac if the new Appearance Manager is present. (RJ)
+7/27/99 (bug fix) Some test suite cleanup. (jenn)
-10/28/97 (bug fixes) In canvas' postscript command: User name
-information was leaked in safe interpreters on Unix (security fix).
-Errors while reading prolog.ps were not propagated and the error
-message was mixed with partial data. Note: postscript output does
-not work in safe interpreters on unix and windows. (DL)
+7/29/99 (bug fix) Applied patch to fix typo in .SH NAME line in
+doc/Encoding.n [Bug: 2451]. Applied patch to avoid linking pack.n to
+pack-old.n [Bug: 2469]. Patches from Don Porter. (redman)
-10/28/97 (bug fix) Safe Tk interps on unix were leaking env(DISPLAY). (DL)
+7/29/99 (bug fix) Allow tcl to open CON and NUL, even for redirection
+of std channels. [Bug: 2393 2392 2209 2458] (redman)
-10/31/97 (bug fix) Fixed problems related to the input focus when one
-application had windows open simultaneously on several displays. (JO)
+7/30/99 (bug fix) Applied fixed Trf patch from Andreas Kupries.
+[Bug: 2386] (hobbs)
-10/31/97 (bug fix) Fixed several problems with traversal of menus via
-the keyboard under Unix. (SRP)
+7/30/99 (bug fix) Fixed bug in info complete. [Bug: 2383 2466] (hobbs)
-11/4/97 (bug fix) Fixed various word-size related problems for 64-bit
-architectures. (SS)
+7/30/99 (bug fix) Applied patch to fix threading on Irix 6.5, patch
+provided by James Dennett. [Bug: 2450] (redman)
-11/5/97 (bug fix) Embedding on Windows was using freed data (crashing
-in safe.test with TCL_MEM_DEBUG). NB: Embedding is still not fully
-implemented on Windows ! (It works mostly when Tk is embeded into it's
-own Tk frame (safe::loadTk case), but not well with respect to resizing
-with a toplevel container or with an external process). (DL)
+7/30/99 (bug fix) Fixed launching of 16bit applications on Win9x from
+wish. The command line was being primed with tclpip82.dll, but it was
+ignored later.
------------------ Released 8.0p1, 11/7/97 -----------------------
+7/30/99 (bug fix) Added functions to stub table, patch provided by Jan
+Nijtmans. [Bug: 2445] (hobbs)
-11/20/97 (bug fix) Fixed bug on the Mac where the "package require"
-command caused menus to stop working. (JI)
+8/1/99 (bug fix) Changed Windows socket driver to terminate threads
+by sending a message to the window rather than calling
+TerminateThread(), which seems to leak about 4k from the helper
+thread's stack space. (redman)
-11/20/97 (bug fix) Fixed bug in rendering transparent gifs on Text
-widgets. (JI)
+--------------- Released 8.2b2, August 5, 1999 ----------------------
-11/20/97 (enhancement) Made the changes required to work with the new
-Apple Universal Headers V. 3.0 so we can compile with CW Pro 2.0 (JI)
+8/4/99 (bug fix) Applied patches supplied by Henry Spencer to greatly
+enhance performance of certain classes of regular expressions.
+[Bug: 2440 2447] (stanton)
------------------ Released 8.0p2, 11/25/97 -----------------------
+8/5/99 (doc change) Made it clear that tcl_pkgPath was not set for
+Windows. [Bug: 2455] (hobbs)
-11/25/97 (security bug fix + added feature) Tk Safe Init now asks
-the master's safe::TkInit for the 'argv' to use. This is transparently
-dealt with by the safe::loadTk API. New optional "-display displayName"
-argument to safe::loadTk, and the "-use" argument accepts both window
-Ids and Tk window names: see loadTk(n). Made the ":0.0" default display
-work on the Mac as it works on Windows and Unix. (DL)
+8/5/99 (bug fix) Fixed reference to bytes that might not be null
+terminated in tclLiteral.c. [Bug: 2496] (hobbs)
-12/3/97 (bug fix/optimization) Removed unneeded and potentially dangerous
-instances of double evaluations if "if" and "expr" statements from
-the library files. It is recommended that unless you need a double
-evaluation you always use "expr {...}" instead of "expr ..." and
-"if {...} ..." instead of "if ... ...". It will also be faster
-thanks to the byte compiler. (DL)
+8/5/99 (bug fix) Fixed typo in http.tcl. [Bug: 2502] (hobbs)
-12/3/97 (new feature) Added support for browser/plugin style embedding,
-and made various other fixes to get the plugin working on the Mac. (JI)
+8/9/99 (bug fix) Fixed test suite to handle larger integers
+(64bit). Patch from Don Porter. (hobbs)
-12/8/97 (bug fix) on Windows, using "winfo pathname" before "." was mapped
-was crashing. (DL)
+8/9/99 (documentation fix) Clarified Tcl_DecrRefCount docs
+[Bug: 1952]. Clarified array pattern docs [Bug: 1330]. Fixed clock docs
+[Bug: 693]. Fixed formatting errors [Bug: 2188 2189]. Fixed doc error
+in tclvars.n [Bug: 2042]. (hobbs)
----- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ----
+8/9/99 (bug fix) Fixed path handling in auto_execok [Bug: 1276] (hobbs)
-12/97 (bug fix) more Macintosh embeding fixes needed for the plugin. (JI)
+8/9/99 (internal api change) Removed the TclpMutexLock and TclpMutexUnlock
+APIs and added a new exported api, Tcl_GetAllocMutex. These APIs are all for
+the mutex used in the simple memory allocators. By making this change
+we are able to substitute different implementations of the thread-related
+APIs without having to recompile the Tcl core. (welch)
-Jan/9/98 (improvement) Allow applications to have custom init script
-without having to patch the Tk core: Tk_Init will use an existing
-"tkInit" proc if one exists in the interp where one tries to install Tk
-instead of defining it's own (tkInit is the transient proc defined in
-generic/tkInitScript.h that searches and sources tk.tcl and defines
-the 'correct' tk_library). (DL)
+8/9/99 (new C API) Tcl_GetChannelNames returns a list of open channel
+names in the interpreter result. Still no Tcl-level version of this,
+but server-like applications can use this to clean up files without
+deleting interpreters. (welch)
----- Shipped as part of the plugin2.0 as 8.0p2Plugin2, Jan 15th 98 ----
+8/9/99 (bug fix) Traces were not firing on "info exists", which used to
+happen in Tcl 7.6 and earlier. An "info exists" now fires a read trace,
+if defined. This makes it possible to fully implement variables that
+are defined via traces. (welch)
-6/3/98 (bug fix) Fixed bugs in the tk_getOpenFile under Unix.
- 1) If the -initialdir option was "." the result would be "././foo.tcl"
- instead of an absolute path, like the Windows interface.
- 2) There is a traceVar on the data(selectPath) where the script was
- assumes the window exists. (BS)
+8/10/99 (bug fix) Fixed Brent's changes so that they work on
+Windows. (redman)
-6/12/98 (feature change) Focus -force now sets the foreground window
-on Windows platforms in addition to moving the focus. (SS)
+--------------- Released 8.2b3, August 11, 1999 ----------------------
-6/12/98 (bug fix) Fixed bug in Windows font measurement that did not
-take kerning into account. (BS)
+8/12/99 (Mac) Rearrange projects in tclMacProjects.sea.hqx so that the
+build directory is separate from the sources. (Jim Ingham)
-6/24/98 (bug fix) On Unix, fixed -initialdir switch to tk_getOpenFile
-and tk_getSaveFile to convert the specified directory to an absolute
-path and to use the current working directory if the specified
-directory does not exist. (SS)
+8/12/99 (bug fix) Fixed bug in Tcl_EvalEx where the termOffset was not
+being updated in cases where the evaluation returned a non TCL_OK
+error code. [Bug: 2535] (stanton)
-6/25/98 (bug fix) On Unix, both the Tk and the Motif file dialogs
-would fail if the -parent flag changed between two parent windows that
-had been previously used as file dialog parents. (SS)
+--------------- Released 8.2.0, August 17, 1999 ----------------------
-6/29/98 (compatibility patch) Added reserved fields to several Tk
-structures to match additions made by Jan Nijtmans dash patch. This
-means that extensions can be compiled against the dash patch
-and still work with unpatched Tk, and vice versa.
+9/21/99 (config fixes) fixed several AIX configuration issues. gcc and
+threading may still cause problems on AIX. (hobbs)
-7/6/98 (bug fix) Added keysym definitions for the new keys on the
-Microsoft keyboards. You can bind to <App>, <Win_L>, and <Win_R>,
-but you cannot use the Win keys as modifiers. (SS, BW)
+9/21/99 (bug fix) fixed expr double-eval problem. [Bug: 732] (hobbs)
-7/6/98 (new feature) Added support for the Macintosh Appearance Manager. (JI)
+9/21/99 (bug fix) fixed static buffer overflow problem. [Bug: 2483] (hobbs)
-7/24/98 (feature change) Eliminated the static variable that sets
-tk_library and simplified search order for tk.tcl. The tk_library
-variable can now be set before calling Tk_Init to avoid doing any
-searches. If it isn't set, then Tk checks env(TK_LIBRARY), relative
-to tcl_library, an install directory relative to the executable, a
-source directory relative to the executable, and a tk directory
-relative to the source heirarchy containing the executable. See the
-comment at the top of generic/tkInitScript.h for more details. (SS)
+9/21/99 (bug fix) fixed end-int linsert interpretation. [Bug: 2693] (hobbs)
-7/27/98 (bug fix) The bbox for coords in the canvas were incorrectly
-including the center of the coord as part of the bound area. (RJ)
+9/21/99 (bug fix) fixed bug when setting array in non-existent
+namespace. [Bug: 2613] (hobbs)
-8/4/98 (bug fix) Fixed memory leak in Windows menu code. (SS)
+--- Released 8.2.1, October 04, 1999 --- See ChangeLog for details ---
-8/4/98 (bug fix) Fixed bug where bgerror's were not being generated
-from menu callbacks on Windows. (SS)
+10/30/99 (feature enhancement) new regexp engine from Henry Spencer
+was patched in - should greatly reduce stack space usage. (spencer)
-8/4/98 (bug fix) Alt-key bindings were not being handled properly
-under Windows, resulting in annoying beeps. (SS)
+10/30/99 (bug fix) fixed Purify reported memory leaks in findexecutable
+test command, TclpCreateProcess on Unix, in handling of C environ array,
+and in testthread code. No more known (reported) mem leaks for Tcl
+built using gcc on Solaris 2.5.1. Also none reported for Tcl on NT
+(using Purify 6.0). (hobbs)
-8/4/98 (bug fix) Fixed bug in Windows menubar handling that allowed
-a shared menubar to be deleted when any window using it was deleted. (SS)
+10/30/99 (bug fix) fixed improper bytecode handling of
+'eval {set array($unknownvar) 5}' (also for incr) (hobbs)
-8/4/98 (feature change) Introduced TkReadBitmapFile to replace
-XReadBitmapFile so that all Tk file opens go through the Tcl channel
-mechanism. This lets us wrap applications that define their own
-bitmaps and cursors. Note that XReadBitmapFile is no longer
-emulated for non-unix platforms platforms (RJ, BW)
+10/30/99 (bug fix) fixed event/io threading problems by making
+triggerPipe non-blocking (nick kisserbeth)
-8/5/98 (bug fix) <Insert> binding in entries was masking the virtual
-event <<Paste>> binding to Shift-Insert on Windows. (SS)
+10/30/99 (bug fix) fixed Tcl_AppendStringsToObjVA and Tcl_AppendResultVA
+to only iterates once over the va_list (avoiding non-portable memcpy).
+(joe english, hobbs)
-8/5/98 (bug fix) wm frame would crash if the window had not been
-mapped yet on Windows. (SS)
+10/30/99 (bug fix) removed savedChar trick in tclCompile.c that appeared
+to be causing a segv when the literal table was released.
+[Bug: 2459, 2515] (David Whitehouse)
-8/5/98 (bug fix) Local grabs did not exclude menus or the caption bar
-under Windows. (SS)
+10/30/99 (bug fix) fixed [string index] to return ByteArrayObj
+when indexing into one (test case string-5.16) [Bug: 2871] (hobbs)
-8/5/98 (bug fix) Reduced message traffic by setting
-WS_EX_NOPARENTNOTIFY on TkChild windows. (SS)
+10/30/99 (bug fix) fixes for mac UTF filename handling (ingham)
-8/6/98 (feature change) Changed tkInitScript.h to use the new
-tcl_findLibrary procedure to locate its script library. (BW)
+--- Released 8.2.2, November 04, 1999 --- See ChangeLog for details ---
-8/10/98 (bug fix) Added special case to font code to limit the
-length of displayed strings to avoid wrap-around bugs in some
-PC X servers when the pixel length of the string exceeds 0x7fff. (SS)
+11/19/99 (feature enhancement) bug fixes for http package as well as
+patch required by TLS (SSL) extension that adds http::(un)register
+and -type to http::geturl. Up'd http pkg version to 2.2.
-8/12/98 (bug fix) Macintosh, lock down some of the resources
-associated with menus to try and stabilise the menu system
-on memory limited machines. (JI)
+11/19/99 (bug fix) removed extra decr of numLevels in Tcl_EvalObjEx
+that could cause seg fault (mjansen@wendt.de)
-8/12/98 (windows build change) Moved the tkConsole.obj into the tk80.dll
-on windows. If you build your own Tk main program, you no longer
-need to compile and link this yourself. (SKS)
+11/19/99 (bug fixes) numerous minor big fixes, including correcting the
+installation of the koi8-r encoding and tcltest1.0 on Windows.
--------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/13/98 ------
+11/30/99 (bug fix) fixes scan where %[..] didn't match anything
-10/5/98 (new feature) Added the event "MouseWheel" that will fire on
-Windows applications in response to mouse wheel movement. You can
-bind to the MouseWheel event and use the %D substitution to get the
-delta the wheel moved. The "event generate" command has also been
-enhanced with the -delta flag so you can generate these events from
-Tcl. See the bind and event man pages for more details. The listbox
-and text widgets' default bindings have been updated to understand
-MouseWheel events. (RJ)
+11/30/99 (bug fix) fixed setting of isNonBlocking flag in PipeBlockModeProc
+so you can now close a non-blocking channel without waiting.
-10/12/98 (performance improvement) Added hash table to canvas widget
-that holds numeric ids for items. The hash table makes item lookup
-almost constant time which improves certain canvas operations
-(exspecially for canvases with large number items). Thanks to Mark
-Weissman <weissman@gte.com> and Jan Nijtmans <Jan.Nijtmans@wxs.nl>
-for submitting this improvement. (RJ)
+11/30/99 (bug work-around) prevented the unloading of DLLs for Unix in
+TclFinalizeLoad. This stops the seg fault on exit that some users would
+see (ie with oratcl) when using DLLs that do nasty things like register
+atexit handlers.
-10/15/98 (bug fix) The -fill option to text items in the canvas did
-not allow the empty string as an argument (meaning transparent) even
-though every other item type did. Thanks to Sebastian Wangnick
-<sebastian.wangnick@eurocontrol.be> for supplying this patch. (RJ)
+12/07/99 (bug fix) fixes for 'expr + {[incr]}' and 'expr + {[error]}'
+cases (different causes).
-10/20/98 (feature change) The Makefile and configure scripts have been
-changed for IRIX to build n32 binaries instead of the old 32 abi
-format. If you have extensions built with the o32 abi's you will need
-to update them to n32 for them to work with Tcl. (RJ)
-*** POTENTIAL INCOMPATIBILITY ***
+--- Released 8.2.3, December 16, 1999 --- See ChangeLog for details ---
-11/10/98 (feature change) The Macintosh menus will use the Appearance
-Theme backgrounds, separators and menu shape, if Appearance version
-1.0.1 or greater is installed. The version of Appearance that shipped
-with MacOS 8.0 so it will not work with a straight 8.0, but it will
-with MacOS 8.1 or later. (JI)
+1999-09-14 (feature enhancement) added -start switch to regexp and regsub.
------------------ Released 8.0.4, 11/20/98 -----------------------
+1999-09-15 (feature enhancement) add 'array unset' command.
-11/24/98 (bug fix) On some X servers, XQueryLoadFont will always
-return a font, even if the name is meaningless. This prevents Tk from
-parsing the font name, so now we perform a quick sanity check on the
-name before letting X have it. (stanton)
+1999-09-15 (feature enhancement) rewrote runtime libraries to use new
+string functions
-12/30/98 (bug fix) Fixed bug in "grid forget" that failed to cancel
-pending idle handlers, resulting in a crash in a few odd cases. (stanton)
+1999-08-18 (feature enhancement) added 'file channels' command, along with
+Tcl_GetChannelNames(Ex) public C APIs.
-1/28/99 (configure change) Now support -pipe option on gcc. (RJ)
+1999-10-19 (feature enhancement) enhanced tcltest package
-2/4/99 (bug fix) Changed so color tables in photo images are freed
-immediately instead of being delayed. This ensures that color tables
-are properly disposed at process exit. (stanton)
+1999-09-16 (feature enhancement) added -milliseconds switch to 'clock clicks'
-2/4/99 (bug fix) Changed postscript template to include a European
-character with an umlaut when determining font height. (stanton)
+1999-10-28 (feature enhancement) added support for inline 'scan'
-2/4/99 (bug fix) If an image bitmap mask changed but ended up with the
-same XID, the GC failed to be updated and so the new mask was
-not used. (stanton)
+1999-10-28 (feature enhancement) added support for touch functionality by
+extendeding 'file atime' and 'file mtime' to take an optional time argument
-2/4/99 (bug fix) Changed so focus window is always set if -force is
-specified. This fixes the problem on Windows where Tk does not
-activate the window if it already has focus. (stanton)
+1999-11-24 (feature enhancement) added 'fconfigure $sock -lasterror'
+command to Windows to query the last error received on a serial socket.
-2/4/99 (bug fix) Fixed so errors in console eval are reported
-properly. Eliminated duplicate result messages. (stanton)
+1999-11-30 (bug fix) fixed handling of %Z on NT for timezones that don't
+have DST
-2/4/99 (bug fix) Under Windows, changed so toplevels that aren't
-resizable don't have resize handles and the zoom box is disabled. (stanton)
+1999-12-03 (feature enhancement) improved error message in bad octal cases
+and improper use of comments. (hobbs)
-2/4/99 (bug fix) Changed to cancel the mouse timer when a user
-initiated move/resize loop begins on Windows. (stanton)
+1999-12-07 (bug fix) fixed Tcl_ScanCountedElement to not step
+beyond the end of the counted string
-2/4/99 (configure change) TK_LD_SEARCH_FLAGS was set incorrectly if
-SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C
-compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also
-with gcc on many more systems.
+1999-12-09 (feature enhancement) removed all references to 16 bit
+compatibility code for Windows (hobbs)
-2/4/99 (bug fix) Changed some EXTERN declarations to extern since they
-are not defining exported interfaces. This avoids generating useless
-declspec() attributes and makes the Windows makefile simpler. (stanton)
+1999-12-10 (bug fix) removed check for vfork - Tcl now uses only fork in
+exec. (hobbs)
-2/4/99 (bug fix) Changed so keyboard shortcuts will only be found in
-the current toplevel. Previously, they might be found in menus
-attached to other toplevels that might not even be mapped. (stanton)
-*** POTENTIAL INCOMPATIBILITY ***
+1999-12-10 (optimization) changed Tcl_ConcatObj to return a list
+object when it receives all pure list objects as input (used by 'concat'),
+added optimizations in Tcl_EvalObjEx for pure list case, and optimized
+INST_TRY_CVT_TO_NUMERIC in TclExecuteByteCode for boolean objects.
+(oakley, hobbs)
-2/4/99 (bug fix) Changed to treat zero width lines in the canvas like
-they have width 1 for purposes of selection. (stanton)
+1999-12-12 (feature enhancement) enhanced glob command with -type, -path,
+-directory and -join switches. (darley, hobbs)
-2/4/99 (bug fix) Added a workaround for a bug in GetTextExtentExPoint
-on Win NT 4.0/Japanese that cause a crash in some cases. (stanton)
+1999-12-21 (bug fix) changed CreateThread to _beginthreadex and
+ExitThread to _endthreadex to prevent 4K mem leak (gravereaux)
-2/4/99 (bug fix) Fixed uninitialized memory access bug in Unix send
-code. (stanton)
+1999-12-21 (bug fix) fixed applescript for I18N
-----------------------------------------------------------
-Changes for Tk 8.0 go above this line.
-Changes for Tk 8.1 go below this line.
-----------------------------------------------------------
+1999-12-21 (feature enhancement) added -unique option to lsort (hobbs)
-1/16/98 (new feature) Tk now supports international characters sets:
- - Font display mechanism overhauled to display Unicode strings
- containing full set of international characters. You do not need
- Unicode fonts on your system in order to use tk or see international
- characters. For those familiar with the Japanese or Chinese patches,
- there is no "-kanjifont" option. Characters from any available fonts
- will automatically be used if the widget's originally selected font is
- not capable of displaying a given character.
- - Textual widgets are international aware. For instance, cursor
- positioning commands would now move the cursor forwards/back by 1
- international character, not by 1 byte.
- - Input Method Editors (IMEs) work on Mac and Windows. Unix is still in
- progress.
-
-7/7/97 (new feature) The send command now works for Microsoft
-Windows. It is implemented using Dynamic Data Exchange, and a new
-command, dde, allows Tk to send more generic DDE commands to other
-applications. (SRP)
-
-11/3/97 (new feature) Major overhaul of code that manages configuration
-options to use Tcl_Obj structures instead of strings:
- - There is a new set of procedures including Tk_CreateOptionTable,
- Tk_InitOptions, and Tk_SetOptions, which replace Tk_ConfigureWidget
- and related procedures. The old procedures are still available.
- The new procedures use a new format for configuration tables.
- See SetOptions.3 for more information.
- - There are new procedures Tk_AllocColorFromObj, Tk_GetColorFromObj,
- and Tk_FreeColorFromObj to manage colors using objects to hold the
- name of the color and cache the corresponding XColor pointer.
- There are similar procedures Tk_Alloc3DBorderFromObj,
- Tk_AllocBitmapFromObj, Tk_AllocCursorFromObj, Tk_AllocFontFromObj,
- and so on to manage borders, bitmaps, cursors, and fonts.
- - The old-style procedures such as Tk_GetColor and Tk_GetBitmap no
- longer take Tk_Uids for arguments; they just take strings.
- - Menus, labels, buttons, checkbuttons, and radiobuttons have been
- converted to use the new object-based configuration library.
- (SRP & JO)
-
-11/7/97 (improvement) Changed code referring to "interp->result" to call
-accessor functions like Tcl_SetResult().
-
-12/23/97 (fix) Fixed transparency and web optimized the palette of
-the images/ Tcl powered logos. (DL)
-
-12/16/97 (bug fix) Canvas and text "bind" subcommands generated an
-error with no message if called to fetch a binding that didn't exist.
-They now silently return without an error like the "bind" command. (SS)
-
-1/13/98 (bug fix) Keysyms for international characters were not being
-reported properly under Windows. (SS)
+1999-12-21 (bug fix) changed thread ids to longs (for 64bit systems)
------------------ Released 8.1a1, 1/22/98 -----------------------
+--- Released 8.3b1, December 22, 1999 --- See ChangeLog for details ---
-2/4/98 (bug fix) Calling XFreeFontNames() twice if couldn't allocate
-font. (CCS)
+2000-01-10 (feature enhancement) clock scan now supports the common
+ISO 8601 date/time formats. See docs for details. (melski)
-2/10/98 (bug fix) Inlined prolog.ps in tkCanvPs.c to make it accessible
-from safe interpreters: canvas postscript now works in safe interps
-(like in tk8.0plugin). (DL)
+2000-01-10 (bug fix) prevented \ooo substitution from accepting
+non-octal digits [Bug: 3975] (hobbs)
-2/11/98 (bug fix) Windows "send" to a remote interp wasn't propagating
-$errorInfo correctly from the remote interp to the local invoking interp.
-(CCS)
+2000-01-11 (bug fix) fixed improper handling of DST by clock when
+using relative times (like "1 month" or "tomorrow"). (melski)
-2/11/98 (bug fix) Windows "send" should have accepted "--" to mean "no more
-arguments". (CCS)
+2000-01-12 (bug fix) improved build support for Tru64 v5, NetBSD
+and Reliant Unix (hobbs)
-2/11/98 (bug fix) Windows "send" was concatenating its arguments
-incorrectly (not consistent with "eval", "uplevel", or Unix "send"). (CCS)
+2000-01-12 (bug fix) made imported commands also import their
+compile procedure (duffin)
-2/18/98 (bug fix) Macintosh radiobuttons and checkbuttons now color
-their backgrounds correctly under Appearance. The controls gadgets themselves
-however, remain the Theme colors. (JI)
+2000-01-12 (bug fix) fixed 'info procs ::namesp::*' behavior to return
+procs in a namespace (dejong)
-2/18/98 (improvement) The corner pixels that peek through around the
-rounded corners of the Mac button widget are now controlled by the
--highlightbackground, rather than the -background option. (JI)
+2000-01-12 (feature enhancement) added support for setting permissions
+symbolicly (like chmod) in [file attributes $file -permissions ...] (schoebel)
-2/18/98 (improvement) Implemented the intra-application Send on the
-Mac (RJ)
+2000-01-13 (bug fix) fixed lsort -dictionary problem when sorting
+characters between 'Z' and 'a' (flawed upper/lower comparison logic) (melski)
-2/18/98 (bug fix) Under X, a problem mapping from a fontStructPtr to an
-XLFD (no XA_FONT attribute) would lead to dereferencing NULL. (CCS)
+--- Released 8.3b2, January 13, 2000 --- See ChangeLog for details ---
------------------ Released 8.1a2, Feb 20 1998 -----------------------
+2000-01-14 (feature enhancement) clock format %Q added, clock scan updated
-10/21/98 (bug fix) Tk_UnderlineChars did not handle UTF strings properly
-so underline indices were in bytes instead of characters. (stanton)
+2000-01-20 (bug fix) corrected complex array elem compiling (Spjuth)
-11/19/98 (bug fix) Fixed menus and titles so they properly display
-Unicode characters under Windows. [Bug: 819] (stanton)
+2000-01-20 (bug fix) made [info body] always return a string type arg,
+to prevent possible misuse of bytecodes in the wrong context (hobbs)
-11/24/98 (bug fix) Fixed a bunch of memory leaks in the Windows menu
-code. [Bug: 620] (stanton)
+2000-01-20 (bug fixes) several fixes to variable handling to prevent
+possible crashes, and further definition of correct behavior (melski)
-11/25/98 (bug fix) Various small bug fixes: (stanton)
- - hidemargin option was not honored properly in menus [Bug: 859]
- - disabled menu entries were getting reenabled whenever the
- mouse passed over the entry [Bug: 860]
- - fixed deletion order bug where a crash would result if a
- binding deleted "."
+2000-01-25 (bug fixes) improved QNX, Ultrix and OSF1 (Tru64) config and
+compatibility (edge, furukawa)
-11/30/98 (bug fix) The error result was getting lost when restoring
-configuration options in buttons. [Bug: 619] (stanton)
+2000-01-25 (bug fix) fixed mem leak when calling lsort with a bad -command
+argument (hobbs)
-12/8/98 (bug fix) The Windows clipboard was not correctly traslating
-multibyte characters. [Bug: 935] (stanton)
+2000-01-27 (feature enhancement) package mechanism overhaul: changed
+behavior of pkg_mkIndex to do -direct by default, added -lazy option.
+Fixed pkg_mkIndex to handle odd proc names and auto_mkIndex to use platform
+independent file paths. Other fixes for odd package quirks. Added
+::pkg namespace and ::pkg::create helper function. (melski)
------------------ Released 8.1b1, Dec 11 1998 -----------------------
+2000-02-01 (bug fix) fixed problem where http POST would send one extra
+newline (vasiljevic)
-1/29/99 (bug fix) Fixed bug in "grid forget" that failed to cancel
-pending idle handlers, resulting in a crash in a few odd
-cases. (stanton)
+2000-02-02 (feature enhancement) added docs for new regexp -inline and
+-all switches. (hobbs)
-2/4/99 (bug fix): Fixed uninitialized memory access in
-Tk_SetAppName. [Bug: 919] (stanton)
+2000-02-08 (bug fix) corrected handling of "next monthname" in clock scan
+(melski)
-2/4/99 (bug fix): Added a workaround for a bug in GetTextExtentExPoint
-on Win NT 4.0/Japanese. [Bug: 1006] (stanton)
+2000-02-09 (bug fix) restored Mac source to build readiness and prevented
+mac panic from an error when closing an async socket (steffen, ingham)
-2/4/99 (bug fix): Changed so keyboard shortcuts for menus will only be
-found in the current toplevel. Previously, they might be found in
-menus attached to other toplevels that might not even be mapped.
-[Bug: 924] (stanton)
+2000-02-10 (feature enhancement) improved error reporting for failed
+loads on Windows (dejong, hobbs)
-2/4/99 (bug fix): Changed to treat zero width lines in the canvas like
-they have width 1 for purposes of selection. [Bug: 925] (stanton)
+--- Released 8.3.0, February 10, 2000 --- See ChangeLog for details ---
-2/4/99 (bug fix): TK_LD_SEARCH_FLAGS was set incorrectly if
-SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C
-compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also
-with gcc on many more systems. [Bug: 908] (stanton)
+2000-03 (bug fixes, feature enhancement) overhaul of http package for
+proper handling of async callbacks (new options), version is now at 2.3
+(tamhankar, welch)
-2/4/99 (feature enhancement): Changed so windows that aren't resizable
-don't have resize handles and the zoom box is disabled on
-Windows. (stanton)
+2000-03 (performance enhancement) speedup in Windows filename handling (newman)
+and ==/!= empty string in exprs. (hobbs)
-2/4/99 (bug fix): Fixed so errors in console eval are reported
-properly. Eliminated duplicate result messages. [Bug: 973] (stanton)
+2000-03-27 (bug fix) added uniq'ing test to namespace export list to
+prevent unnecessary mem growth (hobbs)
-2/4/99 (bug fix): Changed so focus window is always set if -force is
-specified. This fixes the problem on Windows where Tk does not
-activate the window if it already has focus. (stanton)
+2000-03-29 (bug fix) fixed mem leak when repeatedly sourcing the same
+bytecompiled (tbc) code repeatedly across different interpreters (hobbs)
-2/4/99 (bug fix): If an image mask changed but ended up with the same
-XID, the GC failed to be updated and so the new mask was not
-used. [Bug: 970] (stanton)
+2000-03-29 (config enhancement) improved build support for gcc/mingw on
+Windows (nijtmans, hobbs) and added RPM target (melski)
-2/12/99 (new feature): Tk is now thread safe. You enable this by
-configuring with --enable-threads. Tcl must also be compiled with
---enable-threads. See Tcl for more information about the threading
-interfaces. (lfb)
+2000-03-31 (bug fix) corrected data encoding problem when using
+"exec << $data" construct (melski)
-2/25/99 (bug fix) Under Windows, wish can now inherit pipe handles on
-stdio so it is possible to use the wish executable in a command
-pipeline to capture the output of puts or read from the pipe with
-gets. (redman)
+2000-04 (feature enhancement) overhaul of threading mechanism to better
+support tcl level thread command (new APIs Tcl_ConditionFinalize,
+Tcl_MutexFinalize, Tcl_CreateThread, etc, all docs in Thread.3).
+(kupries, graveraux)
+This enables the tcl level thread extension. (welch)
-3/1/99 (bug fix) Under Windows, Tk was not properly handling focus and
-activation changes in some cases. (redman)
+2000-04-10 (bug fix) fixed infinite loop case in regexp -all (melski)
-3/10/99 (new feature) Tk now uses the new stub library feature in Tcl.
-The Tk library now contains no direct references to any symbols in
-Tcl. In addition, there is a new Tk_MainEx() function that takes an
-interpreter as an argument. See the Tcl documentation for more
-information about the stubs mechanism. (redman)
+2000-04-13 (config enhancement) added support for --enable-64bit-vis
+Sparc target. (hobbs)
-3/14/99 (feature change) Test suite now uses "test" namespace to
-define the test procedure and other auxiliary procedures as well as
-global variables.
- - Global array testConfige is now called ::test::testConfig.
- - Global variable VERBOSE is now called ::test::verbose, and
- ::test::verbose no longer works with numerical values. We've
- switched to a bitwise character string. You can set
- ::test::verbose by using the -verbose option on the Tk command
- line.
- - Global variable TESTS is now called ::test::matchingTests, and
- can be set on the Tk command line via the -match option.
- - There is now a ::test::skipTests variable (works similarly to
- ::test::matchTests) that can be set on the Tk command line via
- the -match option.
- - The test suite can now be run in any working directory. When
- you run "make test", the working directory is nolonger switched
- to ../tests.
-(hirschl)
-*** POTENTIAL INCOMPATIBILITY ***
+2000-04-18 (bug fix) moved tclLibraryPath to thread-local storage to fix
+possible race condition on MP machines (hobbs)
------------------ Released 8.1b2, March 16, 1999 ---------------------
+2000-04-18 (config enhancement) added MacOS X build target and
+tclLoadDyld.c dl type. (sanchez)
-3/23/99 (feature change) Test suite now uses "tcltest" namespace to
-define the test procedure and other auxiliary procedures as well as
-global variables. The previously chosen "test" namespace was thought
-to be too generic and likely to create conflits.
-(hirschl)
-*** POTENTIAL INCOMPATIBILITY ***
+2000-04-23 (bug fix) several Mac socket fixes (ingham)
-3/26/99 [bug fix] Fixed bug reported by Bryan Oakley in the
-menubutton bindings. There was a false assumption that there was
-always a menu attached to the button. [Bug 1116] (surles)
+2000-04-24 (bug fix) fixed hang in threaded Unix case when backgrounded
+exec process was running (dejong)
-3/26/99 (feature change) Removed --enable-tcl-stub from the configure
-script. Linking Tk to Tcl stubs is causing too many problems when
-linking executables like wish. Until the Tk is a fully loadable
-extension, linking against the Tcl stubs is not supported in Tk.
-(redman)
+--- Released 8.3.1, April 26, 2000 --- See ChangeLog for details ---
-3/26/99 (feature change) --nameble-shared is now the default and builds
-Tk as a shared library; specify --disable-shared to build a static Tk
-library and shell.
-*** POTENTIAL INCOMPATIBILITY ***
+2000-04-26 (doc fix) updated/added documentation for many API's and
+commands (melski)
-3/29/99 (api change) Standardized text layout and font interfaces
-so they are consistent with respect to byte versus character
-oriented indices. The layout functions all manipulate character
-oriented values while the lower level measurement functions all
-operate on byte oriented values. (stanton)
+2000-05-02 (feature enhancement) added support for joinable threads;
+extended API's for channels to allow channels to move between threads
+(kupries)
-4/1/99 (bug fix) Image handlers are finalized before the font subsystem
-to fix crashes during finalization of complex widgets. (stanton)
+2000-05-02 (feature enhancement) changed error return for procedures
+with incorrect args to be like the Tcl_WrongNumArgs API, with a "wrong
+# args: ..." message printed, with an args list (hobbs)
-4/1/99 (feature change) Removed the send command on Windows. Moved
-the DDE basis of that command out to its own extension. The send
-implementation on top of DDE was causing Tk to lock up in some cases.
-(redman)
+2000-05-08 (feature enhancement) added [array statistics] command
-4/5/99 (bug fix) Fixed handling of Unicode in text searches. The
--count option was returning byte counts instead of character counts.
+2000-05-08 (performance enhancement) rewrote Tcl_StringCaseMatch
+algorithm for better performance; this affects the [string match]
+command; added "eq" and "ne" operands to expr, for testing
+string equality and inequality (hobbs)
-4/5/99 (feature change) Cut and paste to an entry widget returns the
-selection instead of the widget contents, which can be different if the
--show option is used to hide the display. (stanton)
+2000-05-09 (feature enhancement) extended [lsearch] to support sorted
+list searches and typed list searches (melski)
---------------- Released 8.1b3, April 6, 1999 ----------------------
+2000-05-10 (feature enhancement) added [namespace exists] command
+(darley)
-4/20/99 (compiler fix) changed definition of Status type to use a
-typedef instead of a #define to avoid conflicting with the cygwin win32
-headers. (redman)
+2000-05-18 (build enhancement) added support for mingw compile env and
+cross-compiling (dejong)
-4/22/99 (bug fix) Set the -translation and -encoding options to binary
-for image files. (redman)
+2000-05-18 (bug fix) corrected clock grammar to properly handle the
+"ago" keyword when it follows multiple relative unit specifiers
+(melski)
-4/27/99 (bug fix) Changed to avoid the need for forward declarations in
-stub initializers. Added extern "C" blocks around stub table pointer
-declarations so the stubs can be used from C++ code. (stanton)
+2000-05-22 (compile fix) type cast cleanups (dejong)
---------------- Released 8.1 final, April 29, 1999 ----------------------
+2000-05-23 (performance enhancement) added byte-compiled
+implementation of [return] command and [string] command (melski)
-5/7/99 (bug fix) Fixed bug wheretk_popup fails when called too
-quickly. [Bug: 2009] (stanton)
+2000-05-26 (performance enhancement) extended byte-compiled [string]
+command with support for [string compare/index/match] (hobbs)
-5/18/99 (bug fix) Fixed clipboard code so it handles Unicode data
-properly on Windows NT and 95. [Bug: 1791] (stanton)
+2000-05-27 (feature enhancement) added ability to set [info script]
+return value ([info script ?newFileName?]) (welch)
-5/19/99 (bug fix) Add extern "C" block around entire header file for
-C++ compilers to fix linkage issues. Submitted by Don Porter and Paul
-Duffin. (redman)
+2000-05-31 (feature enhancement) added support for regexp and exact
+pattern matching for [array names] (gazetta)
---------------- Released 8.1.1, May 25, 1999 ----------------------
+2000-05-31 (feature enhancement) added -nocomplain and -- flags to
+[unset] to allow for silent unset operation (hobbs)
-5/21/99 (bug fix) Fixed clipboard code to handle lack of CF_LOCALE
-information (from command.com). (stanton)
+--- Released 8.4a1, June 6, 2000 --- See ChangeLog for details ---
-6/1/99 (bug fix) Improved I18N selection support. COMPOUND_TEXT
-is converted to/from iso2022, and STRING is converted to/from
-iso8859-1. More work is needed. (stanton)
+2000-05-29 (bug fix) corrected resource cleanup in http error cases.
+Improved handling of error cases in http. (tamhankar)
-6/3/99 (bug fix) Fixed selection code to handle Unicode data in
-COMPOUND_TEXT and STRING selections. [Bug: 1791] (stanton)
+2000-07 (feature rewrite) complete rewrite of the Tcl IO channel subsystem
+to correct problems (hangs, core dumps) with the initial stacked channel
+implementation. The new system has many more tests for robustness and
+scalability. There are new C APIs (see Tcl_CreateChannel), but only
+stacked channel drivers are affected (ie: TLS, Trf, iogt). The iogt
+extension has been added to the core test code to test the system.
+(hobbs, kupries)
+ **** POTENTIAL INCOMPATABILITY ****
-6/16/99 (new feature) Changes to makefiles and configure scripts to
-support TEA specification. (wart)
+2000-07 (build improvements) cleanup of the makefiles and configure scripts
+to correct support for building under gcc for Windows. (dejong)
-6/30/99 (bug fix) Removed deprecated functions, patch from Jan
-Nijtmans. [Bug 2080] (redman)
+2000-08-07 (bug fix) corrected sizeof error in Tcl_GetIndexFromObjStruct.
+(perkins)
-6/30/99 (bug fix) Applied patch to allow Img extension to work with
-8.2, patch from Jan Nijtmans. [Bug 2068] (redman)
+2000-08-07 (bug fix) correct off-by-one error in HistIndex, which was
+causing [history redo] to start its search at the wrong event index. (melski)
-6/30/99 (bug fix) Applied patch from Don Porter to prevent the Windows
-shutdown code from calling Tcl functions when the stub table has not
-been initialized in TkWinWmCleanup. [Bug: 2269] (redman)
+2000-08-07 (bug fix) corrected setlocale calls for XIM support and locale
+issues in startup. (takahashi)
-7/8/99 (bug fix) Changed TkWinChildProc to pass WM_WINDOWSPOSCHANGED
-through to DefWindowProc to make OpenGL sub-windows happpy. This
-allows Windows to generate the WM_SIZE and WM_MOVE messages. (stanton)
+2000-08-07 (bug fix) correct code to handle locale specific return values
+from strftime, if any. (wagner)
---------------- Released 8.2b1, July 14, 1999 ----------------------
+2000-08-07 (bug fix) tweaked grammar to properly handle the "ago" keyword
+when it follows multiple relative unit specifiers, as in
+"2 days 2 hours ago". (melski)
-7/16/99 (bug fix) Copy prolog.ps from the generic directory for
-install-libraries make target. (redman)
+2000-08-07 (doc fixes) numerous doc fixes to correct SEE ALSO and NAME
+sections. (english)
-7/22/99 (bug fix) Applied patch from Jeff Hobbs to fix
-library/menu.tcl. [Bug: 2425] (redman)
+2000-08-07 (bug fix) new man pages memory.n, TCL_MEM_DEBUG.3, Init.3 and
+DumpActiveMemory.3. (melski)
-7/22/99 (bug fix) Make install-sh have executable permissions before
-calling from the Makefile. [Bug: 2413] (redman)
+--- Released 8.3.2, August 9, 2000 --- See ChangeLog for details ---
-7/22/99 (bug fix) Block out sys/stat.h include with #if to allow
-extension writers to use the MetroWerks compiler on Windows.
-[Bug: 2385] (redman)
+2000-06 thru 2000-11 (build improvements) Added support for mingw (gcc on
+Windows), AIX-5 and Win64 builds (dejong, hobbs)
-7/29/99 (bug fix) Allow tcl to opn CON and NUL on Windows, moved check
-to Tk Console code instead. [Bug: 2393 2392 2209 2458] (redman)
+2000-06-23 (feature enhancement) ability to use Tcl_Obj *s as hash keys (duffin)
-7/30/99 (bug fix) corrected the Windows build of threaded Tk from both
-sets of makefiles (nmake and gmake). (redman)
+2000-06-29 (new features) added [mcmax] and [mcmset] and extended [unknown] in
+msgcat package (duperval, krone, nelson)
+=> msgcat 1.1
-7/30/99 (bug fix) Added XFillRectangle to stub table, patch from Jan
-Njitmans. [Bug: 2446] (hobbs)
+2000-08 thru 2000-09 added tclPlatDecls.h to default install (melski, hobbs)
-8/1/99 (bug fix) Wrapped #define of panic() inside #ifndef blocks to
-avoid compiler errors on Macintosh. Patch from Vince Darley.
-[Bug: 2389] (hobbs)
+2000-08-24 (new feature) Enhanced trace syntax to add:
+ trace {add|remove|list} {variable|command} name ops command
+(darley, melski)
---------------- Released 8.2b2, August 5, 1999 ----------------------
+2000-09-06 (cross-platform feature) Set ^Z (\32) as default EOF char. (hobbs)
-8/13/99 (Mac) Rearranged the projects in the tkMacProjects.sea.hqx so
-that the build directory is separate from the sources. Fixed bug in
-Tk_DrawChars(). (Jim Ingham)
+2000-09-07 partial fix for bug 2460 to prevent exec mem leak on Windows for the
+common case (gravereaux)
---------------- Released 8.2.0, August 17, 1999 ----------------------
+2000-09-14 Improved string allocation growth for large strings (hintermayer,
+melski)
-9/21/99 (bug fix) fixed 'wm deiconify' quirks on Windows. (hobbs)
+2000-09-14 New non-panic'ing mem allocation functions Tcl_AttemptAlloc,
+Tcl_AttemptRealloc, Tcl_AttemptSetObjLength (melski)
-9/21/99 (bug fix) fix fg<>bg GC swap bug for canvas. [Bug: 2676] (hobbs)
+2000-09-20 (new features) completely new, enhanced syntax in tcltest package.
+Backwards compatable with tcltest v1. (hom)
+=> tcltest 2.0
-9/21/99 (config fix) fixed AIX config issues for Tk. (hobbs)
+2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that
+didn't set nonBlocking correctly when resetting the flags for the write
+side (mem leak) Correct mem leak in channels when statePtr was released
+(hobbs)
-9/24/99 (feature change) tk_dialog now uses {Times 12} by default. (hobbs)
+2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason)
---- Released 8.2.1, October 04, 1999 --- See ChangeLog for details ---
+2000-10-06 (bug fix) corrected [file channels] to only return channels in
+the current interpreter (hobbs)
-10/30/99 (bug fix) fixed XKeysymToKeycode to handle mapping of symbolic
-keysyms (Left, Home, ...) with event generate (hobbs)
+2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to
+speed up command significantly in base cases (hobbs)
-10/30/99 (bug fix) change tkEntrySeeInsert to avoid the use of a while loop
-that could eat CPU tremendously. Behavior of moving the cursor at the
-right edge changes slightly. [Bug: 3195] (hobbs)
+2000-10-27 Fixed mem leak in Tcl_CreateChannel. Re-purified core via test
+suites. (hobbs)
-10/30/99 (bug fix) changed tkScrollButtonUp to check for existence of
-tkPriv(relief) in order to avoid spurious release events (hobbs)
+2000-10-30 (new feature) add "ja_JP.eucJP" map to "euc-jp" encoding (takahashi)
---- Released 8.2.2, November 04, 1999 --- See ChangeLog for details ---
+2000-11-01 (mem leak) Corrected excessive mem use of info exists on a
+non-existent array element (hobbs)
-11/19/99 (bug fix) fixed expression error that could cause
-'malformed bucket chain' error in tkEntry.c. (hobbs)
+2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded
+environment (gravereaux)
-11/19/99 (bug fix) fixed Tk_NameOfColor (hobbs)
+2000-11-03 (new feature) Tcl_SetMainLoop enables defining an event loop for
+tclsh. This enables Tk as a truly loadable package. (hobbs)
---- Released 8.2.3, December 16, 1999 --- See ChangeLog for details ---
+--- Released 8.4a2, November 3, 2000 --- See ChangeLog for details ---
-1999-09-01 (feature enhancement) rewrote runtime libraries to use new
-Tcl functions where appropriate
+2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that
+didn't set nonBlocking correctly when resetting the flags for the write
+side (mem leak) Correct mem leak in channels when statePtr was released
+(hobbs)
-1999-10-28 (feature enhancement) added Img patch from Jan Nijtmans that
-makes the image command Tcl_Obj-based, adds support for binary -data args,
-adds alpha channel to images, adds GIF write capability (RLE). Binary
-compatability is maintained, and source level compatibility is retained
-with -DUSE_OLD_IMAGE. (nijtmans)
+2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason)
-1999-11-16 (feature enhancement) made listbox Tcl_Obj based, added
--listvariable option and itemconfigure command to allow coloring
-individual items. (melski)
+2000-10-06 (bug fix) corrected [file channels] to only return channels in
+the current interpreter (hobbs)
-1999-11-23 (feature enhancement) added TK_OPTION_DONT_SET_DEFAULT as an
-equivalent to TK_CONFIG_DONT_SET_DEFAULT (hobbs)
+2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to
+speed up command significantly in base cases (hobbs)
-1999-11-24 (feature enhancement) updated dialogs to use color icons on
-Unix, center properly over -parent. (hipp, hobbs)
+2000-11-01 (mem leak) Corrected excessive mem use of info exists on a
+non-existent array element (hobbs)
-1999-12-01 (feature enhancement) added hooks into main() code to support
-"big" shells more easily. (redman)
+2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded
+environment (gravereaux)
-1999-12-02 (feature enhancement) converted Tk_DestroyCmd, Tk_LowerCmd and
-Tk_RaiseCmd to their ObjCmd equivalent.
+2000-11-23 (mem leak) fixed potential memory leak in error case of lsort
+(fellows)
-1999-12-12 (bug fix) fixed bug in TextSearchCmd for multibyte chars
+2000-12-09 (feature enhancement) changed %o and %x to use strtoul instead
+of strtol to correctly preserve scan<>format conversion of large integers
+(hobbs)
+Fixed handling of {!<boolean>} in expressions (hobbs, fellows)
-1999-12-13 (feature enhancement) added support for pointer warping via the
-event -warp option, added some items from Dash patch: canvas widget now
-Tcl_Obj-based, added Tk_CreateSmoothMethod, added support for <Quadruple>
-clicks, entry widget validation routines, new -state hidden in text
-widgets, new -state -active* -disabled* -offset options to canvas items
-(see man page for full docs). New features include dashed line support on
-the canvas, -elide support for TkMan, postscript printing of images and
-windows from the canvas. Binary compatibility is maintained with 8.2, and
-source level compatibility is kept by using -DUSE_OLD_CANVAS.
-(hobbs, nijtmans, et al)
+2000-12-14 (feature enhancement) improved (s)rand for 64-bit platforms
+(porter)
-1999-12-16 (feature enhancement) added "bitstream cyberbit" to list of
-font fallbacks. (hobbs)
+2001-01-04 (bug fix) corrected parsing of $tcl_libPath at startup on
+Windows (porter)
-1999-12-16 (feature enhancement) added new 'tk useinputmethods ...' command
-to provide support for disabling/enabling the use of XIM on X. This was
-previously all done at compile time, and always on. Now it is turned off
-by default, even when available, and the user must turn it on to use XIM
-(per display).
- *** POTENTIAL INCOMPATIBILITY ***
-user must add 'tk useinputmethods 1' to retain old style. (hobbs)
+2001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter)
-1999-12-16 (feature enhancement) added proper support for -initialfile
-to tk_get*File, and made Unix version better match Windows file box
-that it was emulating. (hobbs)
+2001-02-15 (performance enhancement) improved efficiency of [string split]
+(fellows)
-1999-12-16 (bug fix) removed necessity of 'update idle' before 'wm
-deiconify' on Windows. (mao)
+2001-03-13 (bug fix) Correctly possible memory corruption in string map {}
+$str (fellows)
-1999-12-16 (feature enhancement) added support for Windows system cursors
-to TkGetCursorByName (use -cursor @filename)
+2001-03-29 (bug fix) prevent potential race condition and security leak in
+tmp filename creation on Unix. (max)
+Fixed handling of timeout for threads (corrects excessive CPU usage issue
+for Tk on Unix in threaded Tcl environment). (ruppert)
-1999-12-21 (bug fix) fixed lack of refresh for thin frames (darley)
+2001-03-30 (bug fix) corrected Windows memory error on exit (wu)
+Fixed race condition in readability of socket on Windows.
-1999-12-21 (bug fix) fixed panic in Tk_CoordsToWindow to print error
-to stderr instead (for Tix) (hobbs)
+2001-04-03 (doc fixes) numerous doc corrections and clarifications.
+Update of READMEs.
-1999-12-21 (bug fix) fixed segv with scale widget when using -cursor (hobbs)
+2001-04-04 (build improvements) redid Mac build structure (steffen)
+Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs).
+Added support for Win64 (hobbs).
---- Released 8.3b1, December 22, 1999 --- See ChangeLog for details ---
+--- Released 8.3.3, April 6, 2001 --- See ChangeLog for details ---
-2000-01-05 (bug fix) Applied fixes for unprotected arg passing through eval
-and after in Tk runtime code [Bug: 3943] (hobbs)
+2000-11-23 (new feature)[TIP 7] higher resolution timer on Windows (kenny)
-2000-01-05 (bug fix) Applied fix for i18n problems with Mac clipboard
-[Bug: 3544] (hobbs)
+2001-01-18 (new feature) Tcl_InitHashTableEx renamed to Tcl_InitCustomHashTable
+(kupries)
-2000-01-05 (feature change) removed the 8.3b1 introduced -state option
-for text tags, and documented -elide (-state hidden == -elide true) (hobbs)
+2001-03-30 (new feature)[TIP 10] support for thread-aware/hot channels (kupries)
-2000-01-12 (bug fix) fix Windows 'wm deiconify' to zoomed state [Bug: 2077]
-and fixed possible flashing of unmapped toplevel in deiconify [Bug: 3338]
-and fixed unwanted mapping of transient window [Bug: 572] (hobbs)
+2001-04-06 (new feature)[219280] auto-loading hidden in ::errorInfo (porter)
-2000-01-12 (feature enhancement) extended 'wm state' to accept a state
-to set for the toplevel, and added support for zoomed (maximized) state
-on Windows (hobbs)
+2001-04-07 (bug fix)[406709] corrected panic when extra items left on the
+byte compiler execution stack (sofer)
-2000-01-12 (bug fix) Applied fix for cursor to not blink when entry or
-text widget was disabled [Bug: 1807] (hobbs)
+2001-04-09 (bug fix)[219136,232558] improved use of thread-safe functions in
+unix time commands (kenny)
---- Released 8.3b2, January 13, 2000 --- See ChangeLog for details ---
+2001-04-24 (new feature)[TIP 27] started CONST-ification of the Tcl APIs (kenny)
-2000-01-20 (bug fix) fixed interpretation of consecutive ^ characters in
-grid command (melski)
+2001-05-03 (new feature) [auto_import] now matches patterns like
+[namespace import], not like [string match] (porter)
+ **** POTENTIAL INCOMPATABILITY ****
-2000-01-20 (bug fix) fixed -select(bg|fg) class names in listbox (hobbs)
+2001-05-07 (new feature)[416643] distinct srand() seed per interp (sofer)
-2000-01-20 (bug fix) fixed handling of too few coords for line item type in
-canvas (hobbs)
+2001-05-15 (new feature) new Tcl_GetUnicodeFromObj API (hobbs)
-2000-01-20 (bug fix) fixed dialog's association with parent (melski)
+2001-05-16 (performance enhancement) byte-compiled versions of [lappend],
+[append] simple cases (hobbs)
-2000-01-26 (bug fix) fixed handling of binary data for -data option to
-image create (melski)
+2001-05-23 (new feature) added ISO-8859-15 and koi8-u encodings, updated other
+encoding tables based on http://www.unicode.org/Public/MAPPINGS/ (kuhn)
-2000-01-26 (feature enhancement) improved GIF decoding speed by ~60%
-(melski)
+2001-05-27 (new feature) updated to Unicode 3.1.0 data set (still using 16
+bits for Tcl_UniChar though) (hobbs)
-2000-01-26 (feature enhancement) added tk_chooseDirectory implementation
-for Unix and Mac (nelson, melski)
+2001-05-30 (new feature)[TIP 15] Tcl_GetMathFuncInfo, Tcl_ListMathFuncs,
+Tcl_InfoObjCmd, InfoFunctionsCmd APIs (fellows)
-2000-02-01 (bug fix) fixed resolution rounding problem in scale (porter)
-and fixed potential Unix seg fault due to use of ckfree instead of
-Tcl_EventuallyFree (hobbs)
+2001-06-08 (bug fix,feature enhancement)[219170,414936] all Tcl_Panic
+definitions brought into agreement (porter)
-2000-02-01 (bug fix) fixed handling of negative dash values for canvas
-items (nijtmans)
+2001-06-12 (bug fix)[219232] regexp returned non-matching sub-pairs to have
+index pair {-1 -1} (fellows)
-2000-02-01 (bug fix) fixed dialog lockup on Windows where once the native
-dialog disappeared, the parent window could end up locked up (hobbs)
+2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII
+characters. (hobbs, riefenstahl)
-2000-02-03 (bug fix) fixed text dump to use char indices instead of byte
-indices (melski)
+2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer)
-2000-02-07 (bug fix) fixed handling of default extension in unix file
-dialogs (dejong)
+2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings
+(hobbs, barras)
-2000-02-08 (bug fix) corrected windows symbol font use to restrict itself
-to 8-bit chars (kenny)
+2001-07-12 (new feature)[TIP 36] Tcl_SubstObj API (fellows)
-2000-02-08 (feature enhancement) improved support for moving from the old
-style image C API to the new obj'ified one with new Tk_InitImageArgs
-command and stub'ing of image code. See docs for how to make the
-transition. (nijtmans)
+2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows
+(hobbs, jsmith)
-2000-02-08 (bug fix) fixed incorrect handling of CapsLock on Win9* and the
-use of dead keys on international keyboards (spjuth)
+2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size
+of a channel is changed after channel use has already begun (kupries, porter)
-2000-02-10 (bug fix) brought Mac back to building state, added support
-for Appearance Manager (ingham)
+2001-07-31 (new feature)[TIP 17] TclFS* APIs provide new virtual file
+system. This includes the addition of 'file normalize', 'file system',
+'file separator' and 'glob -tails' (darley)
-2000-02-10 (feature enhancement) added support for buttons 4 && 5 as
-mousewheel style scrolling in listbox and text widget for Unix.
+2001-08-06 (bug fix) removed use of tmpnam in TclpCreateTempFile on Unix (lim)
---- Released 8.3.0, February 10, 2000 --- See ChangeLog for details ---
+ * improved build support for IRIX, GNU HURD, Mac OS 9 and OS X
-2000-03-02 (bug fix) fixed crash in listbox when cursor was configure and
-then widget was destroyed (hobbs)
+ * configure scripts revamped for better support of cygwin and gcc on
+ Windows (mdejong)
-2000-03-02 (feature enhancement) added %V substitution to entry widget
-validation to clarify type of validation occuring (hobbs)
+ * corrected several minor errors noted by Purify (hobbs)
-2000-03-07 (feature enhancement) added -disabledforeground/-state to labels
-(melski)
+--- Released 8.4a3, August 6, 2001 --- See ChangeLog for details ---
-2000-03-29 (config enhancement) improved build support for gcc/mingw on
-Windows (nijtmans, hobbs) and added RPM target (melski)
+2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII
+characters. (hobbs, riefenstahl)
-2000-03-24 (bug fixes) numerous corrections for more correct Unix dialog
-behaviors (melski)
+2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer)
-2000-03-27 (bug fix) fixed mem leak in wm commands (hu)
+2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings
+(hobbs, barras)
-2000-03-31 (bug fix) correct initialization of Windows static builds and
-added Unicode aware open/save file dialogs on Windows (hobbs)
+2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows
+(hobbs, jsmith)
-2000-03 (bug fix) canvas: corrected support for transparency in dashed
-lines on Windows (nijtmans); added support for postscript generation of
-images on Windows, also fixing transparency printing (biancardi); corrected
-handling of configure options in non-empty canvas (melski)
+2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size
+of a channel is changed after channel use has already begun (kupries, porter)
-2000-04-07 (bug fix) correct font name length restriction that prevented
-the use of long named (>16 char) fonts on NT/2000 (hobbs)
+2001-08-06 (bug fix)[442665] corrected object reference counting in [gets]
+(jikamens)
-2000-04-07 (bug fix) fixed safe Tk to work in base cases (hobbs)
+2001-08-06 (new feature) added GNU (HURD) configuration target. (brinkmann)
-2000-04-10 (bug fix) corrected Alt-Key event generation and handling of
-Alt-sequence Windows special char generation and (Control|Shift|Alt)_L/_R
-determination (melski)
+2001-08-07 (bug fix)[406709] corrected panic when extra items left on the
+byte compiler execution stack (see test foreach-5.5) (sofer, tallneil, jstrot)
-2000-04-10 (bug fix) correctly check state of parent when popping up
-bgerror dialog. (melski)
+2001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3,
+tcltest 1.0.1, dependencies checked (porter)
-2000-04-11 (feature enhancement) msgcat now searches up the namespace chain
-for a match instead of just in the local namespace (hershey)
+2001-08-20 (new feature)[452217] http 2.3.2: include port number in Host: header
+to comply with HTTP/1.1 spec (RFC 2068) (hobbs, tils)
-2000-04-12 (bug fix) corrected handling of Windows clipboard to allow for
-use of user-defined types within the Tk app (hobbs)
+2001-08-23 (new feature) added QNX-6 build support (loverso)
-2000-04-13 (feature enhancement) improved handling of shadow determination
-for 3D borders in very light/dark cases (hipp, melski)
+2001-08-23 (bug fix) corrected handling of spaces in path name passed to
+[exec] on Windows (kenpoole)
-2000-04-13 (bug fix) correctly color separator bg in menus on Windows
-(melski)
+2001-08-24 (bug fix) corrected [package forget] stopping on non-existent
+package (porter)
-2000-04-14 (bug fix) improved handling of scale widget, reduced number of
-redraws (hobbs)
+2001-08-24 (bug fix) corrected construction of script library search path
+relative to executable (porter)
-2000-04-17 (feature enhancement) made shift-selection more Windows-like
-(intuitive) in text widget (melski)
+2001-08-24 (bug fix) [auto_import] now matches patterns like
+[namespace import], not like [string match] (porter)
+ **** POTENTIAL INCOMPATABILITY ****
-2000-04-22 (bug fix) mac bug fixes, nav services handling (ingham)
+2001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a
+true package (hobbs)
-2000-04 more docs for public APIs (melski)
+2001-08-30 (bug fix) build support for Crays (andreasen)
---- Released 8.3.1, April 26, 2000 --- See ChangeLog for details ---
-2000-04 (doc updates) extended, updated docs (melski)
+2001-09-01 (bug fix) rewrite of Tcl_Async* APIs to better manage thread
+cleanup (gravereaux)
-2000-05-09 (feature change) removed WS_EX_TOOLWINDOW style bit for
-transient windows on Windows platforms, so that transients have
-full-size titlebars (melski)
+2001-09-06 (new feature) http 2.4: honor the Content-encoding and charset
+parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell)
+=> http 2.4
-2000-05-09 (bug fix) fixed calling of takeFocus proc (nemethi)
+2001-09-06 (performance enhancement) rewrite of file I/O flush management on
+Windows. Approximately 100x speedup for some operations. (kupries, traum)
-2000-05-11 (bug fix) corrected handling of 3DBorder, Cursor and Color
-objects on multiple screens (hobbs)
+2001-09-10 (bug fix) corrected finalization error in TclInExit (darley)
-2000-05-12 (feature enhancement) improved support for chars in 0-255
-range for bitmap ANSI fonts (spjuth, hobbs)
+2001-09-10 (bug fix) protect against alias loops (hobbs)
-2000-05-12 (widget enhancement) added support for -repeatdelay,
--repeatinterval for command buttons; and -compound (image and text
-simultaneously) for labels, check-, radio-, and command buttons (melski)
+2001-09-12 (bug fix) added missing #include in tclLoadShl.c (techentin)
-2000-05-14 (widget change) added "readonly" state for entries and
-changed behavior of "disabled" entries; added -readonlybackground
-option for entries (melski)
-*** THIS IS A BACKWARDS INCOMPATIBLE BEHAVIOR CHANGE ***
+2001-09-12 (bug fix) script library path construction on Windows no longer
+uses registry, nor adds the current working directory to the path (porter)
-2000-05-15 (feature enhancement) added [image inuse] command (melski)
+2001-09-12 (bug fix) correct bugs in compatibility strtod() (porter)
-2000-05-15 (feature enhancement) added -nice option to [bell] command (duncan)
+2001-09-13 (bug fix) Tcl_UtfPrev now returns the proper location when the
+middle of a UTF-8 byte is passed in (hobbs)
-2000-05-17 (widget enhancement) added -overrelief option for
-check/radio/buttons (melski)
+2001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax)
-2000-05-26 (feature change) added support for new syntax in
-Tk_OptionSpec tables; if the database name for an option contains an
-embedded "." it indicates that the name contains an overriding window
-class specifier in addition to the database name, which allows widgets
-to perform queries for certain options as if they were options for a
-different widget class (melski)
+2001-09-19 (new feature) --enable-64-bit support for HP-11. (hobbs)
-2000-05-28 (new widget) added spinbox widget (hobbs)
+2001-09-19 (new feature) native memory allocator now default on Windows
+(hobbs)
-2000-05-31 (feature change) replaced bgerror dialog with a new and
-improved one (fellows, melski)
+2001-09-20 (new feature) WIN64 support and extra processor definitions
+(hobbs, mstacy)
---- Released 8.4a1, June 6, 2000 --- See ChangeLog for details ---
+2001-09-26 (bug fix) corrected potential deadlock in channels that do not
+provide a BlockModeProc (kupries, kogorman)
-2000-05-15 (bug fix) changed wm deiconify from using idle callback to
-calling restack and focus code immediately. (hobbs)
+2001-10-03 (new feature) WIN64 build support (hobbs)
-2000-07 (build cleanup) cleanup of defines in tkConfig.sh, and cleanup
-in make and configure files to better handle .rc files across
-builds. (welch)
+2001-10-03 (bug fix) correction in thread finalization (rbrunner)
-2000-07 (build improvements) cleanup of the makefiles and configure scripts
-to correct support for building under gcc for Windows. (dejong)
+2001-10-04 (new feature) updated encodings with latest mappings from
+www.unicode.org (hobbs)
-2000-08 (feature enhancements) for Windows, corrected drawing of separator
-menu entries, disable menu entries and the height for separator
-bars. (melski)
+2001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at
+interpreter deletion (sofer, rbrunner)
-2000-08 (bug fix) fixed calling of takeFocus proc with arg bearing
-functions. (nemethi)
+2001-10-16 (new feature) config support for MacOSX / Darwin (steffen)
-2000-08 (bug fix) For text widgets, added a test for a NULL segment pointer
-when doing backwards searches for "", correct searching over elided chars,
-and corrected search combining -regexp and -nocase. (melski)
+2001-10-16 (new feature, Mac) change in binary extension format from MachO
+bundles to standard .dylib dynamic libraries like on other unices.
+ *** POTENTIAL INCOMPATIBILITY ***
-2000-08 (bug fix) Corrected code for using 'place', cursors, colors and 3D
-borders on multiple screens simultaneously. (hobbs, hipp)
+2001-10-18 (bug fix) corrected off-by-one-day error in clock scan with
+relative months and years during swing hours. (lavana)
---- Released 8.3.2, August 9, 2000 --- See ChangeLog for details ---
+--- Released 8.3.4, October 19, 2001 --- See ChangeLog for details ---
-2000-06-15 (new feature) [tk_getOpenFile ... -multiple] (melski)
+2001-08-21 (bug fix)[219184] overagressive compilation of [catch] (sofer)
-2000-06-29 (new feature) localization support in Tk dialogs (duperval,
-melski, et al)
+2001-08-22 (new feature)[227482] [dde request -binary] (hobbs)
+=> dde 1.2
-200-07-28 (new feature) -state option for listbox, better native color
-defaults (melski)
+2001-08-30 (performance enhancement)[456668] fully qualified command names use
+cached Command for all namespaces, avoiding repeated lookups (sofer)
-2000-08 (feature rewrites) Tcl_Obj'ified clipboard, message, tkwait,
-bindtags, grab. place, selection commands (melski)
+2001-08-31 (performance enhancement) bytecompiled [list] (hobbs)
-2000-08-24 (new feature) More correct GNU configure support (no more
---enable-gcc) (dejong)
- *** POTENTIAL INCOMPATIBILITY ***
+2001-09-02 (bug fix)[403553] Add -Zl to VC++ compile line for tclStubLib to
+avoid any specific C-runtime library dependence. (gravereaux)
-2000-08-29 (bug fix) Corrected Windows menu indicator drawing (oberhumer)
+2001-09-05 (new feature) restored support for Borland compiler (gravereaux)
-2000-09-01 (bug fix) Added tkPlatDecls.h to default install (melski)
+2001-09-05 (new feature)[TIP 49] Tcl_OutputBuffered API (schroedter, fellows)
-2000-09-17 (new feature) Added TK_OPTION_CUSTOM type, similar to
-TK_CONFIG_CUSTOM (melski)
+2001-09-07 (new feature) restored VC++ 5.0 compatibility (gravereaux)
-2000-09-29 (bug fix) Several fixes for multi-display uses of Tk (hipp, hobbs)
+2001-09-10 (performance enhancement)[TIP 53,451441] [proc foo args {}] now
+compiles to 0 bytecodes (sofer)
-2000-10-05 (new feature) Tk_CreateAnonymousWindow API to create anonymous
-Tk windows controllable from C (melski)
+2001-09-13 (new feature)[TIP 56] Tcl_EvalTokensStandard API (sofer)
-2000-10-27 (new default behavior) [tk useinputmethods 1] is the default
-in tk.tcl, for users of XIM and "dead" keys (hobbs)
+2001-09-13 (new feature) Old ChangeLog entries => ChangeLog.1999 (hobbs)
-2000-10-30 Improved support for static builds on Windows (gravereaux)
+2001-09-17 (new feature) compiling with TCL_COMPILE_DEBUG now required to
+enable all compile and execution tracing (sofer)
+ *** POTENTIAL INCOMPATIBILITY ***
- * Added support for mingw (gcc on Windows), AIX-5 and Win64 builds
- (dejong, hobbs)
+2001-09-19 (bug fix)[411825] made TclNeedSpace UTF-8 aware (fellows)
- * Improved error checking in Windows native dialogs (melski, hobbs)
+2001-09-19 (bug fix)[219166] overagressive compilation of "quoted" bodies of
+[for], [foreach], [if], and [while] (sofer)
---- Released 8.4a2, November 3, 2000 --- See ChangeLog for details ---
+2001-09-19 (performance enhancement) bytecompiled [string match] (hobbs)
-2001-04-04 (build improvements) redid Mac build structure (steffen)
-Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs).
-Added support for Win64 (hobbs).
+2001-10-15 (new feature)[TIP 35] serial channel configuration: Win (schroedter)
-2001-04-04 (doc fixes) numerous doc corrections and clarifications.
-Update of READMEs.
+2001-11-06 (bug fix)[478856] loss of fileevents due to short reads (kupries)
-2001-04-04 (bug fix) corrected reseting of service mode to only occur when
-it was set (hedin, hobbs)
+2001-11-06 (new feature) revitalized makefile.vc (gravereaux)
-2001-04-02 (bug fix) Improved tests on Windows for correctness.
-Checked for menu deletion before calling associated menu entry command.
-Fixed listbox, canvas and entry destruction to be more aware of current
-widget activity. (hobbs)
+2001-11-07 (new feature) Cygwin gcc support dropped. Use mingw (dejong)
+ *** POTENTIAL INCOMPATIBILITY ***
-2001-03-30 (feature enhancement) added support for changing IME on the fly
-in Windows (2000) (lam)
-(bug fix) handled the error case where a valid-looking but invalid
-identifier could be passed in certain event generate options causing a
-crash (hobbs)
+2001-11-07 (new feature) Support --include-dir= and --libdir= options to
+configure. Store in tclConfig.sh as TCL_INCLUDE_SPEC and TCL_LIB_SPEC.
+(dejong)
+ *** POTENTIAL INCOMPATIBILITY ***
-2001-03-29 (bug fix) corrected handling of drag-selection (dejong)
+2001-11-08 (new feature) Enable --enable-threads on FreeBSD (dejong)
-2001-01-02 (feature enhancement) added Windows icon support in wm
-iconbitmap (darley)
+2001-11-08 (new feature) New make target 'make gdb' (dejong)
-2000-10-27 (feature enhancement) made [tk useinputmethods 1] the default
-for Tk (hobbs)
+2001-11-09 (bug fix)[480176] [global] mishandled varnames matching :* (porter)
-2000-10-18 (bug fix) Corrected rendering of 1-pixel wide stippled lines on
-Windows. Correct use of active- and disabledwidth values for displaying
-lines. Enhanced error handling in Windows native dialogs (melski)
+2001-11-12 (new feature)[TIP 22,33,45] new command [lset],
+[lindex] extended to accept multiple indices. (kenny, hobbs)
-2000-09-29 (bug fix) corrected BadMatch errors when using Tk on multiple
-screens (hipp)
+2001-11-16 (new feature) new configure option --enable-langinfo=no.
+By default, nl_langinfo() is used on Unix to determine system encoding.
+Tcl's built-in system is used only if that fails, or configured with
+--enable-langinfo=no. (hobbs, wagner)
-2000-08-18 (feature enhancement) Removed redundant call to DitherInstance
-(melski)
+2001-11-19 (new feature)[TIP 62] A Tcl_VarTraceProc can now return Tcl_Obj *
+or a dynamic string as well as a static string to indicate an error (fellows)
---- Released 8.3.3, April 6, 2001 --- See ChangeLog for details ---
+2001-11-19 (new feature)[TIP 73] Tcl_GetTime API (kenny)
-2000-11-21 (new feature)[TIP 5] Tk_ClassProcs, Tk_SetClassProcs API (melski)
+2001-11-19 (bug fix)[478847] overflows in [time] of >2**31 microseconds (kenny)
-2000-12-13 (performance enhancement)[403327] Tcl_Objs of type "double"
-are recognized in SetMMFromAny to speed up canvas coord calculations (hobbs)
+2001-11-29 (performance enhancement) caching scheme added to [binary scan]
+(fellows)
-2001-01-02 (new feature)[TIP 8] [wn iconbitmap -default] on Windows (darley)
+2001-12-05 (new feature) new algorithm for [array get] adds safety when read
+traces modify the array. (sofer)
+ *** POTENTIAL INCOMPATIBILITY ***
-2001-02-12 (new feature)[TIP #21] asymmetric padding in the pack and grid
-geometry managers (hipp)
+2001-12-10 (bug fix)[490514] doc fixes (porter,english)
-2001-05-21 (new feature)[TIP #11], -compound for [menubutton] widget (helfter)
+2001-12-18 (new feature) removed unix/dltest/configure; unix/configure does
+all (dejong)
-2001-06-03 (bug fix) corrected support for is10646 fonts on Unix, added a
-ucs-2be encoding (welch)
+2001-12-19 (new feature) New make target 'make shell' (dejong)
-2001-07-02 (bug fix) allowed tkwin to be Tcl_EventuallyFree'd in
-Tk_DestroyWindow so other widgets could register their use of it. Updated
-entry and listbox widgets to use this, correcting potential crashes. (hobbs)
+2001-12-21 (new feature) MaxOSX / Darwin support (steffen)
-2001-08-01 (interface rewrite)[TIP 44] moved all private tk[A-Z]* commands and
-variables into the ::tk:: namespace (porter)
- *** POTENTIAL INCOMPATIBILITY ***
+2001-12-28 (new feature) new command [memory onexit] replaces [checkmem] when
+compiled with TCL_MEM_DEBUG. Added documentation. (porter)
+ *** POTENTIAL INCOMPATIBILITY ***
- * overhaul of configure scripts for cleaner standard support and support
- of mingw gcc on Windows. (mdejong)
+2001-12-28 (bug fix) proper case in [auto_execok] use of $env(COMPSPEC) (hobbs)
- * improved tests to better handle results on variant systems (hobbs)
+2002-01-05 (feature rewrite) Tcl_Main() rewritten and documentation improved.
+Interactive operation and event loop operation (via Tcl_SetMainLoop) now
+interleave cleanly. Also more robust against strange happenings. (porter)
- * correct several minor Purify complaints (hobbs)
+2002-01-17 (bug fix)[504642] Tcl_Obj refCounts in [gets] (griffen,kupries)
---- Released 8.4a3, August 6, 2000 --- See ChangeLog for details ---
+2002-01-21 (bug fix)[506297] infinite loop writing in iso2022-jap encoding
+(forssen,kupries)
-2001-08-06 (new feature) added GNU (HURD) build support. (brinkman)
+2002-01-24 (HTTP server bug workaround)[504508] leave the default port out
+of the Host: header value
+=> http 2.4.1 (hobbs)
-2001-08-23 (new feature) added QNX-6 build support. (loverso)
+2002-01-25 (new feature)[496733] socket options -eofchar and -translation
+return read-only values (dejong)
-2001-08-24 (bug fix) correct several possible free memory reads and array
-bounds read errors reported by purify. (hobbs)
+2002-01-28 (new feature) Old ChangeLog entries => ChangeLog.20900 (hobbs)
-2001-08-27 (new feature) added call to Tcl_SetMainLoop which enables Tk to
-be loaded interactively into tclsh and have the event loop kick in
-correctly. (hobbs)
+2002-01-28 (performance enhancement) bytecompiled [regexp] for trivial cases
+that amount to string matching. Also -nocase and --. (hobbs)
-2001-08-28 (bug fix) fixed tk_chooseDirectory crash on Win95. (baker)
+2002-02-05 (bug fix) [http::error] called when [::error] intended
+=> http 2.4.2 (porter)
-2001-08-28 (bug fix) removed 2 second 'raise' delay seen by some Unix
-window managers. (hobbs, baker)
+2002-02-05 (bug fix)[465765] avoid zero-byte writes to STREAMs
+(talcott,kupries)
-2001-09-14 (bug fix) fixed memory leaks that occured if errors were
-thrown while initializing the channel for an image. (darley)
+2002-02-06 (performance enhancement) [regsub] special cases that map to
+[string map] detected. (hobbs)
-2001-09-20 (new feature) --enable-64bit support was added for HP 11 when
-using the native compiler.
+2002-02-06 (bug fix)[495213] [scan] accept 0x as prefix of base 16 value
+(hobbs)
-2001-10-03 (new feature) finalized Win64 support with latest RC1 release
-and SDK. (hobbs, stacy)
+2002-02-10 (new feature)[TIP 32,79] Tcl_CreateObjTrace API (kenny)
-2001-10-04 (new feature) added enhanced bgerror dialog from Hipp. (hobbs)
+2002-02-12 (new feature) partial support for DJGPP Tcl on DOS (gravereaux)
-2001-10-09 (new feature) added brace/quote matching and file/path/var
-expansion to the Win/Mac console. (hobbs)
+2002-02-14 (mem leak) Fixed leaking an empty Tcl_Obj when [gets $chan]
+errored out. (kupries, sofer)
-2001-10-17 (bug fix) fixed file filtering in the motif file dialog (nelson)
+2002-02-15 (new feature)[TIP 72] support for 64-bit integer values on
+32-bit platforms and ability to work with >2GiB files. Extends many
+commands. See ChangeLog and TIP for details.
+ *** POTENTIAL INCOMPATIBILITY ***
-2001-10-17 (bug fix) updated Mac build support. (steffen)
+2002-02-22 (bug fix)[476537] Fix panic when loading shared library without
+proper use of stubs on platform without backlinking (porter)
---- Released 8.3.4, October 19, 2001 --- See ChangeLog for details ---
+2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs)
-2001-08-14 (bug fix)[450545] Tk's Tcl_ObjTypes now registered (fellows)
+2002-02-22 (new feature)[521560] Removed limits on filename length and
+format [source]able through the Safe Base (hobbs)
-2001-08-20 (performance enhancement) internal use of a "window" Tcl_ObjType
-(fellows)
+2002-02-22 (performance enhancement) optimized bytecodes for [if], [for],
+[while] and constant conditions (sofer)
-2001-08-20 (performance enhancement) Obj-ified [grid] and [pack] (spjuth)
+2002-02-22 (new feature)[TIP 76] [regsub] can now return result (fellows)
-2001-09-26 (new feature)[TIP 18] add labels to frames, update geometry
-managers (spjuth)
+2002-02-25 (bug fix)[495207] buffer overrun when closing ] left out of
+argument to [subst] (sofer, english)
-2001-09-30 (new feature)[TIP 37] [grid {row|column}configure -uniform] (spjuth)
+2002-02-25 (bug fix)[514392] [load] updated for Mac OS X 10.1 (steffen)
-2001-10-12 (new feature)[TIP 63] [$menu add ... -compound] (helfter)
+2002-02-26 (bug fix) [info hostname] choked on names >31 characters (hobbs)
-2001-10-18 (build improvement) no more warnings about building with
-thread-enabled Tcl (hobbs)
+2002-02-26 (new feature)[TIP 35] serial channel configuration: Unix
+(schroedter, hobbs)
-2001-11-10 (build improvement) new make target 'make gdb' (dejong)
+2002-02-25 (bug fix)[483575] [fconfigure ... -error] now no-op on Mac (kupries)
-2001-11-12 (new feature)[TIP 26] simple undo/redo in text widget (callewaert)
+2002-02-28 (performance enhancement)[458872] fully qualified command names use
+cached Command for all namespaces, avoiding repeated lookups (sofer)
-2001-11-12 (build improvement) revitalized makefile.vc (gravereaux)
+ * (new feature)[TIP 27] completed CONST-ification of TCL APIs.
+Added compiler macro USE_NON_CONST to keep using those old API prototypes
+that present irreconcilable source incompatibilities with header files
+of prior Tcl releases. Others will need to be reconciled.
+ *** POTENTIAL INCOMPATIBILITY ***
-2001-11-17 (visual change) default button size on Windows changed to
-conform to Windows style (hobbs)
- **** POTENTIAL VISUAL INCOMPATABILITY ****
+2002-03-04 (bug fix)[474358, 218099, 219314, 524674] fixed several problems
+related to the handling of iso2022 text and finalization of escape-based
+encodings. (taguchi, takahashi, hobbs)
-2001-12-03 (new feature)[TIP 74] [wm stackorder] (dejong, steffen)
+--- Released 8.4a4, March 5, 2002 --- See ChangeLog for details ---
-2001-12 (new feature) more use of Unicode in native widgets on Windows (hobbs)
+2002-03-06 (new feature)[TIP 80] expanded [lsearch] options (wilkason, fellows)
-2001-12-18 (bug fix)[413735] event-click-drag-1.2 test failure (porter)
+2002-03-07 (new feature)[TIP 87] [interp recursionlimit] (trier)
-2001-12-28 (new feature) On Windows, buttons accept negative widths, meaning
-minimum size, enabling native L&F (hobbs)
+2002-03-08 (platform feature) mingw 1.1 build favored (dejong)
-2002-01 (bug fix) updates for CONST-ification in Tcl API, notably
-Tcl_ParseArgv. Use -DUSE_NON_CONST to suppress source incompatibility
- **** POTENTIAL INCOMPATABILITY ****
+2002-03-20 (new feature)[TIP 27] CONST-ified variable access functions (porter)
-2002-01-31 (bug fix)[508988] logic error in menu cloning (helfter)
+2002-03-24 (bug fix)[511666,511658,523217,530960] expanded
+Tcl_FSMatchInDirectory to handle assorted [glob] bugs in VFS. (darley)
+ *** POTENTIAL INCOMPATIBILITY with prior 8.4a releases ***
-2002-02-01 (new feature)[TIP 14] [$photo transparency] (fellows)
+2002-03-25 (bug fix)[495726] stopped tcltest disabling of auto-loading (porter)
-2002-02-01 (bug fix)[511956] C99 spec: avoid 'bool' as a variable name (hobbs)
+2002-03-25 (bug fix)[495977] allow \n in test constraints (porter)
-2002-02-19 (bug fix) updates to image code calls of Tcl_Seek/Tcl_Tell to
-address TIP 72 changes (64-bit) in Tcl (fellows)
+2002-03-27 (platform support)[527941,533862] VC/winhelp/W9X (spjuth,
+gravereaux)
-2002-02-21 (new widget)[TIP 41] added [panedwindow] (hobbs)
+2002-03-28 (bug fix)[219181] exception at level 0 issues (sofer)
-2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs)
+2002-03-28 (bug fix)[219362] command termination; Tcl_CreateTrace (knoll,sofer)
-2002-02-25 (bug fix)[503772] blinking cursor fix in [text] (hobbs)
+2002-04-05 (bug fix)[536879] exceptions during variable subst (porter)
-2002-02-25 (bug fix)[503613] [listbox] handling of invalid listvar (hobbs)
+2002-04-15 (bug fix)[497446,513983] tcltest syntax errors now raised (porter)
+ ***POTENTIAL INCOMPATIBILITY with prior tcltest 2.0.* (8.4aX)***
-2002-02-25 (feature change)[493145] mirror B2 bindings to B3 on Windows (hobbs)
+2002-04-17 (bug fix)[495660] [(save|restore)state] deprecated (porter)
- * (updated demos) many updates to show new features (fellows)
+2002-04-17 (bug fix)[526524] escape-based encodings corrected (yamamoto, hobbs)
---- Released 8.4a4, March 5, 2002 --- See ChangeLog for details ---
+2002-04-18 (bug fix)[542588] [expr] error msgs improved (ehrens, sofer)
-2002-03-20 (feature change)[TIP 27][532644] Constness changes (porter)
+2002-04-18 (bug fix)[545325] [info level $level] now returns [namespace eval]
+as documented (suchenwirth,sofer)
-2002-03-21 (bug fix)[528441] Change in optimization flags for windows
-(gravereaux)
+2002-04-19 (bug fix)[544727] export [mcload]; ns context of [mcmax] (porter)
+=> msgcat 1.2.3
-2002-04-08 (bug fix) MSL stdin/out fixes prevent crash on exit (steffen)
+2002-04-22 (performance enhancement) threaded memory allocator (AOL, hobbs)
-2002-04-12 (bug fix) Centralized closing of display, mem-leak fixes (hobbs)
+2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES #define disables
+inclusion of tcl library code in resource fork on Mac. (steffen)
-2002-04-22 (bug fix)[223739] More robust FP comparisons for odd
-architectures (fellows)
+2002-05-21 (platform support) static libs on OSF (dejong)
-2002-04-22 (bug fix)[541999] Fixed posible overun of 16-bit size limit
-of X windows in drawchars (hobbs,bonfield)
+2002-05-24 (bug fix)[557878] set encoding on listening socket (staplin,
+kupries)
-2002-04-22 (bug fix)[541849] ButtonLeave implementation corrected (hobbs)
+2002-05-24 (new feature)[TIP 91] Tcl_Seek compatibility (fellows)
-2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES check added,
-allowing disable of inclusion of tk lib into resources (steffen)
+2002-05-28 (bug fix)[545579] VFS [load] left temp file (darley)
-2002-05-07 (bug fix)[553208] Makefile/Win fix (TCLDIR, INSTALLDIR
-forward slash trouble resolved) (gravereaux)
+2002-05-28 (bug fix)[559376] plug timezone env leak on Windows (hobbs)
-2002-05-20 (bug fix) msgcat added to resources, fixed setup of bindings
-on startup (steffen, porter)
+2002-05-29 (performance enhancement) [string compare] optimized (hobbs,fellows)
-2002-05-21 (bug fix) Build system fix, SC_ENABLE_SHARED before
-SC_CONFIG_CFLAGS for usage for SHARED_BUILD (dejong)
+2002-05-31 (bug fix)[550534] plug interp leak in [pkg_mkIndex] (helmut)
-2002-05-26 (bug fix)[548765] Fixed -value "" redraw error for variable
-created by radiobutton (spjuth)
+2002-05-31 (dead code)[474335,555635] removed all use of matherr() (english)
+ *** POTENTIAL INCOMPATIBILITY ***
-2002-05-27 (feature change) [wm transient .t .t] now raises an error (dejong)
- *** POTENTIAL INCOMPATIBILITY ***
+2002-06-04 (new feature)[TIP 85,521362] custom result match in tcltest
+(markus, porter)
+=> tcltest 2.1
-2002-06-10 (new feature)[566605] Utilities for -underline, ampersand magic
-(kovalenko)
+2002-06-06 (bug fix)[524352] encoding, threading, and environment issues on
+MacOSX (steffen)
-2002-06-12 (feature change) A transient toplevel now mirrors state changes
-in the master. (dejong)
- *** POTENTIAL INCOMPATIBILITY ***
+2002-06-06 (bug fix)[512214,558742,512214,461000] lazy initialization of
+tcltest constraints (porter)
-2002-06-13 (bug fix) Fixed handling of cursor specs across platforms to
-be consistent. (fellows)
+2002-06-07 (bug fix)[563122,564595] EOVERFLOW definitions (fellows)
-2002-06-14 (new feature) [TIP 98] Enhanced photo compositing (fellows)
- *** POTENTIAL INCOMPATIBILITY ***
+2002-06-11 (bug fix)[567386] [info locals] corrections (sofer)
-2002-06-14 (bug fix) Removed references to matherr (kupries)
+2002-06-14 (new feature)[TIP 102] [trace list] renamed [trace info] (fellows)
-2002-06-14 (new feature) [TIP 47] Reorganized Tk to allow usage in writing
-an X wm (english)
+2002-06-17 (new feature)[525522,525525] msgcat support for XPG4 locales;
+examination of LC_ALL, LC_MESSAGES environment variables (haible, porter)
+=> msgcat 1.3
-2002-06-14 (new feature) [TIP 84] Full motion events upon request (hobbs)
+2002-06-17 (new feature)[565088] header files assume modern C compiler by
+default; older compilers may need configuration (english)
+ *** POTENTIAL INCOMPATIBILITY ***
-2002-06-17 (new feature) [TIP 82] -offrelief option for check/radiobutton
-(hipp)
+2002-06-17 (bug fix)[554068] [exec] argument quoting on Windows (darley)
-2002-06-17 (enhancement) Added msg catalog for UK English. (porter)
+2002-06-17 (new feature)[TIP 62,462580] command execution traces (lavana)
-2002-06-17 (new feature) [TIP 96] Added caret handling (hobbs)
+2002-06-19 (bug fix)[558324] regexp sets a linked variable (watson)
-2002-06-19 (new feature) [TIP 48] Added style engine (bonnet)
+ * (performance enhancment) optimizations of bytecode execution (sofer)
-2002-06-19 (bug fix)[570902] Reorganized Tk shutdown to work around bugs in
-X (dejong)
+2002-06-21 (new feature)[TIP 99,562970] new [file link] command (darley)
-2002-06-20 (new feature) [TIP 94] Added -activestyle for [listbox] (hobbs)
+2002-06-24 (new feature)[TIP 101] new [tcltest::configure] command (porter)
+=> tcltest 2.2
-2002-06-21 (new feature) [TIP 104] generalized text undo/redo (callewart,
-hobbs)
+2002-06-25 (new feature) --enable-man-symlinks and --enable-man-compression
+options to configure (max)
-2002-06-22 (new feature) [TIP 95] Added [wm attributes] command (hobbs)
+2002-06-26 (bug fix)[565880] [clock format] now respects locale (max)
+ *** POTENTIAL INCOMPATIBILITY ***
-2002-06-22 (new feature) [TIP 93] enhanced get/delete to accept accept
-multiple range pairs (hobbs)
+2002-07-03 (bug fix)[577015] [catch] catches even compile errors (sofer)
--- Released 8.4b1, July 5, 2002 --- See ChangeLog for details ---
-2002-07-11 (bug fix) some memory allocation failures now result in
- error messages rather than panic (fellows)
-
-2002-07-15 (platform support) Borland makefile on Windows (gravereaux,giese)
+2002-07-08 (bug fix) restored compatibility of [viewFile] in tcltest (porter)
-2002-07-16 (bug fix)[220800,581627] icon reading (darley)
+2002-07-11 (bug fix) [file normalize] returns long form on Win 95/98/ME (darley)
-2002-07-19 (bug fix) Postscript generation on Win2K (hipp)
+2002-07-15 (performance enhancment) variable operations rewritten to store
+ and use cached Var pointers (sofer)
-2002-07-22 (bug fix)[570764,568278] transient windows (dejong)
+2002-07-22 (bug fix)[218000] Inf and Nan are floating-point values (fellows)
-2002-07-24 (bug fix)[581560] canvas memory management (hobbs)
+2002-07-23 (platform support)[219220] 64-bit compile on IRIX (dejong)
-2002-07-24 (bug fix)[584691] focus ring on compound button (hobbs)
+2002-07-25 (bug fix)[219218] return codes in background errors (english)
-2002-07-25 (feature enhancement)[564521] Obj-ified [wm] (spjuth)
+2002-07-28 (bug fix)[582522] alias fires exec traces (sofer)
-2002-08-04 (new feature)[589853][TIP 27] Tk interfaces are now fully
- CONST-ified. Use the symbols USE_NON_CONST or USE_COMPAT_CONST
- to select interfaces with fewer changes.
- *** POTENTIAL INCOMPATIBILITY ***
+2002-07-29 (bug fix)[578363] regexp (fellows,pvgoran)
-2002-08-07 (bug fix)[578654] bezier curves on canvas (hobbs)
+2002-07-30 (bug fix)[584603] WriteChars infinite loop non-UTF-8 string (kupries)
-2002-08-07 (platform support)[468139] native directory browser on Win (hobbs)
+2002-08-04 (new feature)[584051,580433,585105,582429][TIP 27] Tcl interfaces
+ are now fully CONST-ified. Use the symbols USE_NON_CONST or
+ USE_COMPAT_CONST to select interfaces with fewer changes.
+ *** POTENTIAL INCOMPATIBILITY ***
-2002-08-07 (bug fix)[467524] fixed -from handling for gifs (obermeier)
+2002-08-05 (bug fix)[589859] tcltest setup and cleanup scripts skipped when
+ test body is skipped (porter)
+ => tcltest 2.2
-2002-08-08 (bug fix)[592201] wm transient panic (english,dejong)
+2002-08-07 (bug fix)[587488] mem leak with USE_THREAD_ALLOC (sofer,sass)
+
+2002-08-07 (feature enhancement)[584794,584650,472576] boolean values
+ are no longer always re-parsed from string. (sofer)
-Rewrote Tk test suite to use tcltest package.
+Many internal bugs fixed.
+Considerable cleanup of the test suite.
--- Released 8.4b2, August 9, 2002 --- See ChangeLog for details ---
-2002-08-20 (bug fix) tk.h checks for matching tcl.h version (porter)
-
-2002-08-27 (bug fix)[582457] toolbar button bindings (hipp)
+2002-08-20 (new feature) --enable-memdebug configure option (kupries)
-2002-08-31 (platform support)[602770] Mac OS X / Aqua port (steffen)
+2002-08-23 (bug fix)[597936] mem leak with USE_THREAD_ALLOC (sofer,zoran)
-2002-09-02 (bug fix)[565485] button height on windows (hobbs)
+2002-08-26 (bug fix)[599788] segfault in compiler (sofer,wilkason)
-2002-09-02 (new feature)[TIP 108] new comand [tk windowingsystem] (steffen)
+2002-08-28 (bug fix)[414910] avoid mem leaks accessing environment variables
+ on Windows (welton,gravereaux)
-2002-09-02 (new feature)[TIP 107][601518] [raise] is non-blocking (english)
+2002-08-31 (platform support)[TIP 108] Mac OS X port (steffen,ingham)
2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin)
diff --git a/tcl/compat/license.terms b/tcl/compat/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/compat/license.terms
+++ b/tcl/compat/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/doc/license.terms b/tcl/doc/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/doc/license.terms
+++ b/tcl/doc/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/generic/README b/tcl/generic/README
index 1a77e83f9f3..b7d94230b29 100644
--- a/tcl/generic/README
+++ b/tcl/generic/README
@@ -1,5 +1,5 @@
-This directory contains Tk source files that work on all the platforms
-where Tk runs (e.g. UNIX, PCs, and Macintoshes). Platform-specific
+This directory contains Tcl source files that work on all the platforms
+where Tcl runs (e.g. UNIX, PCs, and Macintoshes). Platform-specific
sources are in the directories ../unix, ../win, and ../mac.
-RCS ID: @(#) $Id$
+RCS: @(#) $Id$
diff --git a/tcl/library/license.terms b/tcl/library/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/library/license.terms
+++ b/tcl/library/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/library/tclIndex b/tcl/library/tclIndex
index 6b3547d579f..c2da6bee4c5 100644
--- a/tcl/library/tclIndex
+++ b/tcl/library/tclIndex
@@ -6,272 +6,77 @@
# element name is the name of a command and the value is
# a script that loads the command.
-set auto_index(::tk::dialog::error::Return) [list source [file join $dir bgerror.tcl]]
-set auto_index(::tk::dialog::error::Details) [list source [file join $dir bgerror.tcl]]
-set auto_index(::tk::dialog::error::SaveToLog) [list source [file join $dir bgerror.tcl]]
-set auto_index(::tk::dialog::error::Destroy) [list source [file join $dir bgerror.tcl]]
-set auto_index(::tk::dialog::error::bgerror) [list source [file join $dir bgerror.tcl]]
-set auto_index(bgerror) [list source [file join $dir bgerror.tcl]]
-set auto_index(::tk::ButtonInvoke) [list source [file join $dir button.tcl]]
-set auto_index(::tk::ButtonAutoInvoke) [list source [file join $dir button.tcl]]
-set auto_index(::tk::CheckRadioInvoke) [list source [file join $dir button.tcl]]
-set auto_index(::tk::dialog::file::chooseDir::) [list source [file join $dir choosedir.tcl]]
-set auto_index(::tk::dialog::file::chooseDir::Config) [list source [file join $dir choosedir.tcl]]
-set auto_index(::tk::dialog::file::chooseDir::OkCmd) [list source [file join $dir choosedir.tcl]]
-set auto_index(::tk::dialog::file::chooseDir::DblClick) [list source [file join $dir choosedir.tcl]]
-set auto_index(::tk::dialog::file::chooseDir::ListBrowse) [list source [file join $dir choosedir.tcl]]
-set auto_index(::tk::dialog::file::chooseDir::Done) [list source [file join $dir choosedir.tcl]]
-set auto_index(::tk::dialog::color::) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::InitValues) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::Config) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::BuildDialog) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::SetRGBValue) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::XToRgb) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::RgbToX) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::DrawColorScale) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::CreateSelector) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::RedrawFinalColor) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::RedrawColorBars) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::StartMove) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::MoveSelector) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::ReleaseMouse) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::ResizeColorBars) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::HandleSelEntry) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::HandleRGBEntry) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::EnterColorBar) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::LeaveColorBar) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::OkCmd) [list source [file join $dir clrpick.tcl]]
-set auto_index(::tk::dialog::color::CancelCmd) [list source [file join $dir clrpick.tcl]]
-set auto_index(tclParseConfigSpec) [list source [file join $dir comdlg.tcl]]
-set auto_index(tclListValidFlags) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FocusGroup_Create) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FocusGroup_BindIn) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FocusGroup_BindOut) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FocusGroup_Destroy) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FocusGroup_In) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FocusGroup_Out) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::FDGetFileTypes) [list source [file join $dir comdlg.tcl]]
-set auto_index(::tk::ConsoleInit) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleSource) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleInvoke) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleHistory) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsolePrompt) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleBind) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleInsert) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleOutput) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleExit) [list source [file join $dir console.tcl]]
-set auto_index(::tk::ConsoleAbout) [list source [file join $dir console.tcl]]
-set auto_index(tk_dialog) [list source [file join $dir dialog.tcl]]
-set auto_index(::tk::EntryClosestGap) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryButton1) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryMouseSelect) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryPaste) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryAutoScan) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryKeySelect) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryInsert) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryBackspace) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntrySeeInsert) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntrySetCursor) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryTranspose) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryPreviousWord) [list source [file join $dir entry.tcl]]
-set auto_index(::tk::EntryGetSelection) [list source [file join $dir entry.tcl]]
-set auto_index(tk_focusNext) [list source [file join $dir focus.tcl]]
-set auto_index(tk_focusPrev) [list source [file join $dir focus.tcl]]
-set auto_index(::tk::FocusOK) [list source [file join $dir focus.tcl]]
-set auto_index(tk_focusFollowsMouse) [list source [file join $dir focus.tcl]]
-set auto_index(::tk::ListboxBeginSelect) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxMotion) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxBeginExtend) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxBeginToggle) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxAutoScan) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxUpDown) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxExtendUpDown) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxDataExtend) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxCancel) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::ListboxSelectAll) [list source [file join $dir listbox.tcl]]
-set auto_index(::tk::MbEnter) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MbLeave) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MbPost) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuUnpost) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MbMotion) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MbButtonUp) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuMotion) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuButtonDown) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuLeave) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuInvoke) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuEscape) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuUpArrow) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuDownArrow) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuLeftArrow) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuRightArrow) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuNextMenu) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuNextEntry) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuFind) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::TraverseToMenu) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::FirstMenu) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::TraverseWithinMenu) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuFirstEntry) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::MenuFindName) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::PostOverPoint) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::SaveGrabInfo) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::RestoreOldGrab) [list source [file join $dir menu.tcl]]
-set auto_index(tk_menuSetFocus) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::GenerateMenuSelect) [list source [file join $dir menu.tcl]]
-set auto_index(tk_popup) [list source [file join $dir menu.tcl]]
-set auto_index(::tk::ensure_psenc_is_loaded) [list source [file join $dir mkpsenc.tcl]]
-set auto_index(::tk::MessageBox) [list source [file join $dir msgbox.tcl]]
-set auto_index(tk_menuBar) [list source [file join $dir obsolete.tcl]]
-set auto_index(tk_bindForTraversal) [list source [file join $dir obsolete.tcl]]
-set auto_index(tk_optionMenu) [list source [file join $dir optMenu.tcl]]
-set auto_index(tk_setPalette) [list source [file join $dir palette.tcl]]
-set auto_index(::tk::RecolorTree) [list source [file join $dir palette.tcl]]
-set auto_index(::tk::Darken) [list source [file join $dir palette.tcl]]
-set auto_index(tk_bisque) [list source [file join $dir palette.tcl]]
-set auto_index(::safe::tkInterpInit) [list source [file join $dir safetk.tcl]]
-set auto_index(::safe::loadTk) [list source [file join $dir safetk.tcl]]
-set auto_index(::safe::TkInit) [list source [file join $dir safetk.tcl]]
-set auto_index(::safe::allowTk) [list source [file join $dir safetk.tcl]]
-set auto_index(::safe::disallowTk) [list source [file join $dir safetk.tcl]]
-set auto_index(::safe::tkDelete) [list source [file join $dir safetk.tcl]]
-set auto_index(::safe::tkTopLevel) [list source [file join $dir safetk.tcl]]
-set auto_index(::tk::ScaleActivate) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScaleButtonDown) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScaleDrag) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScaleEndDrag) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScaleIncrement) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScaleControlPress) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScaleButton2Down) [list source [file join $dir scale.tcl]]
-set auto_index(::tk::ScrollButtonDown) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollButtonUp) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollSelect) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollStartDrag) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollDrag) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollEndDrag) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollByUnits) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollByPages) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollToPos) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollTopBottom) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::ScrollButton2Down) [list source [file join $dir scrlbar.tcl]]
-set auto_index(::tk::spinbox::Invoke) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::ClosestGap) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::ButtonDown) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::ButtonUp) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::MouseSelect) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::Paste) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::Motion) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::AutoScan) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::KeySelect) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::Insert) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::Backspace) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::SeeInsert) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::SetCursor) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::Transpose) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::PreviousWord) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::spinbox::GetSelection) [list source [file join $dir spinbox.tcl]]
-set auto_index(::tk::TearOffMenu) [list source [file join $dir tearoff.tcl]]
-set auto_index(::tk::MenuDup) [list source [file join $dir tearoff.tcl]]
-set auto_index(::tk::TextClosestGap) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextButton1) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextSelectTo) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextKeyExtend) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextPaste) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextAutoScan) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextSetCursor) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextKeySelect) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextResetAnchor) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextInsert) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextUpDownLine) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextPrevPara) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextNextPara) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextScrollPages) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextTranspose) [list source [file join $dir text.tcl]]
-set auto_index(tk_textCopy) [list source [file join $dir text.tcl]]
-set auto_index(tk_textCut) [list source [file join $dir text.tcl]]
-set auto_index(tk_textPaste) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextNextPos) [list source [file join $dir text.tcl]]
-set auto_index(::tk::TextPrevPos) [list source [file join $dir text.tcl]]
-set auto_index(::tk::PlaceWindow) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::SetFocusGrab) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::RestoreFocusGrab) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::ScreenChanged) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::EventMotifBindings) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::CancelRepeat) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::TabToWindow) [list source [file join $dir tk.tcl]]
-set auto_index(::tk::IconList) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Index) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Selection) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Curselection) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_DrawSelection) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Get) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Config) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Create) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_AutoScan) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_DeleteAll) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Add) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Arrange) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Invoke) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_See) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Btn1) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_CtrlBtn1) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_ShiftBtn1) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Motion1) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Double1) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_ReturnKey) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Leave1) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_FocusIn) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_FocusOut) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_UpDown) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_LeftRight) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_KeyPress) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Goto) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::IconList_Reset) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::Config) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::Create) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::SetSelectMode) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::UpdateWhenIdle) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::Update) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::SetPathSilently) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::SetPath) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::SetFilter) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::ResolveFile) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::EntFocusIn) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::EntFocusOut) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::ActivateEnt) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::VerifyFileName) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::InvokeBtn) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::UpDirCmd) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::JoinFile) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::OkCmd) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::CancelCmd) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::ListBrowse) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::ListInvoke) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::dialog::file::Done) [list source [file join $dir tkfbox.tcl]]
-set auto_index(::tk::MotifFDialog) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_Create) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_FileTypes) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_SetFilter) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_Config) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_BuildUI) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_SetListMode) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_MakeSList) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_InterpFilter) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_Update) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_LoadFiles) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_BrowseDList) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_ActivateDList) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_BrowseFList) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_ActivateFList) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_ActivateFEnt) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_ActivateSEnt) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_OkCmd) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_FilterCmd) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::MotifFDialog_CancelCmd) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::ListBoxKeyAccel_Set) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::ListBoxKeyAccel_Unset) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::ListBoxKeyAccel_Key) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::ListBoxKeyAccel_Goto) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::ListBoxKeyAccel_Reset) [list source [file join $dir xmfbox.tcl]]
-set auto_index(tk_getFileType) [list source [file join $dir xmfbox.tcl]]
-set auto_index(::tk::unsupported::ExposePrivateCommand) [list source [file join $dir unsupported.tcl]]
-set auto_index(::tk::unsupported::ExposePrivateVariable) [list source [file join $dir unsupported.tcl]]
+set auto_index(auto_reset) [list source [file join $dir auto.tcl]]
+set auto_index(tcl_findLibrary) [list source [file join $dir auto.tcl]]
+set auto_index(auto_mkindex) [list source [file join $dir auto.tcl]]
+set auto_index(auto_mkindex_old) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::init) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::cleanup) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::mkindex) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::hook) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::slavehook) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::command) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::commandInit) [list source [file join $dir auto.tcl]]
+set auto_index(::auto_mkindex_parser::fullname) [list source [file join $dir auto.tcl]]
+set auto_index(history) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistAdd) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistKeep) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistClear) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistInfo) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistRedo) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistIndex) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistEvent) [list source [file join $dir history.tcl]]
+set auto_index(::tcl::HistChange) [list source [file join $dir history.tcl]]
+set auto_index(tclLdAout) [list source [file join $dir ldAout.tcl]]
+set auto_index(pkg_compareExtension) [list source [file join $dir package.tcl]]
+set auto_index(pkg_mkIndex) [list source [file join $dir package.tcl]]
+set auto_index(tclPkgSetup) [list source [file join $dir package.tcl]]
+set auto_index(tclMacPkgSearch) [list source [file join $dir package.tcl]]
+set auto_index(tclPkgUnknown) [list source [file join $dir package.tcl]]
+set auto_index(::pkg::create) [list source [file join $dir package.tcl]]
+set auto_index(parray) [list source [file join $dir parray.tcl]]
+set auto_index(::safe::InterpStatics) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::InterpNested) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::interpCreate) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::interpInit) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::CheckInterp) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::interpConfigure) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::InterpCreate) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::InterpSetConfig) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::interpFindInAccessPath) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::interpAddToAccessPath) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::InterpInit) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::AddSubDirs) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::interpDelete) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::setLogCmd) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::SyncAccessPath) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::InterpStateName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::IsInterp) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::PathToken) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::PathListName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::VirtualPathListName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::PathNumberName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::StaticsOkName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::NestedOkName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Toplevel) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Set) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Lappend) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Unset) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Exists) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::GetAccessPath) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::StaticsOk) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::NestedOk) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::DeleteHookName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::TranslatePath) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Log) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::CheckFileName) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::AliasSource) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::AliasLoad) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::FileInAccessPath) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::Subset) [list source [file join $dir safe.tcl]]
+set auto_index(::safe::AliasSubset) [list source [file join $dir safe.tcl]]
+set auto_index(tcl_wordBreakAfter) [list source [file join $dir word.tcl]]
+set auto_index(tcl_wordBreakBefore) [list source [file join $dir word.tcl]]
+set auto_index(tcl_endOfWord) [list source [file join $dir word.tcl]]
+set auto_index(tcl_startOfNextWord) [list source [file join $dir word.tcl]]
+set auto_index(tcl_startOfPreviousWord) [list source [file join $dir word.tcl]]
diff --git a/tcl/license.terms b/tcl/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/license.terms
+++ b/tcl/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/mac/README b/tcl/mac/README
index 42db19e1297..edb077e8779 100644
--- a/tcl/mac/README
+++ b/tcl/mac/README
@@ -1,81 +1,69 @@
-Tk 8.4 for Macintosh
-
-Originally by Ray Johnson while at Sun Microsystems Labs
-with major help from Jim Ingham while at Cygnus Solutions
+Tcl 8.4 for Macintosh
RCS: @(#) $Id$
1. Introduction
---------------
-This is the README file for the Macintosh version of the Tk
-extension for the Tcl scripting language. The file consists of
-information specific to the Macintosh version of Tcl and Tk. For more
-general information please read the README file in the main Tk
-directory.
+This is the README file for the Macintosh version of the Tcl
+scripting language. The home page for the Mac/Tcl info is
+ http://www.tcl.tk/software/mac/
-3. Mac specific features
-------------------------
+A summary of what's new in this release is at
+ http://www.tcl.tk/software/tcltk/8.4.html
-There are several features or enhancements in Tk that are unique to
-the Macintosh version of Tk. The list of these features is
-maintained at
+A summary of Macintosh-specific features is at
http://www.tcl.tk/software/mac/features.html
-4. The Distribution
+2. The Distribution
-------------------
-Macintosh Tk is distributed in three different forms. This should
-make it easier to only download what you need. Replace <version>
-with the current version of Tk. The packages are as follows:
+Macintosh Tcl is distributed in three different forms. This should
+make it easier to only download what you need. Substitute <version>
+with the version you wish to use. The packages are as follows:
mactk<version>.sea.hqx
This distribution is a "binary" only release. It contains an
installer program that will install a 68k, PowerPC, or Fat
- version of the "Wish" application. In addition, in installs
- the Tcl & Tk libraries in the Extensions folder inside your
- System Folder. (No "INIT"'s or Control Pannels are installed.)
+ version of the "Tcl Shell" and "Wish" applications. In addition,
+ it installs the Tcl & Tk libraries in the Extensions folder inside
+ your System Folder.
mactcltk-full-<version>.sea.hqx
This release contains the full release of Tcl and Tk for the
- Macintosh plus the More Files package on which Macintosh Tcl and
- Tk rely.
+ Macintosh plus the More Files packages which Macintosh Tcl and Tk
+ rely on.
-mactk-source-<version>.sea.hqx
+mactcl-source-<version>.sea.hqx
- This release contains the complete source to Tk for the Macintosh
- In addition, Metrowerks CodeWarrior libraries and project files
+ This release contains the complete source for Tcl. In
+ addition, Metrowerks CodeWarrior libraries and project files
are included. However, you must already have the More Files
package to compile this code.
-5. Compiling Tk
----------------
+The "html" subdirectory contains reference documentation in
+in the HTML format. You may also find these pages at:
-In order to compile Macintosh Tk you must have the
-following items:
+ http://www.tcl.tk/man/
- CodeWarrior Pro 5 or higher
- Mac Tcl (source)
- (which requires More Files 1.4.9)
- Mac Tk (source)
+3. Compiling Tcl
+----------------
+
+In order to compile Macintosh Tcl you must have the
+following items:
-The project files included with the Mac Tcl source should work
-fine. The only thing you may need to update are the access paths.
-As with Tcl, you need to upgrade to the 2.0.1 version of the C
-compilers or later to build the CFM68K version of Tcl/Tk.
+ CodeWarrior Pro 5+
+ Mac Tcl (sources)
+ More Files 1.4.9
-Special notes:
+The included project files should work fine. However, for
+current release notes please check this page:
-* Check out the file bugs.doc for information about known bugs.
+ http://www.tcl.tk/doc/howto/compile.html#mac
-* We are starting to support the new Appearance Manager that shipped
- with MacOS 8.0. The Tk 8.0.3 release is the first Tk release
- that supported the Appearance Manager well. Tk 8.0.4 extended this support
- to the menu system, though you have to have Appearance 1.0.1 or later
- installed for this to work.
-
+If you have comments or Bug reports, please use the SourceForge
+Bug tracker to report them:
-If you have comments or Bug reports, use our on-line database at
http://tcl.sourceforge.net/
diff --git a/tcl/mac/bugs.doc b/tcl/mac/bugs.doc
index 120489d9fbd..a4936e2e04f 100644
--- a/tcl/mac/bugs.doc
+++ b/tcl/mac/bugs.doc
@@ -1,54 +1,44 @@
-Known bug list for Tk 8.0 for Macintosh
+Known bug list for Tcl 8.0 for Macintosh
-Originally by Ray Johnson
+by Ray Johnson
Sun Microsystems Laboratories
rjohnson@eng.sun.com
-Maintained by:
-Jim Ingham
-Cygnus Solutions, a Red Hat Company
-jingham@cygnus.com
-
RCS: @(#) $Id$
-We are now very close to passing the test suite for Tk. We are very
-interested in finding remaining bugs that still linger. Please let us
-know (and send us test cases) of any bugs you find.
-
-Known bugs:
-
-* Transient windows (set by wm transient) do not go away when the
- master does.
-
-* Tearoff menus should be floating windows & floating windows should
- float. They also shouldn't be resizable.
-
-* The -use and -container windows only work with other Tk windows in
- the same process. Also, if you try really hard (for instance by binding
- on Destroy of an embedded window and destroying the container's toplevel)
- you can get Tk to crash. This should never be necessary, however, since
- the destruction of the embedded window triggers the destruction of the
- container, so you can watch that instead.
- All the focus bugs in Tk8.0 have been fixed, however.
-
-* The send command is only implemented within the same app.
-
-* You cannot color buttons, and the indicators for radiobuttons and
- checkbuttons under Appearance. They will always use the current
- Theme color. But, then, you are not supposed to...
-
-* Drawing is not really correct. This shows up mostly in the canvas
- when line widths are greater than one. Unfortunantly, this will not
- be easy to fix.
-
-* The active menu highlight color in Tearoff menus will not match the system-wide
- menu highlight color under Appearance. It will be black instead. This is not
- easy to fix, since the Appearance API's don't really allow you to get your hands
- on this information...
-
-There are many other bugs. However, will no get listed until they
-are reported at least once. Send those bug reports in!
-
-
-
-Jim
+This was a new feature as of Tcl7.6b1 and as such I'll started with
+a clean slate. I currently know of no reproducable bugs. I often
+get vague reports - but nothing I've been able to confirm. Let
+me know what bugs you find!
+
+The Macintosh version of Tcl passes most all tests in the Tcl
+test suite. Slower Macs may fail some tests in event.test whose
+timing constraints are too tight. If other tests fail please report
+them.
+
+Ray
+
+Known bugs in the current release.
+
+* With the socket code you can't use the "localhost" host name. This
+ is actually a known bug in Apple's MacTcp stack. However, you can
+ use [info hostname] whereever you would have used "localhost" to
+ achive the same effect.
+
+* Most socket bugs have been fixed. We do have a couple of test cases
+ that will hang the Mac, however, and we are still working on them.
+ If you find additional test cases that show crashes please let us
+ know!
+
+* In Tcl 8.2, the new Regexp code seems to be more deeply recursive than
+the older version in Tcl8.0. As a result, I have had to increase the Stack
+size of Tcl to 1Meg. If you are not doing regexps with many subexpressions,
+this is probably more stack than you will need. You can relink with the
+stack set to 512K, and you will be fine for most purposes.
+* This regexp problem is fixed in Tcl8.3. If you are going to do complex
+regexp's, it is probably a good idea to keep the stack size big. But normal
+regexps will not cause crashes.
+
+* The "clock scan -base" command does not work. The epoch is wrong.
+* The file mtime command does not work when setting the time, it is off
+by 4 years.
diff --git a/tcl/mac/license.terms b/tcl/mac/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/mac/license.terms
+++ b/tcl/mac/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/macosx/Makefile b/tcl/macosx/Makefile
index 8bd8befc713..fa2404bfc0b 100644
--- a/tcl/macosx/Makefile
+++ b/tcl/macosx/Makefile
@@ -11,7 +11,7 @@ INSTALL_ROOT =
BUILD_DIR = ../../build
-TARGET = Wish
+TARGET = Tcl
DEVBUILDSTYLE = Development
DEPBUILDSTYLE = Deployment
@@ -35,7 +35,7 @@ install: install-develop install-deploy
embedded: embedded-develop embedded-deploy
-install-embedded: install-embedded-develop install-embedded-deploy cleanup-embedded
+install-embedded: install-embedded-develop install-embedded-deploy
clean: clean-develop clean-deploy
@@ -72,15 +72,3 @@ clean-deploy:
${DEPBUILD} clean
################################################################################
-
-cleanup-embedded:
- @( \
- cd ${INSTALL_ROOT}; \
- rm -f Frameworks; \
- rm -rf @executable_path; \
- rm -rf Library/Frameworks/Tcl.framework; \
- rm -rf Library/Frameworks/Tk.framework; \
- if [ -d Library/Frameworks ]; then rmdir -p Library/Frameworks; fi; \
- )
-
-################################################################################
diff --git a/tcl/tests/README b/tcl/tests/README
index 66a428ec6b6..4c88826f9ee 100644
--- a/tcl/tests/README
+++ b/tcl/tests/README
@@ -1,7 +1,90 @@
-README -- Tk test suite design document.
+README -- Tcl test suite design document.
RCS: @(#) $Id$
-This directory contains a set of validation tests for the Tk commands.
-Please see the tests/README file in the Tcl source distribution for
-information about the test suite.
+Contents:
+---------
+
+ 1. Introduction
+ 2. Incompatibilities with prior Tcl versions
+
+1. Introduction:
+----------------
+
+This directory contains a set of validation tests for the Tcl commands
+and C Library procedures for Tcl. Each of the files whose name ends
+in ".test" is intended to fully exercise the functions in the C source
+file that corresponds to the file prefix. The C functions and/or Tcl
+commands tested by a given file are listed in the first line of the
+file.
+
+You can run the tests in three ways:
+
+ (a) type "make test" in ../unix; this will create the tcltest
+ executable and run all of the tests. At least "make tcltest"
+ must be run to create the tcltest executable for the other
+ options.
+
+ (b) type "tcltest <testFile> ?<option> <value>?
+
+ where the options and values are the configuration options
+ of the tcltest package.
+
+ (c) start up tcltest in this directory, then "source" the test
+ file (for example, type "source parse.test"). To run all
+ of the tests, type "source all.tcl". To use the options in
+ interactive mode, you can set them with the tcltest::configure
+ command. Set constraints with the tcltest::testConstraints
+ command.
+
+Please see the tcltest man page for more information regarding how to
+write and run tests.
+
+Please note that the all.tcl file will source your new test file if
+the filename matches the tests/*.test pattern (as it should). The
+names of test files that contain regression (or glass-box) tests
+should correspond to the Tcl or C code file that they are testing.
+For example, the test file for the C file "tclCmdAH.c" is
+"cmdAH.test". Test files that contain black-box tests may not
+correspond to any Tcl or C code file so they should match the pattern
+"*_bb.test".
+
+Be sure your new test file can be run from any working directory.
+
+Be sure no temporary files are left behind by your test file.
+Use [tcltest::makeFile], [tcltest::removeFile], and [tcltest::cleanupTests]
+properly to be sure of this.
+
+Be sure your tests can run cross-platform in both a build environment
+as well as an installation environment. If your test file contains
+tests that should not be run in one or more of those cases, please use
+the constraints mechanism to skip those tests.
+
+2. Incompatibilities of package tcltest 2.1 with
+ testing machinery of very old versions of Tcl:
+------------------------------------------------
+
+1) Global variables such as VERBOSE, TESTS, and testConfig of the
+ old machinery correspond to the [configure -verbose],
+ [configure -match], and [testConstraint] commands of tcltest 2.1,
+ respectively.
+
+2) VERBOSE values were longer numeric. [configure -verbose] values
+ are lists of keywords.
+
+3) When you run "make test", the working dir for the test suite is now
+ the one from which you called "make test", rather than the "tests"
+ directory. This change allows for both unix and windows test
+ suites to be run simultaneously without interference with each
+ other or with existing files. All tests must now run independently
+ of their working directory.
+
+4) The "all" file is now called "all.tcl"
+
+5) The "defs" and "defs.tcl" files no longer exist.
+
+6) Instead of creating a doAllTests file in the tests directory, to
+ run all nonPortable tests, just use the "-constraints nonPortable"
+ command line flag. If you are running interactively, you can run
+ [tcltest::testConstraint nonPortable 1] (after loading the tcltest
+ package).
diff --git a/tcl/tests/all.tcl b/tcl/tests/all.tcl
index fbf8cde9452..80c7d6886c0 100644
--- a/tcl/tests/all.tcl
+++ b/tcl/tests/all.tcl
@@ -1,19 +1,25 @@
# all.tcl --
#
-# This file contains a top-level script to run all of the Tk
-# tests. Execute it by invoking "source all.tcl" when running tktest
+# This file contains a top-level script to run all of the Tcl
+# tests. Execute it by invoking "source all.test" when running tcltest
# in this directory.
#
# Copyright (c) 1998-1999 by Scriptics Corporation.
+# Copyright (c) 2000 by Ajuba Solutions
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id$
-package require Tcl 8.4
-package require tcltest 2.1
-tcltest::configure -testdir [file join [pwd] [file dirname [info script]]]
-tcltest::configure -singleproc 1
-eval tcltest::configure $argv
+set tcltestVersion [package require tcltest]
+namespace import -force tcltest::*
+
+if {$tcl_platform(platform) == "macintosh"} {
+ tcltest::singleProcess 1
+}
+
+tcltest::testsDirectory [file dir [info script]]
tcltest::runAllTests
+
+return
diff --git a/tcl/tests/event.test b/tcl/tests/event.test
index 84d84c3210b..8d84bb1e03d 100644
--- a/tcl/tests/event.test
+++ b/tcl/tests/event.test
@@ -1,663 +1,594 @@
-# This file is a Tcl script to test the code in tkEvent.c. It is
-# organized in the standard fashion for Tcl tests.
+# This file contains a collection of tests for the procedures in the file
+# tclEvent.c, which includes the "update", and "vwait" Tcl
+# commands. Sourcing this file into Tcl runs the tests and generates
+# output for errors. No output means no errors were found.
#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1995 Sun Microsystems, Inc.
+# Copyright (c) 1995-1997 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id$
-package require tcltest 2.1
-namespace import -force tcltest::configure
-namespace import -force tcltest::testsDirectory
-configure -testdir [file join [pwd] [file dirname [info script]]]
-configure -loadfile [file join [testsDirectory] constraints.tcl]
-tcltest::loadTestedCommands
-
-# XXX This test file is woefully incomplete. Right now it only tests
-# a few of the procedures in tkEvent.c. Please add more tests whenever
-# possible.
-
-# Setup table used to query key events.
-
-proc _init_keypress_lookup { } {
- global keypress_lookup
-
- scan A %c start
- scan Z %c finish
+package require tcltest 2
+namespace import -force ::tcltest::*
+
+testConstraint testfilehandler [llength [info commands testfilehandler]]
+testConstraint testexithandler [llength [info commands testexithandler]]
+testConstraint testfilewait [llength [info commands testfilewait]]
+
+test event-1.1 {Tcl_CreateFileHandler, reading} {testfilehandler} {
+ testfilehandler close
+ testfilehandler create 0 readable off
+ testfilehandler clear 0
+ testfilehandler oneevent
+ set result ""
+ lappend result [testfilehandler counts 0]
+ testfilehandler fillpartial 0
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 0]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 0]
+ testfilehandler close
+ set result
+} {{0 0} {1 0} {2 0}}
+test event-1.2 {Tcl_CreateFileHandler, writing} {testfilehandler nonPortable} {
+ # This test is non-portable because on some systems (e.g.
+ # SunOS 4.1.3) pipes seem to be writable always.
+ testfilehandler close
+ testfilehandler create 0 off writable
+ testfilehandler clear 0
+ testfilehandler oneevent
+ set result ""
+ lappend result [testfilehandler counts 0]
+ testfilehandler fillpartial 0
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 0]
+ testfilehandler fill 0
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 0]
+ testfilehandler close
+ set result
+} {{0 1} {0 2} {0 2}}
+test event-1.3 {Tcl_DeleteFileHandler} {testfilehandler nonPortable} {
+ testfilehandler close
+ testfilehandler create 2 disabled disabled
+ testfilehandler create 1 readable writable
+ testfilehandler create 0 disabled disabled
+ testfilehandler fillpartial 1
+ set result ""
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler create 1 off off
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler close
+ set result
+} {{0 1} {1 1} {1 2} {0 0}}
+
+test event-2.1 {Tcl_DeleteFileHandler} {testfilehandler nonPortable} {
+ testfilehandler close
+ testfilehandler create 2 disabled disabled
+ testfilehandler create 1 readable writable
+ testfilehandler fillpartial 1
+ set result ""
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler create 1 off off
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler close
+ set result
+} {{0 1} {1 1} {1 2} {0 0}}
+test event-2.2 {Tcl_DeleteFileHandler, fd reused & events still pending} \
+ {testfilehandler nonPortable} {
+ testfilehandler close
+ testfilehandler create 0 readable writable
+ testfilehandler fillpartial 0
+ set result ""
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 0]
+ testfilehandler close
+ testfilehandler create 0 readable writable
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 0]
+ testfilehandler close
+ set result
+} {{0 1} {0 0}}
+
+test event-3.1 {FileHandlerCheckProc, TCL_FILE_EVENTS off } {testfilehandler} {
+ testfilehandler close
+ testfilehandler create 1 readable writable
+ testfilehandler fillpartial 1
+ testfilehandler windowevent
+ set result [testfilehandler counts 1]
+ testfilehandler close
+ set result
+} {0 0}
- for {set i $start} {$i <= $finish} {incr i} {
- set l [format %c $i]
- set keypress_lookup($l) $l
+test event-4.1 {FileHandlerEventProc, race between event and disabling} \
+ {testfilehandler nonPortable} {
+ update
+ testfilehandler close
+ testfilehandler create 2 disabled disabled
+ testfilehandler create 1 readable writable
+ testfilehandler fillpartial 1
+ set result ""
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler create 1 disabled disabled
+ testfilehandler oneevent
+ lappend result [testfilehandler counts 1]
+ testfilehandler close
+ set result
+} {{0 1} {1 1} {1 2} {0 0}}
+test event-4.2 {FileHandlerEventProc, TCL_FILE_EVENTS off} \
+ {testfilehandler nonPortable} {
+ update
+ testfilehandler close
+ testfilehandler create 1 readable writable
+ testfilehandler create 2 readable writable
+ testfilehandler fillpartial 1
+ testfilehandler fillpartial 2
+ testfilehandler oneevent
+ set result ""
+ lappend result [testfilehandler counts 1] [testfilehandler counts 2]
+ testfilehandler windowevent
+ lappend result [testfilehandler counts 1] [testfilehandler counts 2]
+ testfilehandler close
+ set result
+} {{0 0} {0 1} {0 0} {0 1}}
+update
+
+test event-5.1 {Tcl_BackgroundError, HandleBgErrors procedures} {
+ catch {rename bgerror {}}
+ proc bgerror msg {
+ global errorInfo errorCode x
+ lappend x [list $msg $errorInfo $errorCode]
}
-
- scan a %c start
- scan z %c finish
-
- for {set i $start} {$i <= $finish} {incr i} {
- set l [format %c $i]
- set keypress_lookup($l) $l
+ after idle {error "a simple error"}
+ after idle {open non_existent}
+ after idle {set errorInfo foobar; set errorCode xyzzy}
+ set x {}
+ update idletasks
+ rename bgerror {}
+ regsub -all [file join {} non_existent] $x "non_existent" x
+ set x
+} {{{a simple error} {a simple error
+ while executing
+"error "a simple error""
+ ("after" script)} NONE} {{couldn't open "non_existent": no such file or directory} {couldn't open "non_existent": no such file or directory
+ while executing
+"open non_existent"
+ ("after" script)} {POSIX ENOENT {no such file or directory}}}}
+test event-5.2 {Tcl_BackgroundError, HandleBgErrors procedures} {
+ catch {rename bgerror {}}
+ proc bgerror msg {
+ global x
+ lappend x $msg
+ return -code break
}
-
- scan 0 %c start
- scan 9 %c finish
-
- for {set i $start} {$i <= $finish} {incr i} {
- set l [format %c $i]
- set keypress_lookup($l) $l
+ after idle {error "a simple error"}
+ after idle {open non_existent}
+ set x {}
+ update idletasks
+ rename bgerror {}
+ set x
+} {{a simple error}}
+
+test event-6.1 {BgErrorDeleteProc procedure} {
+ catch {interp delete foo}
+ interp create foo
+ set erroutfile [makeFile Unmodified err.out]
+ foo eval [list set erroutfile $erroutfile]
+ foo eval {
+ proc bgerror args {
+ global errorInfo erroutfile
+ set f [open $erroutfile r+]
+ seek $f 0 end
+ puts $f "$args $errorInfo"
+ close $f
+ }
+ after 100 {error "first error"}
+ after 100 {error "second error"}
}
-
- array set keypress_lookup [list \
- " " space \
- ! exclam \
- \" quotedbl \
- \# numbersign \
- \$ dollar \
- % percent \
- & ampersand \
- ( parenleft \
- ) parenright \
- * asterisk \
- + plus \
- , comma \
- - minus \
- . period \
- / slash \
- : colon \
- \; semicolon \
- < less \
- = equal \
- > greater \
- ? question \
- @ at \
- \[ bracketleft \
- \\ backslash \
- \] bracketright \
- ^ asciicircum \
- _ underscore \
- \{ braceleft \
- | bar \
- \} braceright \
- ~ asciitilde \
- ' apostrophe \
- "\n" Return]
+ after 100 {interp delete foo}
+ after 200
+ update
+ set f [open $erroutfile r]
+ set result [read $f]
+ close $f
+ removeFile $erroutfile
+ set result
+} {Unmodified
}
-
-# Lookup an event in the keypress table.
-# For example:
-# Q -> Q
-# . -> period
-# / -> slash
-# Delete -> Delete
-# Escape -> Escape
-
-proc _keypress_lookup { char } {
- global keypress_lookup
-
- if {! [info exists keypress_lookup]} {
- _init_keypress_lookup
+test event-7.1 {bgerror / regular} {
+ set errRes {}
+ proc bgerror {err} {
+ global errRes;
+ set errRes $err;
}
-
- if {$char == ""} {
- error "empty char"
+ after 0 {error err1}
+ vwait errRes;
+ set errRes;
+} err1
+
+test event-7.2 {bgerror / accumulation} {
+ set errRes {}
+ proc bgerror {err} {
+ global errRes;
+ lappend errRes $err;
}
-
- if {[info exists keypress_lookup($char)]} {
- return $keypress_lookup($char)
- } else {
- return $char
+ after 0 {error err1}
+ after 0 {error err2}
+ after 0 {error err3}
+ update
+ set errRes;
+} {err1 err2 err3}
+
+test event-7.3 {bgerror / accumulation / break} {
+ set errRes {}
+ proc bgerror {err} {
+ global errRes;
+ lappend errRes $err;
+ return -code break "skip!";
}
-}
-
-
-# Lookup and generate a pair of KeyPress and KeyRelease events
-
-proc _keypress { win key } {
- set keysym [_keypress_lookup $key]
-
- event generate $win <KeyPress-$keysym>
- _pause 50
- event generate $win <KeyRelease-$keysym>
- _pause 50
-}
+ after 0 {error err1}
+ after 0 {error err2}
+ after 0 {error err3}
+ update
+ set errRes;
+} err1
+
+test event-7.4 {tkerror is nothing special anymore to tcl} {
+ set errRes {}
+ # we don't just rename bgerror to empty because it could then
+ # be autoloaded...
+ proc bgerror {err} {
+ global errRes;
+ lappend errRes "bg:$err";
+ }
+ proc tkerror {err} {
+ global errRes;
+ lappend errRes "tk:$err";
+ }
+ after 0 {error err1}
+ update
+ rename tkerror {}
+ set errRes
+} bg:err1
-# Call _keypress for each character in the given string
+testConstraint exec [llength [info commands exec]]
-proc _keypress_string { win string } {
- foreach letter [split $string ""] {
- _keypress $win $letter
+test event-7.5 {correct behaviour when there is no bgerror [Bug 219142]} {exec} {
+ set script {
+ after 1000 error hello
+ after 2000 set a 0
+ vwait a
}
-}
-
-# Delay script execution for a given amount of time
-proc _pause { {msecs 1000} } {
- global _pause
+ list [catch {exec [interpreter] << $script} errMsg] $errMsg
+} {1 {hello
+ while executing
+"error hello"
+ ("after" script)}}
- if {! [info exists _pause(number)]} {
- set _pause(number) 0
- }
- set num [incr _pause(number)]
- set _pause($num) 0
+# someday : add a test checking that
+# when there is no bgerror, an error msg goes to stderr
+# ideally one would use sub interp and transfer a fake stderr
+# to it, unfortunatly the current interp tcl API does not allow
+# that. the other option would be to use fork a test but it
+# then becomes more a file/exec test than a bgerror test.
- after $msecs "set _pause($num) 1"
- vwait _pause($num)
- unset _pause($num)
-}
+# end of bgerror tests
+catch {rename bgerror {}}
-# Helper proc to convert index to x y position
-proc _text_ind_to_x_y { text ind } {
- foreach {x1 y1 width height} [$text bbox $ind] break
- set middle_y [expr {$y1 + ($height / 2)}]
- return [list $x1 $middle_y]
+test event-8.1 {Tcl_CreateExitHandler procedure} {stdio testexithandler} {
+ set child [open |[list [interpreter]] r+]
+ puts $child "testexithandler create 41; testexithandler create 4"
+ puts $child "testexithandler create 6; exit"
+ flush $child
+ set result [read $child]
+ close $child
+ set result
+} {even 6
+even 4
+odd 41
}
-# Return selection only if owned by the given widget
+test event-9.1 {Tcl_DeleteExitHandler procedure} {stdio testexithandler} {
+ set child [open |[list [interpreter]] r+]
+ puts $child "testexithandler create 41; testexithandler create 4"
+ puts $child "testexithandler create 6; testexithandler delete 41"
+ puts $child "testexithandler create 16; exit"
+ flush $child
+ set result [read $child]
+ close $child
+ set result
+} {even 16
+even 6
+even 4
+}
+test event-9.2 {Tcl_DeleteExitHandler procedure} {stdio testexithandler} {
+ set child [open |[list [interpreter]] r+]
+ puts $child "testexithandler create 41; testexithandler create 4"
+ puts $child "testexithandler create 6; testexithandler delete 4"
+ puts $child "testexithandler create 16; exit"
+ flush $child
+ set result [read $child]
+ close $child
+ set result
+ } {even 16
+even 6
+odd 41
+}
+test event-9.3 {Tcl_DeleteExitHandler procedure} {stdio testexithandler} {
+ set child [open |[list [interpreter]] r+]
+ puts $child "testexithandler create 41; testexithandler create 4"
+ puts $child "testexithandler create 6; testexithandler delete 6"
+ puts $child "testexithandler create 16; exit"
+ flush $child
+ set result [read $child]
+ close $child
+ set result
+} {even 16
+even 4
+odd 41
+}
+test event-9.4 {Tcl_DeleteExitHandler procedure} {stdio testexithandler} {
+ set child [open |[list [interpreter]] r+]
+ puts $child "testexithandler create 41; testexithandler delete 41"
+ puts $child "testexithandler create 16; exit"
+ flush $child
+ set result [read $child]
+ close $child
+ set result
+} {even 16
+}
-proc _get_selection { widget } {
- if {[string compare $widget [selection own]] != 0} {
- return ""
- }
- if {[catch {selection get} sel]} {
- return ""
+test event-10.1 {Tcl_Exit procedure} {stdio} {
+ set child [open |[list [interpreter]] r+]
+ puts $child "exit 3"
+ list [catch {close $child} msg] $msg [lindex $errorCode 0] \
+ [lindex $errorCode 2]
+} {1 {child process exited abnormally} CHILDSTATUS 3}
+
+test event-11.1 {Tcl_VwaitCmd procedure} {
+ list [catch {vwait} msg] $msg
+} {1 {wrong # args: should be "vwait name"}}
+test event-11.2 {Tcl_VwaitCmd procedure} {
+ list [catch {vwait a b} msg] $msg
+} {1 {wrong # args: should be "vwait name"}}
+test event-11.3 {Tcl_VwaitCmd procedure} {
+ catch {unset x}
+ set x 1
+ list [catch {vwait x(1)} msg] $msg
+} {1 {can't trace "x(1)": variable isn't array}}
+test event-11.4 {Tcl_VwaitCmd procedure} {} {
+ foreach i [after info] {
+ after cancel $i
}
- return $sel
+ after 10; update; # On Mac make sure update won't take long
+ after 100 {set x x-done}
+ after 200 {set y y-done}
+ after 300 {set z z-done}
+ after idle {set q q-done}
+ set x before
+ set y before
+ set z before
+ set q before
+ list [vwait y] $x $y $z $q
+} {{} x-done y-done before q-done}
+
+foreach i [after info] {
+ after cancel $i
}
-# Begining of the actual tests
-
-test event-1.1 {Tk_HandleEvent procedure, filter events for dead windows} {
- button .b -text Test
- pack .b
- bindtags .b .b
+test event-11.5 {Tcl_VwaitCmd procedure: round robin scheduling, 2 sources} {socket} {
+ set test1file [makeFile "" test1]
+ set f1 [open $test1file w]
+ proc accept {s args} {
+ puts $s foobar
+ close $s
+ }
+ catch {set s1 [socket -server accept 0]}
+ after 1000
+ catch {set s2 [socket 127.0.0.1 [lindex [fconfigure $s1 -sockname] 2]]}
+ close $s1
+ set x 0
+ set y 0
+ set z 0
+ fileevent $s2 readable {incr z}
+ vwait z
+ fileevent $f1 writable {incr x; if {$y == 3} {set z done}}
+ fileevent $s2 readable {incr y; if {$x == 3} {set z done}}
+ vwait z
+ close $f1
+ close $s2
+ removeFile $test1file
+ list $x $y $z
+} {3 3 done}
+test event-11.6 {Tcl_VwaitCmd procedure: round robin scheduling, same source} {
+ set test1file [makeFile "" test1]
+ set test2file [makeFile "" test2]
+ set f1 [open $test1file w]
+ set f2 [open $test2file w]
+ set x 0
+ set y 0
+ set z 0
update
- bind .b <Destroy> {
- lappend x destroy
- event generate .b <1>
- event generate .b <ButtonRelease-1>
+ fileevent $f1 writable {incr x; if {$y == 3} {set z done}}
+ fileevent $f2 writable {incr y; if {$x == 3} {set z done}}
+ vwait z
+ close $f1
+ close $f2
+ removeFile $test1file
+ removeFile $test2file
+ list $x $y $z
+} {3 3 done}
+
+
+test event-12.1 {Tcl_UpdateCmd procedure} {
+ list [catch {update a b} msg] $msg
+} {1 {wrong # args: should be "update ?idletasks?"}}
+test event-12.2 {Tcl_UpdateCmd procedure} {
+ list [catch {update bogus} msg] $msg
+} {1 {bad option "bogus": must be idletasks}}
+test event-12.3 {Tcl_UpdateCmd procedure} {
+ foreach i [after info] {
+ after cancel $i
}
- bind .b <1> {
- lappend x button
+ after 500 {set x after}
+ after idle {set y after}
+ after idle {set z "after, y = $y"}
+ set x before
+ set y before
+ set z before
+ update idletasks
+ list $x $y $z
+} {before after {after, y = after}}
+test event-12.4 {Tcl_UpdateCmd procedure} {
+ foreach i [after info] {
+ after cancel $i
}
- set x {}
- destroy .b
- set x
-} {destroy}
-
-test event-1.2 {event generate <Alt-z>} {
- catch {destroy .e}
- catch {unset ::event12result}
- set ::event12result 0
- pack [entry .e]
- update
- bind .e <Alt-z> {set ::event12result "1"}
- focus -force .e ; event generate .e <Alt-z>
- destroy .e
- set ::event12result
-} 1
-
-
-
-test event-keypress-1.1 { type into entry widget and hit Return } {
- destroy .t
- set t [toplevel .t]
- set e [entry $t.e]
- pack $e
- set return_binding 0
- bind $e <Return> {set return_binding 1}
- tkwait visibility $e
- focus -force $e
- _keypress_string $e HELLO\n
- list [$e get] $return_binding
-} {HELLO 1}
-
-
-test event-keypress-1.2 { type into entry widget and then delete some text } {
- destroy .t
- set t [toplevel .t]
- set e [entry $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e MELLO
- _keypress $e BackSpace
- _keypress $e BackSpace
- $e get
-} MEL
-
-test event-keypress-1.3 { type into entry widget, triple click,
- hit Delete key, and then type some more } {
- destroy .t
- set t [toplevel .t]
- set e [entry $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e JUMP
-
- set result [$e get]
+ after 10; update; # On Mac make sure update won't take long
+ after 200 {set x x-done}
+ after 600 {set y y-done}
+ after idle {set z z-done}
+ set x before
+ set y before
+ set z before
+ after 300
+ update
+ list $x $y $z
+} {x-done before z-done}
- event generate $e <Enter>
- for {set i 0} {$i < 3} {incr i} {
- _pause 100
- event generate $e <ButtonPress-1>
- _pause 100
- event generate $e <ButtonRelease-1>
+test event-13.1 {Tcl_WaitForFile procedure, readable} {testfilehandler} {
+ foreach i [after info] {
+ after cancel $i
}
-
- _keypress $e Delete
- _keypress_string $e UP
- lappend result [$e get]
-} {JUMP UP}
-
-
-test event-keypress-1.4 { type into text widget and hit Return } {
- destroy .t
- set t [toplevel .t]
- set e [text $t.e]
- pack $e
- set return_binding 0
- bind $e <Return> {set return_binding 1}
- tkwait visibility $e
- focus -force $e
- _keypress_string $e HELLO\n
- list [$e get 1.0 end] $return_binding
-} [list "HELLO\n\n" 1]
-
-test event-keypress-1.5 { type into text widget and then delete some text } {
- destroy .t
- set t [toplevel .t]
- set e [text $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e MELLO
- _keypress $e BackSpace
- _keypress $e BackSpace
- $e get 1.0 1.end
-} MEL
-
-test event-keypress-1.6 { type into text widget, triple click,
- hit Delete key, and then type some more } {
- destroy .t
- set t [toplevel .t]
- set e [text $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e JUMP
-
- set result [$e get 1.0 1.end]
-
- event generate $e <Enter>
- for {set i 0} {$i < 3} {incr i} {
- _pause 100
- event generate $e <ButtonPress-1>
- _pause 100
- event generate $e <ButtonRelease-1>
+ after 100 set x timeout
+ testfilehandler close
+ testfilehandler create 1 off off
+ set x "no timeout"
+ set result [testfilehandler wait 1 readable 0]
+ update
+ testfilehandler close
+ list $result $x
+} {{} {no timeout}}
+test event-13.2 {Tcl_WaitForFile procedure, readable} testfilehandler {
+ foreach i [after info] {
+ after cancel $i
}
-
- _keypress $e Delete
- _keypress_string $e UP
- lappend result [$e get 1.0 1.end]
-} {JUMP UP}
-
-
-
-test event-click-drag-1.1 { click and drag in a text widget, this
- tests tkTextSelectTo in text.tcl } {
- destroy .t
- set t [toplevel .t]
- set e [text $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e "A Tcl/Tk selection test!"
- set anchor 1.6
- set selend 1.18
-
- set result [list]
- lappend result [$e get 1.0 1.end]
-
- # Get the x,y coords of the second T in "Tcl/Tk"
- foreach {anchor_x anchor_y} [_text_ind_to_x_y $e $anchor] break
-
- # Click down to set the insert cursor position
- event generate $e <Enter>
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
-
- # Save the position of the insert cursor
- lappend result [$e index insert]
-
- # Now drag until selend is highlighted, then click up
-
- set current $anchor
- while {[$e compare $current <= $selend]} {
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
- event generate $e <B1-Motion> -x $current_x -y $current_y
- set current [$e index [list $current + 1 char]]
- _pause 50
+ after 100 set x timeout
+ testfilehandler close
+ testfilehandler create 1 off off
+ set x "no timeout"
+ set result [testfilehandler wait 1 readable 100]
+ update
+ testfilehandler close
+ list $result $x
+} {{} timeout}
+test event-13.3 {Tcl_WaitForFile procedure, readable} testfilehandler {
+ foreach i [after info] {
+ after cancel $i
}
-
- event generate $e <ButtonRelease-1> -x $current_x -y $current_y
- _pause 200
-
- # Save the position of the insert cursor
- lappend result [$e index insert]
-
- # Save the highlighted text
- lappend result [_get_selection $e]
-
- # Now click and click and drag to the left, over "Tcl/Tk selection"
-
- event generate $e <ButtonPress-1> -x $current_x -y $current_y
-
- while {[$e compare $current >= [list $anchor - 4 char]]} {
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
- event generate $e <B1-Motion> -x $current_x -y $current_y
- set current [$e index [list $current - 1 char]]
- _pause 50
+ after 100 set x timeout
+ testfilehandler close
+ testfilehandler create 1 off off
+ testfilehandler fillpartial 1
+ set x "no timeout"
+ set result [testfilehandler wait 1 readable 100]
+ update
+ testfilehandler close
+ list $result $x
+} {readable {no timeout}}
+test event-13.4 {Tcl_WaitForFile procedure, writable} \
+ {testfilehandler nonPortable} {
+ foreach i [after info] {
+ after cancel $i
}
-
- event generate $e <ButtonRelease-1> -x $current_x -y $current_y
- _pause 200
-
- # Save the position of the insert cursor
- lappend result [$e index insert]
-
- # Save the highlighted text
- lappend result [_get_selection $e]
-
-} {{A Tcl/Tk selection test!} 1.6 1.18 {Tk selection} 1.2 {Tcl/Tk selection}}
-
-
-
-
-test event-click-drag-1.2 { click and drag in an entry widget, this
- tests tkEntryMouseSelect in entry.tcl } {
- destroy .t
- set t [toplevel .t]
- set e [entry $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e "A Tcl/Tk selection!"
- set anchor 6
- set selend 18
-
- set result [list]
- lappend result [$e get]
-
- # Get the x,y coords of the second T in "Tcl/Tk"
- foreach {anchor_x anchor_y} [_text_ind_to_x_y $e $anchor] break
-
- # Click down to set the insert cursor position
- event generate $e <Enter>
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
-
- # Save the position of the insert cursor
- lappend result [$e index insert]
-
- # Now drag until selend is highlighted, then click up
-
- set current $anchor
- while {$current <= $selend} {
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
- event generate $e <B1-Motion> -x $current_x -y $current_y
- incr current
- _pause 50
+ after 100 set x timeout
+ testfilehandler close
+ testfilehandler create 1 off off
+ testfilehandler fill 1
+ set x "no timeout"
+ set result [testfilehandler wait 1 writable 0]
+ update
+ testfilehandler close
+ list $result $x
+} {{} {no timeout}}
+test event-13.5 {Tcl_WaitForFile procedure, writable} \
+ {testfilehandler nonPortable} {
+ foreach i [after info] {
+ after cancel $i
}
-
- event generate $e <ButtonRelease-1> -x $current_x -y $current_y
- _pause 200
-
- # Save the position of the insert cursor
- lappend result [$e index insert]
-
- # Save the highlighted text
- lappend result [_get_selection $e]
-
- # Now click and click and drag to the left, over "Tcl/Tk selection"
-
- event generate $e <ButtonPress-1> -x $current_x -y $current_y
-
- while {$current >= ($anchor - 4)} {
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
- event generate $e <B1-Motion> -x $current_x -y $current_y
- incr current -1
- _pause 50
+ after 100 set x timeout
+ testfilehandler close
+ testfilehandler create 1 off off
+ testfilehandler fill 1
+ set x "no timeout"
+ set result [testfilehandler wait 1 writable 100]
+ update
+ testfilehandler close
+ list $result $x
+} {{} timeout}
+test event-13.6 {Tcl_WaitForFile procedure, writable} testfilehandler {
+ foreach i [after info] {
+ after cancel $i
}
-
- event generate $e <ButtonRelease-1> -x $current_x -y $current_y
- _pause 200
-
- # Save the position of the insert cursor
- lappend result [$e index insert]
-
- # Save the highlighted text
- lappend result [_get_selection $e]
-
-} {{A Tcl/Tk selection!} 6 18 {Tk selection} 2 {Tcl/Tk selection}}
-
-
-
-test event-double-click-drag-1.1 { click down, click up, click down again,
- then drag in a text widget } {
- destroy .t
- set t [toplevel .t]
- set e [text $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e "Word select test"
- set anchor 1.8
-
- # Get the x,y coords of the second e in "select"
- foreach {anchor_x anchor_y} [_text_ind_to_x_y $e $anchor] break
-
- # Click down, release, then click down again
- event generate $e <Enter>
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
- event generate $e <ButtonRelease-1> -x $anchor_x -y $anchor_y
- _pause 50
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
-
- # Save the highlighted text
- set result [list]
- lappend result [_get_selection $e]
-
- # Insert cursor should be at end of "select"
- lappend result [$e index insert]
-
- # Move mouse one character to the left
- set current [$e index [list $anchor - 1 char]]
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- # Insert cursor should be before the l in "select"
- lappend result [$e index insert]
-
- # Selection should still be the word "select"
- lappend result [_get_selection $e]
-
- # Move mouse to the space before the word "select"
- set current [$e index [list $current - 3 char]]
-
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 200
-
- lappend result [$e index insert]
- lappend result [_get_selection $e]
-
- # Move mouse to the r in "Word"
- set current 1.2
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- # Selection should now be "Word select"
- lappend result [_get_selection $e]
-
- # Insert cursor should be before the r in "Word"
- lappend result [$e index insert]
-
- set result
-} {select 1.11 1.7 select 1.4 { select} {Word select} 1.2}
-
-
-
-test event-double-click-drag-1.2 { click down, click up, click down again,
- then drag in an entry widget } {
- destroy .t
- set t [toplevel .t]
- set e [entry $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e "Word select test"
-
- set anchor 8
-
- # Get the x,y coords of the second e in "select"
- foreach {anchor_x anchor_y} [_text_ind_to_x_y $e $anchor] break
-
- # Click down, release, then click down again
- event generate $e <Enter>
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
- event generate $e <ButtonRelease-1> -x $anchor_x -y $anchor_y
- _pause 50
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
-
- set result [list]
- lappend result [_get_selection $e]
-
- # Insert cursor should be at the end of "select"
- lappend result [$e index insert]
-
- # Move mouse one character to the left
- set current [expr {$anchor - 1}]
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- # Insert cursor should be before the l in "select"
- lappend result [$e index insert]
-
- # Selection should still be the word "select"
- lappend result [_get_selection $e]
-
- # Move mouse to the space before the word "select"
- set current [expr {$current - 3}]
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- lappend result [$e index insert]
- lappend result [_get_selection $e]
-
- # Move mouse to the r in "Word"
- set current [expr {$current - 2}]
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- # Selection should now be "Word select"
- lappend result [_get_selection $e]
-
- # Insert cursor should be before the r in "Word"
- lappend result [$e index insert]
-
- set result
-} {select 11 7 select 4 { select} {Word select} 2}
-
-
-test event-triple-click-drag-1.1 { Triple click and drag across lines in
- a text widget, this should extend the selection to the new line } {
- destroy .t
- set t [toplevel .t]
- set e [text $t.e]
- pack $e
- tkwait visibility $e
- focus -force $e
- _keypress_string $e "LINE ONE\nLINE TWO\nLINE THREE"
-
- set anchor 3.2
-
- # Triple click one third line leaving mouse down
-
- foreach {anchor_x anchor_y} [_text_ind_to_x_y $e $anchor] break
-
- event generate $e <Enter>
-
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
- event generate $e <ButtonRelease-1> -x $anchor_x -y $anchor_y
- _pause 50
-
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
- event generate $e <ButtonRelease-1> -x $anchor_x -y $anchor_y
- _pause 50
-
- event generate $e <ButtonPress-1> -x $anchor_x -y $anchor_y
- _pause 50
-
- set result [list]
- lappend result [_get_selection $e]
-
- # Drag up to second line
-
- set current [$e index [list $anchor - 1 line]]
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- lappend result [_get_selection $e]
-
- # Drag up to first line
-
- set current [$e index [list $current - 1 line]]
- foreach {current_x current_y} [_text_ind_to_x_y $e $current] break
-
- event generate $e <B1-Motion> -x $current_x -y $current_y
- _pause 50
-
- lappend result [_get_selection $e]
-
+ after 100 set x timeout
+ testfilehandler close
+ testfilehandler create 1 off off
+ set x "no timeout"
+ set result [testfilehandler wait 1 writable 100]
+ update
+ testfilehandler close
+ list $result $x
+} {writable {no timeout}}
+test event-13.7 {Tcl_WaitForFile procedure, don't call other event handlers} testfilehandler {
+ foreach i [after info] {
+ after cancel $i
+ }
+ after 100 lappend x timeout
+ after idle lappend x idle
+ testfilehandler close
+ testfilehandler create 1 off off
+ set x ""
+ set result [list [testfilehandler wait 1 readable 200] $x]
+ update
+ testfilehandler close
+ lappend result $x
+} {{} {} {timeout idle}}
+
+test event-13.8 {Tcl_WaitForFile procedure, waiting indefinitely} testfilewait {
+ set f [open "|sleep 2" r]
+ set result ""
+ lappend result [testfilewait $f readable 100]
+ lappend result [testfilewait $f readable -1]
+ close $f
set result
-
-} [list "LINE THREE\n" "LINE TWO\nLINE THREE\n" \
- "LINE ONE\nLINE TWO\nLINE THREE\n"]
-
+} {{} readable}
# cleanup
-
-destroy .t
-
-unset -nocomplain keypress_lookup
-rename _init_keypress_lookup {}
-rename _keypress_lookup {}
-rename _keypress {}
-rename _pause {}
-rename _text_ind_to_x_y {}
-rename _get_selection {}
-
+foreach i [after info] {
+ after cancel $i
+}
::tcltest::cleanupTests
return
-
diff --git a/tcl/tests/get.test b/tcl/tests/get.test
index 3adabbba65e..8a87201e60e 100644
--- a/tcl/tests/get.test
+++ b/tcl/tests/get.test
@@ -1,82 +1,98 @@
-# This file is a Tcl script to test out the procedures in the file
-# tkGet.c. It is organized in the standard fashion for Tcl
-# white-box tests.
+# Commands covered: none
#
-# Copyright (c) 1998 Sun Microsystems, Inc.
+# This file contains a collection of tests for the procedures in the
+# file tclGet.c. Sourcing this file into Tcl runs the tests and
+# generates output for errors. No output means no errors were found.
+#
+# Copyright (c) 1995-1996 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id$
-package require tcltest 2.1
-namespace import -force tcltest::configure
-namespace import -force tcltest::testsDirectory
-configure -testdir [file join [pwd] [file dirname [info script]]]
-configure -loadfile [file join [testsDirectory] constraints.tcl]
-tcltest::loadTestedCommands
-
-button .b
-test get-1.1 {Tk_GetAnchorFromObj} {
- .b configure -anchor n
- .b cget -anchor
-} {n}
-test get-1.2 {Tk_GetAnchorFromObj} {
- .b configure -anchor ne
- .b cget -anchor
-} {ne}
-test get-1.3 {Tk_GetAnchorFromObj} {
- .b configure -anchor e
- .b cget -anchor
-} {e}
-test get-1.4 {Tk_GetAnchorFromObj} {
- .b configure -anchor se
- .b cget -anchor
-} {se}
-test get-1.5 {Tk_GetAnchorFromObj} {
- .b configure -anchor s
- .b cget -anchor
-} {s}
-test get-1.6 {Tk_GetAnchorFromObj} {
- .b configure -anchor sw
- .b cget -anchor
-} {sw}
-test get-1.7 {Tk_GetAnchorFromObj} {
- .b configure -anchor w
- .b cget -anchor
-} {w}
-test get-1.8 {Tk_GetAnchorFromObj} {
- .b configure -anchor nw
- .b cget -anchor
-} {nw}
-test get-1.9 {Tk_GetAnchorFromObj} {
- .b configure -anchor n
- .b cget -anchor
-} {n}
-test get-1.10 {Tk_GetAnchorFromObj} {
- .b configure -anchor center
- .b cget -anchor
-} {center}
-test get-1.11 {Tk_GetAnchorFromObj - error} {
- list [catch {.b configure -anchor unknown} msg] $msg
-} {1 {bad anchor "unknown": must be n, ne, e, se, s, sw, w, nw, or center}}
-
-catch {destroy .b}
-button .b
-test get-2.1 {Tk_GetJustifyFromObj} {
- .b configure -justify left
- .b cget -justify
-} {left}
-test get-2.2 {Tk_GetJustifyFromObj} {
- .b configure -justify right
- .b cget -justify
-} {right}
-test get-2.3 {Tk_GetJustifyFromObj} {
- .b configure -justify center
- .b cget -justify
-} {center}
-test get-2.4 {Tk_GetJustifyFromObj - error} {
- list [catch {.b configure -justify stupid} msg] $msg
-} {1 {bad justification "stupid": must be left, right, or center}}
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ package require tcltest
+ namespace import -force ::tcltest::*
+}
+
+test get-1.1 {Tcl_GetInt procedure} {
+ set x 44
+ incr x { 22}
+} {66}
+test get-1.2 {Tcl_GetInt procedure} {
+ set x 44
+ incr x -3
+} {41}
+test get-1.3 {Tcl_GetInt procedure} {
+ set x 44
+ incr x +8
+} {52}
+test get-1.4 {Tcl_GetInt procedure} {
+ set x 44
+ list [catch {incr x foo} msg] $msg
+} {1 {expected integer but got "foo"}}
+test get-1.5 {Tcl_GetInt procedure} {
+ set x 44
+ list [catch {incr x {16 }} msg] $msg
+} {0 60}
+test get-1.6 {Tcl_GetInt procedure} {
+ set x 44
+ list [catch {incr x {16 x}} msg] $msg
+} {1 {expected integer but got "16 x"}}
+
+# The following tests are non-portable because they depend on
+# word size.
+
+if {wide(0x80000000) > wide(0)} {
+ test get-1.7 {Tcl_GetInt procedure} {
+ set x 44
+ list [catch {eval incr x 18446744073709551616} msg] $msg $errorCode
+ } {1 {integer value too large to represent} {ARITH IOVERFLOW {integer value too large to represent}}}
+ test get-1.8 {Tcl_GetInt procedure} {
+ set x 0
+ list [catch {incr x 18446744073709551614} msg] $msg
+ } {0 -2}
+ test get-1.9 {Tcl_GetInt procedure} {
+ set x 0
+ list [catch {incr x +18446744073709551614} msg] $msg
+ } {0 -2}
+ test get-1.10 {Tcl_GetInt procedure} {
+ set x 0
+ list [catch {incr x -18446744073709551614} msg] $msg
+ } {0 2}
+} else {
+ test get-1.11 {Tcl_GetInt procedure} {
+ set x 44
+ list [catch {incr x 4294967296} msg] $msg $errorCode
+ } {1 {integer value too large to represent} {ARITH IOVERFLOW {integer value too large to represent}}}
+ test get-1.12 {Tcl_GetInt procedure} {
+ set x 0
+ list [catch {incr x 4294967294} msg] $msg
+ } {0 -2}
+ test get-1.13 {Tcl_GetInt procedure} {
+ set x 0
+ list [catch {incr x +4294967294} msg] $msg
+ } {0 -2}
+ test get-1.14 {Tcl_GetInt procedure} {
+ set x 0
+ list [catch {incr x -4294967294} msg] $msg
+ } {0 2}
+}
+
+test get-2.1 {Tcl_GetInt procedure} {
+ format %g 1.23
+} {1.23}
+test get-2.2 {Tcl_GetInt procedure} {
+ format %g { 1.23 }
+} {1.23}
+test get-2.3 {Tcl_GetInt procedure} {
+ list [catch {format %g clip} msg] $msg
+} {1 {expected floating-point number but got "clip"}}
+test get-2.4 {Tcl_GetInt procedure} {nonPortable} {
+ list [catch {format %g .000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001} msg] $msg $errorCode
+} {1 {floating-point value too small to represent} {ARITH UNDERFLOW {floating-point value too small to represent}}}
# cleanup
::tcltest::cleanupTests
@@ -93,4 +109,3 @@ return
-
diff --git a/tcl/tests/license.terms b/tcl/tests/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/tests/license.terms
+++ b/tcl/tests/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/tests/main.test b/tcl/tests/main.test
index dc828b2c18c..1c8799967cb 100644
--- a/tcl/tests/main.test
+++ b/tcl/tests/main.test
@@ -1,52 +1,1181 @@
-# This file contains tests for the tkMain.c file.
-#
-# This file contains a collection of tests for one or more of the Tcl
-# built-in commands. Sourcing this file into Tcl runs the tests and
-# generates output for errors. No output means no errors were found.
-#
-# Copyright (c) 1997 by Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
+# This file contains a collection of tests for generic/tclMain.c.
#
# RCS: @(#) $Id$
-package require tcltest 2.1
-namespace import -force tcltest::configure
-namespace import -force tcltest::testsDirectory
-configure -testdir [file join [pwd] [file dirname [info script]]]
-configure -loadfile [file join [testsDirectory] constraints.tcl]
-tcltest::loadTestedCommands
-
-namespace import -force tcltest::interpreter
-namespace import -force tcltest::makeFile
-namespace import -force tcltest::removeFile
-
-test main-1.1 {StdinProc} {unix} {
- set script [makeFile {
- close stdin; exit
- } script]
- if {[catch {exec [interpreter] <$script} msg]} {
- set error 1
- } else {
- set error 0
+if {[catch {package require tcltest 2.0.2}]} {
+ puts stderr "Skipping tests in [info script]. tcltest 2.0.2 required."
+ return
+}
+
+namespace eval ::tcl::test::main {
+
+ namespace import ::tcltest::test
+ namespace import ::tcltest::testConstraint
+ namespace import ::tcltest::interpreter
+ namespace import ::tcltest::cleanupTests
+ namespace import ::tcltest::makeFile
+ namespace import ::tcltest::removeFile
+ namespace import ::tcltest::temporaryDirectory
+ namespace import ::tcltest::workingDirectory
+
+ # Is [exec] defined?
+ testConstraint exec [llength [info commands exec]]
+
+ # Is the Tcltest package loaded?
+ # - that is, the special C-coded testing commands in tclTest.c
+ # - tests use testing commands introduced in Tcltest 8.4
+ testConstraint Tcltest [expr {
+ [llength [package provide Tcltest]]
+ && [package vsatisfies [package provide Tcltest] 8.4]}]
+
+ # Procedure to simulate interactive typing of commands, line by line
+ proc type {chan script} {
+ foreach line [split $script \n] {
+ if {[catch {
+ puts $chan $line
+ flush $chan
+ }]} {
+ return
+ }
+ # Grrr... Behavior depends on this value.
+ after 1000
+ }
}
- removeFile script
- list $error $msg
-} {0 {}}
-# cleanup
-::tcltest::cleanupTests
-return
+ cd [temporaryDirectory]
+ # Tests Tcl_Main-1.*: variable initializations
+
+ test Tcl_Main-1.1 {
+ Tcl_Main: startup script - normal
+ } -constraints {
+ stdio
+ } -setup {
+ makeFile {puts [list $argv0 $argv $tcl_interactive]} script
+ catch {set f [open "|[list [interpreter] script]" r]}
+ } -body {
+ read $f
+ } -cleanup {
+ close $f
+ removeFile script
+ } -result [list script {} 0]\n
+
+ test Tcl_Main-1.2 {
+ Tcl_Main: startup script - can't begin with '-'
+ } -constraints {
+ stdio
+ } -setup {
+ makeFile {puts [list $argv0 $argv $tcl_interactive]} -script
+ catch {set f [open "|[list [interpreter] -script]" w+]}
+ } -body {
+ puts $f {puts [list $argv0 $argv $tcl_interactive]; exit}
+ flush $f
+ read $f
+ } -cleanup {
+ close $f
+ removeFile -script
+ } -result [list [interpreter] -script 0]\n
+
+ test Tcl_Main-1.3 {
+ Tcl_Main: encoding of arguments: done by system encoding
+ Note the shortcoming explained in Tcl Patch 491789
+ } -constraints {
+ stdio
+ } -setup {
+ makeFile {puts [list $argv0 $argv $tcl_interactive]} script
+ catch {set f [open "|[list [interpreter] script \u00c0]" r]}
+ } -body {
+ read $f
+ } -cleanup {
+ close $f
+ removeFile script
+ } -result [list script [list [encoding convertfrom [encoding system] \
+ [encoding convertto [encoding system] \u00c0]]] 0]\n
+
+ test Tcl_Main-1.4 {
+ Tcl_Main: encoding of arguments: done by system encoding
+ Note the shortcoming explained in Tcl Patch 491789
+ } -constraints {
+ stdio
+ } -setup {
+ makeFile {puts [list $argv0 $argv $tcl_interactive]} script
+ catch {set f [open "|[list [interpreter] script \u20ac]" r]}
+ } -body {
+ read $f
+ } -cleanup {
+ close $f
+ removeFile script
+ } -result [list script [list [encoding convertfrom [encoding system] \
+ [encoding convertto [encoding system] \u20ac]]] 0]\n
+
+ test Tcl_Main-1.5 {
+ Tcl_Main: encoding of script name: system encoding loss
+ Note the shortcoming explained in Tcl Patch 491789
+ } -constraints {
+ stdio
+ } -setup {
+ makeFile {puts [list $argv0 $argv $tcl_interactive]} \u00c0
+ catch {set f [open "|[list [interpreter] \u00c0]" r]}
+ } -body {
+ read $f
+ } -cleanup {
+ close $f
+ removeFile \u00c0
+ } -result [list [list [encoding convertfrom [encoding system] \
+ [encoding convertto [encoding system] \u00c0]]] {} 0]\n
+
+ test Tcl_Main-1.6 {
+ Tcl_Main: encoding of script name: system encoding loss
+ Note the shortcoming explained in Tcl Patch 491789
+ } -constraints {
+ stdio
+ } -setup {
+ makeFile {puts [list $argv0 $argv $tcl_interactive]} \u20ac
+ catch {set f [open "|[list [interpreter] \u20ac]" r]}
+ } -body {
+ read $f
+ } -cleanup {
+ close $f
+ removeFile \u20ac
+ } -result [list [list [encoding convertfrom [encoding system] \
+ [encoding convertto [encoding system] \u20ac]]] {} 0]\n
+
+ # Tests Tcl_Main-2.*: application-initialization procedure
+
+ test Tcl_Main-2.1 {
+ Tcl_Main: appInitProc returns error
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ makeFile {puts "In script"} script
+ } -body {
+ exec [interpreter] script -appinitprocerror >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result "application-specific initialization failed: \nIn script\n"
+
+ test Tcl_Main-2.2 {
+ Tcl_Main: appInitProc returns error
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {puts "In script"} -appinitprocerror >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "application-specific initialization failed: \nIn script\n"
+
+ test Tcl_Main-2.3 {
+ Tcl_Main: appInitProc deletes interp
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ makeFile {puts "In script"} script
+ } -body {
+ exec [interpreter] script -appinitprocdeleteinterp >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result "application-specific initialization failed: \n"
+
+ test Tcl_Main-2.4 {
+ Tcl_Main: appInitProc deletes interp
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {puts "In script"} \
+ -appinitprocdeleteinterp >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "application-specific initialization failed: \n"
+
+ test Tcl_Main-2.5 {
+ Tcl_Main: appInitProc closes stderr
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {puts "In script"} \
+ -appinitprocclosestderr >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "In script\n"
+
+ # Tests Tcl_Main-3.*: startup script evaluation
+
+ test Tcl_Main-3.1 {
+ Tcl_Main: startup script does not exist
+ } -constraints {
+ exec
+ } -setup {
+ catch {removeFile no-such-file}
+ } -body {
+ set code [catch {exec [interpreter] no-such-file >& result} result]
+ set f [open result]
+ list $code $result [read $f]
+ } -cleanup {
+ close $f
+ file delete result
+ } -match glob -result [list 1 {child process exited abnormally} \
+ {couldn't read file "no-such-file":*}]
+
+ test Tcl_Main-3.2 {
+ Tcl_Main: startup script raises error
+ } -constraints {
+ exec
+ } -setup {
+ makeFile {error ERROR} script
+ } -body {
+ set code [catch {exec [interpreter] script >& result} result]
+ set f [open result]
+ list $code $result [read $f]
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -match glob -result [list 1 {child process exited abnormally} \
+ "ERROR\n while executing*"]
+
+ test Tcl_Main-3.3 {
+ Tcl_Main: startup script closes stderr
+ } -constraints {
+ exec
+ } -setup {
+ makeFile {close stderr; error ERROR} script
+ } -body {
+ set code [catch {exec [interpreter] script >& result} result]
+ set f [open result]
+ list $code $result [read $f]
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result [list 1 {child process exited abnormally} {}]
+
+ test Tcl_Main-3.4 {
+ Tcl_Main: startup script holds incomplete script
+ } -constraints {
+ exec
+ } -setup {
+ makeFile "if 1 \{" script
+ } -body {
+ set code [catch {exec [interpreter] script >& result} result]
+ set f [open result]
+ list $code $result [read $f]
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -match glob -result [list 1 {child process exited abnormally}\
+ "missing close-brace\n while executing*"]
+
+ test Tcl_Main-3.5 {
+ Tcl_Main: startup script sets main loop
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ makeFile {
+ rename exit _exit
+ proc exit {code} {
+ puts "In exit"
+ _exit $code
+ }
+ after 0 {
+ puts event
+ testexitmainloop
+ }
+ testexithandler create 0
+ testsetmainloop
+ } script
+ } -body {
+ exec [interpreter] script >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result "event\nExit MainLoop\nIn exit\neven 0\n"
+
+ test Tcl_Main-3.6 {
+ Tcl_Main: startup script sets main loop and closes stdin
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ makeFile {
+ close stdin
+ testsetmainloop
+ rename exit _exit
+ proc exit {code} {
+ puts "In exit"
+ _exit $code
+ }
+ after 0 {
+ puts event
+ testexitmainloop
+ }
+ testexithandler create 0
+ } script
+ } -body {
+ exec [interpreter] script >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result "event\nExit MainLoop\nIn exit\neven 0\n"
+
+ test Tcl_Main-3.7 {
+ Tcl_Main: startup script deletes interp
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ makeFile {
+ rename exit _exit
+ proc exit {code} {
+ puts "In exit"
+ _exit $code
+ }
+ testexithandler create 0
+ testinterpdelete {}
+ } script
+ } -body {
+ exec [interpreter] script >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result "even 0\n"
+
+ test Tcl_Main-3.8 {
+ Tcl_Main: startup script deletes interp and sets mainloop
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ makeFile {
+ testsetmainloop
+ rename exit _exit
+ proc exit {code} {
+ puts "In exit"
+ _exit $code
+ }
+ testexitmainloop
+ testexithandler create 0
+ testinterpdelete {}
+ } script
+ } -body {
+ exec [interpreter] script >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result "Exit MainLoop\neven 0\n"
+
+ test Tcl_Main-3.9 {
+ Tcl_Main: startup script can set tcl_interactive without limit
+ } -constraints {
+ exec
+ } -setup {
+ makeFile {set tcl_interactive foo} script
+ } -body {
+ exec [interpreter] script >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile script
+ } -result {}
+
+ # Tests Tcl_Main-4.*: rc file evaluation
+
+ test Tcl_Main-4.1 {
+ Tcl_Main: rcFile evaluation deletes interp
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ set rc [makeFile {testinterpdelete {}} rc]
+ } -body {
+ exec [interpreter] << {puts "In script"} \
+ -appinitprocsetrcfile $rc >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile rc
+ } -result "application-specific initialization failed: \n"
+
+ test Tcl_Main-4.2 {
+ Tcl_Main: rcFile evaluation closes stdin
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ set rc [makeFile {close stdin} rc]
+ } -body {
+ exec [interpreter] << {puts "In script"} \
+ -appinitprocsetrcfile $rc >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile rc
+ } -result "application-specific initialization failed: \n"
+
+ test Tcl_Main-4.3 {
+ Tcl_Main: rcFile evaluation closes stdin and sets main loop
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ set rc [makeFile {
+ close stdin
+ testsetmainloop
+ after 0 testexitmainloop
+ testexithandler create 0
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ } rc]
+ } -body {
+ exec [interpreter] << {puts "In script"} \
+ -appinitprocsetrcfile $rc >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile rc
+ } -result "application-specific initialization failed:\
+ \nExit MainLoop\nIn exit\neven 0\n"
+ test Tcl_Main-4.4 {
+ Tcl_Main: rcFile evaluation sets main loop
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ set rc [makeFile {
+ testsetmainloop
+ after 0 testexitmainloop
+ testexithandler create 0
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ } rc]
+ } -body {
+ exec [interpreter] << {puts "In script"} \
+ -appinitprocsetrcfile $rc >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ removeFile rc
+ } -result "application-specific initialization failed:\
+ \nIn script\nExit MainLoop\nIn exit\neven 0\n"
+ # Tests Tcl_Main-5.*: interactive operations
+ test Tcl_Main-5.1 {
+ Tcl_Main: tcl_interactive must be boolean
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {set tcl_interactive foo} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "can't set \"tcl_interactive\":\
+ variable must have boolean value\n"
+ test Tcl_Main-5.2 {
+ Tcl_Main able to handle non-blocking stdin
+ } -constraints {
+ exec
+ } -setup {
+ catch {set f [open "|[list [interpreter]]" w+]}
+ } -body {
+ type $f {
+ fconfigure stdin -blocking 0
+ puts SUCCESS
+ }
+ list [catch {gets $f} line] $line
+ } -cleanup {
+ close $f
+ } -result [list 0 SUCCESS]
+ test Tcl_Main-5.3 {
+ Tcl_Main handles stdin EOF in mid-command
+ } -constraints {
+ exec
+ } -setup {
+ catch {set f [open "|[list [interpreter]]" w+]}
+ catch {fconfigure $f -blocking 0}
+ } -body {
+ type $f "fconfigure stdin -eofchar \\032
+ if 1 \{\n\032"
+ variable wait
+ fileevent $f readable \
+ [list set [namespace which -variable wait] "child exit"]
+ set id [after 2000 [list set [namespace which -variable wait] timeout]]
+ vwait [namespace which -variable wait]
+ after cancel $id
+ set wait
+ } -cleanup {
+ if {[string equal timeout $wait]
+ && [string equal unix $::tcl_platform(platform)]} {
+ exec kill [pid $f]
+ }
+ close $f
+ } -result {child exit}
+ test Tcl_Main-5.4 {
+ Tcl_Main handles stdin EOF in mid-command
+ } -constraints {
+ exec
+ } -setup {
+ set cmd {makeFile "if 1 \{" script}
+ catch {set f [open "|[list [interpreter]] < [list [eval $cmd]]" r]}
+ catch {fconfigure $f -blocking 0}
+ } -body {
+ variable wait
+ fileevent $f readable \
+ [list set [namespace which -variable wait] "child exit"]
+ set id [after 2000 [list set [namespace which -variable wait] timeout]]
+ vwait [namespace which -variable wait]
+ after cancel $id
+ set wait
+ } -cleanup {
+ if {[string equal timeout $wait]
+ && [string equal unix $::tcl_platform(platform)]} {
+ exec kill [pid $f]
+ }
+ close $f
+ removeFile script
+ } -result {child exit}
+ test Tcl_Main-5.5 {
+ Tcl_Main: error raised in interactive mode
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {error foo} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "foo\n"
+ test Tcl_Main-5.6 {
+ Tcl_Main: interactive mode: errors don't stop command loop
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ error foo
+ puts bar
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "foo\nbar\n"
+ test Tcl_Main-5.7 {
+ Tcl_Main: interactive mode: closed stderr
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ close stderr
+ error foo
+ puts bar
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "bar\n"
+ test Tcl_Main-5.8 {
+ Tcl_Main: interactive mode: close stdin
+ -> main loop & [exit] & exit handlers
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ testsetmainloop
+ testexitmainloop
+ testexithandler create 0
+ close stdin
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\nIn exit\neven 0\n"
+ test Tcl_Main-5.9 {
+ Tcl_Main: interactive mode: delete interp
+ -> main loop & exit handlers, but no [exit]
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ testsetmainloop
+ testexitmainloop
+ testexithandler create 0
+ testinterpdelete {}
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\neven 0\n"
+ test Tcl_Main-5.10 {
+ Tcl_Main: exit main loop in mid-interactive command
+ } -constraints {
+ exec Tcltest
+ } -setup {
+ catch {set f [open "|[list [interpreter]]" w+]}
+ catch {fconfigure $f -blocking 0}
+ } -body {
+ type $f "testsetmainloop
+ after 2000 testexitmainloop
+ puts \{1 2"
+ after 4000
+ type $f "3 4\}"
+ set code1 [catch {gets $f} line1]
+ set code2 [catch {gets $f} line2]
+ set code3 [catch {gets $f} line3]
+ list $code1 $line1 $code2 $line2 $code3 $line3
+ } -cleanup {
+ close $f
+ } -result [list 0 {Exit MainLoop} 0 {1 2} 0 {3 4}]
+ test Tcl_Main-5.11 {
+ Tcl_Main: EOF in interactive main loop
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ testexithandler create 0
+ after 0 testexitmainloop
+ testsetmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\nIn exit\neven 0\n"
+
+ test Tcl_Main-5.12 {
+ Tcl_Main: close stdin in interactive main loop
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ testexithandler create 0
+ after 100 testexitmainloop
+ testsetmainloop
+ close stdin
+ puts "don't reach this"
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\nIn exit\neven 0\n"
+
+ # Tests Tcl_Main-6.*: interactive operations with prompts
+
+ test Tcl_Main-6.1 {
+ Tcl_Main: enable prompts with tcl_interactive
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {set tcl_interactive 1} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% "
+
+ test Tcl_Main-6.2 {
+ Tcl_Main: prompt deletes interp
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ set tcl_prompt1 {testinterpdelete {}}
+ set tcl_interactive 1
+ puts "not reached"
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n"
+
+ test Tcl_Main-6.3 {
+ Tcl_Main: prompt closes stdin
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_prompt1 {close stdin}
+ set tcl_interactive 1
+ puts "not reached"
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n"
+
+ test Tcl_Main-6.4 {
+ Tcl_Main: interactive output, closed stdout
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_interactive 1
+ close stdout
+ set a NO
+ puts stderr YES
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% YES\n"
+
+ test Tcl_Main-6.5 {
+ Tcl_Main: interactive entry to main loop
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ set tcl_interactive 1
+ testsetmainloop
+ testexitmainloop} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% % % Exit MainLoop\n"
+
+ test Tcl_Main-6.6 {
+ Tcl_Main: number of prompts during stdin close exit
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_interactive 1
+ close stdin} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% "
+
+ # Tests Tcl_Main-7.*: exiting
+
+ test Tcl_Main-7.1 {
+ Tcl_Main: [exit] defined as no-op -> still have exithandlers
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ proc exit args {}
+ testexithandler create 0
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "even 0\n"
+
+ test Tcl_Main-7.2 {
+ Tcl_Main: [exit] defined as no-op -> still have exithandlers
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ proc exit args {}
+ testexithandler create 0
+ after 0 testexitmainloop
+ testsetmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\neven 0\n"
+
+ # Tests Tcl_Main-8.*: StdinProc operations
+
+ test Tcl_Main-8.1 {
+ StdinProc: handles non-blocking stdin
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ fconfigure stdin -blocking 0
+ testexitmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\n"
+
+ test Tcl_Main-8.2 {
+ StdinProc: handles stdin EOF
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ testexithandler create 0
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ after 100 testexitmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\nIn exit\neven 0\n"
+
+ test Tcl_Main-8.3 {
+ StdinProc: handles interactive stdin EOF
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ testexithandler create 0
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ set tcl_interactive 1} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% even 0\n"
+
+ test Tcl_Main-8.4 {
+ StdinProc: handles stdin close
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ after 100 testexitmainloop
+ after 0 puts 1
+ close stdin
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\nExit MainLoop\nIn exit\n"
+
+ test Tcl_Main-8.5 {
+ StdinProc: handles interactive stdin close
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ set tcl_interactive 1
+ rename exit _exit
+ proc exit code {
+ puts "In exit"
+ _exit $code
+ }
+ after 100 testexitmainloop
+ after 0 puts 1
+ close stdin
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% % % after#0\n% after#1\n% 1\nExit MainLoop\nIn exit\n"
+
+ test Tcl_Main-8.6 {
+ StdinProc: handles event loop re-entry
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ after 100 {puts 1; set delay 1}
+ vwait delay
+ puts 2
+ testexitmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n2\nExit MainLoop\n"
+
+ test Tcl_Main-8.7 {
+ StdinProc: handling of errors
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ error foo
+ testexitmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "foo\nExit MainLoop\n"
+
+ test Tcl_Main-8.8 {
+ StdinProc: handling of errors, closed stderr
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ close stderr
+ error foo
+ testexitmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "Exit MainLoop\n"
+
+ test Tcl_Main-8.9 {
+ StdinProc: interactive output
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ set tcl_interactive 1
+ testexitmainloop} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% % Exit MainLoop\n"
+
+ test Tcl_Main-8.10 {
+ StdinProc: interactive output, closed stdout
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ close stdout
+ set tcl_interactive 1
+ testexitmainloop
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result {}
+
+ test Tcl_Main-8.11 {
+ StdinProc: prompt deletes interp
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ set tcl_prompt1 {testinterpdelete {}}
+ set tcl_interactive 1} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n"
+
+ test Tcl_Main-8.12 {
+ StdinProc: prompt closes stdin
+ } -constraints {
+ exec Tcltest
+ } -body {
+ exec [interpreter] << {
+ testsetmainloop
+ set tcl_prompt1 {close stdin}
+ after 100 testexitmainloop
+ set tcl_interactive 1
+ puts "not reached"
+ } >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\nExit MainLoop\n"
+
+ # Tests Tcl_Main-9.*: Prompt operations
+
+ test Tcl_Main-9.1 {
+ Prompt: custom prompt variables
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_prompt1 {puts -nonewline stdout "one "}
+ set tcl_prompt2 {puts -nonewline stdout "two "}
+ set tcl_interactive 1
+ puts {This is
+ a test}} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\none two This is\n\t\ta test\none "
+
+ test Tcl_Main-9.2 {
+ Prompt: error in custom prompt variables
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_prompt1 {error foo}
+ set tcl_interactive 1
+ set errorInfo} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\nfoo\n% foo\n while executing\n\"error foo\"\n (script\
+ that generates prompt)\nfoo\n% "
+
+ test Tcl_Main-9.3 {
+ Prompt: error in custom prompt variables, closed stderr
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_prompt1 {close stderr; error foo}
+ set tcl_interactive 1} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\n% "
+
+ test Tcl_Main-9.4 {
+ Prompt: error in custom prompt variables, closed stdout
+ } -constraints {
+ exec
+ } -body {
+ exec [interpreter] << {
+ set tcl_prompt1 {close stdout; error foo}
+ set tcl_interactive 1} >& result
+ set f [open result]
+ read $f
+ } -cleanup {
+ close $f
+ file delete result
+ } -result "1\nfoo\n"
+
+ cd [workingDirectory]
+
+ cleanupTests
+}
+
+namespace delete ::tcl::test::main
+return
diff --git a/tcl/tests/obj.test b/tcl/tests/obj.test
index bf983855cde..2f26ed36acc 100644
--- a/tcl/tests/obj.test
+++ b/tcl/tests/obj.test
@@ -1,49 +1,604 @@
-# This file is a Tcl script to test new object types in Tk.
-# It is organized in the standard fashion for Tcl tests.
+# Functionality covered: this file contains a collection of tests for the
+# procedures in tclObj.c that implement Tcl's basic type support and the
+# type managers for the types boolean, double, and integer.
#
-# Copyright (c) 1997 Sun Microsystems, Inc.
+# Sourcing this file into Tcl runs the tests and generates output for
+# errors. No output means no errors were found.
+#
+# Copyright (c) 1995-1996 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id$
-package require tcltest 2.1
-namespace import -force tcltest::configure
-namespace import -force tcltest::testsDirectory
-configure -testdir [file join [pwd] [file dirname [info script]]]
-configure -loadfile [file join [testsDirectory] constraints.tcl]
-tcltest::loadTestedCommands
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ package require tcltest
+ namespace import -force ::tcltest::*
+}
-test obj-1.1 {TkGetPixelsFromObj} {
-} {}
+if {[info commands testobj] == {}} {
+ puts "This application hasn't been compiled with the \"testobj\""
+ puts "command, so I can't test the Tcl type and object support."
+ ::tcltest::cleanupTests
+ return
+}
-test obj-2.1 {FreePixelInternalRep} {
-} {}
+test obj-1.1 {Tcl_AppendAllObjTypes, and InitTypeTable, Tcl_RegisterObjType} {
+ set r 1
+ foreach {t} {
+ {array search}
+ boolean
+ bytearray
+ bytecode
+ double
+ end-offset
+ index
+ int
+ list
+ nsName
+ procbody
+ string
+ } {
+ set first [string first $t [testobj types]]
+ set r [expr {$r && ($first != -1)}]
+ }
+ set result $r
+} {1}
-test obj-3.1 {DupPixelInternalRep} {
-} {}
+test obj-2.1 {Tcl_GetObjType error} {
+ list [testintobj set 1 0] [catch {testobj convert 1 foo} msg] $msg
+} {0 1 {no type foo found}}
+test obj-2.2 {Tcl_GetObjType and Tcl_ConvertToType} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testintobj set 1 12]
+ lappend result [testobj convert 1 double]
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 12 12 double 3}
-test obj-4.1 {SetPixelFromAny} {
-} {}
+test obj-3.1 {Tcl_ConvertToType error} {
+ list [testdoubleobj set 1 12.34] [catch {testobj convert 1 int} msg] $msg
+} {12.34 1 {expected integer but got "12.34"}}
+test obj-3.2 {Tcl_ConvertToType error, "empty string" object} {
+ list [testobj newobj 1] [catch {testobj convert 1 int} msg] $msg
+} {{} 1 {expected integer but got ""}}
+test obj-4.1 {Tcl_NewObj and AllocateFreeObjects} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testobj newobj 1]
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} {} string 2}
+test obj-5.1 {Tcl_FreeObj} {
+ set result ""
+ lappend result [testintobj set 1 12345]
+ lappend result [testobj freeallvars]
+ lappend result [catch {testintobj get 1} msg]
+ lappend result $msg
+} {12345 {} 1 {variable 1 is unset (NULL)}}
-deleteWindows
+test obj-6.1 {Tcl_DuplicateObj, object has internal rep} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testintobj set 1 47]
+ lappend result [testobj duplicate 1 2]
+ lappend result [testintobj get 2]
+ lappend result [testobj refcount 1]
+ lappend result [testobj refcount 2]
+} {{} 47 47 47 2 3}
+test obj-6.2 {Tcl_DuplicateObj, "empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testobj newobj 1]
+ lappend result [testobj duplicate 1 2]
+ lappend result [testintobj get 2]
+ lappend result [testobj refcount 1]
+ lappend result [testobj refcount 2]
+} {{} {} {} {} 2 3}
-# cleanup
-::tcltest::cleanupTests
-return
+test obj-7.1 {Tcl_GetString, return existing string rep} {
+ set result ""
+ lappend result [testintobj set 1 47]
+ lappend result [testintobj get2 1]
+} {47 47}
+test obj-7.2 {Tcl_GetString, "empty string" object} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [teststringobj append 1 abc -1]
+ lappend result [teststringobj get2 1]
+} {{} abc abc}
+test obj-7.3 {Tcl_GetString, returns string internal rep (DString)} {
+ set result ""
+ lappend result [teststringobj set 1 xyz]
+ lappend result [teststringobj append 1 abc -1]
+ lappend result [teststringobj get2 1]
+} {xyz xyzabc xyzabc}
+test obj-7.4 {Tcl_GetString, recompute string rep from internal rep} {
+ set result ""
+ lappend result [testintobj set 1 77]
+ lappend result [testintobj mult10 1]
+ lappend result [teststringobj get2 1]
+} {77 770 770}
+
+test obj-8.1 {Tcl_GetStringFromObj, return existing string rep} {
+ set result ""
+ lappend result [testintobj set 1 47]
+ lappend result [testintobj get 1]
+} {47 47}
+test obj-8.2 {Tcl_GetStringFromObj, "empty string" object} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [teststringobj append 1 abc -1]
+ lappend result [teststringobj get 1]
+} {{} abc abc}
+test obj-8.3 {Tcl_GetStringFromObj, returns string internal rep (DString)} {
+ set result ""
+ lappend result [teststringobj set 1 xyz]
+ lappend result [teststringobj append 1 abc -1]
+ lappend result [teststringobj get 1]
+} {xyz xyzabc xyzabc}
+test obj-8.4 {Tcl_GetStringFromObj, recompute string rep from internal rep} {
+ set result ""
+ lappend result [testintobj set 1 77]
+ lappend result [testintobj mult10 1]
+ lappend result [teststringobj get 1]
+} {77 770 770}
+
+test obj-9.1 {Tcl_NewBooleanObj} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testbooleanobj set 1 0]
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 0 boolean 2}
+
+test obj-10.1 {Tcl_SetBooleanObj, existing "empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testobj newobj 1]
+ lappend result [testbooleanobj set 1 0] ;# makes existing obj boolean
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} {} 0 boolean 2}
+test obj-10.2 {Tcl_SetBooleanObj, existing non-"empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testintobj set 1 98765]
+ lappend result [testbooleanobj set 1 1] ;# makes existing obj boolean
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 98765 1 boolean 2}
+
+test obj-11.1 {Tcl_GetBooleanFromObj, existing boolean object} {
+ set result ""
+ lappend result [testbooleanobj set 1 1]
+ lappend result [testbooleanobj not 1] ;# gets existing boolean rep
+} {1 0}
+test obj-11.2 {Tcl_GetBooleanFromObj, convert to boolean} {
+ set result ""
+ lappend result [testintobj set 1 47]
+ lappend result [testbooleanobj not 1] ;# must convert to bool
+ lappend result [testobj type 1]
+} {47 0 boolean}
+test obj-11.3 {Tcl_GetBooleanFromObj, error converting to boolean} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testbooleanobj not 1} msg]
+ lappend result $msg
+} {abc 1 {expected boolean value but got "abc"}}
+test obj-11.4 {Tcl_GetBooleanFromObj, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testbooleanobj not 1} msg]
+ lappend result $msg
+} {{} 1 {expected boolean value but got ""}}
+test obj-11.5 {Tcl_GetBooleanFromObj, convert hex to boolean} {
+ set result ""
+ lappend result [teststringobj set 1 0xac]
+ lappend result [testbooleanobj not 1]
+ lappend result [testobj type 1]
+} {0xac 0 boolean}
+test obj-11.6 {Tcl_GetBooleanFromObj, convert float to boolean} {
+ set result ""
+ lappend result [teststringobj set 1 5.42]
+ lappend result [testbooleanobj not 1]
+ lappend result [testobj type 1]
+} {5.42 0 boolean}
+
+test obj-12.1 {DupBooleanInternalRep} {
+ set result ""
+ lappend result [testbooleanobj set 1 1]
+ lappend result [testobj duplicate 1 2] ;# uses DupBooleanInternalRep
+ lappend result [testbooleanobj get 2]
+} {1 1 1}
+
+test obj-13.1 {SetBooleanFromAny, int to boolean special case} {
+ set result ""
+ lappend result [testintobj set 1 1234]
+ lappend result [testbooleanobj not 1] ;# converts with SetBooleanFromAny
+ lappend result [testobj type 1]
+} {1234 0 boolean}
+test obj-13.2 {SetBooleanFromAny, double to boolean special case} {
+ set result ""
+ lappend result [testdoubleobj set 1 3.14159]
+ lappend result [testbooleanobj not 1] ;# converts with SetBooleanFromAny
+ lappend result [testobj type 1]
+} {3.14159 0 boolean}
+test obj-13.3 {SetBooleanFromAny, special case strings representing booleans} {
+ set result ""
+ foreach s {yes no true false on off} {
+ teststringobj set 1 $s
+ lappend result [testbooleanobj not 1]
+ }
+ lappend result [testobj type 1]
+} {0 1 0 1 0 1 boolean}
+test obj-13.4 {SetBooleanFromAny, recompute string rep then parse it} {
+ set result ""
+ lappend result [testintobj set 1 456]
+ lappend result [testintobj div10 1]
+ lappend result [testbooleanobj not 1] ;# converts with SetBooleanFromAny
+ lappend result [testobj type 1]
+} {456 45 0 boolean}
+test obj-13.5 {SetBooleanFromAny, error parsing string} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testbooleanobj not 1} msg]
+ lappend result $msg
+} {abc 1 {expected boolean value but got "abc"}}
+test obj-13.6 {SetBooleanFromAny, error parsing string} {
+ set result ""
+ lappend result [teststringobj set 1 x1.0]
+ lappend result [catch {testbooleanobj not 1} msg]
+ lappend result $msg
+} {x1.0 1 {expected boolean value but got "x1.0"}}
+test obj-13.7 {SetBooleanFromAny, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testbooleanobj not 1} msg]
+ lappend result $msg
+} {{} 1 {expected boolean value but got ""}}
+test obj-13.8 {SetBooleanFromAny, unicode strings} {
+ set result ""
+ lappend result [teststringobj set 1 1\u7777]
+ lappend result [catch {testbooleanobj not 1} msg]
+ lappend result $msg
+} "1\u7777 1 {expected boolean value but got \"1\u7777\"}"
+
+test obj-14.1 {UpdateStringOfBoolean} {
+ set result ""
+ lappend result [testbooleanobj set 1 0]
+ lappend result [testbooleanobj not 1]
+ lappend result [testbooleanobj get 1] ;# must update string rep
+} {0 1 1}
+
+test obj-15.1 {Tcl_NewDoubleObj} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testdoubleobj set 1 3.1459]
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 3.1459 double 2}
+test obj-16.1 {Tcl_SetDoubleObj, existing "empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testobj newobj 1]
+ lappend result [testdoubleobj set 1 0.123] ;# makes existing obj boolean
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} {} 0.123 double 2}
+test obj-16.2 {Tcl_SetDoubleObj, existing non-"empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testintobj set 1 98765]
+ lappend result [testdoubleobj set 1 27.56] ;# makes existing obj double
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 98765 27.56 double 2}
+test obj-17.1 {Tcl_GetDoubleFromObj, existing double object} {
+ set result ""
+ lappend result [testdoubleobj set 1 16.1]
+ lappend result [testdoubleobj mult10 1] ;# gets existing double rep
+} {16.1 161.0}
+test obj-17.2 {Tcl_GetDoubleFromObj, convert to double} {
+ set result ""
+ lappend result [testintobj set 1 477]
+ lappend result [testdoubleobj div10 1] ;# must convert to bool
+ lappend result [testobj type 1]
+} {477 47.7 double}
+test obj-17.3 {Tcl_GetDoubleFromObj, error converting to double} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testdoubleobj mult10 1} msg]
+ lappend result $msg
+} {abc 1 {expected floating-point number but got "abc"}}
+test obj-17.4 {Tcl_GetDoubleFromObj, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testdoubleobj div10 1} msg]
+ lappend result $msg
+} {{} 1 {expected floating-point number but got ""}}
+test obj-18.1 {DupDoubleInternalRep} {
+ set result ""
+ lappend result [testdoubleobj set 1 17.1]
+ lappend result [testobj duplicate 1 2] ;# uses DupDoubleInternalRep
+ lappend result [testdoubleobj get 2]
+} {17.1 17.1 17.1}
+test obj-19.1 {SetDoubleFromAny, int to double special case} {
+ set result ""
+ lappend result [testintobj set 1 1234]
+ lappend result [testdoubleobj mult10 1] ;# converts with SetDoubleFromAny
+ lappend result [testobj type 1]
+} {1234 12340.0 double}
+test obj-19.2 {SetDoubleFromAny, boolean to double special case} {
+ set result ""
+ lappend result [testbooleanobj set 1 1]
+ lappend result [testdoubleobj mult10 1] ;# converts with SetDoubleFromAny
+ lappend result [testobj type 1]
+} {1 10.0 double}
+test obj-19.3 {SetDoubleFromAny, recompute string rep then parse it} {
+ set result ""
+ lappend result [testintobj set 1 456]
+ lappend result [testintobj div10 1]
+ lappend result [testdoubleobj mult10 1] ;# converts with SetDoubleFromAny
+ lappend result [testobj type 1]
+} {456 45 450.0 double}
+test obj-19.4 {SetDoubleFromAny, error parsing string} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testdoubleobj mult10 1} msg]
+ lappend result $msg
+} {abc 1 {expected floating-point number but got "abc"}}
+test obj-19.5 {SetDoubleFromAny, error parsing string} {
+ set result ""
+ lappend result [teststringobj set 1 x1.0]
+ lappend result [catch {testdoubleobj mult10 1} msg]
+ lappend result $msg
+} {x1.0 1 {expected floating-point number but got "x1.0"}}
+test obj-19.6 {SetDoubleFromAny, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testdoubleobj div10 1} msg]
+ lappend result $msg
+} {{} 1 {expected floating-point number but got ""}}
+test obj-20.1 {UpdateStringOfDouble} {
+ set result ""
+ lappend result [testdoubleobj set 1 3.14159]
+ lappend result [testdoubleobj mult10 1]
+ lappend result [testdoubleobj get 1] ;# must update string rep
+} {3.14159 31.4159 31.4159}
+test obj-21.1 {Tcl_NewIntObj} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testintobj set 1 55]
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 55 int 2}
+test obj-22.1 {Tcl_SetIntObj, existing "empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testobj newobj 1]
+ lappend result [testintobj set 1 77] ;# makes existing obj int
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} {} 77 int 2}
+test obj-22.2 {Tcl_SetIntObj, existing non-"empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testdoubleobj set 1 12.34]
+ lappend result [testintobj set 1 77] ;# makes existing obj int
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 12.34 77 int 2}
+test obj-23.1 {Tcl_GetIntFromObj, existing int object} {
+ set result ""
+ lappend result [testintobj set 1 22]
+ lappend result [testintobj mult10 1] ;# gets existing int rep
+} {22 220}
+test obj-23.2 {Tcl_GetIntFromObj, convert to int} {
+ set result ""
+ lappend result [testintobj set 1 477]
+ lappend result [testintobj div10 1] ;# must convert to bool
+ lappend result [testobj type 1]
+} {477 47 int}
+test obj-23.3 {Tcl_GetIntFromObj, error converting to int} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testintobj mult10 1} msg]
+ lappend result $msg
+} {abc 1 {expected integer but got "abc"}}
+test obj-23.4 {Tcl_GetIntFromObj, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testintobj div10 1} msg]
+ lappend result $msg
+} {{} 1 {expected integer but got ""}}
+test obj-23.5 {Tcl_GetIntFromObj, integer too large to represent as non-long error} {nonPortable} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [testintobj inttoobigtest 1]
+} {{} 1}
+test obj-24.1 {DupIntInternalRep} {
+ set result ""
+ lappend result [testintobj set 1 23]
+ lappend result [testobj duplicate 1 2] ;# uses DupIntInternalRep
+ lappend result [testintobj get 2]
+} {23 23 23}
+test obj-25.1 {SetIntFromAny, int to int special case} {
+ set result ""
+ lappend result [testintobj set 1 1234]
+ lappend result [testintobj mult10 1] ;# converts with SetIntFromAny
+ lappend result [testobj type 1]
+} {1234 12340 int}
+test obj-25.2 {SetIntFromAny, boolean to int special case} {
+ set result ""
+ lappend result [testbooleanobj set 1 1]
+ lappend result [testintobj mult10 1] ;# converts with SetIntFromAny
+ lappend result [testobj type 1]
+} {1 10 int}
+test obj-25.3 {SetIntFromAny, recompute string rep then parse it} {
+ set result ""
+ lappend result [testintobj set 1 456]
+ lappend result [testintobj div10 1]
+ lappend result [testintobj mult10 1] ;# converts with SetIntFromAny
+ lappend result [testobj type 1]
+} {456 45 450 int}
+test obj-25.4 {SetIntFromAny, error parsing string} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testintobj mult10 1} msg]
+ lappend result $msg
+} {abc 1 {expected integer but got "abc"}}
+test obj-25.5 {SetIntFromAny, error parsing string} {
+ set result ""
+ lappend result [teststringobj set 1 x17]
+ lappend result [catch {testintobj mult10 1} msg]
+ lappend result $msg
+} {x17 1 {expected integer but got "x17"}}
+test obj-25.6 {SetIntFromAny, integer too large} {nonPortable} {
+ set result ""
+ lappend result [teststringobj set 1 123456789012345678901]
+ lappend result [catch {testintobj mult10 1} msg]
+ lappend result $msg
+} {123456789012345678901 1 {integer value too large to represent}}
+test obj-25.7 {SetIntFromAny, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testintobj div10 1} msg]
+ lappend result $msg
+} {{} 1 {expected integer but got ""}}
+test obj-26.1 {UpdateStringOfInt} {
+ set result ""
+ lappend result [testintobj set 1 512]
+ lappend result [testintobj mult10 1]
+ lappend result [testintobj get 1] ;# must update string rep
+} {512 5120 5120}
+test obj-27.1 {Tcl_NewLongObj} {
+ set result ""
+ lappend result [testobj freeallvars]
+ testintobj setmaxlong 1
+ lappend result [testintobj ismaxlong 1]
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 1 int 1}
+test obj-28.1 {Tcl_SetLongObj, existing "empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testobj newobj 1]
+ lappend result [testintobj setlong 1 77] ;# makes existing obj long int
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} {} 77 int 2}
+test obj-28.2 {Tcl_SetLongObj, existing non-"empty string" object} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testdoubleobj set 1 12.34]
+ lappend result [testintobj setlong 1 77] ;# makes existing obj long int
+ lappend result [testobj type 1]
+ lappend result [testobj refcount 1]
+} {{} 12.34 77 int 2}
+test obj-29.1 {Tcl_GetLongFromObj, existing long integer object} {
+ set result ""
+ lappend result [testintobj setlong 1 22]
+ lappend result [testintobj mult10 1] ;# gets existing long int rep
+} {22 220}
+test obj-29.2 {Tcl_GetLongFromObj, convert to long} {
+ set result ""
+ lappend result [testintobj setlong 1 477]
+ lappend result [testintobj div10 1] ;# must convert to bool
+ lappend result [testobj type 1]
+} {477 47 int}
+test obj-29.3 {Tcl_GetLongFromObj, error converting to long integer} {
+ set result ""
+ lappend result [teststringobj set 1 abc]
+ lappend result [catch {testintobj ismaxlong 1} msg] ;# cvts to long int
+ lappend result $msg
+} {abc 1 {expected integer but got "abc"}}
+test obj-29.4 {Tcl_GetLongFromObj, error converting from "empty string"} {
+ set result ""
+ lappend result [testobj newobj 1]
+ lappend result [catch {testintobj ismaxlong 1} msg] ;# cvts to long int
+ lappend result $msg
+} {{} 1 {expected integer but got ""}}
+
+test obj-30.1 {Ref counting and object deletion, simple types} {
+ set result ""
+ lappend result [testobj freeallvars]
+ lappend result [testintobj set 1 1024]
+ lappend result [testobj assign 1 2] ;# vars 1 and 2 share the int obj
+ lappend result [testobj type 2]
+ lappend result [testobj refcount 1]
+ lappend result [testobj refcount 2]
+ lappend result [testbooleanobj set 2 0] ;# must copy on write, now 2 objs
+ lappend result [testobj type 2]
+ lappend result [testobj refcount 1]
+ lappend result [testobj refcount 2]
+} {{} 1024 1024 int 4 4 0 boolean 3 2}
+
+
+test obj-31.1 {regenerate string rep of "end"} {
+ testobj freeallvars
+ teststringobj set 1 end
+ testobj convert 1 end-offset
+ testobj invalidateStringRep 1
+} end
+
+test obj-31.2 {regenerate string rep of "end-1"} {
+ testobj freeallvars
+ teststringobj set 1 end-0x1
+ testobj convert 1 end-offset
+ testobj invalidateStringRep 1
+} end-1
+
+test obj-31.3 {regenerate string rep of "end--1"} {
+ testobj freeallvars
+ teststringobj set 1 end--0x1
+ testobj convert 1 end-offset
+ testobj invalidateStringRep 1
+} end--1
+
+test obj-31.4 {regenerate string rep of "end-bigInteger"} {
+ testobj freeallvars
+ teststringobj set 1 end-0x7fffffff
+ testobj convert 1 end-offset
+ testobj invalidateStringRep 1
+} end-2147483647
+
+test obj-31.5 {regenerate string rep of "end--bigInteger"} {
+ testobj freeallvars
+ teststringobj set 1 end--0x7fffffff
+ testobj convert 1 end-offset
+ testobj invalidateStringRep 1
+} end--2147483647
+
+
+test obj-31.6 {regenerate string rep of "end--bigInteger"} {nonPortable} {
+ testobj freeallvars
+ teststringobj set 1 end--0x80000000
+ testobj convert 1 end-offset
+ testobj invalidateStringRep 1
+} end--2147483648
+
+testobj freeallvars
+
+# cleanup
+::tcltest::cleanupTests
+return
diff --git a/tcl/tests/safe.test b/tcl/tests/safe.test
index 6296530cc16..63b68f973e0 100644
--- a/tcl/tests/safe.test
+++ b/tcl/tests/safe.test
@@ -1,219 +1,524 @@
-# This file is a Tcl script to test the Safe Tk facility. It is organized
-# in the standard fashion for Tk tests.
+# safe.test --
#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994-1995 Sun Microsystems, Inc.
+# This file contains a collection of tests for safe Tcl, packages loading,
+# and using safe interpreters. Sourcing this file into tcl runs the tests
+# and generates output for errors. No output means no errors were found.
+#
+# Copyright (c) 1995-1996 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id$
-package require tcltest 2.1
-namespace import -force tcltest::configure
-namespace import -force tcltest::testsDirectory
-configure -testdir [file join [pwd] [file dirname [info script]]]
-configure -loadfile [file join [testsDirectory] constraints.tcl]
-tcltest::loadTestedCommands
-
-## NOTE: Any time tests fail here with an error like:
-
-# Can't find a usable tk.tcl in the following directories:
-# {$p(:26:)}
-#
-# $p(:26:)/tk.tcl: script error
-# script error
-# invoked from within
-# "source {$p(:26:)/tk.tcl}"
-# ("uplevel" body line 1)
-# invoked from within
-# "uplevel #0 [list source $file]"
-#
-#
-# This probably means that tk wasn't installed properly.
-
-## it indicates that something went wrong sourcing tk.tcl.
-## Ensure that any changes that occured to tk.tcl will work or
-## are properly prevented in a safe interpreter. -- hobbs
-
-# The set of hidden commands is platform dependent:
-
-if {"$tcl_platform(platform)" == "macintosh"} {
- set hidden_cmds {beep bell cd clipboard echo encoding exit fconfigure file glob grab load ls menu open pwd selection send socket source tk_chooseColor tk_chooseDirectory tk_getOpenFile tk_getSaveFile toplevel wm}
-} elseif {"$tcl_platform(platform)" == "windows"} {
- set hidden_cmds {bell cd clipboard encoding exec exit fconfigure file glob grab load menu open pwd selection socket source tk_chooseColor tk_chooseDirectory tk_getOpenFile tk_getSaveFile tk_messageBox toplevel wm}
-} else {
- set hidden_cmds {bell cd clipboard encoding exec exit fconfigure file glob grab load menu open pwd selection send socket source toplevel wm}
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ package require tcltest
+ namespace import -force ::tcltest::*
+}
+
+foreach i [interp slaves] {
+ interp delete $i
}
-test safe-1.1 {Safe Tk loading into an interpreter} {
+# Force actual loading of the safe package
+# because we use un exported (and thus un-autoindexed) APIs
+# in this test result arguments:
+catch {safe::interpConfigure}
+
+proc equiv {x} {return $x}
+
+test safe-1.1 {safe::interpConfigure syntax} {
+ list [catch {safe::interpConfigure} msg] $msg;
+} {1 {no value given for parameter "slave" (use -help for full usage) :
+ slave name () name of the slave}}
+
+test safe-1.2 {safe::interpCreate syntax} {
+ list [catch {safe::interpCreate -help} msg] $msg;
+} {1 {Usage information:
+ Var/FlagName Type Value Help
+ ------------ ---- ----- ----
+ ( -help gives this help )
+ ?slave? name () name of the slave (optional)
+ -accessPath list () access path for the slave
+ -noStatics boolflag (false) prevent loading of statically linked pkgs
+ -statics boolean (true) loading of statically linked pkgs
+ -nestedLoadOk boolflag (false) allow nested loading
+ -nested boolean (false) nested loading
+ -deleteHook script () delete hook}}
+
+test safe-1.3 {safe::interpInit syntax} {
+ list [catch {safe::interpInit -noStatics} msg] $msg;
+} {1 {bad value "-noStatics" for parameter
+ slave name () name of the slave}}
+
+
+test safe-2.1 {creating interpreters, should have no aliases} {
+ interp aliases
+} ""
+test safe-2.2 {creating interpreters, should have no aliases} {
catch {safe::interpDelete a}
- safe::loadTk [safe::interpCreate a]
+ interp create a
+ set l [a aliases]
safe::interpDelete a
- set x {}
- set x
+ set l
} ""
-test safe-1.2 {Safe Tk loading into an interpreter} {
+test safe-2.3 {creating safe interpreters, should have no aliases} {
catch {safe::interpDelete a}
- safe::interpCreate a
- safe::loadTk a
- set l [lsort [interp hidden a]]
- safe::interpDelete a
+ interp create a -safe
+ set l [a aliases]
+ interp delete a
set l
-} $hidden_cmds
-test safe-1.3 {Safe Tk loading into an interpreter} {
+} ""
+
+test safe-3.1 {calling safe::interpInit is safe} {
+ catch {safe::interpDelete a}
+ interp create a -safe
+ safe::interpInit a
+ catch {interp eval a exec ls} msg
+ safe::interpDelete a
+ set msg
+} {invalid command name "exec"}
+test safe-3.2 {calling safe::interpCreate on trusted interp} {
catch {safe::interpDelete a}
safe::interpCreate a
- safe::loadTk a
- set l [lsort [interp aliases a]]
+ set l [lsort [a aliases]]
safe::interpDelete a
set l
} {encoding exit file load source}
-
-test safe-2.1 {Unsafe commands not available} {
+test safe-3.3 {calling safe::interpCreate on trusted interp} {
catch {safe::interpDelete a}
safe::interpCreate a
- safe::loadTk a
- set status broken
- if {[catch {interp eval a {toplevel .t}} msg]} {
- set status ok
- }
+ set x [interp eval a {source [file join $tcl_library init.tcl]}]
safe::interpDelete a
- set status
-} ok
-test safe-2.2 {Unsafe commands not available} {
+ set x
+} ""
+test safe-3.4 {calling safe::interpCreate on trusted interp} {
catch {safe::interpDelete a}
safe::interpCreate a
- safe::loadTk a
- set status broken
- if {[catch {interp eval a {menu .m}} msg]} {
- set status ok
- }
+ catch {set x \
+ [interp eval a {source [file join $tcl_library init.tcl]}]} msg
safe::interpDelete a
- set status
-} ok
-test safe-2.3 {Unsafe subcommands not available} {
+ list $x $msg
+} {{} {}}
+
+test safe-4.1 {safe::interpDelete} {
catch {safe::interpDelete a}
- safe::interpCreate a
- safe::loadTk a
- set status broken
- if {[catch {interp eval a {tk appname}} msg]} {
- set status ok
- }
+ interp create a
safe::interpDelete a
- list $status $msg
-} {ok {appname not accessible in a safe interpreter}}
-test safe-2.4 {Unsafe subcommands not available} {
+} ""
+test safe-4.2 {safe::interpDelete, indirectly} {
+ catch {safe::interpDelete a}
+ interp create a
+ a alias exit safe::interpDelete a
+ a eval exit
+} ""
+test safe-4.3 {safe::interpDelete, state array (not a public api)} {
+ catch {safe::interpDelete a}
+ namespace eval safe {set [InterpStateName a](foo) 33}
+ # not an error anymore to call it if interp is already
+ # deleted, to make trhings smooth if it's called twice...
+ catch {safe::interpDelete a} m1
+ catch {namespace eval safe {set [InterpStateName a](foo)}} m2
+ list $m1 $m2
+} "{}\
+ {can't read \"[safe::InterpStateName a](foo)\": no such variable}"
+
+
+test safe-4.4 {safe::interpDelete, state array, indirectly (not a public api)} {
catch {safe::interpDelete a}
safe::interpCreate a
- safe::loadTk a
- set status broken
- if {[catch {interp eval a {tk scaling}} msg]} {
- set status ok
- }
- safe::interpDelete a
- list $status $msg
-} {ok {scaling not accessible in a safe interpreter}}
+ namespace eval safe {set [InterpStateName a](foo) 33}
+ a eval exit
+ catch {namespace eval safe {set [InterpStateName a](foo)}} msg
+} 1
-test safe-3.1 {Unsafe commands are available hidden} {
+test safe-4.5 {safe::interpDelete} {
catch {safe::interpDelete a}
safe::interpCreate a
- safe::loadTk a
- set status ok
- if {[catch {interp invokehidden a toplevel .t} msg]} {
- set status broken
- }
- safe::interpDelete a
- set status
-} ok
-test safe-3.2 {Unsafe commands are available hidden} {
+ catch {safe::interpCreate a} msg
+ set msg
+} {interpreter named "a" already exists, cannot create}
+test safe-4.6 {safe::interpDelete, indirectly} {
catch {safe::interpDelete a}
safe::interpCreate a
- safe::loadTk a
- set status ok
- if {[catch {interp invokehidden a menu .m} msg]} {
- set status broken
- }
+ a eval exit
+} ""
+
+# The following test checks whether the definition of tcl_endOfWord can be
+# obtained from auto_loading.
+
+test safe-5.1 {test auto-loading in safe interpreters} {
+ catch {safe::interpDelete a}
+ safe::interpCreate a
+ set r [catch {interp eval a {tcl_endOfWord "" 0}} msg]
safe::interpDelete a
- set status
-} ok
-
-test safe-4.1 {testing loadTk} {
- # no error shall occur, the user will
- # eventually see a new toplevel
- set i [safe::loadTk [safe::interpCreate]]
- interp eval $i {button .b -text "hello world!"; pack .b}
- # lets don't update because it might imply that the user has
- # to position the window (if the wm does not do it automatically)
- # and thus make the test suite not runable non interactively
- safe::interpDelete $i
+ list $r $msg
+} {0 -1}
+
+# test safe interps 'information leak'
+proc SI {} {
+ global I
+ set I [interp create -safe];
+}
+proc DI {} {
+ global I;
+ interp delete $I;
+}
+test safe-6.1 {test safe interpreters knowledge of the world} {
+ SI; set r [lsort [$I eval {info globals}]]; DI; set r
+} {tcl_interactive tcl_patchLevel tcl_platform tcl_version}
+test safe-6.2 {test safe interpreters knowledge of the world} {
+ SI; set r [$I eval {info script}]; DI; set r
} {}
+test safe-6.3 {test safe interpreters knowledge of the world} {
+ SI
+ set r [lsort [$I eval {array names tcl_platform}]]
+ DI
+ # If running a windows-debug shell, remove the "debug" element from r.
+ if {$tcl_platform(platform) == "windows" && \
+ [lsearch $r "debug"] != -1} {
+ set r [lreplace $r 1 1]
+ }
+ set threaded [lsearch $r "threaded"]
+ if {$threaded != -1} {
+ set r [lreplace $r $threaded $threaded]
+ }
+ set r
+} {byteOrder platform wordSize}
-test safe-4.2 {testing loadTk -use} {
- set w .safeTkFrame
- catch {destroy $w}
- frame $w -container 1;
- pack .safeTkFrame
- set i [safe::loadTk [safe::interpCreate] -use [winfo id $w]]
- interp eval $i {button .b -text "hello world!"; pack .b}
+# more test should be added to check that hostname, nameofexecutable,
+# aren't leaking infos, but they still do...
+
+# high level general test
+test safe-7.1 {tests that everything works at high level} {
+ set i [safe::interpCreate];
+ # no error shall occur:
+ # (because the default access_path shall include 1st level sub dirs
+ # so package require in a slave works like in the master)
+ set v [interp eval $i {package require http 1}]
+ # no error shall occur:
+ interp eval $i {http_config};
safe::interpDelete $i
- destroy $w
+ set v
+} 1.0
+
+test safe-7.2 {tests specific path and interpFind/AddToAccessPath} {
+ set i [safe::interpCreate -nostat -nested 1 -accessPath [list [info library]]];
+ # should not add anything (p0)
+ set token1 [safe::interpAddToAccessPath $i [info library]]
+ # should add as p1
+ set token2 [safe::interpAddToAccessPath $i "/dummy/unixlike/test/path"];
+ # an error shall occur (http is not anymore in the secure 0-level
+ # provided deep path)
+ list $token1 $token2 \
+ [catch {interp eval $i {package require http 1}} msg] $msg \
+ [safe::interpConfigure $i]\
+ [safe::interpDelete $i]
+} "{\$p(:0:)} {\$p(:1:)} 1 {can't find package http 1} {-accessPath {[list $tcl_library /dummy/unixlike/test/path]} -statics 0 -nested 1 -deleteHook {}} {}"
+
+
+# test source control on file name
+test safe-8.1 {safe source control on file} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ list [catch {$i eval {source}} msg] \
+ $msg \
+ [safe::interpDelete $i] ;
+} {1 {wrong # args: should be "source fileName"} {}}
+
+# test source control on file name
+test safe-8.2 {safe source control on file} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ list [catch {$i eval {source}} msg] \
+ $msg \
+ [safe::interpDelete $i] ;
+} {1 {wrong # args: should be "source fileName"} {}}
+
+test safe-8.3 {safe source control on file} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ set log {};
+ proc safe-test-log {str} {global log; lappend log $str}
+ set prevlog [safe::setLogCmd];
+ safe::setLogCmd safe-test-log;
+ list [catch {$i eval {source .}} msg] \
+ $msg \
+ $log \
+ [safe::setLogCmd $prevlog; unset log] \
+ [safe::interpDelete $i] ;
+} {1 {permission denied} {{ERROR for slave a : ".": is a directory}} {} {}}
+
+
+test safe-8.4 {safe source control on file} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ set log {};
+ proc safe-test-log {str} {global log; lappend log $str}
+ set prevlog [safe::setLogCmd];
+ safe::setLogCmd safe-test-log;
+ list [catch {$i eval {source /abc/def}} msg] \
+ $msg \
+ $log \
+ [safe::setLogCmd $prevlog; unset log] \
+ [safe::interpDelete $i] ;
+} {1 {permission denied} {{ERROR for slave a : "/abc/def": not in access_path}} {} {}}
+
+
+test safe-8.5 {safe source control on file} {
+ # This tested filename == *.tcl or tclIndex, but that restriction
+ # was removed in 8.4a4 - hobbs
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ set log {};
+ proc safe-test-log {str} {global log; lappend log $str}
+ set prevlog [safe::setLogCmd];
+ safe::setLogCmd safe-test-log;
+ list [catch {$i eval {source [file join [info lib] blah]}} msg] \
+ $msg \
+ $log \
+ [safe::setLogCmd $prevlog; unset log] \
+ [safe::interpDelete $i] ;
+} [list 1 {no such file or directory} [list "ERROR for slave a : [file join [info library] blah]:no such file or directory"] {} {}]
+
+
+test safe-8.6 {safe source control on file} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ set log {};
+ proc safe-test-log {str} {global log; lappend log $str}
+ set prevlog [safe::setLogCmd];
+ safe::setLogCmd safe-test-log;
+ list [catch {$i eval {source [file join [info lib] blah.tcl]}} msg] \
+ $msg \
+ $log \
+ [safe::setLogCmd $prevlog; unset log] \
+ [safe::interpDelete $i] ;
+} [list 1 {no such file or directory} [list "ERROR for slave a : [file join [info library] blah.tcl]:no such file or directory"] {} {}]
+
+
+test safe-8.7 {safe source control on file} {
+ # This tested length of filename, but that restriction
+ # was removed in 8.4a4 - hobbs
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ set log {};
+ proc safe-test-log {str} {global log; lappend log $str}
+ set prevlog [safe::setLogCmd];
+ safe::setLogCmd safe-test-log;
+ list [catch {$i eval {source [file join [info lib] xxxxxxxxxxx.tcl]}}\
+ msg] \
+ $msg \
+ $log \
+ [safe::setLogCmd $prevlog; unset log] \
+ [safe::interpDelete $i] ;
+} [list 1 {no such file or directory} [list "ERROR for slave a : [file join [info library] xxxxxxxxxxx.tcl]:no such file or directory"] {} {}]
+
+test safe-8.8 {safe source forbids -rsrc} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ safe::interpCreate $i;
+ list [catch {$i eval {source -rsrc Init}} msg] \
+ $msg \
+ [safe::interpDelete $i] ;
+} {1 {wrong # args: should be "source fileName"} {}}
+
+
+test safe-9.1 {safe interps' deleteHook} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ set res {}
+ proc testDelHook {args} {
+ global res;
+ # the interp still exists at that point
+ interp eval a {set delete 1}
+ # mark that we've been here (successfully)
+ set res $args;
+ }
+ safe::interpCreate $i -deleteHook "testDelHook arg1 arg2";
+ list [interp eval $i exit] $res
+} {{} {arg1 arg2 a}}
+
+test safe-9.2 {safe interps' error in deleteHook} {
+ set i "a";
+ catch {safe::interpDelete $i}
+ set res {}
+ proc testDelHook {args} {
+ global res;
+ # the interp still exists at that point
+ interp eval a {set delete 1}
+ # mark that we've been here (successfully)
+ set res $args;
+ # create an exception
+ error "being catched";
+ }
+ set log {};
+ proc safe-test-log {str} {global log; lappend log $str}
+ safe::interpCreate $i -deleteHook "testDelHook arg1 arg2";
+ set prevlog [safe::setLogCmd];
+ safe::setLogCmd safe-test-log;
+ list [safe::interpDelete $i] $res \
+ $log \
+ [safe::setLogCmd $prevlog; unset log];
+} {{} {arg1 arg2 a} {{NOTICE for slave a : About to delete} {ERROR for slave a : Delete hook error (being catched)} {NOTICE for slave a : Deleted}} {}}
+
+
+test safe-9.3 {dual specification of statics} {
+ list [catch {safe::interpCreate -stat true -nostat} msg] $msg
+} {1 {conflicting values given for -statics and -noStatics}}
+
+test safe-9.4 {dual specification of statics} {
+ # no error shall occur
+ safe::interpDelete [safe::interpCreate -stat false -nostat]
} {}
-test safe-5.1 {loading Tk in safe interps without master's clearance} {
+test safe-9.5 {dual specification of nested} {
+ list [catch {safe::interpCreate -nested 0 -nestedload} msg] $msg
+} {1 {conflicting values given for -nested and -nestedLoadOk}}
+
+test safe-9.6 {interpConfigure widget like behaviour} {
+ # this test shall work, don't try to "fix it" unless
+ # you *really* know what you are doing (ie you are me :p) -- dl
+ list [set i [safe::interpCreate \
+ -noStatics \
+ -nestedLoadOk \
+ -deleteHook {foo bar}];
+ safe::interpConfigure $i -accessPath /foo/bar ;
+ safe::interpConfigure $i]\
+ [safe::interpConfigure $i -aCCess]\
+ [safe::interpConfigure $i -nested]\
+ [safe::interpConfigure $i -statics]\
+ [safe::interpConfigure $i -DEL]\
+ [safe::interpConfigure $i -accessPath /blah -statics 1;
+ safe::interpConfigure $i]\
+ [safe::interpConfigure $i -deleteHook toto -nosta -nested 0;
+ safe::interpConfigure $i]
+} {{-accessPath /foo/bar -statics 0 -nested 1 -deleteHook {foo bar}} {-accessPath /foo/bar} {-nested 1} {-statics 0} {-deleteHook {foo bar}} {-accessPath /blah -statics 1 -nested 1 -deleteHook {foo bar}} {-accessPath /blah -statics 0 -nested 0 -deleteHook toto}}
+
+
+# testing that nested and statics do what is advertised
+# (we use a static package : Tcltest)
+
+if {[catch {package require Tcltest} msg]} {
+ puts "This application hasn't been compiled with Tcltest"
+ puts "skipping remining safe test that relies on it."
+} else {
+
+ # we use the Tcltest package , which has no Safe_Init
+
+test safe-10.1 {testing statics loading} {
set i [safe::interpCreate]
- catch {interp eval $i {load {} Tk}} msg
- safe::interpDelete $i
- set msg
-} {not allowed to start Tk by master's safe::TkInit}
+ list \
+ [catch {interp eval $i {load {} Tcltest}} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {can't use package in a safe interpreter: no Tcltest_SafeInit procedure} {}}
+
+test safe-10.2 {testing statics loading / -nostatics} {
+ set i [safe::interpCreate -nostatics]
+ list \
+ [catch {interp eval $i {load {} Tcltest}} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {permission denied (static package)} {}}
+
-test safe-5.2 {multi-level Tk loading with clearance} {
- # No error shall occur in that test and no window
- # shall remain at the end.
+
+test safe-10.3 {testing nested statics loading / no nested by default} {
set i [safe::interpCreate]
- set j [list $i x]
- set j [safe::interpCreate $j]
- safe::loadTk $j
- interp eval $j {
- button .b -text Ok -command {destroy .}
- pack .b
-# tkwait window . ; # for interactive testing/debugging
- }
- safe::interpDelete $j
- safe::interpDelete $i
-} {}
+ list \
+ [catch {interp eval $i {interp create x; load {} Tcltest x}} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {permission denied (nested load)} {}}
-test safe-6.1 {loadTk -use windowPath} {
- set w .safeTkFrame
- catch {destroy $w}
- frame $w -container 1;
- pack .safeTkFrame
- set i [safe::loadTk [safe::interpCreate] -use $w]
- interp eval $i {button .b -text "hello world!"; pack .b}
- safe::interpDelete $i
- destroy $w
-} {}
-test safe-6.2 {loadTk -use windowPath, conflicting -display} {
- set w .safeTkFrame
- catch {destroy $w}
- frame $w -container 1;
- pack .safeTkFrame
- set i [safe::interpCreate]
- catch {safe::loadTk $i -use $w -display :23.56} msg
- safe::interpDelete $i
- destroy $w
- string range $msg 0 36
-} {conflicting -display :23.56 and -use }
+test safe-10.4 {testing nested statics loading / -nestedloadok} {
+ set i [safe::interpCreate -nestedloadok]
+ list \
+ [catch {interp eval $i {interp create x; load {} Tcltest x}} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {can't use package in a safe interpreter: no Tcltest_SafeInit procedure} {}}
-test safe-7.1 {canvas printing} {
- set i [safe::loadTk [safe::interpCreate]]
- set r [catch {interp eval $i {canvas .c; .c postscript}}]
- safe::interpDelete $i
- set r
-} 0
+}
+
+test safe-11.1 {testing safe encoding} {
+ set i [safe::interpCreate]
+ list \
+ [catch {interp eval $i encoding} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {wrong # args: should be "encoding option ?arg ...?"} {}}
+
+test safe-11.2 {testing safe encoding} {
+ set i [safe::interpCreate]
+ list \
+ [catch {interp eval $i encoding system cp775} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {wrong # args: should be "encoding system"} {}}
+
+test safe-11.3 {testing safe encoding} {
+ set i [safe::interpCreate]
+ set result [catch {
+ string match [encoding system] [interp eval $i encoding system]
+ } msg]
+ list $result $msg [safe::interpDelete $i]
+} {0 1 {}}
+
+test safe-11.4 {testing safe encoding} {
+ set i [safe::interpCreate]
+ set result [catch {
+ string match [encoding names] [interp eval $i encoding names]
+ } msg]
+ list $result $msg [safe::interpDelete $i]
+} {0 1 {}}
+
+test safe-11.5 {testing safe encoding} {
+ set i [safe::interpCreate]
+ list \
+ [catch {interp eval $i encoding convertfrom cp1258 foobar} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {0 foobar {}}
+
+
+test safe-11.6 {testing safe encoding} {
+ set i [safe::interpCreate]
+ list \
+ [catch {interp eval $i encoding convertto cp1258 foobar} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {0 foobar {}}
+
+test safe-11.7 {testing safe encoding} {
+ set i [safe::interpCreate]
+ list \
+ [catch {interp eval $i encoding convertfrom} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {wrong # args: should be "encoding convertfrom ?encoding? data"} {}}
+
+
+test safe-11.8 {testing safe encoding} {
+ set i [safe::interpCreate]
+ list \
+ [catch {interp eval $i encoding convertto} msg] \
+ $msg \
+ [safe::interpDelete $i];
+} {1 {wrong # args: should be "encoding convertto ?encoding? data"} {}}
+
# cleanup
-unset hidden_cmds
::tcltest::cleanupTests
return
diff --git a/tcl/tests/util.test b/tcl/tests/util.test
index 25e7213d7fb..23c1c145209 100644
--- a/tcl/tests/util.test
+++ b/tcl/tests/util.test
@@ -1,84 +1,313 @@
-# This file is a Tcl script to test out the procedures in the file
-# tkUtil.c. It is organized in the standard fashion for Tcl tests.
+# This file is a Tcl script to test the code in the file tclUtil.c.
+# This file is organized in the standard fashion for Tcl tests.
#
-# Copyright (c) 1994 The Regents of the University of California.
-# Copyright (c) 1994 Sun Microsystems, Inc.
+# Copyright (c) 1995-1998 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
-# All rights reserved.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
# RCS: @(#) $Id$
-package require tcltest 2.1
-namespace import -force tcltest::configure
-namespace import -force tcltest::testsDirectory
-configure -testdir [file join [pwd] [file dirname [info script]]]
-configure -loadfile [file join [testsDirectory] constraints.tcl]
-tcltest::loadTestedCommands
-
-listbox .l -width 20 -height 5 -relief sunken -bd 2
-pack .l
-.l insert 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-update
-test util-1.1 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview moveto a b} msg] $msg
-} {1 {wrong # args: should be ".l yview moveto fraction"}}
-test util-1.2 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview moveto xyz} msg] $msg
-} {1 {expected floating-point number but got "xyz"}}
-test util-1.3 {Tk_GetScrollInfo procedure} {
- .l yview 0
- .l yview moveto .5
- .l yview
-} {0.5 0.75}
-test util-1.4 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview scroll a} msg] $msg
-} {1 {wrong # args: should be ".l yview scroll number units|pages"}}
-test util-1.5 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview scroll a b c} msg] $msg
-} {1 {wrong # args: should be ".l yview scroll number units|pages"}}
-test util-1.6 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview scroll xyz units} msg] $msg
-} {1 {expected integer but got "xyz"}}
-test util-1.7 {Tk_GetScrollInfo procedure} {
- .l yview 0
- .l yview scroll 2 pages
- .l nearest 0
-} {6}
-test util-1.8 {Tk_GetScrollInfo procedure} {
- .l yview 15
- .l yview scroll -2 pages
- .l nearest 0
-} {9}
-test util-1.9 {Tk_GetScrollInfo procedure} {
- .l yview 0
- .l yview scroll 2 units
- .l nearest 0
-} {2}
-test util-1.10 {Tk_GetScrollInfo procedure} {
- .l yview 15
- .l yview scroll -2 units
- .l nearest 0
-} {13}
-test util-1.11 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview scroll 3 zips} msg] $msg
-} {1 {bad argument "zips": must be units or pages}}
-test util-1.12 {Tk_GetScrollInfo procedure} {
- list [catch {.l yview dropdead 3 times} msg] $msg
-} {1 {unknown option "dropdead": must be moveto or scroll}}
+if {[lsearch [namespace children] ::tcltest] == -1} {
+ package require tcltest
+ namespace import -force ::tcltest::*
+}
-# cleanup
-::tcltest::cleanupTests
-return
+if {[info commands testobj] == {}} {
+ puts "This application hasn't been compiled with the \"testobj\""
+ puts "command, so I can't test the Tcl type and object support."
+ ::tcltest::cleanupTests
+ return
+}
+
+test util-1.1 {TclFindElement procedure - binary element in middle of list} {
+ lindex {0 foo\x00help 1} 1
+} "foo\x00help"
+test util-1.2 {TclFindElement procedure - binary element at end of list} {
+ lindex {0 foo\x00help} 1
+} "foo\x00help"
+
+test util-2.1 {TclCopyAndCollapse procedure - normal string} {
+ lindex {0 foo} 1
+} {foo}
+test util-2.2 {TclCopyAndCollapse procedure - string with backslashes} {
+ lindex {0 foo\n\x00help 1} 1
+} "foo\n\x00help"
+
+test util-3.1 {Tcl_ScanCountedElement procedure - don't leave unmatched braces} {
+ # This test checks for a very tricky feature. Any list element
+ # generated with Tcl_ScanCountedElement and Tcl_ConvertElement must
+ # have the property that it can be enclosing in curly braces to make
+ # an embedded sub-list. If this property doesn't hold, then
+ # Tcl_DStringStartSublist doesn't work.
+ set x {}
+ lappend x " \\\{ \\"
+ concat $x [llength "{$x}"]
+} {\ \\\{\ \\ 1}
+test util-4.1 {Tcl_ConcatObj - backslash-space at end of argument} {
+ concat a {b\ } c
+} {a b\ c}
+test util-4.2 {Tcl_ConcatObj - backslash-space at end of argument} {
+ concat a {b\ } c
+} {a b\ c}
+test util-4.3 {Tcl_ConcatObj - backslash-space at end of argument} {
+ concat a {b\\ } c
+} {a b\\ c}
+test util-4.4 {Tcl_ConcatObj - backslash-space at end of argument} {
+ concat a {b } c
+} {a b c}
+test util-4.5 {Tcl_ConcatObj - backslash-space at end of argument} {
+ concat a { } c
+} {a c}
+test util-4.6 {Tcl_ConcatObj - utf-8 sequence with "whitespace" char} {
+ # Check for Bug #227512. If this violates C isspace, then it returns \xc3.
+ concat \xe0
+} \xe0
+proc Wrapper_Tcl_StringMatch {pattern string} {
+ # Forces use of Tcl_StringMatch, not Tcl_UniCharCaseMatch
+ switch -glob -- $string $pattern {return 1} default {return 0}
+}
+test util-5.1 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch ab*c abc
+} 1
+test util-5.2 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch ab**c abc
+} 1
+test util-5.3 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch ab* abcdef
+} 1
+test util-5.4 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch *c abc
+} 1
+test util-5.5 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch *3*6*9 0123456789
+} 1
+test util-5.6 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch *3*6*9 01234567890
+} 0
+test util-5.7 {Tcl_StringMatch: UTF-8} {
+ Wrapper_Tcl_StringMatch *u \u4e4fu
+} 1
+test util-5.8 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch a?c abc
+} 1
+test util-5.9 {Tcl_StringMatch: UTF-8} {
+ # skip one character in string
+ Wrapper_Tcl_StringMatch a?c a\u4e4fc
+} 1
+test util-5.10 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch a??c abc
+} 0
+test util-5.11 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch ?1??4???8? 0123456789
+} 1
+test util-5.12 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {[abc]bc} abc
+} 1
+test util-5.13 {Tcl_StringMatch: UTF-8} {
+ # string += Tcl_UtfToUniChar(string, &ch);
+ Wrapper_Tcl_StringMatch "\[\u4e4fxy\]bc" "\u4e4fbc"
+} 1
+test util-5.14 {Tcl_StringMatch} {
+ # if ((*pattern == ']') || (*pattern == '\0'))
+ # badly formed pattern
+ Wrapper_Tcl_StringMatch {[]} {[]}
+} 0
+test util-5.15 {Tcl_StringMatch} {
+ # if ((*pattern == ']') || (*pattern == '\0'))
+ # badly formed pattern
+ Wrapper_Tcl_StringMatch {[} {[}
+} 0
+test util-5.16 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {a[abc]c} abc
+} 1
+test util-5.17 {Tcl_StringMatch: UTF-8} {
+ # pattern += Tcl_UtfToUniChar(pattern, &endChar);
+ # get 1 UTF-8 character
+ Wrapper_Tcl_StringMatch "a\[a\u4e4fc]c" "a\u4e4fc"
+} 1
+test util-5.18 {Tcl_StringMatch: UTF-8} {
+ # pattern += Tcl_UtfToUniChar(pattern, &endChar);
+ # proper advance: wrong answer would match on UTF trail byte of \u4e4f
+ Wrapper_Tcl_StringMatch {a[a\u4e4fc]c} [bytestring a\u008fc]
+} 0
+test util-5.19 {Tcl_StringMatch: UTF-8} {
+ # pattern += Tcl_UtfToUniChar(pattern, &endChar);
+ # proper advance.
+ Wrapper_Tcl_StringMatch {a[a\u4e4fc]c} "acc"
+} 1
+test util-5.20 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {a[xyz]c} abc
+} 0
+test util-5.21 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {12[2-7]45} 12345
+} 1
+test util-5.22 {Tcl_StringMatch: UTF-8 range} {
+ Wrapper_Tcl_StringMatch "\[\u4e00-\u4e4f]" "0"
+} 0
+test util-5.23 {Tcl_StringMatch: UTF-8 range} {
+ Wrapper_Tcl_StringMatch "\[\u4e00-\u4e4f]" "\u4e33"
+} 1
+test util-5.24 {Tcl_StringMatch: UTF-8 range} {
+ Wrapper_Tcl_StringMatch "\[\u4e00-\u4e4f]" "\uff08"
+} 0
+test util-5.25 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12345
+} 1
+test util-5.26 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12b45
+} 1
+test util-5.27 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12d45
+} 1
+test util-5.28 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12145
+} 0
+test util-5.29 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {12[ab2-4cd]45} 12545
+} 0
+test util-5.30 {Tcl_StringMatch: forwards range} {
+ Wrapper_Tcl_StringMatch {[k-w]} "z"
+} 0
+test util-5.31 {Tcl_StringMatch: forwards range} {
+ Wrapper_Tcl_StringMatch {[k-w]} "w"
+} 1
+test util-5.32 {Tcl_StringMatch: forwards range} {
+ Wrapper_Tcl_StringMatch {[k-w]} "r"
+} 1
+test util-5.33 {Tcl_StringMatch: forwards range} {
+ Wrapper_Tcl_StringMatch {[k-w]} "k"
+} 1
+test util-5.34 {Tcl_StringMatch: forwards range} {
+ Wrapper_Tcl_StringMatch {[k-w]} "a"
+} 0
+test util-5.35 {Tcl_StringMatch: reverse range} {
+ Wrapper_Tcl_StringMatch {[w-k]} "z"
+} 0
+test util-5.36 {Tcl_StringMatch: reverse range} {
+ Wrapper_Tcl_StringMatch {[w-k]} "w"
+} 1
+test util-5.37 {Tcl_StringMatch: reverse range} {
+ Wrapper_Tcl_StringMatch {[w-k]} "r"
+} 1
+test util-5.38 {Tcl_StringMatch: reverse range} {
+ Wrapper_Tcl_StringMatch {[w-k]} "k"
+} 1
+test util-5.39 {Tcl_StringMatch: reverse range} {
+ Wrapper_Tcl_StringMatch {[w-k]} "a"
+} 0
+test util-5.40 {Tcl_StringMatch: skip correct number of ']'} {
+ Wrapper_Tcl_StringMatch {[A-]x} Ax
+} 0
+test util-5.41 {Tcl_StringMatch: skip correct number of ']'} {
+ Wrapper_Tcl_StringMatch {[A-]]x} Ax
+} 1
+test util-5.42 {Tcl_StringMatch: skip correct number of ']'} {
+ Wrapper_Tcl_StringMatch {[A-]]x} \ue1x
+} 0
+test util-5.43 {Tcl_StringMatch: skip correct number of ']'} {
+ Wrapper_Tcl_StringMatch \[A-]\ue1]x \ue1x
+} 1
+test util-5.44 {Tcl_StringMatch: skip correct number of ']'} {
+ Wrapper_Tcl_StringMatch {[A-]h]x} hx
+} 1
+test util-5.45 {Tcl_StringMatch} {
+ # if (*pattern == '\0')
+ # badly formed pattern, still treats as a set
+ Wrapper_Tcl_StringMatch {[a} a
+} 1
+test util-5.46 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {a\*b} a*b
+} 1
+test util-5.47 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {a\*b} ab
+} 0
+test util-5.48 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch {a\*\?\[\]\\\x} "a*?\[\]\\x"
+} 1
+test util-5.49 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch ** ""
+} 1
+test util-5.50 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch *. ""
+} 0
+test util-5.51 {Tcl_StringMatch} {
+ Wrapper_Tcl_StringMatch "" ""
+} 1
+test util-6.1 {Tcl_PrintDouble - using tcl_precision} {
+ concat x[expr 1.4]
+} {x1.4}
+test util-6.2 {Tcl_PrintDouble - using tcl_precision} {
+ concat x[expr 1.39999999999]
+} {x1.39999999999}
+test util-6.3 {Tcl_PrintDouble - using tcl_precision} {
+ concat x[expr 1.399999999999]
+} {x1.4}
+test util-6.4 {Tcl_PrintDouble - using tcl_precision} {
+ set tcl_precision 5
+ concat x[expr 1.123412341234]
+} {x1.1234}
+set tcl_precision 12
+test util-6.5 {Tcl_PrintDouble - make sure there's a decimal point} {
+ concat x[expr 2.0]
+} {x2.0}
+test util-6.6 {Tcl_PrintDouble - make sure there's a decimal point} {eformat} {
+ concat x[expr 3.0e98]
+} {x3e+98}
+test util-7.1 {TclPrecTraceProc - unset callbacks} {
+ set tcl_precision 7
+ set x $tcl_precision
+ unset tcl_precision
+ list $x $tcl_precision
+} {7 7}
+test util-7.2 {TclPrecTraceProc - read traces, sharing among interpreters} {
+ set tcl_precision 12
+ interp create child
+ set x [child eval set tcl_precision]
+ child eval {set tcl_precision 6}
+ interp delete child
+ list $x $tcl_precision
+} {12 6}
+test util-7.3 {TclPrecTraceProc - write traces, safe interpreters} {
+ set tcl_precision 12
+ interp create -safe child
+ set x [child eval {
+ list [catch {set tcl_precision 8} msg] $msg
+ }]
+ interp delete child
+ list $x $tcl_precision
+} {{1 {can't set "tcl_precision": can't modify precision from a safe interpreter}} 12}
+test util-7.4 {TclPrecTraceProc - write traces, bogus values} {
+ set tcl_precision 12
+ list [catch {set tcl_precision abc} msg] $msg $tcl_precision
+} {1 {can't set "tcl_precision": improper value for precision} 12}
+
+set tcl_precision 12
+
+# This test always succeeded in the C locale anyway...
+test util-8.1 {TclNeedSpace - correct UTF8 handling} {
+ interp create \u5420
+ interp create [list \u5420 foo]
+ interp alias {} fooset [list \u5420 foo] set
+ set result [interp target {} fooset]
+ interp delete \u5420
+ set result
+} "\u5420 foo"
+
+# cleanup
+::tcltest::cleanupTests
+return
diff --git a/tcl/unix/Makefile.in b/tcl/unix/Makefile.in
index ac5ad95234e..e4dcb1b6f1c 100644
--- a/tcl/unix/Makefile.in
+++ b/tcl/unix/Makefile.in
@@ -1,5 +1,5 @@
#
-# This file is a Makefile for Tk. If it has the name "Makefile.in"
+# This file is a Makefile for Tcl. If it has the name "Makefile.in"
# then it is a template for a Makefile; to generate the actual Makefile,
# run "./configure", which is a configuration script generated by the
# "autoconf" program (constructs like "@foo@" will get replaced in the
@@ -7,14 +7,10 @@
#
# RCS: @(#) $Id$
-# Current Tk version; used in various names.
-
-TCLVERSION = @TCL_VERSION@
-VERSION = @TK_VERSION@
-MAJOR_VERSION = @TK_MAJOR_VERSION@
-MINOR_VERSION = @TK_MINOR_VERSION@
-PATCH_LEVEL = @TK_PATCH_LEVEL@
-LOCALES = @LOCALES@
+VERSION = @TCL_VERSION@
+MAJOR_VERSION = @TCL_MAJOR_VERSION@
+MINOR_VERSION = @TCL_MINOR_VERSION@
+PATCH_LEVEL = @TCL_PATCH_LEVEL@
#----------------------------------------------------------------
# Things you can change to personalize the Makefile for your own
@@ -27,7 +23,8 @@ LOCALES = @LOCALES@
# specific files (exec_prefix) and machine-independent files such
# as scripts (prefix). The values specified here may be overridden
# at configure-time with the --exec-prefix and --prefix options
-# to the "configure" script.
+# to the "configure" script. The *dir vars are standard configure
+# substitutions that are based off prefix and exec_prefix.
prefix = @prefix@
exec_prefix = @exec_prefix@
@@ -43,63 +40,43 @@ mandir = @mandir@
# when installing files.
INSTALL_ROOT =
-# Directory from which applications will reference the library of Tcl
-# scripts (note: you can set the TK_LIBRARY environment variable at
-# run-time to override the compiled-in location):
-TK_LIBRARY = $(prefix)/lib/tk$(VERSION)
+# Path for the platform independent Tcl scripting libraries:
+TCL_LIBRARY = $(prefix)/lib/tcl$(VERSION)
# Path to use at runtime to refer to LIB_INSTALL_DIR:
LIB_RUNTIME_DIR = $(libdir)
-# Directory in which to install the program wish:
+# Directory in which to install the program tclsh:
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir)
-# Directory in which to install the .a or .so binary for the Tk library:
+# Directory in which to install libtcl.so or libtcl.a:
LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir)
-# Path name to use when installing library scripts:
-SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TK_LIBRARY)
+# Path name to use when installing library scripts.
+SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY)
-# Directory in which to install the include file tk.h:
+# Directory in which to install the include file tcl.h:
INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir)
-# Top-level directory for manual entries:
+# Top-level directory in which to install manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir)
-# Directory in which to install manual entry for wish:
+# Directory in which to install manual entry for tclsh:
MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
-# Directory in which to install manual entries for Tk's C library
+# Directory in which to install manual entries for Tcl's C library
# procedures:
MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3
# Directory in which to install manual entries for the built-in
-# Tcl commands implemented by Tk:
+# Tcl commands:
MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
-# The directory containing the Tcl sources and headers appropriate
-# for this version of Tk ("srcdir" will be replaced or has already
-# been replaced by the configure script):
-TCL_GENERIC_DIR = @TCL_SRC_DIR@/generic
-
-# The directory containing the Tcl library archive file appropriate
-# for this version of Tk:
-TCL_BIN_DIR = @TCL_BIN_DIR@
-
-# The linker flags needed to link in the Tcl library (ex: -ltcl8.2)
-TCL_LIB_FLAG = @TCL_LIB_FLAG@
+# Package search path.
+TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@
# Libraries built with optimization switches have this additional extension
-TK_DBGX = @TK_DBGX@
-
-# Flag, 1: we're building a shared lib, 0 we're not
-TK_SHARED_BUILD = @TK_SHARED_BUILD@
-
-# Directory in which to install the pkgIndex.tcl file for loadable Tk
-PKG_INSTALL_DIR = $(LIB_INSTALL_DIR)/tk$(VERSION)$(TK_DBGX)
-
-# Package index file for loadable Tk
-PKG_INDEX = $(PKG_INSTALL_DIR)/pkgIndex.tcl
+TCL_DBGX = @TCL_DBGX@
# warning flags
CFLAGS_WARNING = @CFLAGS_WARNING@
@@ -120,58 +97,81 @@ LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
LDFLAGS = @LDFLAGS@ @LDFLAGS_DEFAULT@
-# A "-I" switch that can be used when compiling to make all of the
-# X11 include files accessible (the configure script will try to
-# set this value, and will cause it to be an empty string if the
-# include files are accessible via /usr/include).
-X11_INCLUDES = @XINCLUDES@
-
-# Linker switch(es) to use to link with the X11 library archive (the
-# configure script will try to set this value automatically, but you
-# can override it).
-X11_LIB_SWITCHES = @XLIBSW@
-
-
-# To turn off the security checks that disallow incoming sends when
-# the X server appears to be insecure, reverse the comments on the
-# following lines:
-SECURITY_FLAGS =
-#SECURITY_FLAGS = -DTK_NO_SECURITY
-
# To disable ANSI-C procedure prototypes reverse the comment characters
# on the following lines:
PROTO_FLAGS =
#PROTO_FLAGS = -DNO_PROTOTYPE
+# Mathematical functions like sin and atan2 are enabled for expressions
+# by default. To disable them, reverse the comment characters on the
+# following pairs of lines:
+MATH_FLAGS =
+#MATH_FLAGS = -DTCL_NO_MATH
+MATH_LIBS = @MATH_LIBS@
+#MATH_LIBS =
+
+# If you use the setenv, putenv, or unsetenv procedures to modify
+# environment variables in your application and you'd like those
+# modifications to appear in the "env" Tcl variable, switch the
+# comments on the two lines below so that Tcl provides these
+# procedures instead of your standard C library.
+
+ENV_FLAGS =
+#ENV_FLAGS = -DTclSetEnv=setenv -DTcl_PutEnv=putenv -DTclUnsetEnv=unsetenv
+
+# To compile for non-UNIX systems (so that only the non-UNIX-specific
+# commands are available), reverse the comment characters on the
+# following pairs of lines. In addition, you'll have to provide your
+# own replacement for the "panic" procedure (see panic.c for what
+# the current one does).
+GENERIC_FLAGS =
+#GENERIC_FLAGS = -DTCL_GENERIC_ONLY
+UNIX_OBJS = tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o \
+ tclUnixFile.o tclUnixPipe.o tclUnixSock.o \
+ tclUnixTime.o tclUnixInit.o tclUnixThrd.o
+#UNIX_OBJS =
+NOTIFY_OBJS = tclUnixNotfy.o
+#NOTIFY_OBJS =
+
# To enable memory debugging reverse the comment characters on the following
# lines. Warning: if you enable memory debugging, you must do it
# *everywhere*, including all the code that calls Tcl, and you must use
# ckalloc and ckfree everywhere instead of malloc and free.
-MEM_DEBUG_FLAGS =
+MEM_DEBUG_FLAGS = @MEM_DEBUG_FLAGS@
#MEM_DEBUG_FLAGS = -DTCL_MEM_DEBUG
-# If your X server is X11R4 or earlier, then you may wish to reverse
-# the comment characters on the following two lines. This will enable
-# extra code to speed up XStringToKeysym. In X11R5 and later releases
-# XStringToKeysym is plenty fast, so you needn't define REDO_KEYSYM_LOOKUP.
-KEYSYM_FLAGS =
-#KEYSYM_FLAGS = -DREDO_KEYSYM_LOOKUP
+TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
+#TCL_STUB_LIB_FILE = libtclstub.a
+
+# Generic stub lib name used in rules that apply to tcl and tk
+STUB_LIB_FILE = ${TCL_STUB_LIB_FILE}
+
+TCL_STUB_LIB_FLAG = @TCL_STUB_LIB_FLAG@
+#TCL_STUB_LIB_FLAG = -ltclstub
+
+# To enable compilation debugging reverse the comment characters on
+# one of the following lines.
+COMPILE_DEBUG_FLAGS =
+#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_STATS
+#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
-# Tk does not used deprecated Tcl constructs so it should
-# compile fine with -DTCL_NO_DEPRECATED. To remove its own
-# set of deprecated code uncomment the second line.
-NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED
-#NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED -DTK_NO_DEPRECATED
+# To compile without backward compatibility and deprecated code
+# uncomment the following
+NO_DEPRECATED_FLAGS =
+#NO_DEPRECATED_FLAGS = -DTCL_NO_DEPRECATED
# Some versions of make, like SGI's, use the following variable to
# determine which shell to use for executing commands:
SHELL = /bin/sh
-# Tk used to let the configure script choose which program to use
+# Tcl used to let the configure script choose which program to use
# for installing, but there are just too many different versions of
# "install" around; better to use the install-sh script that comes
# with the distribution, which is slower but guaranteed to work.
+INSTALL_STRIP_PROGRAM = -s
+INSTALL_STRIP_LIBRARY = -S -S
+
INSTALL = @srcdir@/install-sh -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_LIBRARY = ${INSTALL}
@@ -185,60 +185,48 @@ INSTALL_DATA = ${INSTALL} -m 644
TCL_EXE = tclsh
# The symbols below provide support for dynamic loading and shared
-# libraries. The values of the symbols are normally set by the
+# libraries. See configure.in for a description of what the
+# symbols mean. The values of the symbols are normally set by the
# configure script. You shouldn't normally need to modify any of
# these definitions by hand.
+STLIB_LD = @STLIB_LD@
+SHLIB_LD = @SHLIB_LD@
SHLIB_CFLAGS = @SHLIB_CFLAGS@
+SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@
+SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
+TCL_SHLIB_LD_EXTRAS = @TCL_SHLIB_LD_EXTRAS@
-# To enable support for stubs in Tcl.
-STUB_LIB_FILE = @TK_STUB_LIB_FILE@
+SHLIB_SUFFIX = @SHLIB_SUFFIX@
+#SHLIB_SUFFIX =
-TK_STUB_LIB_FILE = @TK_STUB_LIB_FILE@
-#TK_STUB_LIB_FILE = libtkstub.a
+DLTEST_TARGETS = dltest.marker
-# Generic stub lib name used in rules that apply to tcl and tk
-STUB_LIB_FILE = ${TK_STUB_LIB_FILE}
+# Additional search flags needed to find the various shared libraries
+# at run-time. The first symbol is for use when creating a binary
+# with cc, and the second is for use when running ld directly.
+CC_SEARCH_FLAGS = @CC_SEARCH_FLAGS@
+LD_SEARCH_FLAGS = @LD_SEARCH_FLAGS@
-TK_STUB_LIB_FLAG = @TK_STUB_LIB_FLAG@
-#TK_STUB_LIB_FLAG = -ltkstub
+# The following symbol is defined to "$(DLTEST_TARGETS)" if dynamic
+# loading is available; this causes everything in the "dltest"
+# subdirectory to be built when making "tcltest. If dynamic loading
+# isn't available, configure defines this symbol to an empty string,
+# in which case the shared libraries aren't built.
+BUILD_DLTEST = @BUILD_DLTEST@
+#BUILD_DLTEST =
-TK_LIB_FILE = @TK_LIB_FILE@
-#TK_LIB_FILE = libtk.a
+TCL_LIB_FILE = @TCL_LIB_FILE@
+#TCL_LIB_FILE = libtcl.a
# Generic lib name used in rules that apply to tcl and tk
-LIB_FILE = ${TK_LIB_FILE}
-
-TK_LIB_FLAG = @TK_LIB_FLAG@
-#TK_LIB_FLAG = -ltk
-
-TCL_LIB_SPEC = @TCL_LIB_SPEC@
-TCL_STUB_LIB_SPEC = @TCL_STUB_LIB_SPEC@
-TCL_STUB_LIB_FLAG = @TCL_STUB_LIB_FLAG@
-TK_EXP_FILE = @TK_EXP_FILE@
-TK_BUILD_EXP_FILE = @TK_BUILD_EXP_FILE@
+LIB_FILE = ${TCL_LIB_FILE}
-TCL_STUB_FLAGS = @TCL_STUB_FLAGS@
-
-# Libraries to use when linking. This definition is determined by the
-# configure script.
-LIBS = @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@
-WISH_LIBS = $(TCL_LIB_SPEC) @LIBS@ $(X11_LIB_SWITCHES) @DL_LIBS@ @MATH_LIBS@
+TCL_LIB_FLAG = @TCL_LIB_FLAG@
+#TCL_LIB_FLAG = -ltcl
-# The symbol below provides support for dynamic loading and shared
-# libraries. See configure.in for a description of what it means.
-# The values of the symbolis normally set by the configure script.
-
-STLIB_LD = @STLIB_LD@
-SHLIB_LD = @SHLIB_LD@
-SHLIB_LD_LIBS = @SHLIB_LD_LIBS@
-TK_SHLIB_LD_EXTRAS = @TK_SHLIB_LD_EXTRAS@
-
-# Additional search flags needed to find the various shared libraries
-# at run-time. The first symbol is for use when creating a binary
-# with cc, and the second is for use when running ld directly.
-CC_SEARCH_FLAGS = @CC_SEARCH_FLAGS@
-LD_SEARCH_FLAGS = @LD_SEARCH_FLAGS@
+TCL_EXP_FILE = @TCL_EXP_FILE@
+TCL_BUILD_EXP_FILE = @TCL_BUILD_EXP_FILE@
# support for embedded libraries on Darwin / Mac OS X
DYLIB_INSTALL_DIR = ${LIB_RUNTIME_DIR}
@@ -249,15 +237,38 @@ DYLIB_INSTALL_DIR = ${LIB_RUNTIME_DIR}
# modify any of this stuff by hand.
#----------------------------------------------------------------
+COMPAT_OBJS = @LIBOBJS@
+
AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@
AR = @AR@
RANLIB = @RANLIB@
-SRC_DIR = @srcdir@/..
+SRC_DIR = @srcdir@
TOP_DIR = @srcdir@/..
GENERIC_DIR = $(TOP_DIR)/generic
-UNIX_DIR = @srcdir@
-BMAP_DIR = $(TOP_DIR)/bitmaps
-TOOL_DIR = @TCL_SRC_DIR@/tools
+COMPAT_DIR = $(TOP_DIR)/compat
+TOOL_DIR = $(TOP_DIR)/tools
+UNIX_DIR = $(TOP_DIR)/unix
+MAC_OSX_DIR = $(TOP_DIR)/macosx
+# Must be absolute because of the cd dltest $(DLTEST_DIR)/configure below.
+DLTEST_DIR = @TCL_SRC_DIR@/unix/dltest
+# Must be absolute to so the corresponding tcltest's tcl_library is absolute.
+TCL_BUILDTIME_LIBRARY = @TCL_SRC_DIR@/library
+
+CC = @CC@
+#CC = purify -best-effort @CC@ -DPURIFY
+
+# Flags to be passed to mkLinks to control whether the manpages
+# should be compressed and linked with softlinks
+MKLINKS_FLAGS = @MKLINKS_FLAGS@
+
+#----------------------------------------------------------------
+# The information below is usually usable as is. The configure
+# script won't modify it and it only exists to make working
+# around selected rare system configurations easier.
+#----------------------------------------------------------------
+
+GDB = gdb
+DDD = ddd
#----------------------------------------------------------------
# The information below should be usable as is. The configure
@@ -265,139 +276,184 @@ TOOL_DIR = @TCL_SRC_DIR@/tools
# either.
#----------------------------------------------------------------
-# Flags to be passed to mkLinks to control whether the manpages
-# should be compressed and linked with softlinks
-MKLINKS_FLAGS = @MKLINKS_FLAGS@
-
-CC = @CC@
-CC_SWITCHES_NO_STUBS = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
--I${UNIX_DIR} -I${GENERIC_DIR} \
--I${BMAP_DIR} -I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
-${AC_FLAGS} ${PROTO_FLAGS} \
-${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} ${KEYSYM_FLAGS} ${NO_DEPRECATED_FLAGS}
-
-CC_SWITCHES = ${CC_SWITCHES_NO_STUBS} ${TCL_STUB_FLAGS}
-
-DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
--I${BMAP_DIR} \
--I${TCL_GENERIC_DIR} ${X11_INCLUDES} \
-${AC_FLAGS} ${PROTO_FLAGS} ${SECURITY_FLAGS} ${MEM_DEBUG_FLAGS} \
-${KEYSYM_FLAGS}
-
-WISH_OBJS = tkAppInit.o
-
-TKTEST_OBJS = tkTestInit.o tkTest.o tkSquare.o
-
-WIDGOBJS = tkButton.o tkEntry.o tkFrame.o tkListbox.o \
- tkMenu.o tkMenubutton.o tkMenuDraw.o tkMessage.o \
- tkPanedWindow.o tkScale.o tkScrollbar.o
-
-CANVOBJS = tkCanvas.o tkCanvArc.o tkCanvBmap.o tkCanvImg.o \
- tkCanvLine.o tkCanvPoly.o tkCanvPs.o tkCanvText.o \
- tkCanvUtil.o tkCanvWind.o tkRectOval.o tkTrig.o
-
-IMAGEOBJS = tkImage.o tkImgBmap.o tkImgGIF.o tkImgPPM.o tkImgPhoto.o
-
-TEXTOBJS = tkText.o tkTextBTree.o tkTextDisp.o tkTextImage.o tkTextIndex.o \
- tkTextMark.o tkTextTag.o tkTextWind.o
-
-UNIXOBJS = tkUnix.o tkUnix3d.o tkUnixButton.o tkUnixColor.o tkUnixConfig.o \
- tkUnixCursor.o tkUnixDraw.o tkUnixEmbed.o tkUnixEvent.o \
- tkUnixFocus.o tkUnixFont.o tkUnixInit.o tkUnixKey.o tkUnixMenu.o \
- tkUnixMenubu.o tkUnixScale.o tkUnixScrlbr.o tkUnixSelect.o \
- tkUnixSend.o tkUnixWm.o tkUnixXId.o tkStubInit.o tkStubLib.o
-
-STUB_LIB_OBJS = tkStubLib.o tkStubImg.o
-
-OBJS = tk3d.o tkArgv.o tkAtom.o tkBind.o tkBitmap.o tkClipboard.o tkCmds.o \
- tkColor.o tkConfig.o tkConsole.o tkCursor.o tkError.o tkEvent.o \
- tkFocus.o tkFont.o tkGet.o tkGC.o tkGeometry.o tkGrab.o tkGrid.o \
- tkMain.o tkObj.o tkOldConfig.o tkOption.o tkPack.o tkPlace.o \
- tkSelect.o tkStyle.o tkUndo.o tkUtil.o tkVisual.o tkWindow.o \
- $(UNIXOBJS) $(WIDGOBJS) $(CANVOBJS) $(IMAGEOBJS) $(TEXTOBJS)
-
-TK_DECLS = \
- $(GENERIC_DIR)/tk.decls \
- $(GENERIC_DIR)/tkInt.decls
-
-SRCS = \
- $(GENERIC_DIR)/tk3d.c $(GENERIC_DIR)/tkArgv.c \
- $(GENERIC_DIR)/tkAtom.c $(GENERIC_DIR)/tkBind.c \
- $(GENERIC_DIR)/tkBitmap.c $(GENERIC_DIR)/tkClipboard.c \
- $(GENERIC_DIR)/tkCmds.c $(GENERIC_DIR)/tkColor.c \
- $(GENERIC_DIR)/tkConfig.c $(GENERIC_DIR)/tkCursor.c \
- $(GENERIC_DIR)/tkError.c $(GENERIC_DIR)/tkEvent.c \
- $(GENERIC_DIR)/tkFocus.c $(GENERIC_DIR)/tkFont.c \
- $(GENERIC_DIR)/tkGet.c $(GENERIC_DIR)/tkGC.c \
- $(GENERIC_DIR)/tkGeometry.c $(GENERIC_DIR)/tkGrab.c \
- $(GENERIC_DIR)/tkGrid.c $(GENERIC_DIR)/tkConsole.c \
- $(GENERIC_DIR)/tkMain.c $(GENERIC_DIR)/tkOption.c \
- $(GENERIC_DIR)/tkPack.c $(GENERIC_DIR)/tkPlace.c \
- $(GENERIC_DIR)/tkSelect.c $(GENERIC_DIR)/tkStyle.c \
- $(GENERIC_DIR)/tkUndo.c $(GENERIC_DIR)/tkUtil.c \
- $(GENERIC_DIR)/tkVisual.c $(GENERIC_DIR)/tkWindow.c \
- $(GENERIC_DIR)/tkButton.c $(GENERIC_DIR)/tkObj.c \
- $(GENERIC_DIR)/tkEntry.c $(GENERIC_DIR)/tkFrame.c \
- $(GENERIC_DIR)/tkListbox.c $(GENERIC_DIR)/tkMenu.c \
- $(GENERIC_DIR)/tkMenubutton.c $(GENERIC_DIR)/tkMenuDraw.c \
- $(GENERIC_DIR)/tkMessage.c $(GENERIC_DIR)/tkPanedWindow.c \
- $(GENERIC_DIR)/tkScale.c $(GENERIC_DIR)/tkScrollbar.c \
- $(GENERIC_DIR)/tkCanvas.c $(GENERIC_DIR)/tkCanvArc.c \
- $(GENERIC_DIR)/tkCanvBmap.c $(GENERIC_DIR)/tkCanvImg.c \
- $(GENERIC_DIR)/tkCanvLine.c $(GENERIC_DIR)/tkCanvPoly.c \
- $(GENERIC_DIR)/tkCanvPs.c $(GENERIC_DIR)/tkCanvText.c \
- $(GENERIC_DIR)/tkCanvUtil.c \
- $(GENERIC_DIR)/tkCanvWind.c $(GENERIC_DIR)/tkRectOval.c \
- $(GENERIC_DIR)/tkTrig.c $(GENERIC_DIR)/tkImage.c \
- $(GENERIC_DIR)/tkImgBmap.c $(GENERIC_DIR)/tkImgGIF.c \
- $(GENERIC_DIR)/tkImgPPM.c \
- $(GENERIC_DIR)/tkImgPhoto.c $(GENERIC_DIR)/tkText.c \
- $(GENERIC_DIR)/tkTextBTree.c $(GENERIC_DIR)/tkTextDisp.c \
- $(GENERIC_DIR)/tkTextImage.c \
- $(GENERIC_DIR)/tkTextIndex.c $(GENERIC_DIR)/tkTextMark.c \
- $(GENERIC_DIR)/tkTextTag.c $(GENERIC_DIR)/tkTextWind.c \
- $(GENERIC_DIR)/tkOldConfig.c \
- $(GENERIC_DIR)/tkSquare.c $(GENERIC_DIR)/tkTest.c \
- $(GENERIC_DIR)/tkStubInit.c $(GENERIC_DIR)/tkStubLib.c \
- $(UNIX_DIR)/tkAppInit.c $(UNIX_DIR)/tkUnix.c \
- $(UNIX_DIR)/tkUnix3d.c \
- $(UNIX_DIR)/tkUnixButton.c $(UNIX_DIR)/tkUnixColor.c \
- $(UNIX_DIR)/tkUnixConfig.c \
- $(UNIX_DIR)/tkUnixCursor.c \
- $(UNIX_DIR)/tkUnixDraw.c \
- $(UNIX_DIR)/tkUnixEmbed.c $(UNIX_DIR)/tkUnixEvent.c \
- $(UNIX_DIR)/tkUnixFocus.c \
- $(UNIX_DIR)/tkUnixFont.c $(UNIX_DIR)/tkUnixInit.c \
- $(UNIX_DIR)/tkUnixKey.c \
- $(UNIX_DIR)/tkUnixMenu.c $(UNIX_DIR)/tkUnixMenubu.c \
- $(UNIX_DIR)/tkUnixScale.c $(UNIX_DIR)/tkUnixScrlbr.c \
- $(UNIX_DIR)/tkUnixSelect.c \
- $(UNIX_DIR)/tkUnixSend.c $(UNIX_DIR)/tkUnixWm.c \
- $(UNIX_DIR)/tkUnixXId.c
-
-
-HDRS = bltList.h \
- default.h ks_names.h tkPatch.h tk.h tkButton.h tkCanvas.h tkInt.h \
- tkPort.h tkScrollbar.h tkText.h
-
-DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget
+CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
+-I${GENERIC_DIR} -I${SRC_DIR} \
+${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
+${COMPILE_DEBUG_FLAGS} ${NO_DEPRECATED_FLAGS} ${ENV_FLAGS} \
+-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
+
+STUB_CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
+-I${GENERIC_DIR} -I${SRC_DIR} \
+${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
+${COMPILE_DEBUG_FLAGS} ${ENV_FLAGS} -DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
+
+LIBS = @DL_LIBS@ @LIBS@ $(MATH_LIBS)
+
+DEPEND_SWITCHES = ${CFLAGS} -I${GENERIC_DIR} -I${SRC_DIR} \
+${AC_FLAGS} ${MATH_FLAGS} \
+${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
+-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
+
+TCLSH_OBJS = tclAppInit.o
+
+TCLTEST_OBJS = tclTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \
+ tclThreadTest.o tclUnixTest.o
+
+XTTEST_OBJS = xtTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \
+ tclThreadTest.o tclUnixTest.o tclXtNotify.o tclXtTest.o
+
+GENERIC_OBJS = regcomp.o regexec.o regfree.o regerror.o tclAlloc.o \
+ tclAsync.o tclBasic.o tclBinary.o \
+ tclCkalloc.o tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o \
+ tclCompCmds.o tclCompExpr.o tclCompile.o tclDate.o tclEncoding.o \
+ tclEnv.o tclEvent.o tclExecute.o tclFCmd.o tclFileName.o tclGet.o \
+ tclHash.o tclHistory.o tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o \
+ tclIOGT.o tclIOSock.o tclIOUtil.o tclLink.o tclListObj.o \
+ tclLiteral.o tclLoad.o tclMain.o tclNamesp.o tclNotify.o \
+ tclObj.o tclPanic.o tclParse.o tclParseExpr.o tclPipe.o \
+ tclPkg.o tclPosixStr.o tclPreserve.o tclProc.o tclRegexp.o \
+ tclResolve.o tclResult.o tclScan.o tclStringObj.o tclThread.o \
+ tclThreadAlloc.o tclThreadJoin.o tclStubInit.o tclStubLib.o \
+ tclTimer.o tclUtf.o tclUtil.o tclVar.o
+
+STUB_LIB_OBJS = tclStubLib.o ${COMPAT_OBJS}
+
+OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} \
+ @DL_OBJS@ @PLAT_OBJS@
+
+TCL_DECLS = \
+ $(GENERIC_DIR)/tcl.decls \
+ $(GENERIC_DIR)/tclInt.decls
+
+GENERIC_HDRS = \
+ $(GENERIC_DIR)/tcl.h \
+ $(GENERIC_DIR)/tclDecls.h \
+ $(GENERIC_DIR)/tclInt.h \
+ $(GENERIC_DIR)/tclIntDecls.h \
+ $(GENERIC_DIR)/tclIntPlatDecls.h \
+ $(GENERIC_DIR)/tclPatch.h \
+ $(GENERIC_DIR)/tclPlatDecls.h \
+ $(GENERIC_DIR)/tclPort.h \
+ $(GENERIC_DIR)/tclRegexp.h
+
+GENERIC_SRCS = \
+ $(GENERIC_DIR)/regcomp.c \
+ $(GENERIC_DIR)/regexec.c \
+ $(GENERIC_DIR)/regfree.c \
+ $(GENERIC_DIR)/regerror.c \
+ $(GENERIC_DIR)/tclAlloc.c \
+ $(GENERIC_DIR)/tclAsync.c \
+ $(GENERIC_DIR)/tclBasic.c \
+ $(GENERIC_DIR)/tclBinary.c \
+ $(GENERIC_DIR)/tclCkalloc.c \
+ $(GENERIC_DIR)/tclClock.c \
+ $(GENERIC_DIR)/tclCmdAH.c \
+ $(GENERIC_DIR)/tclCmdIL.c \
+ $(GENERIC_DIR)/tclCmdMZ.c \
+ $(GENERIC_DIR)/tclCompCmds.c \
+ $(GENERIC_DIR)/tclCompExpr.c \
+ $(GENERIC_DIR)/tclCompile.c \
+ $(GENERIC_DIR)/tclDate.c \
+ $(GENERIC_DIR)/tclEncoding.c \
+ $(GENERIC_DIR)/tclEnv.c \
+ $(GENERIC_DIR)/tclEvent.c \
+ $(GENERIC_DIR)/tclExecute.c \
+ $(GENERIC_DIR)/tclFCmd.c \
+ $(GENERIC_DIR)/tclFileName.c \
+ $(GENERIC_DIR)/tclGet.c \
+ $(GENERIC_DIR)/tclHash.c \
+ $(GENERIC_DIR)/tclHistory.c \
+ $(GENERIC_DIR)/tclIndexObj.c \
+ $(GENERIC_DIR)/tclInterp.c \
+ $(GENERIC_DIR)/tclIO.c \
+ $(GENERIC_DIR)/tclIOCmd.c \
+ $(GENERIC_DIR)/tclIOGT.c \
+ $(GENERIC_DIR)/tclIOSock.c \
+ $(GENERIC_DIR)/tclIOUtil.c \
+ $(GENERIC_DIR)/tclLink.c \
+ $(GENERIC_DIR)/tclListObj.c \
+ $(GENERIC_DIR)/tclLiteral.c \
+ $(GENERIC_DIR)/tclLoad.c \
+ $(GENERIC_DIR)/tclMain.c \
+ $(GENERIC_DIR)/tclNamesp.c \
+ $(GENERIC_DIR)/tclNotify.c \
+ $(GENERIC_DIR)/tclObj.c \
+ $(GENERIC_DIR)/tclParse.c \
+ $(GENERIC_DIR)/tclParseExpr.c \
+ $(GENERIC_DIR)/tclPipe.c \
+ $(GENERIC_DIR)/tclPkg.c \
+ $(GENERIC_DIR)/tclPosixStr.c \
+ $(GENERIC_DIR)/tclPreserve.c \
+ $(GENERIC_DIR)/tclProc.c \
+ $(GENERIC_DIR)/tclRegexp.c \
+ $(GENERIC_DIR)/tclResolve.c \
+ $(GENERIC_DIR)/tclResult.c \
+ $(GENERIC_DIR)/tclScan.c \
+ $(GENERIC_DIR)/tclStubInit.c \
+ $(GENERIC_DIR)/tclStubLib.c \
+ $(GENERIC_DIR)/tclStringObj.c \
+ $(GENERIC_DIR)/tclTest.c \
+ $(GENERIC_DIR)/tclTestObj.c \
+ $(GENERIC_DIR)/tclTestProcBodyObj.c \
+ $(GENERIC_DIR)/tclThread.c \
+ $(GENERIC_DIR)/tclThreadAlloc.c \
+ $(GENERIC_DIR)/tclThreadJoin.c \
+ $(GENERIC_DIR)/tclTimer.c \
+ $(GENERIC_DIR)/tclUtil.c \
+ $(GENERIC_DIR)/tclVar.c
+
+STUB_SRCS = \
+ $(GENERIC_DIR)/tclStubLib.c
+
+UNIX_HDRS = \
+ $(UNIX_DIR)/tclUnixPort.h
+
+UNIX_SRCS = \
+ $(UNIX_DIR)/tclAppInit.c \
+ $(UNIX_DIR)/tclUnixChan.c \
+ $(UNIX_DIR)/tclUnixEvent.c \
+ $(UNIX_DIR)/tclUnixFCmd.c \
+ $(UNIX_DIR)/tclUnixFile.c \
+ $(UNIX_DIR)/tclUnixNotfy.c \
+ $(UNIX_DIR)/tclUnixPipe.c \
+ $(UNIX_DIR)/tclUnixSock.c \
+ $(UNIX_DIR)/tclUnixTest.c \
+ $(UNIX_DIR)/tclUnixThrd.c \
+ $(UNIX_DIR)/tclUnixTime.c \
+ $(UNIX_DIR)/tclUnixInit.c
+
+DL_SRCS = \
+ $(UNIX_DIR)/tclLoadAix.c \
+ $(UNIX_DIR)/tclLoadAout.c \
+ $(UNIX_DIR)/tclLoadDl.c \
+ $(UNIX_DIR)/tclLoadDl2.c \
+ $(UNIX_DIR)/tclLoadDld.c \
+ $(UNIX_DIR)/tclLoadDyld.c \
+ $(GENERIC_DIR)/tclLoadNone.c \
+ $(UNIX_DIR)/tclLoadOSF.c \
+ $(UNIX_DIR)/tclLoadShl.c
+
+MAC_OSX_SRCS = \
+ $(MAC_OSX_DIR)/tclMacOSXBundle.c
+
+# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those
+# files won't compile on the current machine, and they will cause
+# problems for things like "make depend".
+
+SRCS = $(GENERIC_SRCS) $(UNIX_SRCS) $(STUB_SRCS)
all: binaries libraries doc
-binaries: ${LIB_FILE} ${STUB_LIB_FILE} wish
+binaries: ${LIB_FILE} $(STUB_LIB_FILE) $(TCL_BUILD_EXP_FILE) tclsh
libraries:
-$(SRC_DIR)/doc/man.macros:
- chmod +x $(UNIX_DIR)/install-sh
- $(INSTALL_DATA) @TCL_SRC_DIR@/doc/man.macros $(SRC_DIR)/doc/man.macros
-
-doc: $(SRC_DIR)/doc/man.macros
+doc:
# The following target is configured by autoconf to generate either
-# a shared library or non-shared library for Tk.
-${LIB_FILE}: ${OBJS}
+# a shared library or non-shared library for Tcl.
+${LIB_FILE}: ${OBJS} ${STUB_LIB_FILE}
rm -f $@
@MAKE_LIB@
@@ -405,44 +461,33 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
rm -f $@
@MAKE_STUB_LIB@
-# Make target which outputs the list of the .o contained in the Tk lib
-# usefull to build a single big shared library containing Tcl/Tk and other
+# Make target which outputs the list of the .o contained in the Tcl lib
+# usefull to build a single big shared library containing Tcl and other
# extensions. used for the Tcl Plugin. -- dl
-tkLibObjs:
+# The dependency on OBJS is not there because we just want the list
+# of objects here, not actually building them
+tclLibObjs:
@echo ${OBJS}
-
# This targets actually build the objects needed for the lib in the above
# case
objs: ${OBJS}
-wish: $(WISH_OBJS) $(TK_LIB_FILE) $(TK_STUB_LIB_FILE)
- $(CC) $(LDFLAGS) $(WISH_OBJS) \
- @TK_BUILD_LIB_SPEC@ \
- $(WISH_LIBS) $(CC_SEARCH_FLAGS) -o wish
+tclsh: ${TCLSH_OBJS} ${TCL_LIB_FILE}
+ ${CC} ${LDFLAGS} ${TCLSH_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} \
+ ${CC_SEARCH_FLAGS} -o tclsh
# Resetting the LIB_RUNTIME_DIR below is required so that
-# the generated tktest executable gets the build directory
-# burned into its ld search path. This keeps tktest from
-# picking up an already installed version of the Tcl or
-# Tk shared libraries.
-
-tktest: $(TKTEST_OBJS) $(TK_LIB_FILE)
- $(MAKE) tktest-real LIB_RUNTIME_DIR=`pwd`:$(TCL_BIN_DIR)
-
-tktest-real:
- ${CC} $(LDFLAGS) $(TKTEST_OBJS) \
- @TK_BUILD_LIB_SPEC@ \
- $(WISH_LIBS) $(CC_SEARCH_FLAGS) -o tktest
-
-# FIXME: This xttest rule seems to be broken in a number of ways.
-# It should use CC_SEARCH_FLAGS, it does not include the shared
-# lib location logic from tktest, and it is not clear where this
-# test.o object file comes from.
-xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
- ${CC} $(LDFLAGS) test.o tkTest.o tkSquare.o \
- @TK_BUILD_LIB_SPEC@ \
- $(WISH_LIBS) $(LD_SEARCH_FLAGS) -lXt -o xttest
+# the generated tcltest executable gets the build directory
+# burned into its ld search path. This keeps tcltest from
+# picking up an already installed version of the Tcl library.
+
+tcltest: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${BUILD_DLTEST}
+ $(MAKE) tcltest-real LIB_RUNTIME_DIR=`pwd`
+
+tcltest-real:
+ ${CC} ${LDFLAGS} ${TCLTEST_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} \
+ ${CC_SEARCH_FLAGS} -o tcltest
# Note, in the target below TCL_LIBRARY needs to be set or else
# "make test" won't work in the case where the compilation directory
@@ -451,54 +496,93 @@ xttest: test.o tkTest.o tkSquare.o $(TK_LIB_FILE)
# args to tcltest, ie:
# % make test TESTFLAGS="-verbose bps -file fileName.test"
-test: tktest
- TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
- TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
- ./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 \
- $(TESTFLAGS) $(TCLTESTARGS)
-
-# Tests with different languages
-testlang: tktest
- TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
- TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
- for lang in $(LOCALES) ; \
- do \
- LANG=$(lang); export LANG; \
- ./tktest $(TOP_DIR)/tests/all.tcl -geometry +0+0 \
- $(TESTFLAGS) $(TCLTESTARGS); \
- done
+test: tcltest
+ @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \
+ TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
+ ./tcltest $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) $(TCLTESTARGS)
+
+# Useful target to launch a built tcltest with the proper path,...
+runtest: tcltest
+ @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \
+ TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
+ ./tcltest
+
+# Useful target for running the test suite with an unwritable current
+# directory...
+ro-test: tcltest
+ @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \
+ TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
+ echo 'exec chmod -w .;package require tcltest;tcltest::temporaryDirectory /tmp;source ../tests/all.tcl;exec chmod +w .' | ./tcltest
+
+# This target can be used to run tclsh from the build directory
+# via `make shell SCRIPT=/tmp/foo.tcl`
+shell: tclsh
+ @@LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@}; export @LD_LIBRARY_PATH_VAR@; \
+ TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
+ ./tclsh $(SCRIPT)
+
+# This target can be used to run tclsh inside either gdb or insight
+gdb: tclsh
+ @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@}" > gdb.run
+ @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run
+ $(GDB) ./tclsh --command=gdb.run
+ rm gdb.run
-# Useful target to launch a built tktest with the proper path,...
-runtest: tktest
- TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
- TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
- ./tktest
-
-# This target can be used to run wish from the build directory
-# via `make shell` or `make shell SCRIPT=/tmp/foo.tcl`
-shell: wish
- @LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:${@LD_LIBRARY_PATH_VAR@}; \
- export @LD_LIBRARY_PATH_VAR@; \
- TCL_LIBRARY=@TCL_SRC_DIR@/library; export TCL_LIBRARY; \
- TK_LIBRARY=@TK_SRC_DIR@/library; export TK_LIBRARY; \
- ./wish $(SCRIPT)
-
-# This target can be used to run wish inside either gdb or insight
-gdb: wish
- @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:${TCL_BIN_DIR}:${@LD_LIBRARY_PATH_VAR@}" > gdb.run
- @echo "set env TCL_LIBRARY=@TCL_SRC_DIR@/library" >> gdb.run
- @echo "set env TK_LIBRARY=@TK_SRC_DIR@/library" >> gdb.run
- gdb ./wish --command=gdb.run
+# This target can be used to run tclsh inside ddd
+ddd: tclsh
+ @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@}" > gdb.run
+ @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run
+ $(DDD) -command=gdb.run ./tclsh
rm gdb.run
-install: all install-binaries install-libraries install-demos install-doc
+# The following target outputs the name of the top-level source directory
+# for Tcl (it is used by Tk's configure script, for example). The
+# .NO_PARALLEL line is needed to avoid problems under Sun's "pmake".
+# Note: this target is now obsolete (use the autoconf variable
+# TCL_SRC_DIR from tclConfig.sh instead).
+
+.NO_PARALLEL: topDirName
+topDirName:
+ @cd $(TOP_DIR); pwd
+
+# The following target generates the file generic/tclDate.c
+# from the yacc grammar found in generic/tclGetDate.y. This is
+# only run by hand as yacc is not available in all environments.
+# The name of the .c file is different than the name of the .y file
+# so that make doesn't try to automatically regenerate the .c file.
+
+gendate:
+ yacc -l $(GENERIC_DIR)/tclGetDate.y
+ sed -e 's/yy/TclDate/g' -e '/^#include <values.h>/d' \
+ -e 's?SCCSID?RCS: @(#) ?' \
+ -e '/#ifdef __STDC__/,/#endif/d' -e '/TclDateerrlab:/d' \
+ -e '/TclDatenewstate:/d' -e '/#pragma/d' \
+ -e '/#include <inttypes.h>/d' -e 's/const /CONST /g' \
+ <y.tab.c >$(GENERIC_DIR)/tclDate.c
+ rm y.tab.c
+
+# The following target generates the shared libraries in dltest/ that
+# are used for testing; they are included as part of the "tcltest"
+# target (via the BUILD_DLTEST variable) if dynamic loading is supported
+# on this platform. The Makefile in the dltest subdirectory creates
+# the dltest.marker file in this directory after a successful build.
+
+dltest.marker:
+ cd dltest ; $(MAKE)
+
+install: install-binaries install-libraries install-doc
+
+install-strip:
+ $(MAKE) install \
+ INSTALL_PROGRAM="$(INSTALL_PROGRAM) ${INSTALL_STRIP_PROGRAM}" \
+ INSTALL_LIBRARY="$(INSTALL_LIBRARY) ${INSTALL_STRIP_LIBRARY}"
# Note: before running ranlib below, must cd to target directory because
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
-install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) wish
- @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) $(PKG_INSTALL_DIR); \
+install-binaries: binaries
+ @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
@@ -507,40 +591,28 @@ install-binaries: $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(TK_BUILD_EXP_FILE) wish
else true; \
fi; \
done;
- @if test ! -x $(UNIX_DIR)/install-sh; then \
- chmod +x $(UNIX_DIR)/install-sh; \
- fi
- @if test "x$(TK_SHARED_BUILD)" = "x1"; then \
- echo "Creating package index $(PKG_INDEX)"; \
- rm -f $(PKG_INDEX); \
- (\
- echo "if {[package vcompare [package provide Tcl]\
- $(TCLVERSION)] != 0} { return }";\
- echo "package ifneeded Tk $(VERSION)\
- [list load [file join \$$dir .. $(TK_LIB_FILE)] Tk]";\
- ) > $(PKG_INDEX); \
+ @if test ! -x $(SRC_DIR)/install-sh; then \
+ chmod +x $(SRC_DIR)/install-sh; \
fi
@echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/"
@@INSTALL_LIB@
@chmod 555 $(LIB_INSTALL_DIR)/$(LIB_FILE)
- @echo "Installing wish as $(BIN_INSTALL_DIR)/wish$(VERSION)"
- @$(INSTALL_PROGRAM) wish $(BIN_INSTALL_DIR)/wish$(VERSION)
- @echo "Installing tkConfig.sh to $(LIB_INSTALL_DIR)/"
- @$(INSTALL_DATA) tkConfig.sh $(LIB_INSTALL_DIR)/tkConfig.sh
- @if test "$(TK_BUILD_EXP_FILE)" != ""; then \
- echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
- $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
- $(LIB_INSTALL_DIR)/$(TK_EXP_FILE); \
- fi
+ @if test "$(TCL_BUILD_EXP_FILE)" != ""; then \
+ echo "Installing $(TCL_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
+ $(INSTALL_DATA) $(TCL_BUILD_EXP_FILE) \
+ $(LIB_INSTALL_DIR)/$(TCL_EXP_FILE); \
+ fi
+ @echo "Installing tclsh as $(BIN_INSTALL_DIR)/tclsh$(VERSION)"
+ @$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
+ @echo "Installing tclConfig.sh to $(LIB_INSTALL_DIR)/"
+ @$(INSTALL_DATA) tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh
@if test "$(STUB_LIB_FILE)" != "" ; then \
echo "Installing $(STUB_LIB_FILE) to $(LIB_INSTALL_DIR)/"; \
@INSTALL_STUB_LIB@ ; \
fi
-install-libraries:
- @for i in $(INCLUDE_INSTALL_DIR) \
- $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \
- $(SCRIPT_INSTALL_DIR)/msgs; \
+install-libraries: libraries
+ @for i in $(INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR); \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
@@ -549,69 +621,60 @@ install-libraries:
else true; \
fi; \
done;
- @if test ! -x $(UNIX_DIR)/install-sh; then \
- chmod +x $(UNIX_DIR)/install-sh; \
+ @for i in http2.4 http1.0 opt0.4 encoding msgcat1.3 tcltest2.2; \
+ do \
+ if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \
+ echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
+ mkdir -p $(SCRIPT_INSTALL_DIR)/$$i; \
+ chmod 755 $(SCRIPT_INSTALL_DIR)/$$i; \
+ else true; \
+ fi; \
+ done;
+ @if test ! -x $(SRC_DIR)/install-sh; then \
+ chmod +x $(SRC_DIR)/install-sh; \
fi
@echo "Installing header files";
- @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h \
- $(GENERIC_DIR)/tkPlatDecls.h ; \
+ @for i in $(GENERIC_DIR)/tcl.h $(GENERIC_DIR)/tclDecls.h \
+ $(GENERIC_DIR)/tclPlatDecls.h ; \
do \
$(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
done;
@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
- @for i in $(SRC_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \
- $(SRC_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
+ @for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
do \
$(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
done;
- @echo "Installing library images directory";
- @for i in $(SRC_DIR)/library/images/*; \
+ @echo "Installing library http1.0 directory";
+ @for j in $(TOP_DIR)/library/http1.0/*.tcl ; \
do \
- if [ -f $$i ] ; then \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \
- fi; \
+ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/http1.0; \
done;
- @echo "Installing translation directory";
- @for i in $(SRC_DIR)/library/msgs/*.msg; \
+ @echo "Installing library http2.4 directory";
+ @for j in $(TOP_DIR)/library/http/*.tcl ; \
do \
- if [ -f $$i ] ; then \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/msgs; \
- fi; \
- done;
-
-install-demos:
- @for i in $(SCRIPT_INSTALL_DIR) \
- $(SCRIPT_INSTALL_DIR)/demos \
- $(SCRIPT_INSTALL_DIR)/demos/images ; \
- do \
- if [ ! -d $$i ] ; then \
- echo "Making directory $$i"; \
- mkdir -p $$i; \
- chmod 755 $$i; \
- else true; \
- fi; \
+ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/http2.4; \
done;
- @echo "Installing demos to $(SCRIPT_INSTALL_DIR)/demos/";
- @for i in $(SRC_DIR)/library/demos/*; \
+ @echo "Installing library opt0.4 directory";
+ @for j in $(TOP_DIR)/library/opt/*.tcl ; \
do \
- if [ -f $$i ] ; then \
- sed -e '3 s|exec wish|exec wish$(VERSION)|' \
- $$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \
- fi; \
+ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/opt0.4; \
done;
- @for i in $(DEMOPROGS); \
+ @echo "Installing library msgcat1.3 directory";
+ @for j in $(TOP_DIR)/library/msgcat/*.tcl ; \
do \
- chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \
+ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/msgcat1.3; \
done;
- @echo "Installing demo images";
- @for i in $(SRC_DIR)/library/demos/images/*; \
+ @echo "Installing library tcltest2.2 directory";
+ @for j in $(TOP_DIR)/library/tcltest/*.tcl ; \
do \
- if [ -f $$i ] ; then \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
- fi; \
+ $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/tcltest2.2; \
done;
+ @echo "Installing library encoding directory";
+ @for i in $(TOP_DIR)/library/encoding/*.enc ; do \
+ $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/encoding; \
+ done;
-install-doc:
+install-doc: doc
@if test ! -x $(UNIX_DIR)/mkLinks; then \
chmod +x $(UNIX_DIR)/mkLinks; \
fi
@@ -625,7 +688,7 @@ install-doc:
fi; \
done;
@echo "Installing top-level (.1) docs";
- @cd $(SRC_DIR)/doc; for i in *.1; \
+ @cd $(TOP_DIR)/doc; for i in *.1; \
do \
rm -f $(MAN1_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
@@ -635,17 +698,17 @@ install-doc:
@echo "Cross-linking top-level (.1) docs";
@$(UNIX_DIR)/mkLinks $(MKLINKS_FLAGS) $(MAN1_INSTALL_DIR)
@echo "Installing C API (.3) docs";
- @cd $(SRC_DIR)/doc; for i in *.3; \
+ @cd $(TOP_DIR)/doc; for i in *.3; \
do \
rm -f $(MAN3_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN3_INSTALL_DIR)/$$i; \
chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
done;
- @echo "Cross-linking top-level (.3) docs";
+ @echo "Cross-linking C API (.3) docs";
@$(UNIX_DIR)/mkLinks $(MKLINKS_FLAGS) $(MAN3_INSTALL_DIR)
@echo "Installing command (.n) docs";
- @cd $(SRC_DIR)/doc; for i in *.n; \
+ @cd $(TOP_DIR)/doc; for i in *.n; \
do \
rm -f $(MANN_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
@@ -655,357 +718,413 @@ install-doc:
@echo "Cross-linking command (.n) docs";
@$(UNIX_DIR)/mkLinks $(MKLINKS_FLAGS) $(MANN_INSTALL_DIR)
-Makefile: $(UNIX_DIR)/Makefile.in
+Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
$(SHELL) config.status
clean:
- rm -f *.a *.o libtk* core errs *~ \#* TAGS *.E a.out errors \
- tktest wish config.info lib.exp
+ rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
+ errors tclsh tcltest lib.exp
+ cd dltest ; $(MAKE) clean
distclean: clean
- rm -f Makefile config.status config.cache config.log tkConfig.sh \
+ rm -rf Makefile config.status config.cache config.log tclConfig.sh \
$(PACKAGE).* prototype
+ cd dltest ; $(MAKE) distclean
depend:
makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
-# Test binaries. The rule for tkTestInit.o is complicated because
-# it is is compiled from tkAppInit.c. Can't use the "-o" option
-# because this doesn't work on some strange compilers (e.g. UnixWare).
+# Test binaries. The rules for tclTestInit.o and xtTestInit.o are
+# complicated because they are compiled from tclAppInit.c. Can't use
+# the "-o" option because this doesn't work on some strange compilers
+# (e.g. UnixWare).
-tkTestInit.o: $(UNIX_DIR)/tkAppInit.c
- @if test -f tkAppInit.o ; then \
- rm -f tkAppInit.sav; \
- mv tkAppInit.o tkAppInit.sav; \
+tclTestInit.o: $(UNIX_DIR)/tclAppInit.c
+ @if test -f tclAppInit.o ; then \
+ rm -f tclAppInit.sav; \
+ mv tclAppInit.o tclAppInit.sav; \
fi;
- $(CC) -c $(CC_SWITCHES_NO_STUBS) -DTK_TEST $(UNIX_DIR)/tkAppInit.c
- rm -f tkTestInit.o
- mv tkAppInit.o tkTestInit.o
- @if test -f tkAppInit.sav ; then \
- mv tkAppInit.sav tkAppInit.o; \
+ $(CC) -c $(CC_SWITCHES) \
+ -DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \
+ -DTCL_TEST $(UNIX_DIR)/tclAppInit.c
+ rm -f tclTestInit.o
+ mv tclAppInit.o tclTestInit.o
+ @if test -f tclAppInit.sav ; then \
+ mv tclAppInit.sav tclAppInit.o; \
fi;
-tkAppInit.o: $(UNIX_DIR)/tkAppInit.c
- $(CC) -c $(CC_SWITCHES_NO_STUBS) $(UNIX_DIR)/tkAppInit.c
+xtTestInit.o: $(UNIX_DIR)/tclAppInit.c
+ @if test -f tclAppInit.o ; then \
+ rm -f tclAppInit.sav; \
+ mv tclAppInit.o tclAppInit.sav; \
+ fi;
+ $(CC) -c $(CC_SWITCHES) \
+ -DTCL_BUILDTIME_LIBRARY="\"${TCL_BUILDTIME_LIBRARY}\"" \
+ -DTCL_TEST -DTCL_XT_TEST $(UNIX_DIR)/tclAppInit.c
+ rm -f xtTestInit.o
+ mv tclAppInit.o xtTestInit.o
+ @if test -f tclAppInit.sav ; then \
+ mv tclAppInit.sav tclAppInit.o; \
+ fi;
-tk3d.o: $(GENERIC_DIR)/tk3d.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tk3d.c
+# Object files used on all Unix systems:
-tkArgv.o: $(GENERIC_DIR)/tkArgv.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkArgv.c
+REGHDRS=$(GENERIC_DIR)/regex.h $(GENERIC_DIR)/regguts.h \
+ $(GENERIC_DIR)/regcustom.h
+regcomp.o: $(REGHDRS) $(GENERIC_DIR)/regcomp.c $(GENERIC_DIR)/regc_lex.c \
+ $(GENERIC_DIR)/regc_color.c $(GENERIC_DIR)/regc_locale.c \
+ $(GENERIC_DIR)/regc_nfa.c $(GENERIC_DIR)/regc_cvec.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regcomp.c
-tkAtom.o: $(GENERIC_DIR)/tkAtom.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkAtom.c
+regexec.o: $(REGHDRS) $(GENERIC_DIR)/regexec.c $(GENERIC_DIR)/rege_dfa.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regexec.c
-tkBind.o: $(GENERIC_DIR)/tkBind.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBind.c
+regfree.o: $(REGHDRS) $(GENERIC_DIR)/regfree.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regfree.c
-tkBitmap.o: $(GENERIC_DIR)/tkBitmap.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkBitmap.c
+regerror.o: $(REGHDRS) $(GENERIC_DIR)/regerrs.h $(GENERIC_DIR)/regerror.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regerror.c
-tkClipboard.o: $(GENERIC_DIR)/tkClipboard.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkClipboard.c
+tclAppInit.o: $(UNIX_DIR)/tclAppInit.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclAppInit.c
-tkCmds.o: $(GENERIC_DIR)/tkCmds.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCmds.c
+# On unix we want to use the normal malloc/free implementation, so we
+# specifically set the USE_TCLALLOC flag.
-tkColor.o: $(GENERIC_DIR)/tkColor.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkColor.c
+tclAlloc.o: $(GENERIC_DIR)/tclAlloc.c
+ $(CC) -c $(CC_SWITCHES) -DUSE_TCLALLOC=0 $(GENERIC_DIR)/tclAlloc.c
-tkConfig.o: $(GENERIC_DIR)/tkConfig.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConfig.c
+tclAsync.o: $(GENERIC_DIR)/tclAsync.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclAsync.c
-tkConsole.o: $(GENERIC_DIR)/tkConsole.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkConsole.c
+tclBasic.o: $(GENERIC_DIR)/tclBasic.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBasic.c
-tkCursor.o: $(GENERIC_DIR)/tkCursor.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCursor.c
+tclBinary.o: $(GENERIC_DIR)/tclBinary.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBinary.c
-tkError.o: $(GENERIC_DIR)/tkError.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkError.c
+tclCkalloc.o: $(GENERIC_DIR)/tclCkalloc.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCkalloc.c
-tkEvent.o: $(GENERIC_DIR)/tkEvent.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEvent.c
+tclClock.o: $(GENERIC_DIR)/tclClock.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclClock.c
-tkFocus.o: $(GENERIC_DIR)/tkFocus.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFocus.c
+tclCmdAH.o: $(GENERIC_DIR)/tclCmdAH.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdAH.c
-tkFont.o: $(GENERIC_DIR)/tkFont.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFont.c
+tclCmdIL.o: $(GENERIC_DIR)/tclCmdIL.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdIL.c
-tkGet.o: $(GENERIC_DIR)/tkGet.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGet.c
+tclCmdMZ.o: $(GENERIC_DIR)/tclCmdMZ.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdMZ.c
-tkGC.o: $(GENERIC_DIR)/tkGC.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGC.c
+tclDate.o: $(GENERIC_DIR)/tclDate.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclDate.c
-tkGeometry.o: $(GENERIC_DIR)/tkGeometry.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGeometry.c
+tclCompCmds.o: $(GENERIC_DIR)/tclCompCmds.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompCmds.c
-tkGrab.o: $(GENERIC_DIR)/tkGrab.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrab.c
+tclCompExpr.o: $(GENERIC_DIR)/tclCompExpr.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompExpr.c
-tkGrid.o: $(GENERIC_DIR)/tkGrid.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkGrid.c
+tclCompile.o: $(GENERIC_DIR)/tclCompile.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompile.c
-tkMain.o: $(GENERIC_DIR)/tkMain.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMain.c
+tclEncoding.o: $(GENERIC_DIR)/tclEncoding.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEncoding.c
-tkObj.o: $(GENERIC_DIR)/tkObj.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkObj.c
+tclEnv.o: $(GENERIC_DIR)/tclEnv.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEnv.c
-tkOldConfig.o: $(GENERIC_DIR)/tkOldConfig.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOldConfig.c
+tclEvent.o: $(GENERIC_DIR)/tclEvent.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEvent.c
-tkOption.o: $(GENERIC_DIR)/tkOption.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkOption.c
+tclExecute.o: $(GENERIC_DIR)/tclExecute.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclExecute.c
-tkPack.o: $(GENERIC_DIR)/tkPack.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPack.c
+tclFCmd.o: $(GENERIC_DIR)/tclFCmd.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFCmd.c
-tkPlace.o: $(GENERIC_DIR)/tkPlace.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPlace.c
+tclFileName.o: $(GENERIC_DIR)/tclFileName.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFileName.c
-tkSelect.o: $(GENERIC_DIR)/tkSelect.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkSelect.c
+tclGet.o: $(GENERIC_DIR)/tclGet.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclGet.c
-tkStyle.o: $(GENERIC_DIR)/tkStyle.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStyle.c
+tclHash.o: $(GENERIC_DIR)/tclHash.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHash.c
-tkUtil.o: $(GENERIC_DIR)/tkUtil.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUtil.c
+tclHistory.o: $(GENERIC_DIR)/tclHistory.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHistory.c
-tkVisual.o: $(GENERIC_DIR)/tkVisual.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkVisual.c
+tclIndexObj.o: $(GENERIC_DIR)/tclIndexObj.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIndexObj.c
-tkWindow.o: $(GENERIC_DIR)/tkWindow.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkWindow.c
+tclInterp.o: $(GENERIC_DIR)/tclInterp.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclInterp.c
-tkButton.o: $(GENERIC_DIR)/tkButton.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkButton.c
+tclIO.o: $(GENERIC_DIR)/tclIO.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIO.c
-tkEntry.o: $(GENERIC_DIR)/tkEntry.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkEntry.c
+tclIOCmd.o: $(GENERIC_DIR)/tclIOCmd.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOCmd.c
-tkFrame.o: $(GENERIC_DIR)/tkFrame.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkFrame.c
+tclIOGT.o: $(GENERIC_DIR)/tclIOGT.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOGT.c
-tkListbox.o: $(GENERIC_DIR)/tkListbox.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkListbox.c
+tclIOSock.o: $(GENERIC_DIR)/tclIOSock.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOSock.c
-tkMenu.o: $(GENERIC_DIR)/tkMenu.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenu.c
+tclIOUtil.o: $(GENERIC_DIR)/tclIOUtil.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOUtil.c
-tkMenubutton.o: $(GENERIC_DIR)/tkMenubutton.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenubutton.c
+tclLink.o: $(GENERIC_DIR)/tclLink.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c
-tkMenuDraw.o: $(GENERIC_DIR)/tkMenuDraw.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMenuDraw.c
+tclListObj.o: $(GENERIC_DIR)/tclListObj.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c
-tkMessage.o: $(GENERIC_DIR)/tkMessage.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkMessage.c
+tclLiteral.o: $(GENERIC_DIR)/tclLiteral.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLiteral.c
-tkPanedWindow.o: $(GENERIC_DIR)/tkPanedWindow.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkPanedWindow.c
+tclObj.o: $(GENERIC_DIR)/tclObj.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclObj.c
-tkScale.o: $(GENERIC_DIR)/tkScale.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScale.c
+tclLoad.o: $(GENERIC_DIR)/tclLoad.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoad.c
-tkScrollbar.o: $(GENERIC_DIR)/tkScrollbar.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkScrollbar.c
+tclLoadAix.o: $(UNIX_DIR)/tclLoadAix.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAix.c
-tkSquare.o: $(GENERIC_DIR)/tkSquare.c
- $(CC) -c $(CC_SWITCHES_NO_STUBS) $(GENERIC_DIR)/tkSquare.c
+tclLoadAout.o: $(UNIX_DIR)/tclLoadAout.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAout.c
-tkCanvas.o: $(GENERIC_DIR)/tkCanvas.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvas.c
+tclLoadDl.o: $(UNIX_DIR)/tclLoadDl.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl.c
-tkCanvArc.o: $(GENERIC_DIR)/tkCanvArc.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvArc.c
+tclLoadDl2.o: $(UNIX_DIR)/tclLoadDl2.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl2.c
-tkCanvBmap.o: $(GENERIC_DIR)/tkCanvBmap.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvBmap.c
+tclLoadDld.o: $(UNIX_DIR)/tclLoadDld.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDld.c
-tkCanvImg.o: $(GENERIC_DIR)/tkCanvImg.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvImg.c
+tclLoadDyld.o: $(UNIX_DIR)/tclLoadDyld.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDyld.c
-tkCanvLine.o: $(GENERIC_DIR)/tkCanvLine.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvLine.c
+tclLoadNone.o: $(GENERIC_DIR)/tclLoadNone.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoadNone.c
-tkCanvPoly.o: $(GENERIC_DIR)/tkCanvPoly.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPoly.c
+tclLoadOSF.o: $(UNIX_DIR)/tclLoadOSF.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadOSF.c
-tkCanvPs.o: $(GENERIC_DIR)/tkCanvPs.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvPs.c
+tclLoadShl.o: $(UNIX_DIR)/tclLoadShl.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadShl.c
-tkCanvText.o: $(GENERIC_DIR)/tkCanvText.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvText.c
+tclMain.o: $(GENERIC_DIR)/tclMain.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclMain.c
-tkCanvUtil.o: $(GENERIC_DIR)/tkCanvUtil.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvUtil.c
+tclNamesp.o: $(GENERIC_DIR)/tclNamesp.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNamesp.c
-tkCanvWind.o: $(GENERIC_DIR)/tkCanvWind.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkCanvWind.c
+tclNotify.o: $(GENERIC_DIR)/tclNotify.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNotify.c
-tkRectOval.o: $(GENERIC_DIR)/tkRectOval.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkRectOval.c
+tclParse.o: $(GENERIC_DIR)/tclParse.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclParse.c
-tkTrig.o: $(GENERIC_DIR)/tkTrig.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTrig.c
+tclParseExpr.o: $(GENERIC_DIR)/tclParseExpr.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclParseExpr.c
-tkImage.o: $(GENERIC_DIR)/tkImage.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImage.c
+tclPanic.o: $(GENERIC_DIR)/tclPanic.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPanic.c
-tkImgBmap.o: $(GENERIC_DIR)/tkImgBmap.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgBmap.c
+tclPipe.o: $(GENERIC_DIR)/tclPipe.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPipe.c
-tkImgGIF.o: $(GENERIC_DIR)/tkImgGIF.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgGIF.c
+tclPkg.o: $(GENERIC_DIR)/tclPkg.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPkg.c
-tkImgPPM.o: $(GENERIC_DIR)/tkImgPPM.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPPM.c
+tclPosixStr.o: $(GENERIC_DIR)/tclPosixStr.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPosixStr.c
-tkImgPhoto.o: $(GENERIC_DIR)/tkImgPhoto.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkImgPhoto.c
+tclPreserve.o: $(GENERIC_DIR)/tclPreserve.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPreserve.c
-tkTest.o: $(GENERIC_DIR)/tkTest.c
- $(CC) -c $(CC_SWITCHES_NO_STUBS) $(GENERIC_DIR)/tkTest.c
+tclProc.o: $(GENERIC_DIR)/tclProc.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclProc.c
-tkText.o: $(GENERIC_DIR)/tkText.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkText.c
+tclRegexp.o: $(GENERIC_DIR)/tclRegexp.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclRegexp.c
-tkTextBTree.o: $(GENERIC_DIR)/tkTextBTree.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextBTree.c
+tclResolve.o: $(GENERIC_DIR)/tclResolve.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResolve.c
-tkTextDisp.o: $(GENERIC_DIR)/tkTextDisp.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextDisp.c
+tclResult.o: $(GENERIC_DIR)/tclResult.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResult.c
-tkTextImage.o: $(GENERIC_DIR)/tkTextImage.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextImage.c
+tclScan.o: $(GENERIC_DIR)/tclScan.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclScan.c
-tkTextIndex.o: $(GENERIC_DIR)/tkTextIndex.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextIndex.c
+tclStringObj.o: $(GENERIC_DIR)/tclStringObj.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStringObj.c
-tkTextMark.o: $(GENERIC_DIR)/tkTextMark.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextMark.c
+tclStubInit.o: $(GENERIC_DIR)/tclStubInit.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStubInit.c
-tkTextTag.o: $(GENERIC_DIR)/tkTextTag.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextTag.c
+tclUtil.o: $(GENERIC_DIR)/tclUtil.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtil.c
-tkTextWind.o: $(GENERIC_DIR)/tkTextWind.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkTextWind.c
+tclUtf.o: $(GENERIC_DIR)/tclUtf.c $(GENERIC_DIR)/tclUniData.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtf.c
-tkStubInit.o: $(GENERIC_DIR)/tkStubInit.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubInit.c
+tclVar.o: $(GENERIC_DIR)/tclVar.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclVar.c
-# Stub library binaries, these must be compiled for use in a shared library
-# even though they will be placed in a static archive
+tclTest.o: $(GENERIC_DIR)/tclTest.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTest.c
-tkStubLib.o: $(GENERIC_DIR)/tkStubLib.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubLib.c
+tclTestObj.o: $(GENERIC_DIR)/tclTestObj.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTestObj.c
-tkStubImg.o: $(GENERIC_DIR)/tkStubImg.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkStubImg.c
+tclTestProcBodyObj.o: $(GENERIC_DIR)/tclTestProcBodyObj.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTestProcBodyObj.c
-tkUndo.o: $(GENERIC_DIR)/tkUndo.c
- $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tkUndo.c
+tclTimer.o: $(GENERIC_DIR)/tclTimer.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTimer.c
-tkUnix.o: $(UNIX_DIR)/tkUnix.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix.c
+tclThread.o: $(GENERIC_DIR)/tclThread.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThread.c
-tkUnix3d.o: $(UNIX_DIR)/tkUnix3d.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnix3d.c
+tclThreadAlloc.o: $(GENERIC_DIR)/tclThreadAlloc.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadAlloc.c
-tkUnixButton.o: $(UNIX_DIR)/tkUnixButton.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixButton.c
+tclThreadJoin.o: $(GENERIC_DIR)/tclThreadJoin.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadJoin.c
-tkUnixColor.o: $(UNIX_DIR)/tkUnixColor.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixColor.c
+tclThreadTest.o: $(GENERIC_DIR)/tclThreadTest.c
+ $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclThreadTest.c
-tkUnixConfig.o: $(UNIX_DIR)/tkUnixConfig.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixConfig.c
+tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixChan.c
-tkUnixCursor.o: $(UNIX_DIR)/tkUnixCursor.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixCursor.c
+tclUnixEvent.o: $(UNIX_DIR)/tclUnixEvent.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixEvent.c
-tkUnixDraw.o: $(UNIX_DIR)/tkUnixDraw.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixDraw.c
+tclUnixFCmd.o: $(UNIX_DIR)/tclUnixFCmd.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFCmd.c
-tkUnixEmbed.o: $(UNIX_DIR)/tkUnixEmbed.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEmbed.c
+tclUnixFile.o: $(UNIX_DIR)/tclUnixFile.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFile.c
-tkUnixEvent.o: $(UNIX_DIR)/tkUnixEvent.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixEvent.c
+tclUnixNotfy.o: $(UNIX_DIR)/tclUnixNotfy.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixNotfy.c
-tkUnixFocus.o: $(UNIX_DIR)/tkUnixFocus.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFocus.c
+tclUnixPipe.o: $(UNIX_DIR)/tclUnixPipe.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixPipe.c
-tkUnixFont.o: $(UNIX_DIR)/tkUnixFont.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixFont.c
+tclUnixSock.o: $(UNIX_DIR)/tclUnixSock.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixSock.c
-tkUnixInit.o: $(UNIX_DIR)/tkUnixInit.c $(GENERIC_DIR)/tkInitScript.h tkConfig.sh
- $(CC) -c $(CC_SWITCHES) -DTK_LIBRARY=\"${TK_LIBRARY}\" \
- $(UNIX_DIR)/tkUnixInit.c
+tclUnixTest.o: $(UNIX_DIR)/tclUnixTest.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTest.c
-tkUnixKey.o: $(UNIX_DIR)/tkUnixKey.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixKey.c
+tclUnixThrd.o: $(UNIX_DIR)/tclUnixThrd.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixThrd.c
-tkUnixMenu.o: $(UNIX_DIR)/tkUnixMenu.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenu.c
+tclUnixTime.o: $(UNIX_DIR)/tclUnixTime.c
+ $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTime.c
-tkUnixMenubu.o: $(UNIX_DIR)/tkUnixMenubu.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixMenubu.c
+tclUnixInit.o: $(UNIX_DIR)/tclUnixInit.c $(GENERIC_DIR)/tclInitScript.h tclConfig.sh
+ $(CC) -c $(CC_SWITCHES) -DTCL_LIBRARY=\"${TCL_LIBRARY}\" \
+ -DTCL_PACKAGE_PATH="\"${TCL_PACKAGE_PATH}\"" \
+ $(UNIX_DIR)/tclUnixInit.c
-tkUnixScale.o: $(UNIX_DIR)/tkUnixScale.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScale.c
+# This is the CFBundle interface. It is only used on Mac OS X.
+tclMacOSXBundle.o: $(MAC_OSX_DIR)/tclMacOSXBundle.c
+ $(CC) -c $(CC_SWITCHES) $(MAC_OSX_DIR)/tclMacOSXBundle.c
-tkUnixScrlbr.o: $(UNIX_DIR)/tkUnixScrlbr.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixScrlbr.c
+# The following targets are not completely general. They are provide
+# purely for documentation purposes so people who are interested in
+# the Xt based notifier can modify them to suit their own installation.
-tkUnixSelect.o: $(UNIX_DIR)/tkUnixSelect.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSelect.c
+xttest: ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \
+ @DL_OBJS@ ${BUILD_DLTEST}
+ ${CC} ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \
+ @DL_OBJS@ @TCL_BUILD_LIB_SPEC@ ${LIBS} \
+ ${CC_SEARCH_FLAGS} -L/usr/openwin/lib -lXt -o xttest
-tkUnixSend.o: $(UNIX_DIR)/tkUnixSend.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixSend.c
+tclXtNotify.o: $(UNIX_DIR)/tclXtNotify.c
+ $(CC) -c $(CC_SWITCHES) -I/usr/openwin/include \
+ $(UNIX_DIR)/tclXtNotify.c
-tkUnixWm.o: $(UNIX_DIR)/tkUnixWm.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixWm.c
+tclXtTest.o: $(UNIX_DIR)/tclXtTest.c
+ $(CC) -c $(CC_SWITCHES) -I/usr/openwin/include \
+ $(UNIX_DIR)/tclXtTest.c
-tkUnixXId.o: $(UNIX_DIR)/tkUnixXId.c
- $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tkUnixXId.c
+# compat binaries, these must be compiled for use in a shared library
+# even though they may be placed in a static executable or library. Since
+# they are included in both the tcl library and the stub library, they
+# need to be relocatable.
-.c.o:
- $(CC) -c $(CC_SWITCHES) $<
+fixstrtod.o: $(COMPAT_DIR)/fixstrtod.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/fixstrtod.c
-#
-# Target to check for proper usage of UCHAR macro.
-#
+opendir.o: $(COMPAT_DIR)/opendir.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/opendir.c
-checkuchar:
- -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
+memcmp.o: $(COMPAT_DIR)/memcmp.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/memcmp.c
-#
-# Target to make sure that only symbols with "Tk" prefixes are
-# exported.
-#
+strncasecmp.o: $(COMPAT_DIR)/strncasecmp.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strncasecmp.c
+
+strstr.o: $(COMPAT_DIR)/strstr.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strstr.c
+
+strtod.o: $(COMPAT_DIR)/strtod.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtod.c
-checkexports: $(TK_LIB_FILE)
- -nm -p $(TK_LIB_FILE) | awk '$$2 ~ /[TDB]/ { print $$3 }' | sort -n | grep -v '^[Tt]k'
+strtol.o: $(COMPAT_DIR)/strtol.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtol.c
+strtoll.o: $(COMPAT_DIR)/strtoll.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoll.c
+
+strtoul.o: $(COMPAT_DIR)/strtoul.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoul.c
+
+strtoull.o: $(COMPAT_DIR)/strtoull.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/strtoull.c
+
+tmpnam.o: $(COMPAT_DIR)/tmpnam.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/tmpnam.c
+
+waitpid.o: $(COMPAT_DIR)/waitpid.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(COMPAT_DIR)/waitpid.c
+
+# Stub library binaries, these must be compiled for use in a shared library
+# even though they will be placed in a static archive
+
+
+tclStubLib.o: $(GENERIC_DIR)/tclStubLib.c
+ $(CC) -c $(STUB_CC_SWITCHES) $(GENERIC_DIR)/tclStubLib.c
+
+.c.o:
+ $(CC) -c $(CC_SWITCHES) $<
#
-# Regenerate the stubs files.
+# Target to regenerate header files and stub files from the *.decls tables.
#
-$(GENERIC_DIR)/tkStubInit.c: $(GENERIC_DIR)/tk.decls \
- $(GENERIC_DIR)/tkInt.decls
- @echo "Warning: tkStubInit.c may be out of date."
+$(GENERIC_DIR)/tclStubInit.c: $(GENERIC_DIR)/tcl.decls \
+ $(GENERIC_DIR)/tclInt.decls
+ @echo "Warning: tclStubInit.c may be out of date."
@echo "Developers may want to run \"make genstubs\" to regenerate."
@echo "This warning can be safely ignored, do not report as a bug!"
genstubs:
$(TCL_EXE) $(TOOL_DIR)/genStubs.tcl $(GENERIC_DIR) \
- $(GENERIC_DIR)/tk.decls $(GENERIC_DIR)/tkInt.decls
+ $(GENERIC_DIR)/tcl.decls $(GENERIC_DIR)/tclInt.decls
#
# Target to check that all exported functions have an entry in the stubs
@@ -1013,10 +1132,10 @@ genstubs:
#
checkstubs:
- -@for i in `nm -p $(TK_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \
+ -@for i in `nm -p $(TCL_LIB_FILE) | awk '$$2 ~ /T/ { print $$3 }' \
| sort -n`; do \
match=0; \
- for j in $(TK_DECLS); do \
+ for j in $(TCL_DECLS); do \
if [ `grep -c $$i $$j` -gt 0 ]; then \
match=1; \
fi; \
@@ -1024,160 +1143,167 @@ checkstubs:
if [ $$match -eq 0 ]; then echo $$i; fi \
done
+#
+# Target to check that all public APIs which are not command
+# implementations have an entry in section three of the distributed
+# manpages.
+#
+
+checkdoc:
+ -@for i in `nm -p $(TCL_LIB_FILE) | awk '$$3 ~ /Tcl_/ { print $$3 }' \
+ | grep -v 'Cmd$$' | sort -n`; do \
+ match=0; \
+ for j in $(TOP_DIR)/doc/*.3; do \
+ if [ `grep '\-' $$j | grep -c $$i` -gt 0 ]; then \
+ match=1; \
+ fi; \
+ done; \
+ if [ $$match -eq 0 ]; then echo $$i; fi \
+ done
+
+#
+# Target to check for proper usage of UCHAR macro.
+#
+
+checkuchar:
+ -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
#
-# Target to create a Tk RPM for Linux. Requires that you be on a Linux
+# Target to make sure that only symbols with "Tcl" prefixes are
+# exported.
+#
+
+checkexports: $(TCL_LIB_FILE)
+ -nm -p $(TCL_LIB_FILE) | awk '$$2 ~ /[TDB]/ { print $$3 }' | sort -n | grep -v '^[Tt]cl'
+
+#
+# Target to create a Tcl RPM for Linux. Requires that you be on a Linux
# system.
#
rpm: all /bin/rpm
rm -f THIS.TCL.SPEC
- echo "%define _builddir `pwd`" > THIS.TK.SPEC
- echo "%define _rpmdir `pwd`/RPMS" >> THIS.TK.SPEC
- cat tk.spec >> THIS.TK.SPEC
+ echo "%define _builddir `pwd`" > THIS.TCL.SPEC
+ echo "%define _rpmdir `pwd`/RPMS" >> THIS.TCL.SPEC
+ cat tcl.spec >> THIS.TCL.SPEC
mkdir -p RPMS/i386
- rpm -bb THIS.TK.SPEC
+ rpm -bb THIS.TCL.SPEC
mv RPMS/i386/*.rpm .
- rm -rf RPMS THIS.TK.SPEC
+ rm -rf RPMS THIS.TCL.SPEC
mklinks:
- $(TCL_EXE) $(TCLDIR)/unix/mkLinks.tcl \
+ $(TCL_EXE) $(UNIX_DIR)/mkLinks.tcl \
$(UNIX_DIR)/../doc/*.[13n] > $(UNIX_DIR)/mkLinks
chmod +x $(UNIX_DIR)/mkLinks
#
-# Target to create a proper Tk distribution from information in the
+# Target to create a proper Tcl distribution from information in the
# master source directory. DISTDIR must be defined to indicate where
-# to put the distribution. DISTDIR must be an absolute path name.
+# to put the distribution.
#
DISTROOT = /tmp/dist
-DISTNAME = tk${VERSION}${PATCH_LEVEL}
-ZIPNAME = tk${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}.zip
-DISTDIR = $(DISTROOT)/$(DISTNAME)
-TCLDIR = @TCL_SRC_DIR@
+DISTNAME = tcl${VERSION}${PATCH_LEVEL}
+ZIPNAME = tcl${MAJOR_VERSION}${MINOR_VERSION}${PATCH_LEVEL}.zip
+DISTDIR = $(DISTROOT)/$(DISTNAME)
$(UNIX_DIR)/configure: $(UNIX_DIR)/configure.in
autoconf $(UNIX_DIR)/configure.in > $(UNIX_DIR)/configure
-dist: $(UNIX_DIR)/configure mklinks
+dist: $(UNIX_DIR)/configure mklinks
rm -rf $(DISTDIR)
- mkdir -p $(DISTDIR)
- mkdir $(DISTDIR)/unix
+ mkdir -p $(DISTDIR)/unix
cp -p $(UNIX_DIR)/*.c $(UNIX_DIR)/*.h $(DISTDIR)/unix
- cp $(TOP_DIR)/license.terms $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
+ cp $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
chmod 664 $(DISTDIR)/unix/Makefile.in
- cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in $(UNIX_DIR)/tk.spec \
- $(UNIX_DIR)/aclocal.m4 $(UNIX_DIR)/tcl.m4 \
- $(UNIX_DIR)/tkConfig.sh.in $(TCLDIR)/unix/install-sh \
- $(UNIX_DIR)/README $(UNIX_DIR)/mkLinks $(DISTDIR)/unix
+ cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
+ $(UNIX_DIR)/tcl.m4 $(UNIX_DIR)/aclocal.m4 \
+ $(UNIX_DIR)/tclConfig.sh.in $(UNIX_DIR)/install-sh \
+ $(UNIX_DIR)/README $(UNIX_DIR)/ldAix $(UNIX_DIR)/tcl.spec \
+ $(UNIX_DIR)/mkLinks \
+ $(DISTDIR)/unix
chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in
+ chmod 775 $(DISTDIR)/unix/ldAix
chmod +x $(DISTDIR)/unix/install-sh
- mkdir $(DISTDIR)/bitmaps
- @(cd $(TOP_DIR); for i in bitmaps/* ; do \
- if [ -f $$i ] ; then \
- sed -e 's/static char/static unsigned char/' \
- $$i > $(DISTDIR)/$$i; \
- fi; \
- done;)
mkdir $(DISTDIR)/generic
- cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(GENERIC_DIR)/prolog.ps \
- $(DISTDIR)/generic
+ cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(DISTDIR)/generic
cp -p $(GENERIC_DIR)/*.decls $(DISTDIR)/generic
cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic
- cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README \
- $(TOP_DIR)/license.terms $(DISTDIR)
- rm -f $(DISTDIR)/generic/blt*.[ch]
+ cp -p $(GENERIC_DIR)/tclGetDate.y $(DISTDIR)/generic
+ cp -p $(TOP_DIR)/changes $(TOP_DIR)/ChangeLog $(TOP_DIR)/README* \
+ $(TOP_DIR)/ChangeLog.[12]??? $(TOP_DIR)/license.terms \
+ $(DISTDIR)
+ mkdir $(DISTDIR)/library
+ cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
+ $(TOP_DIR)/library/tclIndex $(DISTDIR)/library
+ for i in http1.0 http opt msgcat reg dde tcltest; \
+ do \
+ mkdir $(DISTDIR)/library/$$i ;\
+ cp -p $(TOP_DIR)/library/$$i/*.tcl $(DISTDIR)/library/$$i; \
+ done;
+ mkdir $(DISTDIR)/library/encoding
+ cp -p $(TOP_DIR)/library/encoding/*.enc $(DISTDIR)/library/encoding
+ mkdir $(DISTDIR)/doc
+ cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \
+ $(TOP_DIR)/doc/man.macros $(DISTDIR)/doc
+ mkdir $(DISTDIR)/compat
+ cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/compat/*.c \
+ $(TOP_DIR)/compat/*.h $(TOP_DIR)/compat/README \
+ $(DISTDIR)/compat
+ mkdir $(DISTDIR)/tests
+ cp -p $(TOP_DIR)/license.terms $(DISTDIR)/tests
+ cp -p $(TOP_DIR)/tests/*.test $(TOP_DIR)/tests/README \
+ $(TOP_DIR)/tests/httpd $(TOP_DIR)/tests/*.tcl \
+ $(DISTDIR)/tests
mkdir $(DISTDIR)/win
cp $(TOP_DIR)/win/Makefile.in $(DISTDIR)/win
- cp $(TOP_DIR)/win/configure.in \
- $(TOP_DIR)/win/configure \
- $(TOP_DIR)/win/tkConfig.sh.in \
- $(TOP_DIR)/win/aclocal.m4 $(TOP_DIR)/win/tcl.m4 \
+ cp $(TOP_DIR)/win/configure.in $(TOP_DIR)/win/configure \
+ $(TOP_DIR)/win/tclConfig.sh.in \
+ $(TOP_DIR)/win/tcl.m4 $(TOP_DIR)/win/aclocal.m4 \
+ $(DISTDIR)/win
+ cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h \
+ $(TOP_DIR)/win/*.ico $(TOP_DIR)/win/*.rc \
$(DISTDIR)/win
- cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h $(DISTDIR)/win
cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win
$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/*.bat
cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win
$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/makefile.*
cp -p $(TOP_DIR)/win/rules.vc $(DISTDIR)/win
$(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rules.vc
+ cp -p $(TOP_DIR)/win/coffbase.txt $(DISTDIR)/win
+ $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/coffbase.txt
+ cp -p $(TOP_DIR)/win/tcl.hpj.in $(DISTDIR)/win
+ $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.hpj.in
+ cp -p $(TOP_DIR)/win/tcl.ds* $(DISTDIR)/win
+ $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/tcl.ds*
cp -p $(TOP_DIR)/win/README $(DISTDIR)/win
- cp -p $(TOP_DIR)/win/lamp.bmp $(DISTDIR)/win
cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win
- mkdir $(DISTDIR)/win/rc
- cp -p $(TOP_DIR)/win/rc/wish.exe.manifest $(DISTDIR)/win/rc/
- cp -p $(TOP_DIR)/win/rc/*.rc $(TOP_DIR)/win/rc/*.cur \
- $(TOP_DIR)/win/rc/*.ico $(TOP_DIR)/win/rc/*.bmp \
- $(DISTDIR)/win/rc
- $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rc/*.rc
- $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/win/rc/wish.exe.manifest
mkdir $(DISTDIR)/mac
- cp -p $(TOP_DIR)/mac/tkMacProjects.sea.hqx $(DISTDIR)/mac
- cp -p $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \
+ cp -p $(TOP_DIR)/mac/tclMacProjects.sea.hqx \
+ $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \
$(DISTDIR)/mac
- cp -p $(TOP_DIR)/mac/README $(DISTDIR)/mac
- cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac
+ cp -p $(TOP_DIR)/mac/porting.notes $(TOP_DIR)/mac/README $(DISTDIR)/mac
cp -p $(TOP_DIR)/mac/*.pch $(DISTDIR)/mac
- cp -p $(TOP_DIR)/mac/*.doc $(DISTDIR)/mac
- cp -p $(TOP_DIR)/mac/*.tcl $(DISTDIR)/mac
+ cp -p $(TOP_DIR)/mac/*.doc $(TOP_DIR)/mac/*.html $(DISTDIR)/mac
+ cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac
mkdir $(DISTDIR)/macosx
- cp -p $(TOP_DIR)/macosx/Makefile $(TOP_DIR)/macosx/Wish.icns \
- $(TOP_DIR)/macosx/*.c $(TOP_DIR)/macosx/*.h \
- $(TOP_DIR)/macosx/*.r $(DISTDIR)/macosx
- mkdir $(DISTDIR)/macosx/Wish.pbproj
- cp -p $(TOP_DIR)/macosx/Wish.pbproj/*.pbx* \
- $(DISTDIR)/macosx/Wish.pbproj
- mkdir $(DISTDIR)/compat
- cp -p $(TOP_DIR)/license.terms $(TCLDIR)/compat/unistd.h \
- $(TCLDIR)/compat/stdlib.h $(TCLDIR)/compat/limits.h \
- $(DISTDIR)/compat
- mkdir $(DISTDIR)/xlib
- cp -p $(TOP_DIR)/xlib/*.h $(TOP_DIR)/xlib/*.c $(DISTDIR)/xlib
- cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib
- mkdir $(DISTDIR)/xlib/X11
- cp -p $(TOP_DIR)/xlib/X11/*.h $(DISTDIR)/xlib/X11
- cp -p $(TOP_DIR)/license.terms $(DISTDIR)/xlib/X11
- mkdir $(DISTDIR)/library
- cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
- $(TOP_DIR)/library/tclIndex \
- $(DISTDIR)/library
- mkdir $(DISTDIR)/library/images
- @(cd $(TOP_DIR); for i in library/images/* ; do \
- if [ -f $$i ] ; then \
- cp $$i $(DISTDIR)/$$i; \
- fi; \
- done;)
- mkdir $(DISTDIR)/library/msgs
- @(cd $(TOP_DIR); for i in library/msgs/*.msg ; do \
- if [ -f $$i ] ; then \
- cp $$i $(DISTDIR)/$$i; \
- fi; \
- done;)
- mkdir $(DISTDIR)/library/demos
- cp -pr $(TOP_DIR)/library/demos/*.tcl \
- $(TOP_DIR)/library/demos/tclIndex \
- $(TOP_DIR)/library/demos/browse \
- $(TOP_DIR)/library/demos/hello $(TOP_DIR)/library/demos/ixset \
- $(TOP_DIR)/library/demos/rmt $(TOP_DIR)/library/demos/rolodex \
- $(TOP_DIR)/library/demos/square \
- $(TOP_DIR)/library/demos/tcolor \
- $(TOP_DIR)/library/demos/timer \
- $(TOP_DIR)/library/demos/widget \
- $(TOP_DIR)/library/demos/README \
- $(TOP_DIR)/license.terms $(DISTDIR)/library/demos
- mkdir $(DISTDIR)/library/demos/images
- @(cd $(TOP_DIR); for i in library/demos/images/* ; do \
- if [ -f $$i ] ; then \
- cp $$i $(DISTDIR)/$$i; \
- fi; \
- done;)
- mkdir $(DISTDIR)/doc
- cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \
- $(TCLDIR)/doc/man.macros $(DISTDIR)/doc
- mkdir $(DISTDIR)/tests
- cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/tests/*.test \
- $(TOP_DIR)/tests/*.tcl $(TOP_DIR)/tests/README \
- $(TOP_DIR)/tests/option.file* $(DISTDIR)/tests
+ cp -p $(TOP_DIR)/macosx/Makefile \
+ $(TOP_DIR)/macosx/*.c \
+ $(DISTDIR)/macosx
+ mkdir $(DISTDIR)/macosx/Tcl.pbproj
+ cp -p $(TOP_DIR)/macosx/Tcl.pbproj/*.pbx* $(DISTDIR)/macosx/Tcl.pbproj
+ mkdir $(DISTDIR)/unix/dltest
+ cp -p $(UNIX_DIR)/dltest/*.c $(UNIX_DIR)/dltest/Makefile.in \
+ $(UNIX_DIR)/dltest/README \
+ $(DISTDIR)/unix/dltest
+ mkdir $(DISTDIR)/tools
+ cp -p $(TOP_DIR)/tools/Makefile.in $(TOP_DIR)/tools/README \
+ $(TOP_DIR)/tools/configure $(TOP_DIR)/tools/configure.in \
+ $(TOP_DIR)/tools/*.tcl $(TOP_DIR)/tools/man2tcl.c \
+ $(TOP_DIR)/tools/tcl.wse.in $(TOP_DIR)/tools/*.bmp \
+ $(TOP_DIR)/tools/tcl.hpj.in \
+ $(DISTDIR)/tools
+ $(TCL_EXE) $(TOOL_DIR)/eolFix.tcl -crlf $(DISTDIR)/tools/tcl.hpj.in \
+ $(DISTDIR)/tools/tcl.wse.in
#
# The following target can only be used for non-patch releases. Use
@@ -1204,27 +1330,38 @@ allpatch: dist
rm -f $(DISTROOT)/$(DISTNAME).tar.Z \
$(DISTROOT)/$(DISTNAME).tar.gz \
$(DISTROOT)/$(ZIPNAME)
- mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/old
- mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tk${VERSION}
- cd $(DISTROOT); tar cf $(DISTNAME).tar tk${VERSION}; \
+ mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/old
+ mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tcl${VERSION}
+ cd $(DISTROOT); tar cf $(DISTNAME).tar tcl${VERSION}; \
gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \
- compress $(DISTNAME).tar; zip -r8 $(ZIPNAME) tk${VERSION}
- mv $(DISTROOT)/tk${VERSION} $(DISTROOT)/$(DISTNAME)
- mv $(DISTROOT)/old $(DISTROOT)/tk${VERSION}
+ compress $(DISTNAME).tar; zip -r8 $(ZIPNAME) tcl${VERSION}
+ mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/$(DISTNAME)
+ mv $(DISTROOT)/old $(DISTROOT)/tcl${VERSION}
+
+#
+# This target creates the HTML folder for Tcl & Tk and places it
+# in DISTDIR/html. It uses the tcltk-man2html.tcl tool from
+# the Tcl group's tool workspace. It depends on the Tcl & Tk being
+# in directories called tcl8.3 & tk8.3 up two directories from the
+# TOOL_DIR.
+#
+
+html:
+ $(TCL_EXE) $(TOOL_DIR)/tcltk-man2html.tcl --htmldir=$(DISTDIR)/html \
+ --srcdir=$(TOP_DIR)/..
#
# Target to create a Macintosh version of the distribution. This will
# do a normal distribution and then massage the output to prepare it
# for moving to the Mac platform. This requires a few scripts and
-# programs found only in the Tcl greoup's tool workspace.
+# programs found only in the Tcl group's tool workspace.
#
-macdist: dist
- rm -f $(DISTDIR)/mac/tkMacProjects.sea.hqx
- $(TCL_EXE) $(TOOL_DIR)/man2html.tcl $(DISTDIR)/tmp ../.. tk$(VERSION)
- mv $(DISTDIR)/tmp/tk$(VERSION) $(DISTDIR)/html
+macdist: dist machtml
+
+machtml:
+ rm -f $(DISTDIR)/mac/tclMacProjects.sea.hqx
rm -rf $(DISTDIR)/doc
- rm -rf $(DISTDIR)/tmp
$(TCL_EXE) $(TOOL_DIR)/cvtEOL.tcl $(DISTDIR)
#
@@ -1248,7 +1385,7 @@ macdist: dist
# both packages.
#
-PACKAGE=SCRPtk
+PACKAGE=SCRPtcl
package: dist package-config package-common package-binaries package-generate
package-quick: package-config package-binaries package-generate
@@ -1259,12 +1396,11 @@ package-quick: package-config package-binaries package-generate
package-config:
mkdir -p $(DISTDIR)/unix/`arch`
cd $(DISTDIR)/unix/`arch`; \
- ../configure --prefix=/opt/SUNWtcl/$(TCLVERSION) \
- --exec_prefix=/opt/SUNWtcl/$(TCLVERSION)/`arch` \
- --with-tcl=$(DISTDIR)/../tcl$(TCLVERSION)/unix/`arch` \
+ ../configure --prefix=/opt/$(PACKAGE)/$(VERSION) \
+ --exec_prefix=/opt/$(PACKAGE)/$(VERSION)/`arch` \
--enable-shared
- mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)
- mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
+ mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)
+ mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`
#
# Build and install the architecture independent files in the dist directory.
@@ -1273,14 +1409,13 @@ package-config:
package-common:
cd $(DISTDIR)/unix/`arch`;\
$(MAKE); \
- $(MAKE) install-libraries install-doc \
- prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
- exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
- mkdir -p $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin
- sed -e "s/TCLVERSION/$(TCLVERSION)/g" \
- -e "s/TKVERSION/$(VERSION)/g" < $(UNIX_DIR)/wish.sh \
- > $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION)
- chmod 755 $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin/wish$(VERSION)
+ $(MAKE) prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \
+ exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch` \
+ install-libraries install-man
+ mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin
+ sed -e "s/TCLVERSION/$(VERSION)/g" < $(UNIX_DIR)/tclsh.sh \
+ > $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION)
+ chmod 755 $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION)
#
# Build and install the architecture specific files in the dist directory.
@@ -1289,8 +1424,8 @@ package-common:
package-binaries:
cd $(DISTDIR)/unix/`arch`; \
$(MAKE); \
- $(MAKE) install-binaries prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION) \
- exec_prefix=$(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`
+ $(MAKE) install-binaries prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \
+ exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`
#
# Generate a package from the installed files in the dist directory for the
@@ -1298,13 +1433,13 @@ package-binaries:
#
package-generate:
- pkgproto $(DISTDIR)/SUNWtcl/$(TCLVERSION)/bin=bin \
- $(DISTDIR)/SUNWtcl/$(TCLVERSION)/include=include \
- $(DISTDIR)/SUNWtcl/$(TCLVERSION)/lib=lib \
- $(DISTDIR)/SUNWtcl/$(TCLVERSION)/man=man \
- $(DISTDIR)/SUNWtcl/$(TCLVERSION)/`arch`=`arch` \
- | $(TCL_EXE) $(TCLDIR)/unix/mkProto.tcl $(TCLVERSION) \
- $(UNIX_DIR) > prototype
+ pkgproto $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin=bin \
+ $(DISTDIR)/$(PACKAGE)/$(VERSION)/include=include \
+ $(DISTDIR)/$(PACKAGE)/$(VERSION)/lib=lib \
+ $(DISTDIR)/$(PACKAGE)/$(VERSION)/man=man \
+ $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`=`arch` \
+ | $(TCL_EXE) $(UNIX_DIR)/mkProto.tcl \
+ $(VERSION) $(UNIX_DIR) > prototype
pkgmk -o -d . -f prototype -a `arch`
pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE)
rm -rf $(PACKAGE)
diff --git a/tcl/unix/README b/tcl/unix/README
index 73ba968277b..05fa2c119c0 100644
--- a/tcl/unix/README
+++ b/tcl/unix/README
@@ -1,14 +1,18 @@
-Tk UNIX README
---------------
+Tcl UNIX README
+---------------
+
+RCS: @(#) $Id$
This is the directory where you configure, compile, test, and install
-UNIX versions of Tk. This directory also contains source files for Tk
-that are specific to UNIX.
+UNIX versions of Tcl. This directory also contains source files for Tcl
+that are specific to UNIX. Some of the files in this directory are
+used on the PC or Mac platform too, but they all depend on UNIX
+(POSIX/ANSI C) interfaces and some of them only make sense under UNIX.
-The information in this file is maintained at:
- http://www.tcl.tk/doc/howto/compile.html
+Updated forms of the information found in this file is available at:
+ http://www.tcl.tk/doc/howto/compile.html#unix
-For information on platforms where Tcl/Tk is known to compile, along
+For information on platforms where Tcl is known to compile, along
with any porting notes for getting it to work on those platforms, see:
http://www.tcl.tk/software/tcltk/platforms.html
@@ -20,43 +24,43 @@ SGI, as well as PCs running Linux, BSDI, and SCO UNIX. To compile for
a PC running Windows, see the README file in the directory ../win. To
compile for a Macintosh, see the README file in the directory ../mac.
-RCS: @(#) $Id$
-
-How To Compile And Install Tk:
-------------------------------
-
-(a) Make sure that the Tcl 8.4 release is present in the directory
- ../../tcl8.4 (or else use the "--with-tcl" switch described below).
- This release of Tk will only work with Tcl 8.4. Also, be sure that
- you have configured Tcl before you configure Tk.
+How To Compile And Install Tcl:
+-------------------------------
-(b) Check for patches as described in ../README.
-
-(c) If you have already compiled Tk once in this directory and are now
+(a) If you have already compiled Tcl once in this directory and are now
preparing to compile again in the same directory but for a different
platform, or if you have applied patches, type "make distclean" to
discard all the configuration information computed previously.
-(d) Type "./configure". This runs a configuration script created by GNU
+(b) If you need to reconfigure because you changed any of the .in or
+ .m4 files, you will need to run autoconf to create a new
+ ./configure script. Most users will NOT need to do this since
+ a configure script is already provided.
+
+ (in the tcl/unix directory)
+ autoconf
+
+(c) Type "./configure". This runs a configuration script created by GNU
autoconf, which configures Tcl for your system and creates a
Makefile. The configure script allows you to customize the Tcl
configuration for your site; for details on how you can do this,
type "./configure -help" or refer to the autoconf documentation (not
- included here). Tk's "configure" script supports the following
- special switches in addition to the standard ones:
- --with-tcl=DIR Specifies the directory containing the Tcl
- binaries and Tcl's platform-dependent
- configuration information. By default
- the Tcl directory is assumed to be in the
- location given by (a) above.
+ included here). Tcl's "configure" supports the following special
+ switches in addition to the standard ones:
--enable-threads If this switch is set, Tcl will compile
itself with multithreading support.
- --enable-shared If this switch is specified, Tk will compile
+ --disable-load If this switch is specified then Tcl will
+ configure itself not to allow dynamic loading,
+ even if your system appears to support it.
+ Normally you can leave this switch out and
+ Tcl will build itself for dynamic loading
+ if your system supports it.
+ --enable-shared If this switch is specified, Tcl will compile
itself as a shared library if it can figure
out how to do that on this platform. This
is the default on platforms where we know
how to build shared libraries.
- --disable-shared If this switch is specified, Tk will compile
+ --disable-shared If this switch is specified, Tcl will compile
itself as a static library.
--enable-symbols build with debugging symbols
--disable-symbols build without debugging symbols
@@ -64,6 +68,11 @@ How To Compile And Install Tk:
--disable-64bit disable 64bit support (where applicable)
--enable-64bit-vis enable 64bit Sparc VIS support
--disable-64bit-vis disable 64bit Sparc VIS support
+ --enable-langinfo Allows use of modern nl_langinfo check for
+ better localization support. This is on by
+ default on platforms where nl_langinfo is
+ found.
+ --disable-langinfo Specifically disables use of nl_langinfo.
--enable-man-symlinks Use symlinks for linking the manpages that
should be reachable under several names.
--enable-man-compression=PROG
@@ -71,77 +80,58 @@ How To Compile And Install Tk:
Note: by default gcc will be used if it can be located on the PATH.
if you want to use cc instead of gcc, set the CC environment variable
- to "cc" before running configure. It is not safe to change the Makefile
- to use gcc after configure is run.
+ to "cc" before running configure. It is not safe to edit the
+ Makefile to use gcc after configure is run.
Note: be sure to use only absolute path names (those starting with "/")
in the --prefix and --exec-prefix options.
-(e) Type "make". This will create a library archive called
- "libtk<version>.a" or "libtk<version>.so" and an interpreter
- application called "wish" that allows you to type Tcl commands
+(d) Type "make". This will create a library archive called
+ "libtcl<version>.a" or "libtcl<version>.so" and an interpreter
+ application called "tclsh" that allows you to type Tcl commands
interactively or execute script files.
-(f) If the make fails then you'll have to personalize the Makefile
+(e) If the make fails then you'll have to personalize the Makefile
for your site or possibly modify the distribution in other ways.
First check the porting Web page above to see if there are hints
for compiling on your system. If you need to modify Makefile,
- there are comments at the beginning of it that describe the things
- you might want to change and how to change them.
-
-(g) Type "make install" to install Tk's binaries and script files in
+ are comments at the beginning of it that describe the things you
+ might want to change and how to change them.
+
+(f) Type "make install" to install Tcl binaries and script files in
standard places. You'll need write permission on the installation
- directoryies to do this. The installation directories are
+ directories to do this. The installation directories are
determined by the "configure" script and may be specified with
the --prefix and --exec-prefix options to "configure". See the
Makefile for information on what directories were chosen; you
can override these choices by modifying the "prefix" and
"exec_prefix" variables in the Makefile.
-(h) At this point you can play with Tk by invoking the "wish"
- program and typing Tcl commands. However, if you haven't installed
- Tk then you'll first need to set your TK_LIBRARY environment
- variable to hold the full path name of the "library" subdirectory.
- If you haven't installed Tcl either then you'll need to set your
- TCL_LIBRARY environment variable as well (see the Tcl README file
- for information on this). Note that installed versions of wish,
- libtk.a, libtk.so, and the Tk library have a version number in their
- names, such as "wish8.4" or "libtk8.4.so"; to use the installed
- versions, either specify the version number or create a symbolic
- link (e.g. from "wish" to "wish8.4").
-
-If you have trouble compiling Tk, see the URL noted above about working
+(g) At this point you can play with Tcl by running "make shell"
+ and typing Tcl commands at the prompt.
+
+If you have trouble compiling Tcl, see the URL noted above about working
platforms. It contains information that people have provided about changes
-they had to make to compile Tk in various environments. We're also
-interested in hearing how to change the configuration setup so that Tk
+they had to make to compile Tcl in various environments. We're also
+interested in hearing how to change the configuration setup so that Tcl
compiles on additional platforms "out of the box".
Test suite
----------
-Tk has a substantial self-test suite, consisting of a set of scripts in
-the subdirectory "tests". To run the test suite just type "make test"
-in this directory. You should then see a printout of the test files
-processed. If any errors occur, you'll see a much more substantial
-printout for each error. In order to avoid false error reports, be sure
-to run the tests with an empty resource database (e.g., remove your
-.Xdefaults file or delete any entries starting with *). Also, don't
-try to do anything else with your display or keyboard whlie the tests
-are running, or you may get false violations. See the README file in
-the "tests" directory for more information on the test suite.
-
-If the test suite generates errors, most likely they are due to non-
-portable tests that are interacting badly with your system configuration.
-We are gradually eliminating the non-portable tests, but this release
-includes many new tests so there will probably be some portability
-problems. As long as the test suite doesn't core dump, it's probably
-safe to conclude that any errors represent portability problems in the
-test suite and not fundamental flaws with Tk.
-
-There are also a number of visual tests for things such as screen layout,
-Postscript generation, etc. These tests all have to be run by manually
-enabling the "userInteraction" constraint when testing, and the results
-have to be verified visually.. This can be done with
- make test TESTFLAGS="-constraints userInteraction"
-Some tests will present a main window with a bunch of menus, which you can
-use to select various tests.
+There is a relatively complete test suite for all of the Tcl core in
+the subdirectory "tests". To use it just type "make test" in this
+directory. You should then see a printout of the test files processed.
+If any errors occur, you'll see a much more substantial printout for
+each error. See the README file in the "tests" directory for more
+information on the test suite. Note: don't run the tests as superuser:
+this will cause several of them to fail. If a test is failing
+consistently, please send us a bug report with as much detail as you
+can manage. Please use the online database at
+ http://tcl.sourceforge.net/
+
+The Tcl test suite is very sensitive to proper implementation of
+ANSI C library procedures such as sprintf and sscanf. If the test
+suite generates errors, most likely they are due to non-conformance
+of your system's ANSI C library; such problems are unlikely to
+affect any real applications so it's probably safe to ignore them.
diff --git a/tcl/unix/configure b/tcl/unix/configure
index b3377628607..f005092f185 100755
--- a/tcl/unix/configure
+++ b/tcl/unix/configure
@@ -19,7 +19,8 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-threads build with threads"
ac_help="$ac_help
- --with-tcl directory containing tcl configuration (tclConfig.sh)"
+ --enable-langinfo use nl_langinfo if possible to determine
+ encoding at startup, otherwise use old heuristic"
ac_help="$ac_help
--enable-shared build and link with shared libraries [--enable-shared]"
ac_help="$ac_help
@@ -31,7 +32,9 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-symbols build with debugging symbols [--disable-symbols]"
ac_help="$ac_help
- --with-x use the X Window System"
+ --enable-memdebug build with memory debugging [--disable-memdebug]"
+ac_help="$ac_help
+ --enable-framework package shared libraries in frameworks [--disable-framework]"
# Initialize some variables set by options.
# The variables have the same names as the options, with
@@ -472,7 +475,7 @@ echo > confdefs.h
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=../generic/tk.h
+ac_unique_file=../generic/tcl.h
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
@@ -544,12 +547,11 @@ fi
-TK_VERSION=8.4
-TK_MAJOR_VERSION=8
-TK_MINOR_VERSION=4
-TK_PATCH_LEVEL=".0"
-VERSION=${TK_VERSION}
-LOCALES="cs de el en en_gb es fr it nl ru"
+TCL_VERSION=8.4
+TCL_MAJOR_VERSION=8
+TCL_MINOR_VERSION=4
+TCL_PATCH_LEVEL=".0"
+VERSION=${TCL_VERSION}
#------------------------------------------------------------------------
# Handle the --prefix=... option
@@ -563,9 +565,7 @@ if test "${exec_prefix}" = "NONE"; then
fi
# libdir must be a fully qualified path and (not ${exec_prefix}/lib)
eval libdir="$libdir"
-# Make sure srcdir is fully qualified!
-srcdir=`cd $srcdir ; pwd`
-TK_SRC_DIR=`cd $srcdir/..; pwd`
+TCL_SRC_DIR=`cd $srcdir/..; pwd`
#------------------------------------------------------------------------
# Compress and/or soft link the manpages?
@@ -832,13 +832,8 @@ else
fi
fi
-
-#------------------------------------------------------------------------
-# I'm not sure why these need to come before all of the other tests
-#------------------------------------------------------------------------
-
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:842: checking how to run the C preprocessor" >&5
+echo "configure:837: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -853,13 +848,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 857 "configure"
+#line 852 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -870,13 +865,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 874 "configure"
+#line 869 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:880: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:875: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -887,13 +882,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 891 "configure"
+#line 886 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:892: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -921,17 +916,17 @@ for ac_hdr in unistd.h limits.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:925: checking for $ac_hdr" >&5
+echo "configure:920: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 930 "configure"
+#line 925 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:930: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -964,7 +959,7 @@ done
echo $ac_n "checking for building with threads""... $ac_c" 1>&6
-echo "configure:968: checking for building with threads" >&5
+echo "configure:963: checking for building with threads" >&5
# Check whether --enable-threads or --disable-threads was given.
if test "${enable_threads+set}" = set; then
enableval="$enable_threads"
@@ -996,7 +991,7 @@ EOF
EOF
echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
-echo "configure:1000: checking for pthread_mutex_init in -lpthread" >&5
+echo "configure:995: checking for pthread_mutex_init in -lpthread" >&5
ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1004,7 +999,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1008 "configure"
+#line 1003 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1015,7 +1010,7 @@ int main() {
pthread_mutex_init()
; return 0; }
EOF
-if { (eval echo configure:1019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1043,7 +1038,7 @@ fi
# pthread.h, but that will work with libpthread really doesn't
# exist, like AIX 4.2. [Bug: 4359]
echo $ac_n "checking for __pthread_mutex_init in -lpthread""... $ac_c" 1>&6
-echo "configure:1047: checking for __pthread_mutex_init in -lpthread" >&5
+echo "configure:1042: checking for __pthread_mutex_init in -lpthread" >&5
ac_lib_var=`echo pthread'_'__pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1051,7 +1046,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1055 "configure"
+#line 1050 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1062,7 +1057,7 @@ int main() {
__pthread_mutex_init()
; return 0; }
EOF
-if { (eval echo configure:1066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1090,7 +1085,7 @@ fi
THREADS_LIBS=" -lpthread"
else
echo $ac_n "checking for pthread_mutex_init in -lpthreads""... $ac_c" 1>&6
-echo "configure:1094: checking for pthread_mutex_init in -lpthreads" >&5
+echo "configure:1089: checking for pthread_mutex_init in -lpthreads" >&5
ac_lib_var=`echo pthreads'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1098,7 +1093,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpthreads $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1102 "configure"
+#line 1097 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1109,7 +1104,7 @@ int main() {
pthread_mutex_init()
; return 0; }
EOF
-if { (eval echo configure:1113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1135,7 +1130,7 @@ fi
THREADS_LIBS=" -lpthreads"
else
echo $ac_n "checking for pthread_mutex_init in -lc""... $ac_c" 1>&6
-echo "configure:1139: checking for pthread_mutex_init in -lc" >&5
+echo "configure:1134: checking for pthread_mutex_init in -lc" >&5
ac_lib_var=`echo c'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1143,7 +1138,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1147 "configure"
+#line 1142 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1154,7 +1149,7 @@ int main() {
pthread_mutex_init()
; return 0; }
EOF
-if { (eval echo configure:1158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1177,7 +1172,7 @@ fi
if test "$tcl_ok" = "no"; then
echo $ac_n "checking for pthread_mutex_init in -lc_r""... $ac_c" 1>&6
-echo "configure:1181: checking for pthread_mutex_init in -lc_r" >&5
+echo "configure:1176: checking for pthread_mutex_init in -lc_r" >&5
ac_lib_var=`echo c_r'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1185,7 +1180,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lc_r $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1189 "configure"
+#line 1184 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1196,7 +1191,7 @@ int main() {
pthread_mutex_init()
; return 0; }
EOF
-if { (eval echo configure:1200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -1234,12 +1229,12 @@ fi
for ac_func in pthread_attr_setstacksize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1238: checking for $ac_func" >&5
+echo "configure:1233: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1243 "configure"
+#line 1238 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1262,7 +1257,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1289,12 +1284,12 @@ done
for ac_func in readdir_r
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1293: checking for $ac_func" >&5
+echo "configure:1288: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1298 "configure"
+#line 1293 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -1317,7 +1312,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:1321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -1348,26 +1343,26 @@ done
-#------------------------------------------------------------------------------
+#------------------------------------------------------------------------
# If we're using GCC, see if the compiler understands -pipe. If so, use it.
# It makes compiling go faster. (This is only a performance feature.)
-#------------------------------------------------------------------------------
+#------------------------------------------------------------------------
if test -z "$no_pipe"; then
if test -n "$GCC"; then
echo $ac_n "checking if the compiler understands -pipe""... $ac_c" 1>&6
-echo "configure:1360: checking if the compiler understands -pipe" >&5
+echo "configure:1355: checking if the compiler understands -pipe" >&5
OLDCC="$CC"
CC="$CC -pipe"
cat > conftest.$ac_ext <<EOF
-#line 1364 "configure"
+#line 1359 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:1371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
@@ -1387,21 +1382,21 @@ fi
echo $ac_n "checking for required early compiler flags""... $ac_c" 1>&6
-echo "configure:1391: checking for required early compiler flags" >&5
+echo "configure:1386: checking for required early compiler flags" >&5
tcl_flags=""
if eval "test \"`echo '$''{'tcl_cv_flag__isoc99_source'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1398 "configure"
+#line 1393 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
char *p = (char *)strtoll; char *q = (char *)strtoull;
; return 0; }
EOF
-if { (eval echo configure:1405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_flag__isoc99_source=no
else
@@ -1409,7 +1404,7 @@ else
cat conftest.$ac_ext >&5
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 1413 "configure"
+#line 1408 "configure"
#include "confdefs.h"
#define _ISOC99_SOURCE 1
#include <stdlib.h>
@@ -1417,7 +1412,7 @@ int main() {
char *p = (char *)strtoll; char *q = (char *)strtoull;
; return 0; }
EOF
-if { (eval echo configure:1421: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_flag__isoc99_source=yes
else
@@ -1443,14 +1438,14 @@ EOF
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1447 "configure"
+#line 1442 "configure"
#include "confdefs.h"
#include <sys/stat.h>
int main() {
struct stat64 buf; int i = stat64("/", &buf);
; return 0; }
EOF
-if { (eval echo configure:1454: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1449: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_flag__largefile64_source=no
else
@@ -1458,7 +1453,7 @@ else
cat conftest.$ac_ext >&5
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 1462 "configure"
+#line 1457 "configure"
#include "confdefs.h"
#define _LARGEFILE64_SOURCE 1
#include <sys/stat.h>
@@ -1466,7 +1461,7 @@ int main() {
struct stat64 buf; int i = stat64("/", &buf);
; return 0; }
EOF
-if { (eval echo configure:1470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_flag__largefile64_source=yes
else
@@ -1495,20 +1490,20 @@ EOF
echo $ac_n "checking for 64-bit integer type""... $ac_c" 1>&6
-echo "configure:1499: checking for 64-bit integer type" >&5
+echo "configure:1494: checking for 64-bit integer type" >&5
if eval "test \"`echo '$''{'tcl_cv_type_64bit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1505 "configure"
+#line 1500 "configure"
#include "confdefs.h"
int main() {
__int64 value = (__int64) 0;
; return 0; }
EOF
-if { (eval echo configure:1512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1507: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_type_64bit=__int64
else
@@ -1520,13 +1515,13 @@ else
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 1524 "configure"
+#line 1519 "configure"
#include "confdefs.h"
#include <unistd.h>
int main() {exit(!(sizeof(long long) > sizeof(long)));}
EOF
-if { (eval echo configure:1530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
tcl_cv_type_64bit="long long"
else
@@ -1551,13 +1546,13 @@ EOF
# Now check for auxiliary declarations
echo $ac_n "checking for struct dirent64""... $ac_c" 1>&6
-echo "configure:1555: checking for struct dirent64" >&5
+echo "configure:1550: checking for struct dirent64" >&5
if eval "test \"`echo '$''{'tcl_cv_struct_dirent64'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1561 "configure"
+#line 1556 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/dirent.h>
@@ -1565,7 +1560,7 @@ int main() {
struct dirent64 p;
; return 0; }
EOF
-if { (eval echo configure:1569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_struct_dirent64=yes
else
@@ -1586,13 +1581,13 @@ EOF
echo "$ac_t""${tcl_cv_struct_dirent64}" 1>&6
echo $ac_n "checking for struct stat64""... $ac_c" 1>&6
-echo "configure:1590: checking for struct stat64" >&5
+echo "configure:1585: checking for struct stat64" >&5
if eval "test \"`echo '$''{'tcl_cv_struct_stat64'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1596 "configure"
+#line 1591 "configure"
#include "confdefs.h"
#include <sys/stat.h>
int main() {
@@ -1600,7 +1595,7 @@ struct stat64 p;
; return 0; }
EOF
-if { (eval echo configure:1604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_struct_stat64=yes
else
@@ -1621,13 +1616,13 @@ EOF
echo "$ac_t""${tcl_cv_struct_stat64}" 1>&6
echo $ac_n "checking for off64_t""... $ac_c" 1>&6
-echo "configure:1625: checking for off64_t" >&5
+echo "configure:1620: checking for off64_t" >&5
if eval "test \"`echo '$''{'tcl_cv_type_off64_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1631 "configure"
+#line 1626 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
@@ -1635,7 +1630,7 @@ off64_t offset;
; return 0; }
EOF
-if { (eval echo configure:1639: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_cv_type_off64_t=yes
else
@@ -1657,155 +1652,3712 @@ EOF
fi
#--------------------------------------------------------------------
-# Find and load the tclConfig.sh file
+# Check endianness because we can optimize comparisons of
+# Tcl_UniChar strings to memcmp on big-endian systems.
#--------------------------------------------------------------------
+echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
+echo "configure:1661: checking whether byte ordering is bigendian" >&5
+if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_cv_c_bigendian=unknown
+# See if sys/param.h defines the BYTE_ORDER macro.
+cat > conftest.$ac_ext <<EOF
+#line 1668 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1679: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+cat > conftest.$ac_ext <<EOF
+#line 1683 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1694: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_bigendian=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_c_bigendian=no
+fi
+rm -f conftest*
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+if test $ac_cv_c_bigendian = unknown; then
+if test "$cross_compiling" = yes; then
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1714 "configure"
+#include "confdefs.h"
+main () {
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long l;
+ char c[sizeof (long)];
+ } u;
+ u.l = 1;
+ exit (u.c[sizeof (long) - 1] == 1);
+}
+EOF
+if { (eval echo configure:1727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_bigendian=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_bigendian=yes
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_c_bigendian" 1>&6
+if test $ac_cv_c_bigendian = yes; then
+ cat >> confdefs.h <<\EOF
+#define WORDS_BIGENDIAN 1
+EOF
+
+fi
+
+
+#--------------------------------------------------------------------
+# Supply substitutes for missing POSIX library procedures, or
+# set flags so Tcl uses alternate procedures.
+#--------------------------------------------------------------------
+
+# Check if Posix compliant getcwd exists, if not we'll use getwd.
+for ac_func in getcwd
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1760: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1765 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define USEGETWD 1
+EOF
+
+fi
+done
+
+# Nb: if getcwd uses popen and pwd(1) (like SunOS 4) we should really
+# define USEGETWD even if the posix getcwd exists. Add a test ?
+
+for ac_func in opendir strstr
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1822: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1827 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
+fi
+done
+
+
+
+for ac_func in strtol strtoll strtoull tmpnam waitpid
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:1880: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1885 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
+fi
+done
+
+
+echo $ac_n "checking for strerror""... $ac_c" 1>&6
+echo "configure:1935: checking for strerror" >&5
+if eval "test \"`echo '$''{'ac_cv_func_strerror'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1940 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char strerror(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strerror();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_strerror) || defined (__stub___strerror)
+choke me
+#else
+strerror();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_strerror=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_strerror=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'strerror`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_STRERROR 1
+EOF
+
+fi
+
+echo $ac_n "checking for getwd""... $ac_c" 1>&6
+echo "configure:1987: checking for getwd" >&5
+if eval "test \"`echo '$''{'ac_cv_func_getwd'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 1992 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char getwd(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char getwd();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_getwd) || defined (__stub___getwd)
+choke me
+#else
+getwd();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_getwd=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_getwd=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'getwd`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_GETWD 1
+EOF
+
+fi
+
+echo $ac_n "checking for wait3""... $ac_c" 1>&6
+echo "configure:2039: checking for wait3" >&5
+if eval "test \"`echo '$''{'ac_cv_func_wait3'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2044 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char wait3(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char wait3();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_wait3) || defined (__stub___wait3)
+choke me
+#else
+wait3();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_wait3=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_wait3=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'wait3`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_WAIT3 1
+EOF
+
+fi
+
+echo $ac_n "checking for uname""... $ac_c" 1>&6
+echo "configure:2091: checking for uname" >&5
+if eval "test \"`echo '$''{'ac_cv_func_uname'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2096 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char uname(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char uname();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_uname) || defined (__stub___uname)
+choke me
+#else
+uname();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_uname=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_uname=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'uname`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_UNAME 1
+EOF
+
+fi
+
+echo $ac_n "checking for realpath""... $ac_c" 1>&6
+echo "configure:2143: checking for realpath" >&5
+if eval "test \"`echo '$''{'ac_cv_func_realpath'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2148 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char realpath(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char realpath();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_realpath) || defined (__stub___realpath)
+choke me
+#else
+realpath();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_realpath=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_realpath=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'realpath`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_REALPATH 1
+EOF
+
+fi
+
+
+#--------------------------------------------------------------------
+# Supply substitutes for missing POSIX header files. Special
+# notes:
+# - stdlib.h doesn't define strtol, strtoul, or
+# strtod insome versions of SunOS
+# - some versions of string.h don't declare procedures such
+# as strstr
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking dirent.h""... $ac_c" 1>&6
+echo "configure:2206: checking dirent.h" >&5
+ cat > conftest.$ac_ext <<EOF
+#line 2208 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <dirent.h>
+int main() {
+
+#ifndef _POSIX_SOURCE
+# ifdef __Lynx__
+ /*
+ * Generate compilation error to make the test fail: Lynx headers
+ * are only valid if really in the POSIX environment.
+ */
+
+ missing_procedure();
+# endif
+#endif
+DIR *d;
+struct dirent *entryPtr;
+char *p;
+d = opendir("foobar");
+entryPtr = readdir(d);
+p = entryPtr->d_name;
+closedir(d);
+
+; return 0; }
+EOF
+if { (eval echo configure:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ tcl_ok=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_ok=no
+fi
+rm -f conftest*
+
+ if test $tcl_ok = no; then
+ cat >> confdefs.h <<\EOF
+#define NO_DIRENT_H 1
+EOF
+
+ fi
+
+ echo "$ac_t""$tcl_ok" 1>&6
+ ac_safe=`echo "errno.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for errno.h""... $ac_c" 1>&6
+echo "configure:2255: checking for errno.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2260 "configure"
+#include "confdefs.h"
+#include <errno.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_ERRNO_H 1
+EOF
+
+fi
+
+ ac_safe=`echo "float.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for float.h""... $ac_c" 1>&6
+echo "configure:2292: checking for float.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2297 "configure"
+#include "confdefs.h"
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_FLOAT_H 1
+EOF
+
+fi
+
+ ac_safe=`echo "values.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for values.h""... $ac_c" 1>&6
+echo "configure:2329: checking for values.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2334 "configure"
+#include "confdefs.h"
+#include <values.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2339: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_VALUES_H 1
+EOF
+
+fi
+
+ ac_safe=`echo "limits.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for limits.h""... $ac_c" 1>&6
+echo "configure:2366: checking for limits.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2371 "configure"
+#include "confdefs.h"
+#include <limits.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2376: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_LIMITS_H 1
+EOF
+
+fi
+
+ ac_safe=`echo "stdlib.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for stdlib.h""... $ac_c" 1>&6
+echo "configure:2403: checking for stdlib.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2408 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+ cat > conftest.$ac_ext <<EOF
+#line 2436 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "strtol" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ tcl_ok=0
+fi
+rm -f conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line 2450 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "strtoul" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ tcl_ok=0
+fi
+rm -f conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line 2464 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "strtod" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ tcl_ok=0
+fi
+rm -f conftest*
+
+ if test $tcl_ok = 0; then
+ cat >> confdefs.h <<\EOF
+#define NO_STDLIB_H 1
+EOF
+
+ fi
+ ac_safe=`echo "string.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for string.h""... $ac_c" 1>&6
+echo "configure:2485: checking for string.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2490 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2495: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+ cat > conftest.$ac_ext <<EOF
+#line 2518 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "strstr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ tcl_ok=0
+fi
+rm -f conftest*
+
+ cat > conftest.$ac_ext <<EOF
+#line 2532 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "strerror" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ tcl_ok=0
+fi
+rm -f conftest*
+
+
+ # See also memmove check below for a place where NO_STRING_H can be
+ # set and why.
+
+ if test $tcl_ok = 0; then
+ cat >> confdefs.h <<\EOF
+#define NO_STRING_H 1
+EOF
+
+ fi
+
+ ac_safe=`echo "sys/wait.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for sys/wait.h""... $ac_c" 1>&6
+echo "configure:2558: checking for sys/wait.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2563 "configure"
+#include "confdefs.h"
+#include <sys/wait.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2568: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_SYS_WAIT_H 1
+EOF
+
+fi
+
+ ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
+echo "configure:2595: checking for dlfcn.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2600 "configure"
+#include "confdefs.h"
+#include <dlfcn.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2605: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_DLFCN_H 1
+EOF
+
+fi
- #
- # Ok, lets find the tcl configuration
- # First, look for one uninstalled.
- # the alternative search directory is invoked by --with-tcl
- #
- if test x"${no_tcl}" = x ; then
- # we reset no_tcl in case something fails here
- no_tcl=true
- # Check whether --with-tcl or --without-tcl was given.
-if test "${with_tcl+set}" = set; then
- withval="$with_tcl"
- with_tclconfig=${withval}
+ # OS/390 lacks sys/param.h (and doesn't need it, by chance).
+
+ for ac_hdr in unistd.h sys/param.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2637: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2642 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2647: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
fi
+done
- echo $ac_n "checking for Tcl configuration""... $ac_c" 1>&6
-echo "configure:1681: checking for Tcl configuration" >&5
- if eval "test \"`echo '$''{'ac_cv_c_tclconfig'+set}'`\" = set"; then
+
+
+
+#---------------------------------------------------------------------------
+# Determine which interface to use to talk to the serial port.
+# Note that #include lines must begin in leftmost column for
+# some compilers to recognize them as preprocessor directives.
+#---------------------------------------------------------------------------
+
+
+ for ac_hdr in sys/modem.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2687: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2692 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ echo $ac_n "checking termios vs. termio vs. sgtty""... $ac_c" 1>&6
+echo "configure:2724: checking termios vs. termio vs. sgtty" >&5
+ if eval "test \"`echo '$''{'tcl_cv_api_serial'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
+ if test "$cross_compiling" = yes; then
+ tcl_cv_api_serial=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2733 "configure"
+#include "confdefs.h"
- # First check to see if --with-tcl was specified.
- if test x"${with_tclconfig}" != x ; then
- if test -f "${with_tclconfig}/tclConfig.sh" ; then
- ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)`
- else
- { echo "configure: error: ${with_tclconfig} directory doesn't contain tclConfig.sh" 1>&2; exit 1; }
- fi
- fi
+#include <termios.h>
- # then check for a private Tcl installation
- if test x"${ac_cv_c_tclconfig}" = x ; then
- for i in \
- ../tcl \
- `ls -dr ../tcl[8-9].[0-9]* 2>/dev/null` \
- ../../tcl \
- `ls -dr ../../tcl[8-9].[0-9]* 2>/dev/null` \
- ../../../tcl \
- `ls -dr ../../../tcl[8-9].[0-9]* 2>/dev/null` ; do
- if test -f "$i/unix/tclConfig.sh" ; then
- ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
- break
- fi
- done
- fi
+int main() {
+ struct termios t;
+ if (tcgetattr(0, &t) == 0) {
+ cfsetospeed(&t, 0);
+ t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+}
+EOF
+if { (eval echo configure:2748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_api_serial=termios
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_api_serial=no
+fi
+rm -fr conftest*
+fi
- # check in a few common install locations
- if test x"${ac_cv_c_tclconfig}" = x ; then
- for i in `ls -d ${libdir} 2>/dev/null` \
- `ls -d /usr/local/lib 2>/dev/null` \
- `ls -d /usr/contrib/lib 2>/dev/null` \
- `ls -d /usr/lib 2>/dev/null` \
- ; do
- if test -f "$i/tclConfig.sh" ; then
- ac_cv_c_tclconfig=`(cd $i; pwd)`
- break
- fi
- done
- fi
+ if test $tcl_cv_api_serial = no ; then
+ if test "$cross_compiling" = yes; then
+ tcl_cv_api_serial=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2765 "configure"
+#include "confdefs.h"
- # check in a few other private locations
- if test x"${ac_cv_c_tclconfig}" = x ; then
- for i in \
- ${srcdir}/../tcl \
- `ls -dr ${srcdir}/../tcl[8-9].[0-9]* 2>/dev/null` ; do
- if test -f "$i/unix/tclConfig.sh" ; then
- ac_cv_c_tclconfig=`(cd $i/unix; pwd)`
- break
- fi
- done
- fi
-
+#include <termio.h>
+
+int main() {
+ struct termio t;
+ if (ioctl(0, TCGETA, &t) == 0) {
+ t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+}
+EOF
+if { (eval echo configure:2779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_api_serial=termio
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_api_serial=no
+fi
+rm -fr conftest*
fi
+ fi
+ if test $tcl_cv_api_serial = no ; then
+ if test "$cross_compiling" = yes; then
+ tcl_cv_api_serial=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2797 "configure"
+#include "confdefs.h"
+
+#include <sgtty.h>
+
+int main() {
+ struct sgttyb t;
+ if (ioctl(0, TIOCGETP, &t) == 0) {
+ t.sg_ospeed = 0;
+ t.sg_flags |= ODDP | EVENP | RAW;
+ return 0;
+ }
+ return 1;
+}
+EOF
+if { (eval echo configure:2812: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_api_serial=sgtty
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_api_serial=no
+fi
+rm -fr conftest*
+fi
+
+ fi
+ if test $tcl_cv_api_serial = no ; then
+ if test "$cross_compiling" = yes; then
+ tcl_cv_api_serial=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2830 "configure"
+#include "confdefs.h"
+
+#include <termios.h>
+#include <errno.h>
+
+int main() {
+ struct termios t;
+ if (tcgetattr(0, &t) == 0
+ || errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
+ cfsetospeed(&t, 0);
+ t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+}
+EOF
+if { (eval echo configure:2847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_api_serial=termios
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_api_serial=no
+fi
+rm -fr conftest*
+fi
- if test x"${ac_cv_c_tclconfig}" = x ; then
- TCL_BIN_DIR="# no Tcl configs found"
- echo "configure: warning: Can't find Tcl configuration definitions" 1>&2
- exit 0
- else
- no_tcl=
- TCL_BIN_DIR=${ac_cv_c_tclconfig}
- echo "$ac_t""found $TCL_BIN_DIR/tclConfig.sh" 1>&6
- fi
fi
+ if test $tcl_cv_api_serial = no; then
+ if test "$cross_compiling" = yes; then
+ tcl_cv_api_serial=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2865 "configure"
+#include "confdefs.h"
+#include <termio.h>
+#include <errno.h>
- echo $ac_n "checking for existence of $TCL_BIN_DIR/tclConfig.sh""... $ac_c" 1>&6
-echo "configure:1754: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
+int main() {
+ struct termio t;
+ if (ioctl(0, TCGETA, &t) == 0
+ || errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
+ t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+ }
+EOF
+if { (eval echo configure:2881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_api_serial=termio
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_api_serial=no
+fi
+rm -fr conftest*
+fi
- if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
- echo "$ac_t""loading" 1>&6
- . $TCL_BIN_DIR/tclConfig.sh
- else
- echo "$ac_t""file not found" 1>&6
fi
+ if test $tcl_cv_api_serial = no; then
+ if test "$cross_compiling" = yes; then
+ tcl_cv_api_serial=none
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2899 "configure"
+#include "confdefs.h"
- #
- # If the TCL_BIN_DIR is the build directory (not the install directory),
- # then set the common variable name to the value of the build variables.
- # For example, the variable TCL_LIB_SPEC will be set to the value
- # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
- # instead of TCL_BUILD_LIB_SPEC since it will work with both an
- # installed and uninstalled version of Tcl.
- #
+#include <sgtty.h>
+#include <errno.h>
+
+int main() {
+ struct sgttyb t;
+ if (ioctl(0, TIOCGETP, &t) == 0
+ || errno == ENOTTY || errno == ENXIO || errno == EINVAL) {
+ t.sg_ospeed = 0;
+ t.sg_flags |= ODDP | EVENP | RAW;
+ return 0;
+ }
+ return 1;
+}
+EOF
+if { (eval echo configure:2916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_api_serial=sgtty
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_api_serial=none
+fi
+rm -fr conftest*
+fi
+
+ fi
+fi
+
+ case $tcl_cv_api_serial in
+ termios) cat >> confdefs.h <<\EOF
+#define USE_TERMIOS 1
+EOF
+;;
+ termio) cat >> confdefs.h <<\EOF
+#define USE_TERMIO 1
+EOF
+;;
+ sgtty) cat >> confdefs.h <<\EOF
+#define USE_SGTTY 1
+EOF
+;;
+ esac
+ echo "$ac_t""$tcl_cv_api_serial" 1>&6
+
+
+#--------------------------------------------------------------------
+# Include sys/select.h if it exists and if it supplies things
+# that appear to be useful and aren't already in sys/types.h.
+# This appears to be true only on the RS/6000 under AIX. Some
+# systems like OSF/1 have a sys/select.h that's of no use, and
+# other systems like SCO UNIX have a sys/select.h that's
+# pernicious. If "fd_set" isn't defined anywhere then set a
+# special flag.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for fd_set in sys/types""... $ac_c" 1>&6
+echo "configure:2959: checking for fd_set in sys/types" >&5
+if eval "test \"`echo '$''{'tcl_cv_type_fd_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2964 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+fd_set readMask, writeMask;
+; return 0; }
+EOF
+if { (eval echo configure:2971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ tcl_cv_type_fd_set=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_type_fd_set=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$tcl_cv_type_fd_set" 1>&6
+tk_ok=$tcl_cv_type_fd_set
+if test $tcl_cv_type_fd_set = no; then
+ echo $ac_n "checking for fd_mask in sys/select""... $ac_c" 1>&6
+echo "configure:2987: checking for fd_mask in sys/select" >&5
+ if eval "test \"`echo '$''{'tcl_cv_grep_fd_mask'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 2992 "configure"
+#include "confdefs.h"
+#include <sys/select.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "fd_mask" >/dev/null 2>&1; then
+ rm -rf conftest*
+ tcl_cv_grep_fd_mask=present
+else
+ rm -rf conftest*
+ tcl_cv_grep_fd_mask=missing
+fi
+rm -f conftest*
+
+fi
+
+ echo "$ac_t""$tcl_cv_grep_fd_mask" 1>&6
+ if test $tcl_cv_grep_fd_mask = present; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_SYS_SELECT_H 1
+EOF
+
+ tk_ok=yes
+ fi
+fi
+if test $tk_ok = no; then
+ cat >> confdefs.h <<\EOF
+#define NO_FD_SET 1
+EOF
+
+fi
+
+#------------------------------------------------------------------------------
+# Find out all about time handling differences.
+#------------------------------------------------------------------------------
+
+echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
+echo "configure:3029: checking whether struct tm is in sys/time.h or time.h" >&5
+if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3034 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <time.h>
+int main() {
+struct tm *tp; tp->tm_sec;
+; return 0; }
+EOF
+if { (eval echo configure:3042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_struct_tm=time.h
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_struct_tm=sys/time.h
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_tm" 1>&6
+if test $ac_cv_struct_tm = sys/time.h; then
+ cat >> confdefs.h <<\EOF
+#define TM_IN_SYS_TIME 1
+EOF
+
+fi
+
+
+ for ac_hdr in sys/time.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:3067: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3072 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+ echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+echo "configure:3104: checking whether time.h and sys/time.h may both be included" >&5
+if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3109 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+int main() {
+struct tm *tp;
+; return 0; }
+EOF
+if { (eval echo configure:3118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_header_time=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_time=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_time" 1>&6
+if test $ac_cv_header_time = yes; then
+ cat >> confdefs.h <<\EOF
+#define TIME_WITH_SYS_TIME 1
+EOF
+
+fi
+
+ echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
+echo "configure:3139: checking for tm_zone in struct tm" >&5
+if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3144 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_cv_struct_tm>
+int main() {
+struct tm tm; tm.tm_zone;
+; return 0; }
+EOF
+if { (eval echo configure:3152: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_struct_tm_zone=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_struct_tm_zone=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_tm_zone" 1>&6
+if test "$ac_cv_struct_tm_zone" = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TM_ZONE 1
+EOF
+
+else
+ echo $ac_n "checking for tzname""... $ac_c" 1>&6
+echo "configure:3172: checking for tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3177 "configure"
+#include "confdefs.h"
+#include <time.h>
+#ifndef tzname /* For SGI. */
+extern char *tzname[]; /* RS6000 and others reject char **tzname. */
+#endif
+int main() {
+atoi(*tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_var_tzname=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_var_tzname=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_tzname" 1>&6
+ if test $ac_cv_var_tzname = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TZNAME 1
+EOF
+
+ fi
+fi
+
+
+ for ac_func in gmtime_r localtime_r
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3212: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3217 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+done
+
+
+ echo $ac_n "checking tm_tzadj in struct tm""... $ac_c" 1>&6
+echo "configure:3266: checking tm_tzadj in struct tm" >&5
+ if eval "test \"`echo '$''{'tcl_cv_member_tm_tzadj'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3271 "configure"
+#include "confdefs.h"
+#include <time.h>
+int main() {
+struct tm tm; tm.tm_tzadj;
+; return 0; }
+EOF
+if { (eval echo configure:3278: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ tcl_cv_member_tm_tzadj=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_member_tm_tzadj=no
+fi
+rm -f conftest*
+fi
+
+ echo "$ac_t""$tcl_cv_member_tm_tzadj" 1>&6
+ if test $tcl_cv_member_tm_tzadj = yes ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TM_TZADJ 1
+EOF
+
+ fi
+
+ echo $ac_n "checking tm_gmtoff in struct tm""... $ac_c" 1>&6
+echo "configure:3299: checking tm_gmtoff in struct tm" >&5
+ if eval "test \"`echo '$''{'tcl_cv_member_tm_gmtoff'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3304 "configure"
+#include "confdefs.h"
+#include <time.h>
+int main() {
+struct tm tm; tm.tm_gmtoff;
+; return 0; }
+EOF
+if { (eval echo configure:3311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ tcl_cv_member_tm_gmtoff=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_member_tm_gmtoff=no
+fi
+rm -f conftest*
+fi
+
+ echo "$ac_t""$tcl_cv_member_tm_gmtoff" 1>&6
+ if test $tcl_cv_member_tm_gmtoff = yes ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TM_GMTOFF 1
+EOF
- if test -f $TCL_BIN_DIR/Makefile ; then
- TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
- TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
- TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
fi
#
- # eval is required to do the TCL_DBGX substitution
+ # Its important to include time.h in this check, as some systems
+ # (like convex) have timezone functions, etc.
#
+ echo $ac_n "checking long timezone variable""... $ac_c" 1>&6
+echo "configure:3336: checking long timezone variable" >&5
+ if eval "test \"`echo '$''{'tcl_cv_var_timezone'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3341 "configure"
+#include "confdefs.h"
+#include <time.h>
+int main() {
+extern long timezone;
+ timezone += 1;
+ exit (0);
+; return 0; }
+EOF
+if { (eval echo configure:3350: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ tcl_cv_timezone_long=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_timezone_long=no
+fi
+rm -f conftest*
+fi
- eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
- eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
- eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
+ echo "$ac_t""$tcl_cv_timezone_long" 1>&6
+ if test $tcl_cv_timezone_long = yes ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TIMEZONE_VAR 1
+EOF
- eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
- eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
- eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
+ else
+ #
+ # On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
+ #
+ echo $ac_n "checking time_t timezone variable""... $ac_c" 1>&6
+echo "configure:3373: checking time_t timezone variable" >&5
+ if eval "test \"`echo '$''{'tcl_cv_timezone_time'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3378 "configure"
+#include "confdefs.h"
+#include <time.h>
+int main() {
+extern time_t timezone;
+ timezone += 1;
+ exit (0);
+; return 0; }
+EOF
+if { (eval echo configure:3387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ tcl_cv_timezone_time=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_timezone_time=no
+fi
+rm -f conftest*
+fi
-
-
-
+ echo "$ac_t""$tcl_cv_timezone_time" 1>&6
+ if test $tcl_cv_timezone_time = yes ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_TIMEZONE_VAR 1
+EOF
+
+ fi
+ fi
+
+
+#--------------------------------------------------------------------
+# Some systems (e.g., IRIX 4.0.5) lack the st_blksize field
+# in struct stat. But we might be able to use fstatfs instead.
+#--------------------------------------------------------------------
+echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
+echo "configure:3414: checking for st_blksize in struct stat" >&5
+if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3419 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+int main() {
+struct stat s; s.st_blksize;
+; return 0; }
+EOF
+if { (eval echo configure:3427: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_struct_st_blksize=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_struct_st_blksize=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_struct_st_blksize" 1>&6
+if test $ac_cv_struct_st_blksize = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_ST_BLKSIZE 1
+EOF
+
+fi
+
+echo $ac_n "checking for fstatfs""... $ac_c" 1>&6
+echo "configure:3448: checking for fstatfs" >&5
+if eval "test \"`echo '$''{'ac_cv_func_fstatfs'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3453 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char fstatfs(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char fstatfs();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_fstatfs) || defined (__stub___fstatfs)
+choke me
+#else
+fstatfs();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_fstatfs=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_fstatfs=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'fstatfs`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_FSTATFS 1
+EOF
+
+fi
+
+
+#--------------------------------------------------------------------
+# Some system have no memcmp or it does not work with 8 bit
+# data, this checks it and add memcmp.o to LIBOBJS if needed
+#--------------------------------------------------------------------
+echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
+echo "configure:3505: checking for 8-bit clean memcmp" >&5
+if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_memcmp_clean=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3513 "configure"
+#include "confdefs.h"
+
+main()
+{
+ char c0 = 0x40, c1 = 0x80, c2 = 0x81;
+ exit(memcmp(&c0, &c2, 1) < 0 && memcmp(&c1, &c2, 1) < 0 ? 0 : 1);
+}
+
+EOF
+if { (eval echo configure:3523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_func_memcmp_clean=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_func_memcmp_clean=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
+test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
+
+
+#--------------------------------------------------------------------
+# Some system like SunOS 4 and other BSD like systems
+# have no memmove (we assume they have bcopy instead).
+# {The replacement define is in compat/string.h}
+#--------------------------------------------------------------------
+echo $ac_n "checking for memmove""... $ac_c" 1>&6
+echo "configure:3547: checking for memmove" >&5
+if eval "test \"`echo '$''{'ac_cv_func_memmove'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3552 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char memmove(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char memmove();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_memmove) || defined (__stub___memmove)
+choke me
+#else
+memmove();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_memmove=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_memmove=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'memmove`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_MEMMOVE 1
+EOF
+ cat >> confdefs.h <<\EOF
+#define NO_STRING_H 1
+EOF
+
+fi
+
+
+#--------------------------------------------------------------------
+# On some systems strstr is broken: it returns a pointer even
+# even if the original string is empty.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking proper strstr implementation""... $ac_c" 1>&6
+echo "configure:3608: checking proper strstr implementation" >&5
+if test "$cross_compiling" = yes; then
+ tcl_ok=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3613 "configure"
+#include "confdefs.h"
+
+extern int strstr();
+int main()
+{
+ exit(strstr("\0test", "test") ? 1 : 0);
+}
+
+EOF
+if { (eval echo configure:3623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_ok=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_ok=no
+fi
+rm -fr conftest*
+fi
+
+if test $tcl_ok = yes; then
+ echo "$ac_t""yes" 1>&6
+else
+ echo "$ac_t""broken, using substitute" 1>&6
+ LIBOBJS="$LIBOBJS strstr.o"
+fi
+
+#--------------------------------------------------------------------
+# Check for strtoul function. This is tricky because under some
+# versions of AIX strtoul returns an incorrect terminator
+# pointer for the string "0".
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for strtoul""... $ac_c" 1>&6
+echo "configure:3649: checking for strtoul" >&5
+if eval "test \"`echo '$''{'ac_cv_func_strtoul'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3654 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char strtoul(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strtoul();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_strtoul) || defined (__stub___strtoul)
+choke me
+#else
+strtoul();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_strtoul=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_strtoul=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'strtoul`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+if test "$cross_compiling" = yes; then
+ tcl_ok=0
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3701 "configure"
+#include "confdefs.h"
+
+extern int strtoul();
+int main()
+{
+ char *string = "0";
+ char *term;
+ int value;
+ value = strtoul(string, &term, 0);
+ if ((value != 0) || (term != (string+1))) {
+ exit(1);
+ }
+ exit(0);
+}
+EOF
+if { (eval echo configure:3717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_ok=0
+fi
+rm -fr conftest*
+fi
+
+if test "$tcl_ok" = 0; then
+ test -n "$verbose" && echo " Adding strtoul.o."
+ LIBOBJS="$LIBOBJS strtoul.o"
+fi
+
+#--------------------------------------------------------------------
+# Check for the strtod function. This is tricky because in some
+# versions of Linux strtod mis-parses strings starting with "+".
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for strtod""... $ac_c" 1>&6
+echo "configure:3740: checking for strtod" >&5
+if eval "test \"`echo '$''{'ac_cv_func_strtod'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3745 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char strtod(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strtod();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_strtod) || defined (__stub___strtod)
+choke me
+#else
+strtod();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_strtod=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_strtod=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'strtod`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+if test "$cross_compiling" = yes; then
+ tcl_ok=0
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3792 "configure"
+#include "confdefs.h"
+
+extern double strtod();
+int main()
+{
+ char *string = " +69";
+ char *term;
+ double value;
+ value = strtod(string, &term);
+ if ((value != 69) || (term != (string+4))) {
+ exit(1);
+ }
+ exit(0);
+}
+EOF
+if { (eval echo configure:3808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_ok=0
+fi
+rm -fr conftest*
+fi
+
+if test "$tcl_ok" = 0; then
+ test -n "$verbose" && echo " Adding strtod.o."
+ LIBOBJS="$LIBOBJS strtod.o"
+fi
+
+#--------------------------------------------------------------------
+# Under Solaris 2.4, strtod returns the wrong value for the
+# terminating character under some conditions. Check for this
+# and if the problem exists use a substitute procedure
+# "fixstrtod" that corrects the error.
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking for strtod""... $ac_c" 1>&6
+echo "configure:3834: checking for strtod" >&5
+if eval "test \"`echo '$''{'ac_cv_func_strtod'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3839 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char strtod(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strtod();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_strtod) || defined (__stub___strtod)
+choke me
+#else
+strtod();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_strtod=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_strtod=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'strtod`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_strtod=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_strtod=0
+fi
+
+ if test "$tcl_strtod" = 1; then
+ echo $ac_n "checking for Solaris2.4/Tru64 strtod bugs""... $ac_c" 1>&6
+echo "configure:3884: checking for Solaris2.4/Tru64 strtod bugs" >&5
+ if eval "test \"`echo '$''{'tcl_cv_strtod_buggy'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ if test "$cross_compiling" = yes; then
+ tcl_cv_strtod_buggy=0
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3893 "configure"
+#include "confdefs.h"
+
+ extern double strtod();
+ int main() {
+ char *infString="Inf", *nanString="NaN", *spaceString=" ";
+ char *term;
+ double value;
+ value = strtod(infString, &term);
+ if ((term != infString) && (term[-1] == 0)) {
+ exit(1);
+ }
+ value = strtod(nanString, &term);
+ if ((term != nanString) && (term[-1] == 0)) {
+ exit(1);
+ }
+ value = strtod(spaceString, &term);
+ if (term == (spaceString+1)) {
+ exit(1);
+ }
+ exit(0);
+ }
+EOF
+if { (eval echo configure:3916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_strtod_buggy=1
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_strtod_buggy=0
+fi
+rm -fr conftest*
+fi
+
+fi
+
+ if test "$tcl_cv_strtod_buggy" = 1; then
+ echo "$ac_t""ok" 1>&6
+ else
+ echo "$ac_t""buggy" 1>&6
+ LIBOBJS="$LIBOBJS fixstrtod.o"
+ cat >> confdefs.h <<\EOF
+#define strtod fixstrtod
+EOF
+
+ fi
+ fi
+
+
+#--------------------------------------------------------------------
+# Check for various typedefs and provide substitutes if
+# they don't exist.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:3949: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 3954 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3962: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ ac_cv_header_stdc=yes
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 3979 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "memchr" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 3997 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "free" >/dev/null 2>&1; then
+ :
+else
+ rm -rf conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+ :
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4018 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:4029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+ cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for mode_t""... $ac_c" 1>&6
+echo "configure:4053: checking for mode_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4058 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_mode_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_mode_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_mode_t" 1>&6
+if test $ac_cv_type_mode_t = no; then
+ cat >> confdefs.h <<\EOF
+#define mode_t int
+EOF
+
+fi
+
+echo $ac_n "checking for pid_t""... $ac_c" 1>&6
+echo "configure:4086: checking for pid_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4091 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_pid_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_pid_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_pid_t" 1>&6
+if test $ac_cv_type_pid_t = no; then
+ cat >> confdefs.h <<\EOF
+#define pid_t int
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:4119: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4124 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_size_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+ cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
+echo "configure:4152: checking for uid_t in sys/types.h" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4157 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "uid_t" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_uid_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_type_uid_t" 1>&6
+if test $ac_cv_type_uid_t = no; then
+ cat >> confdefs.h <<\EOF
+#define uid_t int
+EOF
+
+ cat >> confdefs.h <<\EOF
+#define gid_t int
+EOF
+
+fi
+
+
+echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
+echo "configure:4187: checking for socklen_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4192 "configure"
+#include "confdefs.h"
+
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #if STDC_HEADERS
+ #include <stdlib.h>
+ #include <stddef.h>
+ #endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "(^|[^a-zA-Z_0-9])socklen_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_type_socklen_t=yes
+else
+ rm -rf conftest*
+ ac_cv_type_socklen_t=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_type_socklen_t" 1>&6
+if test $ac_cv_type_socklen_t = no; then
+ cat >> confdefs.h <<\EOF
+#define socklen_t unsigned
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# If a system doesn't have an opendir function (man, that's old!)
+# then we have to supply a different version of dirent.h which
+# is compatible with the substitute version of opendir that's
+# provided. This version only works with V7-style directories.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for opendir""... $ac_c" 1>&6
+echo "configure:4231: checking for opendir" >&5
+if eval "test \"`echo '$''{'ac_cv_func_opendir'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4236 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char opendir(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char opendir();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_opendir) || defined (__stub___opendir)
+choke me
+#else
+opendir();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_opendir=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_opendir=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'opendir`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define USE_DIRENT2_H 1
+EOF
+
+fi
+
+
+#--------------------------------------------------------------------
+# The check below checks whether <sys/wait.h> defines the type
+# "union wait" correctly. It's needed because of weirdness in
+# HP-UX where "union wait" is defined in both the BSD and SYS-V
+# environments. Checking the usability of WIFEXITED seems to do
+# the trick.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking union wait""... $ac_c" 1>&6
+echo "configure:4292: checking union wait" >&5
+if eval "test \"`echo '$''{'tcl_cv_union_wait'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4297 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/wait.h>
+int main() {
+
+union wait x;
+WIFEXITED(x); /* Generates compiler error if WIFEXITED
+ * uses an int. */
+; return 0; }
+EOF
+if { (eval echo configure:4309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ tcl_cv_union_wait=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_union_wait=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$tcl_cv_union_wait" 1>&6
+if test $tcl_cv_union_wait = no; then
+ cat >> confdefs.h <<\EOF
+#define NO_UNION_WAIT 1
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# Check whether there is an strncasecmp function on this system.
+# This is a bit tricky because under SCO it's in -lsocket and
+# under Sequent Dynix it's in -linet.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for strncasecmp""... $ac_c" 1>&6
+echo "configure:4336: checking for strncasecmp" >&5
+if eval "test \"`echo '$''{'ac_cv_func_strncasecmp'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4341 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char strncasecmp(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strncasecmp();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_strncasecmp) || defined (__stub___strncasecmp)
+choke me
+#else
+strncasecmp();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_strncasecmp=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_strncasecmp=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'strncasecmp`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+if test "$tcl_ok" = 0; then
+ echo $ac_n "checking for strncasecmp in -lsocket""... $ac_c" 1>&6
+echo "configure:4386: checking for strncasecmp in -lsocket" >&5
+ac_lib_var=`echo socket'_'strncasecmp | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lsocket $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4394 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strncasecmp();
+
+int main() {
+strncasecmp()
+; return 0; }
+EOF
+if { (eval echo configure:4405: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+fi
+if test "$tcl_ok" = 0; then
+ echo $ac_n "checking for strncasecmp in -linet""... $ac_c" 1>&6
+echo "configure:4429: checking for strncasecmp in -linet" >&5
+ac_lib_var=`echo inet'_'strncasecmp | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-linet $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4437 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char strncasecmp();
+
+int main() {
+strncasecmp()
+; return 0; }
+EOF
+if { (eval echo configure:4448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_ok=1
+else
+ echo "$ac_t""no" 1>&6
+tcl_ok=0
+fi
+
+fi
+if test "$tcl_ok" = 0; then
+ LIBOBJS="$LIBOBJS strncasecmp.o"
+fi
+
+#--------------------------------------------------------------------
+# The code below deals with several issues related to gettimeofday:
+# 1. Some systems don't provide a gettimeofday function at all
+# (set NO_GETTOD if this is the case).
+# 2. SGI systems don't use the BSD form of the gettimeofday function,
+# but they have a BSDgettimeofday function that can be used instead.
+# 3. See if gettimeofday is declared in the <sys/time.h> header file.
+# if not, set the GETTOD_NOT_DECLARED flag so that tclPort.h can
+# declare it.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for BSDgettimeofday""... $ac_c" 1>&6
+echo "configure:4486: checking for BSDgettimeofday" >&5
+if eval "test \"`echo '$''{'ac_cv_func_BSDgettimeofday'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4491 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char BSDgettimeofday(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char BSDgettimeofday();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_BSDgettimeofday) || defined (__stub___BSDgettimeofday)
+choke me
+#else
+BSDgettimeofday();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4514: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_BSDgettimeofday=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_BSDgettimeofday=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'BSDgettimeofday`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_BSDGETTIMEOFDAY 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+
+ echo $ac_n "checking for gettimeofday""... $ac_c" 1>&6
+echo "configure:4536: checking for gettimeofday" >&5
+if eval "test \"`echo '$''{'ac_cv_func_gettimeofday'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4541 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gettimeofday(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gettimeofday();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_gettimeofday) || defined (__stub___gettimeofday)
+choke me
+#else
+gettimeofday();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_gettimeofday=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_gettimeofday=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'gettimeofday`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+cat >> confdefs.h <<\EOF
+#define NO_GETTOD 1
+EOF
+
+fi
+
+
+fi
+
+echo $ac_n "checking for gettimeofday declaration""... $ac_c" 1>&6
+echo "configure:4591: checking for gettimeofday declaration" >&5
+if eval "test \"`echo '$''{'tcl_cv_grep_gettimeofday'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4596 "configure"
+#include "confdefs.h"
+#include <sys/time.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "gettimeofday" >/dev/null 2>&1; then
+ rm -rf conftest*
+ tcl_cv_grep_gettimeofday=present
+else
+ rm -rf conftest*
+ tcl_cv_grep_gettimeofday=missing
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$tcl_cv_grep_gettimeofday" 1>&6
+if test $tcl_cv_grep_gettimeofday = missing ; then
+ cat >> confdefs.h <<\EOF
+#define GETTOD_NOT_DECLARED 1
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# The following code checks to see whether it is possible to get
+# signed chars on this platform. This is needed in order to
+# properly generate sign-extended ints from character values.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6
+echo "configure:4627: checking whether char is unsigned" >&5
+if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$GCC" = yes; then
+ # GCC predefines this symbol on systems where it applies.
+cat > conftest.$ac_ext <<EOF
+#line 4634 "configure"
+#include "confdefs.h"
+#ifdef __CHAR_UNSIGNED__
+ yes
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "yes" >/dev/null 2>&1; then
+ rm -rf conftest*
+ ac_cv_c_char_unsigned=yes
+else
+ rm -rf conftest*
+ ac_cv_c_char_unsigned=no
+fi
+rm -f conftest*
+
+else
+if test "$cross_compiling" = yes; then
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4656 "configure"
+#include "confdefs.h"
+/* volatile prevents gcc2 from optimizing the test away on sparcs. */
+#if !defined(__STDC__) || __STDC__ != 1
+#define volatile
+#endif
+main() {
+ volatile char c = 255; exit(c < 0);
+}
+EOF
+if { (eval echo configure:4666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_char_unsigned=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_char_unsigned=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_c_char_unsigned" 1>&6
+if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
+ cat >> confdefs.h <<\EOF
+#define __CHAR_UNSIGNED__ 1
+EOF
+
+fi
+
+echo $ac_n "checking signed char declarations""... $ac_c" 1>&6
+echo "configure:4690: checking signed char declarations" >&5
+if eval "test \"`echo '$''{'tcl_cv_char_signed'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4695 "configure"
+#include "confdefs.h"
+
+int main() {
+
+ signed char *p;
+ p = 0;
+
+; return 0; }
+EOF
+if { (eval echo configure:4705: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ tcl_cv_char_signed=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ tcl_cv_char_signed=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$tcl_cv_char_signed" 1>&6
+if test $tcl_cv_char_signed = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_SIGNED_CHAR 1
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# Does putenv() copy or not? We need to know to avoid memory leaks.
+#--------------------------------------------------------------------
+
+echo $ac_n "checking for a putenv() that copies the buffer""... $ac_c" 1>&6
+echo "configure:4730: checking for a putenv() that copies the buffer" >&5
+if eval "test \"`echo '$''{'tcl_cv_putenv_copy'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ tcl_cv_putenv_copy=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4738 "configure"
+#include "confdefs.h"
+
+ #include <stdlib.h>
+ #define OURVAR "havecopy=yes"
+ int main (int argc, char *argv)
+ {
+ char *foo, *bar;
+ foo = (char *)strdup(OURVAR);
+ putenv(foo);
+ strcpy((char *)(strchr(foo, '=') + 1), "no");
+ bar = getenv("havecopy");
+ if (!strcmp(bar, "no")) {
+ /* doesnt copy */
+ return 0;
+ } else {
+ /* does copy */
+ return 1;
+ }
+ }
+EOF
+if { (eval echo configure:4760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_putenv_copy=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_putenv_copy=yes
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$tcl_cv_putenv_copy" 1>&6
+if test $tcl_cv_putenv_copy = yes; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_PUTENV_THAT_COPIES 1
+EOF
+
+fi
+
+#--------------------------------------------------------------------
+# Check for support of nl_langinfo function
+#--------------------------------------------------------------------
+
+
+ # Check whether --enable-langinfo or --disable-langinfo was given.
+if test "${enable_langinfo+set}" = set; then
+ enableval="$enable_langinfo"
+ langinfo_ok=$enableval
+else
+ langinfo_ok=yes
+fi
+
+
+ HAVE_LANGINFO=0
+ if test "$langinfo_ok" = "yes"; then
+ if test "$langinfo_ok" = "yes"; then
+ ac_safe=`echo "langinfo.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for langinfo.h""... $ac_c" 1>&6
+echo "configure:4802: checking for langinfo.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4807 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:4812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ langinfo_ok=yes
+else
+ echo "$ac_t""no" 1>&6
+langinfo_ok=no
+fi
+
+ fi
+ fi
+ echo $ac_n "checking whether to use nl_langinfo""... $ac_c" 1>&6
+echo "configure:4837: checking whether to use nl_langinfo" >&5
+ if test "$langinfo_ok" = "yes"; then
+ cat > conftest.$ac_ext <<EOF
+#line 4840 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int main() {
+nl_langinfo(CODESET);
+; return 0; }
+EOF
+if { (eval echo configure:4847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ langinfo_ok=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ langinfo_ok=no
+fi
+rm -f conftest*
+ if test "$langinfo_ok" = "no"; then
+ langinfo_ok="no (could not compile with nl_langinfo)";
+ fi
+ if test "$langinfo_ok" = "yes"; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_LANGINFO 1
+EOF
+
+ fi
+ fi
+ echo "$ac_t""$langinfo_ok" 1>&6
+
+
+#--------------------------------------------------------------------
+# Look for libraries that we will need when compiling the Tcl shell
+#--------------------------------------------------------------------
+
+
+ #--------------------------------------------------------------------
+ # On a few very rare systems, all of the libm.a stuff is
+ # already in libc.a. Set compiler flags accordingly.
+ # Also, Linux requires the "ieee" library for math to work
+ # right (and it must appear before "-lm").
+ #--------------------------------------------------------------------
+
+ echo $ac_n "checking for sin""... $ac_c" 1>&6
+echo "configure:4883: checking for sin" >&5
+if eval "test \"`echo '$''{'ac_cv_func_sin'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 4888 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char sin(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char sin();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_sin) || defined (__stub___sin)
+choke me
+#else
+sin();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_sin=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_sin=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ MATH_LIBS=""
+else
+ echo "$ac_t""no" 1>&6
+MATH_LIBS="-lm"
+fi
+
+ echo $ac_n "checking for main in -lieee""... $ac_c" 1>&6
+echo "configure:4932: checking for main in -lieee" >&5
+ac_lib_var=`echo ieee'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lieee $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4940 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:4947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ MATH_LIBS="-lieee $MATH_LIBS"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ #--------------------------------------------------------------------
+ # Interactive UNIX requires -linet instead of -lsocket, plus it
+ # needs net/errno.h to define the socket-related error codes.
+ #--------------------------------------------------------------------
+
+ echo $ac_n "checking for main in -linet""... $ac_c" 1>&6
+echo "configure:4974: checking for main in -linet" >&5
+ac_lib_var=`echo inet'_'main | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-linet $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 4982 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:4989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS -linet"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+ ac_safe=`echo "net/errno.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for net/errno.h""... $ac_c" 1>&6
+echo "configure:5011: checking for net/errno.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5016 "configure"
+#include "confdefs.h"
+#include <net/errno.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:5021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=yes"
+else
+ echo "$ac_err" >&5
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+#define HAVE_NET_ERRNO_H 1
+EOF
+
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+
+ #--------------------------------------------------------------------
+ # Check for the existence of the -lsocket and -lnsl libraries.
+ # The order here is important, so that they end up in the right
+ # order in the command line generated by make. Here are some
+ # special considerations:
+ # 1. Use "connect" and "accept" to check for -lsocket, and
+ # "gethostbyname" to check for -lnsl.
+ # 2. Use each function name only once: can't redo a check because
+ # autoconf caches the results of the last check and won't redo it.
+ # 3. Use -lnsl and -lsocket only if they supply procedures that
+ # aren't already present in the normal libraries. This is because
+ # IRIX 5.2 has libraries, but they aren't needed and they're
+ # bogus: they goof up name resolution if used.
+ # 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
+ # To get around this problem, check for both libraries together
+ # if -lsocket doesn't work by itself.
+ #--------------------------------------------------------------------
+
+ tcl_checkBoth=0
+ echo $ac_n "checking for connect""... $ac_c" 1>&6
+echo "configure:5066: checking for connect" >&5
+if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5071 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char connect(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char connect();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_connect) || defined (__stub___connect)
+choke me
+#else
+connect();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_connect=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_connect=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_checkSocket=0
+else
+ echo "$ac_t""no" 1>&6
+tcl_checkSocket=1
+fi
+
+ if test "$tcl_checkSocket" = 1; then
+ echo $ac_n "checking for setsockopt""... $ac_c" 1>&6
+echo "configure:5116: checking for setsockopt" >&5
+if eval "test \"`echo '$''{'ac_cv_func_setsockopt'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5121 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char setsockopt(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char setsockopt();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_setsockopt) || defined (__stub___setsockopt)
+choke me
+#else
+setsockopt();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_setsockopt=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_setsockopt=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'setsockopt`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for setsockopt in -lsocket""... $ac_c" 1>&6
+echo "configure:5162: checking for setsockopt in -lsocket" >&5
+ac_lib_var=`echo socket'_'setsockopt | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lsocket $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5170 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char setsockopt();
+
+int main() {
+setsockopt()
+; return 0; }
+EOF
+if { (eval echo configure:5181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS -lsocket"
+else
+ echo "$ac_t""no" 1>&6
+tcl_checkBoth=1
+fi
+
+fi
+
+ fi
+ if test "$tcl_checkBoth" = 1; then
+ tk_oldLibs=$LIBS
+ LIBS="$LIBS -lsocket -lnsl"
+ echo $ac_n "checking for accept""... $ac_c" 1>&6
+echo "configure:5209: checking for accept" >&5
+if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5214 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char accept(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char accept();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_accept) || defined (__stub___accept)
+choke me
+#else
+accept();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_accept=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_accept=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'accept`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ tcl_checkNsl=0
+else
+ echo "$ac_t""no" 1>&6
+LIBS=$tk_oldLibs
+fi
+
+ fi
+ echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
+echo "configure:5259: checking for gethostbyname" >&5
+if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftest.$ac_ext <<EOF
+#line 5264 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char gethostbyname(); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
+choke me
+#else
+gethostbyname();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_gethostbyname=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_func_gethostbyname=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ :
+else
+ echo "$ac_t""no" 1>&6
+echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
+echo "configure:5305: checking for gethostbyname in -lnsl" >&5
+ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lnsl $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5313 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostbyname();
+
+int main() {
+gethostbyname()
+; return 0; }
+EOF
+if { (eval echo configure:5324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ LIBS="$LIBS -lnsl"
+else
+ echo "$ac_t""no" 1>&6
+fi
+
+fi
+ # Don't perform the eval of the libraries here because DL_LIBS
+ # won't be set until we call SC_CONFIG_CFLAGS
+
+ TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}'
-#--------------------------------------------------------------------
-# Recompute the necessary flags to run the compiler
-#--------------------------------------------------------------------
+# Add the threads support libraries
+
+LIBS="$LIBS$THREADS_LIBS"
echo $ac_n "checking how to build libraries""... $ac_c" 1>&6
-echo "configure:1809: checking how to build libraries" >&5
+echo "configure:5361: checking how to build libraries" >&5
# Check whether --enable-shared or --disable-shared was given.
if test "${enable_shared+set}" = set; then
enableval="$enable_shared"
@@ -1835,10 +5387,16 @@ EOF
fi
+#--------------------------------------------------------------------
+# The statements below define a collection of compile flags. This
+# macro depends on the value of SHARED_BUILD, and should be called
+# after SC_ENABLE_SHARED checks the configure switches.
+#--------------------------------------------------------------------
+
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1842: checking for $ac_word" >&5
+echo "configure:5400: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1870,7 +5428,7 @@ fi
# Step 0.a: Enable 64 bit support?
echo $ac_n "checking if 64bit support is requested""... $ac_c" 1>&6
-echo "configure:1874: checking if 64bit support is requested" >&5
+echo "configure:5432: checking if 64bit support is requested" >&5
# Check whether --enable-64bit or --disable-64bit was given.
if test "${enable_64bit+set}" = set; then
enableval="$enable_64bit"
@@ -1890,7 +5448,7 @@ fi
# Step 0.b: Enable Solaris 64 bit VIS support?
echo $ac_n "checking if 64bit Sparc VIS support is requested""... $ac_c" 1>&6
-echo "configure:1894: checking if 64bit Sparc VIS support is requested" >&5
+echo "configure:5452: checking if 64bit Sparc VIS support is requested" >&5
# Check whether --enable-64bit-vis or --disable-64bit-vis was given.
if test "${enable_64bit_vis+set}" = set; then
enableval="$enable_64bit_vis"
@@ -1914,7 +5472,7 @@ fi
# there are a few systems, like Next, where this doesn't work.
echo $ac_n "checking system version (for dynamic loading)""... $ac_c" 1>&6
-echo "configure:1918: checking system version (for dynamic loading)" >&5
+echo "configure:5476: checking system version (for dynamic loading)" >&5
if test -f /usr/lib/NextStep/software_version; then
system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
else
@@ -1940,7 +5498,7 @@ echo "configure:1918: checking system version (for dynamic loading)" >&5
# Linux can use either -ldl or -ldld for dynamic loading.
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:1944: checking for dlopen in -ldl" >&5
+echo "configure:5502: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1948,7 +5506,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1952 "configure"
+#line 5510 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -1959,7 +5517,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:1963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2003,7 +5561,7 @@ fi
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2007: checking for $ac_word" >&5
+echo "configure:5565: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -2116,7 +5674,7 @@ fi
# known GMT value.
echo $ac_n "checking for gettimeofday in -lbsd""... $ac_c" 1>&6
-echo "configure:2120: checking for gettimeofday in -lbsd" >&5
+echo "configure:5678: checking for gettimeofday in -lbsd" >&5
ac_lib_var=`echo bsd'_'gettimeofday | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2124,7 +5682,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbsd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2128 "configure"
+#line 5686 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2135,7 +5693,7 @@ int main() {
gettimeofday()
; return 0; }
EOF
-if { (eval echo configure:2139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2217,7 +5775,7 @@ EOF
SHLIB_SUFFIX=".sl"
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:2221: checking for shl_load in -ldld" >&5
+echo "configure:5779: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2225,7 +5783,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2229 "configure"
+#line 5787 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2236,7 +5794,7 @@ int main() {
shl_load()
; return 0; }
EOF
-if { (eval echo configure:2240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2298,7 +5856,7 @@ fi
HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
SHLIB_SUFFIX=".sl"
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:2302: checking for shl_load in -ldld" >&5
+echo "configure:5860: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -2306,7 +5864,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2310 "configure"
+#line 5868 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -2317,7 +5875,7 @@ int main() {
shl_load()
; return 0; }
EOF
-if { (eval echo configure:2321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -2445,17 +6003,17 @@ fi
else
ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dld.h""... $ac_c" 1>&6
-echo "configure:2449: checking for dld.h" >&5
+echo "configure:6007: checking for dld.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2454 "configure"
+#line 6012 "configure"
#include "confdefs.h"
#include <dld.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2459: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6017: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2514,17 +6072,17 @@ fi
else
ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dld.h""... $ac_c" 1>&6
-echo "configure:2518: checking for dld.h" >&5
+echo "configure:6076: checking for dld.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2523 "configure"
+#line 6081 "configure"
#include "confdefs.h"
#include <dld.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2528: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6086: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2582,17 +6140,17 @@ fi
# Not available on all versions: check for include file.
ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:2586: checking for dlfcn.h" >&5
+echo "configure:6144: checking for dlfcn.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2591 "configure"
+#line 6149 "configure"
#include "confdefs.h"
#include <dlfcn.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6154: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -2620,9 +6178,9 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
echo $ac_n "checking for ELF""... $ac_c" 1>&6
-echo "configure:2624: checking for ELF" >&5
+echo "configure:6182: checking for ELF" >&5
cat > conftest.$ac_ext <<EOF
-#line 2626 "configure"
+#line 6184 "configure"
#include "confdefs.h"
#ifdef __ELF__
@@ -2980,17 +6538,17 @@ EOF
# that don't grok the -Bexport option. Test that it does.
hold_ldflags=$LDFLAGS
echo $ac_n "checking for ld accepts -Bexport flag""... $ac_c" 1>&6
-echo "configure:2984: checking for ld accepts -Bexport flag" >&5
+echo "configure:6542: checking for ld accepts -Bexport flag" >&5
LDFLAGS="${LDFLAGS} -Wl,-Bexport"
cat > conftest.$ac_ext <<EOF
-#line 2987 "configure"
+#line 6545 "configure"
#include "confdefs.h"
int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:2994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
found=yes
else
@@ -3037,9 +6595,9 @@ rm -f conftest*
if test "x$DL_OBJS" = "xtclLoadAout.o" ; then
echo $ac_n "checking sys/exec.h""... $ac_c" 1>&6
-echo "configure:3041: checking sys/exec.h" >&5
+echo "configure:6599: checking sys/exec.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3043 "configure"
+#line 6601 "configure"
#include "confdefs.h"
#include <sys/exec.h>
int main() {
@@ -3057,7 +6615,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_ok=usable
else
@@ -3075,9 +6633,9 @@ EOF
else
echo $ac_n "checking a.out.h""... $ac_c" 1>&6
-echo "configure:3079: checking a.out.h" >&5
+echo "configure:6637: checking a.out.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3081 "configure"
+#line 6639 "configure"
#include "confdefs.h"
#include <a.out.h>
int main() {
@@ -3095,7 +6653,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_ok=usable
else
@@ -3113,9 +6671,9 @@ EOF
else
echo $ac_n "checking sys/exec_aout.h""... $ac_c" 1>&6
-echo "configure:3117: checking sys/exec_aout.h" >&5
+echo "configure:6675: checking sys/exec_aout.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 3119 "configure"
+#line 6677 "configure"
#include "confdefs.h"
#include <sys/exec_aout.h>
int main() {
@@ -3133,7 +6691,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:3137: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6695: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
tcl_ok=usable
else
@@ -3287,7 +6845,7 @@ fi
echo $ac_n "checking for build with symbols""... $ac_c" 1>&6
-echo "configure:3291: checking for build with symbols" >&5
+echo "configure:6849: checking for build with symbols" >&5
# Check whether --enable-symbols or --disable-symbols was given.
if test "${enable_symbols+set}" = set; then
enableval="$enable_symbols"
@@ -3312,544 +6870,91 @@ fi
-LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'
-
-TK_DBGX=${DBGX}
-
-#------------------------------------------------------------------------
-# If Tcl and Tk are installed in different places, adjust the library
-# search path to reflect this.
-#------------------------------------------------------------------------
-
-if test "$TCL_EXEC_PREFIX" != "$exec_prefix"; then
- LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${TCL_EXEC_PREFIX}/lib"
-fi
-
-#--------------------------------------------------------------------
-# On a few very rare systems, all of the libm.a stuff is
-# already in libc.a. Set compiler flags accordingly.
-# Also, Linux requires the "ieee" library for math to work
-# right (and it must appear before "-lm").
-#--------------------------------------------------------------------
-
-echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:3337: checking for sin" >&5
-if eval "test \"`echo '$''{'ac_cv_func_sin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3342 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char sin(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char sin();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_sin) || defined (__stub___sin)
-choke me
-#else
-sin();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_sin=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_sin=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- MATH_LIBS=""
-else
- echo "$ac_t""no" 1>&6
-MATH_LIBS="-lm"
-fi
-
-echo $ac_n "checking for main in -lieee""... $ac_c" 1>&6
-echo "configure:3386: checking for main in -lieee" >&5
-ac_lib_var=`echo ieee'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lieee $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3394 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:3401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- MATH_LIBS="-lieee $MATH_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-#--------------------------------------------------------------------
-# On AIX systems, libbsd.a has to be linked in to support
-# non-blocking file IO. This library has to be linked in after
-# the MATH_LIBS or it breaks the pow() function. The way to
-# insure proper sequencing, is to add it to the tail of MATH_LIBS.
-# This library also supplies gettimeofday.
-#--------------------------------------------------------------------
-libbsd=no
-if test "`uname -s`" = "AIX" ; then
- echo $ac_n "checking for gettimeofday in -lbsd""... $ac_c" 1>&6
-echo "configure:3432: checking for gettimeofday in -lbsd" >&5
-ac_lib_var=`echo bsd'_'gettimeofday | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lbsd $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3440 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gettimeofday();
-
-int main() {
-gettimeofday()
-; return 0; }
-EOF
-if { (eval echo configure:3451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- libbsd=yes
+ echo $ac_n "checking for build with memory debugging""... $ac_c" 1>&6
+echo "configure:6875: checking for build with memory debugging" >&5
+ # Check whether --enable-memdebug or --disable-memdebug was given.
+if test "${enable_memdebug+set}" = set; then
+ enableval="$enable_memdebug"
+ tcl_ok=$enableval
else
- echo "$ac_t""no" 1>&6
+ tcl_ok=no
fi
- if test $libbsd = yes; then
- MATH_LIBS="$MATH_LIBS -lbsd"
+ if test "$tcl_ok" = "yes"; then
+ MEM_DEBUG_FLAGS=-DTCL_MEM_DEBUG
+ echo "$ac_t""yes" 1>&6
+ else
+ MEM_DEBUG_FLAGS=""
+ echo "$ac_t""no" 1>&6
fi
-fi
-
-#--------------------------------------------------------------------
-# Supply a substitute for stdlib.h if it doesn't define strtol,
-# strtoul, or strtod (which it doesn't in some versions of SunOS).
-#--------------------------------------------------------------------
-
-echo $ac_n "checking stdlib.h""... $ac_c" 1>&6
-echo "configure:3482: checking stdlib.h" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3484 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "strtol" >/dev/null 2>&1; then
- rm -rf conftest*
- tk_ok=yes
-else
- rm -rf conftest*
- tk_ok=no
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 3499 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "strtoul" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- tk_ok=no
-fi
-rm -f conftest*
-
-cat > conftest.$ac_ext <<EOF
-#line 3513 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "strtod" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- tk_ok=no
-fi
-rm -f conftest*
+
-if test $tk_ok = no; then
- cat >> confdefs.h <<\EOF
-#define NO_STDLIB_H 1
-EOF
-fi
-echo "$ac_t""$tk_ok" 1>&6
+TCL_DBGX=${DBGX}
#--------------------------------------------------------------------
-# Include sys/select.h if it exists and if it supplies things
-# that appear to be useful and aren't already in sys/types.h.
-# This appears to be true only on the RS/6000 under AIX. Some
-# systems like OSF/1 have a sys/select.h that's of no use, and
-# other systems like SCO UNIX have a sys/select.h that's
-# pernicious. If "fd_set" isn't defined anywhere then set a
-# special flag.
+# The statements below check for systems where POSIX-style
+# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.
+# On these systems (mostly older ones), use the old BSD-style
+# FIONBIO approach instead.
#--------------------------------------------------------------------
-echo $ac_n "checking fd_set and sys/select""... $ac_c" 1>&6
-echo "configure:3545: checking fd_set and sys/select" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3547 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-fd_set readMask, writeMask;
-; return 0; }
-EOF
-if { (eval echo configure:3554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- tk_ok=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- tk_ok=no
-fi
-rm -f conftest*
-if test $tk_ok = no; then
- cat > conftest.$ac_ext <<EOF
-#line 3566 "configure"
-#include "confdefs.h"
-#include <sys/select.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "fd_mask" >/dev/null 2>&1; then
- rm -rf conftest*
- tk_ok=yes
-fi
-rm -f conftest*
-
- if test $tk_ok = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_SYS_SELECT_H 1
-EOF
- fi
-fi
-echo "$ac_t""$tk_ok" 1>&6
-if test $tk_ok = no; then
- cat >> confdefs.h <<\EOF
-#define NO_FD_SET 1
-EOF
-
-fi
-
-#--------------------------------------------------------------------
-# Check for various typedefs and provide substitutes if
-# they don't exist.
-#--------------------------------------------------------------------
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3598: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ for ac_hdr in sys/ioctl.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:6908: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3603 "configure"
+#line 6913 "configure"
#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6918: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
- ac_cv_header_stdc=yes
+ eval "ac_cv_header_$ac_safe=yes"
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 3628 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 3646 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 3667 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:3678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3702: checking for mode_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3707 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_mode_t=yes
-else
- rm -rf conftest*
- ac_cv_type_mode_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_mode_t" 1>&6
-if test $ac_cv_type_mode_t = no; then
- cat >> confdefs.h <<\EOF
-#define mode_t int
-EOF
-
-fi
-
-echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3735: checking for pid_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3740 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_pid_t=yes
-else
- rm -rf conftest*
- ac_cv_type_pid_t=no
-fi
-rm -f conftest*
-
-fi
-echo "$ac_t""$ac_cv_type_pid_t" 1>&6
-if test $ac_cv_type_pid_t = no; then
- cat >> confdefs.h <<\EOF
-#define pid_t int
-EOF
-
-fi
-
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3768: checking for size_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3773 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_size_t=yes
-else
- rm -rf conftest*
- ac_cv_type_size_t=no
+ eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
-
fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
- cat >> confdefs.h <<\EOF
-#define size_t unsigned
-EOF
-
-fi
-
-echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3801: checking for uid_t in sys/types.h" >&5
-if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3806 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "uid_t" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_type_uid_t=yes
+
else
- rm -rf conftest*
- ac_cv_type_uid_t=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_type_uid_t" 1>&6
-if test $ac_cv_type_uid_t = no; then
- cat >> confdefs.h <<\EOF
-#define uid_t int
-EOF
-
- cat >> confdefs.h <<\EOF
-#define gid_t int
-EOF
-
+ echo "$ac_t""no" 1>&6
fi
+done
-
-#------------------------------------------------------------------------------
-# Find out about time handling differences.
-#------------------------------------------------------------------------------
-
-for ac_hdr in sys/time.h
+ for ac_hdr in sys/filio.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3843: checking for $ac_hdr" >&5
+echo "configure:6948: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3848 "configure"
+#line 6953 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6958: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3875,1170 +6980,195 @@ else
fi
done
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3880: checking whether time.h and sys/time.h may both be included" >&5
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3885 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:3894: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-
-#-------------------------------------------
-# In OS/390 struct pwd has no pw_gecos field
-#-------------------------------------------
-
-echo $ac_n "checking pw_gecos in struct pwd""... $ac_c" 1>&6
-echo "configure:3920: checking pw_gecos in struct pwd" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3922 "configure"
-#include "confdefs.h"
-#include <pwd.h>
-int main() {
-struct passwd pwd; pwd.pw_gecos;
-; return 0; }
-EOF
-if { (eval echo configure:3929: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- tk_ok=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- tk_ok=no
-fi
-rm -f conftest*
-echo "$ac_t""$tk_ok" 1>&6
-if test $tk_ok = yes; then
- cat >> confdefs.h <<\EOF
-#define HAVE_PW_GECOS 1
-EOF
-
-fi
-
-#--------------------------------------------------------------------
-# Locate the X11 header files and the X11 library archive. Try
-# the ac_path_x macro first, but if it doesn't find the X stuff
-# (e.g. because there's no xmkmf program) then check through
-# a list of possible directories. Under some conditions the
-# autoconf macro will return an include directory that contains
-# no include files, so double-check its result just to be safe.
-#--------------------------------------------------------------------
-
-
- # If we find X, set shell vars x_includes and x_libraries to the
-# paths, otherwise set no_x=yes.
-# Uses ac_ vars as temps to allow command line to override cache and checks.
-# --without-x overrides everything else, but does not touch the cache.
-echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:3962: checking for X" >&5
-
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
- withval="$with_x"
- :
-fi
-
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
- # The user explicitly disabled X.
- have_x=disabled
-else
- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
- # Both variables are already set.
- have_x=yes
- else
-if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=NO ac_x_libraries=NO
-rm -fr conftestdir
-if mkdir conftestdir; then
- cd conftestdir
- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
- cat > Imakefile <<'EOF'
-acfindx:
- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-EOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in a so sl; do
- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
- fi
- done
- # Screen out bogus values from the imake configuration. They are
- # bogus both because they are the default anyway, and because
- # using them would break gcc on systems where it needs fixed includes.
- case "$ac_im_incroot" in
- /usr/include) ;;
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
- esac
- case "$ac_im_usrlibdir" in
- /usr/lib | /lib) ;;
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
- esac
- fi
- cd ..
- rm -fr conftestdir
-fi
-
-if test "$ac_x_includes" = NO; then
- # Guess where to find include files, by looking for this one X11 .h file.
- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
- # First, try using that file with no special directory specified.
-cat > conftest.$ac_ext <<EOF
-#line 4024 "configure"
-#include "confdefs.h"
-#include <$x_direct_test_include>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4029: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- # Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
- for ac_dir in \
- /usr/X11/include \
- /usr/X11R6/include \
- /usr/X11R5/include \
- /usr/X11R4/include \
- \
- /usr/include/X11 \
- /usr/include/X11R6 \
- /usr/include/X11R5 \
- /usr/include/X11R4 \
- \
- /usr/local/X11/include \
- /usr/local/X11R6/include \
- /usr/local/X11R5/include \
- /usr/local/X11R4/include \
- \
- /usr/local/include/X11 \
- /usr/local/include/X11R6 \
- /usr/local/include/X11R5 \
- /usr/local/include/X11R4 \
- \
- /usr/X386/include \
- /usr/x386/include \
- /usr/XFree86/include/X11 \
- \
- /usr/include \
- /usr/local/include \
- /usr/unsupported/include \
- /usr/athena/include \
- /usr/local/x11r5/include \
- /usr/lpp/Xamples/include \
- \
- /usr/openwin/include \
- /usr/openwin/share/include \
- ; \
- do
- if test -r "$ac_dir/$x_direct_test_include"; then
- ac_x_includes=$ac_dir
- break
- fi
- done
-fi
-rm -f conftest*
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
- # Check for the libraries.
-
- test -z "$x_direct_test_library" && x_direct_test_library=Xt
- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
-
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS="$LIBS"
- LIBS="-l$x_direct_test_library $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4098 "configure"
-#include "confdefs.h"
-
-int main() {
-${x_direct_test_function}()
-; return 0; }
-EOF
-if { (eval echo configure:4105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
- /usr/X11/lib \
- /usr/X11R6/lib \
- /usr/X11R5/lib \
- /usr/X11R4/lib \
- \
- /usr/lib/X11 \
- /usr/lib/X11R6 \
- /usr/lib/X11R5 \
- /usr/lib/X11R4 \
- \
- /usr/local/X11/lib \
- /usr/local/X11R6/lib \
- /usr/local/X11R5/lib \
- /usr/local/X11R4/lib \
- \
- /usr/local/lib/X11 \
- /usr/local/lib/X11R6 \
- /usr/local/lib/X11R5 \
- /usr/local/lib/X11R4 \
- \
- /usr/X386/lib \
- /usr/x386/lib \
- /usr/XFree86/lib/X11 \
- \
- /usr/lib \
- /usr/local/lib \
- /usr/unsupported/lib \
- /usr/athena/lib \
- /usr/local/x11r5/lib \
- /usr/lpp/Xamples/lib \
- /lib/usr/lib/X11 \
- \
- /usr/openwin/lib \
- /usr/openwin/share/lib \
- ; \
-do
- for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done
-fi
-rm -f conftest*
-fi # $ac_x_libraries = NO
-
-if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
- # Didn't find X anywhere. Cache the known absence of X.
- ac_cv_have_x="have_x=no"
-else
- # Record where we found X for the cache.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
- fi
- eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
- echo "$ac_t""$have_x" 1>&6
- no_x=yes
-else
- # If each of the values was on the command line, it overrides each guess.
- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
- # Update the cache value to reflect the command line values.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6
-fi
-
- not_really_there=""
- if test "$no_x" = ""; then
- if test "$x_includes" = ""; then
- cat > conftest.$ac_ext <<EOF
-#line 4195 "configure"
-#include "confdefs.h"
-#include <X11/XIntrinsic.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4200: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- not_really_there="yes"
-fi
-rm -f conftest*
+ echo $ac_n "checking FIONBIO vs. O_NONBLOCK for nonblocking I/O""... $ac_c" 1>&6
+echo "configure:6985: checking FIONBIO vs. O_NONBLOCK for nonblocking I/O" >&5
+ if test -f /usr/lib/NextStep/software_version; then
+ system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
+ else
+ system=`uname -s`-`uname -r`
+ if test "$?" -ne 0 ; then
+ system=unknown
else
- if test ! -r $x_includes/X11/Intrinsic.h; then
- not_really_there="yes"
+ # Special check for weird MP-RAS system (uname returns weird
+ # results, and the version is kept in special file).
+
+ if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
+ system=MP-RAS-`awk '{print }' /etc/.relid'`
fi
- fi
- fi
- if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
- echo $ac_n "checking for X11 header files""... $ac_c" 1>&6
-echo "configure:4220: checking for X11 header files" >&5
- found_xincludes="no"
- cat > conftest.$ac_ext <<EOF
-#line 4223 "configure"
-#include "confdefs.h"
-#include <X11/Intrinsic.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4228: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- found_xincludes="yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- found_xincludes="no"
-fi
-rm -f conftest*
- if test "$found_xincludes" = "no"; then
- dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include"
- for i in $dirs ; do
- if test -r $i/X11/Intrinsic.h; then
- echo "$ac_t""$i" 1>&6
- XINCLUDES=" -I$i"
- found_xincludes="yes"
- break
- fi
- done
- fi
- else
- if test "$x_includes" != ""; then
- XINCLUDES="-I$x_includes"
- found_xincludes="yes"
- fi
- fi
- if test found_xincludes = "no"; then
- echo "$ac_t""couldn't find any!" 1>&6
- fi
-
- if test "$no_x" = yes; then
- echo $ac_n "checking for X11 libraries""... $ac_c" 1>&6
-echo "configure:4264: checking for X11 libraries" >&5
- XLIBSW=nope
- dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
- for i in $dirs ; do
- if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then
- echo "$ac_t""$i" 1>&6
- XLIBSW="-L$i -lX11"
- x_libraries="$i"
- break
+ if test "`uname -s`" = "AIX" ; then
+ system=AIX-`uname -v`.`uname -r`
fi
- done
- else
- if test "$x_libraries" = ""; then
- XLIBSW=-lX11
- else
- XLIBSW="-L$x_libraries -lX11"
fi
fi
- if test "$XLIBSW" = nope ; then
- echo $ac_n "checking for XCreateWindow in -lXwindow""... $ac_c" 1>&6
-echo "configure:4284: checking for XCreateWindow in -lXwindow" >&5
-ac_lib_var=`echo Xwindow'_'XCreateWindow | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lXwindow $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4292 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XCreateWindow();
-
-int main() {
-XCreateWindow()
-; return 0; }
-EOF
-if { (eval echo configure:4303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- XLIBSW=-lXwindow
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
- if test "$XLIBSW" = nope ; then
- echo "$ac_t""couldn't find any! Using -lX11." 1>&6
- XLIBSW=-lX11
- fi
-
-
-#--------------------------------------------------------------------
-# Various manipulations on the search path used at runtime to
-# find shared libraries:
-# 1. If the X library binaries are in a non-standard directory,
-# add the X library location into that search path.
-# 2. On systems such as AIX and Ultrix that use "-L" as the
-# search path option, colons cannot be used to separate
-# directories from each other. Change colons to " -L".
-# 3. Create two sets of search flags, one for use in cc lines
-# and the other for when the linker is invoked directly. In
-# the second case, '-Wl,' must be stripped off and commas must
-# be replaced by spaces.
-#--------------------------------------------------------------------
-
-if test "x${x_libraries}" != "x"; then
- LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${x_libraries}"
-fi
-if test "${TCL_LD_SEARCH_FLAGS}" = '-L${LIB_RUNTIME_DIR}'; then
- LIB_RUNTIME_DIR=`echo ${LIB_RUNTIME_DIR} |sed -e 's/:/ -L/g'`
-fi
-
-# The statement below is very tricky! It actually *evaluates* the
-# string in TCL_CC_SEARCH_FLAGS and TCL_LD_SEARCH_FLAGS which
-# causes a substitution of the variable LIB_RUNTIME_DIR.
-
-eval "CC_SEARCH_FLAGS=\"$TCL_CC_SEARCH_FLAGS\""
-eval "LD_SEARCH_FLAGS=\"$TCL_LD_SEARCH_FLAGS\""
-
-#--------------------------------------------------------------------
-# Check for the existence of various libraries. The order here
-# is important, so that then end up in the right order in the
-# command line generated by make. The -lsocket and -lnsl libraries
-# require a couple of special tricks:
-# 1. Use "connect" and "accept" to check for -lsocket, and
-# "gethostbyname" to check for -lnsl.
-# 2. Use each function name only once: can't redo a check because
-# autoconf caches the results of the last check and won't redo it.
-# 3. Use -lnsl and -lsocket only if they supply procedures that
-# aren't already present in the normal libraries. This is because
-# IRIX 5.2 has libraries, but they aren't needed and they're
-# bogus: they goof up name resolution if used.
-# 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
-# To get around this problem, check for both libraries together
-# if -lsocket doesn't work by itself.
-#--------------------------------------------------------------------
-
-echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:4377: checking for main in -lXbsd" >&5
-ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lXbsd $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4385 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4392: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$LIBS -lXbsd"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-tk_checkBoth=0
-echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:4415: checking for connect" >&5
-if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4420 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char connect(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char connect();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_connect) || defined (__stub___connect)
-choke me
-#else
-connect();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4443: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_connect=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_connect=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- tk_checkSocket=0
-else
- echo "$ac_t""no" 1>&6
-tk_checkSocket=1
-fi
-
-if test "$tk_checkSocket" = 1; then
- echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
-echo "configure:4465: checking for main in -lsocket" >&5
-ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4473 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$LIBS -lsocket"
-else
- echo "$ac_t""no" 1>&6
-tk_checkBoth=1
-fi
-
-fi
-if test "$tk_checkBoth" = 1; then
- tk_oldLibs=$LIBS
- LIBS="$LIBS -lsocket -lnsl"
- echo $ac_n "checking for accept""... $ac_c" 1>&6
-echo "configure:4506: checking for accept" >&5
-if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4511 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char accept(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char accept();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_accept) || defined (__stub___accept)
-choke me
-#else
-accept();
-#endif
+ case $system in
+ # There used to be code here to use FIONBIO under AIX. However, it
+ # was reported that FIONBIO doesn't work under AIX 3.2.5. Since
+ # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO
+ # code (JO, 5/31/97).
-; return 0; }
+ OSF*)
+ cat >> confdefs.h <<\EOF
+#define USE_FIONBIO 1
EOF
-if { (eval echo configure:4534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_accept=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_accept=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_func_'accept`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- tk_checkNsl=0
-else
- echo "$ac_t""no" 1>&6
-LIBS=$tk_oldLibs
-fi
-
-fi
-echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:4556: checking for gethostbyname" >&5
-if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4561 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gethostbyname(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
-choke me
-#else
-gethostbyname();
-#endif
-
-; return 0; }
+ echo "$ac_t""FIONBIO" 1>&6
+ ;;
+ SunOS-4*)
+ cat >> confdefs.h <<\EOF
+#define USE_FIONBIO 1
EOF
-if { (eval echo configure:4584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
-echo "configure:4602: checking for main in -lnsl" >&5
-ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4610 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
+ echo "$ac_t""FIONBIO" 1>&6
+ ;;
+ ULTRIX-4.*)
+ cat >> confdefs.h <<\EOF
+#define USE_FIONBIO 1
EOF
-if { (eval echo configure:4617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$LIBS -lnsl"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
+ echo "$ac_t""FIONBIO" 1>&6
+ ;;
+ *)
+ echo "$ac_t""O_NONBLOCK" 1>&6
+ ;;
+ esac
-# Add the threads support libraries
-
-LIBS="$LIBS$THREADS_LIBS"
#--------------------------------------------------------------------
-# One more check related to the X libraries. The standard releases
-# of Ultrix don't support the "xauth" mechanism, so send won't work
-# unless TK_NO_SECURITY is defined. However, there are usually copies
-# of the MIT X server available as well, which do support xauth.
-# Check for the MIT stuff and use it if it exists.
-#
-# Note: can't use ac_check_lib macro (at least, not in Autoconf 2.1)
-# because it can't deal with the "-" in the library name.
+# The statements below define a collection of symbols related to
+# building libtcl as a shared library instead of a static library.
#--------------------------------------------------------------------
-if test -d /usr/include/mit ; then
- echo $ac_n "checking MIT X libraries""... $ac_c" 1>&6
-echo "configure:4657: checking MIT X libraries" >&5
- tk_oldCFlags=$CFLAGS
- CFLAGS="$CFLAGS -I/usr/include/mit"
- tk_oldLibs=$LIBS
- LIBS="$LIBS -lX11-mit"
- cat > conftest.$ac_ext <<EOF
-#line 4663 "configure"
-#include "confdefs.h"
+TCL_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
+TCL_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
- #include <X11/Xlib.h>
-
-int main() {
- XOpenDisplay(0);
-
-; return 0; }
-EOF
-if { (eval echo configure:4674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
-
- echo "$ac_t""yes" 1>&6
- XLIBSW="-lX11-mit"
- XINCLUDES="-I/usr/include/mit"
-
+ echo $ac_n "checking how to package libraries""... $ac_c" 1>&6
+echo "configure:7048: checking how to package libraries" >&5
+ # Check whether --enable-framework or --disable-framework was given.
+if test "${enable_framework+set}" = set; then
+ enableval="$enable_framework"
+ tcl_ok=$enableval
else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
-fi
-rm -f conftest*
- CFLAGS=$tk_oldCFlags
- LIBS=$tk_oldLibs
+ tcl_ok=no
fi
-#--------------------------------------------------------------------
-# On a few very rare systems, all of the libm.a stuff is
-# already in libc.a. Set compiler flags accordingly.
-# Also, Linux requires the "ieee" library for math to
-# work right (and it must appear before "-lm").
-#--------------------------------------------------------------------
-MATH_LIBS=""
-echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4701: checking for sin" >&5
-if eval "test \"`echo '$''{'ac_cv_func_sin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4706 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char sin(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char sin();
+ if test "${enable_framework+set}" = set; then
+ enableval="$enable_framework"
+ tcl_ok=$enableval
+ else
+ tcl_ok=no
+ fi
-int main() {
+ if test "$tcl_ok" = "yes" ; then
+ echo "$ac_t""framework" 1>&6
+ FRAMEWORK_BUILD=1
+ if test "${SHARED_BUILD}" = "0" ; then
+ echo "configure: warning: "Frameworks can only be built if --enable-shared is yes"" 1>&2
+ FRAMEWORK_BUILD=0
+ fi
+ else
+ echo "$ac_t""standard shared library" 1>&6
+ FRAMEWORK_BUILD=0
+ fi
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_sin) || defined (__stub___sin)
-choke me
-#else
-sin();
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:4729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_sin=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_sin=no"
-fi
-rm -f conftest*
-fi
+# tclConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed
+# so that the backslashes quoting the DBX braces are dropped.
-if eval "test \"`echo '$ac_cv_func_'sin`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-MATH_LIBS="-lm"
-fi
+# Trick to replace DBGX with TCL_DBGX
+DBGX='${TCL_DBGX}'
+eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
-echo $ac_n "checking for main in -lieee""... $ac_c" 1>&6
-echo "configure:4750: checking for main in -lieee" >&5
-ac_lib_var=`echo ieee'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lieee $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4758 "configure"
-#include "confdefs.h"
+# Note: in the following variable, it's important to use the absolute
+# path name of the Tcl directory rather than "..": this is because
+# AIX remembers this path and will attempt to use it at run-time to look
+# up the Tcl library.
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:4765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
+if test "$FRAMEWORK_BUILD" = "1" ; then
+ TCL_BUILD_LIB_SPEC="-F`pwd` -framework Tcl"
+ TCL_LIB_SPEC="-framework Tcl"
+ TCL_LIB_FILE="Tcl"
+elif test "$SHARED_BUILD" = "0" || test "$TCL_NEEDS_EXP_FILE" = "0"; then
+ if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
+ TCL_LIB_FLAG="-ltcl${TCL_VERSION}\${TCL_DBGX}"
+ else
+ TCL_LIB_FLAG="-ltcl`echo ${TCL_VERSION} | tr -d .`\${TCL_DBGX}"
+ fi
+ TCL_BUILD_LIB_SPEC="-L`pwd` ${TCL_LIB_FLAG}"
+ TCL_LIB_SPEC="-L${libdir} ${TCL_LIB_FLAG}"
else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
+ TCL_BUILD_EXP_FILE="lib.exp"
+ eval "TCL_EXP_FILE=libtcl${TCL_EXPORT_FILE_SUFFIX}"
+ # Replace DBGX with TCL_DBGX
+ eval "TCL_EXP_FILE=\"${TCL_EXP_FILE}\""
+
+ if test "$GCC" = "yes" ; then
+ TCL_BUILD_LIB_SPEC="-Wl,-bI:`pwd`/${TCL_BUILD_EXP_FILE} -L`pwd`"
+ TCL_LIB_SPEC="-Wl,-bI:${libdir}/${TCL_EXP_FILE} -L`pwd`"
+ else
+ TCL_BUILD_LIB_SPEC="-bI:`pwd`/${TCL_BUILD_EXP_FILE}"
+ TCL_LIB_SPEC="-bI:${libdir}/${TCL_EXP_FILE}"
+ fi
fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- MATH_LIBS="-lieee $MATH_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
+VERSION='${VERSION}'
+eval "CFG_TCL_SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
+eval "CFG_TCL_UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}"
+eval "CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}"
+VERSION=${TCL_VERSION}
#--------------------------------------------------------------------
-# Figure out whether "char" is unsigned. If so, set a
-# #define for __CHAR_UNSIGNED__.
+# The statements below define the symbol TCL_PACKAGE_PATH, which
+# gives a list of directories that may contain packages. The list
+# consists of one directory for machine-dependent binaries and
+# another for platform-independent scripts.
#--------------------------------------------------------------------
-echo $ac_n "checking whether char is unsigned""... $ac_c" 1>&6
-echo "configure:4792: checking whether char is unsigned" >&5
-if eval "test \"`echo '$''{'ac_cv_c_char_unsigned'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
+if test "$FRAMEWORK_BUILD" = "1" ; then
+ TCL_PACKAGE_PATH="${libdir}/Resources/Scripts"
+elif test "$prefix" != "$exec_prefix"; then
+ TCL_PACKAGE_PATH="${libdir} ${prefix}/lib"
else
- if test "$GCC" = yes; then
- # GCC predefines this symbol on systems where it applies.
-cat > conftest.$ac_ext <<EOF
-#line 4799 "configure"
-#include "confdefs.h"
-#ifdef __CHAR_UNSIGNED__
- yes
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "yes" >/dev/null 2>&1; then
- rm -rf conftest*
- ac_cv_c_char_unsigned=yes
-else
- rm -rf conftest*
- ac_cv_c_char_unsigned=no
+ TCL_PACKAGE_PATH="${prefix}/lib"
fi
-rm -f conftest*
-
-else
-if test "$cross_compiling" = yes; then
- { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
- cat > conftest.$ac_ext <<EOF
-#line 4821 "configure"
-#include "confdefs.h"
-/* volatile prevents gcc2 from optimizing the test away on sparcs. */
-#if !defined(__STDC__) || __STDC__ != 1
-#define volatile
-#endif
-main() {
- volatile char c = 255; exit(c < 0);
-}
-EOF
-if { (eval echo configure:4831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- ac_cv_c_char_unsigned=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_c_char_unsigned=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_c_char_unsigned" 1>&6
-if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
- cat >> confdefs.h <<\EOF
-#define __CHAR_UNSIGNED__ 1
-EOF
-
-fi
-
#--------------------------------------------------------------------
-# Under Solaris 2.4, strtod returns the wrong value for the
-# terminating character under some conditions. Check for this
-# and if the problem exists use a substitute procedure
-# "fixstrtod" (provided by Tcl) that corrects the error.
+# The statements below define various symbols relating to Tcl
+# stub support.
#--------------------------------------------------------------------
+# Replace ${VERSION} with contents of ${TCL_VERSION}
+eval "TCL_STUB_LIB_FILE=libtclstub${TCL_UNSHARED_LIB_SUFFIX}"
+# Replace DBGX with TCL_DBGX
+eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
- echo $ac_n "checking for strtod""... $ac_c" 1>&6
-echo "configure:4864: checking for strtod" >&5
-if eval "test \"`echo '$''{'ac_cv_func_strtod'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 4869 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char strtod(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char strtod();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_strtod) || defined (__stub___strtod)
-choke me
-#else
-strtod();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_strtod=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_strtod=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'strtod`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- tcl_strtod=1
-else
- echo "$ac_t""no" 1>&6
-tcl_strtod=0
-fi
-
- if test "$tcl_strtod" = 1; then
- echo $ac_n "checking for Solaris2.4/Tru64 strtod bugs""... $ac_c" 1>&6
-echo "configure:4914: checking for Solaris2.4/Tru64 strtod bugs" >&5
- if eval "test \"`echo '$''{'tcl_cv_strtod_buggy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- if test "$cross_compiling" = yes; then
- tcl_cv_strtod_buggy=0
-else
- cat > conftest.$ac_ext <<EOF
-#line 4923 "configure"
-#include "confdefs.h"
-
- extern double strtod();
- int main() {
- char *infString="Inf", *nanString="NaN", *spaceString=" ";
- char *term;
- double value;
- value = strtod(infString, &term);
- if ((term != infString) && (term[-1] == 0)) {
- exit(1);
- }
- value = strtod(nanString, &term);
- if ((term != nanString) && (term[-1] == 0)) {
- exit(1);
- }
- value = strtod(spaceString, &term);
- if (term == (spaceString+1)) {
- exit(1);
- }
- exit(0);
- }
-EOF
-if { (eval echo configure:4946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- tcl_cv_strtod_buggy=1
+if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
+ TCL_STUB_LIB_FLAG="-ltclstub${TCL_VERSION}\${TCL_DBGX}"
else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- tcl_cv_strtod_buggy=0
-fi
-rm -fr conftest*
+ TCL_STUB_LIB_FLAG="-ltclstub`echo ${TCL_VERSION} | tr -d .`\${TCL_DBGX}"
fi
-fi
+TCL_BUILD_STUB_LIB_SPEC="-L`pwd` ${TCL_STUB_LIB_FLAG}"
+TCL_STUB_LIB_SPEC="-L${libdir} ${TCL_STUB_LIB_FLAG}"
+TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}"
+TCL_STUB_LIB_PATH="${libdir}/${TCL_STUB_LIB_FILE}"
- if test "$tcl_cv_strtod_buggy" = 1; then
- echo "$ac_t""ok" 1>&6
- else
- echo "$ac_t""buggy" 1>&6
- LIBOBJS="$LIBOBJS fixstrtod.o"
- cat >> confdefs.h <<\EOF
-#define strtod fixstrtod
-EOF
+# Install time header dir can be set via --includedir
+eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
- fi
- fi
+#------------------------------------------------------------------------
+# tclConfig.sh refers to this by a different name
+#------------------------------------------------------------------------
+TCL_SHARED_BUILD=${SHARED_BUILD}
-#--------------------------------------------------------------------
-# The statements below define a collection of symbols related to
-# building libtk as a shared library instead of a static library.
-#--------------------------------------------------------------------
-eval eval "TK_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}"
-eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}"
-if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then
- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \${TCL_STUB_LIB_SPEC}"
- TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
-else
- TCL_STUB_FLAGS=""
-fi
-TK_LIB_FILE=libtk${LIB_SUFFIX}
-eval "TK_LIB_FILE=${TK_LIB_FILE}"
-# Note: in the following variable, it's important to use the absolute
-# path name of the Tcl directory rather than "..": this is because
-# AIX remembers this path and will attempt to use it at run-time to look
-# up the Tcl library.
-if test "$SHARED_BUILD" = 0 -o $TCL_NEEDS_EXP_FILE = 0; then
- if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
- eval TK_LIB_FLAG="-ltk${VERSION}\${TK_DBGX}"
- else
- eval TK_LIB_FLAG="-ltk`echo ${VERSION} | tr -d .`\${TK_DBGX}"
- fi
- TK_BUILD_LIB_SPEC="-L`pwd` ${TK_LIB_FLAG}"
- TK_LIB_SPEC="-L${libdir} ${TK_LIB_FLAG}"
- TK_BUILD_EXP_FILE=""
- TK_EXP_FILE=""
-else
- TK_BUILD_EXP_FILE="lib.exp"
- eval "TK_EXP_FILE=libtk${TCL_EXPORT_FILE_SUFFIX}"
- if test "$GCC" = "yes" ; then
- TK_BUILD_LIB_SPEC="-Wl,-bI:`pwd`/${TK_BUILD_EXP_FILE} -L`pwd`"
- TK_LIB_SPEC="-Wl,-bI:${libdir}/${TK_EXP_FILE} -L`pwd`"
- else
- TK_BUILD_LIB_SPEC="-bI:`pwd`/${TK_BUILD_EXP_FILE}"
- TK_LIB_SPEC="-bI:${libdir}/${TK_EXP_FILE}"
- fi
-fi
-TK_SHARED_BUILD=${SHARED_BUILD}
-
-#--------------------------------------------------------------------
-# The statements below define various symbols relating to creating
-# the stub'd version of the Tk library
-#
-# For now, linking to Tcl stubs is not supported with Tk. It causes
-# too many problems with linking. When Tk is a fully loadable
-# extension, linking the the Tcl stubs will be supported.
-#--------------------------------------------------------------------
-
-# Replace ${VERSION} with contents of ${TK_VERSION}
-eval "TK_STUB_LIB_FILE=libtkstub${TK_UNSHARED_LIB_SUFFIX}"
-
-if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
- eval TK_STUB_LIB_FLAG="-ltkstub${TK_VERSION}\${TK_DBGX}"
-else
- eval TK_STUB_LIB_FLAG="-ltkstub`echo ${TK_VERSION} | tr -d .`\${TK_DBGX}"
-fi
-
-TK_BUILD_STUB_LIB_SPEC="-L`pwd` ${TK_STUB_LIB_FLAG}"
-TK_STUB_LIB_SPEC="-L${libdir} ${TK_STUB_LIB_FLAG}"
-TK_BUILD_STUB_LIB_PATH="`pwd`/${TK_STUB_LIB_FILE}"
-TK_STUB_LIB_PATH="${libdir}/${TK_STUB_LIB_FILE}"
-
-eval "TK_LIB_FILE=${TK_LIB_FILE}"
@@ -5185,7 +7315,7 @@ done
ac_given_srcdir=$srcdir
-trap 'rm -fr `echo "Makefile tkConfig.sh" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile dltest/Makefile tclConfig.sh" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -5221,15 +7351,9 @@ s%@MKLINKS_FLAGS@%$MKLINKS_FLAGS%g
s%@CC@%$CC%g
s%@CPP@%$CPP%g
s%@TCL_THREADS@%$TCL_THREADS%g
-s%@TCL_VERSION@%$TCL_VERSION%g
-s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
-s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
-s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
-s%@TCL_LIB_FLAG@%$TCL_LIB_FLAG%g
-s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
-s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
-s%@TCL_STUB_LIB_FLAG@%$TCL_STUB_LIB_FLAG%g
-s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
+s%@LIBOBJS@%$LIBOBJS%g
+s%@TCL_LIBS@%$TCL_LIBS%g
+s%@MATH_LIBS@%$MATH_LIBS%g
s%@AR@%$AR%g
s%@RANLIB@%$RANLIB%g
s%@DL_LIBS@%$DL_LIBS%g
@@ -5257,32 +7381,38 @@ s%@INSTALL_LIB@%$INSTALL_LIB%g
s%@INSTALL_STUB_LIB@%$INSTALL_STUB_LIB%g
s%@CFLAGS_DEFAULT@%$CFLAGS_DEFAULT%g
s%@LDFLAGS_DEFAULT@%$LDFLAGS_DEFAULT%g
-s%@TK_VERSION@%$TK_VERSION%g
-s%@TK_MAJOR_VERSION@%$TK_MAJOR_VERSION%g
-s%@TK_MINOR_VERSION@%$TK_MINOR_VERSION%g
-s%@TK_PATCH_LEVEL@%$TK_PATCH_LEVEL%g
-s%@TK_DBGX@%$TK_DBGX%g
-s%@TK_STUB_LIB_FILE@%$TK_STUB_LIB_FILE%g
-s%@TK_STUB_LIB_FLAG@%$TK_STUB_LIB_FLAG%g
-s%@TK_BUILD_STUB_LIB_SPEC@%$TK_BUILD_STUB_LIB_SPEC%g
-s%@TK_STUB_LIB_SPEC@%$TK_STUB_LIB_SPEC%g
-s%@TK_BUILD_STUB_LIB_PATH@%$TK_BUILD_STUB_LIB_PATH%g
-s%@TK_STUB_LIB_PATH@%$TK_STUB_LIB_PATH%g
-s%@TK_STUB_FLAGS@%$TK_STUB_FLAGS%g
-s%@TK_BUILD_EXP_FILE@%$TK_BUILD_EXP_FILE%g
-s%@TK_EXP_FILE@%$TK_EXP_FILE%g
-s%@TCL_STUB_FLAGS@%$TCL_STUB_FLAGS%g
+s%@MEM_DEBUG_FLAGS@%$MEM_DEBUG_FLAGS%g
+s%@TCL_VERSION@%$TCL_VERSION%g
+s%@TCL_MAJOR_VERSION@%$TCL_MAJOR_VERSION%g
+s%@TCL_MINOR_VERSION@%$TCL_MINOR_VERSION%g
+s%@TCL_PATCH_LEVEL@%$TCL_PATCH_LEVEL%g
+s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
+s%@TCL_LIB_FLAG@%$TCL_LIB_FLAG%g
+s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
+s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
+s%@TCL_STUB_LIB_FLAG@%$TCL_STUB_LIB_FLAG%g
+s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
+s%@TCL_STUB_LIB_PATH@%$TCL_STUB_LIB_PATH%g
+s%@TCL_INCLUDE_SPEC@%$TCL_INCLUDE_SPEC%g
+s%@TCL_BUILD_STUB_LIB_SPEC@%$TCL_BUILD_STUB_LIB_SPEC%g
+s%@TCL_BUILD_STUB_LIB_PATH@%$TCL_BUILD_STUB_LIB_PATH%g
+s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_DBGX@%$TCL_DBGX%g
+s%@CFG_TCL_SHARED_LIB_SUFFIX@%$CFG_TCL_SHARED_LIB_SUFFIX%g
+s%@CFG_TCL_UNSHARED_LIB_SUFFIX@%$CFG_TCL_UNSHARED_LIB_SUFFIX%g
+s%@CFG_TCL_EXPORT_FILE_SUFFIX@%$CFG_TCL_EXPORT_FILE_SUFFIX%g
+s%@TCL_SHARED_BUILD@%$TCL_SHARED_BUILD%g
s%@LD_LIBRARY_PATH_VAR@%$LD_LIBRARY_PATH_VAR%g
-s%@MATH_LIBS@%$MATH_LIBS%g
-s%@TK_BUILD_LIB_SPEC@%$TK_BUILD_LIB_SPEC%g
-s%@TK_LIB_FILE@%$TK_LIB_FILE%g
-s%@TK_LIB_FLAG@%$TK_LIB_FLAG%g
-s%@TK_LIB_SPEC@%$TK_LIB_SPEC%g
-s%@TK_SRC_DIR@%$TK_SRC_DIR%g
-s%@XINCLUDES@%$XINCLUDES%g
-s%@XLIBSW@%$XLIBSW%g
-s%@TK_SHARED_BUILD@%$TK_SHARED_BUILD%g
-s%@LOCALES@%$LOCALES%g
+s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g
+s%@TCL_NEEDS_EXP_FILE@%$TCL_NEEDS_EXP_FILE%g
+s%@TCL_BUILD_EXP_FILE@%$TCL_BUILD_EXP_FILE%g
+s%@TCL_EXP_FILE@%$TCL_EXP_FILE%g
+s%@TCL_LIB_VERSIONS_OK@%$TCL_LIB_VERSIONS_OK%g
+s%@TCL_SHARED_LIB_SUFFIX@%$TCL_SHARED_LIB_SUFFIX%g
+s%@TCL_UNSHARED_LIB_SUFFIX@%$TCL_UNSHARED_LIB_SUFFIX%g
+s%@TCL_HAS_LONGLONG@%$TCL_HAS_LONGLONG%g
+s%@BUILD_DLTEST@%$BUILD_DLTEST%g
+s%@TCL_PACKAGE_PATH@%$TCL_PACKAGE_PATH%g
CEOF
EOF
@@ -5324,7 +7454,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
-CONFIG_FILES=\${CONFIG_FILES-"Makefile tkConfig.sh"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile dltest/Makefile tclConfig.sh"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/tcl/unix/configure.in b/tcl/unix/configure.in
index 7841d8d2097..da46dc2d3e4 100755
--- a/tcl/unix/configure.in
+++ b/tcl/unix/configure.in
@@ -1,19 +1,18 @@
#! /bin/bash -norc
dnl This file is an input file used by the GNU "autoconf" program to
-dnl generate the file "configure", which is run during Tk installation
+dnl generate the file "configure", which is run during Tcl installation
dnl to configure the system for the local environment.
#
# RCS: @(#) $Id$
-AC_INIT(../generic/tk.h)
+AC_INIT(../generic/tcl.h)
AC_PREREQ(2.13)
-TK_VERSION=8.4
-TK_MAJOR_VERSION=8
-TK_MINOR_VERSION=4
-TK_PATCH_LEVEL=".0"
-VERSION=${TK_VERSION}
-LOCALES="cs de el en en_gb es fr it nl ru"
+TCL_VERSION=8.4
+TCL_MAJOR_VERSION=8
+TCL_MINOR_VERSION=4
+TCL_PATCH_LEVEL=".0"
+VERSION=${TCL_VERSION}
#------------------------------------------------------------------------
# Handle the --prefix=... option
@@ -27,9 +26,7 @@ if test "${exec_prefix}" = "NONE"; then
fi
# libdir must be a fully qualified path and (not ${exec_prefix}/lib)
eval libdir="$libdir"
-# Make sure srcdir is fully qualified!
-srcdir=`cd $srcdir ; pwd`
-TK_SRC_DIR=`cd $srcdir/..; pwd`
+TCL_SRC_DIR=`cd $srcdir/..; pwd`
#------------------------------------------------------------------------
# Compress and/or soft link the manpages?
@@ -47,11 +44,6 @@ if test "${CFLAGS+set}" != "set" ; then
fi
AC_PROG_CC
-
-#------------------------------------------------------------------------
-# I'm not sure why these need to come before all of the other tests
-#------------------------------------------------------------------------
-
AC_HAVE_HEADERS(unistd.h limits.h)
#------------------------------------------------------------------------
@@ -60,10 +52,10 @@ AC_HAVE_HEADERS(unistd.h limits.h)
SC_ENABLE_THREADS
-#------------------------------------------------------------------------------
+#------------------------------------------------------------------------
# If we're using GCC, see if the compiler understands -pipe. If so, use it.
# It makes compiling go faster. (This is only a performance feature.)
-#------------------------------------------------------------------------------
+#------------------------------------------------------------------------
if test -z "$no_pipe"; then
if test -n "$GCC"; then
@@ -86,101 +78,188 @@ SC_TCL_EARLY_FLAGS
SC_TCL_64BIT_FLAGS
#--------------------------------------------------------------------
-# Find and load the tclConfig.sh file
+# Check endianness because we can optimize comparisons of
+# Tcl_UniChar strings to memcmp on big-endian systems.
#--------------------------------------------------------------------
-SC_PATH_TCLCONFIG
-SC_LOAD_TCLCONFIG
+AC_C_BIGENDIAN
#--------------------------------------------------------------------
-# Recompute the necessary flags to run the compiler
+# Supply substitutes for missing POSIX library procedures, or
+# set flags so Tcl uses alternate procedures.
#--------------------------------------------------------------------
-SC_ENABLE_SHARED
+# Check if Posix compliant getcwd exists, if not we'll use getwd.
+AC_CHECK_FUNCS(getcwd, , [AC_DEFINE(USEGETWD)])
+# Nb: if getcwd uses popen and pwd(1) (like SunOS 4) we should really
+# define USEGETWD even if the posix getcwd exists. Add a test ?
-SC_CONFIG_CFLAGS
+AC_REPLACE_FUNCS(opendir strstr)
-SC_ENABLE_SYMBOLS
+AC_REPLACE_FUNCS(strtol strtoll strtoull tmpnam waitpid)
+AC_CHECK_FUNC(strerror, , [AC_DEFINE(NO_STRERROR)])
+AC_CHECK_FUNC(getwd, , [AC_DEFINE(NO_GETWD)])
+AC_CHECK_FUNC(wait3, , [AC_DEFINE(NO_WAIT3)])
+AC_CHECK_FUNC(uname, , [AC_DEFINE(NO_UNAME)])
+AC_CHECK_FUNC(realpath, , [AC_DEFINE(NO_REALPATH)])
-LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'
+#--------------------------------------------------------------------
+# Supply substitutes for missing POSIX header files. Special
+# notes:
+# - stdlib.h doesn't define strtol, strtoul, or
+# strtod insome versions of SunOS
+# - some versions of string.h don't declare procedures such
+# as strstr
+#--------------------------------------------------------------------
-TK_DBGX=${DBGX}
+SC_MISSING_POSIX_HEADERS
-#------------------------------------------------------------------------
-# If Tcl and Tk are installed in different places, adjust the library
-# search path to reflect this.
-#------------------------------------------------------------------------
+#---------------------------------------------------------------------------
+# Determine which interface to use to talk to the serial port.
+# Note that #include lines must begin in leftmost column for
+# some compilers to recognize them as preprocessor directives.
+#---------------------------------------------------------------------------
-if test "$TCL_EXEC_PREFIX" != "$exec_prefix"; then
- LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${TCL_EXEC_PREFIX}/lib"
-fi
+SC_SERIAL_PORT
#--------------------------------------------------------------------
-# On a few very rare systems, all of the libm.a stuff is
-# already in libc.a. Set compiler flags accordingly.
-# Also, Linux requires the "ieee" library for math to work
-# right (and it must appear before "-lm").
+# Include sys/select.h if it exists and if it supplies things
+# that appear to be useful and aren't already in sys/types.h.
+# This appears to be true only on the RS/6000 under AIX. Some
+# systems like OSF/1 have a sys/select.h that's of no use, and
+# other systems like SCO UNIX have a sys/select.h that's
+# pernicious. If "fd_set" isn't defined anywhere then set a
+# special flag.
#--------------------------------------------------------------------
-AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm")
-AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
+AC_MSG_CHECKING([for fd_set in sys/types])
+AC_CACHE_VAL(tcl_cv_type_fd_set,
+ AC_TRY_COMPILE([#include <sys/types.h>],[fd_set readMask, writeMask;],
+ tcl_cv_type_fd_set=yes, tcl_cv_type_fd_set=no))
+AC_MSG_RESULT($tcl_cv_type_fd_set)
+tk_ok=$tcl_cv_type_fd_set
+if test $tcl_cv_type_fd_set = no; then
+ AC_MSG_CHECKING([for fd_mask in sys/select])
+ AC_CACHE_VAL(tcl_cv_grep_fd_mask,
+ AC_HEADER_EGREP(fd_mask, sys/select.h,
+ tcl_cv_grep_fd_mask=present, tcl_cv_grep_fd_mask=missing))
+ AC_MSG_RESULT($tcl_cv_grep_fd_mask)
+ if test $tcl_cv_grep_fd_mask = present; then
+ AC_DEFINE(HAVE_SYS_SELECT_H)
+ tk_ok=yes
+ fi
+fi
+if test $tk_ok = no; then
+ AC_DEFINE(NO_FD_SET)
+fi
+
+#------------------------------------------------------------------------------
+# Find out all about time handling differences.
+#------------------------------------------------------------------------------
+
+SC_TIME_HANDLER
#--------------------------------------------------------------------
-# On AIX systems, libbsd.a has to be linked in to support
-# non-blocking file IO. This library has to be linked in after
-# the MATH_LIBS or it breaks the pow() function. The way to
-# insure proper sequencing, is to add it to the tail of MATH_LIBS.
-# This library also supplies gettimeofday.
+# Some systems (e.g., IRIX 4.0.5) lack the st_blksize field
+# in struct stat. But we might be able to use fstatfs instead.
#--------------------------------------------------------------------
-libbsd=no
-if test "`uname -s`" = "AIX" ; then
- AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes)
- if test $libbsd = yes; then
- MATH_LIBS="$MATH_LIBS -lbsd"
- fi
-fi
+AC_STRUCT_ST_BLKSIZE
+AC_CHECK_FUNC(fstatfs, , [AC_DEFINE(NO_FSTATFS)])
#--------------------------------------------------------------------
-# Supply a substitute for stdlib.h if it doesn't define strtol,
-# strtoul, or strtod (which it doesn't in some versions of SunOS).
+# Some system have no memcmp or it does not work with 8 bit
+# data, this checks it and add memcmp.o to LIBOBJS if needed
#--------------------------------------------------------------------
+AC_FUNC_MEMCMP
-AC_MSG_CHECKING(stdlib.h)
-AC_HEADER_EGREP(strtol, stdlib.h, tk_ok=yes, tk_ok=no)
-AC_HEADER_EGREP(strtoul, stdlib.h, , tk_ok=no)
-AC_HEADER_EGREP(strtod, stdlib.h, , tk_ok=no)
-if test $tk_ok = no; then
- AC_DEFINE(NO_STDLIB_H)
-fi
-AC_MSG_RESULT($tk_ok)
+#--------------------------------------------------------------------
+# Some system like SunOS 4 and other BSD like systems
+# have no memmove (we assume they have bcopy instead).
+# {The replacement define is in compat/string.h}
+#--------------------------------------------------------------------
+AC_CHECK_FUNC(memmove, , [AC_DEFINE(NO_MEMMOVE) AC_DEFINE(NO_STRING_H)])
#--------------------------------------------------------------------
-# Include sys/select.h if it exists and if it supplies things
-# that appear to be useful and aren't already in sys/types.h.
-# This appears to be true only on the RS/6000 under AIX. Some
-# systems like OSF/1 have a sys/select.h that's of no use, and
-# other systems like SCO UNIX have a sys/select.h that's
-# pernicious. If "fd_set" isn't defined anywhere then set a
-# special flag.
+# On some systems strstr is broken: it returns a pointer even
+# even if the original string is empty.
#--------------------------------------------------------------------
-AC_MSG_CHECKING([fd_set and sys/select])
-AC_TRY_COMPILE([#include <sys/types.h>],
- [fd_set readMask, writeMask;], tk_ok=yes, tk_ok=no)
-if test $tk_ok = no; then
- AC_HEADER_EGREP(fd_mask, sys/select.h, tk_ok=yes)
- if test $tk_ok = yes; then
- AC_DEFINE(HAVE_SYS_SELECT_H)
- fi
+AC_MSG_CHECKING([proper strstr implementation])
+AC_TRY_RUN([
+extern int strstr();
+int main()
+{
+ exit(strstr("\0test", "test") ? 1 : 0);
+}
+], tcl_ok=yes, tcl_ok=no, tcl_ok=no)
+if test $tcl_ok = yes; then
+ AC_MSG_RESULT(yes)
+else
+ AC_MSG_RESULT([broken, using substitute])
+ LIBOBJS="$LIBOBJS strstr.o"
fi
-AC_MSG_RESULT($tk_ok)
-if test $tk_ok = no; then
- AC_DEFINE(NO_FD_SET)
+
+#--------------------------------------------------------------------
+# Check for strtoul function. This is tricky because under some
+# versions of AIX strtoul returns an incorrect terminator
+# pointer for the string "0".
+#--------------------------------------------------------------------
+
+AC_CHECK_FUNC(strtoul, tcl_ok=1, tcl_ok=0)
+AC_TRY_RUN([
+extern int strtoul();
+int main()
+{
+ char *string = "0";
+ char *term;
+ int value;
+ value = strtoul(string, &term, 0);
+ if ((value != 0) || (term != (string+1))) {
+ exit(1);
+ }
+ exit(0);
+}], , tcl_ok=0, tcl_ok=0)
+if test "$tcl_ok" = 0; then
+ test -n "$verbose" && echo " Adding strtoul.o."
+ LIBOBJS="$LIBOBJS strtoul.o"
fi
#--------------------------------------------------------------------
-# Check for various typedefs and provide substitutes if
-# they don't exist.
+# Check for the strtod function. This is tricky because in some
+# versions of Linux strtod mis-parses strings starting with "+".
+#--------------------------------------------------------------------
+
+AC_CHECK_FUNC(strtod, tcl_ok=1, tcl_ok=0)
+AC_TRY_RUN([
+extern double strtod();
+int main()
+{
+ char *string = " +69";
+ char *term;
+ double value;
+ value = strtod(string, &term);
+ if ((value != 69) || (term != (string+4))) {
+ exit(1);
+ }
+ exit(0);
+}], , tcl_ok=0, tcl_ok=0)
+if test "$tcl_ok" = 0; then
+ test -n "$verbose" && echo " Adding strtod.o."
+ LIBOBJS="$LIBOBJS strtod.o"
+fi
+
+#--------------------------------------------------------------------
+# Under Solaris 2.4, strtod returns the wrong value for the
+# terminating character under some conditions. Check for this
+# and if the problem exists use a substitute procedure
+# "fixstrtod" that corrects the error.
+#--------------------------------------------------------------------
+
+SC_BUGGY_STRTOD
+
+#--------------------------------------------------------------------
+# Check for various typedefs and provide substitutes if
+# they don't exist.
#--------------------------------------------------------------------
AC_TYPE_MODE_T
@@ -188,259 +267,323 @@ AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_UID_T
-#------------------------------------------------------------------------------
-# Find out about time handling differences.
-#------------------------------------------------------------------------------
-
-AC_CHECK_HEADERS(sys/time.h)
-AC_HEADER_TIME
+AC_MSG_CHECKING([for socklen_t])
+AC_CACHE_VAL(ac_cv_type_socklen_t,[AC_EGREP_CPP(changequote(<<,>>)dnl
+<<(^|[^a-zA-Z_0-9])socklen_t[^a-zA-Z_0-9]>>dnl
+changequote([,]),[
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #if STDC_HEADERS
+ #include <stdlib.h>
+ #include <stddef.h>
+ #endif
+ ], ac_cv_type_socklen_t=yes, ac_cv_type_socklen_t=no)])
+AC_MSG_RESULT($ac_cv_type_socklen_t)
+if test $ac_cv_type_socklen_t = no; then
+ AC_DEFINE(socklen_t, unsigned)
+fi
-#-------------------------------------------
-# In OS/390 struct pwd has no pw_gecos field
-#-------------------------------------------
+#--------------------------------------------------------------------
+# If a system doesn't have an opendir function (man, that's old!)
+# then we have to supply a different version of dirent.h which
+# is compatible with the substitute version of opendir that's
+# provided. This version only works with V7-style directories.
+#--------------------------------------------------------------------
-AC_MSG_CHECKING([pw_gecos in struct pwd])
-AC_TRY_COMPILE([#include <pwd.h>],
- [struct passwd pwd; pwd.pw_gecos;], tk_ok=yes, tk_ok=no)
-AC_MSG_RESULT($tk_ok)
-if test $tk_ok = yes; then
- AC_DEFINE(HAVE_PW_GECOS)
-fi
+AC_CHECK_FUNC(opendir, , [AC_DEFINE(USE_DIRENT2_H)])
#--------------------------------------------------------------------
-# Locate the X11 header files and the X11 library archive. Try
-# the ac_path_x macro first, but if it doesn't find the X stuff
-# (e.g. because there's no xmkmf program) then check through
-# a list of possible directories. Under some conditions the
-# autoconf macro will return an include directory that contains
-# no include files, so double-check its result just to be safe.
+# The check below checks whether <sys/wait.h> defines the type
+# "union wait" correctly. It's needed because of weirdness in
+# HP-UX where "union wait" is defined in both the BSD and SYS-V
+# environments. Checking the usability of WIFEXITED seems to do
+# the trick.
#--------------------------------------------------------------------
-SC_PATH_X
+AC_MSG_CHECKING([union wait])
+AC_CACHE_VAL(tcl_cv_union_wait,
+ AC_TRY_LINK([#include <sys/types.h>
+#include <sys/wait.h>], [
+union wait x;
+WIFEXITED(x); /* Generates compiler error if WIFEXITED
+ * uses an int. */
+ ], tcl_cv_union_wait=yes, tcl_cv_union_wait=no))
+AC_MSG_RESULT($tcl_cv_union_wait)
+if test $tcl_cv_union_wait = no; then
+ AC_DEFINE(NO_UNION_WAIT)
+fi
#--------------------------------------------------------------------
-# Various manipulations on the search path used at runtime to
-# find shared libraries:
-# 1. If the X library binaries are in a non-standard directory,
-# add the X library location into that search path.
-# 2. On systems such as AIX and Ultrix that use "-L" as the
-# search path option, colons cannot be used to separate
-# directories from each other. Change colons to " -L".
-# 3. Create two sets of search flags, one for use in cc lines
-# and the other for when the linker is invoked directly. In
-# the second case, '-Wl,' must be stripped off and commas must
-# be replaced by spaces.
+# Check whether there is an strncasecmp function on this system.
+# This is a bit tricky because under SCO it's in -lsocket and
+# under Sequent Dynix it's in -linet.
#--------------------------------------------------------------------
-if test "x${x_libraries}" != "x"; then
- LIB_RUNTIME_DIR="${LIB_RUNTIME_DIR}:${x_libraries}"
+AC_CHECK_FUNC(strncasecmp, tcl_ok=1, tcl_ok=0)
+if test "$tcl_ok" = 0; then
+ AC_CHECK_LIB(socket, strncasecmp, tcl_ok=1, tcl_ok=0)
fi
-if test "${TCL_LD_SEARCH_FLAGS}" = '-L${LIB_RUNTIME_DIR}'; then
- LIB_RUNTIME_DIR=`echo ${LIB_RUNTIME_DIR} |sed -e 's/:/ -L/g'`
+if test "$tcl_ok" = 0; then
+ AC_CHECK_LIB(inet, strncasecmp, tcl_ok=1, tcl_ok=0)
fi
-
-# The statement below is very tricky! It actually *evaluates* the
-# string in TCL_CC_SEARCH_FLAGS and TCL_LD_SEARCH_FLAGS which
-# causes a substitution of the variable LIB_RUNTIME_DIR.
-
-eval "CC_SEARCH_FLAGS=\"$TCL_CC_SEARCH_FLAGS\""
-eval "LD_SEARCH_FLAGS=\"$TCL_LD_SEARCH_FLAGS\""
-
-#--------------------------------------------------------------------
-# Check for the existence of various libraries. The order here
-# is important, so that then end up in the right order in the
-# command line generated by make. The -lsocket and -lnsl libraries
-# require a couple of special tricks:
-# 1. Use "connect" and "accept" to check for -lsocket, and
-# "gethostbyname" to check for -lnsl.
-# 2. Use each function name only once: can't redo a check because
-# autoconf caches the results of the last check and won't redo it.
-# 3. Use -lnsl and -lsocket only if they supply procedures that
-# aren't already present in the normal libraries. This is because
-# IRIX 5.2 has libraries, but they aren't needed and they're
-# bogus: they goof up name resolution if used.
-# 4. On some SVR4 systems, can't use -lsocket without -lnsl too.
-# To get around this problem, check for both libraries together
-# if -lsocket doesn't work by itself.
-#--------------------------------------------------------------------
-
-AC_CHECK_LIB(Xbsd, main, [LIBS="$LIBS -lXbsd"])
-
-tk_checkBoth=0
-AC_CHECK_FUNC(connect, tk_checkSocket=0, tk_checkSocket=1)
-if test "$tk_checkSocket" = 1; then
- AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", tk_checkBoth=1)
+if test "$tcl_ok" = 0; then
+ LIBOBJS="$LIBOBJS strncasecmp.o"
fi
-if test "$tk_checkBoth" = 1; then
- tk_oldLibs=$LIBS
- LIBS="$LIBS -lsocket -lnsl"
- AC_CHECK_FUNC(accept, tk_checkNsl=0, [LIBS=$tk_oldLibs])
+
+#--------------------------------------------------------------------
+# The code below deals with several issues related to gettimeofday:
+# 1. Some systems don't provide a gettimeofday function at all
+# (set NO_GETTOD if this is the case).
+# 2. SGI systems don't use the BSD form of the gettimeofday function,
+# but they have a BSDgettimeofday function that can be used instead.
+# 3. See if gettimeofday is declared in the <sys/time.h> header file.
+# if not, set the GETTOD_NOT_DECLARED flag so that tclPort.h can
+# declare it.
+#--------------------------------------------------------------------
+
+AC_CHECK_FUNC(BSDgettimeofday,
+ [AC_DEFINE(HAVE_BSDGETTIMEOFDAY)], [
+ AC_CHECK_FUNC(gettimeofday, , [AC_DEFINE(NO_GETTOD)])
+])
+AC_MSG_CHECKING([for gettimeofday declaration])
+AC_CACHE_VAL(tcl_cv_grep_gettimeofday,
+ AC_EGREP_HEADER(gettimeofday, sys/time.h,
+ tcl_cv_grep_gettimeofday=present, tcl_cv_grep_gettimeofday=missing))
+AC_MSG_RESULT($tcl_cv_grep_gettimeofday)
+if test $tcl_cv_grep_gettimeofday = missing ; then
+ AC_DEFINE(GETTOD_NOT_DECLARED)
fi
-AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"])])
-# Add the threads support libraries
+#--------------------------------------------------------------------
+# The following code checks to see whether it is possible to get
+# signed chars on this platform. This is needed in order to
+# properly generate sign-extended ints from character values.
+#--------------------------------------------------------------------
-LIBS="$LIBS$THREADS_LIBS"
+AC_C_CHAR_UNSIGNED
+AC_MSG_CHECKING([signed char declarations])
+AC_CACHE_VAL(tcl_cv_char_signed,
+ AC_TRY_COMPILE(, [
+ signed char *p;
+ p = 0;
+ ], tcl_cv_char_signed=yes, tcl_cv_char_signed=no))
+AC_MSG_RESULT($tcl_cv_char_signed)
+if test $tcl_cv_char_signed = yes; then
+ AC_DEFINE(HAVE_SIGNED_CHAR)
+fi
#--------------------------------------------------------------------
-# One more check related to the X libraries. The standard releases
-# of Ultrix don't support the "xauth" mechanism, so send won't work
-# unless TK_NO_SECURITY is defined. However, there are usually copies
-# of the MIT X server available as well, which do support xauth.
-# Check for the MIT stuff and use it if it exists.
-#
-# Note: can't use ac_check_lib macro (at least, not in Autoconf 2.1)
-# because it can't deal with the "-" in the library name.
-#--------------------------------------------------------------------
-
-if test -d /usr/include/mit ; then
- AC_MSG_CHECKING([MIT X libraries])
- tk_oldCFlags=$CFLAGS
- CFLAGS="$CFLAGS -I/usr/include/mit"
- tk_oldLibs=$LIBS
- LIBS="$LIBS -lX11-mit"
- AC_TRY_LINK([
- #include <X11/Xlib.h>
- ], [
- XOpenDisplay(0);
- ], [
- AC_MSG_RESULT(yes)
- XLIBSW="-lX11-mit"
- XINCLUDES="-I/usr/include/mit"
- ], AC_MSG_RESULT(no))
- CFLAGS=$tk_oldCFlags
- LIBS=$tk_oldLibs
+# Does putenv() copy or not? We need to know to avoid memory leaks.
+#--------------------------------------------------------------------
+
+AC_MSG_CHECKING([for a putenv() that copies the buffer])
+AC_CACHE_VAL(tcl_cv_putenv_copy,
+ AC_TRY_RUN([
+ #include <stdlib.h>
+ #define OURVAR "havecopy=yes"
+ int main (int argc, char *argv[])
+ {
+ char *foo, *bar;
+ foo = (char *)strdup(OURVAR);
+ putenv(foo);
+ strcpy((char *)(strchr(foo, '=') + 1), "no");
+ bar = getenv("havecopy");
+ if (!strcmp(bar, "no")) {
+ /* doesnt copy */
+ return 0;
+ } else {
+ /* does copy */
+ return 1;
+ }
+ }
+ ],
+ tcl_cv_putenv_copy=no,
+ tcl_cv_putenv_copy=yes,
+ tcl_cv_putenv_copy=no)
+)
+AC_MSG_RESULT($tcl_cv_putenv_copy)
+if test $tcl_cv_putenv_copy = yes; then
+ AC_DEFINE(HAVE_PUTENV_THAT_COPIES)
fi
#--------------------------------------------------------------------
-# On a few very rare systems, all of the libm.a stuff is
-# already in libc.a. Set compiler flags accordingly.
-# Also, Linux requires the "ieee" library for math to
-# work right (and it must appear before "-lm").
+# Check for support of nl_langinfo function
#--------------------------------------------------------------------
-MATH_LIBS=""
-AC_CHECK_FUNC(sin, , MATH_LIBS="-lm")
-AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"])
+SC_ENABLE_LANGINFO
#--------------------------------------------------------------------
-# Figure out whether "char" is unsigned. If so, set a
-# #define for __CHAR_UNSIGNED__.
+# Look for libraries that we will need when compiling the Tcl shell
#--------------------------------------------------------------------
-AC_C_CHAR_UNSIGNED
+SC_TCL_LINK_LIBS
+
+# Add the threads support libraries
+
+LIBS="$LIBS$THREADS_LIBS"
+
+SC_ENABLE_SHARED
#--------------------------------------------------------------------
-# Under Solaris 2.4, strtod returns the wrong value for the
-# terminating character under some conditions. Check for this
-# and if the problem exists use a substitute procedure
-# "fixstrtod" (provided by Tcl) that corrects the error.
+# The statements below define a collection of compile flags. This
+# macro depends on the value of SHARED_BUILD, and should be called
+# after SC_ENABLE_SHARED checks the configure switches.
#--------------------------------------------------------------------
-SC_BUGGY_STRTOD
+SC_CONFIG_CFLAGS
+
+SC_ENABLE_SYMBOLS
+SC_ENABLE_MEMDEBUG
+
+TCL_DBGX=${DBGX}
+
+#--------------------------------------------------------------------
+# The statements below check for systems where POSIX-style
+# non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.
+# On these systems (mostly older ones), use the old BSD-style
+# FIONBIO approach instead.
+#--------------------------------------------------------------------
+
+SC_BLOCKING_STYLE
#--------------------------------------------------------------------
# The statements below define a collection of symbols related to
-# building libtk as a shared library instead of a static library.
+# building libtcl as a shared library instead of a static library.
#--------------------------------------------------------------------
-eval eval "TK_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}"
-eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}"
+TCL_UNSHARED_LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
+TCL_SHARED_LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}"
-if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then
- SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \${TCL_STUB_LIB_SPEC}"
- TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
-else
- TCL_STUB_FLAGS=""
-fi
-TK_LIB_FILE=libtk${LIB_SUFFIX}
-eval "TK_LIB_FILE=${TK_LIB_FILE}"
+SC_ENABLE_FRAMEWORK
+
+# tclConfig.sh needs a version of the _LIB_SUFFIX that has been eval'ed
+# so that the backslashes quoting the DBX braces are dropped.
+
+# Trick to replace DBGX with TCL_DBGX
+DBGX='${TCL_DBGX}'
+eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
# Note: in the following variable, it's important to use the absolute
# path name of the Tcl directory rather than "..": this is because
# AIX remembers this path and will attempt to use it at run-time to look
# up the Tcl library.
-if test "$SHARED_BUILD" = 0 -o $TCL_NEEDS_EXP_FILE = 0; then
+if test "$FRAMEWORK_BUILD" = "1" ; then
+ TCL_BUILD_LIB_SPEC="-F`pwd` -framework Tcl"
+ TCL_LIB_SPEC="-framework Tcl"
+ TCL_LIB_FILE="Tcl"
+elif test "$SHARED_BUILD" = "0" || test "$TCL_NEEDS_EXP_FILE" = "0"; then
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
- eval TK_LIB_FLAG="-ltk${VERSION}\${TK_DBGX}"
+ TCL_LIB_FLAG="-ltcl${TCL_VERSION}\${TCL_DBGX}"
else
- eval TK_LIB_FLAG="-ltk`echo ${VERSION} | tr -d .`\${TK_DBGX}"
+ TCL_LIB_FLAG="-ltcl`echo ${TCL_VERSION} | tr -d .`\${TCL_DBGX}"
fi
- TK_BUILD_LIB_SPEC="-L`pwd` ${TK_LIB_FLAG}"
- TK_LIB_SPEC="-L${libdir} ${TK_LIB_FLAG}"
- TK_BUILD_EXP_FILE=""
- TK_EXP_FILE=""
+ TCL_BUILD_LIB_SPEC="-L`pwd` ${TCL_LIB_FLAG}"
+ TCL_LIB_SPEC="-L${libdir} ${TCL_LIB_FLAG}"
else
- TK_BUILD_EXP_FILE="lib.exp"
- eval "TK_EXP_FILE=libtk${TCL_EXPORT_FILE_SUFFIX}"
+ TCL_BUILD_EXP_FILE="lib.exp"
+ eval "TCL_EXP_FILE=libtcl${TCL_EXPORT_FILE_SUFFIX}"
+ # Replace DBGX with TCL_DBGX
+ eval "TCL_EXP_FILE=\"${TCL_EXP_FILE}\""
+
if test "$GCC" = "yes" ; then
- TK_BUILD_LIB_SPEC="-Wl,-bI:`pwd`/${TK_BUILD_EXP_FILE} -L`pwd`"
- TK_LIB_SPEC="-Wl,-bI:${libdir}/${TK_EXP_FILE} -L`pwd`"
+ TCL_BUILD_LIB_SPEC="-Wl,-bI:`pwd`/${TCL_BUILD_EXP_FILE} -L`pwd`"
+ TCL_LIB_SPEC="-Wl,-bI:${libdir}/${TCL_EXP_FILE} -L`pwd`"
else
- TK_BUILD_LIB_SPEC="-bI:`pwd`/${TK_BUILD_EXP_FILE}"
- TK_LIB_SPEC="-bI:${libdir}/${TK_EXP_FILE}"
+ TCL_BUILD_LIB_SPEC="-bI:`pwd`/${TCL_BUILD_EXP_FILE}"
+ TCL_LIB_SPEC="-bI:${libdir}/${TCL_EXP_FILE}"
fi
fi
-TK_SHARED_BUILD=${SHARED_BUILD}
+VERSION='${VERSION}'
+eval "CFG_TCL_SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}"
+eval "CFG_TCL_UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}"
+eval "CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}"
+VERSION=${TCL_VERSION}
#--------------------------------------------------------------------
-# The statements below define various symbols relating to creating
-# the stub'd version of the Tk library
-#
-# For now, linking to Tcl stubs is not supported with Tk. It causes
-# too many problems with linking. When Tk is a fully loadable
-# extension, linking the the Tcl stubs will be supported.
+# The statements below define the symbol TCL_PACKAGE_PATH, which
+# gives a list of directories that may contain packages. The list
+# consists of one directory for machine-dependent binaries and
+# another for platform-independent scripts.
+#--------------------------------------------------------------------
+
+if test "$FRAMEWORK_BUILD" = "1" ; then
+ TCL_PACKAGE_PATH="${libdir}/Resources/Scripts"
+elif test "$prefix" != "$exec_prefix"; then
+ TCL_PACKAGE_PATH="${libdir} ${prefix}/lib"
+else
+ TCL_PACKAGE_PATH="${prefix}/lib"
+fi
+
+#--------------------------------------------------------------------
+# The statements below define various symbols relating to Tcl
+# stub support.
#--------------------------------------------------------------------
-# Replace ${VERSION} with contents of ${TK_VERSION}
-eval "TK_STUB_LIB_FILE=libtkstub${TK_UNSHARED_LIB_SUFFIX}"
+# Replace ${VERSION} with contents of ${TCL_VERSION}
+eval "TCL_STUB_LIB_FILE=libtclstub${TCL_UNSHARED_LIB_SUFFIX}"
+# Replace DBGX with TCL_DBGX
+eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
- eval TK_STUB_LIB_FLAG="-ltkstub${TK_VERSION}\${TK_DBGX}"
+ TCL_STUB_LIB_FLAG="-ltclstub${TCL_VERSION}\${TCL_DBGX}"
else
- eval TK_STUB_LIB_FLAG="-ltkstub`echo ${TK_VERSION} | tr -d .`\${TK_DBGX}"
+ TCL_STUB_LIB_FLAG="-ltclstub`echo ${TCL_VERSION} | tr -d .`\${TCL_DBGX}"
fi
-TK_BUILD_STUB_LIB_SPEC="-L`pwd` ${TK_STUB_LIB_FLAG}"
-TK_STUB_LIB_SPEC="-L${libdir} ${TK_STUB_LIB_FLAG}"
-TK_BUILD_STUB_LIB_PATH="`pwd`/${TK_STUB_LIB_FILE}"
-TK_STUB_LIB_PATH="${libdir}/${TK_STUB_LIB_FILE}"
-
-eval "TK_LIB_FILE=${TK_LIB_FILE}"
-
-AC_SUBST(TK_VERSION)
-AC_SUBST(TK_MAJOR_VERSION)
-AC_SUBST(TK_MINOR_VERSION)
-AC_SUBST(TK_PATCH_LEVEL)
-AC_SUBST(TK_DBGX)
-
-AC_SUBST(TK_STUB_LIB_FILE)
-AC_SUBST(TK_STUB_LIB_FLAG)
-AC_SUBST(TK_BUILD_STUB_LIB_SPEC)
-AC_SUBST(TK_STUB_LIB_SPEC)
-AC_SUBST(TK_BUILD_STUB_LIB_PATH)
-AC_SUBST(TK_STUB_LIB_PATH)
-AC_SUBST(TK_STUB_FLAGS)
-AC_SUBST(TK_BUILD_EXP_FILE)
-AC_SUBST(TK_EXP_FILE)
-
-AC_SUBST(TCL_STUB_FLAGS)
-AC_SUBST(TK_BUILD_EXP_FILE)
-AC_SUBST(TK_EXP_FILE)
+TCL_BUILD_STUB_LIB_SPEC="-L`pwd` ${TCL_STUB_LIB_FLAG}"
+TCL_STUB_LIB_SPEC="-L${libdir} ${TCL_STUB_LIB_FLAG}"
+TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}"
+TCL_STUB_LIB_PATH="${libdir}/${TCL_STUB_LIB_FILE}"
+
+# Install time header dir can be set via --includedir
+eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
+#------------------------------------------------------------------------
+# tclConfig.sh refers to this by a different name
+#------------------------------------------------------------------------
+
+TCL_SHARED_BUILD=${SHARED_BUILD}
+
+AC_SUBST(TCL_VERSION)
+AC_SUBST(TCL_MAJOR_VERSION)
+AC_SUBST(TCL_MINOR_VERSION)
+AC_SUBST(TCL_PATCH_LEVEL)
+
+AC_SUBST(TCL_LIB_FILE)
+AC_SUBST(TCL_LIB_FLAG)
+AC_SUBST(TCL_LIB_SPEC)
+AC_SUBST(TCL_STUB_LIB_FILE)
+AC_SUBST(TCL_STUB_LIB_FLAG)
+AC_SUBST(TCL_STUB_LIB_SPEC)
+AC_SUBST(TCL_STUB_LIB_PATH)
+AC_SUBST(TCL_INCLUDE_SPEC)
+AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
+AC_SUBST(TCL_BUILD_STUB_LIB_PATH)
+
+AC_SUBST(TCL_SRC_DIR)
+AC_SUBST(TCL_DBGX)
+AC_SUBST(CFG_TCL_SHARED_LIB_SUFFIX)
+AC_SUBST(CFG_TCL_UNSHARED_LIB_SUFFIX)
+AC_SUBST(CFG_TCL_EXPORT_FILE_SUFFIX)
+
+AC_SUBST(TCL_SHARED_BUILD)
AC_SUBST(LD_LIBRARY_PATH_VAR)
-AC_SUBST(MATH_LIBS)
-AC_SUBST(TK_BUILD_LIB_SPEC)
-AC_SUBST(TK_LIB_FILE)
-AC_SUBST(TK_LIB_FLAG)
-AC_SUBST(TK_LIB_SPEC)
-AC_SUBST(TK_SRC_DIR)
-AC_SUBST(XINCLUDES)
-AC_SUBST(XLIBSW)
-AC_SUBST(TK_SHARED_BUILD)
-AC_SUBST(LOCALES)
-
-AC_OUTPUT(Makefile tkConfig.sh)
+AC_SUBST(TCL_BUILD_LIB_SPEC)
+AC_SUBST(TCL_NEEDS_EXP_FILE)
+AC_SUBST(TCL_BUILD_EXP_FILE)
+AC_SUBST(TCL_EXP_FILE)
+
+AC_SUBST(TCL_LIB_VERSIONS_OK)
+AC_SUBST(TCL_SHARED_LIB_SUFFIX)
+AC_SUBST(TCL_UNSHARED_LIB_SUFFIX)
+
+AC_SUBST(TCL_HAS_LONGLONG)
+
+AC_SUBST(BUILD_DLTEST)
+AC_SUBST(TCL_PACKAGE_PATH)
+
+AC_OUTPUT(Makefile dltest/Makefile tclConfig.sh)
diff --git a/tcl/unix/mkLinks b/tcl/unix/mkLinks
index adb3559b721..a41ea06d37f 100755
--- a/tcl/unix/mkLinks
+++ b/tcl/unix/mkLinks
@@ -56,1128 +56,1802 @@ if test "$y" != "xyzzyTestingaverylongfilename.foo"; then
CASEINSENSITIVEFS=1
fi
-if test -r 3DBorder.3; then
- rm -f 3DBorder.3.*
- $ZIP 3DBorder.3
- rm -f Tk_Alloc3DBorderFromObj.3 Tk_Alloc3DBorderFromObj.3.*
- rm -f Tk_Get3DBorder.3 Tk_Get3DBorder.3.*
- rm -f Tk_Get3DBorderFromObj.3 Tk_Get3DBorderFromObj.3.*
- rm -f Tk_Draw3DRectangle.3 Tk_Draw3DRectangle.3.*
- rm -f Tk_Fill3DRectangle.3 Tk_Fill3DRectangle.3.*
- rm -f Tk_Draw3DPolygon.3 Tk_Draw3DPolygon.3.*
- rm -f Tk_Fill3DPolygon.3 Tk_Fill3DPolygon.3.*
- rm -f Tk_3DVerticalBevel.3 Tk_3DVerticalBevel.3.*
- rm -f Tk_3DHorizontalBevel.3 Tk_3DHorizontalBevel.3.*
- rm -f Tk_SetBackgroundFromBorder.3 Tk_SetBackgroundFromBorder.3.*
- rm -f Tk_NameOf3DBorder.3 Tk_NameOf3DBorder.3.*
- rm -f Tk_3DBorderColor.3 Tk_3DBorderColor.3.*
- rm -f Tk_3DBorderGC.3 Tk_3DBorderGC.3.*
- rm -f Tk_Free3DBorderFromObj.3 Tk_Free3DBorderFromObj.3.*
- rm -f Tk_Free3DBorder.3 Tk_Free3DBorder.3.*
- ln $S 3DBorder.3$Z Tk_Alloc3DBorderFromObj.3$Z
- ln $S 3DBorder.3$Z Tk_Get3DBorder.3$Z
- ln $S 3DBorder.3$Z Tk_Get3DBorderFromObj.3$Z
- ln $S 3DBorder.3$Z Tk_Draw3DRectangle.3$Z
- ln $S 3DBorder.3$Z Tk_Fill3DRectangle.3$Z
- ln $S 3DBorder.3$Z Tk_Draw3DPolygon.3$Z
- ln $S 3DBorder.3$Z Tk_Fill3DPolygon.3$Z
- ln $S 3DBorder.3$Z Tk_3DVerticalBevel.3$Z
- ln $S 3DBorder.3$Z Tk_3DHorizontalBevel.3$Z
- ln $S 3DBorder.3$Z Tk_SetBackgroundFromBorder.3$Z
- ln $S 3DBorder.3$Z Tk_NameOf3DBorder.3$Z
- ln $S 3DBorder.3$Z Tk_3DBorderColor.3$Z
- ln $S 3DBorder.3$Z Tk_3DBorderGC.3$Z
- ln $S 3DBorder.3$Z Tk_Free3DBorderFromObj.3$Z
- ln $S 3DBorder.3$Z Tk_Free3DBorder.3$Z
-fi
-if test -r AddOption.3; then
- rm -f AddOption.3.*
- $ZIP AddOption.3
- rm -f Tk_AddOption.3 Tk_AddOption.3.*
- ln $S AddOption.3$Z Tk_AddOption.3$Z
-fi
-if test -r BindTable.3; then
- rm -f BindTable.3.*
- $ZIP BindTable.3
- rm -f Tk_CreateBindingTable.3 Tk_CreateBindingTable.3.*
- rm -f Tk_DeleteBindingTable.3 Tk_DeleteBindingTable.3.*
- rm -f Tk_CreateBinding.3 Tk_CreateBinding.3.*
- rm -f Tk_DeleteBinding.3 Tk_DeleteBinding.3.*
- rm -f Tk_GetBinding.3 Tk_GetBinding.3.*
- rm -f Tk_GetAllBindings.3 Tk_GetAllBindings.3.*
- rm -f Tk_DeleteAllBindings.3 Tk_DeleteAllBindings.3.*
- rm -f Tk_BindEvent.3 Tk_BindEvent.3.*
- ln $S BindTable.3$Z Tk_CreateBindingTable.3$Z
- ln $S BindTable.3$Z Tk_DeleteBindingTable.3$Z
- ln $S BindTable.3$Z Tk_CreateBinding.3$Z
- ln $S BindTable.3$Z Tk_DeleteBinding.3$Z
- ln $S BindTable.3$Z Tk_GetBinding.3$Z
- ln $S BindTable.3$Z Tk_GetAllBindings.3$Z
- ln $S BindTable.3$Z Tk_DeleteAllBindings.3$Z
- ln $S BindTable.3$Z Tk_BindEvent.3$Z
-fi
-if test -r CanvPsY.3; then
- rm -f CanvPsY.3.*
- $ZIP CanvPsY.3
- rm -f Tk_CanvasPsY.3 Tk_CanvasPsY.3.*
- rm -f Tk_CanvasPsBitmap.3 Tk_CanvasPsBitmap.3.*
- rm -f Tk_CanvasPsColor.3 Tk_CanvasPsColor.3.*
- rm -f Tk_CanvasPsFont.3 Tk_CanvasPsFont.3.*
- rm -f Tk_CanvasPsPath.3 Tk_CanvasPsPath.3.*
- rm -f Tk_CanvasPsStipple.3 Tk_CanvasPsStipple.3.*
- ln $S CanvPsY.3$Z Tk_CanvasPsY.3$Z
- ln $S CanvPsY.3$Z Tk_CanvasPsBitmap.3$Z
- ln $S CanvPsY.3$Z Tk_CanvasPsColor.3$Z
- ln $S CanvPsY.3$Z Tk_CanvasPsFont.3$Z
- ln $S CanvPsY.3$Z Tk_CanvasPsPath.3$Z
- ln $S CanvPsY.3$Z Tk_CanvasPsStipple.3$Z
-fi
-if test -r CanvTkwin.3; then
- rm -f CanvTkwin.3.*
- $ZIP CanvTkwin.3
- rm -f Tk_CanvasTkwin.3 Tk_CanvasTkwin.3.*
- rm -f Tk_CanvasGetCoord.3 Tk_CanvasGetCoord.3.*
- rm -f Tk_CanvasDrawableCoords.3 Tk_CanvasDrawableCoords.3.*
- rm -f Tk_CanvasSetStippleOrigin.3 Tk_CanvasSetStippleOrigin.3.*
- rm -f Tk_CanvasWindowCoords.3 Tk_CanvasWindowCoords.3.*
- rm -f Tk_CanvasEventuallyRedraw.3 Tk_CanvasEventuallyRedraw.3.*
- rm -f Tk_CanvasTagsOption.3 Tk_CanvasTagsOption.3.*
- ln $S CanvTkwin.3$Z Tk_CanvasTkwin.3$Z
- ln $S CanvTkwin.3$Z Tk_CanvasGetCoord.3$Z
- ln $S CanvTkwin.3$Z Tk_CanvasDrawableCoords.3$Z
- ln $S CanvTkwin.3$Z Tk_CanvasSetStippleOrigin.3$Z
- ln $S CanvTkwin.3$Z Tk_CanvasWindowCoords.3$Z
- ln $S CanvTkwin.3$Z Tk_CanvasEventuallyRedraw.3$Z
- ln $S CanvTkwin.3$Z Tk_CanvasTagsOption.3$Z
-fi
-if test -r CanvTxtInfo.3; then
- rm -f CanvTxtInfo.3.*
- $ZIP CanvTxtInfo.3
- rm -f Tk_CanvasTextInfo.3 Tk_CanvasTextInfo.3.*
- ln $S CanvTxtInfo.3$Z Tk_CanvasTextInfo.3$Z
-fi
-if test -r Clipboard.3; then
- rm -f Clipboard.3.*
- $ZIP Clipboard.3
- rm -f Tk_ClipboardClear.3 Tk_ClipboardClear.3.*
- rm -f Tk_ClipboardAppend.3 Tk_ClipboardAppend.3.*
- ln $S Clipboard.3$Z Tk_ClipboardClear.3$Z
- ln $S Clipboard.3$Z Tk_ClipboardAppend.3$Z
-fi
-if test -r ClrSelect.3; then
- rm -f ClrSelect.3.*
- $ZIP ClrSelect.3
- rm -f Tk_ClearSelection.3 Tk_ClearSelection.3.*
- ln $S ClrSelect.3$Z Tk_ClearSelection.3$Z
-fi
-if test -r ConfigWidg.3; then
- rm -f ConfigWidg.3.*
- $ZIP ConfigWidg.3
- rm -f Tk_ConfigureWidget.3 Tk_ConfigureWidget.3.*
- rm -f Tk_Offset.3 Tk_Offset.3.*
- rm -f Tk_ConfigureInfo.3 Tk_ConfigureInfo.3.*
- rm -f Tk_ConfigureValue.3 Tk_ConfigureValue.3.*
- rm -f Tk_FreeOptions.3 Tk_FreeOptions.3.*
- ln $S ConfigWidg.3$Z Tk_ConfigureWidget.3$Z
- ln $S ConfigWidg.3$Z Tk_Offset.3$Z
- ln $S ConfigWidg.3$Z Tk_ConfigureInfo.3$Z
- ln $S ConfigWidg.3$Z Tk_ConfigureValue.3$Z
- ln $S ConfigWidg.3$Z Tk_FreeOptions.3$Z
-fi
-if test -r ConfigWind.3; then
- rm -f ConfigWind.3.*
- $ZIP ConfigWind.3
- rm -f Tk_ConfigureWindow.3 Tk_ConfigureWindow.3.*
- rm -f Tk_MoveWindow.3 Tk_MoveWindow.3.*
- rm -f Tk_ResizeWindow.3 Tk_ResizeWindow.3.*
- rm -f Tk_MoveResizeWindow.3 Tk_MoveResizeWindow.3.*
- rm -f Tk_SetWindowBorderWidth.3 Tk_SetWindowBorderWidth.3.*
- rm -f Tk_ChangeWindowAttributes.3 Tk_ChangeWindowAttributes.3.*
- rm -f Tk_SetWindowBackground.3 Tk_SetWindowBackground.3.*
- rm -f Tk_SetWindowBackgroundPixmap.3 Tk_SetWindowBackgroundPixmap.3.*
- rm -f Tk_SetWindowBorder.3 Tk_SetWindowBorder.3.*
- rm -f Tk_SetWindowBorderPixmap.3 Tk_SetWindowBorderPixmap.3.*
- rm -f Tk_SetWindowColormap.3 Tk_SetWindowColormap.3.*
- rm -f Tk_DefineCursor.3 Tk_DefineCursor.3.*
- rm -f Tk_UndefineCursor.3 Tk_UndefineCursor.3.*
- ln $S ConfigWind.3$Z Tk_ConfigureWindow.3$Z
- ln $S ConfigWind.3$Z Tk_MoveWindow.3$Z
- ln $S ConfigWind.3$Z Tk_ResizeWindow.3$Z
- ln $S ConfigWind.3$Z Tk_MoveResizeWindow.3$Z
- ln $S ConfigWind.3$Z Tk_SetWindowBorderWidth.3$Z
- ln $S ConfigWind.3$Z Tk_ChangeWindowAttributes.3$Z
- ln $S ConfigWind.3$Z Tk_SetWindowBackground.3$Z
- ln $S ConfigWind.3$Z Tk_SetWindowBackgroundPixmap.3$Z
- ln $S ConfigWind.3$Z Tk_SetWindowBorder.3$Z
- ln $S ConfigWind.3$Z Tk_SetWindowBorderPixmap.3$Z
- ln $S ConfigWind.3$Z Tk_SetWindowColormap.3$Z
- ln $S ConfigWind.3$Z Tk_DefineCursor.3$Z
- ln $S ConfigWind.3$Z Tk_UndefineCursor.3$Z
-fi
-if test -r CoordToWin.3; then
- rm -f CoordToWin.3.*
- $ZIP CoordToWin.3
- rm -f Tk_CoordsToWindow.3 Tk_CoordsToWindow.3.*
- ln $S CoordToWin.3$Z Tk_CoordsToWindow.3$Z
-fi
-if test -r CrtCmHdlr.3; then
- rm -f CrtCmHdlr.3.*
- $ZIP CrtCmHdlr.3
- rm -f Tk_CreateClientMessageHandler.3 Tk_CreateClientMessageHandler.3.*
- rm -f Tk_DeleteClientMessageHandler.3 Tk_DeleteClientMessageHandler.3.*
- ln $S CrtCmHdlr.3$Z Tk_CreateClientMessageHandler.3$Z
- ln $S CrtCmHdlr.3$Z Tk_DeleteClientMessageHandler.3$Z
-fi
-if test -r CrtErrHdlr.3; then
- rm -f CrtErrHdlr.3.*
- $ZIP CrtErrHdlr.3
- rm -f Tk_CreateErrorHandler.3 Tk_CreateErrorHandler.3.*
- rm -f Tk_DeleteErrorHandler.3 Tk_DeleteErrorHandler.3.*
- ln $S CrtErrHdlr.3$Z Tk_CreateErrorHandler.3$Z
- ln $S CrtErrHdlr.3$Z Tk_DeleteErrorHandler.3$Z
-fi
-if test -r CrtGenHdlr.3; then
- rm -f CrtGenHdlr.3.*
- $ZIP CrtGenHdlr.3
- rm -f Tk_CreateGenericHandler.3 Tk_CreateGenericHandler.3.*
- rm -f Tk_DeleteGenericHandler.3 Tk_DeleteGenericHandler.3.*
- ln $S CrtGenHdlr.3$Z Tk_CreateGenericHandler.3$Z
- ln $S CrtGenHdlr.3$Z Tk_DeleteGenericHandler.3$Z
-fi
-if test -r CrtImgType.3; then
- rm -f CrtImgType.3.*
- $ZIP CrtImgType.3
- rm -f Tk_CreateImageType.3 Tk_CreateImageType.3.*
- rm -f Tk_GetImageMasterData.3 Tk_GetImageMasterData.3.*
- rm -f Tk_InitImageArgs.3 Tk_InitImageArgs.3.*
- ln $S CrtImgType.3$Z Tk_CreateImageType.3$Z
- ln $S CrtImgType.3$Z Tk_GetImageMasterData.3$Z
- ln $S CrtImgType.3$Z Tk_InitImageArgs.3$Z
-fi
-if test -r CrtItemType.3; then
- rm -f CrtItemType.3.*
- $ZIP CrtItemType.3
- rm -f Tk_CreateItemType.3 Tk_CreateItemType.3.*
- rm -f Tk_GetItemTypes.3 Tk_GetItemTypes.3.*
- ln $S CrtItemType.3$Z Tk_CreateItemType.3$Z
- ln $S CrtItemType.3$Z Tk_GetItemTypes.3$Z
-fi
-if test -r CrtPhImgFmt.3; then
- rm -f CrtPhImgFmt.3.*
- $ZIP CrtPhImgFmt.3
- rm -f Tk_CreatePhotoImageFormat.3 Tk_CreatePhotoImageFormat.3.*
- ln $S CrtPhImgFmt.3$Z Tk_CreatePhotoImageFormat.3$Z
-fi
-if test -r CrtSelHdlr.3; then
- rm -f CrtSelHdlr.3.*
- $ZIP CrtSelHdlr.3
- rm -f Tk_CreateSelHandler.3 Tk_CreateSelHandler.3.*
- rm -f Tk_DeleteSelHandler.3 Tk_DeleteSelHandler.3.*
- ln $S CrtSelHdlr.3$Z Tk_CreateSelHandler.3$Z
- ln $S CrtSelHdlr.3$Z Tk_DeleteSelHandler.3$Z
-fi
-if test -r CrtWindow.3; then
- rm -f CrtWindow.3.*
- $ZIP CrtWindow.3
- rm -f Tk_CreateWindow.3 Tk_CreateWindow.3.*
- rm -f Tk_CreateWindowFromPath.3 Tk_CreateWindowFromPath.3.*
- rm -f Tk_DestroyWindow.3 Tk_DestroyWindow.3.*
- rm -f Tk_MakeWindowExist.3 Tk_MakeWindowExist.3.*
- ln $S CrtWindow.3$Z Tk_CreateWindow.3$Z
- ln $S CrtWindow.3$Z Tk_CreateWindowFromPath.3$Z
- ln $S CrtWindow.3$Z Tk_DestroyWindow.3$Z
- ln $S CrtWindow.3$Z Tk_MakeWindowExist.3$Z
-fi
-if test -r DeleteImg.3; then
- rm -f DeleteImg.3.*
- $ZIP DeleteImg.3
- rm -f Tk_DeleteImage.3 Tk_DeleteImage.3.*
- ln $S DeleteImg.3$Z Tk_DeleteImage.3$Z
-fi
-if test -r DrawFocHlt.3; then
- rm -f DrawFocHlt.3.*
- $ZIP DrawFocHlt.3
- rm -f Tk_DrawFocusHighlight.3 Tk_DrawFocusHighlight.3.*
- ln $S DrawFocHlt.3$Z Tk_DrawFocusHighlight.3$Z
-fi
-if test -r EventHndlr.3; then
- rm -f EventHndlr.3.*
- $ZIP EventHndlr.3
- rm -f Tk_CreateEventHandler.3 Tk_CreateEventHandler.3.*
- rm -f Tk_DeleteEventHandler.3 Tk_DeleteEventHandler.3.*
- ln $S EventHndlr.3$Z Tk_CreateEventHandler.3$Z
- ln $S EventHndlr.3$Z Tk_DeleteEventHandler.3$Z
-fi
-if test -r FindPhoto.3; then
- rm -f FindPhoto.3.*
- $ZIP FindPhoto.3
- rm -f Tk_FindPhoto.3 Tk_FindPhoto.3.*
- rm -f Tk_PhotoPutBlock.3 Tk_PhotoPutBlock.3.*
- rm -f Tk_PhotoPutZoomedBlock.3 Tk_PhotoPutZoomedBlock.3.*
- rm -f Tk_PhotoGetImage.3 Tk_PhotoGetImage.3.*
- rm -f Tk_PhotoBlank.3 Tk_PhotoBlank.3.*
- rm -f Tk_PhotoExpand.3 Tk_PhotoExpand.3.*
- rm -f Tk_PhotoGetSize.3 Tk_PhotoGetSize.3.*
- rm -f Tk_PhotoSetSize.3 Tk_PhotoSetSize.3.*
- ln $S FindPhoto.3$Z Tk_FindPhoto.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoPutBlock.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoPutZoomedBlock.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoGetImage.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoBlank.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoExpand.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoGetSize.3$Z
- ln $S FindPhoto.3$Z Tk_PhotoSetSize.3$Z
-fi
-if test -r FontId.3; then
- rm -f FontId.3.*
- $ZIP FontId.3
- rm -f Tk_FontId.3 Tk_FontId.3.*
- rm -f Tk_GetFontMetrics.3 Tk_GetFontMetrics.3.*
- rm -f Tk_PostscriptFontName.3 Tk_PostscriptFontName.3.*
- ln $S FontId.3$Z Tk_FontId.3$Z
- ln $S FontId.3$Z Tk_GetFontMetrics.3$Z
- ln $S FontId.3$Z Tk_PostscriptFontName.3$Z
-fi
-if test -r FreeXId.3; then
- rm -f FreeXId.3.*
- $ZIP FreeXId.3
- rm -f Tk_FreeXId.3 Tk_FreeXId.3.*
- ln $S FreeXId.3$Z Tk_FreeXId.3$Z
-fi
-if test -r GeomReq.3; then
- rm -f GeomReq.3.*
- $ZIP GeomReq.3
- rm -f Tk_GeometryRequest.3 Tk_GeometryRequest.3.*
- rm -f Tk_SetMinimumRequestSize.3 Tk_SetMinimumRequestSize.3.*
- rm -f Tk_SetInternalBorder.3 Tk_SetInternalBorder.3.*
- rm -f Tk_SetInternalBorderEx.3 Tk_SetInternalBorderEx.3.*
- ln $S GeomReq.3$Z Tk_GeometryRequest.3$Z
- ln $S GeomReq.3$Z Tk_SetMinimumRequestSize.3$Z
- ln $S GeomReq.3$Z Tk_SetInternalBorder.3$Z
- ln $S GeomReq.3$Z Tk_SetInternalBorderEx.3$Z
-fi
-if test -r GetAnchor.3; then
- rm -f GetAnchor.3.*
- $ZIP GetAnchor.3
- rm -f Tk_GetAnchorFromObj.3 Tk_GetAnchorFromObj.3.*
- rm -f Tk_GetAnchor.3 Tk_GetAnchor.3.*
- rm -f Tk_NameOfAnchor.3 Tk_NameOfAnchor.3.*
- ln $S GetAnchor.3$Z Tk_GetAnchorFromObj.3$Z
- ln $S GetAnchor.3$Z Tk_GetAnchor.3$Z
- ln $S GetAnchor.3$Z Tk_NameOfAnchor.3$Z
-fi
-if test -r GetBitmap.3; then
- rm -f GetBitmap.3.*
- $ZIP GetBitmap.3
- rm -f Tk_AllocBitmapFromObj.3 Tk_AllocBitmapFromObj.3.*
- rm -f Tk_GetBitmap.3 Tk_GetBitmap.3.*
- rm -f Tk_GetBitmapFromObj.3 Tk_GetBitmapFromObj.3.*
- rm -f Tk_DefineBitmap.3 Tk_DefineBitmap.3.*
- rm -f Tk_NameOfBitmap.3 Tk_NameOfBitmap.3.*
- rm -f Tk_SizeOfBitmap.3 Tk_SizeOfBitmap.3.*
- rm -f Tk_FreeBitmapFromObj.3 Tk_FreeBitmapFromObj.3.*
- rm -f Tk_FreeBitmap.3 Tk_FreeBitmap.3.*
- ln $S GetBitmap.3$Z Tk_AllocBitmapFromObj.3$Z
- ln $S GetBitmap.3$Z Tk_GetBitmap.3$Z
- ln $S GetBitmap.3$Z Tk_GetBitmapFromObj.3$Z
- ln $S GetBitmap.3$Z Tk_DefineBitmap.3$Z
- ln $S GetBitmap.3$Z Tk_NameOfBitmap.3$Z
- ln $S GetBitmap.3$Z Tk_SizeOfBitmap.3$Z
- ln $S GetBitmap.3$Z Tk_FreeBitmapFromObj.3$Z
- ln $S GetBitmap.3$Z Tk_FreeBitmap.3$Z
-fi
-if test -r GetCapStyl.3; then
- rm -f GetCapStyl.3.*
- $ZIP GetCapStyl.3
- rm -f Tk_GetCapStyle.3 Tk_GetCapStyle.3.*
- rm -f Tk_NameOfCapStyle.3 Tk_NameOfCapStyle.3.*
- ln $S GetCapStyl.3$Z Tk_GetCapStyle.3$Z
- ln $S GetCapStyl.3$Z Tk_NameOfCapStyle.3$Z
-fi
-if test -r GetClrmap.3; then
- rm -f GetClrmap.3.*
- $ZIP GetClrmap.3
- rm -f Tk_GetColormap.3 Tk_GetColormap.3.*
- rm -f Tk_FreeColormap.3 Tk_FreeColormap.3.*
- ln $S GetClrmap.3$Z Tk_GetColormap.3$Z
- ln $S GetClrmap.3$Z Tk_FreeColormap.3$Z
-fi
-if test -r GetColor.3; then
- rm -f GetColor.3.*
- $ZIP GetColor.3
- rm -f Tk_AllocColorFromObj.3 Tk_AllocColorFromObj.3.*
- rm -f Tk_GetColor.3 Tk_GetColor.3.*
- rm -f Tk_GetColorFromObj.3 Tk_GetColorFromObj.3.*
- rm -f Tk_GetColorByValue.3 Tk_GetColorByValue.3.*
- rm -f Tk_NameOfColor.3 Tk_NameOfColor.3.*
- rm -f Tk_FreeColorFromObj.3 Tk_FreeColorFromObj.3.*
- rm -f Tk_FreeColor.3 Tk_FreeColor.3.*
- ln $S GetColor.3$Z Tk_AllocColorFromObj.3$Z
- ln $S GetColor.3$Z Tk_GetColor.3$Z
- ln $S GetColor.3$Z Tk_GetColorFromObj.3$Z
- ln $S GetColor.3$Z Tk_GetColorByValue.3$Z
- ln $S GetColor.3$Z Tk_NameOfColor.3$Z
- ln $S GetColor.3$Z Tk_FreeColorFromObj.3$Z
- ln $S GetColor.3$Z Tk_FreeColor.3$Z
-fi
-if test -r GetCursor.3; then
- rm -f GetCursor.3.*
- $ZIP GetCursor.3
- rm -f Tk_AllocCursorFromObj.3 Tk_AllocCursorFromObj.3.*
- rm -f Tk_GetCursor.3 Tk_GetCursor.3.*
- rm -f Tk_GetCursorFromObj.3 Tk_GetCursorFromObj.3.*
- rm -f Tk_GetCursorFromData.3 Tk_GetCursorFromData.3.*
- rm -f Tk_NameOfCursor.3 Tk_NameOfCursor.3.*
- rm -f Tk_FreeCursorFromObj.3 Tk_FreeCursorFromObj.3.*
- rm -f Tk_FreeCursor.3 Tk_FreeCursor.3.*
- ln $S GetCursor.3$Z Tk_AllocCursorFromObj.3$Z
- ln $S GetCursor.3$Z Tk_GetCursor.3$Z
- ln $S GetCursor.3$Z Tk_GetCursorFromObj.3$Z
- ln $S GetCursor.3$Z Tk_GetCursorFromData.3$Z
- ln $S GetCursor.3$Z Tk_NameOfCursor.3$Z
- ln $S GetCursor.3$Z Tk_FreeCursorFromObj.3$Z
- ln $S GetCursor.3$Z Tk_FreeCursor.3$Z
-fi
-if test -r GetDash.3; then
- rm -f GetDash.3.*
- $ZIP GetDash.3
- rm -f Tk_GetDash.3 Tk_GetDash.3.*
- ln $S GetDash.3$Z Tk_GetDash.3$Z
-fi
-if test -r GetFont.3; then
- rm -f GetFont.3.*
- $ZIP GetFont.3
- rm -f Tk_AllocFontFromObj.3 Tk_AllocFontFromObj.3.*
- rm -f Tk_GetFont.3 Tk_GetFont.3.*
- rm -f Tk_GetFontFromObj.3 Tk_GetFontFromObj.3.*
- rm -f Tk_NameOfFont.3 Tk_NameOfFont.3.*
- rm -f Tk_FreeFontFromObj.3 Tk_FreeFontFromObj.3.*
- rm -f Tk_FreeFont.3 Tk_FreeFont.3.*
- ln $S GetFont.3$Z Tk_AllocFontFromObj.3$Z
- ln $S GetFont.3$Z Tk_GetFont.3$Z
- ln $S GetFont.3$Z Tk_GetFontFromObj.3$Z
- ln $S GetFont.3$Z Tk_NameOfFont.3$Z
- ln $S GetFont.3$Z Tk_FreeFontFromObj.3$Z
- ln $S GetFont.3$Z Tk_FreeFont.3$Z
-fi
-if test -r GetGC.3; then
- rm -f GetGC.3.*
- $ZIP GetGC.3
- rm -f Tk_GetGC.3 Tk_GetGC.3.*
- rm -f Tk_FreeGC.3 Tk_FreeGC.3.*
- ln $S GetGC.3$Z Tk_GetGC.3$Z
- ln $S GetGC.3$Z Tk_FreeGC.3$Z
-fi
-if test -r GetHINSTANCE.3; then
- rm -f GetHINSTANCE.3.*
- $ZIP GetHINSTANCE.3
- rm -f Tk_GetHINSTANCE.3 Tk_GetHINSTANCE.3.*
- ln $S GetHINSTANCE.3$Z Tk_GetHINSTANCE.3$Z
-fi
-if test -r GetHWND.3; then
- rm -f GetHWND.3.*
- $ZIP GetHWND.3
- rm -f Tk_GetHWND.3 Tk_GetHWND.3.*
- ln $S GetHWND.3$Z Tk_GetHWND.3$Z
-fi
-if test -r GetImage.3; then
- rm -f GetImage.3.*
- $ZIP GetImage.3
- rm -f Tk_GetImage.3 Tk_GetImage.3.*
- rm -f Tk_RedrawImage.3 Tk_RedrawImage.3.*
- rm -f Tk_SizeOfImage.3 Tk_SizeOfImage.3.*
- rm -f Tk_FreeImage.3 Tk_FreeImage.3.*
- ln $S GetImage.3$Z Tk_GetImage.3$Z
- ln $S GetImage.3$Z Tk_RedrawImage.3$Z
- ln $S GetImage.3$Z Tk_SizeOfImage.3$Z
- ln $S GetImage.3$Z Tk_FreeImage.3$Z
-fi
-if test -r GetJoinStl.3; then
- rm -f GetJoinStl.3.*
- $ZIP GetJoinStl.3
- rm -f Tk_GetJoinStyle.3 Tk_GetJoinStyle.3.*
- rm -f Tk_NameOfJoinStyle.3 Tk_NameOfJoinStyle.3.*
- ln $S GetJoinStl.3$Z Tk_GetJoinStyle.3$Z
- ln $S GetJoinStl.3$Z Tk_NameOfJoinStyle.3$Z
-fi
-if test -r GetJustify.3; then
- rm -f GetJustify.3.*
- $ZIP GetJustify.3
- rm -f Tk_GetJustifyFromObj.3 Tk_GetJustifyFromObj.3.*
- rm -f Tk_GetJustify.3 Tk_GetJustify.3.*
- rm -f Tk_NameOfJustify.3 Tk_NameOfJustify.3.*
- ln $S GetJustify.3$Z Tk_GetJustifyFromObj.3$Z
- ln $S GetJustify.3$Z Tk_GetJustify.3$Z
- ln $S GetJustify.3$Z Tk_NameOfJustify.3$Z
-fi
-if test -r GetOption.3; then
- rm -f GetOption.3.*
- $ZIP GetOption.3
- rm -f Tk_GetOption.3 Tk_GetOption.3.*
- ln $S GetOption.3$Z Tk_GetOption.3$Z
-fi
-if test -r GetPixels.3; then
- rm -f GetPixels.3.*
- $ZIP GetPixels.3
- rm -f Tk_GetPixelsFromObj.3 Tk_GetPixelsFromObj.3.*
- rm -f Tk_GetPixels.3 Tk_GetPixels.3.*
- rm -f Tk_GetMMFromObj.3 Tk_GetMMFromObj.3.*
- rm -f Tk_GetScreenMM.3 Tk_GetScreenMM.3.*
- ln $S GetPixels.3$Z Tk_GetPixelsFromObj.3$Z
- ln $S GetPixels.3$Z Tk_GetPixels.3$Z
- ln $S GetPixels.3$Z Tk_GetMMFromObj.3$Z
- ln $S GetPixels.3$Z Tk_GetScreenMM.3$Z
-fi
-if test -r GetPixmap.3; then
- rm -f GetPixmap.3.*
- $ZIP GetPixmap.3
- rm -f Tk_GetPixmap.3 Tk_GetPixmap.3.*
- rm -f Tk_FreePixmap.3 Tk_FreePixmap.3.*
- ln $S GetPixmap.3$Z Tk_GetPixmap.3$Z
- ln $S GetPixmap.3$Z Tk_FreePixmap.3$Z
-fi
-if test -r GetRelief.3; then
- rm -f GetRelief.3.*
- $ZIP GetRelief.3
- rm -f Tk_GetReliefFromObj.3 Tk_GetReliefFromObj.3.*
- rm -f Tk_GetRelief.3 Tk_GetRelief.3.*
- rm -f Tk_NameOfRelief.3 Tk_NameOfRelief.3.*
- ln $S GetRelief.3$Z Tk_GetReliefFromObj.3$Z
- ln $S GetRelief.3$Z Tk_GetRelief.3$Z
- ln $S GetRelief.3$Z Tk_NameOfRelief.3$Z
-fi
-if test -r GetRootCrd.3; then
- rm -f GetRootCrd.3.*
- $ZIP GetRootCrd.3
- rm -f Tk_GetRootCoords.3 Tk_GetRootCoords.3.*
- ln $S GetRootCrd.3$Z Tk_GetRootCoords.3$Z
-fi
-if test -r GetScroll.3; then
- rm -f GetScroll.3.*
- $ZIP GetScroll.3
- rm -f Tk_GetScrollInfo.3 Tk_GetScrollInfo.3.*
- rm -f Tk_GetScrollInfoObj.3 Tk_GetScrollInfoObj.3.*
- ln $S GetScroll.3$Z Tk_GetScrollInfo.3$Z
- ln $S GetScroll.3$Z Tk_GetScrollInfoObj.3$Z
-fi
-if test -r GetSelect.3; then
- rm -f GetSelect.3.*
- $ZIP GetSelect.3
- rm -f Tk_GetSelection.3 Tk_GetSelection.3.*
- ln $S GetSelect.3$Z Tk_GetSelection.3$Z
-fi
-if test -r GetUid.3; then
- rm -f GetUid.3.*
- $ZIP GetUid.3
- rm -f Tk_GetUid.3 Tk_GetUid.3.*
- rm -f Tk_Uid.3 Tk_Uid.3.*
- ln $S GetUid.3$Z Tk_GetUid.3$Z
- ln $S GetUid.3$Z Tk_Uid.3$Z
-fi
-if test -r GetVRoot.3; then
- rm -f GetVRoot.3.*
- $ZIP GetVRoot.3
- rm -f Tk_GetVRootGeometry.3 Tk_GetVRootGeometry.3.*
- ln $S GetVRoot.3$Z Tk_GetVRootGeometry.3$Z
-fi
-if test -r GetVisual.3; then
- rm -f GetVisual.3.*
- $ZIP GetVisual.3
- rm -f Tk_GetVisual.3 Tk_GetVisual.3.*
- ln $S GetVisual.3$Z Tk_GetVisual.3$Z
-fi
-if test -r Grab.3; then
- rm -f Grab.3.*
- $ZIP Grab.3
- rm -f Tk_Grab.3 Tk_Grab.3.*
- rm -f Tk_Ungrab.3 Tk_Ungrab.3.*
- ln $S Grab.3$Z Tk_Grab.3$Z
- ln $S Grab.3$Z Tk_Ungrab.3$Z
-fi
-if test -r HWNDToWindow.3; then
- rm -f HWNDToWindow.3.*
- $ZIP HWNDToWindow.3
- rm -f Tk_HWNDToWindow.3 Tk_HWNDToWindow.3.*
- ln $S HWNDToWindow.3$Z Tk_HWNDToWindow.3$Z
-fi
-if test -r HandleEvent.3; then
- rm -f HandleEvent.3.*
- $ZIP HandleEvent.3
- rm -f Tk_HandleEvent.3 Tk_HandleEvent.3.*
- ln $S HandleEvent.3$Z Tk_HandleEvent.3$Z
-fi
-if test -r IdToWindow.3; then
- rm -f IdToWindow.3.*
- $ZIP IdToWindow.3
- rm -f Tk_IdToWindow.3 Tk_IdToWindow.3.*
- ln $S IdToWindow.3$Z Tk_IdToWindow.3$Z
-fi
-if test -r ImgChanged.3; then
- rm -f ImgChanged.3.*
- $ZIP ImgChanged.3
- rm -f Tk_ImageChanged.3 Tk_ImageChanged.3.*
- ln $S ImgChanged.3$Z Tk_ImageChanged.3$Z
-fi
-if test -r InternAtom.3; then
- rm -f InternAtom.3.*
- $ZIP InternAtom.3
- rm -f Tk_InternAtom.3 Tk_InternAtom.3.*
- rm -f Tk_GetAtomName.3 Tk_GetAtomName.3.*
- ln $S InternAtom.3$Z Tk_InternAtom.3$Z
- ln $S InternAtom.3$Z Tk_GetAtomName.3$Z
-fi
-if test -r MainLoop.3; then
- rm -f MainLoop.3.*
- $ZIP MainLoop.3
- rm -f Tk_MainLoop.3 Tk_MainLoop.3.*
- ln $S MainLoop.3$Z Tk_MainLoop.3$Z
-fi
-if test -r MainWin.3; then
- rm -f MainWin.3.*
- $ZIP MainWin.3
- rm -f Tk_MainWindow.3 Tk_MainWindow.3.*
- rm -f Tk_GetNumMainWindows.3 Tk_GetNumMainWindows.3.*
- ln $S MainWin.3$Z Tk_MainWindow.3$Z
- ln $S MainWin.3$Z Tk_GetNumMainWindows.3$Z
-fi
-if test -r MaintGeom.3; then
- rm -f MaintGeom.3.*
- $ZIP MaintGeom.3
- rm -f Tk_MaintainGeometry.3 Tk_MaintainGeometry.3.*
- rm -f Tk_UnmaintainGeometry.3 Tk_UnmaintainGeometry.3.*
- ln $S MaintGeom.3$Z Tk_MaintainGeometry.3$Z
- ln $S MaintGeom.3$Z Tk_UnmaintainGeometry.3$Z
-fi
-if test -r ManageGeom.3; then
- rm -f ManageGeom.3.*
- $ZIP ManageGeom.3
- rm -f Tk_ManageGeometry.3 Tk_ManageGeometry.3.*
- ln $S ManageGeom.3$Z Tk_ManageGeometry.3$Z
-fi
-if test -r MapWindow.3; then
- rm -f MapWindow.3.*
- $ZIP MapWindow.3
- rm -f Tk_MapWindow.3 Tk_MapWindow.3.*
- rm -f Tk_UnmapWindow.3 Tk_UnmapWindow.3.*
- ln $S MapWindow.3$Z Tk_MapWindow.3$Z
- ln $S MapWindow.3$Z Tk_UnmapWindow.3$Z
-fi
-if test -r MeasureChar.3; then
- rm -f MeasureChar.3.*
- $ZIP MeasureChar.3
- rm -f Tk_MeasureChars.3 Tk_MeasureChars.3.*
- rm -f Tk_TextWidth.3 Tk_TextWidth.3.*
- rm -f Tk_DrawChars.3 Tk_DrawChars.3.*
- rm -f Tk_UnderlineChars.3 Tk_UnderlineChars.3.*
- ln $S MeasureChar.3$Z Tk_MeasureChars.3$Z
- ln $S MeasureChar.3$Z Tk_TextWidth.3$Z
- ln $S MeasureChar.3$Z Tk_DrawChars.3$Z
- ln $S MeasureChar.3$Z Tk_UnderlineChars.3$Z
-fi
-if test -r MoveToplev.3; then
- rm -f MoveToplev.3.*
- $ZIP MoveToplev.3
- rm -f Tk_MoveToplevelWindow.3 Tk_MoveToplevelWindow.3.*
- ln $S MoveToplev.3$Z Tk_MoveToplevelWindow.3$Z
-fi
-if test -r Name.3; then
- rm -f Name.3.*
- $ZIP Name.3
- rm -f Tk_Name.3 Tk_Name.3.*
- rm -f Tk_PathName.3 Tk_PathName.3.*
- rm -f Tk_NameToWindow.3 Tk_NameToWindow.3.*
- ln $S Name.3$Z Tk_Name.3$Z
- ln $S Name.3$Z Tk_PathName.3$Z
- ln $S Name.3$Z Tk_NameToWindow.3$Z
-fi
-if test -r NameOfImg.3; then
- rm -f NameOfImg.3.*
- $ZIP NameOfImg.3
- rm -f Tk_NameOfImage.3 Tk_NameOfImage.3.*
- ln $S NameOfImg.3$Z Tk_NameOfImage.3$Z
-fi
-if test -r OwnSelect.3; then
- rm -f OwnSelect.3.*
- $ZIP OwnSelect.3
- rm -f Tk_OwnSelection.3 Tk_OwnSelection.3.*
- ln $S OwnSelect.3$Z Tk_OwnSelection.3$Z
-fi
-if test -r ParseArgv.3; then
- rm -f ParseArgv.3.*
- $ZIP ParseArgv.3
- rm -f Tk_ParseArgv.3 Tk_ParseArgv.3.*
- ln $S ParseArgv.3$Z Tk_ParseArgv.3$Z
-fi
-if test -r QWinEvent.3; then
- rm -f QWinEvent.3.*
- $ZIP QWinEvent.3
- rm -f Tk_CollapseMotionEvents.3 Tk_CollapseMotionEvents.3.*
- rm -f Tk_QueueWindowEvent.3 Tk_QueueWindowEvent.3.*
- ln $S QWinEvent.3$Z Tk_CollapseMotionEvents.3$Z
- ln $S QWinEvent.3$Z Tk_QueueWindowEvent.3$Z
-fi
-if test -r Restack.3; then
- rm -f Restack.3.*
- $ZIP Restack.3
- rm -f Tk_RestackWindow.3 Tk_RestackWindow.3.*
- ln $S Restack.3$Z Tk_RestackWindow.3$Z
-fi
-if test -r RestrictEv.3; then
- rm -f RestrictEv.3.*
- $ZIP RestrictEv.3
- rm -f Tk_RestrictEvents.3 Tk_RestrictEvents.3.*
- ln $S RestrictEv.3$Z Tk_RestrictEvents.3$Z
-fi
-if test -r SetAppName.3; then
- rm -f SetAppName.3.*
- $ZIP SetAppName.3
- rm -f Tk_SetAppName.3 Tk_SetAppName.3.*
- ln $S SetAppName.3$Z Tk_SetAppName.3$Z
-fi
-if test -r SetCaret.3; then
- rm -f SetCaret.3.*
- $ZIP SetCaret.3
- rm -f Tk_SetCaretPos.3 Tk_SetCaretPos.3.*
- ln $S SetCaret.3$Z Tk_SetCaretPos.3$Z
-fi
-if test -r SetClass.3; then
- rm -f SetClass.3.*
- $ZIP SetClass.3
- rm -f Tk_SetClass.3 Tk_SetClass.3.*
- rm -f Tk_Class.3 Tk_Class.3.*
- ln $S SetClass.3$Z Tk_SetClass.3$Z
- ln $S SetClass.3$Z Tk_Class.3$Z
-fi
-if test -r SetClassProcs.3; then
- rm -f SetClassProcs.3.*
- $ZIP SetClassProcs.3
- rm -f Tk_SetClassProcs.3 Tk_SetClassProcs.3.*
- ln $S SetClassProcs.3$Z Tk_SetClassProcs.3$Z
-fi
-if test -r SetGrid.3; then
- rm -f SetGrid.3.*
- $ZIP SetGrid.3
- rm -f Tk_SetGrid.3 Tk_SetGrid.3.*
- rm -f Tk_UnsetGrid.3 Tk_UnsetGrid.3.*
- ln $S SetGrid.3$Z Tk_SetGrid.3$Z
- ln $S SetGrid.3$Z Tk_UnsetGrid.3$Z
-fi
-if test -r SetOptions.3; then
- rm -f SetOptions.3.*
- $ZIP SetOptions.3
- rm -f Tk_CreateOptionTable.3 Tk_CreateOptionTable.3.*
- rm -f Tk_DeleteOptionTable.3 Tk_DeleteOptionTable.3.*
- rm -f Tk_InitOptions.3 Tk_InitOptions.3.*
- rm -f Tk_SetOptions.3 Tk_SetOptions.3.*
- rm -f Tk_FreeSavedOptions.3 Tk_FreeSavedOptions.3.*
- rm -f Tk_RestoreSavedOptions.3 Tk_RestoreSavedOptions.3.*
- rm -f Tk_GetOptionValue.3 Tk_GetOptionValue.3.*
- rm -f Tk_GetOptionInfo.3 Tk_GetOptionInfo.3.*
- rm -f Tk_FreeConfigOptions.3 Tk_FreeConfigOptions.3.*
- rm -f Tk_Offset.3 Tk_Offset.3.*
- ln $S SetOptions.3$Z Tk_CreateOptionTable.3$Z
- ln $S SetOptions.3$Z Tk_DeleteOptionTable.3$Z
- ln $S SetOptions.3$Z Tk_InitOptions.3$Z
- ln $S SetOptions.3$Z Tk_SetOptions.3$Z
- ln $S SetOptions.3$Z Tk_FreeSavedOptions.3$Z
- ln $S SetOptions.3$Z Tk_RestoreSavedOptions.3$Z
- ln $S SetOptions.3$Z Tk_GetOptionValue.3$Z
- ln $S SetOptions.3$Z Tk_GetOptionInfo.3$Z
- ln $S SetOptions.3$Z Tk_FreeConfigOptions.3$Z
- ln $S SetOptions.3$Z Tk_Offset.3$Z
-fi
-if test -r SetVisual.3; then
- rm -f SetVisual.3.*
- $ZIP SetVisual.3
- rm -f Tk_SetWindowVisual.3 Tk_SetWindowVisual.3.*
- ln $S SetVisual.3$Z Tk_SetWindowVisual.3$Z
-fi
-if test -r StrictMotif.3; then
- rm -f StrictMotif.3.*
- $ZIP StrictMotif.3
- rm -f Tk_StrictMotif.3 Tk_StrictMotif.3.*
- ln $S StrictMotif.3$Z Tk_StrictMotif.3$Z
-fi
-if test -r TextLayout.3; then
- rm -f TextLayout.3.*
- $ZIP TextLayout.3
- rm -f Tk_ComputeTextLayout.3 Tk_ComputeTextLayout.3.*
- rm -f Tk_FreeTextLayout.3 Tk_FreeTextLayout.3.*
- rm -f Tk_DrawTextLayout.3 Tk_DrawTextLayout.3.*
- rm -f Tk_UnderlineTextLayout.3 Tk_UnderlineTextLayout.3.*
- rm -f Tk_PointToChar.3 Tk_PointToChar.3.*
- rm -f Tk_CharBbox.3 Tk_CharBbox.3.*
- rm -f Tk_DistanceToTextLayout.3 Tk_DistanceToTextLayout.3.*
- rm -f Tk_IntersectTextLayout.3 Tk_IntersectTextLayout.3.*
- rm -f Tk_TextLayoutToPostscript.3 Tk_TextLayoutToPostscript.3.*
- ln $S TextLayout.3$Z Tk_ComputeTextLayout.3$Z
- ln $S TextLayout.3$Z Tk_FreeTextLayout.3$Z
- ln $S TextLayout.3$Z Tk_DrawTextLayout.3$Z
- ln $S TextLayout.3$Z Tk_UnderlineTextLayout.3$Z
- ln $S TextLayout.3$Z Tk_PointToChar.3$Z
- ln $S TextLayout.3$Z Tk_CharBbox.3$Z
- ln $S TextLayout.3$Z Tk_DistanceToTextLayout.3$Z
- ln $S TextLayout.3$Z Tk_IntersectTextLayout.3$Z
- ln $S TextLayout.3$Z Tk_TextLayoutToPostscript.3$Z
-fi
-if test -r TkInitStubs.3; then
- rm -f TkInitStubs.3.*
- $ZIP TkInitStubs.3
- rm -f Tk_InitStubs.3 Tk_InitStubs.3.*
- ln $S TkInitStubs.3$Z Tk_InitStubs.3$Z
-fi
-if test -r Tk_Init.3; then
- rm -f Tk_Init.3.*
- $ZIP Tk_Init.3
- rm -f Tk_SafeInit.3 Tk_SafeInit.3.*
- ln $S Tk_Init.3$Z Tk_SafeInit.3$Z
-fi
-if test -r Tk_Main.3; then
- rm -f Tk_Main.3.*
- $ZIP Tk_Main.3
-fi
-if test -r WindowId.3; then
- rm -f WindowId.3.*
- $ZIP WindowId.3
- rm -f Tk_WindowId.3 Tk_WindowId.3.*
- rm -f Tk_Parent.3 Tk_Parent.3.*
- rm -f Tk_Display.3 Tk_Display.3.*
- rm -f Tk_DisplayName.3 Tk_DisplayName.3.*
- rm -f Tk_ScreenNumber.3 Tk_ScreenNumber.3.*
- rm -f Tk_Screen.3 Tk_Screen.3.*
- rm -f Tk_X.3 Tk_X.3.*
- rm -f Tk_Y.3 Tk_Y.3.*
- rm -f Tk_Width.3 Tk_Width.3.*
- rm -f Tk_Height.3 Tk_Height.3.*
- rm -f Tk_Changes.3 Tk_Changes.3.*
- rm -f Tk_Attributes.3 Tk_Attributes.3.*
- rm -f Tk_IsContainer.3 Tk_IsContainer.3.*
- rm -f Tk_IsEmbedded.3 Tk_IsEmbedded.3.*
- rm -f Tk_IsMapped.3 Tk_IsMapped.3.*
- rm -f Tk_IsTopLevel.3 Tk_IsTopLevel.3.*
- rm -f Tk_ReqWidth.3 Tk_ReqWidth.3.*
- rm -f Tk_ReqHeight.3 Tk_ReqHeight.3.*
- rm -f Tk_MinReqWidth.3 Tk_MinReqWidth.3.*
- rm -f Tk_MinReqHeight.3 Tk_MinReqHeight.3.*
- rm -f Tk_InternalBorderLeft.3 Tk_InternalBorderLeft.3.*
- rm -f Tk_InternalBorderRight.3 Tk_InternalBorderRight.3.*
- rm -f Tk_InternalBorderTop.3 Tk_InternalBorderTop.3.*
- rm -f Tk_InternalBorderBottom.3 Tk_InternalBorderBottom.3.*
- rm -f Tk_Visual.3 Tk_Visual.3.*
- rm -f Tk_Depth.3 Tk_Depth.3.*
- rm -f Tk_Colormap.3 Tk_Colormap.3.*
- ln $S WindowId.3$Z Tk_WindowId.3$Z
- ln $S WindowId.3$Z Tk_Parent.3$Z
- ln $S WindowId.3$Z Tk_Display.3$Z
- ln $S WindowId.3$Z Tk_DisplayName.3$Z
- ln $S WindowId.3$Z Tk_ScreenNumber.3$Z
- ln $S WindowId.3$Z Tk_Screen.3$Z
- ln $S WindowId.3$Z Tk_X.3$Z
- ln $S WindowId.3$Z Tk_Y.3$Z
- ln $S WindowId.3$Z Tk_Width.3$Z
- ln $S WindowId.3$Z Tk_Height.3$Z
- ln $S WindowId.3$Z Tk_Changes.3$Z
- ln $S WindowId.3$Z Tk_Attributes.3$Z
- ln $S WindowId.3$Z Tk_IsContainer.3$Z
- ln $S WindowId.3$Z Tk_IsEmbedded.3$Z
- ln $S WindowId.3$Z Tk_IsMapped.3$Z
- ln $S WindowId.3$Z Tk_IsTopLevel.3$Z
- ln $S WindowId.3$Z Tk_ReqWidth.3$Z
- ln $S WindowId.3$Z Tk_ReqHeight.3$Z
- ln $S WindowId.3$Z Tk_MinReqWidth.3$Z
- ln $S WindowId.3$Z Tk_MinReqHeight.3$Z
- ln $S WindowId.3$Z Tk_InternalBorderLeft.3$Z
- ln $S WindowId.3$Z Tk_InternalBorderRight.3$Z
- ln $S WindowId.3$Z Tk_InternalBorderTop.3$Z
- ln $S WindowId.3$Z Tk_InternalBorderBottom.3$Z
- ln $S WindowId.3$Z Tk_Visual.3$Z
- ln $S WindowId.3$Z Tk_Depth.3$Z
- ln $S WindowId.3$Z Tk_Colormap.3$Z
-fi
-if test -r bell.n; then
- rm -f bell.n.*
- $ZIP bell.n
-fi
-if test -r bind.n; then
- rm -f bind.n.*
- $ZIP bind.n
-fi
-if test -r bindtags.n; then
- rm -f bindtags.n.*
- $ZIP bindtags.n
-fi
-if test -r bitmap.n; then
- rm -f bitmap.n.*
- $ZIP bitmap.n
-fi
-if test -r button.n; then
- rm -f button.n.*
- $ZIP button.n
-fi
-if test -r canvas.n; then
- rm -f canvas.n.*
- $ZIP canvas.n
-fi
-if test -r checkbutton.n; then
- rm -f checkbutton.n.*
- $ZIP checkbutton.n
-fi
-if test -r chooseColor.n; then
- rm -f chooseColor.n.*
- $ZIP chooseColor.n
- rm -f tk_chooseColor.n tk_chooseColor.n.*
- ln $S chooseColor.n$Z tk_chooseColor.n$Z
-fi
-if test -r chooseDirectory.n; then
- rm -f chooseDirectory.n.*
- $ZIP chooseDirectory.n
- rm -f tk_chooseDirectory.n tk_chooseDirectory.n.*
- ln $S chooseDirectory.n$Z tk_chooseDirectory.n$Z
-fi
-if test -r clipboard.n; then
- rm -f clipboard.n.*
- $ZIP clipboard.n
-fi
-if test -r colors.n; then
- rm -f colors.n.*
- $ZIP colors.n
-fi
-if test -r console.n; then
- rm -f console.n.*
- $ZIP console.n
-fi
-if test -r cursors.n; then
- rm -f cursors.n.*
- $ZIP cursors.n
-fi
-if test -r destroy.n; then
- rm -f destroy.n.*
- $ZIP destroy.n
-fi
-if test -r dialog.n; then
- rm -f dialog.n.*
- $ZIP dialog.n
- rm -f tk_dialog.n tk_dialog.n.*
- ln $S dialog.n$Z tk_dialog.n$Z
-fi
-if test -r entry.n; then
- rm -f entry.n.*
- $ZIP entry.n
-fi
-if test -r event.n; then
- rm -f event.n.*
- $ZIP event.n
-fi
-if test -r focus.n; then
- rm -f focus.n.*
- $ZIP focus.n
-fi
-if test -r focusNext.n; then
- rm -f focusNext.n.*
- $ZIP focusNext.n
- rm -f tk_focusNext.n tk_focusNext.n.*
- rm -f tk_focusPrev.n tk_focusPrev.n.*
- rm -f tk_focusFollowsMouse.n tk_focusFollowsMouse.n.*
- ln $S focusNext.n$Z tk_focusNext.n$Z
- ln $S focusNext.n$Z tk_focusPrev.n$Z
- ln $S focusNext.n$Z tk_focusFollowsMouse.n$Z
-fi
-if test -r font.n; then
- rm -f font.n.*
- $ZIP font.n
-fi
-if test -r frame.n; then
- rm -f frame.n.*
- $ZIP frame.n
-fi
-if test -r getOpenFile.n; then
- rm -f getOpenFile.n.*
- $ZIP getOpenFile.n
- rm -f tk_getOpenFile.n tk_getOpenFile.n.*
- rm -f tk_getSaveFile.n tk_getSaveFile.n.*
- ln $S getOpenFile.n$Z tk_getOpenFile.n$Z
- ln $S getOpenFile.n$Z tk_getSaveFile.n$Z
-fi
-if test -r grab.n; then
- rm -f grab.n.*
- $ZIP grab.n
-fi
-if test -r grid.n; then
- rm -f grid.n.*
- $ZIP grid.n
-fi
-if test -r image.n; then
- rm -f image.n.*
- $ZIP image.n
-fi
-if test -r keysyms.n; then
- rm -f keysyms.n.*
- $ZIP keysyms.n
-fi
-if test -r label.n; then
- rm -f label.n.*
- $ZIP label.n
-fi
-if test -r labelframe.n; then
- rm -f labelframe.n.*
- $ZIP labelframe.n
-fi
-if test -r listbox.n; then
- rm -f listbox.n.*
- $ZIP listbox.n
-fi
-if test -r loadTk.n; then
- rm -f loadTk.n.*
- $ZIP loadTk.n
-fi
-if test -r lower.n; then
- rm -f lower.n.*
- $ZIP lower.n
-fi
-if test -r menu.n; then
- rm -f menu.n.*
- $ZIP menu.n
- rm -f tk_menuSetFocus.n tk_menuSetFocus.n.*
- ln $S menu.n$Z tk_menuSetFocus.n$Z
-fi
-if test -r menubar.n; then
- rm -f menubar.n.*
- $ZIP menubar.n
- rm -f tk_menuBar.n tk_menuBar.n.*
- rm -f tk_bindForTraversal.n tk_bindForTraversal.n.*
- ln $S menubar.n$Z tk_menuBar.n$Z
- ln $S menubar.n$Z tk_bindForTraversal.n$Z
-fi
-if test -r menubutton.n; then
- rm -f menubutton.n.*
- $ZIP menubutton.n
-fi
-if test -r message.n; then
- rm -f message.n.*
- $ZIP message.n
-fi
-if test -r messageBox.n; then
- rm -f messageBox.n.*
- $ZIP messageBox.n
- rm -f tk_messageBox.n tk_messageBox.n.*
- ln $S messageBox.n$Z tk_messageBox.n$Z
-fi
-if test -r option.n; then
- rm -f option.n.*
- $ZIP option.n
-fi
-if test -r optionMenu.n; then
- rm -f optionMenu.n.*
- $ZIP optionMenu.n
- rm -f tk_optionMenu.n tk_optionMenu.n.*
- ln $S optionMenu.n$Z tk_optionMenu.n$Z
-fi
-if test -r options.n; then
- rm -f options.n.*
- $ZIP options.n
-fi
-if test -r pack-old.n; then
- rm -f pack-old.n.*
- $ZIP pack-old.n
-fi
-if test -r pack.n; then
- rm -f pack.n.*
- $ZIP pack.n
-fi
-if test -r palette.n; then
- rm -f palette.n.*
- $ZIP palette.n
- rm -f tk_setPalette.n tk_setPalette.n.*
- rm -f tk_bisque.n tk_bisque.n.*
- ln $S palette.n$Z tk_setPalette.n$Z
- ln $S palette.n$Z tk_bisque.n$Z
-fi
-if test -r panedwindow.n; then
- rm -f panedwindow.n.*
- $ZIP panedwindow.n
-fi
-if test -r photo.n; then
- rm -f photo.n.*
- $ZIP photo.n
-fi
-if test -r place.n; then
- rm -f place.n.*
- $ZIP place.n
-fi
-if test -r popup.n; then
- rm -f popup.n.*
- $ZIP popup.n
- rm -f tk_popup.n tk_popup.n.*
- ln $S popup.n$Z tk_popup.n$Z
-fi
-if test -r radiobutton.n; then
- rm -f radiobutton.n.*
- $ZIP radiobutton.n
-fi
-if test -r raise.n; then
- rm -f raise.n.*
- $ZIP raise.n
-fi
-if test -r scale.n; then
- rm -f scale.n.*
- $ZIP scale.n
-fi
-if test -r scrollbar.n; then
- rm -f scrollbar.n.*
- $ZIP scrollbar.n
-fi
-if test -r selection.n; then
- rm -f selection.n.*
- $ZIP selection.n
-fi
-if test -r send.n; then
- rm -f send.n.*
- $ZIP send.n
-fi
-if test -r spinbox.n; then
- rm -f spinbox.n.*
- $ZIP spinbox.n
-fi
-if test -r text.n; then
- rm -f text.n.*
- $ZIP text.n
- rm -f tk_textCopy.n tk_textCopy.n.*
- rm -f tk_textCut.n tk_textCut.n.*
- rm -f tk_textPaste.n tk_textPaste.n.*
- ln $S text.n$Z tk_textCopy.n$Z
- ln $S text.n$Z tk_textCut.n$Z
- ln $S text.n$Z tk_textPaste.n$Z
-fi
-if test -r tk.n; then
- rm -f tk.n.*
- $ZIP tk.n
-fi
-if test -r tkerror.n; then
- rm -f tkerror.n.*
- $ZIP tkerror.n
-fi
-if test -r tkvars.n; then
- rm -f tkvars.n.*
- $ZIP tkvars.n
-fi
-if test -r tkwait.n; then
- rm -f tkwait.n.*
- $ZIP tkwait.n
-fi
-if test -r toplevel.n; then
- rm -f toplevel.n.*
- $ZIP toplevel.n
-fi
-if test -r winfo.n; then
- rm -f winfo.n.*
- $ZIP winfo.n
-fi
-if test -r wish.1; then
- rm -f wish.1.*
- $ZIP wish.1
-fi
-if test -r wm.n; then
- rm -f wm.n.*
- $ZIP wm.n
+if test -r Access.3; then
+ rm -f Access.3.*
+ $ZIP Access.3
+ rm -f Tcl_Access.3 Tcl_Access.3.*
+ rm -f Tcl_Stat.3 Tcl_Stat.3.*
+ ln $S Access.3$Z Tcl_Access.3$Z
+ ln $S Access.3$Z Tcl_Stat.3$Z
+fi
+if test -r AddErrInfo.3; then
+ rm -f AddErrInfo.3.*
+ $ZIP AddErrInfo.3
+ rm -f Tcl_AddObjErrorInfo.3 Tcl_AddObjErrorInfo.3.*
+ rm -f Tcl_AddErrorInfo.3 Tcl_AddErrorInfo.3.*
+ rm -f Tcl_SetObjErrorCode.3 Tcl_SetObjErrorCode.3.*
+ rm -f Tcl_SetErrorCode.3 Tcl_SetErrorCode.3.*
+ rm -f Tcl_SetErrorCodeVA.3 Tcl_SetErrorCodeVA.3.*
+ rm -f Tcl_PosixError.3 Tcl_PosixError.3.*
+ rm -f Tcl_LogCommandInfo.3 Tcl_LogCommandInfo.3.*
+ ln $S AddErrInfo.3$Z Tcl_AddObjErrorInfo.3$Z
+ ln $S AddErrInfo.3$Z Tcl_AddErrorInfo.3$Z
+ ln $S AddErrInfo.3$Z Tcl_SetObjErrorCode.3$Z
+ ln $S AddErrInfo.3$Z Tcl_SetErrorCode.3$Z
+ ln $S AddErrInfo.3$Z Tcl_SetErrorCodeVA.3$Z
+ ln $S AddErrInfo.3$Z Tcl_PosixError.3$Z
+ ln $S AddErrInfo.3$Z Tcl_LogCommandInfo.3$Z
+fi
+if test -r Alloc.3; then
+ rm -f Alloc.3.*
+ $ZIP Alloc.3
+ rm -f Tcl_Alloc.3 Tcl_Alloc.3.*
+ rm -f Tcl_Free.3 Tcl_Free.3.*
+ rm -f Tcl_Realloc.3 Tcl_Realloc.3.*
+ rm -f Tcl_AttemptAlloc.3 Tcl_AttemptAlloc.3.*
+ rm -f Tcl_AttemptRealloc.3 Tcl_AttemptRealloc.3.*
+ rm -f ckalloc.3 ckalloc.3.*
+ rm -f ckfree.3 ckfree.3.*
+ rm -f ckrealloc.3 ckrealloc.3.*
+ rm -f attemptckalloc.3 attemptckalloc.3.*
+ rm -f attemptckrealloc.3 attemptckrealloc.3.*
+ ln $S Alloc.3$Z Tcl_Alloc.3$Z
+ ln $S Alloc.3$Z Tcl_Free.3$Z
+ ln $S Alloc.3$Z Tcl_Realloc.3$Z
+ ln $S Alloc.3$Z Tcl_AttemptAlloc.3$Z
+ ln $S Alloc.3$Z Tcl_AttemptRealloc.3$Z
+ ln $S Alloc.3$Z ckalloc.3$Z
+ ln $S Alloc.3$Z ckfree.3$Z
+ ln $S Alloc.3$Z ckrealloc.3$Z
+ ln $S Alloc.3$Z attemptckalloc.3$Z
+ ln $S Alloc.3$Z attemptckrealloc.3$Z
+fi
+if test -r AllowExc.3; then
+ rm -f AllowExc.3.*
+ $ZIP AllowExc.3
+ rm -f Tcl_AllowExceptions.3 Tcl_AllowExceptions.3.*
+ ln $S AllowExc.3$Z Tcl_AllowExceptions.3$Z
+fi
+if test -r AppInit.3; then
+ rm -f AppInit.3.*
+ $ZIP AppInit.3
+ rm -f Tcl_AppInit.3 Tcl_AppInit.3.*
+ ln $S AppInit.3$Z Tcl_AppInit.3$Z
+fi
+if test -r AssocData.3; then
+ rm -f AssocData.3.*
+ $ZIP AssocData.3
+ rm -f Tcl_GetAssocData.3 Tcl_GetAssocData.3.*
+ rm -f Tcl_SetAssocData.3 Tcl_SetAssocData.3.*
+ rm -f Tcl_DeleteAssocData.3 Tcl_DeleteAssocData.3.*
+ ln $S AssocData.3$Z Tcl_GetAssocData.3$Z
+ ln $S AssocData.3$Z Tcl_SetAssocData.3$Z
+ ln $S AssocData.3$Z Tcl_DeleteAssocData.3$Z
+fi
+if test -r Async.3; then
+ rm -f Async.3.*
+ $ZIP Async.3
+ rm -f Tcl_AsyncCreate.3 Tcl_AsyncCreate.3.*
+ rm -f Tcl_AsyncMark.3 Tcl_AsyncMark.3.*
+ rm -f Tcl_AsyncInvoke.3 Tcl_AsyncInvoke.3.*
+ rm -f Tcl_AsyncDelete.3 Tcl_AsyncDelete.3.*
+ rm -f Tcl_AsyncReady.3 Tcl_AsyncReady.3.*
+ ln $S Async.3$Z Tcl_AsyncCreate.3$Z
+ ln $S Async.3$Z Tcl_AsyncMark.3$Z
+ ln $S Async.3$Z Tcl_AsyncInvoke.3$Z
+ ln $S Async.3$Z Tcl_AsyncDelete.3$Z
+ ln $S Async.3$Z Tcl_AsyncReady.3$Z
+fi
+if test -r BackgdErr.3; then
+ rm -f BackgdErr.3.*
+ $ZIP BackgdErr.3
+ rm -f Tcl_BackgroundError.3 Tcl_BackgroundError.3.*
+ ln $S BackgdErr.3$Z Tcl_BackgroundError.3$Z
+fi
+if test -r Backslash.3; then
+ rm -f Backslash.3.*
+ $ZIP Backslash.3
+ rm -f Tcl_Backslash.3 Tcl_Backslash.3.*
+ ln $S Backslash.3$Z Tcl_Backslash.3$Z
+fi
+if test -r BoolObj.3; then
+ rm -f BoolObj.3.*
+ $ZIP BoolObj.3
+ rm -f Tcl_NewBooleanObj.3 Tcl_NewBooleanObj.3.*
+ rm -f Tcl_SetBooleanObj.3 Tcl_SetBooleanObj.3.*
+ rm -f Tcl_GetBooleanFromObj.3 Tcl_GetBooleanFromObj.3.*
+ ln $S BoolObj.3$Z Tcl_NewBooleanObj.3$Z
+ ln $S BoolObj.3$Z Tcl_SetBooleanObj.3$Z
+ ln $S BoolObj.3$Z Tcl_GetBooleanFromObj.3$Z
+fi
+if test -r ByteArrObj.3; then
+ rm -f ByteArrObj.3.*
+ $ZIP ByteArrObj.3
+ rm -f Tcl_NewByteArrayObj.3 Tcl_NewByteArrayObj.3.*
+ rm -f Tcl_SetByteArrayObj.3 Tcl_SetByteArrayObj.3.*
+ rm -f Tcl_GetByteArrayFromObj.3 Tcl_GetByteArrayFromObj.3.*
+ rm -f Tcl_SetByteArrayLength.3 Tcl_SetByteArrayLength.3.*
+ ln $S ByteArrObj.3$Z Tcl_NewByteArrayObj.3$Z
+ ln $S ByteArrObj.3$Z Tcl_SetByteArrayObj.3$Z
+ ln $S ByteArrObj.3$Z Tcl_GetByteArrayFromObj.3$Z
+ ln $S ByteArrObj.3$Z Tcl_SetByteArrayLength.3$Z
+fi
+if test -r CallDel.3; then
+ rm -f CallDel.3.*
+ $ZIP CallDel.3
+ rm -f Tcl_CallWhenDeleted.3 Tcl_CallWhenDeleted.3.*
+ rm -f Tcl_DontCallWhenDeleted.3 Tcl_DontCallWhenDeleted.3.*
+ ln $S CallDel.3$Z Tcl_CallWhenDeleted.3$Z
+ ln $S CallDel.3$Z Tcl_DontCallWhenDeleted.3$Z
+fi
+if test -r ChnlStack.3; then
+ rm -f ChnlStack.3.*
+ $ZIP ChnlStack.3
+ rm -f Tcl_StackChannel.3 Tcl_StackChannel.3.*
+ rm -f Tcl_UnstackChannel.3 Tcl_UnstackChannel.3.*
+ rm -f Tcl_GetStackedChannel.3 Tcl_GetStackedChannel.3.*
+ rm -f Tcl_GetTopChannel.3 Tcl_GetTopChannel.3.*
+ ln $S ChnlStack.3$Z Tcl_StackChannel.3$Z
+ ln $S ChnlStack.3$Z Tcl_UnstackChannel.3$Z
+ ln $S ChnlStack.3$Z Tcl_GetStackedChannel.3$Z
+ ln $S ChnlStack.3$Z Tcl_GetTopChannel.3$Z
+fi
+if test -r CmdCmplt.3; then
+ rm -f CmdCmplt.3.*
+ $ZIP CmdCmplt.3
+ rm -f Tcl_CommandComplete.3 Tcl_CommandComplete.3.*
+ ln $S CmdCmplt.3$Z Tcl_CommandComplete.3$Z
+fi
+if test -r Concat.3; then
+ rm -f Concat.3.*
+ $ZIP Concat.3
+ rm -f Tcl_Concat.3 Tcl_Concat.3.*
+ ln $S Concat.3$Z Tcl_Concat.3$Z
+fi
+if test -r CrtChannel.3; then
+ rm -f CrtChannel.3.*
+ $ZIP CrtChannel.3
+ rm -f Tcl_CreateChannel.3 Tcl_CreateChannel.3.*
+ rm -f Tcl_GetChannelInstanceData.3 Tcl_GetChannelInstanceData.3.*
+ rm -f Tcl_GetChannelType.3 Tcl_GetChannelType.3.*
+ rm -f Tcl_GetChannelName.3 Tcl_GetChannelName.3.*
+ rm -f Tcl_GetChannelHandle.3 Tcl_GetChannelHandle.3.*
+ rm -f Tcl_GetChannelMode.3 Tcl_GetChannelMode.3.*
+ rm -f Tcl_GetChannelBufferSize.3 Tcl_GetChannelBufferSize.3.*
+ rm -f Tcl_SetChannelBufferSize.3 Tcl_SetChannelBufferSize.3.*
+ rm -f Tcl_NotifyChannel.3 Tcl_NotifyChannel.3.*
+ rm -f Tcl_BadChannelOption.3 Tcl_BadChannelOption.3.*
+ rm -f Tcl_ChannelName.3 Tcl_ChannelName.3.*
+ rm -f Tcl_ChannelVersion.3 Tcl_ChannelVersion.3.*
+ rm -f Tcl_ChannelBlockModeProc.3 Tcl_ChannelBlockModeProc.3.*
+ rm -f Tcl_ChannelCloseProc.3 Tcl_ChannelCloseProc.3.*
+ rm -f Tcl_ChannelClose2Proc.3 Tcl_ChannelClose2Proc.3.*
+ rm -f Tcl_ChannelInputProc.3 Tcl_ChannelInputProc.3.*
+ rm -f Tcl_ChannelOutputProc.3 Tcl_ChannelOutputProc.3.*
+ rm -f Tcl_ChannelSeekProc.3 Tcl_ChannelSeekProc.3.*
+ rm -f Tcl_ChannelWideSeekProc.3 Tcl_ChannelWideSeekProc.3.*
+ rm -f Tcl_ChannelSetOptionProc.3 Tcl_ChannelSetOptionProc.3.*
+ rm -f Tcl_ChannelGetOptionProc.3 Tcl_ChannelGetOptionProc.3.*
+ rm -f Tcl_ChannelWatchProc.3 Tcl_ChannelWatchProc.3.*
+ rm -f Tcl_ChannelGetHandleProc.3 Tcl_ChannelGetHandleProc.3.*
+ rm -f Tcl_ChannelFlushProc.3 Tcl_ChannelFlushProc.3.*
+ rm -f Tcl_ChannelHandlerProc.3 Tcl_ChannelHandlerProc.3.*
+ rm -f Tcl_IsChannelShared.3 Tcl_IsChannelShared.3.*
+ rm -f Tcl_IsChannelRegistered.3 Tcl_IsChannelRegistered.3.*
+ rm -f Tcl_CutChannel.3 Tcl_CutChannel.3.*
+ rm -f Tcl_SpliceChannel.3 Tcl_SpliceChannel.3.*
+ rm -f Tcl_IsChannelExisting.3 Tcl_IsChannelExisting.3.*
+ rm -f Tcl_ClearChannelHandlers.3 Tcl_ClearChannelHandlers.3.*
+ rm -f Tcl_GetChannelThread.3 Tcl_GetChannelThread.3.*
+ rm -f Tcl_ChannelBuffered.3 Tcl_ChannelBuffered.3.*
+ ln $S CrtChannel.3$Z Tcl_CreateChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelInstanceData.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelType.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelName.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelHandle.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelMode.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelBufferSize.3$Z
+ ln $S CrtChannel.3$Z Tcl_SetChannelBufferSize.3$Z
+ ln $S CrtChannel.3$Z Tcl_NotifyChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_BadChannelOption.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelName.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelVersion.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelBlockModeProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelCloseProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelClose2Proc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelInputProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelOutputProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelSeekProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelWideSeekProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelSetOptionProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelGetOptionProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelWatchProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelGetHandleProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelFlushProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelHandlerProc.3$Z
+ ln $S CrtChannel.3$Z Tcl_IsChannelShared.3$Z
+ ln $S CrtChannel.3$Z Tcl_IsChannelRegistered.3$Z
+ ln $S CrtChannel.3$Z Tcl_CutChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_SpliceChannel.3$Z
+ ln $S CrtChannel.3$Z Tcl_IsChannelExisting.3$Z
+ ln $S CrtChannel.3$Z Tcl_ClearChannelHandlers.3$Z
+ ln $S CrtChannel.3$Z Tcl_GetChannelThread.3$Z
+ ln $S CrtChannel.3$Z Tcl_ChannelBuffered.3$Z
+fi
+if test -r CrtChnlHdlr.3; then
+ rm -f CrtChnlHdlr.3.*
+ $ZIP CrtChnlHdlr.3
+ rm -f Tcl_CreateChannelHandler.3 Tcl_CreateChannelHandler.3.*
+ rm -f Tcl_DeleteChannelHandler.3 Tcl_DeleteChannelHandler.3.*
+ ln $S CrtChnlHdlr.3$Z Tcl_CreateChannelHandler.3$Z
+ ln $S CrtChnlHdlr.3$Z Tcl_DeleteChannelHandler.3$Z
+fi
+if test -r CrtCloseHdlr.3; then
+ rm -f CrtCloseHdlr.3.*
+ $ZIP CrtCloseHdlr.3
+ rm -f Tcl_CreateCloseHandler.3 Tcl_CreateCloseHandler.3.*
+ rm -f Tcl_DeleteCloseHandler.3 Tcl_DeleteCloseHandler.3.*
+ ln $S CrtCloseHdlr.3$Z Tcl_CreateCloseHandler.3$Z
+ ln $S CrtCloseHdlr.3$Z Tcl_DeleteCloseHandler.3$Z
+fi
+if test -r CrtCommand.3; then
+ rm -f CrtCommand.3.*
+ $ZIP CrtCommand.3
+ rm -f Tcl_CreateCommand.3 Tcl_CreateCommand.3.*
+ ln $S CrtCommand.3$Z Tcl_CreateCommand.3$Z
+fi
+if test -r CrtFileHdlr.3; then
+ rm -f CrtFileHdlr.3.*
+ $ZIP CrtFileHdlr.3
+ rm -f Tcl_CreateFileHandler.3 Tcl_CreateFileHandler.3.*
+ rm -f Tcl_DeleteFileHandler.3 Tcl_DeleteFileHandler.3.*
+ ln $S CrtFileHdlr.3$Z Tcl_CreateFileHandler.3$Z
+ ln $S CrtFileHdlr.3$Z Tcl_DeleteFileHandler.3$Z
+fi
+if test -r CrtInterp.3; then
+ rm -f CrtInterp.3.*
+ $ZIP CrtInterp.3
+ rm -f Tcl_CreateInterp.3 Tcl_CreateInterp.3.*
+ rm -f Tcl_DeleteInterp.3 Tcl_DeleteInterp.3.*
+ rm -f Tcl_InterpDeleted.3 Tcl_InterpDeleted.3.*
+ ln $S CrtInterp.3$Z Tcl_CreateInterp.3$Z
+ ln $S CrtInterp.3$Z Tcl_DeleteInterp.3$Z
+ ln $S CrtInterp.3$Z Tcl_InterpDeleted.3$Z
+fi
+if test -r CrtMathFnc.3; then
+ rm -f CrtMathFnc.3.*
+ $ZIP CrtMathFnc.3
+ rm -f Tcl_CreateMathFunc.3 Tcl_CreateMathFunc.3.*
+ rm -f Tcl_GetMathFuncInfo.3 Tcl_GetMathFuncInfo.3.*
+ rm -f Tcl_ListMathFuncs.3 Tcl_ListMathFuncs.3.*
+ ln $S CrtMathFnc.3$Z Tcl_CreateMathFunc.3$Z
+ ln $S CrtMathFnc.3$Z Tcl_GetMathFuncInfo.3$Z
+ ln $S CrtMathFnc.3$Z Tcl_ListMathFuncs.3$Z
+fi
+if test -r CrtObjCmd.3; then
+ rm -f CrtObjCmd.3.*
+ $ZIP CrtObjCmd.3
+ rm -f Tcl_CreateObjCommand.3 Tcl_CreateObjCommand.3.*
+ rm -f Tcl_DeleteCommand.3 Tcl_DeleteCommand.3.*
+ rm -f Tcl_DeleteCommandFromToken.3 Tcl_DeleteCommandFromToken.3.*
+ rm -f Tcl_GetCommandInfo.3 Tcl_GetCommandInfo.3.*
+ rm -f Tcl_GetCommandInfoFromToken.3 Tcl_GetCommandInfoFromToken.3.*
+ rm -f Tcl_SetCommandInfo.3 Tcl_SetCommandInfo.3.*
+ rm -f Tcl_SetCommandInfoFromToken.3 Tcl_SetCommandInfoFromToken.3.*
+ rm -f Tcl_GetCommandName.3 Tcl_GetCommandName.3.*
+ rm -f Tcl_GetCommandFullName.3 Tcl_GetCommandFullName.3.*
+ rm -f Tcl_GetCommandFromObj.3 Tcl_GetCommandFromObj.3.*
+ ln $S CrtObjCmd.3$Z Tcl_CreateObjCommand.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_DeleteCommand.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_DeleteCommandFromToken.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandInfo.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandInfoFromToken.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_SetCommandInfo.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_SetCommandInfoFromToken.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandName.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandFullName.3$Z
+ ln $S CrtObjCmd.3$Z Tcl_GetCommandFromObj.3$Z
+fi
+if test -r CrtSlave.3; then
+ rm -f CrtSlave.3.*
+ $ZIP CrtSlave.3
+ rm -f Tcl_IsSafe.3 Tcl_IsSafe.3.*
+ rm -f Tcl_MakeSafe.3 Tcl_MakeSafe.3.*
+ rm -f Tcl_CreateSlave.3 Tcl_CreateSlave.3.*
+ rm -f Tcl_GetSlave.3 Tcl_GetSlave.3.*
+ rm -f Tcl_GetMaster.3 Tcl_GetMaster.3.*
+ rm -f Tcl_GetInterpPath.3 Tcl_GetInterpPath.3.*
+ rm -f Tcl_CreateAlias.3 Tcl_CreateAlias.3.*
+ rm -f Tcl_CreateAliasObj.3 Tcl_CreateAliasObj.3.*
+ rm -f Tcl_GetAlias.3 Tcl_GetAlias.3.*
+ rm -f Tcl_GetAliasObj.3 Tcl_GetAliasObj.3.*
+ rm -f Tcl_ExposeCommand.3 Tcl_ExposeCommand.3.*
+ rm -f Tcl_HideCommand.3 Tcl_HideCommand.3.*
+ ln $S CrtSlave.3$Z Tcl_IsSafe.3$Z
+ ln $S CrtSlave.3$Z Tcl_MakeSafe.3$Z
+ ln $S CrtSlave.3$Z Tcl_CreateSlave.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetSlave.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetMaster.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetInterpPath.3$Z
+ ln $S CrtSlave.3$Z Tcl_CreateAlias.3$Z
+ ln $S CrtSlave.3$Z Tcl_CreateAliasObj.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetAlias.3$Z
+ ln $S CrtSlave.3$Z Tcl_GetAliasObj.3$Z
+ ln $S CrtSlave.3$Z Tcl_ExposeCommand.3$Z
+ ln $S CrtSlave.3$Z Tcl_HideCommand.3$Z
+fi
+if test -r CrtTimerHdlr.3; then
+ rm -f CrtTimerHdlr.3.*
+ $ZIP CrtTimerHdlr.3
+ rm -f Tcl_CreateTimerHandler.3 Tcl_CreateTimerHandler.3.*
+ rm -f Tcl_DeleteTimerHandler.3 Tcl_DeleteTimerHandler.3.*
+ ln $S CrtTimerHdlr.3$Z Tcl_CreateTimerHandler.3$Z
+ ln $S CrtTimerHdlr.3$Z Tcl_DeleteTimerHandler.3$Z
+fi
+if test -r CrtTrace.3; then
+ rm -f CrtTrace.3.*
+ $ZIP CrtTrace.3
+ rm -f Tcl_CreateTrace.3 Tcl_CreateTrace.3.*
+ rm -f Tcl_CreateObjTrace.3 Tcl_CreateObjTrace.3.*
+ rm -f Tcl_DeleteTrace.3 Tcl_DeleteTrace.3.*
+ ln $S CrtTrace.3$Z Tcl_CreateTrace.3$Z
+ ln $S CrtTrace.3$Z Tcl_CreateObjTrace.3$Z
+ ln $S CrtTrace.3$Z Tcl_DeleteTrace.3$Z
+fi
+if test -r DString.3; then
+ rm -f DString.3.*
+ $ZIP DString.3
+ rm -f Tcl_DStringInit.3 Tcl_DStringInit.3.*
+ rm -f Tcl_DStringAppend.3 Tcl_DStringAppend.3.*
+ rm -f Tcl_DStringAppendElement.3 Tcl_DStringAppendElement.3.*
+ rm -f Tcl_DStringStartSublist.3 Tcl_DStringStartSublist.3.*
+ rm -f Tcl_DStringEndSublist.3 Tcl_DStringEndSublist.3.*
+ rm -f Tcl_DStringLength.3 Tcl_DStringLength.3.*
+ rm -f Tcl_DStringValue.3 Tcl_DStringValue.3.*
+ rm -f Tcl_DStringSetLength.3 Tcl_DStringSetLength.3.*
+ rm -f Tcl_DStringTrunc.3 Tcl_DStringTrunc.3.*
+ rm -f Tcl_DStringFree.3 Tcl_DStringFree.3.*
+ rm -f Tcl_DStringResult.3 Tcl_DStringResult.3.*
+ rm -f Tcl_DStringGetResult.3 Tcl_DStringGetResult.3.*
+ ln $S DString.3$Z Tcl_DStringInit.3$Z
+ ln $S DString.3$Z Tcl_DStringAppend.3$Z
+ ln $S DString.3$Z Tcl_DStringAppendElement.3$Z
+ ln $S DString.3$Z Tcl_DStringStartSublist.3$Z
+ ln $S DString.3$Z Tcl_DStringEndSublist.3$Z
+ ln $S DString.3$Z Tcl_DStringLength.3$Z
+ ln $S DString.3$Z Tcl_DStringValue.3$Z
+ ln $S DString.3$Z Tcl_DStringSetLength.3$Z
+ ln $S DString.3$Z Tcl_DStringTrunc.3$Z
+ ln $S DString.3$Z Tcl_DStringFree.3$Z
+ ln $S DString.3$Z Tcl_DStringResult.3$Z
+ ln $S DString.3$Z Tcl_DStringGetResult.3$Z
+fi
+if test -r DetachPids.3; then
+ rm -f DetachPids.3.*
+ $ZIP DetachPids.3
+ rm -f Tcl_DetachPids.3 Tcl_DetachPids.3.*
+ rm -f Tcl_ReapDetachedProcs.3 Tcl_ReapDetachedProcs.3.*
+ rm -f Tcl_WaitPid.3 Tcl_WaitPid.3.*
+ ln $S DetachPids.3$Z Tcl_DetachPids.3$Z
+ ln $S DetachPids.3$Z Tcl_ReapDetachedProcs.3$Z
+ ln $S DetachPids.3$Z Tcl_WaitPid.3$Z
+fi
+if test -r DoOneEvent.3; then
+ rm -f DoOneEvent.3.*
+ $ZIP DoOneEvent.3
+ rm -f Tcl_DoOneEvent.3 Tcl_DoOneEvent.3.*
+ ln $S DoOneEvent.3$Z Tcl_DoOneEvent.3$Z
+fi
+if test -r DoWhenIdle.3; then
+ rm -f DoWhenIdle.3.*
+ $ZIP DoWhenIdle.3
+ rm -f Tcl_DoWhenIdle.3 Tcl_DoWhenIdle.3.*
+ rm -f Tcl_CancelIdleCall.3 Tcl_CancelIdleCall.3.*
+ ln $S DoWhenIdle.3$Z Tcl_DoWhenIdle.3$Z
+ ln $S DoWhenIdle.3$Z Tcl_CancelIdleCall.3$Z
+fi
+if test -r DoubleObj.3; then
+ rm -f DoubleObj.3.*
+ $ZIP DoubleObj.3
+ rm -f Tcl_NewDoubleObj.3 Tcl_NewDoubleObj.3.*
+ rm -f Tcl_SetDoubleObj.3 Tcl_SetDoubleObj.3.*
+ rm -f Tcl_GetDoubleFromObj.3 Tcl_GetDoubleFromObj.3.*
+ ln $S DoubleObj.3$Z Tcl_NewDoubleObj.3$Z
+ ln $S DoubleObj.3$Z Tcl_SetDoubleObj.3$Z
+ ln $S DoubleObj.3$Z Tcl_GetDoubleFromObj.3$Z
+fi
+if test -r DumpActiveMemory.3; then
+ rm -f DumpActiveMemory.3.*
+ $ZIP DumpActiveMemory.3
+ rm -f Tcl_DumpActiveMemory.3 Tcl_DumpActiveMemory.3.*
+ rm -f Tcl_InitMemory.3 Tcl_InitMemory.3.*
+ rm -f Tcl_ValidateAllMemory.3 Tcl_ValidateAllMemory.3.*
+ ln $S DumpActiveMemory.3$Z Tcl_DumpActiveMemory.3$Z
+ ln $S DumpActiveMemory.3$Z Tcl_InitMemory.3$Z
+ ln $S DumpActiveMemory.3$Z Tcl_ValidateAllMemory.3$Z
+fi
+if test -r Encoding.3; then
+ rm -f Encoding.3.*
+ $ZIP Encoding.3
+ rm -f Tcl_GetEncoding.3 Tcl_GetEncoding.3.*
+ rm -f Tcl_FreeEncoding.3 Tcl_FreeEncoding.3.*
+ rm -f Tcl_ExternalToUtfDString.3 Tcl_ExternalToUtfDString.3.*
+ rm -f Tcl_ExternalToUtf.3 Tcl_ExternalToUtf.3.*
+ rm -f Tcl_UtfToExternalDString.3 Tcl_UtfToExternalDString.3.*
+ rm -f Tcl_UtfToExternal.3 Tcl_UtfToExternal.3.*
+ rm -f Tcl_WinTCharToUtf.3 Tcl_WinTCharToUtf.3.*
+ rm -f Tcl_WinUtfToTChar.3 Tcl_WinUtfToTChar.3.*
+ rm -f Tcl_GetEncodingName.3 Tcl_GetEncodingName.3.*
+ rm -f Tcl_SetSystemEncoding.3 Tcl_SetSystemEncoding.3.*
+ rm -f Tcl_GetEncodingNames.3 Tcl_GetEncodingNames.3.*
+ rm -f Tcl_CreateEncoding.3 Tcl_CreateEncoding.3.*
+ rm -f Tcl_GetDefaultEncodingDir.3 Tcl_GetDefaultEncodingDir.3.*
+ rm -f Tcl_SetDefaultEncodingDir.3 Tcl_SetDefaultEncodingDir.3.*
+ ln $S Encoding.3$Z Tcl_GetEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_FreeEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_ExternalToUtfDString.3$Z
+ ln $S Encoding.3$Z Tcl_ExternalToUtf.3$Z
+ ln $S Encoding.3$Z Tcl_UtfToExternalDString.3$Z
+ ln $S Encoding.3$Z Tcl_UtfToExternal.3$Z
+ ln $S Encoding.3$Z Tcl_WinTCharToUtf.3$Z
+ ln $S Encoding.3$Z Tcl_WinUtfToTChar.3$Z
+ ln $S Encoding.3$Z Tcl_GetEncodingName.3$Z
+ ln $S Encoding.3$Z Tcl_SetSystemEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_GetEncodingNames.3$Z
+ ln $S Encoding.3$Z Tcl_CreateEncoding.3$Z
+ ln $S Encoding.3$Z Tcl_GetDefaultEncodingDir.3$Z
+ ln $S Encoding.3$Z Tcl_SetDefaultEncodingDir.3$Z
+fi
+if test -r Environment.3; then
+ rm -f Environment.3.*
+ $ZIP Environment.3
+ rm -f Tcl_PutEnv.3 Tcl_PutEnv.3.*
+ ln $S Environment.3$Z Tcl_PutEnv.3$Z
+fi
+if test -r Eval.3; then
+ rm -f Eval.3.*
+ $ZIP Eval.3
+ rm -f Tcl_EvalObjEx.3 Tcl_EvalObjEx.3.*
+ rm -f Tcl_EvalFile.3 Tcl_EvalFile.3.*
+ rm -f Tcl_EvalObjv.3 Tcl_EvalObjv.3.*
+ rm -f Tcl_Eval.3 Tcl_Eval.3.*
+ rm -f Tcl_EvalEx.3 Tcl_EvalEx.3.*
+ rm -f Tcl_GlobalEval.3 Tcl_GlobalEval.3.*
+ rm -f Tcl_GlobalEvalObj.3 Tcl_GlobalEvalObj.3.*
+ rm -f Tcl_VarEval.3 Tcl_VarEval.3.*
+ rm -f Tcl_VarEvalVA.3 Tcl_VarEvalVA.3.*
+ ln $S Eval.3$Z Tcl_EvalObjEx.3$Z
+ ln $S Eval.3$Z Tcl_EvalFile.3$Z
+ ln $S Eval.3$Z Tcl_EvalObjv.3$Z
+ ln $S Eval.3$Z Tcl_Eval.3$Z
+ ln $S Eval.3$Z Tcl_EvalEx.3$Z
+ ln $S Eval.3$Z Tcl_GlobalEval.3$Z
+ ln $S Eval.3$Z Tcl_GlobalEvalObj.3$Z
+ ln $S Eval.3$Z Tcl_VarEval.3$Z
+ ln $S Eval.3$Z Tcl_VarEvalVA.3$Z
+fi
+if test -r Exit.3; then
+ rm -f Exit.3.*
+ $ZIP Exit.3
+ rm -f Tcl_Exit.3 Tcl_Exit.3.*
+ rm -f Tcl_Finalize.3 Tcl_Finalize.3.*
+ rm -f Tcl_CreateExitHandler.3 Tcl_CreateExitHandler.3.*
+ rm -f Tcl_DeleteExitHandler.3 Tcl_DeleteExitHandler.3.*
+ rm -f Tcl_ExitThread.3 Tcl_ExitThread.3.*
+ rm -f Tcl_FinalizeThread.3 Tcl_FinalizeThread.3.*
+ rm -f Tcl_CreateThreadExitHandler.3 Tcl_CreateThreadExitHandler.3.*
+ rm -f Tcl_DeleteThreadExitHandler.3 Tcl_DeleteThreadExitHandler.3.*
+ ln $S Exit.3$Z Tcl_Exit.3$Z
+ ln $S Exit.3$Z Tcl_Finalize.3$Z
+ ln $S Exit.3$Z Tcl_CreateExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_DeleteExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_ExitThread.3$Z
+ ln $S Exit.3$Z Tcl_FinalizeThread.3$Z
+ ln $S Exit.3$Z Tcl_CreateThreadExitHandler.3$Z
+ ln $S Exit.3$Z Tcl_DeleteThreadExitHandler.3$Z
+fi
+if test -r ExprLong.3; then
+ rm -f ExprLong.3.*
+ $ZIP ExprLong.3
+ rm -f Tcl_ExprLong.3 Tcl_ExprLong.3.*
+ rm -f Tcl_ExprDouble.3 Tcl_ExprDouble.3.*
+ rm -f Tcl_ExprBoolean.3 Tcl_ExprBoolean.3.*
+ rm -f Tcl_ExprString.3 Tcl_ExprString.3.*
+ ln $S ExprLong.3$Z Tcl_ExprLong.3$Z
+ ln $S ExprLong.3$Z Tcl_ExprDouble.3$Z
+ ln $S ExprLong.3$Z Tcl_ExprBoolean.3$Z
+ ln $S ExprLong.3$Z Tcl_ExprString.3$Z
+fi
+if test -r ExprLongObj.3; then
+ rm -f ExprLongObj.3.*
+ $ZIP ExprLongObj.3
+ rm -f Tcl_ExprLongObj.3 Tcl_ExprLongObj.3.*
+ rm -f Tcl_ExprDoubleObj.3 Tcl_ExprDoubleObj.3.*
+ rm -f Tcl_ExprBooleanObj.3 Tcl_ExprBooleanObj.3.*
+ rm -f Tcl_ExprObj.3 Tcl_ExprObj.3.*
+ ln $S ExprLongObj.3$Z Tcl_ExprLongObj.3$Z
+ ln $S ExprLongObj.3$Z Tcl_ExprDoubleObj.3$Z
+ ln $S ExprLongObj.3$Z Tcl_ExprBooleanObj.3$Z
+ ln $S ExprLongObj.3$Z Tcl_ExprObj.3$Z
+fi
+if test -r FileSystem.3; then
+ rm -f FileSystem.3.*
+ $ZIP FileSystem.3
+ rm -f Tcl_FSRegister.3 Tcl_FSRegister.3.*
+ rm -f Tcl_FSUnregister.3 Tcl_FSUnregister.3.*
+ rm -f Tcl_FSData.3 Tcl_FSData.3.*
+ rm -f Tcl_FSMountsChanged.3 Tcl_FSMountsChanged.3.*
+ rm -f Tcl_FSGetFileSystemForPath.3 Tcl_FSGetFileSystemForPath.3.*
+ rm -f Tcl_FSGetPathType.3 Tcl_FSGetPathType.3.*
+ rm -f Tcl_FSCopyFile.3 Tcl_FSCopyFile.3.*
+ rm -f Tcl_FSCopyDirectory.3 Tcl_FSCopyDirectory.3.*
+ rm -f Tcl_FSCreateDirectory.3 Tcl_FSCreateDirectory.3.*
+ rm -f Tcl_FSDeleteFile.3 Tcl_FSDeleteFile.3.*
+ rm -f Tcl_FSRemoveDirectory.3 Tcl_FSRemoveDirectory.3.*
+ rm -f Tcl_FSRenameFile.3 Tcl_FSRenameFile.3.*
+ rm -f Tcl_FSListVolumes.3 Tcl_FSListVolumes.3.*
+ rm -f Tcl_FSEvalFile.3 Tcl_FSEvalFile.3.*
+ rm -f Tcl_FSLoadFile.3 Tcl_FSLoadFile.3.*
+ rm -f Tcl_FSMatchInDirectory.3 Tcl_FSMatchInDirectory.3.*
+ rm -f Tcl_FSLink.3 Tcl_FSLink.3.*
+ rm -f Tcl_FSLstat.3 Tcl_FSLstat.3.*
+ rm -f Tcl_FSUtime.3 Tcl_FSUtime.3.*
+ rm -f Tcl_FSFileAttrsGet.3 Tcl_FSFileAttrsGet.3.*
+ rm -f Tcl_FSFileAttrsSet.3 Tcl_FSFileAttrsSet.3.*
+ rm -f Tcl_FSFileAttrStrings.3 Tcl_FSFileAttrStrings.3.*
+ rm -f Tcl_FSStat.3 Tcl_FSStat.3.*
+ rm -f Tcl_FSAccess.3 Tcl_FSAccess.3.*
+ rm -f Tcl_FSOpenFileChannel.3 Tcl_FSOpenFileChannel.3.*
+ rm -f Tcl_FSGetCwd.3 Tcl_FSGetCwd.3.*
+ rm -f Tcl_FSChdir.3 Tcl_FSChdir.3.*
+ rm -f Tcl_FSPathSeparator.3 Tcl_FSPathSeparator.3.*
+ rm -f Tcl_FSJoinPath.3 Tcl_FSJoinPath.3.*
+ rm -f Tcl_FSSplitPath.3 Tcl_FSSplitPath.3.*
+ rm -f Tcl_FSEqualPaths.3 Tcl_FSEqualPaths.3.*
+ rm -f Tcl_FSGetNormalizedPath.3 Tcl_FSGetNormalizedPath.3.*
+ rm -f Tcl_FSJoinToPath.3 Tcl_FSJoinToPath.3.*
+ rm -f Tcl_FSConvertToPathType.3 Tcl_FSConvertToPathType.3.*
+ rm -f Tcl_FSGetInternalRep.3 Tcl_FSGetInternalRep.3.*
+ rm -f Tcl_FSGetTranslatedPath.3 Tcl_FSGetTranslatedPath.3.*
+ rm -f Tcl_FSGetTranslatedStringPath.3 Tcl_FSGetTranslatedStringPath.3.*
+ rm -f Tcl_FSNewNativePath.3 Tcl_FSNewNativePath.3.*
+ rm -f Tcl_FSGetNativePath.3 Tcl_FSGetNativePath.3.*
+ rm -f Tcl_FSFileSystemInfo.3 Tcl_FSFileSystemInfo.3.*
+ rm -f Tcl_AllocStatBuf.3 Tcl_AllocStatBuf.3.*
+ ln $S FileSystem.3$Z Tcl_FSRegister.3$Z
+ ln $S FileSystem.3$Z Tcl_FSUnregister.3$Z
+ ln $S FileSystem.3$Z Tcl_FSData.3$Z
+ ln $S FileSystem.3$Z Tcl_FSMountsChanged.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetFileSystemForPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetPathType.3$Z
+ ln $S FileSystem.3$Z Tcl_FSCopyFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSCopyDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSCreateDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSDeleteFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSRemoveDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSRenameFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSListVolumes.3$Z
+ ln $S FileSystem.3$Z Tcl_FSEvalFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSLoadFile.3$Z
+ ln $S FileSystem.3$Z Tcl_FSMatchInDirectory.3$Z
+ ln $S FileSystem.3$Z Tcl_FSLink.3$Z
+ ln $S FileSystem.3$Z Tcl_FSLstat.3$Z
+ ln $S FileSystem.3$Z Tcl_FSUtime.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileAttrsGet.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileAttrsSet.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileAttrStrings.3$Z
+ ln $S FileSystem.3$Z Tcl_FSStat.3$Z
+ ln $S FileSystem.3$Z Tcl_FSAccess.3$Z
+ ln $S FileSystem.3$Z Tcl_FSOpenFileChannel.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetCwd.3$Z
+ ln $S FileSystem.3$Z Tcl_FSChdir.3$Z
+ ln $S FileSystem.3$Z Tcl_FSPathSeparator.3$Z
+ ln $S FileSystem.3$Z Tcl_FSJoinPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSSplitPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSEqualPaths.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetNormalizedPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSJoinToPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSConvertToPathType.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetInternalRep.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetTranslatedPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetTranslatedStringPath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSNewNativePath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSGetNativePath.3$Z
+ ln $S FileSystem.3$Z Tcl_FSFileSystemInfo.3$Z
+ ln $S FileSystem.3$Z Tcl_AllocStatBuf.3$Z
+fi
+if test -r FindExec.3; then
+ rm -f FindExec.3.*
+ $ZIP FindExec.3
+ rm -f Tcl_FindExecutable.3 Tcl_FindExecutable.3.*
+ rm -f Tcl_GetNameOfExecutable.3 Tcl_GetNameOfExecutable.3.*
+ ln $S FindExec.3$Z Tcl_FindExecutable.3$Z
+ ln $S FindExec.3$Z Tcl_GetNameOfExecutable.3$Z
+fi
+if test -r GetCwd.3; then
+ rm -f GetCwd.3.*
+ $ZIP GetCwd.3
+ rm -f Tcl_GetCwd.3 Tcl_GetCwd.3.*
+ rm -f Tcl_Chdir.3 Tcl_Chdir.3.*
+ ln $S GetCwd.3$Z Tcl_GetCwd.3$Z
+ ln $S GetCwd.3$Z Tcl_Chdir.3$Z
+fi
+if test -r GetHostName.3; then
+ rm -f GetHostName.3.*
+ $ZIP GetHostName.3
+ rm -f Tcl_GetHostName.3 Tcl_GetHostName.3.*
+ ln $S GetHostName.3$Z Tcl_GetHostName.3$Z
+fi
+if test -r GetIndex.3; then
+ rm -f GetIndex.3.*
+ $ZIP GetIndex.3
+ rm -f Tcl_GetIndexFromObj.3 Tcl_GetIndexFromObj.3.*
+ rm -f Tcl_GetIndexFromObjStruct.3 Tcl_GetIndexFromObjStruct.3.*
+ ln $S GetIndex.3$Z Tcl_GetIndexFromObj.3$Z
+ ln $S GetIndex.3$Z Tcl_GetIndexFromObjStruct.3$Z
+fi
+if test -r GetInt.3; then
+ rm -f GetInt.3.*
+ $ZIP GetInt.3
+ rm -f Tcl_GetInt.3 Tcl_GetInt.3.*
+ rm -f Tcl_GetDouble.3 Tcl_GetDouble.3.*
+ rm -f Tcl_GetBoolean.3 Tcl_GetBoolean.3.*
+ ln $S GetInt.3$Z Tcl_GetInt.3$Z
+ ln $S GetInt.3$Z Tcl_GetDouble.3$Z
+ ln $S GetInt.3$Z Tcl_GetBoolean.3$Z
+fi
+if test -r GetOpnFl.3; then
+ rm -f GetOpnFl.3.*
+ $ZIP GetOpnFl.3
+ rm -f Tcl_GetOpenFile.3 Tcl_GetOpenFile.3.*
+ ln $S GetOpnFl.3$Z Tcl_GetOpenFile.3$Z
+fi
+if test -r GetStdChan.3; then
+ rm -f GetStdChan.3.*
+ $ZIP GetStdChan.3
+ rm -f Tcl_GetStdChannel.3 Tcl_GetStdChannel.3.*
+ rm -f Tcl_SetStdChannel.3 Tcl_SetStdChannel.3.*
+ ln $S GetStdChan.3$Z Tcl_GetStdChannel.3$Z
+ ln $S GetStdChan.3$Z Tcl_SetStdChannel.3$Z
+fi
+if test -r GetTime.3; then
+ rm -f GetTime.3.*
+ $ZIP GetTime.3
+ rm -f Tcl_GetTime.3 Tcl_GetTime.3.*
+ ln $S GetTime.3$Z Tcl_GetTime.3$Z
+fi
+if test -r GetVersion.3; then
+ rm -f GetVersion.3.*
+ $ZIP GetVersion.3
+ rm -f Tcl_GetVersion.3 Tcl_GetVersion.3.*
+ ln $S GetVersion.3$Z Tcl_GetVersion.3$Z
+fi
+if test -r Hash.3; then
+ rm -f Hash.3.*
+ $ZIP Hash.3
+ rm -f Tcl_InitHashTable.3 Tcl_InitHashTable.3.*
+ rm -f Tcl_InitCustomHashTable.3 Tcl_InitCustomHashTable.3.*
+ rm -f Tcl_InitObjHashTable.3 Tcl_InitObjHashTable.3.*
+ rm -f Tcl_DeleteHashTable.3 Tcl_DeleteHashTable.3.*
+ rm -f Tcl_CreateHashEntry.3 Tcl_CreateHashEntry.3.*
+ rm -f Tcl_DeleteHashEntry.3 Tcl_DeleteHashEntry.3.*
+ rm -f Tcl_FindHashEntry.3 Tcl_FindHashEntry.3.*
+ rm -f Tcl_GetHashValue.3 Tcl_GetHashValue.3.*
+ rm -f Tcl_SetHashValue.3 Tcl_SetHashValue.3.*
+ rm -f Tcl_GetHashKey.3 Tcl_GetHashKey.3.*
+ rm -f Tcl_FirstHashEntry.3 Tcl_FirstHashEntry.3.*
+ rm -f Tcl_NextHashEntry.3 Tcl_NextHashEntry.3.*
+ rm -f Tcl_HashStats.3 Tcl_HashStats.3.*
+ ln $S Hash.3$Z Tcl_InitHashTable.3$Z
+ ln $S Hash.3$Z Tcl_InitCustomHashTable.3$Z
+ ln $S Hash.3$Z Tcl_InitObjHashTable.3$Z
+ ln $S Hash.3$Z Tcl_DeleteHashTable.3$Z
+ ln $S Hash.3$Z Tcl_CreateHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_DeleteHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_FindHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_GetHashValue.3$Z
+ ln $S Hash.3$Z Tcl_SetHashValue.3$Z
+ ln $S Hash.3$Z Tcl_GetHashKey.3$Z
+ ln $S Hash.3$Z Tcl_FirstHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_NextHashEntry.3$Z
+ ln $S Hash.3$Z Tcl_HashStats.3$Z
+fi
+if test -r Init.3; then
+ rm -f Init.3.*
+ $ZIP Init.3
+ rm -f Tcl_Init.3 Tcl_Init.3.*
+ ln $S Init.3$Z Tcl_Init.3$Z
+fi
+if test -r InitStubs.3; then
+ rm -f InitStubs.3.*
+ $ZIP InitStubs.3
+ rm -f Tcl_InitStubs.3 Tcl_InitStubs.3.*
+ ln $S InitStubs.3$Z Tcl_InitStubs.3$Z
+fi
+if test -r IntObj.3; then
+ rm -f IntObj.3.*
+ $ZIP IntObj.3
+ rm -f Tcl_NewIntObj.3 Tcl_NewIntObj.3.*
+ rm -f Tcl_NewLongObj.3 Tcl_NewLongObj.3.*
+ rm -f Tcl_NewWideIntObj.3 Tcl_NewWideIntObj.3.*
+ rm -f Tcl_SetIntObj.3 Tcl_SetIntObj.3.*
+ rm -f Tcl_SetLongObj.3 Tcl_SetLongObj.3.*
+ rm -f Tcl_SetWideIntObj.3 Tcl_SetWideIntObj.3.*
+ rm -f Tcl_GetIntFromObj.3 Tcl_GetIntFromObj.3.*
+ rm -f Tcl_GetLongFromObj.3 Tcl_GetLongFromObj.3.*
+ rm -f Tcl_GetWideIntFromObj.3 Tcl_GetWideIntFromObj.3.*
+ ln $S IntObj.3$Z Tcl_NewIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_NewLongObj.3$Z
+ ln $S IntObj.3$Z Tcl_NewWideIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_SetIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_SetLongObj.3$Z
+ ln $S IntObj.3$Z Tcl_SetWideIntObj.3$Z
+ ln $S IntObj.3$Z Tcl_GetIntFromObj.3$Z
+ ln $S IntObj.3$Z Tcl_GetLongFromObj.3$Z
+ ln $S IntObj.3$Z Tcl_GetWideIntFromObj.3$Z
+fi
+if test -r Interp.3; then
+ rm -f Interp.3.*
+ $ZIP Interp.3
+ rm -f Tcl_Interp.3 Tcl_Interp.3.*
+ ln $S Interp.3$Z Tcl_Interp.3$Z
+fi
+if test -r LinkVar.3; then
+ rm -f LinkVar.3.*
+ $ZIP LinkVar.3
+ rm -f Tcl_LinkVar.3 Tcl_LinkVar.3.*
+ rm -f Tcl_UnlinkVar.3 Tcl_UnlinkVar.3.*
+ rm -f Tcl_UpdateLinkedVar.3 Tcl_UpdateLinkedVar.3.*
+ ln $S LinkVar.3$Z Tcl_LinkVar.3$Z
+ ln $S LinkVar.3$Z Tcl_UnlinkVar.3$Z
+ ln $S LinkVar.3$Z Tcl_UpdateLinkedVar.3$Z
+fi
+if test -r ListObj.3; then
+ rm -f ListObj.3.*
+ $ZIP ListObj.3
+ rm -f Tcl_ListObjAppendList.3 Tcl_ListObjAppendList.3.*
+ rm -f Tcl_ListObjAppendElement.3 Tcl_ListObjAppendElement.3.*
+ rm -f Tcl_NewListObj.3 Tcl_NewListObj.3.*
+ rm -f Tcl_SetListObj.3 Tcl_SetListObj.3.*
+ rm -f Tcl_ListObjGetElements.3 Tcl_ListObjGetElements.3.*
+ rm -f Tcl_ListObjLength.3 Tcl_ListObjLength.3.*
+ rm -f Tcl_ListObjIndex.3 Tcl_ListObjIndex.3.*
+ rm -f Tcl_ListObjReplace.3 Tcl_ListObjReplace.3.*
+ ln $S ListObj.3$Z Tcl_ListObjAppendList.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjAppendElement.3$Z
+ ln $S ListObj.3$Z Tcl_NewListObj.3$Z
+ ln $S ListObj.3$Z Tcl_SetListObj.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjGetElements.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjLength.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjIndex.3$Z
+ ln $S ListObj.3$Z Tcl_ListObjReplace.3$Z
+fi
+if test -r Macintosh.3; then
+ rm -f Macintosh.3.*
+ $ZIP Macintosh.3
+ rm -f Tcl_MacSetEventProc.3 Tcl_MacSetEventProc.3.*
+ rm -f Tcl_MacConvertTextResource.3 Tcl_MacConvertTextResource.3.*
+ rm -f Tcl_MacEvalResource.3 Tcl_MacEvalResource.3.*
+ rm -f Tcl_MacFindResource.3 Tcl_MacFindResource.3.*
+ rm -f Tcl_GetOSTypeFromObj.3 Tcl_GetOSTypeFromObj.3.*
+ rm -f Tcl_SetOSTypeObj.3 Tcl_SetOSTypeObj.3.*
+ rm -f Tcl_NewOSTypeObj.3 Tcl_NewOSTypeObj.3.*
+ ln $S Macintosh.3$Z Tcl_MacSetEventProc.3$Z
+ ln $S Macintosh.3$Z Tcl_MacConvertTextResource.3$Z
+ ln $S Macintosh.3$Z Tcl_MacEvalResource.3$Z
+ ln $S Macintosh.3$Z Tcl_MacFindResource.3$Z
+ ln $S Macintosh.3$Z Tcl_GetOSTypeFromObj.3$Z
+ ln $S Macintosh.3$Z Tcl_SetOSTypeObj.3$Z
+ ln $S Macintosh.3$Z Tcl_NewOSTypeObj.3$Z
+fi
+if test -r Notifier.3; then
+ rm -f Notifier.3.*
+ $ZIP Notifier.3
+ rm -f Tcl_CreateEventSource.3 Tcl_CreateEventSource.3.*
+ rm -f Tcl_DeleteEventSource.3 Tcl_DeleteEventSource.3.*
+ rm -f Tcl_SetMaxBlockTime.3 Tcl_SetMaxBlockTime.3.*
+ rm -f Tcl_QueueEvent.3 Tcl_QueueEvent.3.*
+ rm -f Tcl_ThreadQueueEvent.3 Tcl_ThreadQueueEvent.3.*
+ rm -f Tcl_ThreadAlert.3 Tcl_ThreadAlert.3.*
+ rm -f Tcl_GetCurrentThread.3 Tcl_GetCurrentThread.3.*
+ rm -f Tcl_DeleteEvents.3 Tcl_DeleteEvents.3.*
+ rm -f Tcl_InitNotifier.3 Tcl_InitNotifier.3.*
+ rm -f Tcl_FinalizeNotifier.3 Tcl_FinalizeNotifier.3.*
+ rm -f Tcl_WaitForEvent.3 Tcl_WaitForEvent.3.*
+ rm -f Tcl_AlertNotifier.3 Tcl_AlertNotifier.3.*
+ rm -f Tcl_SetTimer.3 Tcl_SetTimer.3.*
+ rm -f Tcl_ServiceAll.3 Tcl_ServiceAll.3.*
+ rm -f Tcl_ServiceEvent.3 Tcl_ServiceEvent.3.*
+ rm -f Tcl_GetServiceMode.3 Tcl_GetServiceMode.3.*
+ rm -f Tcl_SetServiceMode.3 Tcl_SetServiceMode.3.*
+ ln $S Notifier.3$Z Tcl_CreateEventSource.3$Z
+ ln $S Notifier.3$Z Tcl_DeleteEventSource.3$Z
+ ln $S Notifier.3$Z Tcl_SetMaxBlockTime.3$Z
+ ln $S Notifier.3$Z Tcl_QueueEvent.3$Z
+ ln $S Notifier.3$Z Tcl_ThreadQueueEvent.3$Z
+ ln $S Notifier.3$Z Tcl_ThreadAlert.3$Z
+ ln $S Notifier.3$Z Tcl_GetCurrentThread.3$Z
+ ln $S Notifier.3$Z Tcl_DeleteEvents.3$Z
+ ln $S Notifier.3$Z Tcl_InitNotifier.3$Z
+ ln $S Notifier.3$Z Tcl_FinalizeNotifier.3$Z
+ ln $S Notifier.3$Z Tcl_WaitForEvent.3$Z
+ ln $S Notifier.3$Z Tcl_AlertNotifier.3$Z
+ ln $S Notifier.3$Z Tcl_SetTimer.3$Z
+ ln $S Notifier.3$Z Tcl_ServiceAll.3$Z
+ ln $S Notifier.3$Z Tcl_ServiceEvent.3$Z
+ ln $S Notifier.3$Z Tcl_GetServiceMode.3$Z
+ ln $S Notifier.3$Z Tcl_SetServiceMode.3$Z
+fi
+if test -r Object.3; then
+ rm -f Object.3.*
+ $ZIP Object.3
+ rm -f Tcl_NewObj.3 Tcl_NewObj.3.*
+ rm -f Tcl_DuplicateObj.3 Tcl_DuplicateObj.3.*
+ rm -f Tcl_IncrRefCount.3 Tcl_IncrRefCount.3.*
+ rm -f Tcl_DecrRefCount.3 Tcl_DecrRefCount.3.*
+ rm -f Tcl_IsShared.3 Tcl_IsShared.3.*
+ rm -f Tcl_InvalidateStringRep.3 Tcl_InvalidateStringRep.3.*
+ ln $S Object.3$Z Tcl_NewObj.3$Z
+ ln $S Object.3$Z Tcl_DuplicateObj.3$Z
+ ln $S Object.3$Z Tcl_IncrRefCount.3$Z
+ ln $S Object.3$Z Tcl_DecrRefCount.3$Z
+ ln $S Object.3$Z Tcl_IsShared.3$Z
+ ln $S Object.3$Z Tcl_InvalidateStringRep.3$Z
+fi
+if test -r ObjectType.3; then
+ rm -f ObjectType.3.*
+ $ZIP ObjectType.3
+ rm -f Tcl_RegisterObjType.3 Tcl_RegisterObjType.3.*
+ rm -f Tcl_GetObjType.3 Tcl_GetObjType.3.*
+ rm -f Tcl_AppendAllObjTypes.3 Tcl_AppendAllObjTypes.3.*
+ rm -f Tcl_ConvertToType.3 Tcl_ConvertToType.3.*
+ ln $S ObjectType.3$Z Tcl_RegisterObjType.3$Z
+ ln $S ObjectType.3$Z Tcl_GetObjType.3$Z
+ ln $S ObjectType.3$Z Tcl_AppendAllObjTypes.3$Z
+ ln $S ObjectType.3$Z Tcl_ConvertToType.3$Z
+fi
+if test -r OpenFileChnl.3; then
+ rm -f OpenFileChnl.3.*
+ $ZIP OpenFileChnl.3
+ rm -f Tcl_OpenFileChannel.3 Tcl_OpenFileChannel.3.*
+ rm -f Tcl_OpenCommandChannel.3 Tcl_OpenCommandChannel.3.*
+ rm -f Tcl_MakeFileChannel.3 Tcl_MakeFileChannel.3.*
+ rm -f Tcl_GetChannel.3 Tcl_GetChannel.3.*
+ rm -f Tcl_GetChannelNames.3 Tcl_GetChannelNames.3.*
+ rm -f Tcl_GetChannelNamesEx.3 Tcl_GetChannelNamesEx.3.*
+ rm -f Tcl_RegisterChannel.3 Tcl_RegisterChannel.3.*
+ rm -f Tcl_UnregisterChannel.3 Tcl_UnregisterChannel.3.*
+ rm -f Tcl_DetachChannel.3 Tcl_DetachChannel.3.*
+ rm -f Tcl_IsStandardChannel.3 Tcl_IsStandardChannel.3.*
+ rm -f Tcl_Close.3 Tcl_Close.3.*
+ rm -f Tcl_ReadChars.3 Tcl_ReadChars.3.*
+ rm -f Tcl_Read.3 Tcl_Read.3.*
+ rm -f Tcl_GetsObj.3 Tcl_GetsObj.3.*
+ rm -f Tcl_Gets.3 Tcl_Gets.3.*
+ rm -f Tcl_WriteObj.3 Tcl_WriteObj.3.*
+ rm -f Tcl_WriteChars.3 Tcl_WriteChars.3.*
+ rm -f Tcl_Write.3 Tcl_Write.3.*
+ rm -f Tcl_Flush.3 Tcl_Flush.3.*
+ rm -f Tcl_Seek.3 Tcl_Seek.3.*
+ rm -f Tcl_Tell.3 Tcl_Tell.3.*
+ rm -f Tcl_GetChannelOption.3 Tcl_GetChannelOption.3.*
+ rm -f Tcl_SetChannelOption.3 Tcl_SetChannelOption.3.*
+ rm -f Tcl_Eof.3 Tcl_Eof.3.*
+ rm -f Tcl_InputBlocked.3 Tcl_InputBlocked.3.*
+ rm -f Tcl_InputBuffered.3 Tcl_InputBuffered.3.*
+ rm -f Tcl_OutputBuffered.3 Tcl_OutputBuffered.3.*
+ rm -f Tcl_Ungets.3 Tcl_Ungets.3.*
+ rm -f Tcl_ReadRaw.3 Tcl_ReadRaw.3.*
+ rm -f Tcl_WriteRaw.3 Tcl_WriteRaw.3.*
+ ln $S OpenFileChnl.3$Z Tcl_OpenFileChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_OpenCommandChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_MakeFileChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannelNames.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannelNamesEx.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_RegisterChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_UnregisterChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_DetachChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_IsStandardChannel.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Close.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_ReadChars.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Read.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetsObj.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Gets.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_WriteObj.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_WriteChars.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Write.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Flush.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Seek.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Tell.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_GetChannelOption.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_SetChannelOption.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Eof.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_InputBlocked.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_InputBuffered.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_OutputBuffered.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_Ungets.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_ReadRaw.3$Z
+ ln $S OpenFileChnl.3$Z Tcl_WriteRaw.3$Z
+fi
+if test -r OpenTcp.3; then
+ rm -f OpenTcp.3.*
+ $ZIP OpenTcp.3
+ rm -f Tcl_OpenTcpClient.3 Tcl_OpenTcpClient.3.*
+ rm -f Tcl_MakeTcpClientChannel.3 Tcl_MakeTcpClientChannel.3.*
+ rm -f Tcl_OpenTcpServer.3 Tcl_OpenTcpServer.3.*
+ ln $S OpenTcp.3$Z Tcl_OpenTcpClient.3$Z
+ ln $S OpenTcp.3$Z Tcl_MakeTcpClientChannel.3$Z
+ ln $S OpenTcp.3$Z Tcl_OpenTcpServer.3$Z
+fi
+if test -r Panic.3; then
+ rm -f Panic.3.*
+ $ZIP Panic.3
+ rm -f Tcl_Panic.3 Tcl_Panic.3.*
+ rm -f Tcl_PanicVA.3 Tcl_PanicVA.3.*
+ rm -f Tcl_SetPanicProc.3 Tcl_SetPanicProc.3.*
+ if test "${CASEINSENSITIVEFS:-}" != "1"; then rm -f panic.3 panic.3.* ; fi
+ rm -f panicVA.3 panicVA.3.*
+ ln $S Panic.3$Z Tcl_Panic.3$Z
+ ln $S Panic.3$Z Tcl_PanicVA.3$Z
+ ln $S Panic.3$Z Tcl_SetPanicProc.3$Z
+ if test "${CASEINSENSITIVEFS:-}" != "1"; then ln $S Panic.3$Z panic.3$Z ; fi
+ ln $S Panic.3$Z panicVA.3$Z
+fi
+if test -r ParseCmd.3; then
+ rm -f ParseCmd.3.*
+ $ZIP ParseCmd.3
+ rm -f Tcl_ParseCommand.3 Tcl_ParseCommand.3.*
+ rm -f Tcl_ParseExpr.3 Tcl_ParseExpr.3.*
+ rm -f Tcl_ParseBraces.3 Tcl_ParseBraces.3.*
+ rm -f Tcl_ParseQuotedString.3 Tcl_ParseQuotedString.3.*
+ rm -f Tcl_ParseVarName.3 Tcl_ParseVarName.3.*
+ rm -f Tcl_ParseVar.3 Tcl_ParseVar.3.*
+ rm -f Tcl_FreeParse.3 Tcl_FreeParse.3.*
+ rm -f Tcl_EvalTokens.3 Tcl_EvalTokens.3.*
+ rm -f Tcl_EvalTokensStandard.3 Tcl_EvalTokensStandard.3.*
+ ln $S ParseCmd.3$Z Tcl_ParseCommand.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseExpr.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseBraces.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseQuotedString.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseVarName.3$Z
+ ln $S ParseCmd.3$Z Tcl_ParseVar.3$Z
+ ln $S ParseCmd.3$Z Tcl_FreeParse.3$Z
+ ln $S ParseCmd.3$Z Tcl_EvalTokens.3$Z
+ ln $S ParseCmd.3$Z Tcl_EvalTokensStandard.3$Z
+fi
+if test -r PkgRequire.3; then
+ rm -f PkgRequire.3.*
+ $ZIP PkgRequire.3
+ rm -f Tcl_PkgRequire.3 Tcl_PkgRequire.3.*
+ rm -f Tcl_PkgRequireEx.3 Tcl_PkgRequireEx.3.*
+ rm -f Tcl_PkgPresent.3 Tcl_PkgPresent.3.*
+ rm -f Tcl_PkgPresentEx.3 Tcl_PkgPresentEx.3.*
+ rm -f Tcl_PkgProvide.3 Tcl_PkgProvide.3.*
+ rm -f Tcl_PkgProvideEx.3 Tcl_PkgProvideEx.3.*
+ ln $S PkgRequire.3$Z Tcl_PkgRequire.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgRequireEx.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgPresent.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgPresentEx.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgProvide.3$Z
+ ln $S PkgRequire.3$Z Tcl_PkgProvideEx.3$Z
+fi
+if test -r Preserve.3; then
+ rm -f Preserve.3.*
+ $ZIP Preserve.3
+ rm -f Tcl_Preserve.3 Tcl_Preserve.3.*
+ rm -f Tcl_Release.3 Tcl_Release.3.*
+ rm -f Tcl_EventuallyFree.3 Tcl_EventuallyFree.3.*
+ ln $S Preserve.3$Z Tcl_Preserve.3$Z
+ ln $S Preserve.3$Z Tcl_Release.3$Z
+ ln $S Preserve.3$Z Tcl_EventuallyFree.3$Z
+fi
+if test -r PrintDbl.3; then
+ rm -f PrintDbl.3.*
+ $ZIP PrintDbl.3
+ rm -f Tcl_PrintDouble.3 Tcl_PrintDouble.3.*
+ ln $S PrintDbl.3$Z Tcl_PrintDouble.3$Z
+fi
+if test -r RecEvalObj.3; then
+ rm -f RecEvalObj.3.*
+ $ZIP RecEvalObj.3
+ rm -f Tcl_RecordAndEvalObj.3 Tcl_RecordAndEvalObj.3.*
+ ln $S RecEvalObj.3$Z Tcl_RecordAndEvalObj.3$Z
+fi
+if test -r RecordEval.3; then
+ rm -f RecordEval.3.*
+ $ZIP RecordEval.3
+ rm -f Tcl_RecordAndEval.3 Tcl_RecordAndEval.3.*
+ ln $S RecordEval.3$Z Tcl_RecordAndEval.3$Z
+fi
+if test -r RegExp.3; then
+ rm -f RegExp.3.*
+ $ZIP RegExp.3
+ rm -f Tcl_RegExpMatch.3 Tcl_RegExpMatch.3.*
+ rm -f Tcl_RegExpCompile.3 Tcl_RegExpCompile.3.*
+ rm -f Tcl_RegExpExec.3 Tcl_RegExpExec.3.*
+ rm -f Tcl_RegExpRange.3 Tcl_RegExpRange.3.*
+ rm -f Tcl_GetRegExpFromObj.3 Tcl_GetRegExpFromObj.3.*
+ rm -f Tcl_RegExpMatchObj.3 Tcl_RegExpMatchObj.3.*
+ rm -f Tcl_RegExpExecObj.3 Tcl_RegExpExecObj.3.*
+ rm -f Tcl_RegExpGetInfo.3 Tcl_RegExpGetInfo.3.*
+ ln $S RegExp.3$Z Tcl_RegExpMatch.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpCompile.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpExec.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpRange.3$Z
+ ln $S RegExp.3$Z Tcl_GetRegExpFromObj.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpMatchObj.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpExecObj.3$Z
+ ln $S RegExp.3$Z Tcl_RegExpGetInfo.3$Z
+fi
+if test -r SaveResult.3; then
+ rm -f SaveResult.3.*
+ $ZIP SaveResult.3
+ rm -f Tcl_SaveResult.3 Tcl_SaveResult.3.*
+ rm -f Tcl_RestoreResult.3 Tcl_RestoreResult.3.*
+ rm -f Tcl_DiscardResult.3 Tcl_DiscardResult.3.*
+ ln $S SaveResult.3$Z Tcl_SaveResult.3$Z
+ ln $S SaveResult.3$Z Tcl_RestoreResult.3$Z
+ ln $S SaveResult.3$Z Tcl_DiscardResult.3$Z
+fi
+if test -r SetErrno.3; then
+ rm -f SetErrno.3.*
+ $ZIP SetErrno.3
+ rm -f Tcl_SetErrno.3 Tcl_SetErrno.3.*
+ rm -f Tcl_GetErrno.3 Tcl_GetErrno.3.*
+ rm -f Tcl_ErrnoId.3 Tcl_ErrnoId.3.*
+ rm -f Tcl_ErrnoMsg.3 Tcl_ErrnoMsg.3.*
+ ln $S SetErrno.3$Z Tcl_SetErrno.3$Z
+ ln $S SetErrno.3$Z Tcl_GetErrno.3$Z
+ ln $S SetErrno.3$Z Tcl_ErrnoId.3$Z
+ ln $S SetErrno.3$Z Tcl_ErrnoMsg.3$Z
+fi
+if test -r SetRecLmt.3; then
+ rm -f SetRecLmt.3.*
+ $ZIP SetRecLmt.3
+ rm -f Tcl_SetRecursionLimit.3 Tcl_SetRecursionLimit.3.*
+ ln $S SetRecLmt.3$Z Tcl_SetRecursionLimit.3$Z
+fi
+if test -r SetResult.3; then
+ rm -f SetResult.3.*
+ $ZIP SetResult.3
+ rm -f Tcl_SetObjResult.3 Tcl_SetObjResult.3.*
+ rm -f Tcl_GetObjResult.3 Tcl_GetObjResult.3.*
+ rm -f Tcl_SetResult.3 Tcl_SetResult.3.*
+ rm -f Tcl_GetStringResult.3 Tcl_GetStringResult.3.*
+ rm -f Tcl_AppendResult.3 Tcl_AppendResult.3.*
+ rm -f Tcl_AppendResultVA.3 Tcl_AppendResultVA.3.*
+ rm -f Tcl_AppendElement.3 Tcl_AppendElement.3.*
+ rm -f Tcl_ResetResult.3 Tcl_ResetResult.3.*
+ rm -f Tcl_FreeResult.3 Tcl_FreeResult.3.*
+ ln $S SetResult.3$Z Tcl_SetObjResult.3$Z
+ ln $S SetResult.3$Z Tcl_GetObjResult.3$Z
+ ln $S SetResult.3$Z Tcl_SetResult.3$Z
+ ln $S SetResult.3$Z Tcl_GetStringResult.3$Z
+ ln $S SetResult.3$Z Tcl_AppendResult.3$Z
+ ln $S SetResult.3$Z Tcl_AppendResultVA.3$Z
+ ln $S SetResult.3$Z Tcl_AppendElement.3$Z
+ ln $S SetResult.3$Z Tcl_ResetResult.3$Z
+ ln $S SetResult.3$Z Tcl_FreeResult.3$Z
+fi
+if test -r SetVar.3; then
+ rm -f SetVar.3.*
+ $ZIP SetVar.3
+ rm -f Tcl_SetVar2Ex.3 Tcl_SetVar2Ex.3.*
+ rm -f Tcl_SetVar.3 Tcl_SetVar.3.*
+ rm -f Tcl_SetVar2.3 Tcl_SetVar2.3.*
+ rm -f Tcl_ObjSetVar2.3 Tcl_ObjSetVar2.3.*
+ rm -f Tcl_GetVar2Ex.3 Tcl_GetVar2Ex.3.*
+ rm -f Tcl_GetVar.3 Tcl_GetVar.3.*
+ rm -f Tcl_GetVar2.3 Tcl_GetVar2.3.*
+ rm -f Tcl_ObjGetVar2.3 Tcl_ObjGetVar2.3.*
+ rm -f Tcl_UnsetVar.3 Tcl_UnsetVar.3.*
+ rm -f Tcl_UnsetVar2.3 Tcl_UnsetVar2.3.*
+ ln $S SetVar.3$Z Tcl_SetVar2Ex.3$Z
+ ln $S SetVar.3$Z Tcl_SetVar.3$Z
+ ln $S SetVar.3$Z Tcl_SetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_ObjSetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_GetVar2Ex.3$Z
+ ln $S SetVar.3$Z Tcl_GetVar.3$Z
+ ln $S SetVar.3$Z Tcl_GetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_ObjGetVar2.3$Z
+ ln $S SetVar.3$Z Tcl_UnsetVar.3$Z
+ ln $S SetVar.3$Z Tcl_UnsetVar2.3$Z
+fi
+if test -r Signal.3; then
+ rm -f Signal.3.*
+ $ZIP Signal.3
+ rm -f Tcl_SignalId.3 Tcl_SignalId.3.*
+ rm -f Tcl_SignalMsg.3 Tcl_SignalMsg.3.*
+ ln $S Signal.3$Z Tcl_SignalId.3$Z
+ ln $S Signal.3$Z Tcl_SignalMsg.3$Z
+fi
+if test -r Sleep.3; then
+ rm -f Sleep.3.*
+ $ZIP Sleep.3
+ rm -f Tcl_Sleep.3 Tcl_Sleep.3.*
+ ln $S Sleep.3$Z Tcl_Sleep.3$Z
+fi
+if test -r SourceRCFile.3; then
+ rm -f SourceRCFile.3.*
+ $ZIP SourceRCFile.3
+ rm -f Tcl_SourceRCFile.3 Tcl_SourceRCFile.3.*
+ ln $S SourceRCFile.3$Z Tcl_SourceRCFile.3$Z
+fi
+if test -r SplitList.3; then
+ rm -f SplitList.3.*
+ $ZIP SplitList.3
+ rm -f Tcl_SplitList.3 Tcl_SplitList.3.*
+ rm -f Tcl_Merge.3 Tcl_Merge.3.*
+ rm -f Tcl_ScanElement.3 Tcl_ScanElement.3.*
+ rm -f Tcl_ConvertElement.3 Tcl_ConvertElement.3.*
+ rm -f Tcl_ScanCountedElement.3 Tcl_ScanCountedElement.3.*
+ rm -f Tcl_ConvertCountedElement.3 Tcl_ConvertCountedElement.3.*
+ ln $S SplitList.3$Z Tcl_SplitList.3$Z
+ ln $S SplitList.3$Z Tcl_Merge.3$Z
+ ln $S SplitList.3$Z Tcl_ScanElement.3$Z
+ ln $S SplitList.3$Z Tcl_ConvertElement.3$Z
+ ln $S SplitList.3$Z Tcl_ScanCountedElement.3$Z
+ ln $S SplitList.3$Z Tcl_ConvertCountedElement.3$Z
+fi
+if test -r SplitPath.3; then
+ rm -f SplitPath.3.*
+ $ZIP SplitPath.3
+ rm -f Tcl_SplitPath.3 Tcl_SplitPath.3.*
+ rm -f Tcl_JoinPath.3 Tcl_JoinPath.3.*
+ rm -f Tcl_GetPathType.3 Tcl_GetPathType.3.*
+ ln $S SplitPath.3$Z Tcl_SplitPath.3$Z
+ ln $S SplitPath.3$Z Tcl_JoinPath.3$Z
+ ln $S SplitPath.3$Z Tcl_GetPathType.3$Z
+fi
+if test -r StaticPkg.3; then
+ rm -f StaticPkg.3.*
+ $ZIP StaticPkg.3
+ rm -f Tcl_StaticPackage.3 Tcl_StaticPackage.3.*
+ ln $S StaticPkg.3$Z Tcl_StaticPackage.3$Z
+fi
+if test -r StdChannels.3; then
+ rm -f StdChannels.3.*
+ $ZIP StdChannels.3
+ rm -f Tcl_StandardChannels.3 Tcl_StandardChannels.3.*
+ ln $S StdChannels.3$Z Tcl_StandardChannels.3$Z
+fi
+if test -r StrMatch.3; then
+ rm -f StrMatch.3.*
+ $ZIP StrMatch.3
+ rm -f Tcl_StringMatch.3 Tcl_StringMatch.3.*
+ rm -f Tcl_StringCaseMatch.3 Tcl_StringCaseMatch.3.*
+ ln $S StrMatch.3$Z Tcl_StringMatch.3$Z
+ ln $S StrMatch.3$Z Tcl_StringCaseMatch.3$Z
+fi
+if test -r StringObj.3; then
+ rm -f StringObj.3.*
+ $ZIP StringObj.3
+ rm -f Tcl_NewStringObj.3 Tcl_NewStringObj.3.*
+ rm -f Tcl_NewUnicodeObj.3 Tcl_NewUnicodeObj.3.*
+ rm -f Tcl_SetStringObj.3 Tcl_SetStringObj.3.*
+ rm -f Tcl_SetUnicodeObj.3 Tcl_SetUnicodeObj.3.*
+ rm -f Tcl_GetStringFromObj.3 Tcl_GetStringFromObj.3.*
+ rm -f Tcl_GetString.3 Tcl_GetString.3.*
+ rm -f Tcl_GetUnicodeFromObj.3 Tcl_GetUnicodeFromObj.3.*
+ rm -f Tcl_GetUnicode.3 Tcl_GetUnicode.3.*
+ rm -f Tcl_GetUniChar.3 Tcl_GetUniChar.3.*
+ rm -f Tcl_GetCharLength.3 Tcl_GetCharLength.3.*
+ rm -f Tcl_GetRange.3 Tcl_GetRange.3.*
+ rm -f Tcl_AppendToObj.3 Tcl_AppendToObj.3.*
+ rm -f Tcl_AppendUnicodeToObj.3 Tcl_AppendUnicodeToObj.3.*
+ rm -f Tcl_AppendStringsToObj.3 Tcl_AppendStringsToObj.3.*
+ rm -f Tcl_AppendStringsToObjVA.3 Tcl_AppendStringsToObjVA.3.*
+ rm -f Tcl_AppendObjToObj.3 Tcl_AppendObjToObj.3.*
+ rm -f Tcl_SetObjLength.3 Tcl_SetObjLength.3.*
+ rm -f Tcl_ConcatObj.3 Tcl_ConcatObj.3.*
+ rm -f Tcl_AttemptSetObjLength.3 Tcl_AttemptSetObjLength.3.*
+ ln $S StringObj.3$Z Tcl_NewStringObj.3$Z
+ ln $S StringObj.3$Z Tcl_NewUnicodeObj.3$Z
+ ln $S StringObj.3$Z Tcl_SetStringObj.3$Z
+ ln $S StringObj.3$Z Tcl_SetUnicodeObj.3$Z
+ ln $S StringObj.3$Z Tcl_GetStringFromObj.3$Z
+ ln $S StringObj.3$Z Tcl_GetString.3$Z
+ ln $S StringObj.3$Z Tcl_GetUnicodeFromObj.3$Z
+ ln $S StringObj.3$Z Tcl_GetUnicode.3$Z
+ ln $S StringObj.3$Z Tcl_GetUniChar.3$Z
+ ln $S StringObj.3$Z Tcl_GetCharLength.3$Z
+ ln $S StringObj.3$Z Tcl_GetRange.3$Z
+ ln $S StringObj.3$Z Tcl_AppendToObj.3$Z
+ ln $S StringObj.3$Z Tcl_AppendUnicodeToObj.3$Z
+ ln $S StringObj.3$Z Tcl_AppendStringsToObj.3$Z
+ ln $S StringObj.3$Z Tcl_AppendStringsToObjVA.3$Z
+ ln $S StringObj.3$Z Tcl_AppendObjToObj.3$Z
+ ln $S StringObj.3$Z Tcl_SetObjLength.3$Z
+ ln $S StringObj.3$Z Tcl_ConcatObj.3$Z
+ ln $S StringObj.3$Z Tcl_AttemptSetObjLength.3$Z
+fi
+if test -r SubstObj.3; then
+ rm -f SubstObj.3.*
+ $ZIP SubstObj.3
+ rm -f Tcl_SubstObj.3 Tcl_SubstObj.3.*
+ ln $S SubstObj.3$Z Tcl_SubstObj.3$Z
+fi
+if test -r TCL_MEM_DEBUG.3; then
+ rm -f TCL_MEM_DEBUG.3.*
+ $ZIP TCL_MEM_DEBUG.3
+fi
+if test -r Tcl.n; then
+ rm -f Tcl.n.*
+ $ZIP Tcl.n
+fi
+if test -r Tcl_Main.3; then
+ rm -f Tcl_Main.3.*
+ $ZIP Tcl_Main.3
+ rm -f Tcl_SetMainLoop.3 Tcl_SetMainLoop.3.*
+ ln $S Tcl_Main.3$Z Tcl_SetMainLoop.3$Z
+fi
+if test -r Thread.3; then
+ rm -f Thread.3.*
+ $ZIP Thread.3
+ rm -f Tcl_ConditionNotify.3 Tcl_ConditionNotify.3.*
+ rm -f Tcl_ConditionWait.3 Tcl_ConditionWait.3.*
+ rm -f Tcl_ConditionFinalize.3 Tcl_ConditionFinalize.3.*
+ rm -f Tcl_GetThreadData.3 Tcl_GetThreadData.3.*
+ rm -f Tcl_MutexLock.3 Tcl_MutexLock.3.*
+ rm -f Tcl_MutexUnlock.3 Tcl_MutexUnlock.3.*
+ rm -f Tcl_MutexFinalize.3 Tcl_MutexFinalize.3.*
+ rm -f Tcl_CreateThread.3 Tcl_CreateThread.3.*
+ rm -f Tcl_JoinThread.3 Tcl_JoinThread.3.*
+ ln $S Thread.3$Z Tcl_ConditionNotify.3$Z
+ ln $S Thread.3$Z Tcl_ConditionWait.3$Z
+ ln $S Thread.3$Z Tcl_ConditionFinalize.3$Z
+ ln $S Thread.3$Z Tcl_GetThreadData.3$Z
+ ln $S Thread.3$Z Tcl_MutexLock.3$Z
+ ln $S Thread.3$Z Tcl_MutexUnlock.3$Z
+ ln $S Thread.3$Z Tcl_MutexFinalize.3$Z
+ ln $S Thread.3$Z Tcl_CreateThread.3$Z
+ ln $S Thread.3$Z Tcl_JoinThread.3$Z
+fi
+if test -r ToUpper.3; then
+ rm -f ToUpper.3.*
+ $ZIP ToUpper.3
+ rm -f Tcl_UniCharToUpper.3 Tcl_UniCharToUpper.3.*
+ rm -f Tcl_UniCharToLower.3 Tcl_UniCharToLower.3.*
+ rm -f Tcl_UniCharToTitle.3 Tcl_UniCharToTitle.3.*
+ rm -f Tcl_UtfToUpper.3 Tcl_UtfToUpper.3.*
+ rm -f Tcl_UtfToLower.3 Tcl_UtfToLower.3.*
+ rm -f Tcl_UtfToTitle.3 Tcl_UtfToTitle.3.*
+ ln $S ToUpper.3$Z Tcl_UniCharToUpper.3$Z
+ ln $S ToUpper.3$Z Tcl_UniCharToLower.3$Z
+ ln $S ToUpper.3$Z Tcl_UniCharToTitle.3$Z
+ ln $S ToUpper.3$Z Tcl_UtfToUpper.3$Z
+ ln $S ToUpper.3$Z Tcl_UtfToLower.3$Z
+ ln $S ToUpper.3$Z Tcl_UtfToTitle.3$Z
+fi
+if test -r TraceCmd.3; then
+ rm -f TraceCmd.3.*
+ $ZIP TraceCmd.3
+ rm -f Tcl_CommandTraceInfo.3 Tcl_CommandTraceInfo.3.*
+ rm -f Tcl_TraceCommand.3 Tcl_TraceCommand.3.*
+ rm -f Tcl_UntraceCommand.3 Tcl_UntraceCommand.3.*
+ ln $S TraceCmd.3$Z Tcl_CommandTraceInfo.3$Z
+ ln $S TraceCmd.3$Z Tcl_TraceCommand.3$Z
+ ln $S TraceCmd.3$Z Tcl_UntraceCommand.3$Z
+fi
+if test -r TraceVar.3; then
+ rm -f TraceVar.3.*
+ $ZIP TraceVar.3
+ rm -f Tcl_TraceVar.3 Tcl_TraceVar.3.*
+ rm -f Tcl_TraceVar2.3 Tcl_TraceVar2.3.*
+ rm -f Tcl_UntraceVar.3 Tcl_UntraceVar.3.*
+ rm -f Tcl_UntraceVar2.3 Tcl_UntraceVar2.3.*
+ rm -f Tcl_VarTraceInfo.3 Tcl_VarTraceInfo.3.*
+ rm -f Tcl_VarTraceInfo2.3 Tcl_VarTraceInfo2.3.*
+ ln $S TraceVar.3$Z Tcl_TraceVar.3$Z
+ ln $S TraceVar.3$Z Tcl_TraceVar2.3$Z
+ ln $S TraceVar.3$Z Tcl_UntraceVar.3$Z
+ ln $S TraceVar.3$Z Tcl_UntraceVar2.3$Z
+ ln $S TraceVar.3$Z Tcl_VarTraceInfo.3$Z
+ ln $S TraceVar.3$Z Tcl_VarTraceInfo2.3$Z
+fi
+if test -r Translate.3; then
+ rm -f Translate.3.*
+ $ZIP Translate.3
+ rm -f Tcl_TranslateFileName.3 Tcl_TranslateFileName.3.*
+ ln $S Translate.3$Z Tcl_TranslateFileName.3$Z
+fi
+if test -r UniCharIsAlpha.3; then
+ rm -f UniCharIsAlpha.3.*
+ $ZIP UniCharIsAlpha.3
+ rm -f Tcl_UniCharIsAlnum.3 Tcl_UniCharIsAlnum.3.*
+ rm -f Tcl_UniCharIsAlpha.3 Tcl_UniCharIsAlpha.3.*
+ rm -f Tcl_UniCharIsControl.3 Tcl_UniCharIsControl.3.*
+ rm -f Tcl_UniCharIsDigit.3 Tcl_UniCharIsDigit.3.*
+ rm -f Tcl_UniCharIsGraph.3 Tcl_UniCharIsGraph.3.*
+ rm -f Tcl_UniCharIsLower.3 Tcl_UniCharIsLower.3.*
+ rm -f Tcl_UniCharIsPrint.3 Tcl_UniCharIsPrint.3.*
+ rm -f Tcl_UniCharIsPunct.3 Tcl_UniCharIsPunct.3.*
+ rm -f Tcl_UniCharIsSpace.3 Tcl_UniCharIsSpace.3.*
+ rm -f Tcl_UniCharIsUpper.3 Tcl_UniCharIsUpper.3.*
+ rm -f Tcl_UniCharIsWordChar.3 Tcl_UniCharIsWordChar.3.*
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsAlnum.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsAlpha.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsControl.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsDigit.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsGraph.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsLower.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsPrint.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsPunct.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsSpace.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsUpper.3$Z
+ ln $S UniCharIsAlpha.3$Z Tcl_UniCharIsWordChar.3$Z
+fi
+if test -r UpVar.3; then
+ rm -f UpVar.3.*
+ $ZIP UpVar.3
+ rm -f Tcl_UpVar.3 Tcl_UpVar.3.*
+ rm -f Tcl_UpVar2.3 Tcl_UpVar2.3.*
+ ln $S UpVar.3$Z Tcl_UpVar.3$Z
+ ln $S UpVar.3$Z Tcl_UpVar2.3$Z
+fi
+if test -r Utf.3; then
+ rm -f Utf.3.*
+ $ZIP Utf.3
+ rm -f Tcl_UniChar.3 Tcl_UniChar.3.*
+ rm -f Tcl_UniCharCaseMatch.3 Tcl_UniCharCaseMatch.3.*
+ rm -f Tcl_UniCharNcasecmp.3 Tcl_UniCharNcasecmp.3.*
+ rm -f Tcl_UniCharToUtf.3 Tcl_UniCharToUtf.3.*
+ rm -f Tcl_UtfToUniChar.3 Tcl_UtfToUniChar.3.*
+ rm -f Tcl_UniCharToUtfDString.3 Tcl_UniCharToUtfDString.3.*
+ rm -f Tcl_UtfToUniCharDString.3 Tcl_UtfToUniCharDString.3.*
+ rm -f Tcl_UniCharLen.3 Tcl_UniCharLen.3.*
+ rm -f Tcl_UniCharNcmp.3 Tcl_UniCharNcmp.3.*
+ rm -f Tcl_UtfCharComplete.3 Tcl_UtfCharComplete.3.*
+ rm -f Tcl_NumUtfChars.3 Tcl_NumUtfChars.3.*
+ rm -f Tcl_UtfFindFirst.3 Tcl_UtfFindFirst.3.*
+ rm -f Tcl_UtfFindLast.3 Tcl_UtfFindLast.3.*
+ rm -f Tcl_UtfNext.3 Tcl_UtfNext.3.*
+ rm -f Tcl_UtfPrev.3 Tcl_UtfPrev.3.*
+ rm -f Tcl_UniCharAtIndex.3 Tcl_UniCharAtIndex.3.*
+ rm -f Tcl_UtfAtIndex.3 Tcl_UtfAtIndex.3.*
+ rm -f Tcl_UtfBackslash.3 Tcl_UtfBackslash.3.*
+ ln $S Utf.3$Z Tcl_UniChar.3$Z
+ ln $S Utf.3$Z Tcl_UniCharCaseMatch.3$Z
+ ln $S Utf.3$Z Tcl_UniCharNcasecmp.3$Z
+ ln $S Utf.3$Z Tcl_UniCharToUtf.3$Z
+ ln $S Utf.3$Z Tcl_UtfToUniChar.3$Z
+ ln $S Utf.3$Z Tcl_UniCharToUtfDString.3$Z
+ ln $S Utf.3$Z Tcl_UtfToUniCharDString.3$Z
+ ln $S Utf.3$Z Tcl_UniCharLen.3$Z
+ ln $S Utf.3$Z Tcl_UniCharNcmp.3$Z
+ ln $S Utf.3$Z Tcl_UtfCharComplete.3$Z
+ ln $S Utf.3$Z Tcl_NumUtfChars.3$Z
+ ln $S Utf.3$Z Tcl_UtfFindFirst.3$Z
+ ln $S Utf.3$Z Tcl_UtfFindLast.3$Z
+ ln $S Utf.3$Z Tcl_UtfNext.3$Z
+ ln $S Utf.3$Z Tcl_UtfPrev.3$Z
+ ln $S Utf.3$Z Tcl_UniCharAtIndex.3$Z
+ ln $S Utf.3$Z Tcl_UtfAtIndex.3$Z
+ ln $S Utf.3$Z Tcl_UtfBackslash.3$Z
+fi
+if test -r WrongNumArgs.3; then
+ rm -f WrongNumArgs.3.*
+ $ZIP WrongNumArgs.3
+ rm -f Tcl_WrongNumArgs.3 Tcl_WrongNumArgs.3.*
+ ln $S WrongNumArgs.3$Z Tcl_WrongNumArgs.3$Z
+fi
+if test -r after.n; then
+ rm -f after.n.*
+ $ZIP after.n
+fi
+if test -r append.n; then
+ rm -f append.n.*
+ $ZIP append.n
+fi
+if test -r array.n; then
+ rm -f array.n.*
+ $ZIP array.n
+fi
+if test -r bgerror.n; then
+ rm -f bgerror.n.*
+ $ZIP bgerror.n
+fi
+if test -r binary.n; then
+ rm -f binary.n.*
+ $ZIP binary.n
+fi
+if test -r break.n; then
+ rm -f break.n.*
+ $ZIP break.n
+fi
+if test -r case.n; then
+ rm -f case.n.*
+ $ZIP case.n
+fi
+if test -r catch.n; then
+ rm -f catch.n.*
+ $ZIP catch.n
+fi
+if test -r cd.n; then
+ rm -f cd.n.*
+ $ZIP cd.n
+fi
+if test -r clock.n; then
+ rm -f clock.n.*
+ $ZIP clock.n
+fi
+if test -r close.n; then
+ rm -f close.n.*
+ $ZIP close.n
+fi
+if test -r concat.n; then
+ rm -f concat.n.*
+ $ZIP concat.n
+fi
+if test -r continue.n; then
+ rm -f continue.n.*
+ $ZIP continue.n
+fi
+if test -r dde.n; then
+ rm -f dde.n.*
+ $ZIP dde.n
+fi
+if test -r encoding.n; then
+ rm -f encoding.n.*
+ $ZIP encoding.n
+fi
+if test -r eof.n; then
+ rm -f eof.n.*
+ $ZIP eof.n
+fi
+if test -r error.n; then
+ rm -f error.n.*
+ $ZIP error.n
+fi
+if test -r eval.n; then
+ rm -f eval.n.*
+ $ZIP eval.n
+fi
+if test -r exec.n; then
+ rm -f exec.n.*
+ $ZIP exec.n
+fi
+if test -r exit.n; then
+ rm -f exit.n.*
+ $ZIP exit.n
+fi
+if test -r expr.n; then
+ rm -f expr.n.*
+ $ZIP expr.n
+fi
+if test -r fblocked.n; then
+ rm -f fblocked.n.*
+ $ZIP fblocked.n
+fi
+if test -r fconfigure.n; then
+ rm -f fconfigure.n.*
+ $ZIP fconfigure.n
+fi
+if test -r fcopy.n; then
+ rm -f fcopy.n.*
+ $ZIP fcopy.n
+fi
+if test -r file.n; then
+ rm -f file.n.*
+ $ZIP file.n
+fi
+if test -r fileevent.n; then
+ rm -f fileevent.n.*
+ $ZIP fileevent.n
+fi
+if test -r filename.n; then
+ rm -f filename.n.*
+ $ZIP filename.n
+fi
+if test -r flush.n; then
+ rm -f flush.n.*
+ $ZIP flush.n
+fi
+if test -r for.n; then
+ rm -f for.n.*
+ $ZIP for.n
+fi
+if test -r foreach.n; then
+ rm -f foreach.n.*
+ $ZIP foreach.n
+fi
+if test -r format.n; then
+ rm -f format.n.*
+ $ZIP format.n
+fi
+if test -r gets.n; then
+ rm -f gets.n.*
+ $ZIP gets.n
+fi
+if test -r glob.n; then
+ rm -f glob.n.*
+ $ZIP glob.n
+fi
+if test -r global.n; then
+ rm -f global.n.*
+ $ZIP global.n
+fi
+if test -r history.n; then
+ rm -f history.n.*
+ $ZIP history.n
+fi
+if test -r http.n; then
+ rm -f http.n.*
+ $ZIP http.n
+fi
+if test -r if.n; then
+ rm -f if.n.*
+ $ZIP if.n
+fi
+if test -r incr.n; then
+ rm -f incr.n.*
+ $ZIP incr.n
+fi
+if test -r info.n; then
+ rm -f info.n.*
+ $ZIP info.n
+fi
+if test -r interp.n; then
+ rm -f interp.n.*
+ $ZIP interp.n
+fi
+if test -r join.n; then
+ rm -f join.n.*
+ $ZIP join.n
+fi
+if test -r lappend.n; then
+ rm -f lappend.n.*
+ $ZIP lappend.n
+fi
+if test -r library.n; then
+ rm -f library.n.*
+ $ZIP library.n
+ rm -f auto_execok.n auto_execok.n.*
+ rm -f auto_import.n auto_import.n.*
+ rm -f auto_load.n auto_load.n.*
+ rm -f auto_mkindex.n auto_mkindex.n.*
+ rm -f auto_mkindex_old.n auto_mkindex_old.n.*
+ rm -f auto_qualify.n auto_qualify.n.*
+ rm -f auto_reset.n auto_reset.n.*
+ rm -f tcl_findLibrary.n tcl_findLibrary.n.*
+ rm -f parray.n parray.n.*
+ rm -f tcl_endOfWord.n tcl_endOfWord.n.*
+ rm -f tcl_startOfNextWord.n tcl_startOfNextWord.n.*
+ rm -f tcl_startOfPreviousWord.n tcl_startOfPreviousWord.n.*
+ rm -f tcl_wordBreakAfter.n tcl_wordBreakAfter.n.*
+ rm -f tcl_wordBreakBefore.n tcl_wordBreakBefore.n.*
+ ln $S library.n$Z auto_execok.n$Z
+ ln $S library.n$Z auto_import.n$Z
+ ln $S library.n$Z auto_load.n$Z
+ ln $S library.n$Z auto_mkindex.n$Z
+ ln $S library.n$Z auto_mkindex_old.n$Z
+ ln $S library.n$Z auto_qualify.n$Z
+ ln $S library.n$Z auto_reset.n$Z
+ ln $S library.n$Z tcl_findLibrary.n$Z
+ ln $S library.n$Z parray.n$Z
+ ln $S library.n$Z tcl_endOfWord.n$Z
+ ln $S library.n$Z tcl_startOfNextWord.n$Z
+ ln $S library.n$Z tcl_startOfPreviousWord.n$Z
+ ln $S library.n$Z tcl_wordBreakAfter.n$Z
+ ln $S library.n$Z tcl_wordBreakBefore.n$Z
+fi
+if test -r lindex.n; then
+ rm -f lindex.n.*
+ $ZIP lindex.n
+fi
+if test -r linsert.n; then
+ rm -f linsert.n.*
+ $ZIP linsert.n
+fi
+if test -r list.n; then
+ rm -f list.n.*
+ $ZIP list.n
+fi
+if test -r llength.n; then
+ rm -f llength.n.*
+ $ZIP llength.n
+fi
+if test -r load.n; then
+ rm -f load.n.*
+ $ZIP load.n
+fi
+if test -r lrange.n; then
+ rm -f lrange.n.*
+ $ZIP lrange.n
+fi
+if test -r lreplace.n; then
+ rm -f lreplace.n.*
+ $ZIP lreplace.n
+fi
+if test -r lsearch.n; then
+ rm -f lsearch.n.*
+ $ZIP lsearch.n
+fi
+if test -r lset.n; then
+ rm -f lset.n.*
+ $ZIP lset.n
+fi
+if test -r lsort.n; then
+ rm -f lsort.n.*
+ $ZIP lsort.n
+fi
+if test -r memory.n; then
+ rm -f memory.n.*
+ $ZIP memory.n
+fi
+if test -r msgcat.n; then
+ rm -f msgcat.n.*
+ $ZIP msgcat.n
+fi
+if test -r namespace.n; then
+ rm -f namespace.n.*
+ $ZIP namespace.n
+fi
+if test -r open.n; then
+ rm -f open.n.*
+ $ZIP open.n
+fi
+if test -r package.n; then
+ rm -f package.n.*
+ $ZIP package.n
+fi
+if test -r packagens.n; then
+ rm -f packagens.n.*
+ $ZIP packagens.n
+ rm -f pkg::create.n pkg::create.n.*
+ ln $S packagens.n$Z pkg::create.n$Z
+fi
+if test -r pid.n; then
+ rm -f pid.n.*
+ $ZIP pid.n
+fi
+if test -r pkgMkIndex.n; then
+ rm -f pkgMkIndex.n.*
+ $ZIP pkgMkIndex.n
+ rm -f pkg_mkIndex.n pkg_mkIndex.n.*
+ ln $S pkgMkIndex.n$Z pkg_mkIndex.n$Z
+fi
+if test -r proc.n; then
+ rm -f proc.n.*
+ $ZIP proc.n
+fi
+if test -r puts.n; then
+ rm -f puts.n.*
+ $ZIP puts.n
+fi
+if test -r pwd.n; then
+ rm -f pwd.n.*
+ $ZIP pwd.n
+fi
+if test -r re_syntax.n; then
+ rm -f re_syntax.n.*
+ $ZIP re_syntax.n
+fi
+if test -r read.n; then
+ rm -f read.n.*
+ $ZIP read.n
+fi
+if test -r regexp.n; then
+ rm -f regexp.n.*
+ $ZIP regexp.n
+fi
+if test -r registry.n; then
+ rm -f registry.n.*
+ $ZIP registry.n
+fi
+if test -r regsub.n; then
+ rm -f regsub.n.*
+ $ZIP regsub.n
+fi
+if test -r rename.n; then
+ rm -f rename.n.*
+ $ZIP rename.n
+fi
+if test -r resource.n; then
+ rm -f resource.n.*
+ $ZIP resource.n
+fi
+if test -r return.n; then
+ rm -f return.n.*
+ $ZIP return.n
+fi
+if test -r safe.n; then
+ rm -f safe.n.*
+ $ZIP safe.n
+ rm -f SafeBase.n SafeBase.n.*
+ ln $S safe.n$Z SafeBase.n$Z
+fi
+if test -r scan.n; then
+ rm -f scan.n.*
+ $ZIP scan.n
+fi
+if test -r seek.n; then
+ rm -f seek.n.*
+ $ZIP seek.n
+fi
+if test -r set.n; then
+ rm -f set.n.*
+ $ZIP set.n
+fi
+if test -r socket.n; then
+ rm -f socket.n.*
+ $ZIP socket.n
+fi
+if test -r source.n; then
+ rm -f source.n.*
+ $ZIP source.n
+fi
+if test -r split.n; then
+ rm -f split.n.*
+ $ZIP split.n
+fi
+if test -r string.n; then
+ rm -f string.n.*
+ $ZIP string.n
+fi
+if test -r subst.n; then
+ rm -f subst.n.*
+ $ZIP subst.n
+fi
+if test -r switch.n; then
+ rm -f switch.n.*
+ $ZIP switch.n
+fi
+if test -r tclsh.1; then
+ rm -f tclsh.1.*
+ $ZIP tclsh.1
+fi
+if test -r tcltest.n; then
+ rm -f tcltest.n.*
+ $ZIP tcltest.n
+fi
+if test -r tclvars.n; then
+ rm -f tclvars.n.*
+ $ZIP tclvars.n
+fi
+if test -r tell.n; then
+ rm -f tell.n.*
+ $ZIP tell.n
+fi
+if test -r time.n; then
+ rm -f time.n.*
+ $ZIP time.n
+fi
+if test -r trace.n; then
+ rm -f trace.n.*
+ $ZIP trace.n
+fi
+if test -r unknown.n; then
+ rm -f unknown.n.*
+ $ZIP unknown.n
+fi
+if test -r unset.n; then
+ rm -f unset.n.*
+ $ZIP unset.n
+fi
+if test -r update.n; then
+ rm -f update.n.*
+ $ZIP update.n
+fi
+if test -r uplevel.n; then
+ rm -f uplevel.n.*
+ $ZIP uplevel.n
+fi
+if test -r upvar.n; then
+ rm -f upvar.n.*
+ $ZIP upvar.n
+fi
+if test -r variable.n; then
+ rm -f variable.n.*
+ $ZIP variable.n
+fi
+if test -r vwait.n; then
+ rm -f vwait.n.*
+ $ZIP vwait.n
+fi
+if test -r while.n; then
+ rm -f while.n.*
+ $ZIP while.n
fi
exit 0
diff --git a/tcl/win/Makefile.in b/tcl/win/Makefile.in
index 602265e466d..f558be19590 100644
--- a/tcl/win/Makefile.in
+++ b/tcl/win/Makefile.in
@@ -1,4 +1,5 @@
-# This file is a Makefile for Tk. If it has the name "Makefile.in"
+#
+# This file is a Makefile for Tcl. If it has the name "Makefile.in"
# then it is a template for a Makefile; to generate the actual Makefile,
# run "./configure", which is a configuration script generated by the
# "autoconf" program (constructs like "@foo@" will get replaced in the
@@ -6,8 +7,7 @@
#
# RCS: @(#) $Id$
-TCLVERSION = @TCL_VERSION@
-VERSION = @TK_VERSION@
+VERSION = @TCL_VERSION@
#----------------------------------------------------------------
# Things you can change to personalize the Makefile for your own
@@ -34,102 +34,109 @@ mandir = @mandir@
# to be different than those used for actually reference files at
# run-time. INSTALL_ROOT is prepended to $prefix and $exec_prefix
# when installing files.
-INSTALL_ROOT =
+INSTALL_ROOT =
-# Directory from which applications will reference the library of Tk
-# scripts (note: you can set the TK_LIBRARY environment variable at
+# Directory from which applications will reference the library of Tcl
+# scripts (note: you can set the TCL_LIBRARY environment variable at
# run-time to override this value):
-TK_LIBRARY = $(prefix)/lib/tk$(VERSION)
+TCL_LIBRARY = $(prefix)/lib/tcl$(VERSION)
# Path to use at runtime to refer to LIB_INSTALL_DIR:
LIB_RUNTIME_DIR = $(libdir)
-# Directory in which to install the program wish:
+# Directory in which to install the program tclsh:
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(bindir)
-# Directory in which to install the .a or .so binary for the Tk library:
+# Directory in which to install the .a or .so binary for the Tcl library:
LIB_INSTALL_DIR = $(INSTALL_ROOT)$(libdir)
-# Path name to use when installing library scripts:
-SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TK_LIBRARY)
+# Path name to use when installing library scripts.
+SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY)
-# Directory in which to install the include file tk.h:
+# Directory in which to install the include file tcl.h:
INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir)
-# Top-level directory for manual entries:
+# Top-level directory in which to install manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(mandir)
-# Directory in which to install manual entry for wish:
-MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
+# Directory in which to install manual entry for tclsh:
+MAN1_INSTALL_DIR = $(MAN_INSTALL_DIR)/man1
-# Directory in which to install manual entries for Tk's C library
+# Directory in which to install manual entries for Tcl's C library
# procedures:
-MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3
+MAN3_INSTALL_DIR = $(MAN_INSTALL_DIR)/man3
# Directory in which to install manual entries for the built-in
-# Tk commands:
-MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
+# Tcl commands:
+MANN_INSTALL_DIR = $(MAN_INSTALL_DIR)/mann
# Libraries built with optimization switches have this additional extension
-TK_DBGX = @TK_DBGX@
+TCL_DBGX = @TCL_DBGX@
-# Directory in which to install the pkgIndex.tcl file for loadable Tk
-PKG_INSTALL_DIR = $(LIB_INSTALL_DIR)/tk$(VERSION)$(TK_DBGX)
+# warning flags
+CFLAGS_WARNING = @CFLAGS_WARNING@
-# Package index file for loadable Tk
-PKG_INDEX = $(PKG_INSTALL_DIR)/pkgIndex.tcl
+# The default switches for optimization or debugging
+CFLAGS_DEBUG = @CFLAGS_DEBUG@
+CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
-# The directory containing the Tcl source and header files.
-TCL_SRC_DIR = @TCL_SRC_DIR@
+# To change the compiler switches, for example to change from optimization to
+# debugging symbols, change the following line:
+#CFLAGS = $(CFLAGS_DEBUG)
+#CFLAGS = $(CFLAGS_OPTIMIZE)
+#CFLAGS = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
+CFLAGS = @CFLAGS@ @CFLAGS_DEFAULT@ @MEM_DEBUG_FLAGS@
-# The directory containing the Tcl library archive file appropriate
-# for this version of Tk:
-TCL_BIN_DIR = @TCL_BIN_DIR@
+# To enable compilation debugging reverse the comment characters on
+# one of the following lines.
+COMPILE_DEBUG_FLAGS =
+#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG
+#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
-# The directory containing the Tcl sources and headers appropriate
-# for this version of Tk ("srcdir" will be replaced or has already
-# been replaced by the configure script):
-TCL_GENERIC_DIR = @TCL_SRC_DIR@/generic
-TCL_TOOL_DIR = @TCL_SRC_DIR@/tools
+# Special compiler flags to use when building man2tcl on Windows.
+MAN2TCLFLAGS = @MAN2TCLFLAGS@
+
+SRC_DIR = @srcdir@
+ROOT_DIR = @srcdir@/..
+GENERIC_DIR = @srcdir@/../generic
+WIN_DIR = @srcdir@
+COMPAT_DIR = @srcdir@/../compat
# Converts a POSIX path to a Windows native path.
CYGPATH = @CYGPATH@
-# The name of the Tcl library.
-TCL_LIB_FILE = "$(shell $(CYGPATH) '@TCL_BIN_DIR@/@TCL_LIB_FILE@')"
-TCL_STUB_LIB_FILE = "$(shell $(CYGPATH) '@TCL_BIN_DIR@/@TCL_STUB_LIB_FILE@')"
+GENERIC_DIR_NATIVE = $(shell $(CYGPATH) '$(GENERIC_DIR)')
+WIN_DIR_NATIVE = $(shell $(CYGPATH) '$(WIN_DIR)')
+ROOT_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)')
-SRC_DIR = @srcdir@
-ROOT_DIR = $(SRC_DIR)/..
-WIN_DIR = $(SRC_DIR)
-UNIX_DIR = $(SRC_DIR)/../unix
-GENERIC_DIR = $(SRC_DIR)/../generic
-BITMAP_DIR = $(ROOT_DIR)/bitmaps
-XLIB_DIR = $(ROOT_DIR)/xlib
-RC_DIR = $(WIN_DIR)/rc
-
-ROOT_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)')
-WIN_DIR_NATIVE = $(shell $(CYGPATH) '$(WIN_DIR)')
-GENERIC_DIR_NATIVE = $(shell $(CYGPATH) '$(GENERIC_DIR)')
-BITMAP_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)/bitmaps')
-XLIB_DIR_NATIVE = $(shell $(CYGPATH) '$(ROOT_DIR)/xlib')
-TCL_GENERIC_NATIVE = $(shell $(CYGPATH) '$(TCL_GENERIC_DIR)')
-TCL_SRC_DIR_NATIVE = $(shell $(CYGPATH) '$(TCL_SRC_DIR)')
-RC_DIR_NATIVE = $(shell $(CYGPATH) '$(RC_DIR)')
+LIBRARY_DIR = $(shell echo '$(ROOT_DIR_NATIVE)/library' | sed 's/\\/\//g' )
DLLSUFFIX = @DLLSUFFIX@
LIBSUFFIX = @LIBSUFFIX@
EXESUFFIX = @EXESUFFIX@
-TK_STUB_LIB_FILE = @TK_STUB_LIB_FILE@
-TK_LIB_FILE = @TK_LIB_FILE@
-TK_DLL_FILE = @TK_DLL_FILE@
+TCL_STUB_LIB_FILE = @TCL_STUB_LIB_FILE@
+TCL_DLL_FILE = @TCL_DLL_FILE@
+TCL_LIB_FILE = @TCL_LIB_FILE@
+DDE_DLL_FILE = tcldde$(DDEVER)${DLLSUFFIX}
+DDE_LIB_FILE = tcldde$(DDEVER)${LIBSUFFIX}
+REG_DLL_FILE = tclreg$(REGVER)${DLLSUFFIX}
+REG_LIB_FILE = tclreg$(REGVER)${LIBSUFFIX}
+PIPE_DLL_FILE = tclpip$(VER)${DLLSUFFIX}
-SHARED_LIBRARIES = $(TK_DLL_FILE) $(TK_STUB_LIB_FILE)
-STATIC_LIBRARIES = $(TK_LIB_FILE)
+SHARED_LIBRARIES = $(TCL_DLL_FILE) $(TCL_STUB_LIB_FILE) \
+ $(DDE_DLL_FILE) $(REG_DLL_FILE) $(PIPE_DLL_FILE)
+STATIC_LIBRARIES = $(TCL_LIB_FILE) $(REG_LIB_FILE) $(DDE_LIB_FILE)
-WISH = wish$(VER)${EXESUFFIX}
-TKTEST = tktest${EXEEXT}
+# TCL_EXE is the name of a tclsh executable that is available *BEFORE*
+# running make for the first time. Certain build targets (make genstubs)
+# need it to be available on the PATH. This executable should *NOT* be
+# required just to do a normal build although it can be required to run
+# make dist.
+TCL_EXE = tclsh
+
+TCLSH = tclsh$(VER)${EXESUFFIX}
+TCLTEST = tcltest${EXEEXT}
CAT32 = cat32$(EXEEXT)
MAN2TCL = man2tcl$(EXEEXT)
@@ -139,37 +146,17 @@ MAN2TCL = man2tcl$(EXEEXT)
# makefile to look into these paths when resolving .c to .obj
# dependencies.
-VPATH = $(GENERIC_DIR):$(WIN_DIR):$(UNIX_DIR):$(XLIB_DIR):$(RC_DIR)
-
-# warning flags
-CFLAGS_WARNING = @CFLAGS_WARNING@
-
-# The default switches for optimization or debugging
-CFLAGS_DEBUG = @CFLAGS_DEBUG@
-CFLAGS_OPTIMIZE = @CFLAGS_OPTIMIZE@
-
-# The default switches for optimization or debugging
-LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
-LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
-
-# To change the compiler switches, for example to change from optimization to
-# debugging symbols, change the following line:
-#CFLAGS = $(CFLAGS_DEBUG)
-#CFLAGS = $(CFLAGS_OPTIMIZE)
-#CFLAGS = $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
-CFLAGS = @CFLAGS@ @CFLAGS_DEFAULT@
-
-# Special compiler flags to use when building man2tcl on Windows.
-MAN2TCLFLAGS = @MAN2TCLFLAGS@
+VPATH = $(GENERIC_DIR):$(WIN_DIR):$(COMPAT_DIR)
AR = @AR@
RANLIB = @RANLIB@
CC = @CC@
RC = @RC@
RES = @RES@
-TK_RES = @TK_RES@
AC_FLAGS = @EXTRA_CFLAGS@ @DEFS@
CPPFLAGS = @CPPFLAGS@
+LDFLAGS_DEBUG = @LDFLAGS_DEBUG@
+LDFLAGS_OPTIMIZE = @LDFLAGS_OPTIMIZE@
LDFLAGS = @LDFLAGS@ @LDFLAGS_DEFAULT@
LDFLAGS_CONSOLE = @LDFLAGS_CONSOLE@
LDFLAGS_WINDOW = @LDFLAGS_WINDOW@
@@ -177,239 +164,267 @@ EXEEXT = @EXEEXT@
OBJEXT = @OBJEXT@
STLIB_LD = @STLIB_LD@
SHLIB_LD = @SHLIB_LD@
-SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ $(TCL_STUB_LIB_FILE) $(LIBS)
+SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ $(LIBS)
SHLIB_CFLAGS = @SHLIB_CFLAGS@
SHLIB_SUFFIX = @SHLIB_SUFFIX@
-VER = @TK_MAJOR_VERSION@@TK_MINOR_VERSION@
-DOTVER = @TK_MAJOR_VERSION@.@TK_MINOR_VERSION@
-LIBS = @LIBS@ @LIBS_GUI@
+VER = @TCL_MAJOR_VERSION@@TCL_MINOR_VERSION@
+DOTVER = @TCL_MAJOR_VERSION@.@TCL_MINOR_VERSION@
+DDEVER = @TCL_DDE_MAJOR_VERSION@@TCL_DDE_MINOR_VERSION@
+DDEDOTVER = @TCL_DDE_MAJOR_VERSION@.@TCL_DDE_MINOR_VERSION@
+REGVER = @TCL_REG_MAJOR_VERSION@@TCL_REG_MINOR_VERSION@
+REGDOTVER = @TCL_REG_MAJOR_VERSION@.@TCL_REG_MINOR_VERSION@
+LIBS = @LIBS@
+
RMDIR = rm -rf
MKDIR = mkdir -p
SHELL = @SHELL@
RM = rm -f
COPY = cp
-TCLSH_PROG = @TCLSH_PROG@
-
-# TCL_EXE is the name of a tclsh executable that is available *BEFORE*
-# running make for the first time. Certain build targets (make genstubs)
-# need it to be available on the PATH. This executable should *NOT* be
-# required just to do a normal build although it can be required to run
-# make dist.
-TCL_EXE = tclsh
-
-CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
--I"${GENERIC_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" \
--I"${XLIB_DIR_NATIVE}" -I"${BITMAP_DIR_NATIVE}" \
- -I"${TCL_GENERIC_NATIVE}" ${AC_FLAGS}
+CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TCL_SHLIB_CFLAGS} \
+-I"${GENERIC_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" ${AC_FLAGS} \
+${COMPILE_DEBUG_FLAGS}
CC_OBJNAME = @CC_OBJNAME@
CC_EXENAME = @CC_EXENAME@
-STUB_CC_SWITCHES = ${CC_SWITCHES} -DUSE_TCL_STUBS
-CON_CC_SWITCHES = ${CC_SWITCHES} -DCONSOLE
-
-# Tk used to let the configure script choose which program to use
-# for installing, but there are just too many different versions of
-# "install" around; better to use the install-sh script that comes
-# with the distribution, which is slower but guaranteed to work.
-
-INSTALL = cp
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL}
-
-WISH_OBJS = \
- winMain.$(OBJEXT)
-
-TKTEST_OBJS = \
- testMain.$(OBJEXT) \
- tkSquare.$(OBJEXT) \
- tkTest.$(OBJEXT) \
- tkWinTest.$(OBJEXT)
-
-XLIB_OBJS = \
- xcolors.$(OBJEXT) \
- xdraw.$(OBJEXT) \
- xgc.$(OBJEXT) \
- ximage.$(OBJEXT) \
- xutil.$(OBJEXT)
-
-TK_OBJS = \
- tkConsole.$(OBJEXT) \
- tkUnixMenubu.$(OBJEXT) \
- tkUnixScale.$(OBJEXT) \
- $(XLIB_OBJS) \
- tkWin3d.$(OBJEXT) \
- tkWin32Dll.$(OBJEXT) \
- tkWinButton.$(OBJEXT) \
- tkWinClipboard.$(OBJEXT) \
- tkWinColor.$(OBJEXT) \
- tkWinConfig.$(OBJEXT) \
- tkWinCursor.$(OBJEXT) \
- tkWinDialog.$(OBJEXT) \
- tkWinDraw.$(OBJEXT) \
- tkWinEmbed.$(OBJEXT) \
- tkWinFont.$(OBJEXT) \
- tkWinImage.$(OBJEXT) \
- tkWinInit.$(OBJEXT) \
- tkWinKey.$(OBJEXT) \
- tkWinMenu.$(OBJEXT) \
- tkWinPixmap.$(OBJEXT) \
- tkWinPointer.$(OBJEXT) \
- tkWinRegion.$(OBJEXT) \
- tkWinScrlbr.$(OBJEXT) \
- tkWinSend.$(OBJEXT) \
- tkWinWindow.$(OBJEXT) \
- tkWinWm.$(OBJEXT) \
- tkWinX.$(OBJEXT) \
- stubs.$(OBJEXT) \
- tk3d.$(OBJEXT) \
- tkArgv.$(OBJEXT) \
- tkAtom.$(OBJEXT) \
- tkBind.$(OBJEXT) \
- tkBitmap.$(OBJEXT) \
- tkButton.$(OBJEXT) \
- tkCanvArc.$(OBJEXT) \
- tkCanvBmap.$(OBJEXT) \
- tkCanvImg.$(OBJEXT) \
- tkCanvLine.$(OBJEXT) \
- tkCanvPoly.$(OBJEXT) \
- tkCanvPs.$(OBJEXT) \
- tkCanvText.$(OBJEXT) \
- tkCanvUtil.$(OBJEXT) \
- tkCanvWind.$(OBJEXT) \
- tkCanvas.$(OBJEXT) \
- tkClipboard.$(OBJEXT) \
- tkCmds.$(OBJEXT) \
- tkColor.$(OBJEXT) \
- tkConfig.$(OBJEXT) \
- tkCursor.$(OBJEXT) \
- tkEntry.$(OBJEXT) \
- tkError.$(OBJEXT) \
- tkEvent.$(OBJEXT) \
- tkFileFilter.$(OBJEXT) \
- tkFocus.$(OBJEXT) \
- tkFont.$(OBJEXT) \
- tkFrame.$(OBJEXT) \
- tkGC.$(OBJEXT) \
- tkGeometry.$(OBJEXT) \
- tkGet.$(OBJEXT) \
- tkGrab.$(OBJEXT) \
- tkGrid.$(OBJEXT) \
- tkImage.$(OBJEXT) \
- tkImgBmap.$(OBJEXT) \
- tkImgGIF.$(OBJEXT) \
- tkImgPPM.$(OBJEXT) \
- tkImgPhoto.$(OBJEXT) \
- tkImgUtil.$(OBJEXT) \
- tkListbox.$(OBJEXT) \
- tkMacWinMenu.$(OBJEXT) \
- tkMain.$(OBJEXT) \
- tkMenu.$(OBJEXT) \
- tkMenubutton.$(OBJEXT) \
- tkMenuDraw.$(OBJEXT) \
- tkMessage.$(OBJEXT) \
- tkPanedWindow.$(OBJEXT) \
- tkObj.$(OBJEXT) \
- tkOldConfig.$(OBJEXT) \
- tkOption.$(OBJEXT) \
- tkPack.$(OBJEXT) \
- tkPlace.$(OBJEXT) \
- tkPointer.$(OBJEXT) \
- tkRectOval.$(OBJEXT) \
- tkScale.$(OBJEXT) \
- tkScrollbar.$(OBJEXT) \
- tkSelect.$(OBJEXT) \
- tkStyle.$(OBJEXT) \
- tkText.$(OBJEXT) \
- tkTextBTree.$(OBJEXT) \
- tkTextDisp.$(OBJEXT) \
- tkTextImage.$(OBJEXT) \
- tkTextIndex.$(OBJEXT) \
- tkTextMark.$(OBJEXT) \
- tkTextTag.$(OBJEXT) \
- tkTextWind.$(OBJEXT) \
- tkTrig.$(OBJEXT) \
- tkUndo.$(OBJEXT) \
- tkUtil.$(OBJEXT) \
- tkVisual.$(OBJEXT) \
- tkStubInit.$(OBJEXT) \
- tkStubLib.$(OBJEXT) \
- tkWindow.$(OBJEXT)
-
-STUB_OBJS = \
- tkStubLib.$(OBJEXT) \
- tkStubImg.$(OBJEXT)
-
-TCL_DOCS = "$(TCL_SRC_DIR_NATIVE)"/doc/*.[13n]
-TK_DOCS = "$(ROOT_DIR_NATIVE)"/doc/*.[13n]
-CORE_DOCS = $(TCL_DOCS) $(TK_DOCS)
-
-DEMOPROGS = browse hello ixset rmt rolodex square tcolor timer widget
-
-# Main targets. The default target -- all -- builds the binaries,
-# performs any post processing on libraries or documents.
+STUB_CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${SHLIB_CFLAGS} \
+-I"${GENERIC_DIR_NATIVE}" -I"${WIN_DIR_NATIVE}" ${AC_FLAGS} \
+${COMPILE_DEBUG_FLAGS}
+
+TCLTEST_OBJS = \
+ tclTest.$(OBJEXT) \
+ tclTestObj.$(OBJEXT) \
+ tclTestProcBodyObj.$(OBJEXT) \
+ tclThreadTest.$(OBJEXT) \
+ tclWinTest.$(OBJEXT) \
+ testMain.$(OBJEXT)
+
+GENERIC_OBJS = \
+ regcomp.$(OBJEXT) \
+ regexec.$(OBJEXT) \
+ regfree.$(OBJEXT) \
+ regerror.$(OBJEXT) \
+ tclAlloc.$(OBJEXT) \
+ tclAsync.$(OBJEXT) \
+ tclBasic.$(OBJEXT) \
+ tclBinary.$(OBJEXT) \
+ tclCkalloc.$(OBJEXT) \
+ tclClock.$(OBJEXT) \
+ tclCmdAH.$(OBJEXT) \
+ tclCmdIL.$(OBJEXT) \
+ tclCmdMZ.$(OBJEXT) \
+ tclCompCmds.$(OBJEXT) \
+ tclCompExpr.$(OBJEXT) \
+ tclCompile.$(OBJEXT) \
+ tclDate.$(OBJEXT) \
+ tclEncoding.$(OBJEXT) \
+ tclEnv.$(OBJEXT) \
+ tclEvent.$(OBJEXT) \
+ tclExecute.$(OBJEXT) \
+ tclFCmd.$(OBJEXT) \
+ tclFileName.$(OBJEXT) \
+ tclGet.$(OBJEXT) \
+ tclHash.$(OBJEXT) \
+ tclHistory.$(OBJEXT) \
+ tclIndexObj.$(OBJEXT) \
+ tclInterp.$(OBJEXT) \
+ tclIO.$(OBJEXT) \
+ tclIOCmd.$(OBJEXT) \
+ tclIOGT.$(OBJEXT) \
+ tclIOSock.$(OBJEXT) \
+ tclIOUtil.$(OBJEXT) \
+ tclLink.$(OBJEXT) \
+ tclLiteral.$(OBJEXT) \
+ tclListObj.$(OBJEXT) \
+ tclLoad.$(OBJEXT) \
+ tclMain.$(OBJEXT) \
+ tclNamesp.$(OBJEXT) \
+ tclNotify.$(OBJEXT) \
+ tclObj.$(OBJEXT) \
+ tclPanic.$(OBJEXT) \
+ tclParse.$(OBJEXT) \
+ tclParseExpr.$(OBJEXT) \
+ tclPipe.$(OBJEXT) \
+ tclPkg.$(OBJEXT) \
+ tclPosixStr.$(OBJEXT) \
+ tclPreserve.$(OBJEXT) \
+ tclProc.$(OBJEXT) \
+ tclRegexp.$(OBJEXT) \
+ tclResolve.$(OBJEXT) \
+ tclResult.$(OBJEXT) \
+ tclScan.$(OBJEXT) \
+ tclStringObj.$(OBJEXT) \
+ tclStubInit.$(OBJEXT) \
+ tclStubLib.$(OBJEXT) \
+ tclThread.$(OBJEXT) \
+ tclThreadAlloc.$(OBJEXT) \
+ tclThreadJoin.$(OBJEXT) \
+ tclTimer.$(OBJEXT) \
+ tclUtf.$(OBJEXT) \
+ tclUtil.$(OBJEXT) \
+ tclVar.$(OBJEXT)
+
+WIN_OBJS = \
+ tclWin32Dll.$(OBJEXT) \
+ tclWinChan.$(OBJEXT) \
+ tclWinConsole.$(OBJEXT) \
+ tclWinSerial.$(OBJEXT) \
+ tclWinError.$(OBJEXT) \
+ tclWinFCmd.$(OBJEXT) \
+ tclWinFile.$(OBJEXT) \
+ tclWinInit.$(OBJEXT) \
+ tclWinLoad.$(OBJEXT) \
+ tclWinMtherr.$(OBJEXT) \
+ tclWinNotify.$(OBJEXT) \
+ tclWinPipe.$(OBJEXT) \
+ tclWinSock.$(OBJEXT) \
+ tclWinThrd.$(OBJEXT) \
+ tclWinTime.$(OBJEXT)
+
+COMPAT_OBJS = \
+ strftime.$(OBJEXT) strtoll.$(OBJEXT) strtoull.$(OBJEXT)
+
+PIPE_OBJS = stub16.$(OBJEXT)
+
+DDE_OBJS = tclWinDde.$(OBJEXT)
+
+REG_OBJS = tclWinReg.$(OBJEXT)
+
+STUB_OBJS = tclStubLib.$(OBJEXT)
+
+TCLSH_OBJS = tclAppInit.$(OBJEXT)
+
+TCL_OBJS = ${GENERIC_OBJS} ${WIN_OBJS} ${COMPAT_OBJS}
+
+TCL_DOCS = "$(ROOT_DIR_NATIVE)"/doc/*.[13n]
all: binaries libraries doc
-binaries: @LIBRARIES@ $(WISH)
+tcltest: $(TCLTEST)
-libraries:
+binaries: @LIBRARIES@ $(TCLSH)
-$(ROOT_DIR)/doc/man.macros:
- $(INSTALL_DATA) "$(TCL_SRC_DIR)/doc/man.macros" "$(ROOT_DIR)/doc/man.macros"
+libraries:
-doc: $(ROOT_DIR)/doc/man.macros
+doc:
-winhelp: $(TCL_SRC_DIR_NATIVE)/tools/man2help.tcl $(MAN2TCL)
- TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/library"; export TCL_LIBRARY; \
- TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \
- PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \
- $(TCLSH_PROG) "$(TCL_SRC_DIR_NATIVE)/tools/man2help.tcl" tcl "$(VER)" $(CORE_DOCS)
- $(COPY) "$(TCL_BIN_DIR)"/tcl.hpj ./
+winhelp: $(ROOT_DIR)/tools/man2help.tcl $(MAN2TCL)
+ TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
+ ./$(TCLSH) "$(ROOT_DIR_NATIVE)"/tools/man2help.tcl tcl "$(VER)" $(TCL_DOCS)
hcw /c /e tcl.hpj
- $(COPY) ./tcl$(VER).cnt ./TCL$(VER).HLP "$(TCL_SRC_DIR_NATIVE)"/tools/
-$(MAN2TCL): $(TCL_SRC_DIR_NATIVE)/tools/man2tcl.c
- $(CC) $(CFLAGS_OPTIMIZE) $(MAN2TCLFLAGS) -o $(MAN2TCL) "$(TCL_SRC_DIR_NATIVE)"/tools/man2tcl.c
+$(MAN2TCL): $(ROOT_DIR)/tools/man2tcl.c
+ $(CC) $(CFLAGS_OPTIMIZE) $(MAN2TCLFLAGS) -o $(MAN2TCL) "$(ROOT_DIR_NATIVE)"/tools/man2tcl.c
-# Specifying TESTFLAGS on the command line is the standard way to pass
-# args to tcltest, ie:
-# % make test TESTFLAGS="-verbose bps -file fileName.test"
+$(TCLSH): $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(TCLSH_OBJS) tclsh.$(RES)
+ $(CC) $(CFLAGS) $(TCLSH_OBJS) $(TCL_LIB_FILE) $(LIBS) \
+ tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
-test: binaries $(TKTEST)
- @TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/library"; export TCL_LIBRARY; \
- TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \
- PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \
- ./$(TKTEST) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \
- | ./$(CAT32)
+$(TCLTEST): $(TCL_LIB_FILE) $(TCLTEST_OBJS) $(CAT32) tclsh.$(RES)
+ $(CC) $(CFLAGS) $(TCLTEST_OBJS) $(TCL_LIB_FILE) $(LIBS) \
+ tclsh.$(RES) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
-runtest: binaries $(TKTEST)
- @TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/library"; export TCL_LIBRARY; \
- TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \
- PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \
- ./$(TKTEST) $(TESTFLAGS) $(SCRIPT)
+cat32.$(OBJEXT): cat.c
+ $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
-# This target can be used to run wish from the build directory
-# via `make shell` or `make shell SCRIPT=foo.tcl`
-shell: binaries
- @TCL_LIBRARY="$(TCL_SRC_DIR_NATIVE)/library"; export TCL_LIBRARY; \
- TK_LIBRARY="$(ROOT_DIR_NATIVE)/library"; export TK_LIBRARY; \
- PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \
- ./$(WISH) $(SCRIPT)
+$(CAT32): cat32.$(OBJEXT)
+ $(CC) $(CFLAGS) cat32.$(OBJEXT) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
-# This target can be used to run wish inside either gdb or insight
-gdb: binaries
- @echo "set env TCL_LIBRARY=$(TCL_SRC_DIR_NATIVE)/library" > gdb.run
- @echo "set env TK_LIBRARY=$(ROOT_DIR_NATIVE)/library" >> gdb.run
- PATH="$(PATH):$(TCL_BIN_DIR)"; export PATH; \
- gdb ./$(WISH) --command=gdb.run
- @$(RM) gdb.run
+# The following targets are configured by autoconf to generate either
+# a shared library or static library
+
+${TCL_STUB_LIB_FILE}: ${STUB_OBJS}
+ @$(RM) ${TCL_STUB_LIB_FILE}
+ @MAKE_LIB@ ${STUB_OBJS}
+ @POST_MAKE_LIB@
+
+${TCL_DLL_FILE}: ${TCL_OBJS} tcl.$(RES)
+ @$(RM) ${TCL_DLL_FILE}
+ @MAKE_DLL@ ${TCL_OBJS} tcl.$(RES) $(SHLIB_LD_LIBS)
+
+${TCL_LIB_FILE}: ${TCL_OBJS}
+ @$(RM) ${TCL_LIB_FILE}
+ @MAKE_LIB@ ${TCL_OBJS}
+ @POST_MAKE_LIB@
+
+${DDE_DLL_FILE}: ${DDE_OBJS} ${TCL_STUB_LIB_FILE}
+ @$(RM) ${DDE_DLL_FILE}
+ @MAKE_DLL@ ${DDE_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
-install: all install-binaries install-libraries install-doc install-demos
+${DDE_LIB_FILE}: ${DDE_OBJS} ${TCL_LIB_FILE}
+ @$(RM) ${DDE_LIB_FILE}
+ @MAKE_LIB@ ${DDE_OBJS} ${TCL_LIB_FILE}
+
+${REG_DLL_FILE}: ${REG_OBJS} ${TCL_STUB_LIB_FILE}
+ @$(RM) ${REG_DLL_FILE}
+ @MAKE_DLL@ ${REG_OBJS} $(TCL_STUB_LIB_FILE) $(SHLIB_LD_LIBS)
+
+${REG_LIB_FILE}: ${REG_OBJS} ${TCL_LIB_FILE}
+ @$(RM) ${REG_LIB_FILE}
+ @MAKE_LIB@ ${REG_OBJS} ${TCL_LIB_FILE}
+
+# PIPE_DLL_FILE is actually an executable, don't build it
+# like a DLL.
+
+${PIPE_DLL_FILE}: ${PIPE_OBJS}
+ @$(RM) ${PIPE_DLL_FILE}
+ @MAKE_EXE@ $(CFLAGS) ${PIPE_OBJS} $(LIBS) $(LDFLAGS_CONSOLE)
+
+# Add the object extension to the implicit rules. By default .obj is not
+# automatically added.
+
+.SUFFIXES: .${OBJEXT}
+.SUFFIXES: .$(RES)
+.SUFFIXES: .rc
+
+# Special case object targets
+
+tclWinInit.${OBJEXT}: tclWinInit.c
+ $(CC) -c $(CC_SWITCHES) -DBUILD_tcl $(EXTFLAGS) @DEPARG@ $(CC_OBJNAME)
+
+testMain.${OBJEXT}: tclAppInit.c
+ $(CC) -c $(CC_SWITCHES) -DTCL_TEST @DEPARG@ $(CC_OBJNAME)
+
+tclTest.${OBJEXT}: tclTest.c
+ $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
+
+tclTestObj.${OBJEXT}: tclTestObj.c
+ $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
+
+tclWinTest.${OBJEXT}: tclWinTest.c
+ $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
+
+tclAppInit.${OBJEXT} : tclAppInit.c
+ $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
+
+# The following objects should be built using the stub interfaces
+
+tclWinReg.${OBJEXT} : tclWinReg.c
+ $(CC) -c $(CC_SWITCHES) -DUSE_TCL_STUBS @DEPARG@ $(CC_OBJNAME)
+
+tclWinDde.${OBJEXT} : tclWinDde.c
+ $(CC) -c $(CC_SWITCHES) -DUSE_TCL_STUBS @DEPARG@ $(CC_OBJNAME)
+
+# The following objects are part of the stub library and should not
+# be built as DLL objects but none of the symbols should be exported
+
+tclStubLib.${OBJEXT}: tclStubLib.c
+ $(CC) -c $(CC_SWITCHES) -DSTATIC_BUILD @DEPARG@ $(CC_OBJNAME)
+
+
+# Implicit rule for all object files that will end up in the Tcl library
+
+.c.${OBJEXT}:
+ $(CC) -c $(CC_SWITCHES) -DBUILD_tcl @DEPARG@ $(CC_OBJNAME)
+
+.rc.$(RES):
+ $(RC) @RC_OUT@ $@ @RC_TYPE@ @RC_DEFINES@ @RC_INCLUDE@ "$(GENERIC_DIR_NATIVE)" @RC_INCLUDE@ "$(WIN_DIR_NATIVE)" @DEPARG@
+
+install: all install-binaries install-libraries install-doc
install-binaries: binaries
- @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) $(PKG_INSTALL_DIR); \
+ @for i in "$(LIB_INSTALL_DIR)" "$(BIN_INSTALL_DIR)" ; \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
@@ -418,202 +433,165 @@ install-binaries: binaries
else true; \
fi; \
done;
- @for i in $(TK_DLL_FILE) $(WISH); \
+ @for i in dde1.2 reg1.0; \
+ do \
+ if [ ! -d $(LIB_INSTALL_DIR)/$$i ] ; then \
+ echo "Making directory $(LIB_INSTALL_DIR)/$$i"; \
+ $(MKDIR) $(LIB_INSTALL_DIR)/$$i; \
+ else true; \
+ fi; \
+ done;
+ @for i in $(TCL_DLL_FILE) $(TCLSH) $(PIPE_DLL_FILE); \
do \
if [ -f $$i ]; then \
echo "Installing $$i to $(BIN_INSTALL_DIR)/"; \
$(COPY) $$i "$(BIN_INSTALL_DIR)"; \
fi; \
done
- @echo "Creating package index $(PKG_INDEX)";
- @$(RM) $(PKG_INDEX);
- @(\
- echo "if {[package vcompare [package provide Tcl]\
- $(TCLVERSION)] != 0} { return }";\
- echo "package ifneeded Tk $(VERSION)\
- [list load [file join \$$dir .. .. bin $(TK_DLL_FILE)] Tk]";\
- ) > $(PKG_INDEX);
- @for i in tkConfig.sh $(TK_LIB_FILE) $(TK_STUB_LIB_FILE); \
+ @for i in tclConfig.sh $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE); \
do \
if [ -f $$i ]; then \
echo "Installing $$i to $(LIB_INSTALL_DIR)/"; \
$(COPY) $$i "$(LIB_INSTALL_DIR)"; \
fi; \
done
+ @if [ -f $(DDE_DLL_FILE) ]; then \
+ echo installing $(DDE_DLL_FILE); \
+ $(COPY) $(DDE_DLL_FILE) $(LIB_INSTALL_DIR)/dde1.2; \
+ $(COPY) $(ROOT_DIR)/library/dde/pkgIndex.tcl \
+ $(LIB_INSTALL_DIR)/dde1.2; \
+ fi
+ @if [ -f $(DDE_LIB_FILE) ]; then \
+ echo installing $(DDE_LIB_FILE); \
+ $(COPY) $(DDE_LIB_FILE) $(LIB_INSTALL_DIR)/dde1.2; \
+ fi
+ @if [ -f $(REG_DLL_FILE) ]; then \
+ echo installing $(REG_DLL_FILE); \
+ $(COPY) $(REG_DLL_FILE) $(LIB_INSTALL_DIR)/reg1.0; \
+ $(COPY) $(ROOT_DIR)/library/reg/pkgIndex.tcl \
+ $(LIB_INSTALL_DIR)/reg1.0; \
+ fi
+ @if [ -f $(REG_LIB_FILE) ]; then \
+ echo installing $(REG_LIB_FILE); \
+ $(COPY) $(REG_LIB_FILE) $(LIB_INSTALL_DIR)/reg1.0; \
+ fi
install-libraries: libraries
- @for i in $(INSTALL_ROOT)$(prefix)/lib \
- $(INCLUDE_INSTALL_DIR) $(INCLUDE_INSTALL_DIR)/X11 \
- $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \
- $(SCRIPT_INSTALL_DIR)/msgs; \
+ @for i in $(prefix)/lib $(INCLUDE_INSTALL_DIR) \
+ $(SCRIPT_INSTALL_DIR); \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
$(MKDIR) $$i; \
- chmod 755 $$i; \
else true; \
fi; \
done;
- @echo "Installing header files to $(INCLUDE_INSTALL_DIR)/";
- @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkPlatDecls.h \
- $(GENERIC_DIR)/tkIntXlibDecls.h $(GENERIC_DIR)/tkDecls.h ; \
+ @for i in http1.0 http2.4 opt0.4 encoding msgcat1.3 tcltest2.2; \
do \
- $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
+ if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \
+ echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
+ $(MKDIR) $(SCRIPT_INSTALL_DIR)/$$i; \
+ else true; \
+ fi; \
done;
- @for i in $(XLIB_DIR)/X11/*.h; \
+ @echo "Installing header files";
+ @for i in "$(GENERIC_DIR)/tcl.h" "$(GENERIC_DIR)/tclDecls.h" \
+ "$(GENERIC_DIR)/tclPlatDecls.h" ; \
do \
- $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR)/X11; \
+ $(COPY) "$$i" "$(INCLUDE_INSTALL_DIR)"; \
done;
@echo "Installing library files to $(SCRIPT_INSTALL_DIR)";
- @for i in $(ROOT_DIR)/library/*.tcl $(GENERIC_DIR)/prolog.ps \
- $(ROOT_DIR)/library/tclIndex $(UNIX_DIR)/tkAppInit.c; \
+ @for i in $(ROOT_DIR)/library/*.tcl $(ROOT_DIR)/library/tclIndex; \
do \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
+ $(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)"; \
done;
- @echo "Installing library images directory";
- @for i in $(ROOT_DIR)/library/images/*; \
+ @echo "Installing library http1.0 directory";
+ @for j in $(ROOT_DIR)/library/http1.0/*.tcl; \
do \
- if [ -f $$i ] ; then \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/images; \
- fi; \
- done;
- @echo "Installing translation directory";
- @for i in $(ROOT_DIR)/library/msgs/*.msg; \
- do \
- if [ -f $$i ] ; then \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/msgs; \
- fi; \
+ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http1.0"; \
done;
-
-install-demos:
- @for i in $(INSTALL_ROOT)$(prefix)/lib $(SCRIPT_INSTALL_DIR) \
- $(SCRIPT_INSTALL_DIR)/demos \
- $(SCRIPT_INSTALL_DIR)/demos/images ; \
+ @echo "Installing library http2.4 directory";
+ @for j in $(ROOT_DIR)/library/http/*.tcl; \
do \
- if [ ! -d $$i ] ; then \
- echo "Making directory $$i"; \
- $(MKDIR) $$i; \
- chmod 755 $$i; \
- else true; \
- fi; \
+ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/http2.4"; \
done;
- @echo "Installing demos to $(SCRIPT_INSTALL_DIR)/demos/";
- @for i in $(ROOT_DIR)/library/demos/*; \
+ @echo "Installing library opt0.4 directory";
+ @for j in $(ROOT_DIR)/library/opt/*.tcl; \
do \
- if [ -f $$i ] ; then \
- sed -e '3 s|exec $(WISH)|exec $(WISH)|' \
- $$i > $(SCRIPT_INSTALL_DIR)/demos/`basename $$i`; \
- fi; \
+ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/opt0.4"; \
done;
- @for i in $(DEMOPROGS); \
+ @echo "Installing library msgcat1.3 directory";
+ @for j in $(ROOT_DIR)/library/msgcat/*.tcl; \
do \
- chmod 755 $(SCRIPT_INSTALL_DIR)/demos/$$i; \
+ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/msgcat1.3"; \
done;
- @echo "Installing demo images";
- @for i in $(ROOT_DIR)/library/demos/images/*; \
+ @echo "Installing library tcltest2.2 directory";
+ @for j in $(ROOT_DIR)/library/tcltest/*.tcl; \
do \
- if [ -f $$i ] ; then \
- $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR)/demos/images; \
- fi; \
+ $(COPY) "$$j" "$(SCRIPT_INSTALL_DIR)/tcltest2.2"; \
done;
+ @echo "Installing encodings";
+ @for i in $(ROOT_DIR)/library/encoding/*.enc ; do \
+ $(COPY) "$$i" "$(SCRIPT_INSTALL_DIR)/encoding"; \
+ done;
install-doc: doc
+# Specifying TESTFLAGS on the command line is the standard way to pass
+# args to tcltest, ie:
+# % make test TESTFLAGS="-verbose bps -file fileName.test"
-$(WISH): $(TK_LIB_FILE) $(TK_STUB_LIB_FILE) $(WISH_OBJS) wish.$(RES)
- $(CC) $(CFLAGS) $(WISH_OBJS) $(TCL_LIB_FILE) $(TK_LIB_FILE) $(LIBS) \
- wish.$(RES) $(CC_EXENAME) $(LDFLAGS_WINDOW)
-
-tktest : $(TKTEST)
-
-$(TKTEST): $(TK_LIB_FILE) $(TKTEST_OBJS) wish.$(RES) $(CAT32)
- $(CC) $(CFLAGS) $(TKTEST_OBJS) $(TCL_LIB_FILE) \
- $(TK_LIB_FILE) $(LIBS) \
- wish.$(RES) $(CC_EXENAME) $(LDFLAGS_WINDOW)
-
-cat32.${OBJEXT}: $(TCL_SRC_DIR)/win/cat.c
- $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
-
-$(CAT32): cat32.${OBJEXT}
- $(CC) $(CFLAGS) cat32.$(OBJEXT) $(CC_EXENAME) $(LDFLAGS_CONSOLE)
-
-# The following targets are configured by autoconf to generate either
-# a shared library or static library
-
-${TK_STUB_LIB_FILE}: ${STUB_OBJS}
- @$(RM) ${TK_STUB_LIB_FILE}
- @MAKE_LIB@ ${STUB_OBJS}
- @POST_MAKE_LIB@
-
-${TK_DLL_FILE}: ${TK_OBJS} $(TK_RES)
- @$(RM) ${TK_DLL_FILE}
- @MAKE_DLL@ ${TK_OBJS} $(TK_RES) $(SHLIB_LD_LIBS)
-
-${TK_LIB_FILE}: ${TK_OBJS}
- @$(RM) ${TK_LIB_FILE}
- @MAKE_LIB@ ${TK_OBJS}
- @POST_MAKE_LIB@
-
-# Special case object file targets
-
-winMain.$(OBJEXT): winMain.c
- $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
-
-testMain.$(OBJEXT): winMain.c
- $(CC) -c $(CC_SWITCHES) @DEPARG@ -DTK_TEST $(CC_OBJNAME)
-
-tkTest.$(OBJEXT): tkTest.c
- $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
-
-tkWinTest.$(OBJEXT): tkWinTest.c
- $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
-
-tkSquare.$(OBJEXT): tkSquare.c
- $(CC) -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME)
-
-# Add the object extension to the implicit rules. By default .obj is not
-# automatically added.
-
-.SUFFIXES: .${OBJEXT}
-.SUFFIXES: .$(RES)
-.SUFFIXES: .rc
+test: binaries $(TCLTEST)
+ TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
+ ./$(TCLTEST) "$(ROOT_DIR_NATIVE)/tests/all.tcl" $(TESTFLAGS) \
+ | ./$(CAT32)
-# Implicit rule for all object files that will end up in the Tcl library
+# Useful target to launch a built tcltest with the proper path,...
+runtest: binaries $(TCLTEST)
+ @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
+ ./$(TCLTEST) $(TESTFLAGS) $(SCRIPT)
-.c.$(OBJEXT):
- $(CC) -c $(STUB_CC_SWITCHES) -DBUILD_tk @DEPARG@ $(CC_OBJNAME)
+# This target can be used to run tclsh from the build directory
+# via `make shell SCRIPT=foo.tcl`
+shell: binaries
+ @TCL_LIBRARY="$(LIBRARY_DIR)"; export TCL_LIBRARY; \
+ ./$(TCLSH) $(SCRIPT)
-.rc.$(RES):
- $(RC) @RC_OUT@ $@ @RC_TYPE@ @RC_DEFINES@ @RC_INCLUDE@ "$(GENERIC_DIR_NATIVE)" @RC_INCLUDE@ "$(TCL_GENERIC_NATIVE)" @RC_INCLUDE@ "$(RC_DIR_NATIVE)" @DEPARG@
+# This target can be used to run tclsh inside either gdb or insight
+gdb: binaries
+ @echo "set env TCL_LIBRARY=$(LIBRARY_DIR)" > gdb.run
+ gdb ./tclsh --command=gdb.run
+ rm gdb.run
depend:
+Makefile: $(SRC_DIR)/Makefile.in
+ ./config.status
+
cleanhelp:
- $(RM) *.hlp *.cnt *.hpj *.GID *.rtf man2tcl${EXEEXT}
+ $(RM) *.hlp *.cnt *.GID *.rtf man2tcl.exe
clean: cleanhelp
- $(RM) *.lib *.a *.exp *.dll *.res *.${OBJEXT} *~ \#* TAGS a.out
- $(RM) $(WISH) $(TKTEST) $(CAT32)
+ $(RM) *.lib *.a *.exp *.dll *.$(RES) *.${OBJEXT} *~ \#* TAGS a.out
+ $(RM) $(TCLSH) $(TCLTEST) $(CAT32)
$(RM) *.pch *.ilk *.pdb
distclean: clean
- $(RM) Makefile config.status config.cache config.log tkConfig.sh
-
-Makefile: $(SRC_DIR)/Makefile.in
- ./config.status
+ $(RM) Makefile config.status config.cache config.log tclConfig.sh \
+ tcl.hpj
#
# Regenerate the stubs files.
#
-$(GENERIC_DIR)/tkStubInit.c: $(GENERIC_DIR)/tk.decls \
- $(GENERIC_DIR)/tkInt.decls
- @echo "Warning: tkStubInit.c may be out of date."
+$(GENERIC_DIR)/tclStubInit.c: $(GENERIC_DIR)/tcl.decls \
+ $(GENERIC_DIR)/tclInt.decls
+ @echo "Warning: tclStubInit.c may be out of date."
@echo "Developers may want to run \"make genstubs\" to regenerate."
@echo "This warning can be safely ignored, do not report as a bug!"
genstubs:
- $(TCL_EXE) "$(TCL_TOOL_DIR}\genStubs.tcl" \
+ $(TCL_EXE) "$(ROOT_DIR_NATIVE)\tools\genStubs.tcl" \
"$(GENERIC_DIR_NATIVE)" \
- "$(GENERIC_DIR_NATIVE)\tk.decls" \
- "$(GENERIC_DIR_NATIVE)\tkInt.decls"
+ "$(GENERIC_DIR_NATIVE)\tcl.decls" \
+ "$(GENERIC_DIR_NATIVE)\tclInt.decls"
diff --git a/tcl/win/README b/tcl/win/README
index 15cea28f10f..d1c67d538ab 100644
--- a/tcl/win/README
+++ b/tcl/win/README
@@ -1,23 +1,104 @@
-Tk 8.4 for Windows
-
-Originally by Scott Stanton while at Sun Microsystems Labs
+Tcl 8.4 for Windows
RCS: @(#) $Id$
+1. Introduction
+---------------
+
This is the directory where you configure and compile the Windows
-version of Tk. This directory also contains source files for Tk
-that are specific to Microsoft Windows. The rest of this file
-contains information specific to the Windows version of Tk.
-
-Please see the README and win/README files that come with the
-associated Tcl release for an extensive set of pointers to
-documentation. You will need to obtain and compile the
-Tcl release before using the Tk source distrition.
-
-If you install the Tk sources next to the Tcl sources, then
-the Tk Makefiles (e.g., makefile.vc for VC++) will properly
-locate the necessary Tcl files. Otherwise you may need to
-edit makefile.vc and adjust the path to Tcl accordingly.
-
-Information about compiling for windows is maintained at:
- http://www.tcl.tk/doc/howto/compile.html
+version of Tcl. This directory also contains source files for Tcl
+that are specific to Microsoft Windows.
+
+The information in this file is maintained on the web at:
+ http://www.tcl.tk/doc/howto/compile.html#win
+
+The above URL includes a lengthy discussion of compiler macros necessary
+when compiling Tcl extensions that will be dynamically loaded.
+
+2. Compiling Tcl
+----------------
+
+In order to compile Tcl for Windows, you need the following:
+
+ Tcl 8.4 Source Distribution (plus any patches)
+
+ and
+
+ Visual C++ 5 or newer
+
+ or
+
+ Msys + Mingw 1.1
+
+ http://prdownloads.sourceforge.net/tcl/msys_mingw2.zip
+
+ This Msys + Mingw download is the minimal environment
+ needed to build Tcl/Tk under Windows. It includes a
+ shell environment and gcc. The release is designed to
+ make it as easy a possible to build Tcl/Tk. To install,
+ you just download the zip file and extract the files
+ into a directory. The README.TXT file describes how
+ to launch the msys shell, you then run the configure
+ script in the tcl/win directory.
+
+ or
+
+ Cygwin 1.1 or newer (See http://sources.redhat.com/cygwin)
+
+ Mingw 1.1 (http://prdownloads.sourceforge.net/mingw/MinGW-1.1.tar.gz)
+
+ Extract the contents of the archive file into /usr/local/mingw
+ and place /usr/local/mingw/bin at the front of your PATH env var
+ before running the configure script in the tcl/win directory.
+
+
+In practice, this release is built with Visual C++ 6.0 and the TEA
+Makefile.
+
+If you are building with Visual C++, in the "win" subdirectory of the
+source release, you will find "makefile.vc". This is the makefile for
+the Visual C++ compiler and uses the stock NMAKE tool. Detailed
+directions for using it, are in the comments of "makefile.vc". A quick
+example would be:
+ C:\tcl_source\win\>nmake -f makefile.vc
+
+There is also a Developer Studio workspace and project file, too, if you
+would like to use them.
+
+If you are building with Msys or Cygwin, you can use the configure script
+that lives in the win subdirectory. The Msys or Cygwin based configure/build
+process works just like the UNIX one, so you will want to refer to
+../unix/README for available configure options. An error will be
+generated by the configure script if you try to compile Tcl with
+the Cygwin version of gcc instead of the Mingw version. Check your
+PATH if you get this error. Be aware that gcc will generate
+lots of compile time warnings when building Tcl. Warnings are
+not errors, so please don't file a bug report about them.
+
+In order to use the binaries generated by these makefiles, you will
+need to place the Tcl script library files someplace where Tcl can
+find them. Tcl looks in one of following places for the library files:
+
+ 1) The path specified in the environment variable "TCL_LIBRARY".
+
+ 2) Relative to the directory containing the current .exe.
+ Tcl will look for a directory "..\lib\tcl8.4" relative to the
+ directory containing the currently running .exe.
+
+Note that in order to run tclsh84.exe, you must ensure that tcl84.dll
+and tclpip84.dll are on your path, in the system directory, or in the
+directory containing tclsh84.exe.
+
+Note: Tcl no longer provides support for Win32s.
+
+3. Test suite
+-------------
+
+This distribution contains an extensive test suite for Tcl. Some of
+the tests are timing dependent and will fail from time to time. If a
+test is failing consistently, please send us a bug report with as much
+detail as you can manage. Please use the online database at
+ http://tcl.sourceforge.net/
+
+In order to run the test suite, you build the "test" target using the
+appropriate makefile for your compiler.
diff --git a/tcl/win/buildall.vc.bat b/tcl/win/buildall.vc.bat
index 4b6a820e9b9..2e5d04ed7d1 100644
--- a/tcl/win/buildall.vc.bat
+++ b/tcl/win/buildall.vc.bat
@@ -12,19 +12,18 @@ echo.
if "%MSVCDir%" == "" call C:\dev\devstudio60\vc98\bin\vcvars32.bat
set INSTALLDIR=C:\progra~1\tcl
-set TCLDIR=..\..\tcl_head
nmake -nologo -f makefile.vc release winhelp OPTS=none
if errorlevel 1 goto error
-nmake -nologo -f makefile.vc release OPTS=static,linkexten
+nmake -nologo -f makefile.vc release OPTS=static
if errorlevel 1 goto error
-nmake -nologo -f makefile.vc core OPTS=static,msvcrt
+nmake -nologo -f makefile.vc core dlls OPTS=static,msvcrt
if errorlevel 1 goto error
nmake -nologo -f makefile.vc core OPTS=static,threads
if errorlevel 1 goto error
-nmake -nologo -f makefile.vc core OPTS=static,msvcrt,threads
+nmake -nologo -f makefile.vc core dlls OPTS=static,msvcrt,threads
if errorlevel 1 goto error
-nmake -nologo -f makefile.vc release OPTS=threads
+nmake -nologo -f makefile.vc shell OPTS=threads
if errorlevel 1 goto error
goto end
diff --git a/tcl/win/configure b/tcl/win/configure
index 6ecdf3bc9a2..e1d77356b04 100755
--- a/tcl/win/configure
+++ b/tcl/win/configure
@@ -20,7 +20,7 @@ ac_help="$ac_help
ac_help="$ac_help
--enable-symbols build with debugging symbols [--disable-symbols]"
ac_help="$ac_help
- --with-tcl=DIR use Tcl 8.4 binaries from DIR"
+ --enable-memdebug build with memory debugging [--disable-memdebug]"
# Initialize some variables set by options.
# The variables have the same names as the options, with
@@ -461,7 +461,7 @@ echo > confdefs.h
# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=../generic/tk.h
+ac_unique_file=../generic/tcl.h
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
@@ -533,11 +533,23 @@ fi
-TK_VERSION=8.4
-TK_MAJOR_VERSION=8
-TK_MINOR_VERSION=4
-TK_PATCH_LEVEL=".0"
-VER=$TK_MAJOR_VERSION$TK_MINOR_VERSION
+TCL_VERSION=8.4
+TCL_MAJOR_VERSION=8
+TCL_MINOR_VERSION=4
+TCL_PATCH_LEVEL=".0"
+VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
+
+TCL_DDE_VERSION=1.2
+TCL_DDE_MAJOR_VERSION=1
+TCL_DDE_MINOR_VERSION=2
+TCL_DDE_PATCH_LEVEL=""
+DDEVER=$TCL_DDE_MAJOR_VERSION$TCL_DDE_MINOR_VERSION
+
+TCL_REG_VERSION=1.0
+TCL_REG_MAJOR_VERSION=1
+TCL_REG_MINOR_VERSION=0
+TCL_REG_PATCH_LEVEL=""
+REGVER=$TCL_REG_MAJOR_VERSION$TCL_REG_MINOR_VERSION
#------------------------------------------------------------------------
# Handle the --prefix=... option
@@ -549,7 +561,7 @@ fi
if test "${exec_prefix}" = "NONE"; then
exec_prefix=$prefix
fi
-# libdir must be a fully qualified path and (not ${exec_prefix}/lib)
+# libdir must be a fully qualified path (not ${exec_prefix}/lib)
eval libdir="$libdir"
#------------------------------------------------------------------------
@@ -565,7 +577,7 @@ fi
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:569: checking for $ac_word" >&5
+echo "configure:581: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -595,7 +607,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:599: checking for $ac_word" >&5
+echo "configure:611: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -646,7 +658,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:650: checking for $ac_word" >&5
+echo "configure:662: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -678,7 +690,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:682: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:694: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -689,12 +701,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 693 "configure"
+#line 705 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -720,12 +732,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:724: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:736: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:729: checking whether we are using GNU C" >&5
+echo "configure:741: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -734,7 +746,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:738: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -753,7 +765,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:757: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:769: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -791,15 +803,12 @@ fi
# autoconf 2.50. You can also just set
# the CC, AR, RANLIB, and RC environment
# variables if you want to cross compile.
-#AC_CHECK_TOOL(AR, ar, :)
-#AC_CHECK_TOOL(RANLIB, ranlib, :)
-#AC_CHECK_TOOL(RC, windres, :)
if test "${GCC}" = "yes" ; then
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:803: checking for $ac_word" >&5
+echo "configure:812: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -828,7 +837,7 @@ fi
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:832: checking for $ac_word" >&5
+echo "configure:841: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -857,7 +866,7 @@ fi
# Extract the first word of "windres", so it can be a program name with args.
set dummy windres; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:861: checking for $ac_word" >&5
+echo "configure:870: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -890,7 +899,7 @@ fi
#--------------------------------------------------------------------
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:894: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:903: checking whether ${MAKE-make} sets \${MAKE}" >&5
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -918,16 +927,16 @@ fi
#--------------------------------------------------------------------
-# These two macros perform additinal compiler test.
+# Perform additinal compiler tests.
#--------------------------------------------------------------------
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:926: checking for Cygwin environment" >&5
+echo "configure:935: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 931 "configure"
+#line 940 "configure"
#include "confdefs.h"
int main() {
@@ -938,7 +947,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:942: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -955,18 +964,75 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
+if test "$ac_cv_cygwin" = "yes" ; then
+ { echo "configure: error: Compiling with the Cygwin version of gcc is not supported.
+ Use the Mingw version of gcc from www.mingw.org instead." 1>&2; exit 1; }
+fi
+
+
+echo $ac_n "checking for SEH support in compiler""... $ac_c" 1>&6
+echo "configure:975: checking for SEH support in compiler" >&5
+if eval "test \"`echo '$''{'tcl_cv_seh'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ if test "$cross_compiling" = yes; then
+ tcl_cv_seh=no
+else
+ cat > conftest.$ac_ext <<EOF
+#line 983 "configure"
+#include "confdefs.h"
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+
+int main(int argc, char** argv) {
+ int a, b = 0;
+ __try {
+ a = 666 / b;
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER) {
+ return 0;
+ }
+ return 1;
+}
+
+EOF
+if { (eval echo configure:1002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ tcl_cv_seh=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ tcl_cv_seh=no
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$tcl_cv_seh" 1>&6
+if test "$tcl_cv_seh" = "no" ; then
+ cat >> confdefs.h <<\EOF
+#define HAVE_NO_SEH
+EOF
+
+fi
+
#--------------------------------------------------------------------
# Determines the correct binary file extension (.o, .obj, .exe etc.)
#--------------------------------------------------------------------
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:964: checking for object suffix" >&5
+echo "configure:1030: checking for object suffix" >&5
if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
rm -f conftest*
echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1036: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -984,19 +1050,19 @@ OBJEXT=$ac_cv_objext
ac_objext=$ac_cv_objext
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:988: checking for mingw32 environment" >&5
+echo "configure:1054: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 993 "configure"
+#line 1059 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:1000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1066: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -1015,7 +1081,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1019: checking for executable suffix" >&5
+echo "configure:1085: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1025,7 +1091,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:1029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:1095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj) ;;
@@ -1052,7 +1118,7 @@ ac_exeext=$EXEEXT
echo $ac_n "checking for building with threads""... $ac_c" 1>&6
-echo "configure:1056: checking for building with threads" >&5
+echo "configure:1122: checking for building with threads" >&5
# Check whether --enable-threads or --disable-threads was given.
if test "${enable_threads+set}" = set; then
enableval="$enable_threads"
@@ -1078,12 +1144,12 @@ EOF
#--------------------------------------------------------------------
# The statements below define a collection of symbols related to
-# building libtk as a shared library instead of a static library.
+# building libtcl as a shared library instead of a static library.
#--------------------------------------------------------------------
echo $ac_n "checking how to build libraries""... $ac_c" 1>&6
-echo "configure:1087: checking how to build libraries" >&5
+echo "configure:1153: checking how to build libraries" >&5
# Check whether --enable-shared or --disable-shared was given.
if test "${enable_shared+set}" = set; then
enableval="$enable_shared"
@@ -1124,7 +1190,7 @@ EOF
# Step 0: Enable 64 bit support?
echo $ac_n "checking if 64bit support is requested""... $ac_c" 1>&6
-echo "configure:1128: checking if 64bit support is requested" >&5
+echo "configure:1194: checking if 64bit support is requested" >&5
# Check whether --enable-64bit or --disable-64bit was given.
if test "${enable_64bit+set}" = set; then
enableval="$enable_64bit"
@@ -1141,7 +1207,7 @@ fi
# Extract the first word of "cygpath", so it can be a program name with args.
set dummy cygpath; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1145: checking for $ac_word" >&5
+echo "configure:1211: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CYGPATH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1178,7 +1244,7 @@ fi
# set various compiler flags depending on whether we are using gcc or cl
echo $ac_n "checking compiler flags""... $ac_c" 1>&6
-echo "configure:1182: checking compiler flags" >&5
+echo "configure:1248: checking compiler flags" >&5
if test "${GCC}" = "yes" ; then
if test "$do64bit" = "yes" ; then
echo "configure: warning: "64bit mode not supported with GCC on Windows"" 1>&2
@@ -1186,7 +1252,7 @@ echo "configure:1182: checking compiler flags" >&5
SHLIB_LD=""
SHLIB_LD_LIBS=""
LIBS=""
- LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32"
+ LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32"
STLIB_LD='${AR} cr'
RC_OUT=-o
RC_TYPE=
@@ -1327,7 +1393,7 @@ echo "configure:1182: checking compiler flags" >&5
SHLIB_LD="${LINKBIN} -dll -nologo -incremental:no"
SHLIB_LD_LIBS="user32.lib advapi32.lib"
LIBS="user32.lib advapi32.lib"
- LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib"
+ LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib"
RC_OUT=-fo
RC_TYPE=-r
RC_INCLUDE=-i
@@ -1361,11 +1427,64 @@ echo "configure:1182: checking compiler flags" >&5
#--------------------------------------------------------------------
+# Set the default compiler switches based on the --enable-symbols
+# option. This macro depends on C flags, and should be called
+# after SC_CONFIG_CFLAGS macro is called.
+#--------------------------------------------------------------------
+
+
+ echo $ac_n "checking for build with symbols""... $ac_c" 1>&6
+echo "configure:1438: checking for build with symbols" >&5
+ # Check whether --enable-symbols or --disable-symbols was given.
+if test "${enable_symbols+set}" = set; then
+ enableval="$enable_symbols"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+
+ if test "$tcl_ok" = "yes"; then
+ CFLAGS_DEFAULT='$(CFLAGS_DEBUG)'
+ LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)'
+ DBGX=d
+ echo "$ac_t""yes" 1>&6
+ else
+ CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
+ LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
+ DBGX=""
+ echo "$ac_t""no" 1>&6
+ fi
+
+
+ echo $ac_n "checking for build with memory debugging""... $ac_c" 1>&6
+echo "configure:1462: checking for build with memory debugging" >&5
+ # Check whether --enable-memdebug or --disable-memdebug was given.
+if test "${enable_memdebug+set}" = set; then
+ enableval="$enable_memdebug"
+ tcl_ok=$enableval
+else
+ tcl_ok=no
+fi
+
+ if test "$tcl_ok" = "yes"; then
+ MEM_DEBUG_FLAGS=-DTCL_MEM_DEBUG
+ echo "$ac_t""yes" 1>&6
+ else
+ MEM_DEBUG_FLAGS=""
+ echo "$ac_t""no" 1>&6
+ fi
+
+
+
+TCL_DBGX=${DBGX}
+
+#--------------------------------------------------------------------
# man2tcl needs this so that it can use errno.h
#--------------------------------------------------------------------
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1369: checking how to run the C preprocessor" >&5
+echo "configure:1488: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1380,13 +1499,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 1384 "configure"
+#line 1503 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1390: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1509: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1397,13 +1516,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 1401 "configure"
+#line 1520 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1414,13 +1533,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 1418 "configure"
+#line 1537 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1424: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -1446,17 +1565,17 @@ echo "$ac_t""$CPP" 1>&6
ac_safe=`echo "errno.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for errno.h""... $ac_c" 1>&6
-echo "configure:1450: checking for errno.h" >&5
+echo "configure:1569: checking for errno.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1455 "configure"
+#line 1574 "configure"
#include "confdefs.h"
#include <errno.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1460: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1579: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -1480,215 +1599,67 @@ fi
-#--------------------------------------------------------------------
-# Set the default compiler switches based on the --enable-symbols
-# option. This macro depends on C flags, and should be called
-# after SC_CONFIG_CFLAGS macro is called.
-#--------------------------------------------------------------------
-
-
- echo $ac_n "checking for build with symbols""... $ac_c" 1>&6
-echo "configure:1492: checking for build with symbols" >&5
- # Check whether --enable-symbols or --disable-symbols was given.
-if test "${enable_symbols+set}" = set; then
- enableval="$enable_symbols"
- tcl_ok=$enableval
-else
- tcl_ok=no
-fi
-
-
- if test "$tcl_ok" = "yes"; then
- CFLAGS_DEFAULT='$(CFLAGS_DEBUG)'
- LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)'
- DBGX=d
- echo "$ac_t""yes" 1>&6
- else
- CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)'
- LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)'
- DBGX=""
- echo "$ac_t""no" 1>&6
- fi
-
-
-TK_DBGX=${DBGX}
-
-#--------------------------------------------------------------------
-# Locate and source the tclConfig.sh file.
-#--------------------------------------------------------------------
-
-
- echo $ac_n "checking the location of tclConfig.sh""... $ac_c" 1>&6
-echo "configure:1523: checking the location of tclConfig.sh" >&5
-
- if test -d ../../tcl8.4$TK_PATCH_LEVEL/win; then
- TCL_BIN_DIR_DEFAULT=../../tcl8.4$TK_PATCH_LEVEL/win
- else
- TCL_BIN_DIR_DEFAULT=../../tcl8.4/win
- fi
-
- # Check whether --with-tcl or --without-tcl was given.
-if test "${with_tcl+set}" = set; then
- withval="$with_tcl"
- TCL_BIN_DIR=$withval
-else
- TCL_BIN_DIR=`cd $TCL_BIN_DIR_DEFAULT; pwd`
-fi
-
- if test ! -d $TCL_BIN_DIR; then
- { echo "configure: error: Tcl directory $TCL_BIN_DIR does not exist" 1>&2; exit 1; }
- fi
- if test ! -f $TCL_BIN_DIR/tclConfig.sh; then
- { echo "configure: error: There is no tclConfig.sh in $TCL_BIN_DIR: perhaps you did not specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?" 1>&2; exit 1; }
- fi
- echo "$ac_t""$TCL_BIN_DIR/tclConfig.sh" 1>&6
-
-
- echo $ac_n "checking for existence of $TCL_BIN_DIR/tclConfig.sh""... $ac_c" 1>&6
-echo "configure:1549: checking for existence of $TCL_BIN_DIR/tclConfig.sh" >&5
-
- if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then
- echo "$ac_t""loading" 1>&6
- . $TCL_BIN_DIR/tclConfig.sh
- else
- echo "$ac_t""file not found" 1>&6
- fi
-
- #
- # If the TCL_BIN_DIR is the build directory (not the install directory),
- # then set the common variable name to the value of the build variables.
- # For example, the variable TCL_LIB_SPEC will be set to the value
- # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
- # instead of TCL_BUILD_LIB_SPEC since it will work with both an
- # installed and uninstalled version of Tcl.
- #
-
- if test -f $TCL_BIN_DIR/Makefile ; then
- TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC}
- TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC}
- TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH}
- fi
-
- #
- # eval is required to do the TCL_DBGX substitution
- #
-
- eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
- eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\""
- eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\""
-
- eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
- eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\""
- eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\""
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- echo $ac_n "checking for tclsh""... $ac_c" 1>&6
-echo "configure:1600: checking for tclsh" >&5
-
- if eval "test \"`echo '$''{'ac_cv_path_tclsh'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- search_path=`echo ${exec_prefix}/bin:${prefix}/bin:${TCL_BIN_DIR}:${TCL_BIN_DIR}/../bin:${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/tclsh[8-9]*.exe 2> /dev/null` \
- `ls -r $dir/tclsh* 2> /dev/null` ; do
- if test x"$ac_cv_path_tclsh" = x ; then
- if test -f "$j" ; then
- ac_cv_path_tclsh=$j
- break
- fi
- fi
- done
- done
-
-fi
-
-
- if test -f "$ac_cv_path_tclsh" ; then
- TCLSH_PROG=$ac_cv_path_tclsh
- echo "$ac_t""$TCLSH_PROG" 1>&6
- else
- { echo "configure: error: No tclsh found in PATH: $search_path" 1>&2; exit 1; }
- fi
-
-
-
#------------------------------------------------------------------------
-# tkConfig.sh refers to this by a different name
+# tclConfig.sh refers to this by a different name
#------------------------------------------------------------------------
-TK_SHARED_BUILD=${SHARED_BUILD}
+TCL_SHARED_BUILD=${SHARED_BUILD}
#--------------------------------------------------------------------
# Perform final evaluations of variables with possible substitutions.
#--------------------------------------------------------------------
-TK_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}"
-TK_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
-TK_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
+TCL_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}"
+TCL_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
+TCL_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
-eval "TK_SRC_DIR=`cd $srcdir/..; pwd`"
+eval "TCL_SRC_DIR=\"`cd $srcdir/..; pwd`\""
-eval "TK_DLL_FILE=tk$VER${DLLSUFFIX}"
-eval "TK_LIB_FILE=${LIBPREFIX}tk$VER${LIBSUFFIX}"
+eval "TCL_DLL_FILE=tcl${VER}${DLLSUFFIX}"
-eval "TK_STUB_LIB_FILE=${LIBPREFIX}tkstub${VER}${LIBSUFFIX}"
-# FIXME: All of this var junk needs to be done in tcl.m4 !!!!
-# I left out the other vars that also need to get defined here.
-# we also need to double check about including DBGX in lib names
-# and spaces in file or directory names for the eval
-eval "TK_STUB_LIB_FLAG=\"-ltkstub${VER}${TCL_DBGX}\""
-eval "TK_BUILD_STUB_LIB_SPEC=\"-L`pwd` ${TK_STUB_LIB_FLAG}\""
-
-eval "TCL_DLL_FILE=\"tcl$VER${DLLSUFFIX}\""
-eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl$VER${LIBSUFFIX}\""
+eval "TCL_LIB_FILE=${LIBPREFIX}tcl$VER${LIBSUFFIX}"
+# FIMXE: These variables decls are missing
+#TCL_LIB_FLAG
+#TCL_BUILD_LIB_SPEC
+#TCL_LIB_SPEC
eval "TCL_STUB_LIB_FILE=\"${LIBPREFIX}tclstub${VER}${LIBSUFFIX}\""
eval "TCL_STUB_LIB_FLAG=\"-ltclstub${VER}${TCL_DBGX}\""
eval "TCL_BUILD_STUB_LIB_SPEC=\"-L`pwd` ${TCL_STUB_LIB_FLAG}\""
+eval "TCL_STUB_LIB_SPEC=\"-L${libdir} ${TCL_STUB_LIB_FLAG}\""
+eval "TCL_BUILD_STUB_LIB_PATH=\"`pwd`/${TCL_STUB_LIB_FILE}\""
+eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""
+
+# Install time header dir can be set via --includedir
+eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
+
eval "DLLSUFFIX=${DLLSUFFIX}"
eval "LIBPREFIX=${LIBPREFIX}"
eval "LIBSUFFIX=${LIBSUFFIX}"
eval "EXESUFFIX=${EXESUFFIX}"
-CFG_TK_SHARED_LIB_SUFFIX=${TK_SHARED_LIB_SUFFIX}
-CFG_TK_UNSHARED_LIB_SUFFIX=${TK_UNSHARED_LIB_SUFFIX}
-CFG_TK_EXPORT_FILE_SUFFIX=${TK_EXPORT_FILE_SUFFIX}
+CFG_TCL_SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}
+CFG_TCL_UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}
+CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}
#--------------------------------------------------------------------
# Adjust the defines for how the resources are built depending
# on symbols and static vs. shared.
#--------------------------------------------------------------------
-if test "$SHARED_BUILD" = 0 -o "$TCL_NEEDS_EXP_FILE" = 0; then
+if test ${SHARED_BUILD} = 0 ; then
if test "${DBGX}" = "d"; then
RC_DEFINES="${RC_DEFINE} STATIC_BUILD ${RC_DEFINE} DEBUG"
else
RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
fi
- TK_RES=""
else
if test "${DBGX}" = "d"; then
RC_DEFINES="${RC_DEFINE} DEBUG"
else
RC_DEFINES=""
fi
- TK_RES='tk.$(RES)'
fi
@@ -1699,6 +1670,15 @@ fi
+# empty on win
+
+
+
+
+
+
+
+
@@ -1708,6 +1688,7 @@ fi
+# win/tcl.m4 doesn't set (CFLAGS)
@@ -1715,6 +1696,7 @@ fi
+# win/tcl.m4 doesn't set (LDFLAGS)
@@ -1742,6 +1724,7 @@ fi
+# empty on win, but needs sub'ing
@@ -1752,6 +1735,8 @@ fi
+# win only
+
@@ -1759,7 +1744,6 @@ fi
-# undefined at this point for win
@@ -1881,7 +1865,7 @@ done
ac_given_srcdir=$srcdir
-trap 'rm -fr `echo "Makefile tkConfig.sh" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile tclConfig.sh tcl.hpj" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -1926,48 +1910,33 @@ s%@DL_LIBS@%$DL_LIBS%g
s%@CFLAGS_DEBUG@%$CFLAGS_DEBUG%g
s%@CFLAGS_OPTIMIZE@%$CFLAGS_OPTIMIZE%g
s%@CFLAGS_WARNING@%$CFLAGS_WARNING%g
+s%@MEM_DEBUG_FLAGS@%$MEM_DEBUG_FLAGS%g
s%@CPP@%$CPP%g
s%@MAN2TCLFLAGS@%$MAN2TCLFLAGS%g
s%@TCL_VERSION@%$TCL_VERSION%g
-s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
-s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_MAJOR_VERSION@%$TCL_MAJOR_VERSION%g
+s%@TCL_MINOR_VERSION@%$TCL_MINOR_VERSION%g
+s%@TCL_PATCH_LEVEL@%$TCL_PATCH_LEVEL%g
s%@TCL_LIB_FILE@%$TCL_LIB_FILE%g
s%@TCL_LIB_FLAG@%$TCL_LIB_FLAG%g
s%@TCL_LIB_SPEC@%$TCL_LIB_SPEC%g
s%@TCL_STUB_LIB_FILE@%$TCL_STUB_LIB_FILE%g
s%@TCL_STUB_LIB_FLAG@%$TCL_STUB_LIB_FLAG%g
s%@TCL_STUB_LIB_SPEC@%$TCL_STUB_LIB_SPEC%g
-s%@TCLSH_PROG@%$TCLSH_PROG%g
-s%@TK_VERSION@%$TK_VERSION%g
-s%@TK_MAJOR_VERSION@%$TK_MAJOR_VERSION%g
-s%@TK_MINOR_VERSION@%$TK_MINOR_VERSION%g
-s%@TK_PATCH_LEVEL@%$TK_PATCH_LEVEL%g
-s%@TK_DBGX@%$TK_DBGX%g
-s%@TK_LIB_FILE@%$TK_LIB_FILE%g
-s%@TK_DLL_FILE@%$TK_DLL_FILE%g
-s%@TK_STUB_LIB_FILE@%$TK_STUB_LIB_FILE%g
-s%@TK_STUB_LIB_FLAG@%$TK_STUB_LIB_FLAG%g
-s%@TK_BUILD_STUB_LIB_SPEC@%$TK_BUILD_STUB_LIB_SPEC%g
-s%@TK_SRC_DIR@%$TK_SRC_DIR%g
-s%@TK_BIN_DIR@%$TK_BIN_DIR%g
-s%@TCL_MAJOR_VERSION@%$TCL_MAJOR_VERSION%g
-s%@TCL_MINOR_VERSION@%$TCL_MINOR_VERSION%g
-s%@TCL_PATCH_LEVEL@%$TCL_PATCH_LEVEL%g
-s%@TCL_DLL_FILE@%$TCL_DLL_FILE%g
+s%@TCL_STUB_LIB_PATH@%$TCL_STUB_LIB_PATH%g
+s%@TCL_INCLUDE_SPEC@%$TCL_INCLUDE_SPEC%g
s%@TCL_BUILD_STUB_LIB_SPEC@%$TCL_BUILD_STUB_LIB_SPEC%g
+s%@TCL_BUILD_STUB_LIB_PATH@%$TCL_BUILD_STUB_LIB_PATH%g
+s%@TCL_DLL_FILE@%$TCL_DLL_FILE%g
+s%@TCL_SRC_DIR@%$TCL_SRC_DIR%g
+s%@TCL_BIN_DIR@%$TCL_BIN_DIR%g
s%@TCL_DBGX@%$TCL_DBGX%g
-s%@CFG_TK_SHARED_LIB_SUFFIX@%$CFG_TK_SHARED_LIB_SUFFIX%g
-s%@CFG_TK_UNSHARED_LIB_SUFFIX@%$CFG_TK_UNSHARED_LIB_SUFFIX%g
-s%@CFG_TK_EXPORT_FILE_SUFFIX@%$CFG_TK_EXPORT_FILE_SUFFIX%g
-s%@TK_SHARED_BUILD@%$TK_SHARED_BUILD%g
-s%@DEPARG@%$DEPARG%g
+s%@CFG_TCL_SHARED_LIB_SUFFIX@%$CFG_TCL_SHARED_LIB_SUFFIX%g
+s%@CFG_TCL_UNSHARED_LIB_SUFFIX@%$CFG_TCL_UNSHARED_LIB_SUFFIX%g
+s%@CFG_TCL_EXPORT_FILE_SUFFIX@%$CFG_TCL_EXPORT_FILE_SUFFIX%g
s%@CFLAGS_DEFAULT@%$CFLAGS_DEFAULT%g
s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
-s%@STLIB_LD@%$STLIB_LD%g
-s%@SHLIB_LD@%$SHLIB_LD%g
-s%@SHLIB_LD_LIBS@%$SHLIB_LD_LIBS%g
-s%@SHLIB_CFLAGS@%$SHLIB_CFLAGS%g
-s%@SHLIB_SUFFIX@%$SHLIB_SUFFIX%g
+s%@DEPARG@%$DEPARG%g
s%@CC_OBJNAME@%$CC_OBJNAME%g
s%@CC_EXENAME@%$CC_EXENAME%g
s%@LDFLAGS_DEFAULT@%$LDFLAGS_DEFAULT%g
@@ -1975,13 +1944,12 @@ s%@LDFLAGS_DEBUG@%$LDFLAGS_DEBUG%g
s%@LDFLAGS_OPTIMIZE@%$LDFLAGS_OPTIMIZE%g
s%@LDFLAGS_CONSOLE@%$LDFLAGS_CONSOLE%g
s%@LDFLAGS_WINDOW@%$LDFLAGS_WINDOW%g
-s%@RC_OUT@%$RC_OUT%g
-s%@RC_TYPE@%$RC_TYPE%g
-s%@RC_INCLUDE@%$RC_INCLUDE%g
-s%@RC_DEFINE@%$RC_DEFINE%g
-s%@RC_DEFINES@%$RC_DEFINES%g
-s%@TK_RES@%$TK_RES%g
-s%@RES@%$RES%g
+s%@STLIB_LD@%$STLIB_LD%g
+s%@SHLIB_LD@%$SHLIB_LD%g
+s%@SHLIB_LD_LIBS@%$SHLIB_LD_LIBS%g
+s%@SHLIB_CFLAGS@%$SHLIB_CFLAGS%g
+s%@SHLIB_SUFFIX@%$SHLIB_SUFFIX%g
+s%@TCL_SHARED_BUILD@%$TCL_SHARED_BUILD%g
s%@LIBS_GUI@%$LIBS_GUI%g
s%@DLLSUFFIX@%$DLLSUFFIX%g
s%@LIBPREFIX@%$LIBPREFIX%g
@@ -1992,14 +1960,28 @@ s%@MAKE_LIB@%$MAKE_LIB%g
s%@POST_MAKE_LIB@%$POST_MAKE_LIB%g
s%@MAKE_DLL@%$MAKE_DLL%g
s%@MAKE_EXE@%$MAKE_EXE%g
-s%@TK_BUILD_LIB_SPEC@%$TK_BUILD_LIB_SPEC%g
-s%@TK_CC_SEARCH_FLAGS@%$TK_CC_SEARCH_FLAGS%g
-s%@TK_LD_SEARCH_FLAGS@%$TK_LD_SEARCH_FLAGS%g
-s%@TK_LIB_FLAG@%$TK_LIB_FLAG%g
-s%@TK_LIB_SPEC@%$TK_LIB_SPEC%g
-s%@TK_STUB_LIB_SPEC@%$TK_STUB_LIB_SPEC%g
-s%@TK_BUILD_STUB_LIB_PATH@%$TK_BUILD_STUB_LIB_PATH%g
-s%@TK_STUB_LIB_PATH@%$TK_STUB_LIB_PATH%g
+s%@TCL_BUILD_LIB_SPEC@%$TCL_BUILD_LIB_SPEC%g
+s%@TCL_LD_SEARCH_FLAGS@%$TCL_LD_SEARCH_FLAGS%g
+s%@TCL_NEEDS_EXP_FILE@%$TCL_NEEDS_EXP_FILE%g
+s%@TCL_BUILD_EXP_FILE@%$TCL_BUILD_EXP_FILE%g
+s%@TCL_EXP_FILE@%$TCL_EXP_FILE%g
+s%@LIBOBJS@%$LIBOBJS%g
+s%@TCL_LIB_VERSIONS_OK@%$TCL_LIB_VERSIONS_OK%g
+s%@TCL_PACKAGE_PATH@%$TCL_PACKAGE_PATH%g
+s%@TCL_DDE_VERSION@%$TCL_DDE_VERSION%g
+s%@TCL_DDE_MAJOR_VERSION@%$TCL_DDE_MAJOR_VERSION%g
+s%@TCL_DDE_MINOR_VERSION@%$TCL_DDE_MINOR_VERSION%g
+s%@TCL_DDE_PATCH_LEVEL@%$TCL_DDE_PATCH_LEVEL%g
+s%@TCL_REG_VERSION@%$TCL_REG_VERSION%g
+s%@TCL_REG_MAJOR_VERSION@%$TCL_REG_MAJOR_VERSION%g
+s%@TCL_REG_MINOR_VERSION@%$TCL_REG_MINOR_VERSION%g
+s%@TCL_REG_PATCH_LEVEL@%$TCL_REG_PATCH_LEVEL%g
+s%@RC_OUT@%$RC_OUT%g
+s%@RC_TYPE@%$RC_TYPE%g
+s%@RC_INCLUDE@%$RC_INCLUDE%g
+s%@RC_DEFINE@%$RC_DEFINE%g
+s%@RC_DEFINES@%$RC_DEFINES%g
+s%@RES@%$RES%g
CEOF
EOF
@@ -2041,7 +2023,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
-CONFIG_FILES=\${CONFIG_FILES-"Makefile tkConfig.sh"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile tclConfig.sh tcl.hpj"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/tcl/win/configure.in b/tcl/win/configure.in
index 619cfc4c014..c700e52736f 100755
--- a/tcl/win/configure.in
+++ b/tcl/win/configure.in
@@ -1,18 +1,30 @@
#! /bin/bash -norc
# This file is an input file used by the GNU "autoconf" program to
-# generate the file "configure", which is run during Tk installation
+# generate the file "configure", which is run during Tcl installation
# to configure the system for the local environment.
#
# RCS: @(#) $Id$
-AC_INIT(../generic/tk.h)
+AC_INIT(../generic/tcl.h)
AC_PREREQ(2.13)
-TK_VERSION=8.4
-TK_MAJOR_VERSION=8
-TK_MINOR_VERSION=4
-TK_PATCH_LEVEL=".0"
-VER=$TK_MAJOR_VERSION$TK_MINOR_VERSION
+TCL_VERSION=8.4
+TCL_MAJOR_VERSION=8
+TCL_MINOR_VERSION=4
+TCL_PATCH_LEVEL=".0"
+VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSION
+
+TCL_DDE_VERSION=1.2
+TCL_DDE_MAJOR_VERSION=1
+TCL_DDE_MINOR_VERSION=2
+TCL_DDE_PATCH_LEVEL=""
+DDEVER=$TCL_DDE_MAJOR_VERSION$TCL_DDE_MINOR_VERSION
+
+TCL_REG_VERSION=1.0
+TCL_REG_MAJOR_VERSION=1
+TCL_REG_MINOR_VERSION=0
+TCL_REG_PATCH_LEVEL=""
+REGVER=$TCL_REG_MAJOR_VERSION$TCL_REG_MINOR_VERSION
#------------------------------------------------------------------------
# Handle the --prefix=... option
@@ -24,7 +36,7 @@ fi
if test "${exec_prefix}" = "NONE"; then
exec_prefix=$prefix
fi
-# libdir must be a fully qualified path and (not ${exec_prefix}/lib)
+# libdir must be a fully qualified path (not ${exec_prefix}/lib)
eval libdir="$libdir"
#------------------------------------------------------------------------
@@ -45,9 +57,9 @@ AC_PROG_CC
# autoconf 2.50. You can also just set
# the CC, AR, RANLIB, and RC environment
# variables if you want to cross compile.
-#AC_CHECK_TOOL(AR, ar, :)
-#AC_CHECK_TOOL(RANLIB, ranlib, :)
-#AC_CHECK_TOOL(RC, windres, :)
+dnl AC_CHECK_TOOL(AR, ar, :)
+dnl AC_CHECK_TOOL(RANLIB, ranlib, :)
+dnl AC_CHECK_TOOL(RC, windres, :)
if test "${GCC}" = "yes" ; then
AC_CHECK_PROG(AR, ar, ar)
@@ -62,11 +74,44 @@ fi
AC_PROG_MAKE_SET
#--------------------------------------------------------------------
-# These two macros perform additinal compiler test.
+# Perform additinal compiler tests.
#--------------------------------------------------------------------
AC_CYGWIN
+if test "$ac_cv_cygwin" = "yes" ; then
+ AC_MSG_ERROR([Compiling with the Cygwin version of gcc is not supported.
+ Use the Mingw version of gcc from www.mingw.org instead.])
+fi
+
+
+AC_CACHE_CHECK(for SEH support in compiler,
+ tcl_cv_seh,
+AC_TRY_RUN([
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#undef WIN32_LEAN_AND_MEAN
+
+int main(int argc, char** argv) {
+ int a, b = 0;
+ __try {
+ a = 666 / b;
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER) {
+ return 0;
+ }
+ return 1;
+}
+],
+ tcl_cv_seh=yes,
+ tcl_cv_seh=no,
+ tcl_cv_seh=no)
+)
+if test "$tcl_cv_seh" = "no" ; then
+ AC_DEFINE(HAVE_NO_SEH,,
+ [Defined when mingw does not support SEH])
+fi
+
#--------------------------------------------------------------------
# Determines the correct binary file extension (.o, .obj, .exe etc.)
#--------------------------------------------------------------------
@@ -82,7 +127,7 @@ SC_ENABLE_THREADS
#--------------------------------------------------------------------
# The statements below define a collection of symbols related to
-# building libtk as a shared library instead of a static library.
+# building libtcl as a shared library instead of a static library.
#--------------------------------------------------------------------
SC_ENABLE_SHARED
@@ -96,136 +141,121 @@ SC_ENABLE_SHARED
SC_CONFIG_CFLAGS
#--------------------------------------------------------------------
-# man2tcl needs this so that it can use errno.h
-#--------------------------------------------------------------------
-
-AC_CHECK_HEADER(errno.h, , MAN2TCLFLAGS="-DNO_ERRNO_H")
-AC_SUBST(MAN2TCLFLAGS)
-
-#--------------------------------------------------------------------
# Set the default compiler switches based on the --enable-symbols
# option. This macro depends on C flags, and should be called
# after SC_CONFIG_CFLAGS macro is called.
#--------------------------------------------------------------------
SC_ENABLE_SYMBOLS
+SC_ENABLE_MEMDEBUG
-TK_DBGX=${DBGX}
+TCL_DBGX=${DBGX}
#--------------------------------------------------------------------
-# Locate and source the tclConfig.sh file.
+# man2tcl needs this so that it can use errno.h
#--------------------------------------------------------------------
-SC_PATH_TCLCONFIG($TK_PATCH_LEVEL)
-SC_LOAD_TCLCONFIG
-
-SC_PROG_TCLSH
+AC_CHECK_HEADER(errno.h, , MAN2TCLFLAGS="-DNO_ERRNO_H")
+AC_SUBST(MAN2TCLFLAGS)
#------------------------------------------------------------------------
-# tkConfig.sh refers to this by a different name
+# tclConfig.sh refers to this by a different name
#------------------------------------------------------------------------
-TK_SHARED_BUILD=${SHARED_BUILD}
+TCL_SHARED_BUILD=${SHARED_BUILD}
#--------------------------------------------------------------------
# Perform final evaluations of variables with possible substitutions.
#--------------------------------------------------------------------
-TK_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}"
-TK_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
-TK_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
-
-eval "TK_SRC_DIR=`cd $srcdir/..; pwd`"
+TCL_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}"
+TCL_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
+TCL_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
-eval "TK_DLL_FILE=tk$VER${DLLSUFFIX}"
-eval "TK_LIB_FILE=${LIBPREFIX}tk$VER${LIBSUFFIX}"
+eval "TCL_SRC_DIR=\"`cd $srcdir/..; pwd`\""
-eval "TK_STUB_LIB_FILE=${LIBPREFIX}tkstub${VER}${LIBSUFFIX}"
-# FIXME: All of this var junk needs to be done in tcl.m4 !!!!
-# I left out the other vars that also need to get defined here.
-# we also need to double check about including DBGX in lib names
-# and spaces in file or directory names for the eval
-eval "TK_STUB_LIB_FLAG=\"-ltkstub${VER}${TCL_DBGX}\""
-eval "TK_BUILD_STUB_LIB_SPEC=\"-L`pwd` ${TK_STUB_LIB_FLAG}\""
+eval "TCL_DLL_FILE=tcl${VER}${DLLSUFFIX}"
-eval "TCL_DLL_FILE=\"tcl$VER${DLLSUFFIX}\""
-eval "TCL_LIB_FILE=\"${LIBPREFIX}tcl$VER${LIBSUFFIX}\""
+eval "TCL_LIB_FILE=${LIBPREFIX}tcl$VER${LIBSUFFIX}"
+# FIMXE: These variables decls are missing
+#TCL_LIB_FLAG
+#TCL_BUILD_LIB_SPEC
+#TCL_LIB_SPEC
eval "TCL_STUB_LIB_FILE=\"${LIBPREFIX}tclstub${VER}${LIBSUFFIX}\""
eval "TCL_STUB_LIB_FLAG=\"-ltclstub${VER}${TCL_DBGX}\""
eval "TCL_BUILD_STUB_LIB_SPEC=\"-L`pwd` ${TCL_STUB_LIB_FLAG}\""
+eval "TCL_STUB_LIB_SPEC=\"-L${libdir} ${TCL_STUB_LIB_FLAG}\""
+eval "TCL_BUILD_STUB_LIB_PATH=\"`pwd`/${TCL_STUB_LIB_FILE}\""
+eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""
+
+# Install time header dir can be set via --includedir
+eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
+
eval "DLLSUFFIX=${DLLSUFFIX}"
eval "LIBPREFIX=${LIBPREFIX}"
eval "LIBSUFFIX=${LIBSUFFIX}"
eval "EXESUFFIX=${EXESUFFIX}"
-CFG_TK_SHARED_LIB_SUFFIX=${TK_SHARED_LIB_SUFFIX}
-CFG_TK_UNSHARED_LIB_SUFFIX=${TK_UNSHARED_LIB_SUFFIX}
-CFG_TK_EXPORT_FILE_SUFFIX=${TK_EXPORT_FILE_SUFFIX}
+CFG_TCL_SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}
+CFG_TCL_UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}
+CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}
#--------------------------------------------------------------------
# Adjust the defines for how the resources are built depending
# on symbols and static vs. shared.
#--------------------------------------------------------------------
-if test "$SHARED_BUILD" = 0 -o "$TCL_NEEDS_EXP_FILE" = 0; then
+if test ${SHARED_BUILD} = 0 ; then
if test "${DBGX}" = "d"; then
RC_DEFINES="${RC_DEFINE} STATIC_BUILD ${RC_DEFINE} DEBUG"
else
RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
fi
- TK_RES=""
else
if test "${DBGX}" = "d"; then
RC_DEFINES="${RC_DEFINE} DEBUG"
else
RC_DEFINES=""
fi
- TK_RES='tk.$(RES)'
fi
-AC_SUBST(TK_VERSION)
-AC_SUBST(TK_MAJOR_VERSION)
-AC_SUBST(TK_MINOR_VERSION)
-AC_SUBST(TK_PATCH_LEVEL)
-AC_SUBST(TK_DBGX)
-AC_SUBST(TK_LIB_FILE)
-AC_SUBST(TK_DLL_FILE)
-AC_SUBST(TK_STUB_LIB_FILE)
-AC_SUBST(TK_STUB_LIB_FLAG)
-AC_SUBST(TK_BUILD_STUB_LIB_SPEC)
-AC_SUBST(TK_SRC_DIR)
-AC_SUBST(TK_BIN_DIR)
AC_SUBST(TCL_VERSION)
AC_SUBST(TCL_MAJOR_VERSION)
AC_SUBST(TCL_MINOR_VERSION)
AC_SUBST(TCL_PATCH_LEVEL)
+
AC_SUBST(TCL_LIB_FILE)
-AC_SUBST(TCL_DLL_FILE)
+AC_SUBST(TCL_LIB_FLAG)
+# empty on win
+AC_SUBST(TCL_LIB_SPEC)
AC_SUBST(TCL_STUB_LIB_FILE)
AC_SUBST(TCL_STUB_LIB_FLAG)
+AC_SUBST(TCL_STUB_LIB_SPEC)
+AC_SUBST(TCL_STUB_LIB_PATH)
+AC_SUBST(TCL_INCLUDE_SPEC)
AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
+AC_SUBST(TCL_BUILD_STUB_LIB_PATH)
+AC_SUBST(TCL_DLL_FILE)
+
AC_SUBST(TCL_SRC_DIR)
AC_SUBST(TCL_BIN_DIR)
AC_SUBST(TCL_DBGX)
-AC_SUBST(CFG_TK_SHARED_LIB_SUFFIX)
-AC_SUBST(CFG_TK_UNSHARED_LIB_SUFFIX)
-AC_SUBST(CFG_TK_EXPORT_FILE_SUFFIX)
-AC_SUBST(TK_SHARED_BUILD)
+AC_SUBST(CFG_TCL_SHARED_LIB_SUFFIX)
+AC_SUBST(CFG_TCL_UNSHARED_LIB_SUFFIX)
+AC_SUBST(CFG_TCL_EXPORT_FILE_SUFFIX)
-AC_SUBST(CYGPATH)
-AC_SUBST(DEPARG)
+# win/tcl.m4 doesn't set (CFLAGS)
AC_SUBST(CFLAGS_DEFAULT)
AC_SUBST(EXTRA_CFLAGS)
-AC_SUBST(STLIB_LD)
-AC_SUBST(SHLIB_LD)
-AC_SUBST(SHLIB_LD_LIBS)
-AC_SUBST(SHLIB_CFLAGS)
-AC_SUBST(SHLIB_SUFFIX)
+AC_SUBST(CYGPATH)
+AC_SUBST(DEPARG)
AC_SUBST(CC_OBJNAME)
AC_SUBST(CC_EXENAME)
+
+# win/tcl.m4 doesn't set (LDFLAGS)
AC_SUBST(LDFLAGS_DEFAULT)
AC_SUBST(LDFLAGS_DEBUG)
AC_SUBST(LDFLAGS_OPTIMIZE)
@@ -233,14 +263,14 @@ AC_SUBST(LDFLAGS_CONSOLE)
AC_SUBST(LDFLAGS_WINDOW)
AC_SUBST(AR)
AC_SUBST(RANLIB)
-AC_SUBST(RC)
-AC_SUBST(RC_OUT)
-AC_SUBST(RC_TYPE)
-AC_SUBST(RC_INCLUDE)
-AC_SUBST(RC_DEFINE)
-AC_SUBST(RC_DEFINES)
-AC_SUBST(TK_RES)
-AC_SUBST(RES)
+
+AC_SUBST(STLIB_LD)
+AC_SUBST(SHLIB_LD)
+AC_SUBST(SHLIB_LD_LIBS)
+AC_SUBST(SHLIB_CFLAGS)
+AC_SUBST(SHLIB_SUFFIX)
+AC_SUBST(TCL_SHARED_BUILD)
+
AC_SUBST(LIBS)
AC_SUBST(LIBS_GUI)
AC_SUBST(DLLSUFFIX)
@@ -253,14 +283,33 @@ AC_SUBST(POST_MAKE_LIB)
AC_SUBST(MAKE_DLL)
AC_SUBST(MAKE_EXE)
-# undefined at this point for win
-AC_SUBST(TK_BUILD_LIB_SPEC)
-AC_SUBST(TK_CC_SEARCH_FLAGS)
-AC_SUBST(TK_LD_SEARCH_FLAGS)
-AC_SUBST(TK_LIB_FLAG)
-AC_SUBST(TK_LIB_SPEC)
-AC_SUBST(TK_STUB_LIB_SPEC)
-AC_SUBST(TK_BUILD_STUB_LIB_PATH)
-AC_SUBST(TK_STUB_LIB_PATH)
-
-AC_OUTPUT(Makefile tkConfig.sh)
+# empty on win, but needs sub'ing
+AC_SUBST(TCL_BUILD_LIB_SPEC)
+AC_SUBST(TCL_LD_SEARCH_FLAGS)
+AC_SUBST(TCL_NEEDS_EXP_FILE)
+AC_SUBST(TCL_BUILD_EXP_FILE)
+AC_SUBST(TCL_EXP_FILE)
+AC_SUBST(DL_LIBS)
+AC_SUBST(LIBOBJS)
+AC_SUBST(TCL_LIB_VERSIONS_OK)
+AC_SUBST(TCL_PACKAGE_PATH)
+
+# win only
+AC_SUBST(TCL_DDE_VERSION)
+AC_SUBST(TCL_DDE_MAJOR_VERSION)
+AC_SUBST(TCL_DDE_MINOR_VERSION)
+AC_SUBST(TCL_DDE_PATCH_LEVEL)
+AC_SUBST(TCL_REG_VERSION)
+AC_SUBST(TCL_REG_MAJOR_VERSION)
+AC_SUBST(TCL_REG_MINOR_VERSION)
+AC_SUBST(TCL_REG_PATCH_LEVEL)
+
+AC_SUBST(RC)
+AC_SUBST(RC_OUT)
+AC_SUBST(RC_TYPE)
+AC_SUBST(RC_INCLUDE)
+AC_SUBST(RC_DEFINE)
+AC_SUBST(RC_DEFINES)
+AC_SUBST(RES)
+
+AC_OUTPUT(Makefile tclConfig.sh tcl.hpj)
diff --git a/tcl/win/license.terms b/tcl/win/license.terms
index 03ca6fcb319..f1dcaa5245c 100644
--- a/tcl/win/license.terms
+++ b/tcl/win/license.terms
@@ -1,7 +1,8 @@
This software is copyrighted by the Regents of the University of
-California, Sun Microsystems, Inc., and other parties. The following
-terms apply to all files associated with the software unless explicitly
-disclaimed in individual files.
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
@@ -36,4 +37,4 @@ Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
-terms specified in this license.
+terms specified in this license.
diff --git a/tcl/win/makefile.bc b/tcl/win/makefile.bc
index d26d00b448c..a352f707406 100644
--- a/tcl/win/makefile.bc
+++ b/tcl/win/makefile.bc
@@ -1,19 +1,51 @@
#
# Makefile for Borland C++ 5.5 (or C++ Builder 5), adapted from the makefile
-# for Visual C++ that came with tk 8.3.3
-#
-# Some "not so obvious" details in this makefile are preceded by a comment
-# "maintenance hint", which tries to explain what's going on. Better to
-# leave those in place.
-# Helmut Giese, July 2002
+# for Visual C++ that came with tcl 8.3.3
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# Copyright (c) 1995-1997 Sun Microsystems, Inc.
-# Copyright (c) 1998-2000 Ajuba Solutions.
+# Copyright (c) 1995-1996 Sun Microsystems, Inc.
+# Copyright (c) 1998-1999 by Scriptics Corporation.
+#
+# Have a look at the complete description on how to build and test Tcl with
+# the current Borland compilers at www.ratiosoft.com/tcl/borland.
+#
+# Usage:
+# - Adapt the paths below to match your compiler's location
+# - Make sure the compiler's bin directory is on your path
+# - Open a console
+# - To make a debug version enter
+# make -fmakefile.bc -DNODEBUG=0 xxx
+# where 'xxx' is the target you want (e.g. 'all', 'test', ...)
+# Please note: I omitted the 'd' suffix for debug versions because Tcl
+# will always call tclpip83.dll and not tclpip83d.dll, causing an error.
+# ^
+# Besides, the debug version goes into a separate directory, so there
+# should be no problem having DLLs and EXEs with the same name.
+# If you prefer your debug version having the 'd' suffix just uncomment
+# the line
+# #DBGX = d
+#
+# - To make a 'normal' version enter
+# make -fmakefile.bc xxx
+# where 'xxx' is the target you want (e.g. 'all', 'test', ...)
+#
+# DISCLAIMER:
+# This makefile has an experimental status - that is those targets which
+# have been modified do in fact compile and link with Borland's C++
+# Builder 5 and with the free Borland compiler (Borland C++ 5.5).
+# However the author assumes no responsiblity for any effect which the use of
+# this makefile or of the resulting programs might have on your system.
+#
+# Not yet modified:
+# - The 'plug-in-DLL' and the associated shell.
+# - The programs to create the windows help files.
+#
+# Suggestions and / or improvements are always welcome.
+#
+# May 2001, H. Giese (hgiese@ratiosoft.com)
#
-# RCS: @(#) $Id$
# Does not depend on the presence of any environment variables in
# order to compile tcl; all needed information is derived from
@@ -24,512 +56,511 @@
#
# ROOT = top of source tree
#
-# TMPDIR = location where .obj files should be stored during build
-#
# TOOLS32 = location of Borland development tools.
#
-# TCLDIR = location of top of Tcl source hierarchy
+# INSTALLDIR = where the install-targets should copy the binaries and
+# support files
#
-ROOT = ..
-TCLDIR = ..\..\tcl8.4
-INSTALLDIR = D:\tmp\tcl
+ROOT = ..
+INSTALLDIR = c:\program files\tcl
# If you have C++ Builder 5 or the free Borland C++ 5.5 compiler
# adapt the following paths as appropriate for your system
-TOOLS32 = d:\cbld5
-TOOLS32_rc = d:\cbld5
-#TOOLS32 = c:\bc55
-#TOOLS32_rc = c:\bc55
-
-cc32 = "$(TOOLS32)\bin\bcc32.exe"
-link32 = "$(TOOLS32)\bin\ilink32.exe"
-lib32 = "$(TOOLS32)\bin\tlib.exe"
-rc32 = "$(TOOLS32_rc)\bin\brcc32.exe"
-include32 = -I"$(TOOLS32)\include;$(TOOLS32)\include\mfc"
-libpath32 = -L"$(TOOLS32)\lib"
+TOOLS32 = c:\dev\bcc55
+TOOLS32_rc = c:\dev\bcc55
+#TOOLS32 = c:\bc55
+#TOOLS32_rc = c:\bc55
+
+cc32 = "$(TOOLS32)\bin\bcc32.exe"
+link32 = "$(TOOLS32)\bin\ilink32.exe"
+lib32 = "$(TOOLS32)\bin\tlib.exe"
+rc32 = "$(TOOLS32_rc)\bin\brcc32.exe"
+include32 = -I"$(TOOLS32)\include"
+libpath32 = -L"$(TOOLS32)\lib"
# Uncomment the following line to compile with thread support
-#THREADDEFINES = -DTCL_THREADS=1
+#THREADDEFINES = -DTCL_THREADS=1
# Allow definition of NDEBUG via command line
# Set NODEBUG to 0 to compile with symbols
!if !defined(NODEBUG)
-NODEBUG = 1
+NODEBUG = 1
!endif
-# uncomment the following two lines to compile with TCL_MEM_DEBUG
-#DEBUGDEFINES =-DTCL_MEM_DEBUG
+# The following defines can be used to control the amount of debugging
+# code that is added to the compilation.
+#
+# -DTCL_MEM_DEBUG Enables the debugging memory allocator.
+# -DTCL_COMPILE_DEBUG Enables byte compilation logging.
+# -DTCL_COMPILE_STATS Enables byte compilation statistics gathering.
+# -DUSE_TCLALLOC=0 Disables the Tcl memory allocator in favor
+# of the native malloc implementation. This is
+# needed when using Purify.
+#
+#DEBUGDEFINES = -DTCL_MEM_DEBUG -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
+#DEBUGDEFINES = -DUSE_TCLALLOC=0
######################################################################
# Do not modify below this line
######################################################################
-TCLNAMEPREFIX = tcl
-TKNAMEPREFIX = tk
-WISHNAMEPREFIX = wish
-VERSION = 84
-DOTVERSION = 8.4
+NAMEPREFIX = tcl
+STUBPREFIX = $(NAMEPREFIX)stub
+DOTVERSION = 8.4
+VERSION = 84
-TCLSTUBPREFIX = $(TCLNAMEPREFIX)stub
-TKSTUBPREFIX = $(TKNAMEPREFIX)stub
+DDEVERSION = 12
+DDEDOTVERSION = 1.2
+REGVERSION = 10
+REGDOTVERSION = 1.0
-BINROOT = .
+BINROOT = ..
!IF "$(NODEBUG)" == "1"
-TMPDIRNAME = Release
-DBGX =
+TMPDIRNAME = Release
+DBGX =
!ELSE
-TMPDIRNAME = Debug
-DBGX =
-#DBGX = d
+TMPDIRNAME = Debug
+#DBGX = d
+DBGX =
!ENDIF
-TMPDIR = $(BINROOT)\$(TMPDIRNAME)
-OUTDIRNAME = $(TMPDIRNAME)
-OUTDIR = $(TMPDIR)
-
-TCLLIB = $(TCLNAMEPREFIX)$(VERSION)$(DBGX).lib
-TCLPLUGINLIB = $(TCLNAMEPREFIX)$(VERSION)p.lib
-TCLSTUBLIB = $(TCLSTUBPREFIX)$(VERSION)$(DBGX).lib
-TKDLLNAME = $(TKNAMEPREFIX)$(VERSION)$(DBGX).dll
-TKDLL = $(OUTDIR)\$(TKDLLNAME)
-TKLIB = $(OUTDIR)\$(TKNAMEPREFIX)$(VERSION)$(DBGX).lib
-TKSTUBLIBNAME = $(TKSTUBPREFIX)$(VERSION)$(DBGX).lib
-TKSTUBLIB = $(OUTDIR)\$(TKSTUBLIBNAME)
-TKPLUGINDLLNAME = $(TKNAMEPREFIX)$(VERSION)p$(DBG).dll
-TKPLUGINDLL = $(OUTDIR)\$(TKPLUGINDLLNAME)
-TKPLUGINLIB = $(OUTDIR)\$(TKNAMEPREFIX)$(VERSION)p$(DBGX).lib
-
-WISH = $(OUTDIR)\$(WISHNAMEPREFIX)$(VERSION)$(DBGX).exe
-WISHC = $(OUTDIR)\$(WISHNAMEPREFIX)c$(VERSION)$(DBGX).exe
-WISHP = $(OUTDIR)\$(WISHNAMEPREFIX)p$(VERSION)$(DBGX).exe
-TKTEST = $(OUTDIR)\$(TKNAMEPREFIX)test.exe
-CAT32 = $(TMPDIR)\cat32.exe
-
-BIN_INSTALL_DIR = $(INSTALLDIR)\bin
-INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
-LIB_INSTALL_DIR = $(INSTALLDIR)\lib
-SCRIPT_INSTALL_DIR = $(LIB_INSTALL_DIR)\tk$(DOTVERSION)
-
-WISHOBJS = \
- $(TMPDIR)\winMain.obj
-
-TKTESTOBJS = \
- $(TMPDIR)\tkTest.obj \
- $(TMPDIR)\tkSquare.obj \
- $(TMPDIR)\testMain.obj \
- $(TMPDIR)\tkWinTest.obj \
- $(TCLLIBDIR)\tclThreadTest.obj
-
-XLIBOBJS = \
- $(TMPDIR)\xcolors.obj \
- $(TMPDIR)\xdraw.obj \
- $(TMPDIR)\xgc.obj \
- $(TMPDIR)\ximage.obj \
- $(TMPDIR)\xutil.obj
-
-TKOBJS = \
- $(TMPDIR)\tkConsole.obj \
- $(TMPDIR)\tkUnixMenubu.obj \
- $(TMPDIR)\tkUnixScale.obj \
- $(XLIBOBJS) \
- $(TMPDIR)\tkWin3d.obj \
- $(TMPDIR)\tkWin32Dll.obj \
- $(TMPDIR)\tkWinButton.obj \
- $(TMPDIR)\tkWinClipboard.obj \
- $(TMPDIR)\tkWinColor.obj \
- $(TMPDIR)\tkWinConfig.obj \
- $(TMPDIR)\tkWinCursor.obj \
- $(TMPDIR)\tkWinDialog.obj \
- $(TMPDIR)\tkWinDraw.obj \
- $(TMPDIR)\tkWinEmbed.obj \
- $(TMPDIR)\tkWinFont.obj \
- $(TMPDIR)\tkWinImage.obj \
- $(TMPDIR)\tkWinInit.obj \
- $(TMPDIR)\tkWinKey.obj \
- $(TMPDIR)\tkWinMenu.obj \
- $(TMPDIR)\tkWinPixmap.obj \
- $(TMPDIR)\tkWinPointer.obj \
- $(TMPDIR)\tkWinRegion.obj \
- $(TMPDIR)\tkWinScrlbr.obj \
- $(TMPDIR)\tkWinSend.obj \
- $(TMPDIR)\tkWinWindow.obj \
- $(TMPDIR)\tkWinWm.obj \
- $(TMPDIR)\tkWinX.obj \
- $(TMPDIR)\stubs.obj \
- $(TMPDIR)\tk3d.obj \
- $(TMPDIR)\tkArgv.obj \
- $(TMPDIR)\tkAtom.obj \
- $(TMPDIR)\tkBind.obj \
- $(TMPDIR)\tkBitmap.obj \
- $(TMPDIR)\tkButton.obj \
- $(TMPDIR)\tkCanvArc.obj \
- $(TMPDIR)\tkCanvBmap.obj \
- $(TMPDIR)\tkCanvImg.obj \
- $(TMPDIR)\tkCanvLine.obj \
- $(TMPDIR)\tkCanvPoly.obj \
- $(TMPDIR)\tkCanvPs.obj \
- $(TMPDIR)\tkCanvText.obj \
- $(TMPDIR)\tkCanvUtil.obj \
- $(TMPDIR)\tkCanvWind.obj \
- $(TMPDIR)\tkCanvas.obj \
- $(TMPDIR)\tkClipboard.obj \
- $(TMPDIR)\tkCmds.obj \
- $(TMPDIR)\tkColor.obj \
- $(TMPDIR)\tkConfig.obj \
- $(TMPDIR)\tkCursor.obj \
- $(TMPDIR)\tkEntry.obj \
- $(TMPDIR)\tkError.obj \
- $(TMPDIR)\tkEvent.obj \
- $(TMPDIR)\tkFileFilter.obj \
- $(TMPDIR)\tkFocus.obj \
- $(TMPDIR)\tkFont.obj \
- $(TMPDIR)\tkFrame.obj \
- $(TMPDIR)\tkGC.obj \
- $(TMPDIR)\tkGeometry.obj \
- $(TMPDIR)\tkGet.obj \
- $(TMPDIR)\tkGrab.obj \
- $(TMPDIR)\tkGrid.obj \
- $(TMPDIR)\tkImage.obj \
- $(TMPDIR)\tkImgBmap.obj \
- $(TMPDIR)\tkImgGIF.obj \
- $(TMPDIR)\tkImgPPM.obj \
- $(TMPDIR)\tkImgPhoto.obj \
- $(TMPDIR)\tkImgUtil.obj \
- $(TMPDIR)\tkListbox.obj \
- $(TMPDIR)\tkMacWinMenu.obj \
- $(TMPDIR)\tkMain.obj \
- $(TMPDIR)\tkMenu.obj \
- $(TMPDIR)\tkMenubutton.obj \
- $(TMPDIR)\tkMenuDraw.obj \
- $(TMPDIR)\tkMessage.obj \
- $(TMP_DIR)\tkPanedWindow.obj \
- $(TMPDIR)\tkObj.obj \
- $(TMPDIR)\tkOldConfig.obj \
- $(TMPDIR)\tkOption.obj \
- $(TMPDIR)\tkPack.obj \
- $(TMPDIR)\tkPlace.obj \
- $(TMPDIR)\tkPointer.obj \
- $(TMPDIR)\tkRectOval.obj \
- $(TMPDIR)\tkScale.obj \
- $(TMPDIR)\tkScrollbar.obj \
- $(TMPDIR)\tkSelect.obj \
- $(TMPDIR)\tkText.obj \
- $(TMPDIR)\tkTextBTree.obj \
- $(TMPDIR)\tkTextDisp.obj \
- $(TMPDIR)\tkTextImage.obj \
- $(TMPDIR)\tkTextIndex.obj \
- $(TMPDIR)\tkTextMark.obj \
- $(TMPDIR)\tkTextTag.obj \
- $(TMPDIR)\tkTextWind.obj \
- $(TMPDIR)\tkTrig.obj \
- $(TMPDIR)\tkUtil.obj \
- $(TMPDIR)\tkVisual.obj \
- $(TMPDIR)\tkStubInit.obj \
- $(TMPDIR)\tkStubLib.obj \
- $(TMPDIR)\tkWindow.obj
-
-# Maintenance hint: Please have multiple members of TKSTUBOBJS be separated
-# by exactly one ' ' (see below the rule for making TKSTUBLIB)
-TKSTUBOBJS = $(TMPDIR)\tkStubLib.obj $(TMPDIR)\tkStubImg.obj
-
-WINDIR = $(ROOT)\win
-GENERICDIR = $(ROOT)\generic
-XLIBDIR = $(ROOT)\xlib
-BITMAPDIR = $(ROOT)\bitmaps
-TCLLIBDIR = $(TCLDIR)\win\$(OUTDIRNAME)
-RCDIR = $(WINDIR)\rc
-
-TK_INCLUDES = -I$(WINDIR) -I$(GENERICDIR) -I$(BITMAPDIR) -I$(XLIBDIR) \
- -I$(TCLDIR)\generic
-
-TK_DEFINES = -D__WIN32__ $(DEBUGDEFINES) $(THREADDEFINES)
+TMPDIR = $(BINROOT)\$(TMPDIRNAME)
+OUTDIRNAME = $(TMPDIRNAME)
+OUTDIR = $(TMPDIR)
+
+TCLLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)$(DBGX).lib
+TCLDLLNAME = $(NAMEPREFIX)$(VERSION)$(DBGX).dll
+TCLDLL = $(OUTDIR)\$(TCLDLLNAME)
+
+TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION)$(DBGX).lib
+TCLSTUBLIB = $(OUTDIR)\$(TCLSTUBLIBNAME)
+
+TCLPLUGINLIB = $(OUTDIR)\$(NAMEPREFIX)$(VERSION)p$(DBGX).lib
+TCLPLUGINDLLNAME = $(NAMEPREFIX)$(VERSION)p$(DBGX).dll
+TCLPLUGINDLL = $(OUTDIR)\$(TCLPLUGINDLLNAME)
+TCLSH = $(OUTDIR)\$(NAMEPREFIX)sh$(VERSION)$(DBGX).exe
+TCLSHP = $(OUTDIR)\$(NAMEPREFIX)shp$(VERSION)$(DBGX).exe
+TCLPIPEDLLNAME = $(NAMEPREFIX)pip$(VERSION)$(DBGX).dll
+TCLPIPEDLL = $(OUTDIR)\$(TCLPIPEDLLNAME)
+TCLREGDLLNAME = $(NAMEPREFIX)reg$(REGVERSION)$(DBGX).dll
+TCLREGDLL = $(OUTDIR)\$(TCLREGDLLNAME)
+TCLDDEDLLNAME = $(NAMEPREFIX)dde$(DDEVERSION)$(DBGX).dll
+TCLDDEDLL = $(OUTDIR)\$(TCLDDEDLLNAME)
+TCLTEST = $(OUTDIR)\$(NAMEPREFIX)test.exe
+CAT32 = $(TMPDIR)\cat32.exe
+RMDIR = .\rmd.bat
+MKDIR = .\mkd.bat
+RM = del
+
+LIB_INSTALL_DIR = $(INSTALLDIR)\lib
+BIN_INSTALL_DIR = $(INSTALLDIR)\bin
+SCRIPT_INSTALL_DIR = $(INSTALLDIR)\lib\tcl$(DOTVERSION)
+INCLUDE_INSTALL_DIR = $(INSTALLDIR)\include
+
+TCLSHOBJS = \
+ $(TMPDIR)\tclAppInit.obj
+
+TCLTESTOBJS = \
+ $(TMPDIR)\tclTest.obj \
+ $(TMPDIR)\tclTestObj.obj \
+ $(TMPDIR)\tclTestProcBodyObj.obj \
+ $(TMPDIR)\tclThreadTest.obj \
+ $(TMPDIR)\tclWinTest.obj \
+ $(TMPDIR)\testMain.obj
+
+TCLOBJS = \
+ $(TMPDIR)\regcomp.obj \
+ $(TMPDIR)\regexec.obj \
+ $(TMPDIR)\regfree.obj \
+ $(TMPDIR)\regerror.obj \
+ $(TMPDIR)\strftime.obj \
+ $(TMPDIR)\strtoll.obj \
+ $(TMPDIR)\strtoull.obj \
+ $(TMPDIR)\tclAlloc.obj \
+ $(TMPDIR)\tclAsync.obj \
+ $(TMPDIR)\tclBasic.obj \
+ $(TMPDIR)\tclBinary.obj \
+ $(TMPDIR)\tclCkalloc.obj \
+ $(TMPDIR)\tclClock.obj \
+ $(TMPDIR)\tclCmdAH.obj \
+ $(TMPDIR)\tclCmdIL.obj \
+ $(TMPDIR)\tclCmdMZ.obj \
+ $(TMPDIR)\tclCompCmds.obj \
+ $(TMPDIR)\tclCompExpr.obj \
+ $(TMPDIR)\tclCompile.obj \
+ $(TMPDIR)\tclDate.obj \
+ $(TMPDIR)\tclEncoding.obj \
+ $(TMPDIR)\tclEnv.obj \
+ $(TMPDIR)\tclEvent.obj \
+ $(TMPDIR)\tclExecute.obj \
+ $(TMPDIR)\tclFCmd.obj \
+ $(TMPDIR)\tclFileName.obj \
+ $(TMPDIR)\tclGet.obj \
+ $(TMPDIR)\tclHash.obj \
+ $(TMPDIR)\tclHistory.obj \
+ $(TMPDIR)\tclIndexObj.obj \
+ $(TMPDIR)\tclInterp.obj \
+ $(TMPDIR)\tclIO.obj \
+ $(TMPDIR)\tclIOCmd.obj \
+ $(TMPDIR)\tclIOGT.obj \
+ $(TMPDIR)\tclIOSock.obj \
+ $(TMPDIR)\tclIOUtil.obj \
+ $(TMPDIR)\tclLink.obj \
+ $(TMPDIR)\tclLiteral.obj \
+ $(TMPDIR)\tclListObj.obj \
+ $(TMPDIR)\tclLoad.obj \
+ $(TMPDIR)\tclMain.obj \
+ $(TMPDIR)\tclNamesp.obj \
+ $(TMPDIR)\tclNotify.obj \
+ $(TMPDIR)\tclObj.obj \
+ $(TMPDIR)\tclPanic.obj \
+ $(TMPDIR)\tclParse.obj \
+ $(TMPDIR)\tclParseExpr.obj \
+ $(TMPDIR)\tclPipe.obj \
+ $(TMPDIR)\tclPkg.obj \
+ $(TMPDIR)\tclPosixStr.obj \
+ $(TMPDIR)\tclPreserve.obj \
+ $(TMPDIR)\tclProc.obj \
+ $(TMPDIR)\tclRegexp.obj \
+ $(TMPDIR)\tclResolve.obj \
+ $(TMPDIR)\tclResult.obj \
+ $(TMPDIR)\tclScan.obj \
+ $(TMPDIR)\tclStringObj.obj \
+ $(TMPDIR)\tclStubInit.obj \
+ $(TMPDIR)\tclStubLib.obj \
+ $(TMPDIR)\tclThread.obj \
+ $(TMPDIR)\tclThreadJoin.obj \
+ $(TMPDIR)\tclTimer.obj \
+ $(TMPDIR)\tclUtf.obj \
+ $(TMPDIR)\tclUtil.obj \
+ $(TMPDIR)\tclVar.obj \
+ $(TMPDIR)\tclWin32Dll.obj \
+ $(TMPDIR)\tclWinChan.obj \
+ $(TMPDIR)\tclWinConsole.obj \
+ $(TMPDIR)\tclWinSerial.obj \
+ $(TMPDIR)\tclWinError.obj \
+ $(TMPDIR)\tclWinFCmd.obj \
+ $(TMPDIR)\tclWinFile.obj \
+ $(TMPDIR)\tclWinInit.obj \
+ $(TMPDIR)\tclWinLoad.obj \
+ $(TMPDIR)\tclWinMtherr.obj \
+ $(TMPDIR)\tclWinNotify.obj \
+ $(TMPDIR)\tclWinPipe.obj \
+ $(TMPDIR)\tclWinSock.obj \
+ $(TMPDIR)\tclWinThrd.obj \
+ $(TMPDIR)\tclWinTime.obj
+
+TCLSTUBOBJS = $(TMPDIR)\tclStubLib.obj
+
+WINDIR = $(ROOT)\win
+GENERICDIR = $(ROOT)\generic
+
+TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"
+TCL_DEFINES = $(DEBUGDEFINES) $(THREADDEFINES)
######################################################################
-# Compile flags
+# Compiler flags
######################################################################
!IF "$(NODEBUG)" == "1"
# these macros cause maximum optimization and no symbols
-cdebug = -v- -vi- -O2 -D_DEBUG
+cdebug = -v- -vi- -O2 -D_DEBUG
!ELSE
# these macros enable debugging
-cdebug = -k -Od -r- -v -vi- -y
+cdebug = -k -Od -r- -v -vi- -y
!ENDIF
-SYSDEFINES = _MT;NO_STRICT;_NO_VCL
+SYSDEFINES = _MT;NO_STRICT;_NO_VCL
# declarations common to all compiler options
-cbase = -3 -a4 -c -g0 -tWM -Ve -Vx -X-
-WARNINGS = -w-rch -w-pch -w-par -w-dup -w-pro -w-dpu
+cbase = -c -q -3 -a4 -g0 -tWM -Ve -Vx -X-
+WARNINGS = -w-rch -w-pch -w-par -w-dup -w-pro -w-dpu
-ccons = -tWC
+ccons = -tWC
-CFLAGS = $(cdebug) $(cbase) $(WARNINGS) -D$(SYSDEFINES)
+INCLUDEPATH = $(include32) $(TCL_INCLUDES)
-CON_CFLAGS = $(CFLAGS) $(TK_DEFINES) $(include32) $(ccons)
-WISH_CFLAGS = $(CFLAGS) $(include32) $(TK_INCLUDES) $(TK_DEFINES)
-TK_CFLAGS = $(CFLAGS) $(include32) $(TK_INCLUDES) $(TK_DEFINES) \
- -DUSE_TCL_STUBS
+CFLAGS = $(cdebug) $(cbase) $(INCLUDEPATH) $(WARNINGS) -D$(SYSDEFINES)
+TCL_CFLAGS = $(CFLAGS) $(TCL_DEFINES)
+CONS_CFLAGS = $(CFLAGS) $(TCL_DEFINES) $(ccons)
######################################################################
-# Link flags
+# Linker flags
######################################################################
!IF "$(NODEBUG)" == "1"
-ldebug =
+ldebug =
!ELSE
-ldebug = -v
+ldebug = -v
!ENDIF
# declarations common to all linker options
-LNFLAGS = -D"" -Gn -I$(TMPDIR) -x $(ldebug) $(libpath32)
+LNFLAGS = -D"" -Gn -I$(TMPDIR) -x $(ldebug) $(libpath32)
# -Gi: create lib file (is -Gl in doc)
# -aa: Windows app, -ap: Windows console app
-LNFLAGS_DLL = -ap -Gi -Tpd
-LNFLAGS_CONS = -ap -Tpe
-LNFLAGS_GUI = -aa -Tpe
+LNFLAGS_DLL = -ap -Gi -Tpd
+LNFLAGS_CONS = -ap -Tpe
-LNLIBS = import32 cw32mt
+LNLIBS = import32 cw32mt
######################################################################
# Project specific targets
######################################################################
-all: setup $(WISH) $(CAT32)
-install: install-binaries install-libraries
-plugin: setup $(TKPLUGINDLL) $(WISHP)
-tktest: setup $(TKTEST) $(CAT32)
-
-# Maintenance hint: We want to set environment variables before calling tktest.
-# If we do this in the form of normal commands, they will not persist up to
-# the call of tktest. Therfore we put all commands wanted into a batch file.
-# The normal way of using 'echo >x.bat' and 'echo >>x.bat' does not work here
-# because we cannot write '... > tktest.txt' this way. Hence this advanced
-# form of loop hopping:
-# - Have MAKE produce a temporary file with the content we want.
-# - Use it as input to the COPY command to produce a batch file.
-# - Run the batch file and be happy.
-#
-test: setup $(TKTEST) $(TKLIB) $(CAT32)
- copy &&!
- set TCL_LIBRARY=$(TCLDIR)/library
- set PATH=$(TCLDIR)\win\$(TMPDIRNAME);$(PATH)
- $(TKTEST) $(ROOT)/tests/all.tcl > tktest.txt
-! _test.bat
- _test.bat
-# del _test.bat
-
-runtest: setup $(TKTEST) $(TKLIB) $(CAT32)
- echo set TCL_LIBRARY=$(TCLDIR)/library > _test2.bat
- echo set PATH=$(TCLDIR)\win\$(TMPDIRNAME);$(PATH) >> _test2.bat
- echo $(TKTEST) >> _test2.bat
- _test2.bat
-# del _test2.bat
-
-console-wish : all $(WISHC)
-
-stubs:
- $(TCLDIR)\win\$(TMPDIRNAME)\tclsh$(VERSION)$(DBGX) \
- $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \
- $(GENERICDIR)\tk.decls $(GENERICDIR)\tkInt.decls
+release: setup $(TCLSH) dlls
+dlls: setup $(TCLPIPEDLL) $(TCLREGDLL) $(TCLDDEDLL)
+all: setup $(TCLSH) dlls $(CAT32)
+tcltest: setup $(TCLTEST) dlls $(CAT32)
+plugin: setup $(TCLPLUGINDLL) $(TCLSHP)
+install: install-binaries install-libraries
-setup:
- @mkd $(TMPDIR)
- @mkd $(OUTDIR)
+test: setup $(TCLTEST) dlls $(CAT32)
+ set TCL_LIBRARY=$(ROOT)/library
+ $(TCLTEST) $(ROOT)/tests/all.tcl
-install-binaries:
- @mkd "$(BIN_INSTALL_DIR)"
- copy $(TKDLL) "$(BIN_INSTALL_DIR)"
- copy $(WISH) "$(BIN_INSTALL_DIR)"
- @mkd "$(LIB_INSTALL_DIR)"
- copy $(TKLIB) "$(LIB_INSTALL_DIR)"
+setup:
+ @if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR) &\
+ echo *** Created directory '$(OUT_DIR)'
+ @if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR) &\
+ echo *** Created directory '$(TMP_DIR)'
-install-libraries:
- @mkd "$(INCLUDE_INSTALL_DIR)"
- @mkd "$(INCLUDE_INSTALL_DIR)\X11"
- copy "$(GENERICDIR)\tk.h" "$(INCLUDE_INSTALL_DIR)"
- copy "$(GENERICDIR)\tkDecls.h" "$(INCLUDE_INSTALL_DIR)"
- copy "$(GENERICDIR)\tkPlatDecls.h" "$(INCLUDE_INSTALL_DIR)"
- copy "$(GENERICDIR)\tkIntXlibDecls.h" "$(INCLUDE_INSTALL_DIR)"
- xcopy "$(XLIBDIR)\X11\*.h" "$(INCLUDE_INSTALL_DIR)\X11"
- @mkd "$(SCRIPT_INSTALL_DIR)"
- @mkd "$(SCRIPT_INSTALL_DIR)\images"
- @mkd "$(SCRIPT_INSTALL_DIR)\demos"
- @mkd "$(SCRIPT_INSTALL_DIR)\demos\images"
- @mkd "$(SCRIPT_INSTALL_DIR)\msgs"
- xcopy "$(ROOT)\library" "$(SCRIPT_INSTALL_DIR)"
- xcopy "$(ROOT)\library\images" "$(SCRIPT_INSTALL_DIR)\images"
- xcopy "$(ROOT)\library\demos" "$(SCRIPT_INSTALL_DIR)\demos"
- xcopy "$(ROOT)\library\demos\images" "$(SCRIPT_INSTALL_DIR)\demos\images"
- xcopy "$(ROOT)\library\msgs" "$(SCRIPT_INSTALL_DIR)\msgs"
-
-$(TKLIB): $(TKDLL) $(TKSTUBLIB)
-
-# Maintenance hint: The macro puts a '+-' before the first member of
-# TKSTUBOBJS, than replaces any ' ' with ' +-' - together putting '+-' in
-# front of any member of TKSTUBOBJS (provided, they are separated in their
-# defintion by just one space).
-#
-# The first time you *make* this target, you will get a warning
-# tkStubLib not found in library
-# This is (probably) because of the '-' option, telling TLIB to remove
-# 'tkStubLib' when it does not yet exist. Forcing a re-make when it already
-# exists avoids this warning.
-#
-$(TKSTUBLIB): $(TKSTUBOBJS)
- $(lib32) $@ +-$(TKSTUBOBJS: = +-)
-# $(lib32) $@ @&&!
-#+-$(TKSTUBOBJS: = &^
-#+-)
-#!
+$(TCLLIB): $(TCLDLL)
-$(TKDLL): $(TKOBJS) $(TMPDIR)\tk.res
- $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 @&&!
- $(TKOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLSTUBLIB),, $(TMPDIR)\tk.res
+$(TCLDLL): $(TCLOBJS) $(TMPDIR)\$(NAMEPREFIX).res
+ $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 @&&!
+ $(TCLOBJS), $@, -x, $(LNLIBS),, $(TMPDIR)\$(NAMEPREFIX).res
!
-$(TKPLUGINLIB): $(TKPLUGINDLL)
+$(TCLSTUBLIB): $(TCLSTUBOBJS)
+ $(lib32) /u $@ $(TCLSTUBOBJS)
-#$(TKPLUGINDLL): $(TKOBJS) $(TMPDIR)\tk.res
-# $(link32) $(ldebug) $(dlllflags) \
-# -out:$@ $(TMPDIR)\tk.res $(TCLLIBDIR)\$(TCLPLUGINLIB) \
-# $(guilibsdll) @<<
-# $(TKOBJS)
-#<<
+$(TCLPLUGINLIB): $(TCLPLUGINDLL)
-$(WISH): $(WISHOBJS) $(TKLIB) $(TMPDIR)\wish.res
- $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_GUI) $(TOOLS32)\lib\c0x32 @&&!
- $(WISHOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB),, $(TMPDIR)\wish.res
+$(TCLPLUGINDLL): $(TCLOBJS) $(TMPDIR)\tcl.res
+ $(link32) $(ldebug) $(dlllflags) \
+ -out:$@ $(TMPDIR)\tcl.res $(guilibsdll) @&&!
+$(TCLOBJS)
!
-$(WISHC): $(WISHOBJS) $(TKLIB) $(TMPDIR)\wish.res
- $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 @&&!
- $(WISHOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB),, $(TMPDIR)\wish.res
+$(TCLSH): $(TCLSHOBJS) $(TCLLIB) $(TMPDIR)\$(NAMEPREFIX)sh.res
+ $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 @&&!
+ $(TCLSHOBJS), $@, -x, $(LNLIBS) $(TCLLIB),, $(TMPDIR)\$(NAMEPREFIX)sh.res
!
-$(WISHP): $(WISHOBJS) $(TKPLUGINLIB) $(TMPDIR)\wish.res
- $(link32) $(ldebug) $(guilflags) $(TMPDIR)\wish.res -out:$@ \
- $(guilibsdll) $(TCLLIBDIR)\$(TCLPLUGINLIB) \
- $(TKPLUGINLIB) $(WISHOBJS)
+$(TCLSHP): $(TCLSHOBJS) $(TCLPLUGINLIB) $(TMPDIR)\tclsh.res
+ $(link32) $(ldebug) $(conlflags) $(TMPDIR)\tclsh.res -stack:2300000 \
+ -out:$@ $(conlibsdll) $(TCLPLUGINLIB) $(TCLSHOBJS)
-$(TKTEST): $(TKTESTOBJS) $(TKLIB) $(TMPDIR)\wish.res
- $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_GUI) $(TOOLS32)\lib\c0x32 @&&!
- $(TKTESTOBJS), $@, -x, $(LNLIBS) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB),, $(TMPDIR)\wish.res
+$(TCLTEST): $(TCLTESTOBJS) $(TCLLIB) $(TMPDIR)\$(NAMEPREFIX)sh.res
+ $(link32) $(ldebug) -S:2400000 $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 @&&!
+ $(TCLTESTOBJS), $@, -x, $(LNLIBS) $(TCLLIB),, $(TMPDIR)\$(NAMEPREFIX)sh.res
!
-# $(link32) $(ldebug) $(guilflags) $(TMPDIR)\wish.res -out:$@ \
-# $(guilibsdll) $(TCLLIBDIR)\$(TCLLIB) $(TKLIB) $(TKTESTOBJS)
-#$(CAT32): $(TCLDIR)\win\cat.c
-# $(cc32) $(CON_CFLAGS) -o$(TMPDIR)\cat.obj $?
-# $(link32) $(conlflags) -out:$@ -stack:16384 $(TMPDIR)\cat.obj $(conlibs)
+$(TCLPIPEDLL): $(WINDIR)\stub16.c
+ $(cc32) $(CFLAGS) -o$(TMPDIR)\stub16.obj $(WINDIR)\stub16.c
+ $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 \
+ $(TMPDIR)\stub16.obj, $@, -x, $(LNLIBS),, $(TMPDIR)\$(NAMEPREFIX).res
+
+$(TCLDDEDLL): $(TMPDIR)\tclWinDde.obj $(TCLSTUBLIB)
+ $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 \
+ $(TMPDIR)\tclWinDde.obj, $@, -x, $(LNLIBS) $(TCLSTUBLIB),, \
+ $(TMPDIR)\$(NAMEPREFIX).res
+
+$(TCLREGDLL): $(TMPDIR)\tclWinReg.obj $(TCLSTUBLIB)
+ $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_DLL) $(TOOLS32)\lib\c0d32 \
+ $(TMPDIR)\tclWinReg.obj, $@, -x, $(LNLIBS) $(TCLSTUBLIB),, \
+ $(TMPDIR)\$(NAMEPREFIX).res
+
+$(CAT32): $(WINDIR)\cat.c
+ $(cc32) $(CONS_CFLAGS) -o$(TMPDIR)\cat.obj $?
+ $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 \
+ $(TMPDIR)\cat.obj, $@, -x, $(LNLIBS),,
+
+install-binaries: $(TCLSH)
+ $(MKDIR) "$(BIN_INSTALL_DIR)"
+ $(MKDIR) "$(LIB_INSTALL_DIR)"
+ @echo installing $(TCLDLLNAME)
+ @copy "$(TCLDLL)" "$(BIN_INSTALL_DIR)"
+ @copy "$(TCLLIB)" "$(LIB_INSTALL_DIR)"
+ @echo installing "$(TCLSH)"
+ @copy "$(TCLSH)" "$(BIN_INSTALL_DIR)"
+ @echo installing $(TCLPIPEDLLNAME)
+ @copy "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)"
+ @echo installing $(TCLSTUBLIBNAME)
+ @copy "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)"
-$(CAT32): $(TCLDIR)\win\cat.c
- $(cc32) $(CONS_CFLAGS) -o$(TMPDIR)\cat.obj $?
- $(link32) $(ldebug) $(LNFLAGS) $(LNFLAGS_CONS) $(TOOLS32)\lib\c0x32 \
- $(TMPDIR)\cat.obj, $@, -x, $(LNLIBS),,
+install-libraries:
+ -@$(MKDIR) "$(LIB_INSTALL_DIR)"
+ -@$(MKDIR) "$(INCLUDE_INSTALL_DIR)"
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)"
+ @echo installing http1.0
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\http1.0"
+ -@copy "$(ROOT)\library\http1.0\http.tcl" "$(SCRIPT_INSTALL_DIR)\http1.0"
+ -@copy "$(ROOT)\library\http1.0\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\http1.0"
+ @echo installing http2.4
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\http2.4"
+ -@copy "$(ROOT)\library\http\http.tcl" "$(SCRIPT_INSTALL_DIR)\http2.4"
+ -@copy "$(ROOT)\library\http\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\http2.4"
+ @echo installing opt0.4
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\opt0.4"
+ -@copy "$(ROOT)\library\opt\optparse.tcl" "$(SCRIPT_INSTALL_DIR)\opt0.4"
+ -@copy "$(ROOT)\library\opt\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\opt0.4"
+ @echo installing msgcat1.3
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\msgcat1.3"
+ -@copy "$(ROOT)\library\msgcat\msgcat.tcl" "$(SCRIPT_INSTALL_DIR)\msgcat1.3"
+ -@copy "$(ROOT)\library\msgcat\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\msgcat1.3"
+ @echo installing tcltest2.2
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\tcltest2.2"
+ -@copy "$(ROOT)\library\tcltest\tcltest.tcl" "$(SCRIPT_INSTALL_DIR)\tcltest2.2"
+ -@copy "$(ROOT)\library\tcltest\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\tcltest2.2"
+ @echo installing $(TCLDDEDLLNAME)
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\dde1.1"
+ -@copy "$(TCLDDEDLL)" "$(SCRIPT_INSTALL_DIR)\dde1.1"
+ -@copy "$(ROOT)\library\dde\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\dde1.1"
+ @echo installing $(TCLREGDLLNAME)
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\reg1.0"
+ -@copy "$(TCLREGDLL)" "$(SCRIPT_INSTALL_DIR)\reg1.0"
+ -@copy "$(ROOT)\library\reg\pkgIndex.tcl" "$(SCRIPT_INSTALL_DIR)\reg1.0"
+ @echo installing encoding files
+ -@$(MKDIR) "$(SCRIPT_INSTALL_DIR)\encoding"
+ -@copy "$(ROOT)\library\encoding\*.enc" "$(SCRIPT_INSTALL_DIR)\encoding"
+ @echo installing library files
+ -@copy "$(GENERICDIR)\tcl.h" "$(INCLUDE_INSTALL_DIR)"
+ -@copy "$(GENERICDIR)\tclDecls.h" "$(INCLUDE_INSTALL_DIR)"
+ -@copy "$(GENERICDIR)\tclPlatDecls.h" "$(INCLUDE_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\history.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\init.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\ldAout.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\parray.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\safe.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\tclIndex" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\package.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\word.tcl" "$(SCRIPT_INSTALL_DIR)"
+ -@copy "$(ROOT)\library\auto.tcl" "$(SCRIPT_INSTALL_DIR)"
#
# Regenerate the stubs files.
#
genstubs:
- tclsh$(VERSION) $(TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \
- $(GENERICDIR)\tk.decls $(GENERICDIR)\tkInt.decls
+ tclsh$(VERSION) $(ROOT)\tools\genStubs.tcl $(GENERICDIR) \
+ $(GENERICDIR)\tcl.decls $(GENERICDIR)\tclInt.decls
+
+#
+# Regenerate the windows help files.
+#
+
+TCLTOOLS = $(ROOT)/tools
+MAN2TCL = $(TCLTOOLS)/man2tcl
+TCLRTF = $(TCLTOOLS)/tcl.rtf
+TCLHPJ = $(TCLTOOLS)/tcl.hpj
+MAN2HELP = $(TCLTOOLS)/man2help.tcl
+HCRTF = $(TOOLS32)/bin/hcrtf.exe
+
+winhelp: $(TCLRTF)
+ cd $(TCLTOOLS)
+ start /wait $(HCRTF) -xn $(TCLHPJ)
+
+$(MAN2TCL).exe: $(MAN2TCL).obj
+ cd $(TCLTOOLS)
+ $(cc32) /nologo /G4 /ML /O2 $(MAN2TCL).c
+
+$(TCLRTF): $(MAN2TCL).exe $(TCLSH)
+ cd $(TCLTOOLS)
+ ..\win\$(TCLSH) $(MAN2HELP) $(NAMEPREFIX) $(VERSION) $(ROOT)/doc ../../tk$(DOTVERSION)/doc
#
# Special case object file targets
#
+$(TMPDIR)\tclWinInit.obj: $(WINDIR)\tclWinInit.c
+ $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$(TMPDIR)\$@ $?
+
+$(TMPDIR)\testMain.obj: $(WINDIR)\tclAppInit.c
+ $(cc32) $(TCL_CFLAGS) -DTCL_TEST -o$(TMPDIR)\testMain.obj $?
+
+$(TMPDIR)\tclTest.obj: $(GENERICDIR)\tclTest.c
+ $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $?
+
+$(TMPDIR)\tclTestObj.obj: $(GENERICDIR)\tclTestObj.c
+ $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $?
+
+$(TMPDIR)\tclWinTest.obj: $(WINDIR)\tclWinTest.c
+ $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $?
+
+$(TMPDIR)\tclAppInit.obj : $(WINDIR)\tclAppInit.c
+ $(cc32) $(TCL_CFLAGS) -o$(TMPDIR)\$@ $?
+
+# The following objects should be built using the stub interfaces
-$(TMPDIR)\testMain.obj: $(WINDIR)\winMain.c
- $(cc32) $(WISH_CFLAGS) -DTK_TEST -o$@ $?
+# tclWinReg: Produces errors in ANSI mode
+$(TMPDIR)\tclWinReg.obj : $(WINDIR)\tclWinReg.c
+ $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -o$(TMPDIR)\$@ $?
-$(TMPDIR)\tkTest.obj: $(GENERICDIR)\tkTest.c
- $(cc32) $(WISH_CFLAGS) -o$@ $?
+# tclWinDde: Produces errors in ANSI mode
+$(TMPDIR)\tclWinDde.obj : $(WINDIR)\tclWinDde.c
+ $(cc32) $(TCL_CFLAGS) -DUSE_TCL_STUBS -o$(TMPDIR)\$@ $?
-$(TMPDIR)\tkWinTest.obj: $(WINDIR)\tkWinTest.c
- $(cc32) $(WISH_CFLAGS) -o$@ $?
-$(TMPDIR)\tkSquare.obj: $(GENERICDIR)\tkSquare.c
- $(cc32) $(WISH_CFLAGS) -o$@ $?
+# The following objects are part of the stub library and should not
+# be built as DLL objects but none of the symbols should be exported
-$(TMPDIR)\winMain.obj: $(WINDIR)\winMain.c
- $(cc32) $(WISH_CFLAGS) -o$@ $?
+$(TMPDIR)\tclStubLib.obj : $(GENERICDIR)\tclStubLib.c
+ $(cc32) $(TCL_CFLAGS) -DSTATIC_BUILD -o$(TMPDIR)\$@ $?
-$(TMPDIR)\tkStubLib.obj : $(GENERICDIR)\tkStubLib.c
- $(cc32) $(TK_CFLAGS) -DSTATIC_BUILD -o$@ $?
+
+# Dedependency rules
+
+$(GENERICDIR)\regcomp.c: \
+ $(GENERICDIR)\regguts.h \
+ $(GENERICDIR)\regc_lex.c \
+ $(GENERICDIR)\regc_color.c \
+ $(GENERICDIR)\regc_nfa.c \
+ $(GENERICDIR)\regc_cvec.c \
+ $(GENERICDIR)\regc_locale.c
+
+$(GENERICDIR)\regcustom.h: \
+ $(GENERICDIR)\tclInt.h \
+ $(GENERICDIR)\tclPort.h \
+ $(GENERICDIR)\regex.h
+
+$(GENERICDIR)\regexec.c: \
+ $(GENERICDIR)\rege_dfa.c \
+ $(GENERICDIR)\regguts.h
+
+$(GENERICDIR)\regerror.c: $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regfree.c: $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regfronts.c: $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regguts.h: $(GENERICDIR)\regcustom.h
#
# Implicit rules
#
-{$(XLIBDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $<
+{$(WINDIR)}.c{$(TMPDIR)}.obj:
+ $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $<
{$(GENERICDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $<
-
-{$(WINDIR)}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $<
+ $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $<
-{$(ROOT)\unix}.c{$(TMPDIR)}.obj:
- $(cc32) -DDLL_BUILD -DBUILD_tk $(TK_CFLAGS) -o$@ $<
+{$(ROOT)\compat}.c{$(TMPDIR)}.obj:
+ $(cc32) -DBUILD_tcl $(TCL_CFLAGS) -o$@ $<
-{$(RCDIR)}.rc{$(TMPDIR)}.res:
- $(rc32) -I"$(GENERICDIR)" -I"$(TOOLS32)\include" -I"$(TCLDIR)\generic" \
- -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $<
+{$(WINDIR)}.rc{$(TMPDIR)}.res:
+ $(rc32) $(INCLUDEPATH) -D$(USERDEFINES);$(SYSDEFINES) -fo$@ $<
clean:
- -@del $(OUTDIR)\*.exp
- -@del $(OUTDIR)\*.lib
- -@del $(OUTDIR)\*.dll
- -@del $(OUTDIR)\*.exe
- -@del $(OUTDIR)\*.pdb
- -@del $(TMPDIR)\*.pch
- -@del $(TMPDIR)\*.obj
- -@del $(TMPDIR)\*.res
- -@del $(TMPDIR)\*.exe
- -@rmd $(OUTDIR)
- -@rmd $(TMPDIR)
-
-# dependencies
-
-$(TMPDIR)\tk.res: \
- $(RCDIR)\buttons.bmp \
- $(RCDIR)\cursor*.cur \
- $(RCDIR)\tk.ico
-
-$(GENERICDIR)/default.h: $(WINDIR)/tkWinDefault.h
-$(GENERICDIR)/tkButton.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkCanvas.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkEntry.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkFrame.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkListbox.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkMenu.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkMenubutton.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkMessage.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkScale.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkScrollbar.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkText.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkTextIndex.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkTextTag.c: $(GENERICDIR)/default.h
-
-$(GENERICDIR)/tkText.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextBTree.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextDisp.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextDisp.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextImage.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextIndex.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextMark.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextTag.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextWind.c: $(GENERICDIR)/tkText.h
-
-$(GENERICDIR)/tkMacWinMenu.c: $(GENERICDIR)/tkMenu.h
-$(GENERICDIR)/tkMenu.c: $(GENERICDIR)/tkMenu.h
-$(GENERICDIR)/tkMenuDraw.c: $(GENERICDIR)/tkMenu.h
-$(WINDIR)/tkWinMenu.c: $(GENERICDIR)/tkMenu.h
-
-
+ -@$(RM) $(OUTDIR)\*.exp
+ -@$(RM) $(OUTDIR)\*.lib
+ -@$(RM) $(OUTDIR)\*.dll
+ -@$(RM) $(OUTDIR)\*.exe
+ -@$(RM) $(OUTDIR)\*.pdb
+ -@$(RM) $(TMPDIR)\*.pch
+ -@$(RM) $(TMPDIR)\*.obj
+ -@$(RM) $(TMPDIR)\*.res
+ -@$(RM) $(TMPDIR)\*.exe
+ -@$(RMDIR) $(OUTDIR)
+ -@$(RMDIR) $(TMPDIR)
diff --git a/tcl/win/makefile.vc b/tcl/win/makefile.vc
index 469969fd7e2..e8de4a25f55 100644
--- a/tcl/win/makefile.vc
+++ b/tcl/win/makefile.vc
@@ -27,7 +27,7 @@ the environment. Jump to this line to read the new instructions.
#
# 1) It is now necessary to have MSVCDir set in the environment. This is used
# as a check to see if vcvars32.bat had been run prior to running nmake or
-# during the install of Microsoft Developer Studio, MSVCDir had been set
+# during the installation of Microsoft Visual C++, MSVCDir had been set
# globally and the PATH adjusted. Either way is valid.
#
# You'll need to run vcvars32.bat contained in the MsDev's vc(98)/bin
@@ -40,36 +40,31 @@ the environment. Jump to this line to read the new instructions.
# the 64-bit compiler, if your SDK has it.
#
# 3) Targets are:
-# release -- builds the core, the shell. (default)
-# core -- Only builds the core.
-# all -- builds everything.
-# test -- builds and runs the test suite.
-# tktest -- just builds the binaries for the test suite.
-# install -- installs the built binaries and libraries to $(INSTALLDIR)
+# release -- Builds the core, the shell and the dlls. (default)
+# dlls -- Just builds the windows extensions and the 16-bit DOS
+# pipe/thunk helper app.
+# shell -- Just builds the shell and the core.
+# core -- Only builds the core [tclXX.(dll|lib)].
+# all -- Builds everything.
+# test -- Builds and runs the test suite.
+# tcltest -- Just builds the test shell.
+# install -- Installs the built binaries and libraries to $(INSTALLDIR)
# as the root of the install tree.
-# console-wish -- builds a console version of wish.
-# clean -- removes the contents of $(TMP_DIR)
-# hose -- removes the contents of $(TMP_DIR) and $(OUT_DIR)
-# genstubs -- rebuilds the Stubs table and support files (dev only).
+# tidy/clean/hose -- varying levels of cleaning.
+# genstubs -- Rebuilds the Stubs table and support files (dev only).
# depend -- Generates an accurate set of source dependancies for this
# makefile. Helpful to avoid problems when the sources are
# refreshed and you rebuild, but can "overbuild" when common
-# headers like tkInt.h just get small changes.
-# winhelp -- builds the windows .hlp file for Tcl from the troff man
-# files.
+# headers like tclInt.h just get small changes.
+# winhelp -- Builds the windows .hlp file for Tcl from the troff man
+# files found in $(ROOT)\doc .
#
# 4) Macros usable on the commandline:
-# TCLDIR=<path>
-# Sets the location for where to find the Tcl headers and
-# libraries. The install point is assumed when not specified.
-# Tk does need the source directory, though. Tk comes very close
-# to not needing the sources, but does, in fact, require them.
-#
# INSTALLDIR=<path>
# Sets where to install Tcl from the built binaries.
# C:\Progra~1\Tcl is assumed when not specified.
#
-# OPTS=static,msvcrt,linkexten,threads,symbols,profile,none
+# OPTS=static,msvcrt,linkexten,threads,symbols,profile,loimpact,none
# Sets special options for the core. The default is for none.
# Any combination of the above may be used (comma separated).
# 'none' will over-ride everything to nothing.
@@ -80,11 +75,14 @@ the environment. Jump to this line to read the new instructions.
# using libcmt(d) as the C runtime [by default] to
# msvcrt(d). This is useful for static embedding
# support.
-# linkexten = Affects the static option only to switch wishXX.exe
-# to have the dde and reg extension linked inside it.
+# linkexten = Effects the static option only to switch
+# tclshXX.exe to have the dde and reg extension linked
+# inside it.
# threads = Turns on full multithreading support.
# symbols = Adds symbols for step debugging.
# profile = Adds profiling hooks. Map file is assumed.
+# loimpact = Adds a flag for how NT treats the heap to keep memory
+# in use, low. This is said to impact alloc performance.
#
# STATS=memdbg,compdbg,none
# Sets optional memory and bytecode compiler debugging code added
@@ -117,17 +115,17 @@ the environment. Jump to this line to read the new instructions.
# nmake [-nologo] -f makefile.vc [target|macrodef [target|macrodef] [...]]
#
# Standard (no frills)
-# c:\tk_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
+# c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
# Setting environment for using Microsoft Visual C++ tools.
-# c:\tk_src\win\>nmake -f makefile.vc release
-# c:\tk_src\win\>nmake -f makefile.vc install INSTALLDIR=c:\progra~1\tcl
+# c:\tcl_src\win\>nmake -f makefile.vc release
+# c:\tcl_src\win\>nmake -f makefile.vc install INSTALLDIR=c:\progra~1\tcl
#
# Building for Win64
-# c:\tk_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
+# c:\tcl_src\win\>c:\progra~1\micros~1\vc98\bin\vcvars32.bat
# Setting environment for using Microsoft Visual C++ tools.
-# c:\tk_src\win\>c:\progra~1\platfo~1\setenv.bat /pre64 /RETAIL
+# c:\tcl_src\win\>c:\progra~1\platfo~1\setenv.bat /pre64 /RETAIL
# Targeting Windows pre64 RETAIL
-# c:\tk_src\win\>nmake -f makefile.vc MACHINE=IA64
+# c:\tcl_src\win\>nmake -f makefile.vc MACHINE=IA64
#
#------------------------------------------------------------------------------
#==============================================================================
@@ -149,268 +147,188 @@ the environment. Jump to this line to read the new instructions.
MSG = ^
You must run this makefile only from the directory it is in.^
Please `cd` to its location first.
-!error $(MSG)
-!endif
-
-PROJECT = tk
-!include "rules.vc"
-
-_INSTALLDIR = $(INSTALLDIR:/=\)
-
-!if !defined(TCLDIR)
-!if exist($(_INSTALLDIR)\include\tcl.h)
-TCLINSTALL = 1
-_TCLDIR = $(_INSTALLDIR)
-!else
-MSG=^
-Don't know where tcl.h is. Set the _TCLDIR macro.
!error $(MSG)
!endif
-!else
-_TCLDIR = $(TCLDIR:/=\)
-!if exist($(_TCLDIR)\include\tcl.h)
-TCLINSTALL = 1
-!elseif exist($(_TCLDIR)\generic\tcl.h)
-TCLINSTALL = 0
-!else
-MSG =^
-Don't know where tcl.h is. the TCLDIR macro doesn't appear correct.
-!error $(MSG)
-!endif
-!endif
-!if $(TCLINSTALL)
-!message *** Warning: Tk requires the source distribution of Tcl to build from,
-!message *** at this time, sorry. Please set the TCLDIR macro to point to the
-!message *** Tcl sources.
-!endif
+PROJECT = tcl
+!include "rules.vc"
STUBPREFIX = $(PROJECT)stub
DOTVERSION = 8.4
VERSION = $(DOTVERSION:.=)
-WISHNAMEPREFIX = wish
+
+DDEDOTVERSION = 1.2
+DDEVERSION = $(DDEDOTVERSION:.=)
+
+REGDOTVERSION = 1.0
+REGVERSION = $(REGDOTVERSION:.=)
BINROOT = .
ROOT = ..
-TCLIMPLIBNAME = tcl$(VERSION)$(SUFX).lib
-TCLLIBNAME = tcl$(VERSION)$(SUFX).$(EXT)
-TCLSTUBLIBNAME = tclstub$(VERSION).lib
-
-TCLREGLIBNAME = tclreg10$(SUFX:t=).lib
-TCLDDELIBNAME = tcldde12$(SUFX:t=).lib
-
-TKIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
-TKLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
-TKLIB = $(OUT_DIR)\$(TKLIBNAME)
-
-TKSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
-TKSTUBLIB = $(OUT_DIR)\$(TKSTUBLIBNAME)
-
-!if $(TCLINSTALL)
-TCLSH = $(_INSTALLDIR)\bin\tclsh$(VERSION)$(SUFX).exe
-TCLSTUBLIB = $(_INSTALLDIR)\lib\$(TCLSTUBLIBNAME)
-TCLIMPLIB = $(_INSTALLDIR)\lib\$(TCLIMPLIBNAME)
-TCL_LIBRARY = $(_INSTALLDIR)\lib
-TCLREGLIB = $(_INSTALLDIR)\lib\$(TCLREGLIBNAME)
-TCLDDELIB = $(_INSTALLDIR)\lib\$(TCLDDELIBNAME)
-TCLTMP_DIR = \must\have\tcl\sources\to\build\this\target
-COFFBASE = \must\have\tcl\sources\to\build\this\target
-TOOLSDIR = \must\have\tcl\sources\to\build\this\target
-!else
-TCLSH = $(_TCLDIR)\win\$(BUILDDIRTOP)\tclsh$(VERSION)$(SUFX).exe
-TCLSTUBLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLSTUBLIBNAME)
-TCLIMPLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLIMPLIBNAME)
-TCL_LIBRARY = $(_TCLDIR)\library
-TCLREGLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLREGLIBNAME)
-TCLDDELIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLDDELIBNAME)
-TCLTMP_DIR = $(_TCLDIR)\win\$(TMP_DIR:tk=tcl)
-COFFBASE = $(_TCLDIR)\win\coffbase.txt
-TOOLSDIR = $(_TCLDIR)\tools
-!endif
+TCLIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
+TCLLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
+TCLLIB = $(OUT_DIR)\$(TCLLIBNAME)
+
+TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
+TCLSTUBLIB = $(OUT_DIR)\$(TCLSTUBLIBNAME)
+
+TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe
+TCLSH = $(OUT_DIR)\$(TCLSHNAME)
+TCLPIPEDLLNAME = $(PROJECT)pip$(VERSION).dll
+TCLPIPEDLL = $(OUT_DIR)\$(TCLPIPEDLLNAME)
-WISH = $(OUT_DIR)\$(WISHNAMEPREFIX)$(VERSION)$(SUFX).exe
-WISHC = $(OUT_DIR)\$(WISHNAMEPREFIX)c$(VERSION)$(SUFX).exe
+TCLREGLIBNAME = $(PROJECT)reg$(REGVERSION)$(SUFX:t=).$(EXT)
+TCLREGLIB = $(OUT_DIR)\$(TCLREGLIBNAME)
-TKTEST = $(OUT_DIR)\$(PROJECT)test.exe
+TCLDDELIBNAME = $(PROJECT)dde$(DDEVERSION)$(SUFX:t=).$(EXT)
+TCLDDELIB = $(OUT_DIR)\$(TCLDDELIBNAME)
+
+TCLTEST = $(OUT_DIR)\$(PROJECT)test.exe
CAT32 = $(OUT_DIR)\cat32.exe
-RMDIR = .\rmd.bat
-RM = del
+### Make sure we use backslash only.
+_INSTALLDIR = $(INSTALLDIR:/=\)
LIB_INSTALL_DIR = $(_INSTALLDIR)\lib
BIN_INSTALL_DIR = $(_INSTALLDIR)\bin
DOC_INSTALL_DIR = $(_INSTALLDIR)\doc
-SCRIPT_INSTALL_DIR = $(_INSTALLDIR)\lib\$(PROJECT)$(DOTVERSION)
+SCRIPT_INSTALL_DIR = $(_INSTALLDIR)\lib\tcl$(DOTVERSION)
INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\include
-WISHOBJS = \
- $(TMP_DIR)\winMain.obj \
+TCLSHOBJS = \
+ $(TMP_DIR)\tclAppInit.obj \
!if $(TCL_LINKWITHEXTENSIONS)
- $(TCLDDELIB) \
- $(TCLREGLIB) \
-!endif
- $(TMP_DIR)\wish.res
-
-TKTESTOBJS = \
- $(TMP_DIR)\tkTest.obj \
- $(TMP_DIR)\tkSquare.obj \
- $(TMP_DIR)\testMain.obj \
- $(TMP_DIR)\tkWinTest.obj \
- $(TCLTMP_DIR)\tclThreadTest.obj
-
-XLIBOBJS = \
- $(TMP_DIR)\xcolors.obj \
- $(TMP_DIR)\xdraw.obj \
- $(TMP_DIR)\xgc.obj \
- $(TMP_DIR)\ximage.obj \
- $(TMP_DIR)\xutil.obj
-
-TKOBJS = \
- $(TMP_DIR)\tkConsole.obj \
- $(TMP_DIR)\tkUnixMenubu.obj \
- $(TMP_DIR)\tkUnixScale.obj \
- $(XLIBOBJS) \
- $(TMP_DIR)\tkWin3d.obj \
- $(TMP_DIR)\tkWin32Dll.obj \
- $(TMP_DIR)\tkWinButton.obj \
- $(TMP_DIR)\tkWinClipboard.obj \
- $(TMP_DIR)\tkWinColor.obj \
- $(TMP_DIR)\tkWinConfig.obj \
- $(TMP_DIR)\tkWinCursor.obj \
- $(TMP_DIR)\tkWinDialog.obj \
- $(TMP_DIR)\tkWinDraw.obj \
- $(TMP_DIR)\tkWinEmbed.obj \
- $(TMP_DIR)\tkWinFont.obj \
- $(TMP_DIR)\tkWinImage.obj \
- $(TMP_DIR)\tkWinInit.obj \
- $(TMP_DIR)\tkWinKey.obj \
- $(TMP_DIR)\tkWinMenu.obj \
- $(TMP_DIR)\tkWinPixmap.obj \
- $(TMP_DIR)\tkWinPointer.obj \
- $(TMP_DIR)\tkWinRegion.obj \
- $(TMP_DIR)\tkWinScrlbr.obj \
- $(TMP_DIR)\tkWinSend.obj \
- $(TMP_DIR)\tkWinWindow.obj \
- $(TMP_DIR)\tkWinWm.obj \
- $(TMP_DIR)\tkWinX.obj \
- $(TMP_DIR)\stubs.obj \
- $(TMP_DIR)\tk3d.obj \
- $(TMP_DIR)\tkArgv.obj \
- $(TMP_DIR)\tkAtom.obj \
- $(TMP_DIR)\tkBind.obj \
- $(TMP_DIR)\tkBitmap.obj \
- $(TMP_DIR)\tkButton.obj \
- $(TMP_DIR)\tkCanvArc.obj \
- $(TMP_DIR)\tkCanvBmap.obj \
- $(TMP_DIR)\tkCanvImg.obj \
- $(TMP_DIR)\tkCanvLine.obj \
- $(TMP_DIR)\tkCanvPoly.obj \
- $(TMP_DIR)\tkCanvPs.obj \
- $(TMP_DIR)\tkCanvText.obj \
- $(TMP_DIR)\tkCanvUtil.obj \
- $(TMP_DIR)\tkCanvWind.obj \
- $(TMP_DIR)\tkCanvas.obj \
- $(TMP_DIR)\tkClipboard.obj \
- $(TMP_DIR)\tkCmds.obj \
- $(TMP_DIR)\tkColor.obj \
- $(TMP_DIR)\tkConfig.obj \
- $(TMP_DIR)\tkCursor.obj \
- $(TMP_DIR)\tkEntry.obj \
- $(TMP_DIR)\tkError.obj \
- $(TMP_DIR)\tkEvent.obj \
- $(TMP_DIR)\tkFileFilter.obj \
- $(TMP_DIR)\tkFocus.obj \
- $(TMP_DIR)\tkFont.obj \
- $(TMP_DIR)\tkFrame.obj \
- $(TMP_DIR)\tkGC.obj \
- $(TMP_DIR)\tkGeometry.obj \
- $(TMP_DIR)\tkGet.obj \
- $(TMP_DIR)\tkGrab.obj \
- $(TMP_DIR)\tkGrid.obj \
- $(TMP_DIR)\tkImage.obj \
- $(TMP_DIR)\tkImgBmap.obj \
- $(TMP_DIR)\tkImgGIF.obj \
- $(TMP_DIR)\tkImgPPM.obj \
- $(TMP_DIR)\tkImgPhoto.obj \
- $(TMP_DIR)\tkImgUtil.obj \
- $(TMP_DIR)\tkListbox.obj \
- $(TMP_DIR)\tkMacWinMenu.obj \
- $(TMP_DIR)\tkMain.obj \
- $(TMP_DIR)\tkMenu.obj \
- $(TMP_DIR)\tkMenubutton.obj \
- $(TMP_DIR)\tkMenuDraw.obj \
- $(TMP_DIR)\tkMessage.obj \
- $(TMP_DIR)\tkPanedWindow.obj \
- $(TMP_DIR)\tkObj.obj \
- $(TMP_DIR)\tkOldConfig.obj \
- $(TMP_DIR)\tkOption.obj \
- $(TMP_DIR)\tkPack.obj \
- $(TMP_DIR)\tkPlace.obj \
- $(TMP_DIR)\tkPointer.obj \
- $(TMP_DIR)\tkRectOval.obj \
- $(TMP_DIR)\tkScale.obj \
- $(TMP_DIR)\tkScrollbar.obj \
- $(TMP_DIR)\tkSelect.obj \
- $(TMP_DIR)\tkStyle.obj \
- $(TMP_DIR)\tkText.obj \
- $(TMP_DIR)\tkTextBTree.obj \
- $(TMP_DIR)\tkTextDisp.obj \
- $(TMP_DIR)\tkTextImage.obj \
- $(TMP_DIR)\tkTextIndex.obj \
- $(TMP_DIR)\tkTextMark.obj \
- $(TMP_DIR)\tkTextTag.obj \
- $(TMP_DIR)\tkTextWind.obj \
- $(TMP_DIR)\tkTrig.obj \
- $(TMP_DIR)\tkUndo.obj \
- $(TMP_DIR)\tkUtil.obj \
- $(TMP_DIR)\tkVisual.obj \
- $(TMP_DIR)\tkStubInit.obj \
- $(TMP_DIR)\tkStubLib.obj \
- $(TMP_DIR)\tkWindow.obj \
-!if !$(STATIC_BUILD)
- $(TMP_DIR)\tk.res
+ $(TMP_DIR)\tclWinReg.obj \
+ $(TMP_DIR)\tclWinDde.obj \
!endif
+ $(TMP_DIR)\tclsh.res
-TKSTUBOBJS = \
- $(TMP_DIR)\tkStubLib.obj \
- $(TMP_DIR)\tkStubImg.obj
+TCLTESTOBJS = \
+ $(TMP_DIR)\tclTest.obj \
+ $(TMP_DIR)\tclTestObj.obj \
+ $(TMP_DIR)\tclTestProcBodyObj.obj \
+ $(TMP_DIR)\tclThreadTest.obj \
+ $(TMP_DIR)\tclWinTest.obj \
+!if $(TCL_LINKWITHEXTENSIONS)
+ $(TMP_DIR)\tclWinReg.obj \
+ $(TMP_DIR)\tclWinDde.obj \
+!endif
+ $(TMP_DIR)\testMain.obj
+
+TCLOBJS = \
+ $(TMP_DIR)\regcomp.obj \
+ $(TMP_DIR)\regexec.obj \
+ $(TMP_DIR)\regfree.obj \
+ $(TMP_DIR)\regerror.obj \
+ $(TMP_DIR)\strftime.obj \
+ $(TMP_DIR)\strtoll.obj \
+ $(TMP_DIR)\strtoull.obj \
+ $(TMP_DIR)\tclAlloc.obj \
+ $(TMP_DIR)\tclAsync.obj \
+ $(TMP_DIR)\tclBasic.obj \
+ $(TMP_DIR)\tclBinary.obj \
+ $(TMP_DIR)\tclCkalloc.obj \
+ $(TMP_DIR)\tclClock.obj \
+ $(TMP_DIR)\tclCmdAH.obj \
+ $(TMP_DIR)\tclCmdIL.obj \
+ $(TMP_DIR)\tclCmdMZ.obj \
+ $(TMP_DIR)\tclCompCmds.obj \
+ $(TMP_DIR)\tclCompExpr.obj \
+ $(TMP_DIR)\tclCompile.obj \
+ $(TMP_DIR)\tclDate.obj \
+ $(TMP_DIR)\tclEncoding.obj \
+ $(TMP_DIR)\tclEnv.obj \
+ $(TMP_DIR)\tclEvent.obj \
+ $(TMP_DIR)\tclExecute.obj \
+ $(TMP_DIR)\tclFCmd.obj \
+ $(TMP_DIR)\tclFileName.obj \
+ $(TMP_DIR)\tclGet.obj \
+ $(TMP_DIR)\tclHash.obj \
+ $(TMP_DIR)\tclHistory.obj \
+ $(TMP_DIR)\tclIndexObj.obj \
+ $(TMP_DIR)\tclInterp.obj \
+ $(TMP_DIR)\tclIO.obj \
+ $(TMP_DIR)\tclIOCmd.obj \
+ $(TMP_DIR)\tclIOGT.obj \
+ $(TMP_DIR)\tclIOSock.obj \
+ $(TMP_DIR)\tclIOUtil.obj \
+ $(TMP_DIR)\tclLink.obj \
+ $(TMP_DIR)\tclLiteral.obj \
+ $(TMP_DIR)\tclListObj.obj \
+ $(TMP_DIR)\tclLoad.obj \
+ $(TMP_DIR)\tclMain.obj \
+ $(TMP_DIR)\tclNamesp.obj \
+ $(TMP_DIR)\tclNotify.obj \
+ $(TMP_DIR)\tclObj.obj \
+ $(TMP_DIR)\tclPanic.obj \
+ $(TMP_DIR)\tclParse.obj \
+ $(TMP_DIR)\tclParseExpr.obj \
+ $(TMP_DIR)\tclPipe.obj \
+ $(TMP_DIR)\tclPkg.obj \
+ $(TMP_DIR)\tclPosixStr.obj \
+ $(TMP_DIR)\tclPreserve.obj \
+ $(TMP_DIR)\tclProc.obj \
+ $(TMP_DIR)\tclRegexp.obj \
+ $(TMP_DIR)\tclResolve.obj \
+ $(TMP_DIR)\tclResult.obj \
+ $(TMP_DIR)\tclScan.obj \
+ $(TMP_DIR)\tclStringObj.obj \
+ $(TMP_DIR)\tclStubInit.obj \
+ $(TMP_DIR)\tclStubLib.obj \
+ $(TMP_DIR)\tclThread.obj \
+ $(TMP_DIR)\tclThreadJoin.obj \
+ $(TMP_DIR)\tclTimer.obj \
+ $(TMP_DIR)\tclUtf.obj \
+ $(TMP_DIR)\tclUtil.obj \
+ $(TMP_DIR)\tclVar.obj \
+ $(TMP_DIR)\tclWin32Dll.obj \
+ $(TMP_DIR)\tclWinChan.obj \
+ $(TMP_DIR)\tclWinConsole.obj \
+ $(TMP_DIR)\tclWinSerial.obj \
+ $(TMP_DIR)\tclWinError.obj \
+ $(TMP_DIR)\tclWinFCmd.obj \
+ $(TMP_DIR)\tclWinFile.obj \
+ $(TMP_DIR)\tclWinInit.obj \
+ $(TMP_DIR)\tclWinLoad.obj \
+ $(TMP_DIR)\tclWinMtherr.obj \
+ $(TMP_DIR)\tclWinNotify.obj \
+ $(TMP_DIR)\tclWinPipe.obj \
+ $(TMP_DIR)\tclWinSock.obj \
+ $(TMP_DIR)\tclWinThrd.obj \
+ $(TMP_DIR)\tclWinTime.obj \
+!if !$(STATIC_BUILD)
+ $(TMP_DIR)\tcl.res
+!endif
+TCLSTUBOBJS = $(TMP_DIR)\tclStubLib.obj
-WINDIR = $(ROOT)\win
-GENERICDIR = $(ROOT)\generic
-XLIBDIR = $(ROOT)\xlib
-BITMAPDIR = $(ROOT)\bitmaps
+### The following paths CANNOT have spaces in them.
+COMPATDIR = $(ROOT)\compat
DOCDIR = $(ROOT)\doc
-RCDIR = $(WINDIR)\rc
-
-!if $(TCLINSTALL)
-TCL_INCLUDES = -I "$(_TCLDIR)\include"
-!else
-TCL_INCLUDES = -I "$(_TCLDIR)\win" -I "$(_TCLDIR)\generic"
-!endif
-TK_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)" -I"$(BITMAPDIR)" -I"$(XLIBDIR)" \
- $(TCL_INCLUDES)
-
-TK_DEFINES = $(OPTDEFINES)
+GENERICDIR = $(ROOT)\generic
+TOOLSDIR = $(ROOT)\tools
+WINDIR = $(ROOT)\win
#---------------------------------------------------------------------
# Compile flags
#---------------------------------------------------------------------
-!if $(DEBUG)
-!if "$(MACHINE)" == "IA64"
-cdebug = -Od -Zi
+!if !$(DEBUG)
+!if $(OPTIMIZING)
+### This cranks the optimization level to maximize speed
+cdebug = -O2 -Op -Gs
!else
-cdebug = -Z7 -Od -WX
+cdebug =
!endif
+!else if "$(MACHINE)" == "IA64"
+### Warnings are too many, can't support warnings into errors.
+cdebug = -Z7 -Od
!else
-# This cranks the optimization level up. We can't use -02 because sometimes
-# it causes problems.
-cdebug = -Oti
+cdebug = -Z7 -WX -Od
!endif
-# declarations common to all compiler options
+### Declarations common to all compiler options
cflags = -nologo -c -W3 -YX -Fp$(TMP_DIR)^\
!if $(PENT_0F_ERRATA)
@@ -427,10 +345,10 @@ crt = -MD$(DBGX)
crt = -MT$(DBGX)
!endif
-BASE_CLFAGS = $(cdebug) $(cflags) $(crt) $(TK_INCLUDES)
-TK_CFLAGS = $(BASE_CLFAGS) $(TK_DEFINES) -DUSE_TCL_STUBS
-CON_CFLAGS = $(cdebug) $(cflags) $(crt) -DCONSOLE
-WISH_CFLAGS = $(BASE_CLFAGS) $(TK_DEFINES)
+TCL_INCLUDES = -I"$(WINDIR)" -I"$(GENERICDIR)"
+BASE_CLFAGS = $(cflags) $(cdebug) $(crt) $(TCL_INCLUDES)
+CON_CFLAGS = $(cflags) $(cdebug) $(crt) -DCONSOLE
+TCL_CFLAGS = $(BASE_CLFAGS) $(OPTDEFINES)
#---------------------------------------------------------------------
@@ -443,7 +361,7 @@ ldebug = -debug:full -debugtype:cv
ldebug = -release -opt:ref -opt:icf,3
!endif
-# declarations common to all linker options
+### Declarations common to all linker options
lflags = -nologo -machine:$(MACHINE) $(ldebug)
!if $(PROFILE)
@@ -451,10 +369,10 @@ lflags = $(lflags) -profile
!endif
!if $(ALIGN98_HACK) && !$(STATIC_BUILD)
-# align sections for PE size savings.
+### Align sections for PE size savings.
lflags = $(lflags) -opt:nowin98
!else if !$(ALIGN98_HACK) && $(STATIC_BUILD)
-# align sections for speed in loading by choosing the virtual page size.
+### Align sections for speed in loading by choosing the virtual page size.
lflags = $(lflags) -align:4096
!endif
@@ -467,130 +385,116 @@ conlflags = $(lflags) -subsystem:console
guilflags = $(lflags) -subsystem:windows
baselibs = kernel32.lib advapi32.lib user32.lib
-guilibs = $(baselibs) shell32.lib gdi32.lib comdlg32.lib winspool.lib imm32.lib comctl32.lib
#---------------------------------------------------------------------
-# TkTest flags
+# TclTest flags
#---------------------------------------------------------------------
-!if "$(TESTPAT)" != ""
-TESTFLAGS = -file $(TESTPAT)
-!endif
+!IF "$(TESTPAT)" != ""
+TESTFLAGS = -file $(TESTPAT)
+!ENDIF
#---------------------------------------------------------------------
# Project specific targets
#---------------------------------------------------------------------
-release: setup $(TKSTUBLIB) $(WISH)
-all: release $(CAT32)
-core: setup $(TKSTUBLIB) $(TKLIB)
-console-wish : $(WISHC)
-install: install-binaries install-libraries install-docs
-tktest: setup $(TKTEST) $(CAT32)
+release: setup $(TCLSH) $(TCLSTUBLIB) dlls
+core: setup $(TCLLIB) $(TCLSTUBLIB)
+shell: setup $(TCLSH)
+dlls: setup $(TCLPIPEDLL) $(TCLREGLIB) $(TCLDDELIB)
+all: setup $(TCLSH) $(TCLSTUBLIB) dlls $(CAT32)
+tcltest: setup $(TCLTEST) dlls $(CAT32)
+install: install-binaries install-libraries install-docs
-test: setup $(TKTEST) $(TKLIB) $(CAT32)
- set TCL_LIBRARY=$(TCL_LIBRARY)
-!if $(TCLINSTALL)
- set PATH=$(_TCLDIR)\bin;$(PATH)
-!else
- set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
-!endif
+test: setup $(TCLTEST) dlls $(CAT32)
+ set TCL_LIBRARY=$(ROOT)/library
!if "$(OS)" == "Windows_NT" || "$(MSVCDIR)" == "IDE"
- $(TKTEST) $(ROOT)/tests/all.tcl $(TESTFLAGS) | $(CAT32)
-!else
- $(TKTEST) $(ROOT)/tests/all.tcl $(TESTFLAGS) | $(CAT32)
-!endif
-
-runtest: setup $(TKTEST) $(TKLIB) $(CAT32)
- set TCL_LIBRARY=$(TCL_LIBRARY)
-!if $(TCLINSTALL)
- set PATH=$(_TCLDIR)\bin;$(PATH)
+ $(TCLTEST) $(ROOT)/tests/all.tcl $(TESTFLAGS)
!else
- set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
+ $(TCLTEST) $(ROOT)/tests/all.tcl $(TESTFLAGS) > tests.log
+ type tests.log | more
!endif
- $(TKTEST)
-rundemo: setup $(TKTEST) $(TKLIB) $(CAT32)
- set TCL_LIBRARY=$(TCL_LIBRARY)
-!if $(TCLINSTALL)
- set PATH=$(_TCLDIR)\bin;$(PATH)
-!else
- set PATH=$(_TCLDIR)\win\$(BUILDDIRTOP);$(PATH)
-!endif
- $(TKTEST) $(ROOT)\library\demos\widget
+runtest: setup $(TCLTEST) dlls $(CAT32)
+ set TCL_LIBRARY=$(ROOT)/library
+ $(TCLTEST)
setup:
@if not exist $(OUT_DIR)\nul mkdir $(OUT_DIR)
@if not exist $(TMP_DIR)\nul mkdir $(TMP_DIR)
!if !$(STATIC_BUILD)
-$(TKIMPLIB): $(TKLIB)
+$(TCLIMPLIB): $(TCLLIB)
!endif
-$(TKLIB): $(TKOBJS)
+$(TCLLIB): $(TCLOBJS)
!if $(STATIC_BUILD)
$(lib32) -nologo -out:$@ @<<
$**
<<
!else
- $(link32) $(dlllflags) -base:@$(COFFBASE),tk -out:$@ $(guilibs) \
- $(TCLSTUBLIB) @<<
+ $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tcl -out:$@ \
+ $(baselibs) @<<
$**
<<
-@del $*.exp
!endif
+$(TCLSTUBLIB): $(TCLSTUBOBJS)
+ $(lib32) -nologo -out:$@ $(TCLSTUBOBJS)
-$(TKSTUBLIB): $(TKSTUBOBJS)
- $(lib32) -nologo -out:$@ $**
-
-
-$(WISH): $(WISHOBJS) $(TKIMPLIB)
- $(link32) $(guilflags) -out:$@ $(guilibs) $(TCLIMPLIB) $**
-
-$(WISHC): $(WISHOBJS) $(TKIMPLIB)
- $(link32) $(conlflags) -out:$@ $(guilibs) $(TCLIMPLIB) $**
+$(TCLSH): $(TCLSHOBJS) $(TCLIMPLIB)
+ $(link32) $(conlflags) -stack:2300000 -out:$@ $(baselibs) $**
-$(TKTEST): $(TKTESTOBJS) $(TKIMPLIB)
- $(link32) $(guilflags) -out:$@ $(guilibs) $(TCLIMPLIB) $**
+$(TCLTEST): $(TCLTESTOBJS) $(TCLIMPLIB)
+ $(link32) $(conlflags) -stack:2300000 -out:$@ $(baselibs) $**
+$(TCLPIPEDLL): $(WINDIR)\stub16.c
+ $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $(WINDIR)\stub16.c
+ $(link32) $(conlflags) -out:$@ $(TMP_DIR)\stub16.obj $(baselibs)
-$(CAT32): $(_TCLDIR)\win\cat.c
- $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $?
- $(link32) $(conlflags) -out:$@ -stack:16384 $(TMP_DIR)\cat.obj $(baselibs)
+!if $(STATIC_BUILD)
+$(TCLDDELIB): $(TMP_DIR)\tclWinDde.obj
+ $(lib32) -nologo -out:$@ $(TMP_DIR)\tclWinDde.obj
+!else
+$(TCLDDELIB): $(TMP_DIR)\tclWinDde.obj $(TCLSTUBLIB)
+ $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tcldde -out:$@ \
+ $** $(baselibs)
+ -@del $*.exp
+ -@del $*.lib
+!endif
-install-binaries:
- @xcopy /i /y "$(WISH)" "$(BIN_INSTALL_DIR)\"
-!if "$(TKLIB)" != "$(TKIMPLIB)"
- @xcopy /i /y "$(TKLIB)" "$(BIN_INSTALL_DIR)\"
+!if $(STATIC_BUILD)
+$(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj
+ $(lib32) -nologo -out:$@ $(TMP_DIR)\tclWinReg.obj
+!else
+$(TCLREGLIB): $(TMP_DIR)\tclWinReg.obj $(TCLSTUBLIB)
+ $(link32) $(dlllflags) -base:@$(WINDIR)\coffbase.txt,tclreg -out:$@ \
+ $** $(baselibs)
+ -@del $*.exp
+ -@del $*.lib
!endif
- @xcopy /i /y "$(TKIMPLIB)" "$(LIB_INSTALL_DIR)\"
- @xcopy /i /y "$(TKSTUBLIB)" "$(LIB_INSTALL_DIR)\"
-install-libraries:
- @xcopy /i /y "$(GENERICDIR)\tk.h" "$(INCLUDE_INSTALL_DIR)\"
- @xcopy /i /y "$(GENERICDIR)\tkDecls.h" "$(INCLUDE_INSTALL_DIR)\"
- @xcopy /i /y "$(GENERICDIR)\tkPlatDecls.h" "$(INCLUDE_INSTALL_DIR)\"
- @xcopy /i /y "$(GENERICDIR)\tkIntXlibDecls.h" "$(INCLUDE_INSTALL_DIR)\"
- @xcopy /i /y "$(XLIBDIR)\X11\*.h" "$(INCLUDE_INSTALL_DIR)\X11\"
- @xcopy /i /y "$(ROOT)\library\*" "$(SCRIPT_INSTALL_DIR)\"
- @xcopy /i /y "$(ROOT)\library\*" "$(SCRIPT_INSTALL_DIR)\"
- @xcopy /i /y "$(ROOT)\library\demos\*" "$(SCRIPT_INSTALL_DIR)\demos\"
- @xcopy /i /y "$(ROOT)\library\demos\images\*" "$(SCRIPT_INSTALL_DIR)\demos\images\"
- @xcopy /i /y "$(ROOT)\library\images\*" "$(SCRIPT_INSTALL_DIR)\images\"
- @xcopy /i /y "$(ROOT)\library\msgs\*" "$(SCRIPT_INSTALL_DIR)\msgs\"
+$(CAT32): $(WINDIR)\cat.c
+ $(cc32) $(CON_CFLAGS) -Fo$(TMP_DIR)\ $?
+ $(link32) $(conlflags) -out:$@ -stack:16384 $(TMP_DIR)\cat.obj \
+ $(baselibs)
#---------------------------------------------------------------------
-# Regenerate the stubs files.
+# Regenerate the stubs files. [Development use only]
#---------------------------------------------------------------------
genstubs:
- $(TCLSH) $(_TCLDIR)\tools\genStubs.tcl $(GENERICDIR) \
- $(GENERICDIR)\$(PROJECT).decls $(GENERICDIR)\$(PROJECT)Int.decls
+!if !exist($(TCLSH))
+ @echo Build tclsh first!
+!else
+ $(TCLSH) $(TOOLSDIR:\=/)\genStubs.tcl $(GENERICDIR:\=/) \
+ $(GENERICDIR:\=/)/tcl.decls $(GENERICDIR:\=/)/tclInt.decls
+!endif
#---------------------------------------------------------------------
@@ -602,27 +506,27 @@ depend:
@echo Build tclsh first!
!else
$(TCLSH) $(TOOLSDIR:\=/)/mkdepend.tcl -vc32 -out:"$(OUT_DIR)\depend.mk" \
- -passthru:"-DBUILD_tcl $(TK_INCLUDES:"="")" $(GENERICDIR) \
+ -passthru:"-DBUILD_tcl $(TCL_INCLUDES:"="")" $(GENERICDIR) \
$(COMPATDIR) $(WINDIR) @<<
-$(TKOBJS)
+$(TCLOBJS)
<<
!endif
#---------------------------------------------------------------------
-# Regenerate the windows help files.
+# Build the windows help file.
#---------------------------------------------------------------------
-HLPBASE = $(PROJECT)$(VERSION)
-HELPFILE = $(OUT_DIR)\$(HLPBASE).hlp
-HELPCNT = $(OUT_DIR)\$(HLPBASE).cnt
+TCLHLPBASE = $(PROJECT)$(VERSION)
+HELPFILE = $(OUT_DIR)\$(TCLHLPBASE).hlp
+HELPCNT = $(OUT_DIR)\$(TCLHLPBASE).cnt
DOCTMP_DIR = $(OUT_DIR)\$(PROJECT)_docs
HELPRTF = $(DOCTMP_DIR)\$(PROJECT).rtf
MAN2HELP = $(DOCTMP_DIR)\man2help.tcl
MAN2HELP2 = $(DOCTMP_DIR)\man2help2.tcl
INDEX = $(DOCTMP_DIR)\index.tcl
-BMP = $(DOCTMP_DIR)\lamp.bmp
-BMP_NOPATH = lamp.bmp
+BMP = $(DOCTMP_DIR)\feather.bmp
+BMP_NOPATH = feather.bmp
MAN2TCL = $(DOCTMP_DIR)\man2tcl.exe
winhelp: docsetup $(HELPFILE)
@@ -630,19 +534,16 @@ winhelp: docsetup $(HELPFILE)
docsetup:
@if not exist $(DOCTMP_DIR)\nul mkdir $(DOCTMP_DIR)
-$(MAN2HELP) $(MAN2HELP2) $(INDEX): $(TOOLSDIR)\$$(@F)
+$(MAN2HELP) $(MAN2HELP2) $(INDEX) $(BMP): $(TOOLSDIR)\$$(@F)
copy $(TOOLSDIR)\$(@F) $(@D)
-$(BMP):
- copy $(WINDIR)\$(@F) $(@D)
-
$(HELPFILE): $(HELPRTF) $(BMP)
cd $(DOCTMP_DIR)
start /wait hcrtf.exe -x <<$(PROJECT).hpj
[OPTIONS]
COMPRESS=12 Hall Zeck
LCID=0x409 0x0 0x0 ; English (United States)
-TITLE=Tk Reference Manual
+TITLE=Tcl/Tk Reference Manual
BMROOT=.
CNT=$(@B).cnt
HLP=$(@B).hlp
@@ -651,7 +552,7 @@ HLP=$(@B).hlp
$(PROJECT).rtf
[WINDOWS]
-main="Tcl/Tk Reference Manual",,27648,(r15263976),(r4227327)
+main="Tcl/Tk Reference Manual",,27648,(r15263976),(r65535)
[CONFIG]
BrowseButtons()
@@ -667,114 +568,90 @@ CreateButton(4, "FAQ", ExecFile("http://www.purl.org/NET/Tcl-FAQ/"))
$(MAN2TCL): $(TOOLSDIR)\$$(@B).c
$(cc32) -nologo -G4 -ML -O2 -Fo$(@D)\ $(TOOLSDIR)\$(@B).c -link -out:$@
-$(HELPRTF): $(MAN2TCL) $(MAN2HELP) $(MAN2HELP2) $(INDEX)
+$(HELPRTF): $(MAN2TCL) $(MAN2HELP) $(MAN2HELP2) $(INDEX) $(DOCDIR)\*
$(TCLSH) $(MAN2HELP:\=/) -bitmap $(BMP_NOPATH) $(PROJECT) $(VERSION) $(DOCDIR:\=/)
install-docs:
!if exist($(HELPFILE))
@xcopy /i /y "$(HELPFILE)" "$(DOC_INSTALL_DIR)\"
@xcopy /i /y "$(HELPCNT)" "$(DOC_INSTALL_DIR)\"
- $(TCLSH) <<
-puts "Installing $(PROJECT)'s helpfile contents into Tcl's ..."
-set f [open "$(DOC_INSTALL_DIR:\=/)/tcl$(VERSION).cnt" r]
-while {![eof $$f]} {
- if {[regexp {:Include $(PROJECT)([0-9]{2}).cnt} [gets $$f] dummy ver]} {
- if {$$ver == $(VERSION)} {
- puts "Already installed."
- exit
- } else {
- # do something here logical to remove (or replace) it.
- puts "$$ver != $(VERSION), unfinished code path, die, die!"
- exit 1
- }
- }
-}
-close $$f
-set f [open $(DOC_INSTALL_DIR:\=/)/tcl$(VERSION).cnt a]
-puts $$f {:Include $(HLPBASE).cnt}
-close $$f
-<<
- start /wait winhlp32 -g $(DOC_INSTALL_DIR)\tcl$(VERSION).hlp
!endif
+
#---------------------------------------------------------------------
# Special case object file targets
#---------------------------------------------------------------------
-$(TMP_DIR)\testMain.obj: $(WINDIR)\winMain.c
+$(TMP_DIR)\testMain.obj: $(WINDIR)\tclAppInit.c
!if $(TCL_LINKWITHEXTENSIONS)
- $(cc32) $(WISH_CFLAGS) -DTK_TEST -DTCL_LINKWITHEXTENSIONS -Fo$@ $?
+ $(cc32) $(TCL_CFLAGS) -DTCL_TEST -DTCL_LINKWITHEXTENSIONS -Fo$@ $?
!else
- $(cc32) $(WISH_CFLAGS) -DTK_TEST -Fo$@ $?
+ $(cc32) $(TCL_CFLAGS) -DTCL_TEST -Fo$@ $?
!endif
-$(TMP_DIR)\tkTest.obj: $(GENERICDIR)\tkTest.c
- $(cc32) $(WISH_CFLAGS) -Fo$@ $?
+$(TMP_DIR)\tclTest.obj: $(GENERICDIR)\tclTest.c
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-$(TMP_DIR)\tkWinTest.obj: $(WINDIR)\tkWinTest.c
- $(cc32) $(WISH_CFLAGS) -Fo$@ $?
+$(TMP_DIR)\tclTestObj.obj: $(GENERICDIR)\tclTestObj.c
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-$(TMP_DIR)\tkSquare.obj: $(GENERICDIR)\tkSquare.c
- $(cc32) $(WISH_CFLAGS) -Fo$@ $?
+$(TMP_DIR)\tclWinTest.obj: $(WINDIR)\tclWinTest.c
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?
-$(TMP_DIR)\winMain.obj: $(WINDIR)\winMain.c
+$(TMP_DIR)\tclAppInit.obj: $(WINDIR)\tclAppInit.c
!if $(TCL_LINKWITHEXTENSIONS)
- $(cc32) $(WISH_CFLAGS) -DTCL_LINKWITHEXTENSIONS -Fo$@ $?
+ $(cc32) $(TCL_CFLAGS) -DTCL_LINKWITHEXTENSIONS -Fo$@ $?
+!else
+ $(cc32) $(TCL_CFLAGS) -Fo$@ $?
+!endif
+
+### The following objects should be built using the stub interfaces
+
+$(TMP_DIR)\tclWinReg.obj: $(WINDIR)\tclWinReg.c
+!if $(STATIC_BUILD)
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?
!else
- $(cc32) $(WISH_CFLAGS) -Fo$@ $?
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?
!endif
-# The following objects are part of the stub library and should not
-# be built as DLL objects but none of the symbols should be exported
-# and no reference made to a C runtime.
-$(TMP_DIR)\tkStubLib.obj : $(GENERICDIR)\tkStubLib.c
- $(cc32) $(cdebug) $(cflags) $(TK_INCLUDES) -Zl -DSTATIC_BUILD -Fo$@ $?
+$(TMP_DIR)\tclWinDde.obj: $(WINDIR)\tclWinDde.c
+!if $(STATIC_BUILD)
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DSTATIC_BUILD -Fo$@ $?
+!else
+ $(cc32) $(BASE_CLFAGS) -DTCL_THREADS=1 -DUSE_TCL_STUBS -Fo$@ $?
+!endif
-$(TMP_DIR)\tkStubImg.obj : $(GENERICDIR)\tkStubImg.c
- $(cc32) $(cdebug) $(cflags) $(TK_INCLUDES) -Zl -DSTATIC_BUILD -Fo$@ $?
+
+### The following objects are part of the stub library and should not
+### be built as DLL objects but none of the symbols should be exported
+
+$(TMP_DIR)\tclStubLib.obj: $(GENERICDIR)\tclStubLib.c
+ $(cc32) $(cdebug) $(cflags) -Zl -DSTATIC_BUILD $(TCL_INCLUDES) -Fo$@ $?
#---------------------------------------------------------------------
# Dedependency rules
#---------------------------------------------------------------------
-$(TMP_DIR)\tk.res: \
- $(RCDIR)\buttons.bmp \
- $(RCDIR)\cursor*.cur \
- $(RCDIR)\tk.ico
-
-$(GENERICDIR)/default.h: $(WINDIR)/tkWinDefault.h
-$(GENERICDIR)/tkButton.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkCanvas.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkEntry.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkFrame.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkListbox.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkMenu.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkMenubutton.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkMessage.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkPanedWindow.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkScale.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkScrollbar.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkText.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkTextIndex.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkTextTag.c: $(GENERICDIR)/default.h
-$(GENERICDIR)/tkUndo.c: $(GENERICDIR)/tkUndo.h
-
-$(GENERICDIR)/tkText.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextBTree.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextDisp.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextDisp.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextImage.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextIndex.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextMark.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextTag.c: $(GENERICDIR)/tkText.h
-$(GENERICDIR)/tkTextWind.c: $(GENERICDIR)/tkText.h
-
-$(GENERICDIR)/tkMacWinMenu.c: $(GENERICDIR)/tkMenu.h
-$(GENERICDIR)/tkMenu.c: $(GENERICDIR)/tkMenu.h
-$(GENERICDIR)/tkMenuDraw.c: $(GENERICDIR)/tkMenu.h
-$(WINDIR)/tkWinMenu.c: $(GENERICDIR)/tkMenu.h
+$(GENERICDIR)\regcomp.c: \
+ $(GENERICDIR)\regguts.h \
+ $(GENERICDIR)\regc_lex.c \
+ $(GENERICDIR)\regc_color.c \
+ $(GENERICDIR)\regc_nfa.c \
+ $(GENERICDIR)\regc_cvec.c \
+ $(GENERICDIR)\regc_locale.c
+$(GENERICDIR)\regcustom.h: \
+ $(GENERICDIR)\tclInt.h \
+ $(GENERICDIR)\tclPort.h \
+ $(GENERICDIR)\regex.h
+$(GENERICDIR)\regexec.c: \
+ $(GENERICDIR)\rege_dfa.c \
+ $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regerror.c: $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regfree.c: $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regfronts.c: $(GENERICDIR)\regguts.h
+$(GENERICDIR)\regguts.h: $(GENERICDIR)\regcustom.h
!if exist("$(OUT_DIR)\depend.mk")
!include "$(OUT_DIR)\depend.mk"
@@ -786,54 +663,134 @@ $(WINDIR)/tkWinMenu.c: $(GENERICDIR)/tkMenu.h
### add a spacer in the output
!message
+
#---------------------------------------------------------------------
# Implicit rules
#---------------------------------------------------------------------
-{$(XLIBDIR)}.c{$(TMP_DIR)}.obj::
- $(cc32) -DBUILD_tk $(TK_CFLAGS) -Fo$(TMP_DIR)\ @<<
+{$(WINDIR)}.c{$(TMP_DIR)}.obj::
+ $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<
$<
<<
{$(GENERICDIR)}.c{$(TMP_DIR)}.obj::
- $(cc32) -DBUILD_tk $(TK_CFLAGS) -Fo$(TMP_DIR)\ @<<
-$<
-<<
-
-{$(WINDIR)}.c{$(TMP_DIR)}.obj::
- $(cc32) -DBUILD_tk $(TK_CFLAGS) -Fo$(TMP_DIR)\ @<<
+ $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<
$<
<<
-{$(ROOT)\unix}.c{$(TMP_DIR)}.obj::
- $(cc32) -DBUILD_tk $(TK_CFLAGS) -Fo$(TMP_DIR)\ @<<
+{$(COMPATDIR)}.c{$(TMP_DIR)}.obj::
+ $(cc32) $(TCL_CFLAGS) -DBUILD_tcl -Fo$(TMP_DIR)\ @<<
$<
<<
-{$(RCDIR)}.rc{$(TMP_DIR)}.res:
- $(rc32) -fo $@ -r -i "$(GENERICDIR)" $(TCL_INCLUDES) \
+{$(WINDIR)}.rc{$(TMP_DIR)}.res:
+ $(rc32) -fo $@ -r -i "$(GENERICDIR)" -D__WIN32__ \
!if $(DEBUG)
- -d DEBUG \
+ -d DEBUG \
!endif
!if $(TCL_THREADS)
- -d TCL_THREADS \
+ -d TCL_THREADS \
!endif
!if $(STATIC_BUILD)
- -d STATIC_BUILD \
+ -d STATIC_BUILD \
!endif
- $<
+ $<
+
+.SUFFIXES:
+.SUFFIXES:.c .rc
+
+
+#---------------------------------------------------------------------
+# Installation.
+#---------------------------------------------------------------------
+
+install-binaries:
+ @echo installing $(TCLLIBNAME)
+!if "$(TCLLIB)" != "$(TCLIMPLIB)"
+ @xcopy /i /y "$(TCLLIB)" "$(BIN_INSTALL_DIR)\"
+!endif
+ @xcopy /i /y "$(TCLIMPLIB)" "$(LIB_INSTALL_DIR)\"
+!if exist($(TCLSH))
+ @echo installing $(TCLSHNAME)
+ @xcopy /i /y "$(TCLSH)" "$(BIN_INSTALL_DIR)\"
+!endif
+!if exist($(TCLPIPEDLL))
+ @echo installing $(TCLPIPEDLLNAME)
+ @xcopy /i /y "$(TCLPIPEDLL)" "$(BIN_INSTALL_DIR)\"
+!endif
+ @echo installing $(TCLSTUBLIBNAME)
+ @xcopy /i /y "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)\"
+
+install-libraries:
+ @echo installing http1.0
+ @xcopy /i /y "$(ROOT)\library\http1.0\*.tcl" \
+ "$(SCRIPT_INSTALL_DIR)\http1.0\"
+ @echo installing http2.4
+ @xcopy /i /y "$(ROOT)\library\http\*.tcl" \
+ "$(SCRIPT_INSTALL_DIR)\http2.4\"
+ @echo installing opt0.4
+ @xcopy /i /y "$(ROOT)\library\opt\*.tcl" \
+ "$(SCRIPT_INSTALL_DIR)\opt0.4\"
+ @echo installing msgcat1.3
+ @xcopy /i /y "$(ROOT)\library\msgcat\*.tcl" \
+ "$(SCRIPT_INSTALL_DIR)\msgcat1.3\"
+ @echo installing tcltest2.2
+ @xcopy /i /y "$(ROOT)\library\tcltest\*.tcl" \
+ "$(SCRIPT_INSTALL_DIR)\tcltest2.2\"
+ @echo installing $(TCLDDELIBNAME)
+!if $(STATIC_BUILD)
+ @xcopy /i /y "$(TCLDDELIB)" "$(LIB_INSTALL_DIR)\"
+!else
+ @xcopy /i /y "$(TCLDDELIB)" "$(LIB_INSTALL_DIR)\dde$(DDEDOTVERSION)\"
+ @xcopy /i /y "$(ROOT)\library\dde\pkgIndex.tcl" \
+ "$(LIB_INSTALL_DIR)\dde$(DDEDOTVERSION)\"
+!endif
+ @echo installing $(TCLREGLIBNAME)
+!if $(STATIC_BUILD)
+ @xcopy /i /y "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\"
+!else
+ @xcopy /i /y "$(TCLREGLIB)" "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"
+ @xcopy /i /y "$(ROOT)\library\reg\pkgIndex.tcl" \
+ "$(LIB_INSTALL_DIR)\reg$(REGDOTVERSION)\"
+!endif
+ @echo installing encoding files
+ @xcopy /i /y "$(ROOT)\library\encoding\*.enc" \
+ "$(SCRIPT_INSTALL_DIR)\encoding\"
+ @echo installing library files
+ @xcopy /i /y "$(GENERICDIR)\tcl.h" "$(INCLUDE_INSTALL_DIR)\"
+ @xcopy /i /y "$(GENERICDIR)\tclDecls.h" "$(INCLUDE_INSTALL_DIR)\"
+ @xcopy /i /y "$(GENERICDIR)\tclPlatDecls.h" "$(INCLUDE_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\history.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\init.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\ldAout.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\parray.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\safe.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\tclIndex" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\package.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\word.tcl" "$(SCRIPT_INSTALL_DIR)\"
+ @xcopy /i /y "$(ROOT)\library\auto.tcl" "$(SCRIPT_INSTALL_DIR)\"
+
#---------------------------------------------------------------------
# Clean up
#---------------------------------------------------------------------
-clean:
- -@$(RMDIR) $(TMP_DIR)
+!if "$(OS)" == "Windows_NT"
+RMDIR = rmdir /S /Q
+!else
+RMDIR = deltree /Y
+!endif
-hose: clean
- -@$(RMDIR) $(OUT_DIR)
+tidy:
+ if exist $(TCLLIB) del $(TCLLIB)
+ if exist $(TCLSH) del $(TCLSH)
+ if exist $(TCLTEST) del $(TCLTEST)
+ if exist $(TCLDDELIB) del $(TCLDDELIB)
+ if exist $(TCLREGLIB) del $(TCLREGLIB)
+clean:
+ if exist $(TMP_DIR)\nul $(RMDIR) $(TMP_DIR)
-.SUFFIXES:
-.SUFFIXES:.c .rc
+hose:
+ if exist $(OUT_DIR)\nul $(RMDIR) $(OUT_DIR)
diff --git a/tcl/win/rules.vc b/tcl/win/rules.vc
index e77fb25edbe..84b6ad040cd 100644
--- a/tcl/win/rules.vc
+++ b/tcl/win/rules.vc
@@ -46,7 +46,7 @@ MACHINE = IX86
#----------------------------------------------------------
### test for optimizations
-!if [nmakehlp -c -Otip]
+!if [nmakehlp -c -Otip ]
!message *** Compiler has 'Optimizations'
OPTIMIZING = 1
!else
diff --git a/tcl/win/tcl.m4 b/tcl/win/tcl.m4
index 3a3b43f0e78..71ce0a98848 100644
--- a/tcl/win/tcl.m4
+++ b/tcl/win/tcl.m4
@@ -300,6 +300,42 @@ AC_DEFUN(SC_ENABLE_SYMBOLS, [
])
+#------------------------------------------------------------------------
+# SC_ENABLE_MEMDEBUG --
+#
+# Specify if the memory debugging code should be used
+#
+# Arguments:
+# none
+#
+# Requires the following vars to be set in the Makefile:
+# None.
+#
+# Results:
+#
+# Adds the following arguments to configure:
+# --enable-memdebug
+#
+# Defines the following @vars@:
+# MEM_DEBUG_FLAGS Sets to -DTCL_MEM_DEBUG if true
+# Sets to "" if false
+#
+#------------------------------------------------------------------------
+
+AC_DEFUN(SC_ENABLE_MEMDEBUG, [
+ AC_MSG_CHECKING([for build with memory debugging])
+ AC_ARG_ENABLE(memdebug, [ --enable-memdebug build with memory debugging [--disable-memdebug]], [tcl_ok=$enableval], [tcl_ok=no])
+ if test "$tcl_ok" = "yes"; then
+ MEM_DEBUG_FLAGS=-DTCL_MEM_DEBUG
+ AC_MSG_RESULT([yes])
+ else
+ MEM_DEBUG_FLAGS=""
+ AC_MSG_RESULT([no])
+ fi
+ AC_SUBST(MEM_DEBUG_FLAGS)
+])
+
+
#--------------------------------------------------------------------
# SC_CONFIG_CFLAGS
#
@@ -376,7 +412,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
SHLIB_LD=""
SHLIB_LD_LIBS=""
LIBS=""
- LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32"
+ LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32"
STLIB_LD='${AR} cr'
RC_OUT=-o
RC_TYPE=
@@ -517,7 +553,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [
SHLIB_LD="${LINKBIN} -dll -nologo -incremental:no"
SHLIB_LD_LIBS="user32.lib advapi32.lib"
LIBS="user32.lib advapi32.lib"
- LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib"
+ LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib"
RC_OUT=-fo
RC_TYPE=-r
RC_INCLUDE=-i