Attachment "tcl8.4a4-mac.patch" to
ticket [435658ffff]
added by
das
2001-11-23 08:12:57.
Index: ChangeLog
===================================================================
RCS file: /cvsroot/tcl/tcl/ChangeLog,v
retrieving revision 1.723
diff -u -3 -r1.723 ChangeLog
--- ChangeLog 2001/11/21 17:37:49 1.723
+++ ChangeLog 2001/11/23 01:01:47
@@ -1,3 +1,210 @@
+2001-11-23 Daniel Steffen <[email protected]>
+
+ ** upport 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 #435658)
+
+ * generic/tclObj.c: added #include to fix missing prototype errors
+
+ * generic/tcl.h: MAC_TCL: addition of ConditionalMacros.h and use of
+ DLLIMPORT and DLLEXPORT like on other platforms. ( => no longer need
+ the .exp files and can remove use of #pragma export that never worked
+ well)
+ removed line continuation in #if clause as this breaks the mac
+ resource compiler (note that *.r files include tcl.h)
+
+ * mac/tclMacFile.c: fixed bug in permission checking code
+
+ * mac/tclMacLoad.c: corrected utf8 handling, comparison of
+ package names to code fragment names changed to only match on the
+ length of package name, this allows for fragment names with version
+ numbers appended
+
+ * mac/tclMacInt.h:
+ * generic/tclInt.h:
+ * mac/tclMacTime.c:
+ * generic/tclIOUtil.c: moved declaration of TclpGetGMTOffset()
+
+ * mac/tclMacShLib.exp:
+ * mac/tclMacOSA.exp:
+ * mac/tclMacMSLPrefix.h: removed files
+
+ * unix/Makefile.in: removed reference to .exp files
+
+ * mac/MW_TclBuildLibHeader.h:
+ * mac/MW_TclBuildLibHeader.pch:
+ * mac/MW_TclHeaderCommon.h:
+ * mac/MW_TclStaticHeader.h:
+ * mac/MW_TclStaticHeader.pch: new precompiled header files
+
+ * mac/MW_TclAppleScriptHeader.pch:
+ * mac/MW_TclHeader.pch:
+ * mac/MW_TclTestHeader.pch:
+ * mac/tclMacCommonPch.h: revised precompiled header handling: now
+ include a common header file 'MW_TclHeaderCommon.h' from all .pch
+ files, the .pch files themselves now only setup #defines (e.g.
+ BUILD_tcl, STATIC_BUILD, TCL_DEBUG, TCL_THREADS) like in makefiles on
+ other platforms.
+
+ * mac/tclMac.h:
+ * mac/tclMacPort.h:
+ * mac/tclMacInt.h: use of BUILD_tcl and TCL_STORAGE_CLASS like on other
+ platforms, standardize #include'd files to what's done on other
+ platforms, removed use of #pragma export.
+
+ * mac/tcltkMacBuildSupport.sea.hqx: new archive of mac build support
+ files & suggested build environment directory hierarchy:
+ - 'Building MacTclTk' & 'CW Pro6 changes' readme's.
+ - projects for MoreFiles 1.5.2 static & shared libraries.
+ - project & sources for 'pseudoCarbonSupport', see below.
+ - included XML versions of the projects for CW Pro5 or Pro7 users.
+
+ * mac/tclMacProjects.sea.hqx: updated mac build project files:
+ - build support for CodeWarrior Pro6, UnivIntf 3.4 & shared runtime
+ libraries: the MSL libraries and MoreFiles are no longer compiled into
+ Tcl.shlb, all non-static binaries now use the Pro6 shared runtime
+ libraries and MoreFiles.shlb. These shlbs are merged into the standard
+ Wish and TclShell, but 3rd party applications linking with Tcl.shlb or
+ Tk.shlb need to setup access to them. (see the "(sh-ppc)" targets
+ for how to do this.)
+ - included XML versions of the projects for CW Pro5 or Pro7 users.
+ - use compat/strtod.c instead of MSL's strtod()
+ - use WASTE versions of MSL for tcl test target to avoid text buffer
+ cutoff at 32k.
+ - Merging the full MSL.shlb and the other shlbs into Wish & TclShell
+ makes them a bit larger than before, use unmerged binaries to avoid
+ copying the shared code with every application, e.g. when deploying
+ numerous Wish based droplets.
+ - Note that using CW Pro5 to compile extensions is in principle still
+ possible, but need to link with Pro6 runtime libraries.
+ - Tclapplescript now loads and runs on CFM68k.
+ - Highly experimental "pseudoCarbon" support for Tcl only on OS 8/9:
+ binaries in "Build:(Carbon):" link against CarbonLib instead of
+ InterfaceLib, however the actual code has not been carbonized! i.e. it
+ will not run on OSX and may not even run properly with CarbonLib.
+ This should in principle allow you to build & test OS9 CFM Carbon
+ binaries that need to link with Tcl.shlb. On OSX you can use the
+ native Tcl.framework, but you have to build a MachO binary as there
+ is no CFM glue lib for Tcl.framework.
+ the library pseudoCarbonSupport.shlb manually loads the symbols
+ from InterfaceLib that are not in CarbonLib but are needed by the
+ uncarbonized code in Tcl.shlb and TclShell.
+
+ * generic/tclMain.c: MAC_TCL: workaround for broken/non-standard isatty
+ on MW Pro6, #include <unistd.h> instead of defining isatty
+
+ * mac/tclMacPort.h: MW Pro6 changes for MSL fcntl.h, stat.h & isatty
+
+ * mac/tclMacAppInit.c: add EXTERN to InstallConsole to enable DLL
+ export via the TCL_STORAGE_CLASS mechanism.
+
+ * mac/tclMacFCmd.c: fix for FSpDirectoryCopy API change
+
+ * mac/tclMacLibrary.c: emit compile time error when
+ TCL_REGISTER_LIBRARY and USE_TCL_STUBS are both defined at the same
+ time in an extension, this use is not currently supported and will
+ result in a crash when dynamically loading the extension.
+
+ * mac/tclMacApplication.r:
+ * mac/tclMacLibrary.r:
+ * mac/tclMacOSA.r:
+ * mac/tclMacResource.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 are now no longer duplicated in Tclsh but are only included
+ in the resources of Tcl.shlb.
+
+ * mac/tclMacChan.c:
+ * mac/tclMacSock.c: cast for *BlockMode
+
+ * mac/tclMacUtil.c:
+ * mac/tclMacMath.h: removed obsolete hypot() definition
+
+ * generic/tclIntPlatDecls.h:
+ * generic/tclInt.decls:
+ * generic/tclStubInit.c:
+ * mac/tclMacNotify.c:
+ * mac/tclMacOSA.c:
+ * mac/tclMacUtil.c:
+ * generic/tclThreadTest.c: renamed routines conflicting with standard
+ Apple or MoreFiles headers (at compile or link time):
+ GetGlobalMouse -> GetGlobalMouseTcl
+ FSpGetDirectoryID -> FSpGetDirectoryIDTcl
+ FSpOpenResFileCompat -> FSpOpenResFileCompatTcl
+ FSpCreateResFileCompat -> FSpCreateResFileCompatTcl
+ NewThread -> NewTestThread
+ the renamed MoreFiles *Tcl routines are just wrappers calling into the
+ MoreFiles DLL.
+
+ * mac/tclMacCommonPch.h:
+ * mac/tclMacThrd.c:
+ * mac/tclMacPanic.c: removed OLDROUTINENAMES define, renamed obsolete
+ apple API names to modern equivalents; UH3.4 support: added #include
+ <ControlDefinitions.h>, updated New*Proc() calls to New*UPP().
+
+ * mac/tclMacUnix.c: added missing (Tcl_Obj ***) cast to
+ Tcl_ListObjGetElements call
+
+ * mac/tclMacAlloc.c: modernized TclpSysAlloc() to use temporary
+ memory instead of system heap memory when available (MacOS
+ >= 7.5 and possibly earlier, use of system heap has been
+ discouraged for a long time and has many disadvantages, e.g. memory
+ isn't paged out, and errors can very easily bring the system down);
+ fixed crashing bug in TclpSysRealloc() and CleanUpExitProc() where
+ memory was being accessed after having been deallocated; fixed
+ memory leak in (de)allocation code (for every block ever allocated
+ with TclpSysAlloc, a Ptr was leaked), if temporary memory is
+ available, don't track allocated memory, instead use
+ RecoverHandle() to get Handle from Ptr, otherwise use doubly linked
+ list to correctly track memory and free all allocated memory; added
+ new option for ConfigureMemory: MEMORY_DONT_USE_TEMPMEM, disables
+ use of temporary memory even when it would be available, only
+ necessary when writing e.g. a driver (using tcl??); increased
+ fraction of application heap reserved for OS routines to 512K
+
+ * compat/strftime.c:
+ * mac/tclMacTime.c:
+ * mac/tclMacPort.h:
+ * generic/tclInt.decls:
+ * generic/tclIntPlatDecls.h:
+ * generic/tclStubInit.c: timezone support for mac via
+ TclpGetTZName() like on windows, using an inverse timezone table
+ adapted from tclDate.c to map gmtoffset in seconds gotten from
+ the MacOS APIs to a timezone string, as there is no good way to get
+ this info from MacOS. I had to make up some unusual timezones and
+ arbitrarily decide on the most standard of the multiple choices
+ available for every timezone.
+
+ * generic/tclExecute.c: workaround for a MSL bug/misfeature: for
+ very small floats, MSL can return errno ERANGE but a
+ non-zero value ( < LDBL_MIN however)
+
+ * mac/tclMacAppInit.c: support for WASTE text library using
+ temporary memory, setting has no effect if WASTE is not used.
+
+ * mac/tclMacPanic.c: removed duplicate code from generic/tclPanic.c
+ and added that file to projects instead.
+
+ * tests/all.tcl: set tcltest::singleProcess 1 as multiple processes
+ are not available on the mac.
+
+ * tests/cmdAH.test: access time not available on the mac, skip the
+ atime touch test
+
+ * tests/appendComp.test:
+ * tests/cmdMZ.test:
+ * tests/compile.test:
+ * tests/exec.test:
+ * tests/fileName.test:
+ * tests/lset.test:
+ * tests/namespace.test:
+ * tests/tcltest.test: added missing cleanups/tests/catches that
+ caused tests to fail on the mac.
+
+ * doc/tclvars.n: doc bug, env(PWD) should be env(HOME) [Bug 463834]
+
2001-11-21 Don Porter <[email protected]>
* tests/trace.test (trace-8.8): Corrected test for Bug 219393.
Index: compat/strftime.c
===================================================================
RCS file: /cvsroot/tcl/tcl/compat/strftime.c,v
retrieving revision 1.7
diff -u -3 -r1.7 strftime.c
--- compat/strftime.c 2000/01/15 01:50:43 1.7
+++ compat/strftime.c 2001/11/23 01:00:52
@@ -324,7 +324,6 @@
if (!_conv((t->tm_year + TM_YEAR_BASE), 4, '0'))
return(0);
continue;
-#ifndef MAC_TCL
case 'Z': {
char *name = TclpGetTZName(t->tm_isdst);
if (name && !_add(name)) {
@@ -332,7 +331,6 @@
}
continue;
}
-#endif
case '%':
/*
* X311J/88-090 (4.12.3.5): if conversion char is
Index: compat/strtod.c
===================================================================
RCS file: /cvsroot/tcl/tcl/compat/strtod.c,v
retrieving revision 1.3
diff -u -3 -r1.3 strtod.c
--- compat/strtod.c 2001/09/04 23:16:18 1.3
+++ compat/strtod.c 2001/11/23 01:00:52
@@ -13,6 +13,7 @@
*/
#include "tcl.h"
+#include "tclPort.h"
#ifdef NO_STDLIB_H
# include "../compat/stdlib.h"
#else
Index: doc/tclvars.n
===================================================================
RCS file: /cvsroot/tcl/tcl/doc/tclvars.n,v
retrieving revision 1.9
diff -u -3 -r1.9 tclvars.n
--- doc/tclvars.n 2001/09/17 11:51:58 1.9
+++ doc/tclvars.n 2001/11/23 01:00:54
@@ -87,7 +87,7 @@
\fBSTART_UP_FOLDER\fR
The path to the start up directory.
.TP
-\fBPWD\fR
+\fBHOME\fR
The path to the application's default directory.
.PP
You can also create your own environment variables for the Macintosh.
Index: generic/tcl.h
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tcl.h,v
retrieving revision 1.105
diff -u -3 -r1.105 tcl.h
--- generic/tcl.h 2001/11/19 14:35:54 1.105
+++ generic/tcl.h 2001/11/23 01:00:55
@@ -71,8 +71,7 @@
*/
#ifndef __WIN32__
-# if defined(_WIN32) || defined(WIN32) || \
- defined(__CYGWIN__) || defined(__MINGW32__) || defined(__BORLANDC__)
+# if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__BORLANDC__)
# define __WIN32__
# ifndef WIN32
# define WIN32
@@ -102,6 +101,7 @@
*/
#ifdef MAC_TCL
+#include <ConditionalMacros.h>
# ifndef HAS_STDARG
# define HAS_STDARG 1
# endif
@@ -222,7 +222,7 @@
# define DLLIMPORT
# define DLLEXPORT
#else
-# if defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || (defined(__GNUC__) && defined(__declspec)))
+# if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || (defined(__GNUC__) && defined(__declspec)))) || (defined(MAC_TCL) && FUNCTION_DECLSPEC)
# define DLLIMPORT __declspec(dllimport)
# define DLLEXPORT __declspec(dllexport)
# else
@@ -244,7 +244,7 @@
* name of a library we are building, is set on the compile line for sources
* that are to be placed in the library. When this macro is set, the
* storage class will be set to DLLEXPORT. At the end of the header file, the
- * storage class will be reset to DLLIMPORt.
+ * storage class will be reset to DLLIMPORT.
*/
#undef TCL_STORAGE_CLASS
@@ -2149,7 +2149,20 @@
* accessible via the stubs table.
*/
+/*
+ * tclPlatDecls.h can't be included here on the Mac, as we need
+ * Mac specific headers to define the Mac types used in this file,
+ * but these Mac haders conflict with a number of tk types
+ * and thus can't be included in the globally read tcl.h
+ * This header was originally added here as a fix for bug 5241
+ * (stub link error for symbols in TclPlatStubs table), as a work-
+ * around for the bug on the mac, tclMac.h is included immediately
+ * after tcl.h in the tcl precompiled header (with DLLEXPORT set).
+ */
+
+#if !defined(MAC_TCL)
#include "tclPlatDecls.h"
+#endif
/*
* Public functions that are not accessible via the stubs table.
Index: generic/tclIOUtil.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclIOUtil.c,v
retrieving revision 1.25
diff -u -3 -r1.25 tclIOUtil.c
--- generic/tclIOUtil.c 2001/11/02 12:06:27 1.25
+++ generic/tclIOUtil.c 2001/11/23 01:01:05
@@ -22,6 +22,9 @@
#include "tclInt.h"
#include "tclPort.h"
+#ifdef MAC_TCL
+#include "tclMacInt.h"
+#endif
/*
* Prototypes for procedures defined later in this file. The last
Index: generic/tclInt.decls
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclInt.decls,v
retrieving revision 1.37
diff -u -3 -r1.37 tclInt.decls
--- generic/tclInt.decls 2001/11/21 02:36:20 1.37
+++ generic/tclInt.decls 2001/11/23 01:00:59
@@ -696,7 +696,7 @@
Boolean createFolder, FSSpec *spec)
}
declare 7 mac {
- void GetGlobalMouse(Point *mouse)
+ void GetGlobalMouseTcl(Point *mouse)
}
# The following routines are utility functions in Tcl. They are exported
@@ -704,15 +704,15 @@
# however. The first set are from the MoreFiles package.
declare 8 mac {
- pascal OSErr FSpGetDirectoryID(CONST FSSpec *spec, long *theDirID, \
+ pascal OSErr FSpGetDirectoryIDTcl(CONST FSSpec *spec, long *theDirID, \
Boolean *isDirectory)
}
declare 9 mac {
- pascal short FSpOpenResFileCompat(CONST FSSpec *spec, \
+ pascal short FSpOpenResFileCompatTcl(CONST FSSpec *spec, \
SignedByte permission)
}
declare 10 mac {
- pascal void FSpCreateResFileCompat(CONST FSSpec *spec, OSType creator, \
+ pascal void FSpCreateResFileCompatTcl(CONST FSSpec *spec, OSType creator, \
OSType fileType, ScriptCode scriptTag)
}
@@ -767,6 +767,9 @@
# declare 24 mac {
# int TclMacReadlink(char *path, char *buf, int size)
# }
+declare 24 mac {
+ char * TclpGetTZName(int isdst)
+}
declare 25 mac {
int TclMacChmod(char *path, int mode)
}
Index: generic/tclInt.h
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclInt.h,v
retrieving revision 1.70
diff -u -3 -r1.70 tclInt.h
--- generic/tclInt.h 2001/11/21 02:36:20 1.70
+++ generic/tclInt.h 2001/11/23 01:01:01
@@ -1799,7 +1799,6 @@
EXTERN void TclpFree _ANSI_ARGS_((char *ptr));
EXTERN unsigned long TclpGetClicks _ANSI_ARGS_((void));
EXTERN Tcl_Channel TclpGetDefaultStdChannel _ANSI_ARGS_((int type));
-EXTERN long TclpGetGMTOffset _ANSI_ARGS_((void));
EXTERN unsigned long TclpGetSeconds _ANSI_ARGS_((void));
EXTERN int TclpGetTimeZone _ANSI_ARGS_((unsigned long time));
EXTERN char * TclpGetUserHome _ANSI_ARGS_((CONST char *name,
Index: generic/tclIntPlatDecls.h
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclIntPlatDecls.h,v
retrieving revision 1.12
diff -u -3 -r1.12 tclIntPlatDecls.h
--- generic/tclIntPlatDecls.h 2001/09/10 17:17:41 1.12
+++ generic/tclIntPlatDecls.h 2001/11/23 01:01:01
@@ -149,15 +149,15 @@
OSType folderType, Boolean createFolder,
FSSpec * spec));
/* 7 */
-EXTERN void GetGlobalMouse _ANSI_ARGS_((Point * mouse));
+EXTERN void GetGlobalMouseTcl _ANSI_ARGS_((Point * mouse));
/* 8 */
-EXTERN pascal OSErr FSpGetDirectoryID _ANSI_ARGS_((CONST FSSpec * spec,
+EXTERN pascal OSErr FSpGetDirectoryIDTcl _ANSI_ARGS_((CONST FSSpec * spec,
long * theDirID, Boolean * isDirectory));
/* 9 */
-EXTERN pascal short FSpOpenResFileCompat _ANSI_ARGS_((
+EXTERN pascal short FSpOpenResFileCompatTcl _ANSI_ARGS_((
CONST FSSpec * spec, SignedByte permission));
/* 10 */
-EXTERN pascal void FSpCreateResFileCompat _ANSI_ARGS_((
+EXTERN pascal void FSpCreateResFileCompatTcl _ANSI_ARGS_((
CONST FSSpec * spec, OSType creator,
OSType fileType, ScriptCode scriptTag));
/* 11 */
@@ -193,7 +193,8 @@
/* 23 */
EXTERN FILE * TclMacFOpenHack _ANSI_ARGS_((CONST char * path,
CONST char * mode));
-/* Slot 24 is reserved */
+/* 24 */
+EXTERN char * TclpGetTZName _ANSI_ARGS_((int isdst));
/* 25 */
EXTERN int TclMacChmod _ANSI_ARGS_((char * path, int mode));
#endif /* MAC_TCL */
@@ -252,10 +253,10 @@
int (*fSpGetDefaultDir) _ANSI_ARGS_((FSSpecPtr theSpec)); /* 4 */
int (*fSpSetDefaultDir) _ANSI_ARGS_((FSSpecPtr theSpec)); /* 5 */
OSErr (*fSpFindFolder) _ANSI_ARGS_((short vRefNum, OSType folderType, Boolean createFolder, FSSpec * spec)); /* 6 */
- void (*getGlobalMouse) _ANSI_ARGS_((Point * mouse)); /* 7 */
- pascal OSErr (*fSpGetDirectoryID) _ANSI_ARGS_((CONST FSSpec * spec, long * theDirID, Boolean * isDirectory)); /* 8 */
- pascal short (*fSpOpenResFileCompat) _ANSI_ARGS_((CONST FSSpec * spec, SignedByte permission)); /* 9 */
- pascal void (*fSpCreateResFileCompat) _ANSI_ARGS_((CONST FSSpec * spec, OSType creator, OSType fileType, ScriptCode scriptTag)); /* 10 */
+ void (*getGlobalMouseTcl) _ANSI_ARGS_((Point * mouse)); /* 7 */
+ pascal OSErr (*fSpGetDirectoryIDTcl) _ANSI_ARGS_((CONST FSSpec * spec, long * theDirID, Boolean * isDirectory)); /* 8 */
+ pascal short (*fSpOpenResFileCompatTcl) _ANSI_ARGS_((CONST FSSpec * spec, SignedByte permission)); /* 9 */
+ pascal void (*fSpCreateResFileCompatTcl) _ANSI_ARGS_((CONST FSSpec * spec, OSType creator, OSType fileType, ScriptCode scriptTag)); /* 10 */
int (*fSpLocationFromPath) _ANSI_ARGS_((int length, CONST char * path, FSSpecPtr theSpec)); /* 11 */
OSErr (*fSpPathFromLocation) _ANSI_ARGS_((FSSpecPtr theSpec, int * length, Handle * fullPath)); /* 12 */
void (*tclMacExitHandler) _ANSI_ARGS_((void)); /* 13 */
@@ -455,21 +456,21 @@
#define FSpFindFolder \
(tclIntPlatStubsPtr->fSpFindFolder) /* 6 */
#endif
-#ifndef GetGlobalMouse
-#define GetGlobalMouse \
- (tclIntPlatStubsPtr->getGlobalMouse) /* 7 */
-#endif
-#ifndef FSpGetDirectoryID
-#define FSpGetDirectoryID \
- (tclIntPlatStubsPtr->fSpGetDirectoryID) /* 8 */
-#endif
-#ifndef FSpOpenResFileCompat
-#define FSpOpenResFileCompat \
- (tclIntPlatStubsPtr->fSpOpenResFileCompat) /* 9 */
-#endif
-#ifndef FSpCreateResFileCompat
-#define FSpCreateResFileCompat \
- (tclIntPlatStubsPtr->fSpCreateResFileCompat) /* 10 */
+#ifndef GetGlobalMouseTcl
+#define GetGlobalMouseTcl \
+ (tclIntPlatStubsPtr->getGlobalMouseTcl) /* 7 */
+#endif
+#ifndef FSpGetDirectoryIDTcl
+#define FSpGetDirectoryIDTcl \
+ (tclIntPlatStubsPtr->fSpGetDirectoryIDTcl) /* 8 */
+#endif
+#ifndef FSpOpenResFileCompatTcl
+#define FSpOpenResFileCompatTcl \
+ (tclIntPlatStubsPtr->fSpOpenResFileCompatTcl) /* 9 */
+#endif
+#ifndef FSpCreateResFileCompatTcl
+#define FSpCreateResFileCompatTcl \
+ (tclIntPlatStubsPtr->fSpCreateResFileCompatTcl) /* 10 */
#endif
#ifndef FSpLocationFromPath
#define FSpLocationFromPath \
@@ -523,7 +524,10 @@
#define TclMacFOpenHack \
(tclIntPlatStubsPtr->tclMacFOpenHack) /* 23 */
#endif
-/* Slot 24 is reserved */
+#ifndef TclpGetTZName
+#define TclpGetTZName \
+ (tclIntPlatStubsPtr->tclpGetTZName) /* 24 */
+#endif
#ifndef TclMacChmod
#define TclMacChmod \
(tclIntPlatStubsPtr->tclMacChmod) /* 25 */
Index: generic/tclMain.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclMain.c,v
retrieving revision 1.13
diff -u -3 -r1.13 tclMain.c
--- generic/tclMain.c 2001/09/24 21:10:32 1.13
+++ generic/tclMain.c 2001/11/23 01:01:06
@@ -38,7 +38,11 @@
* on some systems, so it's better just to leave it out.
*/
+#if !defined(MAC_TCL)
extern int isatty _ANSI_ARGS_((int fd));
+#else
+#include <unistd.h>
+#endif
extern char * strcpy _ANSI_ARGS_((char *dst, CONST char *src));
static char *tclStartupScriptFileName = NULL;
Index: generic/tclObj.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclObj.c,v
retrieving revision 1.25
diff -u -3 -r1.25 tclObj.c
--- generic/tclObj.c 2001/11/16 20:14:27 1.25
+++ generic/tclObj.c 2001/11/23 01:01:08
@@ -15,6 +15,7 @@
*/
#include "tclInt.h"
+#include "tclCompile.h"
#include "tclPort.h"
/*
Index: generic/tclStubInit.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclStubInit.c,v
retrieving revision 1.64
diff -u -3 -r1.64 tclStubInit.c
--- generic/tclStubInit.c 2001/11/21 02:36:20 1.64
+++ generic/tclStubInit.c 2001/11/23 01:01:09
@@ -301,10 +301,10 @@
FSpGetDefaultDir, /* 4 */
FSpSetDefaultDir, /* 5 */
FSpFindFolder, /* 6 */
- GetGlobalMouse, /* 7 */
- FSpGetDirectoryID, /* 8 */
- FSpOpenResFileCompat, /* 9 */
- FSpCreateResFileCompat, /* 10 */
+ GetGlobalMouseTcl, /* 7 */
+ FSpGetDirectoryIDTcl, /* 8 */
+ FSpOpenResFileCompatTcl, /* 9 */
+ FSpCreateResFileCompatTcl, /* 10 */
FSpLocationFromPath, /* 11 */
FSpPathFromLocation, /* 12 */
TclMacExitHandler, /* 13 */
@@ -318,7 +318,7 @@
TclMacUnRegisterResourceFork, /* 21 */
TclMacCreateEnv, /* 22 */
TclMacFOpenHack, /* 23 */
- NULL, /* 24 */
+ TclpGetTZName, /* 24 */
TclMacChmod, /* 25 */
#endif /* MAC_TCL */
};
Index: generic/tclTest.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclTest.c,v
retrieving revision 1.33
diff -u -3 -r1.33 tclTest.c
--- generic/tclTest.c 2001/11/21 02:36:20 1.33
+++ generic/tclTest.c 2001/11/23 01:01:13
@@ -315,6 +315,8 @@
static void TestReport _ANSI_ARGS_((CONST char* cmd, Tcl_Obj* arg1, Tcl_Obj* arg2));
+static Tcl_Obj *TestReportGetNativePath(Tcl_Obj* pathObjPtr);
+
static Tcl_FSStatProc TestReportStat;
static Tcl_FSAccessProc TestReportAccess;
static Tcl_FSOpenFileChannelProc TestReportOpenFileChannel;
@@ -5287,12 +5289,12 @@
* Simple helper function to extract the native vfs representation of a
* path object, or NULL if no such representation exists.
*/
-Tcl_Obj*
+static Tcl_Obj*
TestReportGetNativePath(Tcl_Obj* pathObjPtr) {
return (Tcl_Obj*) Tcl_FSGetInternalRep(pathObjPtr, &testReportingFilesystem);
}
-void
+static void
TestReportFreeInternalRep(ClientData clientData) {
Tcl_Obj *nativeRep = (Tcl_Obj*)clientData;
if (nativeRep != NULL) {
@@ -5301,7 +5303,7 @@
}
}
-ClientData
+static ClientData
TestReportDupInternalRep(ClientData clientData) {
Tcl_Obj *original = (Tcl_Obj*)clientData;
Tcl_IncrRefCount(original);
Index: generic/tclThreadTest.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclThreadTest.c,v
retrieving revision 1.11
diff -u -3 -r1.11 tclThreadTest.c
--- generic/tclThreadTest.c 2001/03/31 07:55:50 1.11
+++ generic/tclThreadTest.c 2001/11/23 01:01:14
@@ -126,7 +126,7 @@
#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT
-Tcl_ThreadCreateType NewThread _ANSI_ARGS_((ClientData clientData));
+Tcl_ThreadCreateType NewTestThread _ANSI_ARGS_((ClientData clientData));
static void ListRemove _ANSI_ARGS_((ThreadSpecificData *tsdPtr));
static void ListUpdateInner _ANSI_ARGS_((ThreadSpecificData *tsdPtr));
static int ThreadEventProc _ANSI_ARGS_((Tcl_Event *evPtr, int mask));
@@ -418,7 +418,7 @@
joinable = joinable ? TCL_THREAD_JOINABLE : TCL_THREAD_NOFLAGS;
Tcl_MutexLock(&threadMutex);
- if (Tcl_CreateThread(&id, NewThread, (ClientData) &ctrl,
+ if (Tcl_CreateThread(&id, NewTestThread, (ClientData) &ctrl,
TCL_THREAD_STACK_DEFAULT, joinable) != TCL_OK) {
Tcl_MutexUnlock(&threadMutex);
Tcl_AppendResult(interp,"can't create a new thread",0);
@@ -440,7 +440,7 @@
/*
*------------------------------------------------------------------------
*
- * NewThread --
+ * NewTestThread --
*
* This routine is the "main()" for a new thread whose task is to
* execute a single TCL script. The argument to this function is
@@ -466,7 +466,7 @@
*------------------------------------------------------------------------
*/
Tcl_ThreadCreateType
-NewThread(clientData)
+NewTestThread(clientData)
ClientData clientData;
{
ThreadCtrl *ctrlPtr = (ThreadCtrl*)clientData;
Index: mac/MW_TclAppleScriptHeader.pch
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/MW_TclAppleScriptHeader.pch,v
retrieving revision 1.4
diff -u -3 -r1.4 MW_TclAppleScriptHeader.pch
--- mac/MW_TclAppleScriptHeader.pch 1999/05/11 07:11:46 1.4
+++ mac/MW_TclAppleScriptHeader.pch 2001/11/23 01:01:15
@@ -33,15 +33,4 @@
#include "tclMacCommonPch.h"
-/* #define TCL_REGISTER_LIBRARY 1 */
#define USE_TCL_STUBS
-
-/*
- * Place any includes below that will are needed by the majority of the
- * and is OK to be in any file in the system. The pragma's are used
- * to control what functions are exported in the Tcl shared library.
- */
-
-#pragma export on
-#pragma export off
-
Index: mac/MW_TclBuildLibHeader.h
===================================================================
RCS file: MW_TclBuildLibHeader.h
diff -N MW_TclBuildLibHeader.h
--- /dev/null Thu May 24 22:33:05 2001
+++ MW_TclBuildLibHeader.h Thu Nov 22 17:01:15 2001
@@ -0,0 +1,7 @@
+#if __POWERPC__
+#include "MW_TclBuildLibHeaderPPC"
+#elif __CFM68K__
+#include "MW_TclBuildLibHeaderCFM68K"
+#else
+#include "MW_TclBuildLibHeader68K"
+#endif
Index: mac/MW_TclBuildLibHeader.pch
===================================================================
RCS file: MW_TclBuildLibHeader.pch
diff -N MW_TclBuildLibHeader.pch
--- /dev/null Thu May 24 22:33:05 2001
+++ MW_TclBuildLibHeader.pch Thu Nov 22 17:01:15 2001
@@ -0,0 +1,35 @@
+/*
+ * MW_TclBuildLibHeader.pch --
+ *
+ * This file is the source for a pre-compilied header that gets used
+ * for all files in the Tcl projects. This make compilies go a bit
+ * faster. This file is only intended to be used in the MetroWerks
+ * CodeWarrior environment. It essentially acts as a place to set
+ * compiler flags. See MetroWerks documention for more details.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: MW_TclBuildLibHeader.pch,v 1.1.2.1 2001/04/04 21:09:25 hobbs Exp $
+ */
+
+/*
+ * To use the compilied header you need to set the "Prefix file" in
+ * the "C/C++ Language" preference panel to point to the created
+ * compilied header. The name of the header depends on the
+ * architecture we are compiling for (see the code below). For
+ * example, for a 68k app the prefix file should be: MW_TclHeader68K.
+ */
+#if __POWERPC__
+#pragma precompile_target "MW_TclBuildLibHeaderPPC"
+#elif __CFM68K__
+#pragma precompile_target "MW_TclBuildLibHeaderCFM68K"
+#else
+#pragma precompile_target "MW_TclBuildLibHeader68K"
+#endif
+
+#define BUILD_tcl 1
+
+#include "MW_TclHeaderCommon.h"
Index: mac/MW_TclHeader.pch
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/MW_TclHeader.pch,v
retrieving revision 1.7
diff -u -3 -r1.7 MW_TclHeader.pch
--- mac/MW_TclHeader.pch 1999/05/11 07:11:48 1.7
+++ mac/MW_TclHeader.pch 2001/11/23 01:01:15
@@ -30,20 +30,4 @@
#pragma precompile_target "MW_TclHeader68K"
#endif
-#include "tclMacCommonPch.h"
-
-/*
- * Place any includes below that will are needed by the majority of the
- * and is OK to be in any file in the system. The pragma's are used
- * to control what functions are exported in the Tcl shared library.
- */
-
-#pragma export on
-#include "tcl.h"
-#include "tclMac.h"
-#include "tclInt.h"
-#include "MoreFiles.h"
-#include "MoreFilesExtras.h"
-
-#pragma export reset
-
+#include "MW_TclHeaderCommon.h"
Index: mac/MW_TclHeaderCommon.h
===================================================================
RCS file: MW_TclHeaderCommon.h
diff -N MW_TclHeaderCommon.h
--- /dev/null Thu May 24 22:33:05 2001
+++ MW_TclHeaderCommon.h Thu Nov 22 17:01:16 2001
@@ -0,0 +1,54 @@
+/*
+ * MW_TclHeaderCommon.h --
+ *
+ * Common includes for precompiled headers
+ *
+ * Copyright (c) 1998 by Scriptics Corporation.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: MW_TclHeaderCommon.h,v 1.1.2.1 2001/04/04 21:09:25 hobbs Exp $
+ */
+
+#pragma once
+
+#include "tclMacCommonPch.h"
+
+/*
+ * Place any includes below that will are needed by the majority of the
+ * and is OK to be in any file in the system.
+ */
+
+#include "tcl.h"
+
+#ifdef BUILD_tcl
+# undef TCL_STORAGE_CLASS
+# define TCL_STORAGE_CLASS DLLEXPORT
+#endif
+#include "tclMac.h"
+#undef TCL_STORAGE_CLASS
+#define TCL_STORAGE_CLASS DLLIMPORT
+
+#include "tclInt.h"
+
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#include <MoreFiles.h>
+#include <MoreFilesExtras.h>
+#include <FSpCompat.h>
+#include <FileCopy.h>
+#include <FullPath.h>
+#include <IterateDirectory.h>
+#include <MoreDesktopMgr.h>
+#include <DirectoryCopy.h>
+#include <Search.h>
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
Index: mac/MW_TclStaticHeader.h
===================================================================
RCS file: MW_TclStaticHeader.h
diff -N MW_TclStaticHeader.h
--- /dev/null Thu May 24 22:33:05 2001
+++ MW_TclStaticHeader.h Thu Nov 22 17:01:16 2001
@@ -0,0 +1,7 @@
+#if __POWERPC__
+#include "MW_TclStaticHeaderPPC"
+#elif __CFM68K__
+#include "MW_TclStaticHeaderCFM68K"
+#else
+#include "MW_TclStaticHeader68K"
+#endif
Index: mac/MW_TclStaticHeader.pch
===================================================================
RCS file: MW_TclStaticHeader.pch
diff -N MW_TclStaticHeader.pch
--- /dev/null Thu May 24 22:33:05 2001
+++ MW_TclStaticHeader.pch Thu Nov 22 17:01:16 2001
@@ -0,0 +1,35 @@
+/*
+ * MW_TclStaticHeader.pch --
+ *
+ * This file is the source for a pre-compilied header that gets used
+ * for all files in the Tcl projects. This make compilies go a bit
+ * faster. This file is only intended to be used in the MetroWerks
+ * CodeWarrior environment. It essentially acts as a place to set
+ * compiler flags. See MetroWerks documention for more details.
+ *
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+ *
+ * RCS: @(#) $Id: MW_TclStaticHeader.pch,v 1.1.2.1 2001/04/04 21:09:25 hobbs Exp $
+ */
+
+/*
+ * To use the compilied header you need to set the "Prefix file" in
+ * the "C/C++ Language" preference panel to point to the created
+ * compilied header. The name of the header depends on the
+ * architecture we are compiling for (see the code below). For
+ * example, for a 68k app the prefix file should be: MW_TclHeader68K.
+ */
+#if __POWERPC__
+#pragma precompile_target "MW_TclStaticHeaderPPC"
+#elif __CFM68K__
+#pragma precompile_target "MW_TclStaticHeaderCFM68K"
+#else
+#pragma precompile_target "MW_TclStaticHeader68K"
+#endif
+
+#define STATIC_BUILD 1
+
+#include "MW_TclHeaderCommon.h"
Index: mac/MW_TclTestHeader.pch
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/MW_TclTestHeader.pch,v
retrieving revision 1.1
diff -u -3 -r1.1 MW_TclTestHeader.pch
--- mac/MW_TclTestHeader.pch 2000/02/10 08:39:11 1.1
+++ mac/MW_TclTestHeader.pch 2001/11/23 01:01:16
@@ -1,5 +1,5 @@
/*
- * MW_TclHeader.pch --
+ * MW_TclTestHeader.pch --
*
* This file is the source for a pre-compilied header that gets used
* for all files in the Tcl projects. This make compilies go a bit
@@ -30,24 +30,12 @@
#pragma precompile_target "MW_TclTestHeader68K"
#endif
-#define TCL_DEBUG 1
-
-/*#define TCL_THREADS 1*/
-
-#include "tclMacCommonPch.h"
+#define BUILD_tcl 1
-/*
- * Place any includes below that will are needed by the majority of the
- * and is OK to be in any file in the system. The pragma's are used
- * to control what functions are exported in the Tcl shared library.
- */
+#define STATIC_BUILD 1
-#pragma export on
-#include "tcl.h"
-#include "tclMac.h"
-#include "tclInt.h"
-#include "MoreFiles.h"
-#include "MoreFilesExtras.h"
+#define TCL_DEBUG 1
-#pragma export reset
+#define TCL_THREADS 1
+#include "MW_TclHeaderCommon.h"
Index: mac/tclMac.h
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMac.h,v
retrieving revision 1.4
diff -u -3 -r1.4 tclMac.h
--- mac/tclMac.h 1999/03/10 05:52:51 1.4
+++ mac/tclMac.h 2001/11/23 01:01:16
@@ -21,18 +21,8 @@
#include <Files.h>
#include <Events.h>
-/*
- * "export" is a MetroWerks specific pragma. It flags the linker that
- * any symbols that are defined when this pragma is on will be exported
- * to shared libraries that link with this library.
- */
-
-#pragma export on
-
typedef int (*Tcl_MacConvertEventPtr) _ANSI_ARGS_((EventRecord *eventPtr));
#include "tclPlatDecls.h"
-
-#pragma export reset
#endif /* _TCLMAC */
Index: mac/tclMacAlloc.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacAlloc.c,v
retrieving revision 1.4
diff -u -3 -r1.4 tclMacAlloc.c
--- mac/tclMacAlloc.c 1999/05/11 07:11:51 1.4
+++ mac/tclMacAlloc.c 2001/11/23 01:01:16
@@ -20,6 +20,7 @@
#include "tclInt.h"
#include "tclMacInt.h"
#include <Memory.h>
+#include <Gestalt.h>
#include <stdlib.h>
#include <string.h>
@@ -30,12 +31,13 @@
*/
#define MEMORY_ALL_SYS 1 /* All memory should come from the system
heap. */
+#define MEMORY_DONT_USE_TEMPMEM 2 /* Don't use temporary memory but system memory. */
/*
* Amount of space to leave in the application heap for the Toolbox to work.
*/
-#define TOOLBOX_SPACE (32 * 1024)
+#define TOOLBOX_SPACE (512 * 1024)
static int memoryFlags = 0;
static Handle toolGuardHandle = NULL;
@@ -49,6 +51,15 @@
* the way out. If we can't, we go to the
* system heap directly. */
+static int tclUseMemTracking = 0; /* Are we tracking memory allocations?
+ * On recent versions of the MacOS this
+ * is no longer necessary, as we can use
+ * temporary memory which is freed by the
+ * OS after a quit or crash. */
+
+static size_t tclExtraHdlSize = 0; /* Size of extra memory allocated at the start
+ * of each block when using memory tracking
+ * ( == 0 otherwise) */
/*
* The following typedef and variable are used to keep track of memory
@@ -59,10 +70,11 @@
typedef struct listEl {
Handle memoryHandle;
struct listEl * next;
+ struct listEl * prec;
} ListEl;
-ListEl * systemMemory = NULL;
-ListEl * appMemory = NULL;
+static ListEl * systemMemory = NULL;
+static ListEl * appMemory = NULL;
/*
* Prototypes for functions used only in this file.
@@ -99,13 +111,28 @@
Handle hand;
void *newPtr;
int maxsize;
+ OSErr err;
- hand = * (Handle *) ((Ptr) oldPtr - sizeof(Handle));
+ if (tclUseMemTracking) {
+ hand = ((ListEl *) ((Ptr) oldPtr - tclExtraHdlSize))->memoryHandle;
+ } else {
+ hand = RecoverHandle((Ptr) oldPtr);
+ }
maxsize = GetHandleSize(hand) - sizeof(Handle);
if (maxsize < size) {
+ HUnlock(hand);
+ SetHandleSize(hand,size + tclExtraHdlSize);
+ err = MemError();
+ HLock(hand);
+ if(err==noErr){
+ newPtr=(*hand + tclExtraHdlSize);
+ } else {
newPtr = TclpSysAlloc(size, 1);
- memcpy(newPtr, oldPtr, maxsize);
+ if(newPtr!=NULL) {
+ memmove(newPtr, oldPtr, maxsize);
TclpSysFree(oldPtr);
+ }
+ }
} else {
newPtr = oldPtr;
}
@@ -136,6 +163,31 @@
{
Handle hand = NULL;
ListEl * newMemoryRecord;
+ int isSysMem = 0;
+ static int initialized=0;
+
+ if (!initialized) {
+ long response = 0;
+ OSErr err = noErr;
+ int useTempMem = 0;
+
+ /* Check if we can use temporary memory */
+ initialized=1;
+ err = Gestalt(gestaltOSAttr, &response);
+ if (err == noErr) {
+ useTempMem = response & (1 << gestaltRealTempMemory);
+ }
+ tclUseMemTracking = !useTempMem || (memoryFlags & MEMORY_DONT_USE_TEMPMEM);
+ if(tclUseMemTracking) {
+ tclExtraHdlSize = sizeof(ListEl);
+ /*
+ * We are allocating memory directly from the system
+ * heap. We need to install an exit handle
+ * to ensure the memory is cleaned up.
+ */
+ TclMacInstallExitToShellPatch(CleanUpExitProc);
+ }
+ }
if (!(memoryFlags & MEMORY_ALL_SYS)) {
@@ -157,6 +209,7 @@
if (toolGuardHandle == NULL) {
toolGuardHandle = NewHandle(TOOLBOX_SPACE);
if (toolGuardHandle != NULL) {
+ HLock(toolGuardHandle);
HPurge(toolGuardHandle);
}
}
@@ -167,55 +220,55 @@
if (toolGuardHandle != NULL) {
HLock(toolGuardHandle);
- hand = NewHandle(size + sizeof(Handle));
+ hand = NewHandle(size + tclExtraHdlSize);
HUnlock(toolGuardHandle);
}
}
- if (hand != NULL) {
- newMemoryRecord = (ListEl *) NewPtr(sizeof(ListEl));
- if (newMemoryRecord == NULL) {
- DisposeHandle(hand);
- return NULL;
- }
- newMemoryRecord->memoryHandle = hand;
- newMemoryRecord->next = appMemory;
- appMemory = newMemoryRecord;
- } else {
+ if (hand == NULL) {
/*
* Ran out of memory in application space. Lets try to get
* more memory from system. Otherwise, we return NULL to
* denote failure.
*/
+ if(!tclUseMemTracking) {
+ /* Use Temporary Memory instead of System Heap when available */
+ OSErr err;
+ isBin = 1; /* always HLockHi TempMemHandles */
+ hand = TempNewHandle(size + tclExtraHdlSize,&err);
+ if(err!=noErr) { hand=NULL; }
+ } else {
+ /* Use system heap when tracking memory */
+ isSysMem=1;
isBin = 0;
- hand = NewHandleSys(size + sizeof(Handle));
- if (hand == NULL) {
- return NULL;
+ hand = NewHandleSys(size + tclExtraHdlSize);
}
- if (systemMemory == NULL) {
- /*
- * This is the first time we've attempted to allocate memory
- * directly from the system heap. We need to now install the
- * exit handle to ensure the memory is cleaned up.
- */
- TclMacInstallExitToShellPatch(CleanUpExitProc);
}
- newMemoryRecord = (ListEl *) NewPtrSys(sizeof(ListEl));
- if (newMemoryRecord == NULL) {
- DisposeHandle(hand);
+ if (hand == NULL) {
return NULL;
}
- newMemoryRecord->memoryHandle = hand;
- newMemoryRecord->next = systemMemory;
- systemMemory = newMemoryRecord;
- }
if (isBin) {
HLockHi(hand);
} else {
HLock(hand);
}
- (** (Handle **) hand) = hand;
-
- return (*hand + sizeof(Handle));
+ if(tclUseMemTracking) {
+ /* Only need to do this when tracking memory */
+ newMemoryRecord = (ListEl *) *hand;
+ newMemoryRecord->memoryHandle = hand;
+ newMemoryRecord->prec = NULL;
+ if(isSysMem) {
+ newMemoryRecord->next = systemMemory;
+ systemMemory = newMemoryRecord;
+ } else {
+ newMemoryRecord->next = appMemory;
+ appMemory = newMemoryRecord;
+ }
+ if(newMemoryRecord->next!=NULL) {
+ newMemoryRecord->next->prec=newMemoryRecord;
+ }
+ }
+
+ return (*hand + tclExtraHdlSize);
}
/*
@@ -238,13 +291,27 @@
TclpSysFree(
void * ptr) /* Free this system memory. */
{
- Handle hand;
- OSErr err;
-
- hand = * (Handle *) ((Ptr) ptr - sizeof(Handle));
- DisposeHandle(hand);
- *hand = NULL;
- err = MemError();
+ if(tclUseMemTracking) {
+ /* Only need to do this when tracking memory */
+ ListEl *memRecord;
+
+ memRecord = (ListEl *) ((Ptr) ptr - tclExtraHdlSize);
+ /* Remove current record from linked list */
+ if(memRecord->next!=NULL) {
+ memRecord->next->prec=memRecord->prec;
+ }
+ if(memRecord->prec!=NULL) {
+ memRecord->prec->next=memRecord->next;
+ }
+ if(memRecord==appMemory) {
+ appMemory=memRecord->next;
+ } else if(memRecord==systemMemory) {
+ systemMemory=memRecord->next;
+ }
+ DisposeHandle(memRecord->memoryHandle);
+ } else {
+ DisposeHandle(RecoverHandle((Ptr) ptr));
+ }
}
/*
@@ -271,13 +338,13 @@
{
ListEl * memRecord;
+ if(tclUseMemTracking) {
+ /* Only need to do this when tracking memory */
while (systemMemory != NULL) {
memRecord = systemMemory;
systemMemory = memRecord->next;
- if (*(memRecord->memoryHandle) != NULL) {
- DisposeHandle(memRecord->memoryHandle);
- }
- DisposePtr((void *) memRecord);
+ DisposeHandle(memRecord->memoryHandle);
+ }
}
}
@@ -304,21 +371,18 @@
{
ListEl * memRecord;
+ if(tclUseMemTracking) {
+ /* Only need to do this when tracking memory */
while (systemMemory != NULL) {
memRecord = systemMemory;
systemMemory = memRecord->next;
- if (*(memRecord->memoryHandle) != NULL) {
- DisposeHandle(memRecord->memoryHandle);
- }
- DisposePtr((void *) memRecord);
+ DisposeHandle(memRecord->memoryHandle);
}
while (appMemory != NULL) {
memRecord = appMemory;
appMemory = memRecord->next;
- if (*(memRecord->memoryHandle) != NULL) {
- DisposeHandle(memRecord->memoryHandle);
- }
- DisposePtr((void *) memRecord);
+ DisposeHandle(memRecord->memoryHandle);
+ }
}
}
Index: mac/tclMacAppInit.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacAppInit.c,v
retrieving revision 1.8
diff -u -3 -r1.8 tclMacAppInit.c
--- mac/tclMacAppInit.c 2001/06/17 03:48:19 1.8
+++ mac/tclMacAppInit.c 2001/11/23 01:01:16
@@ -22,7 +22,7 @@
# include <console.h>
#elif defined(__MWERKS__)
# include <SIOUX.h>
-short InstallConsole _ANSI_ARGS_((short fd));
+EXTERN short InstallConsole _ANSI_ARGS_((short fd));
#endif
#ifdef TCL_TEST
@@ -189,6 +189,7 @@
SIOUXSettings.autocloseonquit = true;
SIOUXSettings.showstatusline = true;
SIOUXSettings.asktosaveonclose = false;
+ SIOUXSettings.wasteusetempmemory = true;
InstallConsole(0);
SIOUXSetTitle("\pTcl Interpreter");
Index: mac/tclMacApplication.r
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacApplication.r,v
retrieving revision 1.3
diff -u -3 -r1.3 tclMacApplication.r
--- mac/tclMacApplication.r 1999/08/16 00:09:09 1.3
+++ mac/tclMacApplication.r 2001/11/23 01:01:16
@@ -42,21 +42,21 @@
TCL_MAJOR_VERSION, MINOR_VERSION,
RELEASE_LEVEL, 0x00, verUS,
TCL_PATCH_LEVEL,
- TCL_PATCH_LEVEL ", by Ray Johnson & Jim Ingham © Scriptics Inc"
+ TCL_PATCH_LEVEL ", by Ray Johnson & Jim Ingham" "\n" "© 2001 Tcl Core Team"
};
resource 'vers' (2) {
TCL_MAJOR_VERSION, MINOR_VERSION,
RELEASE_LEVEL, 0x00, verUS,
TCL_PATCH_LEVEL,
- "Tcl Shell " TCL_PATCH_LEVEL " © 1996-1997 Sun Microsystems, 1998-1999 Scriptics Inc"
+ "Tcl Shell " TCL_PATCH_LEVEL " © 1993-2001"
};
#define TCL_APP_CREATOR 'Tcl '
type TCL_APP_CREATOR as 'STR ';
resource TCL_APP_CREATOR (0, purgeable) {
- "Tcl Shell " TCL_PATCH_LEVEL " © 1996-1999"
+ "Tcl Shell " TCL_PATCH_LEVEL " © 1993-2001"
};
/*
@@ -73,3 +73,41 @@
'APPL', "Tcl Shell",
}
};
+
+/*
+ * The following resource is used when creating the 'env' variable in
+ * the Macintosh environment. The creation mechanisim looks for the
+ * 'STR#' resource named "Tcl Environment Variables" rather than a
+ * specific resource number. (In other words, feel free to change the
+ * resource id if it conflicts with your application.) Each string in
+ * the resource must be of the form "KEYWORD=SOME STRING". See Tcl
+ * documentation for futher information about the env variable.
+ *
+ * A good example of something you may want to set is: "TCL_LIBRARY=My
+ * disk:etc."
+ */
+
+resource 'STR#' (128, "Tcl Environment Variables") {
+ {
+ /*
+ "SCHEDULE_NAME=Agent Controller Schedule",
+ "SCHEDULE_PATH=Lozoya:System Folder:Tcl Lib:Tcl-Scheduler"
+ */
+ };
+};
+
+data 'alis' (1000, "Library Folder") {
+ $"0000 0000 00BA 0002 0001 012F 0000 0000" /* ........../.... */
+ $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
+ $"0000 0000 0000 985C FB00 4244 0000 0000" /* ......ò\.BD.... */
+ $"0002 1328 5375 7070 6F72 7420 4C69 6272" /* ...(Support Libr */
+ $"6172 6965 7329 0000 0000 0000 0000 0000" /* aries).......... */
+ $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
+ $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
+ $"0000 0076 8504 B617 A796 003D 0027 025B" /* ...vÖ..ßñ.=.'.[ */
+ $"01E4 0001 0001 0000 0000 0000 0000 0000" /* ............... */
+ $"0000 0000 0000 0000 0001 2F00 0002 0015" /* ........../..... */
+ $"2F3A 2853 7570 706F 7274 204C 6962 7261" /* /:(Support Libra */
+ $"7269 6573 2900 FFFF 0000" /* ries)... */
+};
+
Index: mac/tclMacChan.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacChan.c,v
retrieving revision 1.7
diff -u -3 -r1.7 tclMacChan.c
--- mac/tclMacChan.c 2001/08/30 08:53:15 1.7
+++ mac/tclMacChan.c 2001/11/23 01:01:18
@@ -136,7 +136,7 @@
static Tcl_ChannelType consoleChannelType = {
"file", /* Type name. */
- StdIOBlockMode, /* Set blocking/nonblocking mode.*/
+ (Tcl_ChannelTypeVersion)StdIOBlockMode, /* Set blocking/nonblocking mode.*/
StdIOClose, /* Close proc. */
StdIOInput, /* Input proc. */
StdIOOutput, /* Output proc. */
@@ -153,7 +153,7 @@
static Tcl_ChannelType fileChannelType = {
"file", /* Type name. */
- FileBlockMode, /* Set blocking or
+ (Tcl_ChannelTypeVersion)FileBlockMode, /* Set blocking or
* non-blocking mode.*/
FileClose, /* Close proc. */
FileInput, /* Input proc. */
Index: mac/tclMacCommonPch.h
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacCommonPch.h,v
retrieving revision 1.2
diff -u -3 -r1.2 tclMacCommonPch.h
--- mac/tclMacCommonPch.h 1998/11/11 07:46:04 1.2
+++ mac/tclMacCommonPch.h 2001/11/23 01:01:18
@@ -50,17 +50,6 @@
/*
-* The following defines control the behavior of the Macintosh
-* Universial Headers.
-*/
-
-
-#define SystemSevenOrLater 1
-#define STRICT_CONTROLS 1
-#define STRICT_WINDOWS 1
-
-
-/*
* Define the following symbol if you want
* comprehensive debugging turned on.
*/
@@ -75,14 +64,8 @@
#endif
-
/*
-* For a while, we will continue to use the old routine names, so that
-* people with older versions of CodeWarrior will still be able to compile
-* the source (albeit they will have to update the project files themselves).
-*
-* At some point, we will convert over to the new routine names.
+* for Metrowerks Pro 6 MSL
*/
-
-#define OLDROUTINENAMES 1
+#include <UseDLLPrefix.h>
Index: mac/tclMacFCmd.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacFCmd.c,v
retrieving revision 1.10
diff -u -3 -r1.10 tclMacFCmd.c
--- mac/tclMacFCmd.c 2001/08/30 08:53:15 1.10
+++ mac/tclMacFCmd.c 2001/11/23 01:01:19
@@ -32,16 +32,16 @@
*/
static int GetFileFinderAttributes _ANSI_ARGS_((Tcl_Interp *interp,
- int objIndex, CONST char *fileName,
+ int objIndex, Tcl_Obj *fileName,
Tcl_Obj **attributePtrPtr));
static int GetFileReadOnly _ANSI_ARGS_((Tcl_Interp *interp,
- int objIndex, CONST char *fileName,
+ int objIndex, Tcl_Obj *fileName,
Tcl_Obj **readOnlyPtrPtr));
static int SetFileFinderAttributes _ANSI_ARGS_((Tcl_Interp *interp,
- int objIndex, CONST char *fileName,
+ int objIndex, Tcl_Obj *fileName,
Tcl_Obj *attributePtr));
static int SetFileReadOnly _ANSI_ARGS_((Tcl_Interp *interp,
- int objIndex, CONST char *fileName,
+ int objIndex, Tcl_Obj *fileName,
Tcl_Obj *readOnlyPtr));
/*
@@ -716,7 +716,7 @@
err = FSpDirCreateCompat(&tmpDirSpec, smSystemScript, &tmpDirID);
}
if (err == noErr) {
- err = FSpDirectoryCopy(&srcFileSpec, &tmpDirSpec, NULL, 0, true,
+ err = FSpDirectoryCopy(&srcFileSpec, &tmpDirSpec, NULL, NULL, 0, true,
CopyErrHandler);
}
@@ -1157,18 +1157,17 @@
GetFileFinderAttributes(
Tcl_Interp *interp, /* The interp to report errors with. */
int objIndex, /* The index of the attribute option. */
- CONST char *fileName, /* The name of the file (UTF-8). */
+ Tcl_Obj *fileName, /* The name of the file (UTF-8). */
Tcl_Obj **attributePtrPtr) /* A pointer to return the object with. */
{
OSErr err;
FSSpec fileSpec;
FInfo finfo;
- Tcl_DString pathString;
+ char *native;
- Tcl_UtfToExternalDString(NULL, fileName, -1, &pathString);
- err = FSpLocationFromPath(Tcl_DStringLength(&pathString),
- Tcl_DStringValue(&pathString), &fileSpec);
- Tcl_DStringFree(&pathString);
+ native=Tcl_FSGetNativePath(fileName);
+ err = FSpLocationFromPath(strlen(native),
+ native, &fileSpec);
if (err == noErr) {
err = FSpGetFInfo(&fileSpec, &finfo);
@@ -1204,7 +1203,7 @@
if (err != noErr) {
errno = TclMacOSErrorToPosixError(err);
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),
- "could not read \"", fileName, "\": ",
+ "could not read \"", Tcl_GetString(fileName), "\": ",
Tcl_PosixError(interp), (char *) NULL);
return TCL_ERROR;
}
@@ -1236,18 +1235,17 @@
GetFileReadOnly(
Tcl_Interp *interp, /* The interp to report errors with. */
int objIndex, /* The index of the attribute. */
- CONST char *fileName, /* The name of the file (UTF-8). */
+ Tcl_Obj *fileName, /* The name of the file (UTF-8). */
Tcl_Obj **readOnlyPtrPtr) /* A pointer to return the object with. */
{
OSErr err;
FSSpec fileSpec;
CInfoPBRec paramBlock;
- Tcl_DString pathString;
+ char *native;
- Tcl_UtfToExternalDString(NULL, fileName, -1, &pathString);
- err = FSpLocationFromPath(Tcl_DStringLength(&pathString),
- Tcl_DStringValue(&pathString), &fileSpec);
- Tcl_DStringFree(&pathString);
+ native=Tcl_FSGetNativePath(fileName);
+ err = FSpLocationFromPath(strlen(native),
+ native, &fileSpec);
if (err == noErr) {
if (err == noErr) {
@@ -1273,7 +1271,7 @@
if (err != noErr) {
errno = TclMacOSErrorToPosixError(err);
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),
- "could not read \"", fileName, "\": ",
+ "could not read \"", Tcl_GetString(fileName), "\": ",
Tcl_PosixError(interp), (char *) NULL);
return TCL_ERROR;
}
@@ -1301,18 +1299,17 @@
SetFileFinderAttributes(
Tcl_Interp *interp, /* The interp to report errors with. */
int objIndex, /* The index of the attribute. */
- CONST char *fileName, /* The name of the file (UTF-8). */
+ Tcl_Obj *fileName, /* The name of the file (UTF-8). */
Tcl_Obj *attributePtr) /* The command line object. */
{
OSErr err;
FSSpec fileSpec;
FInfo finfo;
- Tcl_DString pathString;
+ char *native;
- Tcl_UtfToExternalDString(NULL, fileName, -1, &pathString);
- err = FSpLocationFromPath(Tcl_DStringLength(&pathString),
- Tcl_DStringValue(&pathString), &fileSpec);
- Tcl_DStringFree(&pathString);
+ native=Tcl_FSGetNativePath(fileName);
+ err = FSpLocationFromPath(strlen(native),
+ native, &fileSpec);
if (err == noErr) {
err = FSpGetFInfo(&fileSpec, &finfo);
@@ -1357,7 +1354,7 @@
Tcl_Obj *resultPtr = Tcl_GetObjResult(interp);
Tcl_AppendStringsToObj(resultPtr, "cannot set ",
tclpFileAttrStrings[objIndex], ": \"",
- fileName, "\" is a directory", (char *) NULL);
+ Tcl_GetString(fileName), "\" is a directory", (char *) NULL);
return TCL_ERROR;
}
}
@@ -1365,7 +1362,7 @@
if (err != noErr) {
errno = TclMacOSErrorToPosixError(err);
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),
- "could not read \"", fileName, "\": ",
+ "could not read \"", Tcl_GetString(fileName), "\": ",
Tcl_PosixError(interp), (char *) NULL);
return TCL_ERROR;
}
@@ -1393,19 +1390,18 @@
SetFileReadOnly(
Tcl_Interp *interp, /* The interp to report errors with. */
int objIndex, /* The index of the attribute. */
- CONST char *fileName, /* The name of the file (UTF-8). */
+ Tcl_Obj *fileName, /* The name of the file (UTF-8). */
Tcl_Obj *readOnlyPtr) /* The command line object. */
{
OSErr err;
FSSpec fileSpec;
HParamBlockRec paramBlock;
int hidden;
- Tcl_DString pathString;
+ char *native;
- Tcl_UtfToExternalDString(NULL, fileName, -1, &pathString);
- err = FSpLocationFromPath(Tcl_DStringLength(&pathString),
- Tcl_DStringValue(&pathString), &fileSpec);
- Tcl_DStringFree(&pathString);
+ native=Tcl_FSGetNativePath(fileName);
+ err = FSpLocationFromPath(strlen(native),
+ native, &fileSpec);
if (err == noErr) {
if (Tcl_GetBooleanFromObj(interp, readOnlyPtr, &hidden) != TCL_OK) {
@@ -1440,7 +1436,7 @@
if (err != noErr) {
errno = TclMacOSErrorToPosixError(err);
Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),
- "could not read \"", fileName, "\": ",
+ "could not read \"", Tcl_GetString(fileName), "\": ",
Tcl_PosixError(interp), (char *) NULL);
return TCL_ERROR;
}
@@ -1625,20 +1621,23 @@
Tcl_UtfToExternalDString(NULL,&path[lastCheckpoint],
fileNameLen,&nativeds);
fileNameLen=Tcl_DStringLength(&nativeds);
- if(fileNameLen > MAXMACFILENAMELEN)
- fileNameLen=MAXMACFILENAMELEN;
+ if(fileNameLen > MAXMACFILENAMELEN) {
+ err = bdNamErr;
+ } else {
fileName[0]=fileNameLen;
strncpy((char *) fileName + 1, Tcl_DStringValue(&nativeds),
fileNameLen);
+ }
Tcl_DStringFree(&nativeds);
}
+ if(err == noErr)
err=FSMakeFSSpecCompat(vRefNum, dirID, fileNamePtr, &fileSpec);
if(err != noErr) {
if(err != fnfErr) {
/*
- * this can if trying to get parent of a root
+ * this can occur if trying to get parent of a root
* volume via '::' or when using an illegal
- * filename revert to last checkpoint and stop
+ * filename; revert to last checkpoint and stop
* processing path further
*/
err=FSMakeFSSpecCompat(vRefNum, dirID, NULL, &fileSpec);
@@ -1687,11 +1686,11 @@
Tcl_ExternalToUtfDString(NULL,*newPathHandle,newPathLen,&nativeds);
if (cur != 0) {
/* not at end, append remaining path */
- if ( newPathLen==0 || *(*newPathHandle+(newPathLen-1))!=':') {
+ if ( newPathLen==0 || (*(*newPathHandle+(newPathLen-1))!=':' && path[nextCheckpoint] !=':')) {
Tcl_DStringAppend(&nativeds, ":" , 1);
}
- Tcl_DStringAppend(&nativeds, &path[nextCheckpoint+1],
- strlen(&path[nextCheckpoint+1]));
+ Tcl_DStringAppend(&nativeds, &path[nextCheckpoint],
+ strlen(&path[nextCheckpoint]));
}
DisposeHandle(newPathHandle);
Index: mac/tclMacFile.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacFile.c,v
retrieving revision 1.12
diff -u -3 -r1.12 tclMacFile.c
--- mac/tclMacFile.c 2001/08/30 08:53:15 1.12
+++ mac/tclMacFile.c 2001/11/23 01:01:20
@@ -177,7 +177,7 @@
*/
Tcl_DStringFree(&dsOrig);
Tcl_DStringAppend(&dsOrig, ":", 1);
- Tcl_DStringAppend(&dsOrig, fileName2, -1);
+ Tcl_DStringAppend(&dsOrig, Tcl_GetString(fileNamePtr), -1);
baseLength = Tcl_DStringLength(&dsOrig);
Tcl_UtfToExternalDString(NULL, Tcl_DStringValue(&dsOrig),
@@ -234,9 +234,9 @@
&fileString);
if (Tcl_StringMatch(Tcl_DStringValue(&fileString), pattern)) {
int typeOk = 1;
+ Tcl_Obj *tempName;
Tcl_DStringSetLength(&dsOrig, baseLength);
Tcl_DStringAppend(&dsOrig, Tcl_DStringValue(&fileString), -1);
- Tcl_Obj *tempName;
fname = Tcl_DStringValue(&dsOrig);
fnameLen = Tcl_DStringLength(&dsOrig);
@@ -282,13 +282,10 @@
}
}
if (typeOk == 1 && types->type != 0) {
- if (types->perm == 0) {
- /* We haven't yet done a stat on the file */
if (TclpObjStat(tempName, &buf) != 0) {
/* Posix error occurred */
typeOk = 0;
}
- }
if (typeOk) {
/*
* In order bcdpfls as in 'find -t'
Index: mac/tclMacInt.h
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacInt.h,v
retrieving revision 1.6
diff -u -3 -r1.6 tclMacInt.h
--- mac/tclMacInt.h 1999/08/16 00:09:18 1.6
+++ mac/tclMacInt.h 2001/11/23 01:01:20
@@ -14,18 +14,16 @@
#ifndef _TCLMACINT
#define _TCLMACINT
-#ifndef _TCL
-# include "tcl.h"
+#ifndef _TCLINT
+#include "tclInt.h"
#endif
-#ifndef _TCLMAC
-# include "tclMac.h"
+#ifndef _TCLPORT
+#include "tclPort.h"
#endif
#include <Events.h>
#include <Files.h>
-#pragma export on
-
/*
* Defines to control stack behavior.
*
@@ -46,6 +44,11 @@
#define TCL_MAC_STACK_THRESHOLD 16384
+#ifdef BUILD_tcl
+# undef TCL_STORAGE_CLASS
+# define TCL_STORAGE_CLASS DLLEXPORT
+#endif
+
/*
* This flag is passed to TclMacRegisterResourceFork
* by a file (usually a library) whose resource fork
@@ -63,12 +66,12 @@
*/
EXTERN char * TclMacGetFontEncoding _ANSI_ARGS_((int fontId));
-EXTERN int TclMacHaveThreads(void);
+EXTERN int TclMacHaveThreads _ANSI_ARGS_((void));
+EXTERN long TclpGetGMTOffset _ANSI_ARGS_((void));
-#include "tclPort.h"
-#include "tclPlatDecls.h"
+# undef TCL_STORAGE_CLASS
+# define TCL_STORAGE_CLASS DLLIMPORT
+
#include "tclIntPlatDecls.h"
-#pragma export reset
-
#endif /* _TCLMACINT */
Index: mac/tclMacLibrary.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacLibrary.c,v
retrieving revision 1.4
diff -u -3 -r1.4 tclMacLibrary.c
--- mac/tclMacLibrary.c 2000/02/10 09:59:10 1.4
+++ mac/tclMacLibrary.c 2001/11/23 01:01:20
@@ -26,6 +26,15 @@
#include <Strings.h>
#include "tclMacInt.h"
+#if defined(TCL_REGISTER_LIBRARY) && defined(USE_TCL_STUBS)
+#error "Can't use TCL_REGISTER_LIBRARY and USE_TCL_STUBS at the same time!"
+/*
+ * Can't register a library with Tcl when using stubs in the current
+ * implementation, since Tcl_InitStubs hasn't been called yet
+ * when OpenLibraryResource is executing.
+ */
+#endif
+
/*
* These function are not currently defined in any header file. The
* only place they should be used is in the Initialization and
Index: mac/tclMacLibrary.r
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacLibrary.r,v
retrieving revision 1.4
diff -u -3 -r1.4 tclMacLibrary.r
--- mac/tclMacLibrary.r 1999/08/16 00:09:22 1.4
+++ mac/tclMacLibrary.r 2001/11/23 01:01:20
@@ -42,14 +42,14 @@
TCL_MAJOR_VERSION, MINOR_VERSION,
RELEASE_LEVEL, 0x00, verUS,
TCL_PATCH_LEVEL,
- TCL_PATCH_LEVEL ", by Ray Johnson & Jim Ingham © Scriptics Inc."
+ TCL_PATCH_LEVEL ", by Ray Johnson & Jim Ingham" "\n" "© 2001 Tcl Core Team"
};
resource 'vers' (2) {
TCL_MAJOR_VERSION, MINOR_VERSION,
RELEASE_LEVEL, 0x00, verUS,
TCL_PATCH_LEVEL,
- "Tcl Library " TCL_PATCH_LEVEL " © 1996-1997 Sun Microsystems, 1998-1999 Scriptics Inc."
+ "Tcl Library " TCL_PATCH_LEVEL " © 1993-2001"
};
/*
@@ -96,7 +96,7 @@
type TCL_CREATOR as 'STR ';
resource TCL_CREATOR (0, purgeable) {
- "Tcl Library " TCL_PATCH_LEVEL " © 1996-1999"
+ "Tcl Library " TCL_PATCH_LEVEL " © 1993-2001"
};
/*
@@ -125,23 +125,9 @@
resource 'STR ' (-16397, purgeable) {
"Tcl Library\n\n"
"This is the core library needed to run Tool Command Language programs. "
- "To work properly, it should be placed in the ÔTool Command LanguageÕ folder "
+ "To work properly, it should be placed in the Tool Command Language¹ folder "
"within the Extensions folder."
};
-
-/*
- * The mechanisim below loads Tcl source into the resource fork of the
- * application. The example below creates a TEXT resource named
- * "Init" from the file "init.tcl". This allows applications to use
- * Tcl to define the behavior of the application without having to
- * require some predetermined file structure - all needed Tcl "files"
- * are located within the application. To source a file for the
- * resource fork the source command has been modified to support
- * sourcing from resources. In the below case "source -rsrc {Init}"
- * will load the TEXT resource named "Init".
- */
-
-#include "tclMacTclCode.r"
/*
* The following are icons for the shared library.
Index: mac/tclMacLoad.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacLoad.c,v
retrieving revision 1.7
diff -u -3 -r1.7 tclMacLoad.c
--- mac/tclMacLoad.c 2001/09/28 01:21:53 1.7
+++ mac/tclMacLoad.c 2001/11/23 01:01:20
@@ -108,7 +108,7 @@
Tcl_PackageInitProc **proc2Ptr,
/* Where to return the addresses corresponding
* to sym1 and sym2. */
- ClientData *clientDataPtr; /* Filled with token for dynamically loaded
+ ClientData *clientDataPtr, /* Filled with token for dynamically loaded
* file which will be passed back to
* (*unloadProcPtr)() to unload the file. */
Tcl_FSUnloadFileProc **unloadProcPtr)
@@ -125,19 +125,11 @@
Handle fragResource;
UInt32 offset = 0;
UInt32 length = kCFragGoesToEOF;
- char packageName[255];
+ StringPtr fragName=NULL;
Str255 errName;
+ Tcl_DString ds;
char *native;
- /*
- * First thing we must do is infer the package name from the sym1
- * variable. This is kind of dumb since the caller actually knows
- * this value, it just doesn't give it to us.
- */
- strcpy(packageName, sym1);
- Tcl_UtfToLower(packageName);
- *(Tcl_UtfAtIndex(packageName, Tcl_NumUtfChars(packageName, -1) - 5)) = 0;
-
native = Tcl_FSGetNativePath(pathPtr);
err = FSpLocationFromPath(strlen(native), native, &fileSpec);
@@ -147,6 +139,14 @@
}
/*
+ * First thing we must do is infer the package name from the sym1
+ * variable. This is kind of dumb since the caller actually knows
+ * this value, it just doesn't give it to us.
+ */
+ native = Tcl_UtfToExternalDString(NULL, sym1, -1, &ds);
+ native[strlen(native) - 5] = 0;
+
+ /*
* See if this fragment has a 'cfrg' resource. It will tell us where
* to look for the fragment in the file. If it doesn't exist we will
* assume we have a ppc frag using the whole data fork. If it does
@@ -173,10 +173,11 @@
index++, itemStart += srcItem->itemSize) {
srcItem = (CfrgItem*)itemStart;
if (srcItem->archType != OUR_ARCH_TYPE) continue;
- if (!strncasecmp(packageName, (char *) srcItem->name + 1,
- srcItem->name[0])) {
+ if (!strncasecmp(native, (char *) srcItem->name + 1,
+ strlen(native))) {
offset = srcItem->codeOffset;
length = srcItem->codeLength;
+ fragName=srcItem->name;
}
}
}
@@ -190,6 +191,7 @@
CloseResFile(fragFileRef);
UseResFile(saveFileRef);
}
+ Tcl_DStringFree(&ds);
/*
* Now we can attempt to load the fragement using the offset & length
@@ -197,9 +199,11 @@
* as we are going to search for specific entry points passed to us.
*/
- c2pstr(packageName);
- err = GetDiskFragment(&fileSpec, offset, length, (StringPtr) packageName,
+ err = GetDiskFragment(&fileSpec, offset, length, fragName,
kLoadCFrag, &connID, &dummy, errName);
+
+ *clientDataPtr = (ClientData) connID;
+
if (err != fragNoErr) {
p2cstr(errName);
Tcl_AppendResult(interp, "couldn't load file \"",
@@ -208,9 +212,12 @@
return TCL_ERROR;
}
- c2pstr(sym1);
- err = FindSymbol(connID, (StringPtr) sym1, (Ptr *) proc1Ptr, &symClass);
- p2cstr((StringPtr) sym1);
+ *unloadProcPtr = &TclpUnloadFile;
+
+ native = Tcl_UtfToExternalDString(NULL, sym1, -1, &ds);
+ c2pstr(native);
+ err = FindSymbol(connID, (StringPtr) native, (Ptr *) proc1Ptr, &symClass);
+ Tcl_DStringFree(&ds);
if (err != fragNoErr || symClass == kDataCFragSymbol) {
Tcl_SetResult(interp,
"could not find Initialization routine in library",
@@ -218,16 +225,14 @@
return TCL_ERROR;
}
- c2pstr(sym2);
- err = FindSymbol(connID, (StringPtr) sym2, (Ptr *) proc2Ptr, &symClass);
- p2cstr((StringPtr) sym2);
+ native = Tcl_UtfToExternalDString(NULL, sym2, -1, &ds);
+ c2pstr(native);
+ err = FindSymbol(connID, (StringPtr) native, (Ptr *) proc2Ptr, &symClass);
+ Tcl_DStringFree(&ds);
if (err != fragNoErr || symClass == kDataCFragSymbol) {
*proc2Ptr = NULL;
}
- *clientDataPtr = (ClientData) connID;
- *unloadProcPtr = &TclpUnloadFile;
-
return TCL_OK;
}
@@ -256,6 +261,7 @@
* a token that represents the loaded
* file. */
{
+ CloseConnection((CFragConnectionID*) &clientData);
}
/*
Index: mac/tclMacMSLPrefix.h
===================================================================
RCS file: tclMacMSLPrefix.h
diff -N tclMacMSLPrefix.h
--- /tmp/cvsb7Kt2I Thu Nov 22 17:01:49 2001
+++ /dev/null Thu May 24 22:33:05 2001
@@ -1,24 +0,0 @@
-/*
- * tclMacMSLPrefix.h --
- *
- * A wrapper for the MSL ansi_prefix.mac.h file. This just turns export on
- * after including the MSL prefix file, so we can export symbols from the MSL
- * and through the Tcl shared libraries
- *
- *
- * Copyright (c) 1997 Sun Microsystems, Inc.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tclMacMSLPrefix.h,v 1.2 1998/09/14 18:40:05 stanton Exp $
- */
-
-#include <ansi_prefix.mac.h>
-/*
- * "export" is a MetroWerks specific pragma. It flags the linker that
- * any symbols that are defined when this pragma is on will be exported
- * to shared libraries that link with this library.
- */
-
-#pragma export on
Index: mac/tclMacMath.h
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacMath.h,v
retrieving revision 1.2
diff -u -3 -r1.2 tclMacMath.h
--- mac/tclMacMath.h 1998/09/14 18:40:05 1.2
+++ mac/tclMacMath.h 2001/11/23 01:01:21
@@ -135,7 +135,7 @@
#endif
#endif
-#if (defined(THINK_C) || defined(__MWERKS__))
+#if (defined(THINK_C))
#pragma export on
double hypotd(double x, double y);
#define hypot hypotd
Index: mac/tclMacNotify.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacNotify.c,v
retrieving revision 1.7
diff -u -3 -r1.7 tclMacNotify.c
--- mac/tclMacNotify.c 2001/11/21 02:36:21 1.7
+++ mac/tclMacNotify.c 2001/11/23 01:01:21
@@ -266,7 +266,7 @@
* system event queue unless we call WaitNextEvent.
*/
- GetGlobalMouse(¤tMouse);
+ GetGlobalMouseTcl(¤tMouse);
if ((notifier.eventProcPtr != NULL) &&
!EqualPt(currentMouse, notifier.lastMousePosition)) {
notifier.lastMousePosition = currentMouse;
@@ -296,7 +296,7 @@
*/
while (needsUpdate || (GetEvQHdr()->qHead != NULL)) {
- GetGlobalMouse(¤tMouse);
+ GetGlobalMouseTcl(¤tMouse);
SetRect(&mouseRect, currentMouse.h, currentMouse.v,
currentMouse.h + 1, currentMouse.v + 1);
RectRgn(notifier.utilityRgn, &mouseRect);
@@ -481,7 +481,7 @@
* the current mouse position.
*/
- GetGlobalMouse(¤tMouse);
+ GetGlobalMouseTcl(¤tMouse);
SetRect(&mouseRect, currentMouse.h, currentMouse.v,
currentMouse.h + 1, currentMouse.v + 1);
RectRgn(notifier.utilityRgn, &mouseRect);
Index: mac/tclMacOSA.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacOSA.c,v
retrieving revision 1.6
diff -u -3 -r1.6 tclMacOSA.c
--- mac/tclMacOSA.c 1999/12/21 23:58:13 1.6
+++ mac/tclMacOSA.c 2001/11/23 01:01:24
@@ -2120,7 +2120,7 @@
return TCL_ERROR;
}
- FSpCreateResFileCompat(&fileSpec,
+ FSpCreateResFileCompatTcl(&fileSpec,
'WiSH', 'osas', smSystemScript);
myErr = ResError();
@@ -2132,7 +2132,7 @@
goto rezEvalCleanUp;
}
- fileRef = FSpOpenResFileCompat(&fileSpec, fsRdWrPerm);
+ fileRef = FSpOpenResFileCompatTcl(&fileSpec, fsRdWrPerm);
if (fileRef == -1) {
Tcl_AppendResult(interp, "Error reading the file: \"",
fileName, "\".", NULL);
@@ -2307,7 +2307,7 @@
return TCL_ERROR;
}
- fileRef = FSpOpenResFileCompat(&fileSpec, fsRdPerm);
+ fileRef = FSpOpenResFileCompatTcl(&fileSpec, fsRdPerm);
if (fileRef == -1) {
Tcl_AppendResult(interp, "Error reading the file: \"",
fileName, "\".", NULL);
Index: mac/tclMacOSA.exp
===================================================================
RCS file: tclMacOSA.exp
diff -N tclMacOSA.exp
--- /tmp/cvs3iZErn Thu Nov 22 17:01:49 2001
+++ /dev/null Thu May 24 22:33:05 2001
@@ -1 +0,0 @@
-Tclapplescript_Init
Index: mac/tclMacOSA.r
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacOSA.r,v
retrieving revision 1.3
diff -u -3 -r1.3 tclMacOSA.r
--- mac/tclMacOSA.r 1999/08/16 00:09:26 1.3
+++ mac/tclMacOSA.r 2001/11/23 01:01:24
@@ -20,12 +20,12 @@
*/
#define SCRIPT_MAJOR_VERSION 1 /* Major number */
-#define SCRIPT_MINOR_VERSION 0 /* Minor number */
-#define SCRIPT_RELEASE_SERIAL 2 /* Really minor number! */
-#define RELEASE_LEVEL alpha /* alpha, beta, or final */
-#define SCRIPT_VERSION "1.0"
-#define SCRIPT_PATCH_LEVEL "1.0a2"
-#define FINAL 0 /* Change to 1 if final version. */
+#define SCRIPT_MINOR_VERSION 1 /* Minor number */
+#define SCRIPT_RELEASE_SERIAL 0 /* Really minor number! */
+#define RELEASE_LEVEL final /* alpha, beta, or final */
+#define SCRIPT_VERSION "1.1"
+#define SCRIPT_PATCH_LEVEL "1.1.0"
+#define FINAL 1 /* Change to 1 if final version. */
#if FINAL
# define MINOR_VERSION (SCRIPT_MINOR_VERSION * 16) + SCRIPT_RELEASE_SERIAL
@@ -39,14 +39,14 @@
SCRIPT_MAJOR_VERSION, MINOR_VERSION,
RELEASE_LEVEL, 0x00, verUS,
SCRIPT_PATCH_LEVEL,
- SCRIPT_PATCH_LEVEL ", by Jim Ingham © Cygnus Solutions"
+ SCRIPT_PATCH_LEVEL ", by Jim Ingham © Cygnus Solutions" "\n" "© 2001 Tcl Core Team"
};
resource 'vers' (2) {
SCRIPT_MAJOR_VERSION, MINOR_VERSION,
RELEASE_LEVEL, 0x00, verUS,
SCRIPT_PATCH_LEVEL,
- "Tclapplescript " SCRIPT_PATCH_LEVEL " © 1996-1999"
+ "Tclapplescript " SCRIPT_PATCH_LEVEL " © 1996-2001"
};
/*
@@ -60,7 +60,7 @@
"TclAppleScript Library\n\n"
"This library provides the ability to run AppleScript "
" commands from Tcl/Tk programs. To work properly, it "
- "should be placed in the ÔTool Command LanguageÕ folder "
+ "should be placed in the Tool Command Language¹ folder "
"within the Extensions folder."
};
@@ -71,6 +71,6 @@
data 'TEXT' (4000,"pkgIndex",purgeable, preload) {
"# Tcl package index file, version 1.0\n"
- "package ifneeded Tclapplescript 1.0 [list tclPkgSetup $dir Tclapplescript 1.0 {{Tclapplescript"
+ "package ifneeded Tclapplescript 1.1 [list tclPkgSetup $dir Tclapplescript 1.1 {{Tclapplescript"
".shlb load AppleScript}}]\n"
};
Index: mac/tclMacPanic.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacPanic.c,v
retrieving revision 1.5
diff -u -3 -r1.5 tclMacPanic.c
--- mac/tclMacPanic.c 2001/06/17 03:48:19 1.5
+++ mac/tclMacPanic.c 2001/11/23 01:01:24
@@ -17,6 +17,7 @@
#include <Events.h>
#include <Controls.h>
+#include <ControlDefinitions.h>
#include <Windows.h>
#include <TextEdit.h>
#include <Fonts.h>
@@ -59,7 +60,7 @@
*/
/* VARARGS ARGSUSED */
-static void
+void
TclpPanic TCL_VARARGS_DEF(CONST char *, format)
{
va_list varg;
@@ -128,7 +129,7 @@
part = FindControl(event.where, macWinPtr,
&okButtonHandle);
- if ((inButton == part) &&
+ if ((kControlButtonPart == part) &&
(TrackControl(okButtonHandle,
event.where, NULL))) {
done = true;
@@ -152,7 +153,7 @@
if (stopIconHandle != NULL) {
PlotIcon(&iconRect, stopIconHandle);
}
- TextBox(msg, strlen(msg), &textRect, teFlushDefault);
+ TETextBox(msg, strlen(msg), &textRect, teFlushDefault);
DrawControls(macWinPtr);
EndUpdate(macWinPtr);
}
@@ -169,130 +170,3 @@
#endif
}
-/*
- * NOTE: The rest of this file is *identical* to the file
- * generic/tclPanic.c. Someone with the right set of development tools on
- * the Mac should be able to build the Tcl library using that file, and
- * remove the rest of this one.
- */
-
-#include "tclInt.h"
-#include "tclPort.h"
-
-/*
- * The panicProc variable contains a pointer to an application
- * specific panic procedure.
- */
-
-static Tcl_PanicProc *panicProc = NULL;
-
-/*
- * The platformPanicProc variable contains a pointer to a platform
- * specific panic procedure, if any. ( TclpPanic may be NULL via
- * a macro. )
- */
-
-static Tcl_PanicProc * CONST platformPanicProc = TclpPanic;
-
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_SetPanicProc --
- *
- * Replace the default panic behavior with the specified functiion.
- *
- * Results:
- * None.
- *
- * Side effects:
- * Sets the panicProc variable.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_SetPanicProc(proc)
- Tcl_PanicProc *proc;
-{
- panicProc = proc;
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_PanicVA --
- *
- * Print an error message and kill the process.
- *
- * Results:
- * None.
- *
- * Side effects:
- * The process dies, entering the debugger if possible.
- *
- *----------------------------------------------------------------------
- */
-
-void
-Tcl_PanicVA (format, argList)
- CONST char *format; /* Format string, suitable for passing to
- * fprintf. */
- va_list argList; /* Variable argument list. */
-{
- char *arg1, *arg2, *arg3, *arg4; /* Additional arguments (variable in
- * number) to pass to fprintf. */
- char *arg5, *arg6, *arg7, *arg8;
-
- arg1 = va_arg(argList, char *);
- arg2 = va_arg(argList, char *);
- arg3 = va_arg(argList, char *);
- arg4 = va_arg(argList, char *);
- arg5 = va_arg(argList, char *);
- arg6 = va_arg(argList, char *);
- arg7 = va_arg(argList, char *);
- arg8 = va_arg(argList, char *);
-
- if (panicProc != NULL) {
- (void) (*panicProc)(format, arg1, arg2, arg3, arg4,
- arg5, arg6, arg7, arg8);
- } else if (platformPanicProc != NULL) {
- (void) (*platformPanicProc)(format, arg1, arg2, arg3, arg4,
- arg5, arg6, arg7, arg8);
- } else {
- (void) fprintf(stderr, format, arg1, arg2, arg3, arg4, arg5, arg6,
- arg7, arg8);
- (void) fprintf(stderr, "\n");
- (void) fflush(stderr);
- abort();
- }
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * Tcl_Panic --
- *
- * Print an error message and kill the process.
- *
- * Results:
- * None.
- *
- * Side effects:
- * The process dies, entering the debugger if possible.
- *
- *----------------------------------------------------------------------
- */
-
- /* VARARGS ARGSUSED */
-void
-Tcl_Panic TCL_VARARGS_DEF(CONST char *,arg1)
-{
- va_list argList;
- CONST char *format;
-
- format = TCL_VARARGS_START(CONST char *,arg1,argList);
- Tcl_PanicVA(format, argList);
- va_end (argList);
-}
-
Index: mac/tclMacPort.h
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacPort.h,v
retrieving revision 1.13
diff -u -3 -r1.13 tclMacPort.h
--- mac/tclMacPort.h 2001/08/30 08:53:15 1.13
+++ mac/tclMacPort.h 2001/11/23 01:01:24
@@ -55,7 +55,7 @@
* However, MetroWerks has screwed that file up a couple of times
* and all we need are the defines.
*/
-
+#ifndef _FCNTL
# define O_RDWR 0x0 /* open the file in read/write mode */
# define O_RDONLY 0x1 /* open the file in read only mode */
# define O_WRONLY 0x2 /* open the file in write only mode */
@@ -63,7 +63,7 @@
# define O_CREAT 0x0200 /* create the file if it doesn't exist */
# define O_EXCL 0x0400 /* if the file exists don't create it again */
# define O_TRUNC 0x0800 /* truncate the file after opening it */
-
+#endif
/*
* MetroWerks stat.h file is rather weak. The defines
* after the include are needed to fill in the missing
@@ -98,6 +98,7 @@
# define S_IXOTH 00001 /* execute permission: other */
# endif
+#if __MSL__ < 0x6000
# define isatty(arg) 1
/*
@@ -109,6 +110,7 @@
# define X_OK 0x01 /* test for execute or search permission */
# define W_OK 0x02 /* test for write permission */
# define R_OK 0x04 /* test for read permission */
+#endif
#endif /* __MWERKS__ */
@@ -148,6 +150,11 @@
#define WTERMSIG(status) (1)
#define WSTOPSIG(status) (1)
+#ifdef BUILD_tcl
+# undef TCL_STORAGE_CLASS
+# define TCL_STORAGE_CLASS DLLEXPORT
+#endif
+
/*
* Make sure that MAXPATHLEN is defined.
*/
@@ -205,15 +212,14 @@
#define TCL_SHLIB_EXT ".shlb"
/*
- * The following define is bogus and needs to be fixed. It claims that
+ * The following define is defined as a workaround on the mac. It claims that
* struct tm has the timezone string in it, which is not true. However,
* the code that works around this fact does not compile on the Mac, since
* it relies on the fact that time.h has a "timezone" variable, which the
* Metrowerks time.h does not have...
*
- * The Mac timezone stuff never worked (clock format 0 -format %Z returns "Z")
- * so this just keeps the status quo. The real answer is to not use the
- * MSL strftime, and provide the needed compat functions...
+ * The Mac timezone stuff is implemented via the TclpGetTZName() routine in
+ * tclMacTime.c
*
*/
@@ -296,9 +302,11 @@
#endif /* TCL_THREADS */
typedef pascal void (*ExitToShellProcPtr)(void);
-#include "tclMac.h"
-#include "tclMacInt.h"
-/* #include "tclPlatDecls.h"
- #include "tclIntPlatDecls.h" */
+
+#include "tclMac.h" // contains #include "tclPlatDecls.h"
+#include "tclIntPlatDecls.h"
+
+# undef TCL_STORAGE_CLASS
+# define TCL_STORAGE_CLASS DLLIMPORT
#endif /* _MACPORT */
Index: mac/tclMacResource.r
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacResource.r,v
retrieving revision 1.4
diff -u -3 -r1.4 tclMacResource.r
--- mac/tclMacResource.r 1999/08/16 00:09:30 1.4
+++ mac/tclMacResource.r 2001/11/23 01:01:24
@@ -40,21 +40,7 @@
# define MINOR_VERSION TCL_MINOR_VERSION * 16
#endif
-resource 'vers' (1) {
- TCL_MAJOR_VERSION, MINOR_VERSION,
- RELEASE_LEVEL, 0x00, verUS,
- TCL_PATCH_LEVEL,
- TCL_PATCH_LEVEL ", by Ray Johnson & Jim Ingham © Scriptics Inc."
-};
-resource 'vers' (2) {
- TCL_MAJOR_VERSION, MINOR_VERSION,
- RELEASE_LEVEL, 0x00, verUS,
- TCL_PATCH_LEVEL,
- "Simple Tcl Shell " TCL_PATCH_LEVEL " © 1996 - 1999"
-};
-
-
/*
* The mechanisim below loads Tcl source into the resource fork of the
* application. The example below creates a TEXT resource named
@@ -68,23 +54,4 @@
*/
#include "tclMacTclCode.r"
-
-/*
- * The following resource is used when creating the 'env' variable in
- * the Macintosh environment. The creation mechanisim looks for the
- * 'STR#' resource named "Tcl Environment Variables" rather than a
- * specific resource number. (In other words, feel free to change the
- * resource id if it conflicts with your application.) Each string in
- * the resource must be of the form "KEYWORD=SOME STRING". See Tcl
- * documentation for futher information about the env variable.
- *
- * A good example of something you may want to set is: "TCL_LIBRARY=My
- * disk:etc."
- */
-
-resource 'STR#' (128, "Tcl Environment Variables") {
- { "SCHEDULE_NAME=Agent Controller Schedule",
- "SCHEDULE_PATH=Lozoya:System Folder:Tcl Lib:Tcl-Scheduler"
- };
-};
Index: mac/tclMacShLib.exp
===================================================================
RCS file: tclMacShLib.exp
diff -N tclMacShLib.exp
--- /tmp/cvsT1dx4g Thu Nov 22 17:01:49 2001
+++ /dev/null Thu May 24 22:33:05 2001
@@ -1,1063 +0,0 @@
-AddrToName
-AddrToStr
-BuildAFPVolMountInfo
-BumpDate
-ChangeCreatorType
-ChangeFDFlags
-CheckObjectLock
-CheckVolLock
-ClearHasBeenInited
-ClearHasCustomIcon
-ClearIsInvisible
-ClearIsStationery
-ClearNameLocked
-CloseResolver
-ConfigureMemory
-CopyDirectoryAccess
-CopyFileMgrAttributes
-CopyFork
-CreateFileIDRef
-DTCopyComment
-DTGetIcon
-DTOpen
-DTSetComment
-DeleteDirectory
-DeleteDirectoryContents
-DeleteFileIDRef
-DetermineVRefNum
-DirectoryCopy
-EnumCache
-##EnvStr
-ExchangeFiles
-FSMakeFSSpecCompat
-FSReadNoCache
-FSWriteNoCache
-FSWriteVerify
-FSpBumpDate
-FSpCatMoveCompat
-FSpChangeCreatorType
-FSpChangeFDFlags
-FSpCheckObjectLock
-FSpClearHasBeenInited
-FSpClearHasCustomIcon
-FSpClearIsInvisible
-FSpClearIsStationery
-FSpClearNameLocked
-FSpCopyDirectoryAccess
-FSpCopyFile
-FSpCopyFileMgrAttributes
-FSpCreateCompat
-FSpCreateFileIDRef
-FSpCreateMinimum
-FSpCreateResFileCompat
-FSpDTCopyComment
-FSpDTSetComment
-FSpDeleteCompat
-FSpDirCreateCompat
-FSpDirectoryCopy
-FSpExchangeFilesCompat
-FSpFileCopy
-FSpFilteredDirectoryCopy
-FSpFindFolder
-FSpGetDInfo
-FSpGetDefaultDir
-FSpGetDirAccess
-FSpGetDirectoryID
-FSpGetFInfoCompat
-FSpGetFLockCompat
-FSpGetFileLocation
-FSpGetFileSize
-FSpGetForeignPrivs
-FSpGetFullPath
-FSpGetIOACUser
-FSpLocationFromFullPath
-FSpLocationFromPath
-FSpMoveRename
-FSpMoveRenameCompat
-FSpOpenAware
-FSpOpenDFCompat
-FSpOpenRFAware
-FSpOpenRFCompat
-FSpOpenResFileCompat
-FSpPathFromLocation
-FSpRenameCompat
-FSpResolveFileIDRef
-FSpRstFLockCompat
-FSpSetDInfo
-FSpSetDefaultDir
-FSpSetDirAccess
-FSpSetFInfoCompat
-FSpSetFLockCompat
-FSpSetForeignPrivs
-FSpSetHasCustomIcon
-FSpSetIsInvisible
-FSpSetIsStationery
-FSpSetNameLocked
-FSpShare
-FSpUnshare
-FileCopy
-FilteredDirectoryCopy
-FindDrive
-FlushFile
-FreeAllMemory
-GetCPanelFolder
-GetCatInfoNoName
-GetDInfo
-GetDirItems
-GetDirName
-GetDirectoryID
-GetDiskBlocks
-GetDriverName
-GetFileLocation
-GetFileSize
-GetFilenameFromPathname
-GetForeignPrivs
-GetFullPath
-GetGlobalMouse
-GetIOACUser
-GetObjectLocation
-GetParentID
-GetSystemFolder
-GetTempBuffer
-GetTrapType
-GetUGEntries
-GetUGEntry
-GetVolMountInfo
-GetVolMountInfoSize
-GetVolumeInfoNoName
-HCopyFile
-HCreateMinimum
-HGetDirAccess
-HGetLogInInfo
-HGetVInfo
-HGetVolParms
-HInfo
-HMapID
-HMapName
-HMoveRename
-HMoveRenameCompat
-HOpenAware
-HOpenRFAware
-hypotd
-HSetDirAccess
-InstallConsole
-LocationFromFullPath
-LockRange
-MXInfo
-NumToolboxTraps
-OnLine
-OpenOurRF
-OpenResolver
-PBXGetVolInfoSync
-ReadCharsFromConsole
-RemoveConsole
-ResolveFileIDRef
-RestoreDefault
-RetrieveAFPVolMountInfo
-SIOUXBigRect
-SIOUXCantSaveAlert
-SIOUXDoAboutBox
-SIOUXDoContentClick
-SIOUXDoEditClear
-SIOUXDoEditCopy
-SIOUXDoEditCut
-SIOUXDoEditPaste
-SIOUXDoEditSelectAll
-SIOUXDoMenuChoice
-SIOUXDoPageSetup
-SIOUXDoPrintText
-SIOUXDoSaveText
-SIOUXDragRect
-SIOUXDrawGrowBox
-SIOUXHandleOneEvent
-SIOUXIsAppWindow
-SIOUXMyGrowWindow
-SIOUXQuitting
-SIOUXSetTitle
-SIOUXSettings
-SIOUXSetupMenus
-SIOUXSetupTextWindow
-SIOUXState
-SIOUXTextWindow
-SIOUXUpdateMenuItems
-SIOUXUpdateScrollbar
-SIOUXUpdateStatusLine
-SIOUXUpdateWindow
-SIOUXUseWaitNextEvent
-SIOUXYesNoCancelAlert
-SIOUXisinrange
-SIOUXselstart
-SearchFolderForDNRP
-SetDInfo
-SetDefault
-SetForeignPrivs
-SetHasCustomIcon
-SetIsInvisible
-SetIsStationery
-SetNameLocked
-Share
-StrToAddr
-TclAllocateFreeObjects
-TclChdir
-TclCleanupByteCode
-TclCleanupCommand
-TclCompileBreakCmd
-TclCompileCatchCmd
-TclCompileContinueCmd
-TclCompileDollarVar
-TclCompileExpr
-TclCompileExprCmd
-TclCompileForCmd
-TclCompileForeachCmd
-TclCompileIfCmd
-TclCompileIncrCmd
-TclCompileQuotes
-TclCompileSetCmd
-TclCompileString
-TclCompileWhileCmd
-TclCopyAndCollapse
-TclCopyChannel
-TclCreateAuxData
-TclCreateExecEnv
-TclDate_TclDates
-TclDate_TclDatev
-TclDateact
-TclDatechar
-TclDatechk
-TclDatedebug
-TclDatedef
-TclDateerrflag
-TclDateexca
-TclDatelval
-TclDatenerrs
-TclDatepact
-TclDateparse
-TclDatepgo
-TclDateps
-TclDatepv
-TclDater1
-TclDater2
-TclDates
-TclDatestate
-TclDatetmp
-TclDatev
-TclDateval
-TclDeleteCompiledLocalVars
-TclDeleteExecEnv
-TclDeleteVars
-TclDoGlob
-TclEmitForwardJump
-TclExecuteByteCode
-TclExpandCodeArray
-TclExpandJumpFixupArray
-TclExprFloatError
-TclFileAttrsCmd
-TclFileCopyCmd
-TclFileDeleteCmd
-TclFileMakeDirsCmd
-TclFileRenameCmd
-TclFindElement
-TclFindProc
-TclFixupForwardJump
-TclFormatInt
-TclFreeCompileEnv
-TclFreeJumpFixupArray
-TclFreeObj
-TclFreePackageInfo
-TclGetCwd
-TclGetDate
-TclGetDefaultStdChannel
-TclGetElementOfIndexedArray
-TclGetEnv
-TclGetExceptionRangeForPc
-TclGetExtension
-TclGetFrame
-TclGetIndexedScalar
-TclGetIntForIndex
-TclGetLoadedPackages
-TclGetLong
-TclGetNamespaceForQualName
-TclGetOpenMode
-TclGetOriginalCommand
-TclGetRegError
-TclGetSrcInfoForPc
-TclGetUserHome
-TclGlobalInvoke
-TclGuessPackageName
-TclHasSockets
-TclHideUnsafeCommands
-TclInExit
-TclIncrElementOfIndexedArray
-TclIncrIndexedScalar
-TclIncrVar2
-TclInitByteCodeObj
-TclInitCompileEnv
-TclInitJumpFixupArray
-TclInitNamespaces
-TclInterpInit
-TclInvoke
-TclInvokeObjectCommand
-TclInvokeStringCommand
-TclIsProc
-TclLoadFile
-TclLooksLikeInt
-TclLookupVar
-TclMacCreateEnv
-TclMacExitHandler
-TclMacFOpenHack
-TclMacInitExitToShell
-TclMacInstallExitToShellPatch
-TclMacOSErrorToPosixError
-TclMacReadlink
-TclMacRemoveTimer
-TclMacStartTimer
-TclMacTimerExpired
-TclMatchFiles
-TclNeedSpace
-TclObjIndexForString
-TclObjInterpProc
-TclObjInvoke
-TclObjInvokeGlobal
-TclPlatformExit
-TclPlatformInit
-TclPreventAliasLoop
-TclPrintByteCodeObj
-TclPrintInstruction
-TclPrintSource
-TclRegComp
-TclRegError
-TclRegExec
-TclRenameCommand
-TclResetShadowedCmdRefs
-TclServiceIdle
-TclSetElementOfIndexedArray
-TclSetEnv
-TclSetIndexedScalar
-TclSetupEnv
-TclSockGetPort
-TclTeardownNamespace
-TclTestChannelCmd
-TclTestChannelEventCmd
-TclUnsetEnv
-TclUpdateReturnInfo
-TclWordEnd
-Tcl_AddErrorInfo
-Tcl_AddObjErrorInfo
-Tcl_AfterCmd
-Tcl_Alloc
-Tcl_AllowExceptions
-Tcl_AppendAllObjTypes
-Tcl_AppendElement
-Tcl_AppendObjCmd
-Tcl_AppendResult
-Tcl_AppendStringsToObj
-Tcl_AppendToObj
-Tcl_ArrayObjCmd
-Tcl_AsyncCreate
-Tcl_AsyncDelete
-Tcl_AsyncInvoke
-Tcl_AsyncMark
-Tcl_AsyncReady
-Tcl_BackgroundError
-Tcl_Backslash
-Tcl_BeepObjCmd
-Tcl_BinaryObjCmd
-Tcl_BreakCmd
-Tcl_CallWhenDeleted
-Tcl_CancelIdleCall
-Tcl_CaseObjCmd
-Tcl_CatchObjCmd
-Tcl_ClockObjCmd
-Tcl_Close
-Tcl_CommandComplete
-Tcl_Concat
-Tcl_ConcatObj
-Tcl_ConcatObjCmd
-Tcl_ContinueCmd
-Tcl_ConvertCountedElement
-Tcl_ConvertElement
-Tcl_ConvertToType
-Tcl_CreateAlias
-Tcl_CreateAliasObj
-Tcl_CreateChannel
-Tcl_CreateChannelHandler
-Tcl_CreateCloseHandler
-Tcl_CreateCommand
-Tcl_CreateEventSource
-Tcl_CreateExitHandler
-Tcl_CreateInterp
-Tcl_CreateMathFunc
-Tcl_CreateNamespace
-Tcl_CreateObjCommand
-Tcl_CreateSlave
-Tcl_CreateTimerHandler
-Tcl_CreateTrace
-Tcl_DStringAppend
-Tcl_DStringAppendElement
-Tcl_DStringEndSublist
-Tcl_DStringFree
-Tcl_DStringGetResult
-Tcl_DStringInit
-Tcl_DStringResult
-Tcl_DStringSetLength
-Tcl_DStringStartSublist
-Tcl_DbCkalloc
-Tcl_DbCkfree
-Tcl_DbCkrealloc
-Tcl_DbDecrRefCount
-Tcl_DbIsShared
-Tcl_DbIncrRefCount
-Tcl_DbNewBooleanObj
-Tcl_DbNewDoubleObj
-Tcl_DbNewListObj
-Tcl_DbNewLongObj
-Tcl_DbNewObj
-Tcl_DbNewStringObj
-Tcl_DeleteAssocData
-Tcl_DeleteChannelHandler
-Tcl_DeleteCloseHandler
-Tcl_DeleteCommand
-Tcl_DeleteCommandFromToken
-Tcl_DeleteEventSource
-Tcl_DeleteEvents
-Tcl_DeleteExitHandler
-Tcl_DeleteHashEntry
-Tcl_DeleteHashTable
-Tcl_DeleteInterp
-Tcl_DeleteNamespace
-Tcl_DeleteTimerHandler
-Tcl_DeleteTrace
-Tcl_DoOneEvent
-Tcl_DoWhenIdle
-Tcl_DontCallWhenDeleted
-Tcl_DumpActiveMemory
-Tcl_DuplicateObj
-Tcl_EchoCmd
-Tcl_Eof
-Tcl_ErrnoId
-Tcl_ErrnoMsg
-Tcl_ErrorObjCmd
-Tcl_Eval
-Tcl_EvalFile
-Tcl_EvalObj
-Tcl_EvalObjCmd
-Tcl_EventuallyFree
-Tcl_ExecCmd
-Tcl_Exit
-Tcl_ExitObjCmd
-Tcl_ExposeCommand
-Tcl_ExprBoolean
-Tcl_ExprBooleanObj
-Tcl_ExprDouble
-Tcl_ExprDoubleObj
-Tcl_ExprLong
-Tcl_ExprLongObj
-Tcl_ExprObjCmd
-Tcl_ExprString
-Tcl_FconfigureCmd
-Tcl_FcopyObjCmd
-Tcl_FileEventCmd
-Tcl_FileObjCmd
-Tcl_Finalize
-Tcl_FindCommand
-Tcl_FindExecutable
-Tcl_FindNamespace
-Tcl_FindNamespaceVar
-Tcl_FirstHashEntry
-Tcl_Flush
-Tcl_FlushObjCmd
-Tcl_ForCmd
-Tcl_ForeachObjCmd
-Tcl_ForgetImport
-Tcl_FormatCmd
-Tcl_Free
-Tcl_FreeResult
-Tcl_GetAlias
-Tcl_GetAliasObj
-Tcl_GetAssocData
-Tcl_GetBoolean
-Tcl_GetBooleanFromObj
-Tcl_GetChannel
-Tcl_GetChannelBufferSize
-Tcl_GetChannelHandle
-Tcl_GetChannelInstanceData
-Tcl_GetChannelMode
-Tcl_GetChannelName
-Tcl_GetChannelOption
-Tcl_GetChannelType
-Tcl_GetCommandFromObj
-Tcl_GetCommandFullName
-Tcl_GetCommandInfo
-Tcl_GetCommandName
-Tcl_GetCurrentNamespace
-Tcl_GetDouble
-Tcl_GetDoubleFromObj
-Tcl_GetErrno
-Tcl_GetGlobalNamespace
-Tcl_GetHostName
-Tcl_GetIndexFromObj
-Tcl_GetInt
-Tcl_GetIntFromObj
-Tcl_GetInterpPath
-Tcl_GetLongFromObj
-Tcl_GetMaster
-Tcl_GetOSTypeFromObj
-Tcl_GetObjResult
-Tcl_GetObjType
-Tcl_GetPathType
-Tcl_GetServiceMode
-Tcl_GetSlave
-Tcl_GetStdChannel
-Tcl_GetStringFromObj
-Tcl_GetStringResult
-Tcl_GetTime
-Tcl_GetVar
-Tcl_GetVar2
-Tcl_GetVariableFullName
-Tcl_Gets
-Tcl_GetsObj
-Tcl_GetsObjCmd
-Tcl_GlobCmd
-Tcl_GlobalEval
-Tcl_GlobalEvalObj
-Tcl_GlobalObjCmd
-Tcl_HashStats
-Tcl_HideCommand
-Tcl_IfCmd
-Tcl_Import
-Tcl_IncrCmd
-Tcl_InfoObjCmd
-Tcl_Init
-Tcl_InitHashTable
-Tcl_InitMemory
-Tcl_InputBlocked
-Tcl_InputBuffered
-Tcl_InterpDeleted
-Tcl_InterpObjCmd
-Tcl_IsSafe
-Tcl_JoinObjCmd
-Tcl_JoinPath
-Tcl_LappendObjCmd
-Tcl_LindexObjCmd
-Tcl_LinkVar
-Tcl_LinsertObjCmd
-Tcl_ListObjAppendElement
-Tcl_ListObjAppendList
-Tcl_ListObjCmd
-Tcl_ListObjGetElements
-Tcl_ListObjIndex
-Tcl_ListObjLength
-Tcl_ListObjReplace
-Tcl_LlengthObjCmd
-Tcl_LoadCmd
-Tcl_LrangeObjCmd
-Tcl_LreplaceObjCmd
-Tcl_LsCmd
-Tcl_LsearchObjCmd
-Tcl_LsortObjCmd
-Tcl_MacConvertTextResource
-Tcl_MacEvalResource
-Tcl_MacFindResource
-Tcl_MacSetEventProc
-Tcl_MacSourceObjCmd
-Tcl_Main
-Tcl_MakeSafe
-Tcl_MakeTcpClientChannel
-Tcl_Merge
-Tcl_NamespaceObjCmd
-Tcl_NewBooleanObj
-Tcl_NewDoubleObj
-Tcl_NewIntObj
-Tcl_NewListObj
-Tcl_NewLongObj
-Tcl_NewOSTypeObj
-Tcl_NewObj
-Tcl_NewStringObj
-Tcl_NextHashEntry
-Tcl_NotifyChannel
-Tcl_ObjGetVar2
-Tcl_ObjSetVar2
-Tcl_OpenCmd
-Tcl_OpenFileChannel
-Tcl_OpenTcpClient
-Tcl_OpenTcpServer
-Tcl_PackageCmd
-Tcl_ParseVar
-Tcl_PidObjCmd
-Tcl_PkgProvide
-Tcl_PkgRequire
-Tcl_PopCallFrame
-Tcl_PosixError
-Tcl_Preserve
-Tcl_PrintDouble
-Tcl_ProcObjCmd
-Tcl_PushCallFrame
-Tcl_PutEnv
-Tcl_PutsObjCmd
-Tcl_PwdCmd
-Tcl_QueueEvent
-Tcl_Read
-Tcl_ReadObjCmd
-Tcl_Realloc
-Tcl_RecordAndEval
-Tcl_RegExpCompile
-Tcl_RegExpExec
-Tcl_RegExpMatch
-Tcl_RegExpRange
-Tcl_RegexpCmd
-Tcl_RegisterChannel
-Tcl_RegisterObjType
-Tcl_RegsubCmd
-Tcl_Release
-Tcl_RenameObjCmd
-Tcl_ResetResult
-Tcl_ResourceObjCmd
-Tcl_ReturnObjCmd
-Tcl_ScanCmd
-Tcl_ScanCountedElement
-Tcl_ScanElement
-Tcl_Seek
-Tcl_SeekCmd
-Tcl_ServiceAll
-Tcl_ServiceEvent
-Tcl_SetAssocData
-Tcl_SetBooleanObj
-Tcl_SetChannelBufferSize
-Tcl_SetChannelOption
-Tcl_SetCmd
-Tcl_SetCommandInfo
-Tcl_SetDoubleObj
-Tcl_SetErrno
-Tcl_SetErrorCode
-Tcl_SetIntObj
-Tcl_SetListObj
-Tcl_SetLongObj
-Tcl_SetMaxBlockTime
-Tcl_SetOSTypeObj
-Tcl_SetObjErrorCode
-Tcl_SetObjLength
-Tcl_SetObjResult
-Tcl_SetPanicProc
-Tcl_SetRecursionLimit
-Tcl_SetResult
-Tcl_SetServiceMode
-Tcl_SetStdChannel
-Tcl_SetStringObj
-Tcl_SetTimer
-Tcl_SetVar
-Tcl_SetVar2
-Tcl_SignalId
-Tcl_SignalMsg
-Tcl_Sleep
-Tcl_SocketCmd
-Tcl_SourceObjCmd
-Tcl_SourceRCFile
-Tcl_SplitList
-Tcl_SplitPath
-Tcl_StaticPackage
-Tcl_StringMatch
-Tcl_StringObjCmd
-Tcl_SubstCmd
-Tcl_SwitchObjCmd
-Tcl_Tell
-Tcl_TellCmd
-Tcl_TimeObjCmd
-Tcl_TraceCmd
-Tcl_TraceVar
-Tcl_TraceVar2
-Tcl_TranslateFileName
-Tcl_Ungets
-Tcl_UnlinkVar
-Tcl_UnregisterChannel
-Tcl_UnsetObjCmd
-Tcl_UnsetVar
-Tcl_UnsetVar2
-Tcl_UntraceVar
-Tcl_UntraceVar2
-Tcl_UpVar
-Tcl_UpVar2
-Tcl_UpdateCmd
-Tcl_UpdateLinkedVar
-Tcl_UplevelObjCmd
-Tcl_UpvarObjCmd
-Tcl_ValidateAllMemory
-Tcl_VarEval
-Tcl_VarTraceInfo
-Tcl_VarTraceInfo2
-Tcl_VariableObjCmd
-Tcl_VwaitCmd
-Tcl_WaitForEvent
-Tcl_WaitPid
-Tcl_WhileCmd
-Tcl_Write
-Tcl_WrongNumArgs
-TclpAlloc
-TclpCopyDirectory
-TclpCopyFile
-TclpCreateDirectory
-TclpDeleteFile
-TclpFree
-TclpGetClicks
-TclpGetDate
-TclpGetSeconds
-TclpGetTime
-TclpGetTimeZone
-TclpListVolumes
-TclpRealloc
-TclpRemoveDirectory
-TclpRenameFile
-TrapExists
-TruncPString
-UnlockRange
-UnmountAndEject
-Unshare
-VolumeMount
-WriteCharsToConsole
-XGetVInfo
-_Ctype
-_Stderr
-_Stoul
-abort
-abs
-acosf
-appMemory
-asctime
-asinf
-atan
-atan2
-atan2_d_dd
-atan2_d_pdpd
-atan2_r_prpr
-atan2_r_rr
-atan2f
-atan_d_d
-atan_d_pd
-atan_r_pr
-atan_r_r
-atanf
-atexit
-atof
-atoi
-atol
-bsearch
-builtinFuncTable
-calloc
-ccommand
-ceilf
-chdir
-clearerr
-clock
-close
-closeUPP
-completeUPP
-cos
-cos_d_d
-cos_d_pd
-cos_r_pr
-cos_r_r
-cosf
-coshf
-creat
-ctime
-cuserid
-difftime
-div
-environ
-errno
-exec
-exit
-exp
-exp_d_d
-exp_d_pd
-exp_r_pr
-exp_r_r
-expf
-fabsf
-fclose
-fcntl
-fdopen
-feof
-ferror
-fflush
-fgetc
-fgetpos
-fgets
-fileno
-floorf
-fmodf
-fopen
-fprintf
-fputc
-fputs
-fread
-free
-freopen
-frexpf
-fscanf
-fseek
-fsetpos
-fstat
-ftell
-fwrite
-getStdChannelsProc
-getc
-getchar
-getcwd
-getenv
-getlogin
-gets
-gmtime
-instructionTable
-isalnum
-isalpha
-isatty
-iscntrl
-isdigit
-isgraph
-islower
-isprint
-ispunct
-isspace
-isupper
-isxdigit
-labs
-ldexpf
-ldiv
-localeconv
-localtime
-log
-log10
-log10_d_d
-log10_d_pd
-log10f
-log_d_d
-log_d_pd
-logf
-longjmp
-lseek
-malloc
-mblen
-mbstowcs
-mbtowc
-memchr
-memcmp
-memcpy
-memmove
-memset
-mkdir
-mktime
-open
-panic
-panicProc
-perror
-pow
-power_d_dd
-powf
-printf
-putc
-putchar
-puts
-qsort
-raise
-rand
-read
-realloc
-remove
-rename
-resultUPP
-rewind
-rmdir
-scanf
-setbuf
-setlocale
-setvbuf
-signal
-sin
-sin_d_d
-sin_d_pd
-sin_r_pr
-sin_r_r
-sinf
-sinhf
-sleep
-sprintf
-sqrt
-sqrt_d_d
-sqrt_d_pd
-sqrt_r_pr
-sqrt_r_r
-sqrtf
-srand
-sscanf
-stat
-strcasecmp
-strcat
-strchr
-strcmp
-strcoll
-strcpy
-strcspn
-strerror
-strftime
-strlen
-strncasecmp
-strncat
-strncmp
-strncpy
-strpbrk
-strrchr
-strspn
-strstr
-strtod
-strtok
-strtol
-strtoul
-strxfrm
-system
-systemMemory
-tanf
-tanhf
-tclBooleanType
-tclByteCodeType
-tclCmdNameType
-tclDoubleType
-tclDummyLinkVarPtr
-tclExecutableName
-tclFreeObjList
-tclIndexType
-tclIntType
-tclListType
-tclMemDumpFileName
-tclNsNameType
-tclPlatform
-tclStringType
-tclTraceCompile
-tclTraceExec
-tclTypeTable
-tcl_MathInProgress
-tclpFileAttrProcs
-tclpFileAttrStrings
-tell
-time
-tmpfile
-tmpnam
-tolower
-toupper
-ttyname
-uname
-ungetc
-unlink
-utime
-utimes
-vfprintf
-vprintf
-vsprintf
-wcstombs
-wctob
-wctomb
-write
-#DTGetAPPL
-#DTGetComment
-#FSpDTGetAPPL
-#FSpDTGetComment
-#TclMacInitializeFragment
-#TclMacTerminateFragment
-#_Aldata
-#_Assert
-#_Atcount
-#_Atfuns
-#_Clocale
-#_Closreg
-#_Costate
-#_Daysto
-#_Dbl
-#_Defloc
-#_Environ
-#_Environ1
-#_Fgpos
-#_Files
-#_Flt
-#_Fopen
-#_Foprep
-#_Fread
-#_Freeloc
-#_Frprep
-#_Fspos
-#_Fwprep
-#_Fwrite
-#_Genld
-#_Gentime
-#_Getdst
-#_Getfld
-#_Getfloat
-#_Getint
-#_Getloc
-#_Getmem
-#_Getstr
-#_Gettime
-#_Getzone
-#_Isdst
-#_Ldbl
-#_Ldtob
-#_Litob
-#_Locale
-#_Locsum
-#_Loctab
-#_Locterm
-#_Locvar
-#_MWERKS_Atcount
-#_MWERKS_Atfuns
-#_Makeloc
-#_Makestab
-#_Makewct
-#_Mbcurmax
-#_Mbstate
-#_Mbtowc
-#_Nnl
-#_PJP_C_Copyright
-#_Printf
-#_Putfld
-#_Putstr
-#_Puttxt
-#_Randseed
-#_Readloc
-#_Scanf
-#_Setloc
-#_Skip
-#_Stdin
-#_Stdout
-#_Stod
-#_Stof
-#_Stoflt
-#_Stold
-#_Strerror
-#_Strftime
-#_Strxfrm
-#_Times
-#_Tolower
-#_Toupper
-#_Ttotm
-#_WCostate
-#_Wcstate
-#_Wctob
-#_Wctomb
-#_Wctrans
-#_Wctype
-#__CheckForSystem7
-#__RemoveConsoleHandler__
-#__aborting
-#__ctopstring
-#__cvt_fp2unsigned
-#__getcreator
-#__gettype
-#__initialize
-#__myraise
-#__ptmf_null
-#__ptr_glue
-#__system7present
-#__terminate
-#__ttyname
-#_atexit
-#_exit
-#_fcreator
-#_ftype
Index: mac/tclMacSock.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacSock.c,v
retrieving revision 1.8
diff -u -3 -r1.8 tclMacSock.c
--- mac/tclMacSock.c 2001/04/04 14:49:35 1.8
+++ mac/tclMacSock.c 2001/11/23 01:01:25
@@ -196,7 +196,7 @@
static Tcl_ChannelType tcpChannelType = {
"tcp", /* Type name. */
- TcpBlockMode, /* Set blocking or
+ (Tcl_ChannelTypeVersion)TcpBlockMode, /* Set blocking or
* non-blocking mode.*/
TcpClose, /* Close proc. */
TcpInput, /* Input proc. */
Index: mac/tclMacThrd.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacThrd.c,v
retrieving revision 1.5
diff -u -3 -r1.5 tclMacThrd.c
--- mac/tclMacThrd.c 2000/05/02 22:02:36 1.5
+++ mac/tclMacThrd.c 2001/11/23 01:01:25
@@ -129,7 +129,7 @@
#if TARGET_CPU_68K && TARGET_RT_MAC_CFM
{
ThreadEntryProcPtr entryProc;
- entryProc = NewThreadEntryProc(proc);
+ entryProc = NewThreadEntryUPP(proc);
NewThread(kCooperativeThread, entryProc, (void *) clientData,
stackSize, kCreateIfNeeded, NULL, (ThreadID *) idPtr);
Index: mac/tclMacTime.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacTime.c,v
retrieving revision 1.5
diff -u -3 -r1.5 tclMacTime.c
--- mac/tclMacTime.c 2001/11/21 02:36:21 1.5
+++ mac/tclMacTime.c 2001/11/23 01:01:25
@@ -14,6 +14,7 @@
#include "tclInt.h"
#include "tclPort.h"
+#include "tclMacInt.h"
#include <OSUtils.h>
#include <Timer.h>
#include <time.h>
@@ -33,6 +34,83 @@
static int gmt_lastGetDateUseGMT = 0;
+typedef struct _TABLE {
+ char *name;
+ int type;
+ time_t value;
+} TABLE;
+
+
+#define HOUR(x) ((time_t) (3600 * x))
+
+#define tZONE 0
+#define tDAYZONE 1
+
+
+/*
+ * inverse timezone table, adapted from tclDate.c by removing duplicates and
+ * adding some made up names for unusual daylight savings
+ */
+static TABLE invTimezoneTable[] = {
+ { "Z", -1, HOUR( 36) }, /* Unknown */
+ { "GMT", tZONE, HOUR( 0) }, /* Greenwich Mean */
+ { "BST", tDAYZONE, HOUR( 0) }, /* British Summer */
+ { "WAT", tZONE, HOUR( 1) }, /* West Africa */
+ { "WADST", tDAYZONE, HOUR( 1) }, /* West Africa Daylight*/
+ { "AT", tZONE, HOUR( 2) }, /* Azores Daylight*/
+ { "ADST", tDAYZONE, HOUR( 2) }, /* Azores */
+ { "NFT", tZONE, HOUR( 7/2) }, /* Newfoundland */
+ { "NDT", tDAYZONE, HOUR( 7/2) }, /* Newfoundland Daylight */
+ { "AST", tZONE, HOUR( 4) }, /* Atlantic Standard */
+ { "ADT", tDAYZONE, HOUR( 4) }, /* Atlantic Daylight */
+ { "EST", tZONE, HOUR( 5) }, /* Eastern Standard */
+ { "EDT", tDAYZONE, HOUR( 5) }, /* Eastern Daylight */
+ { "CST", tZONE, HOUR( 6) }, /* Central Standard */
+ { "CDT", tDAYZONE, HOUR( 6) }, /* Central Daylight */
+ { "MST", tZONE, HOUR( 7) }, /* Mountain Standard */
+ { "MDT", tDAYZONE, HOUR( 7) }, /* Mountain Daylight */
+ { "PST", tZONE, HOUR( 8) }, /* Pacific Standard */
+ { "PDT", tDAYZONE, HOUR( 8) }, /* Pacific Daylight */
+ { "YST", tZONE, HOUR( 9) }, /* Yukon Standard */
+ { "YDT", tDAYZONE, HOUR( 9) }, /* Yukon Daylight */
+ { "HST", tZONE, HOUR(10) }, /* Hawaii Standard */
+ { "HDT", tDAYZONE, HOUR(10) }, /* Hawaii Daylight */
+ { "NT", tZONE, HOUR(11) }, /* Nome */
+ { "NST", tDAYZONE, HOUR(11) }, /* Nome Daylight*/
+ { "IDLW", tZONE, HOUR(12) }, /* International Date Line West */
+ { "CET", tZONE, -HOUR( 1) }, /* Central European */
+ { "CEST", tDAYZONE, -HOUR( 1) }, /* Central European Summer */
+ { "EET", tZONE, -HOUR( 2) }, /* Eastern Europe, USSR Zone 1 */
+ { "EEST", tDAYZONE, -HOUR( 2) }, /* Eastern Europe, USSR Zone 1 Daylight*/
+ { "BT", tZONE, -HOUR( 3) }, /* Baghdad, USSR Zone 2 */
+ { "BDST", tDAYZONE, -HOUR( 3) }, /* Baghdad, USSR Zone 2 Daylight*/
+ { "IT", tZONE, -HOUR( 7/2) }, /* Iran */
+ { "IDST", tDAYZONE, -HOUR( 7/2) }, /* Iran Daylight*/
+ { "ZP4", tZONE, -HOUR( 4) }, /* USSR Zone 3 */
+ { "ZP4S", tDAYZONE, -HOUR( 4) }, /* USSR Zone 3 */
+ { "ZP5", tZONE, -HOUR( 5) }, /* USSR Zone 4 */
+ { "ZP5S", tDAYZONE, -HOUR( 5) }, /* USSR Zone 4 */
+ { "IST", tZONE, -HOUR(11/2) }, /* Indian Standard */
+ { "ISDST", tDAYZONE, -HOUR(11/2) }, /* Indian Standard */
+ { "ZP6", tZONE, -HOUR( 6) }, /* USSR Zone 5 */
+ { "ZP6S", tDAYZONE, -HOUR( 6) }, /* USSR Zone 5 */
+ { "WAST", tZONE, -HOUR( 7) }, /* West Australian Standard */
+ { "WADT", tDAYZONE, -HOUR( 7) }, /* West Australian Daylight */
+ { "JT", tZONE, -HOUR(15/2) }, /* Java (3pm in Cronusland!) */
+ { "JDST", tDAYZONE, -HOUR(15/2) }, /* Java (3pm in Cronusland!) */
+ { "CCT", tZONE, -HOUR( 8) }, /* China Coast, USSR Zone 7 */
+ { "CCST", tDAYZONE, -HOUR( 8) }, /* China Coast, USSR Zone 7 */
+ { "JST", tZONE, -HOUR( 9) }, /* Japan Standard, USSR Zone 8 */
+ { "JSDST", tDAYZONE, -HOUR( 9) }, /* Japan Standard, USSR Zone 8 */
+ { "CAST", tZONE, -HOUR(19/2) }, /* Central Australian Standard */
+ { "CADT", tDAYZONE, -HOUR(19/2) }, /* Central Australian Daylight */
+ { "EAST", tZONE, -HOUR(10) }, /* Eastern Australian Standard */
+ { "EADT", tDAYZONE, -HOUR(10) }, /* Eastern Australian Daylight */
+ { "NZT", tZONE, -HOUR(12) }, /* New Zealand */
+ { "NZDT", tDAYZONE, -HOUR(12) }, /* New Zealand Daylight */
+ { NULL }
+};
+
/*
* Prototypes for procedures that are private to this file:
*/
@@ -286,6 +364,40 @@
statictime.tm_isdst = gmt_isdst;
gmt_lastGetDateUseGMT=useGMT; /* hack to make TclpGetTZName below work */
return(&statictime);
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpGetTZName --
+ *
+ * Gets the current timezone string.
+ *
+ * Results:
+ * Returns a pointer to a static string, or NULL on failure.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+char *
+TclpGetTZName(int dst)
+{
+ register TABLE *tp;
+ long zonevalue=-TclpGetGMTOffset();
+
+ if(gmt_lastGetDateUseGMT) /* hack: if last TclpGetDate was called */
+ zonevalue=0; /* with useGMT==1 then we're using GMT */
+
+ for (tp = invTimezoneTable; tp->name; tp++) {
+ if ((tp->value == zonevalue) && (tp->type == dst)) break;
+ }
+ if(!tp->name)
+ tp = invTimezoneTable; /* default to unknown */
+
+ return tp->name;
}
#ifdef NO_LONG_LONG
Index: mac/tclMacUnix.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacUnix.c,v
retrieving revision 1.3
diff -u -3 -r1.3 tclMacUnix.c
--- mac/tclMacUnix.c 1999/04/16 00:47:22 1.3
+++ mac/tclMacUnix.c 2001/11/23 01:01:25
@@ -206,7 +206,7 @@
resultObjPtr = Tcl_GetObjResult(interp);
Tcl_IncrRefCount(resultObjPtr);
- if (Tcl_ListObjGetElements(interp, resultObjPtr, &objc, &objv) != TCL_OK) {
+ if (Tcl_ListObjGetElements(interp, resultObjPtr, &objc, (Tcl_Obj ***)&objv) != TCL_OK) {
Tcl_DecrRefCount(resultObjPtr);
return TCL_ERROR;
}
Index: mac/tclMacUtil.c
===================================================================
RCS file: /cvsroot/tcl/tcl/mac/tclMacUtil.c,v
retrieving revision 1.4
diff -u -3 -r1.4 tclMacUtil.c
--- mac/tclMacUtil.c 2000/04/17 01:52:56 1.4
+++ mac/tclMacUtil.c 2001/11/23 01:01:25
@@ -53,7 +53,7 @@
*----------------------------------------------------------------------
*/
-#if defined(THINK_C) || defined(__MWERKS__)
+#if defined(THINK_C)
double hypotd(double x, double y);
double
@@ -420,7 +420,7 @@
/*
*----------------------------------------------------------------------
*
- * GetGlobalMouse --
+ * GetGlobalMouseTcl --
*
* This procedure obtains the current mouse position in global
* coordinates.
@@ -435,11 +435,29 @@
*/
void
-GetGlobalMouse(
+GetGlobalMouseTcl(
Point *mouse) /* Mouse position. */
{
EventRecord event;
OSEventAvail(0, &event);
*mouse = event.where;
+}
+
+pascal OSErr FSpGetDirectoryIDTcl (CONST FSSpec * spec,
+ long * theDirID, Boolean * isDirectory)
+{
+ return(FSpGetDirectoryID(spec, theDirID, isDirectory));
+}
+
+pascal short FSpOpenResFileCompatTcl (CONST FSSpec * spec, SignedByte permission)
+{
+ return(FSpOpenResFileCompat(spec,permission));
+}
+
+pascal void FSpCreateResFileCompatTcl (
+ CONST FSSpec * spec, OSType creator,
+ OSType fileType, ScriptCode scriptTag)
+{
+ FSpCreateResFileCompat (spec,creator,fileType,scriptTag);
}
Index: tests/all.tcl
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/all.tcl,v
retrieving revision 1.14
diff -u -3 -r1.14 all.tcl
--- tests/all.tcl 2001/09/11 18:03:05 1.14
+++ tests/all.tcl 2001/11/23 01:01:26
@@ -13,6 +13,10 @@
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
Index: tests/appendComp.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/appendComp.test,v
retrieving revision 1.4
diff -u -3 -r1.4 appendComp.test
--- tests/appendComp.test 2001/09/12 20:28:50 1.4
+++ tests/appendComp.test 2001/11/23 01:01:26
@@ -355,6 +355,7 @@
catch {rename foo ""}
catch {rename bar ""}
catch {rename check ""}
+catch {rename bar {}}
# cleanup
::tcltest::cleanupTests
Index: tests/cmdAH.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/cmdAH.test,v
retrieving revision 1.15
diff -u -3 -r1.15 cmdAH.test
--- tests/cmdAH.test 2001/09/09 17:32:16 1.15
+++ tests/cmdAH.test 2001/11/23 01:01:26
@@ -1178,7 +1178,7 @@
test cmdAH-20.4 {Tcl_FileObjCmd: atime} {
list [catch {file atime $file notint} msg] $msg
} {1 {expected integer but got "notint"}}
-test cmdAH-20.5 {Tcl_FileObjCmd: atime touch} {
+test cmdAH-20.5 {Tcl_FileObjCmd: atime touch} {unixOrPc} {
if {[string equal $tcl_platform(platform) "windows"]} {
set old [pwd]
cd $::tcltest::temporaryDirectory
Index: tests/cmdMZ.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/cmdMZ.test,v
retrieving revision 1.8
diff -u -3 -r1.8 cmdMZ.test
--- tests/cmdMZ.test 2001/05/21 22:33:47 1.8
+++ tests/cmdMZ.test 2001/11/23 01:01:26
@@ -78,7 +78,7 @@
} {1 {wrong # args: should be "source fileName" or "source -rsrc name ?fileName?" or "source -rsrcid id ?fileName?"}}
test cmdMZ-3.2 {Tcl_SourceObjCmd: error conditions} {macOnly} {
list [catch {source a b} msg] $msg
-} {1 {wrong # args: should be "source fileName" or "source -rsrc name ?fileName?" or "source -rsrcid id ?fileName?"}}
+} {1 {bad argument: should be "source fileName" or "source -rsrc name ?fileName?" or "source -rsrcid id ?fileName?"}}
test cmdMZ-3.3 {Tcl_SourceObjCmd: error conditions} {unixOrPc} {
list [catch {source} msg] $msg
} {1 {wrong # args: should be "source fileName"}}
Index: tests/compile.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/compile.test,v
retrieving revision 1.14
diff -u -3 -r1.14 compile.test
--- tests/compile.test 2001/11/19 21:04:42 1.14
+++ tests/compile.test 2001/11/23 01:01:26
@@ -289,7 +289,7 @@
# Special test for underestimating the maxStackSize required for a
# compiled command. A failure will cause a segfault in the child
# process.
-test compile-13.1 {testing underestimate of maxStackSize in list cmd} {
+test compile-13.1 {testing underestimate of maxStackSize in list cmd} {execCommandExists} {
set body {set x [list}
for {set i 0} {$i < 3000} {incr i} {
append body " $i"
Index: tests/exec.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/exec.test,v
retrieving revision 1.8
diff -u -3 -r1.8 exec.test
--- tests/exec.test 2000/04/10 17:18:58 1.8
+++ tests/exec.test 2001/11/23 01:01:27
@@ -228,7 +228,9 @@
# I/O redirection: input from file.
+if { [set ::tcltest::testConstraints(execCommandExists)] } {
exec $::tcltest::tcltest echo "Just a few thoughts" > gorp.file
+}
test exec-5.1 {redirecting input from file} {execCommandExists stdio} {
exec $::tcltest::tcltest cat < gorp.file
} {Just a few thoughts}
@@ -432,7 +434,9 @@
# Make sure that background commands are properly reaped when
# they eventually die.
+if { [set ::tcltest::testConstraints(execCommandExists)] } {
exec $::tcltest::tcltest sleep 3
+}
test exec-12.1 {reaping background processes} \
{execCommandExists stdio unixOnly nonPortable} {
for {set i 0} {$i < 20} {incr i} {
Index: tests/fileName.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/fileName.test,v
retrieving revision 1.15
diff -u -3 -r1.15 fileName.test
--- tests/fileName.test 2001/10/29 15:02:44 1.15
+++ tests/fileName.test 2001/11/23 01:01:28
@@ -304,6 +304,11 @@
testsetplatform unix
file split foo/bar~/baz
} {foo bar~ baz}
+
+if {[tcltest::testConstraint testsetplatform]} {
+ testsetplatform $platform
+}
+
test filename-4.19 {Tcl_SplitPath} {
set oldDir [pwd]
set res [catch {
@@ -317,6 +322,7 @@
set idx [string first tildetmp $norm]
set norm [string range $norm $idx end]
# fix path away so all platforms are the same
+ regsub {(.*):$} $norm {\1} norm
regsub -all ":" $norm "/" norm
# make sure we can delete the directory we created
cd $oldDir
@@ -1717,7 +1723,7 @@
} //[info hostname]/c/globTest
# cleanup
-file delete -force C:/globTest
+catch {file delete -force C:/globTest}
cd $oldDir
file delete -force globTest
set env(HOME) $oldhome
Index: tests/lset.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/lset.test,v
retrieving revision 1.2
diff -u -3 -r1.2 lset.test
--- tests/lset.test 2001/11/14 23:16:36 1.2
+++ tests/lset.test 2001/11/23 01:01:28
@@ -449,6 +449,8 @@
catch {unset noRead}
catch {unset noWrite}
catch {rename failTrace {}}
+catch {unset ::x}
+catch {unset ::y}
# cleanup
::tcltest::cleanupTests
Index: tests/macFCmd.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/macFCmd.test,v
retrieving revision 1.7
diff -u -3 -r1.7 macFCmd.test
--- tests/macFCmd.test 2000/04/10 17:19:02 1.7
+++ tests/macFCmd.test 2001/11/23 01:01:28
@@ -32,7 +32,7 @@
test macFCmd-1.1 {GetFileFinderAttributes - no file} {macOnly} {
catch {file delete -force foo.file}
list [catch {file attributes foo.file -creator} msg] $msg
-} {1 {could not read ":foo.file": no such file or directory}}
+} {1 {could not read "foo.file": no such file or directory}}
test macFCmd-1.2 {GetFileFinderAttributes - creator} {macOnly} {
catch {file delete -force foo.file}
catch {close [open foo.file w]}
@@ -80,7 +80,7 @@
test macFCmd-2.1 {GetFileReadOnly - bad file} {macOnly} {
catch {file delete -force foo.file}
list [catch {file attributes foo.file -readonly} msg] $msg
-} {1 {could not read ":foo.file": no such file or directory}}
+} {1 {could not read "foo.file": no such file or directory}}
test macFCmd-2.2 {GetFileReadOnly - file not read only} {macOnly} {
catch {file delete -force foo.file}
close [open foo.file w]
@@ -111,7 +111,7 @@
test macFCmd-3.1 {SetFileFinderAttributes - bad file} {macOnly} {
catch {file delete -force foo.file}
list [catch {file attributes foo.file -creator FOOO} msg] $msg
-} {1 {could not read ":foo.file": no such file or directory}}
+} {1 {could not read "foo.file": no such file or directory}}
test macFCmd-3.2 {SetFileFinderAttributes - creator} {macOnly} {
catch {file delete -force foo.file}
close [open foo.file w]
@@ -147,12 +147,12 @@
file mkdir foo.dir
list [catch {file attributes foo.dir -creator FOOO} msg] \
$msg [file delete -force foo.dir]
-} {1 {cannot set -creator: ":foo.dir" is a directory} {}}
+} {1 {cannot set -creator: "foo.dir" is a directory} {}}
test macFCmd-4.1 {SetFileReadOnly - bad file} {macOnly} {
catch {file delete -force foo.file}
list [catch {file attributes foo.file -readonly 1} msg] $msg
-} {1 {could not read ":foo.file": no such file or directory}}
+} {1 {could not read "foo.file": no such file or directory}}
test macFCmd-4.2 {SetFileReadOnly - file not readonly} {macOnly} {
catch {file delete -force foo.file}
close [open foo.file w]
Index: tests/namespace.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/namespace.test,v
retrieving revision 1.17
diff -u -3 -r1.17 namespace.test
--- tests/namespace.test 2001/09/12 20:28:50 1.17
+++ tests/namespace.test 2001/11/23 01:01:29
@@ -1137,6 +1137,7 @@
} {global global}
test namespace-41.1 {Shadowing byte-compiled commands} {
+ set res {}
namespace eval ns {
set res {}
proc test {} {
@@ -1148,6 +1149,7 @@
}
lappend ::res [test]
}
+ namespace delete ns
set res
} {0 1}
Index: tests/tcltest.test
===================================================================
RCS file: /cvsroot/tcl/tcl/tests/tcltest.test,v
retrieving revision 1.16
diff -u -3 -r1.16 tcltest.test
--- tests/tcltest.test 2001/08/22 23:55:27 1.16
+++ tests/tcltest.test 2001/11/23 01:01:30
@@ -465,6 +465,9 @@
makeFile {} thisdirectoryisafile
set normaldirectory [tcltest::makeDirectory normaldirectory]
+if {$::tcl_platform(platform) == "macintosh"} {
+set normaldirectory [file normalize $normaldirectory]
+}
# -tmpdir, tcltest::temporaryDirectory
test tcltest-8.1 {tcltest a.tcl -tmpdir a} {unixOrPc} {
@@ -498,7 +501,7 @@
file attributes $notWriteableDir -permissions 00555
}
default {
- file attributes $notWriteableDir -readonly 1
+ catch {file attributes $notWriteableDir -readonly 1}
}
}
@@ -514,7 +517,7 @@
list [regexp {not writeable} [join $msg]]
} {1}
-test tcltest-8.5 {tcltest a.tcl -tmpdir normaldirectory} {
+test tcltest-8.5 {tcltest a.tcl -tmpdir normaldirectory} {unixOrPc} {
catch {exec $::tcltest::tcltest a.tcl -tmpdir $normaldirectory} msg
# The join is necessary because the message can be split on multiple lines
file exists [file join $normaldirectory a.tmp]
@@ -551,13 +554,13 @@
} -result "$normaldirectory $current $current"
# -testdir, tcltest::testsDirectory
-test tcltest-8.10 {tcltest a.tcl -testdir thisdirectorydoesnotexist} {
+test tcltest-8.10 {tcltest a.tcl -testdir thisdirectorydoesnotexist} {unixOrPc} {
file delete -force thisdirectorydoesnotexist
catch {exec $::tcltest::tcltest a.tcl -testdir thisdirectorydoesnotexist} msg
list [regexp "does not exist" [join $msg]]
} {1}
-test tcltest-8.11 {tcltest a.tcl -testdir thisdirectoryisafile} {
+test tcltest-8.11 {tcltest a.tcl -testdir thisdirectoryisafile} {unixOrPc} {
catch {exec $::tcltest::tcltest a.tcl -testdir thisdirectoryisafile} msg
# The join is necessary because the message can be split on multiple lines
list [regexp "not a directory" [join $msg]]
@@ -570,7 +573,7 @@
} {1}
-test tcltest-8.13 {tcltest a.tcl -testdir normaldirectory} {
+test tcltest-8.13 {tcltest a.tcl -testdir normaldirectory} {unixOrPc} {
catch {exec $::tcltest::tcltest a.tcl -testdir normaldirectory} msg
# The join is necessary because the message can be split on multiple lines
regexp "testdir: $normaldirectory" [join $msg]
@@ -625,7 +628,7 @@
file attributes $notWriteableDir -permissions 777
}
default {
- file attributes $notWriteableDir -readonly 0
+ catch {file attributes $notWriteableDir -readonly 0}
}
}