| tcl.h | | tcl.h | |
| | | | |
| skipping to change at line 16 | | skipping to change at line 16 | |
| * | | * | |
| * Copyright (c) 1987-1994 The Regents of the University of California. | | * Copyright (c) 1987-1994 The Regents of the University of California. | |
| * Copyright (c) 1993-1996 Lucent Technologies. | | * Copyright (c) 1993-1996 Lucent Technologies. | |
| * Copyright (c) 1994-1998 Sun Microsystems, Inc. | | * Copyright (c) 1994-1998 Sun Microsystems, Inc. | |
| * Copyright (c) 1998-2000 by Scriptics Corporation. | | * Copyright (c) 1998-2000 by Scriptics Corporation. | |
| * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved. | | * Copyright (c) 2002 by Kevin B. Kenny. All rights reserved. | |
| * | | * | |
| * See the file "license.terms" for information on usage and redistribution | | * See the file "license.terms" for information on usage and redistribution | |
| * of this file, and for a DISCLAIMER OF ALL WARRANTIES. | | * of this file, and for a DISCLAIMER OF ALL WARRANTIES. | |
| * | | * | |
|
| * RCS: @(#) $Id: tcl.h,v 1.142 2002/09/02 20:10:59 hobbs Exp $ | | * RCS: @(#) $Id: tcl.h,v 1.147 2002/10/21 04:35:50 das Exp $ | |
| */ | | */ | |
| | | | |
| #ifndef _TCL | | #ifndef _TCL | |
| #define _TCL | | #define _TCL | |
| | | | |
| /* | | /* | |
| * For C++ compilers, use extern "C" | | * For C++ compilers, use extern "C" | |
| */ | | */ | |
| | | | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| | | | |
| skipping to change at line 49 | | skipping to change at line 49 | |
| * When version numbers change here, must also go into the following files | | * When version numbers change here, must also go into the following files | |
| * and update the version numbers: | | * and update the version numbers: | |
| * | | * | |
| * library/init.tcl (only if Major.minor changes, not patchlevel) 1 LOC | | * library/init.tcl (only if Major.minor changes, not patchlevel) 1 LOC | |
| * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch) | | * unix/configure.in (2 LOC Major, 2 LOC minor, 1 LOC patch) | |
| * win/configure.in (as above) | | * win/configure.in (as above) | |
| * win/tcl.m4 (not patchlevel) | | * win/tcl.m4 (not patchlevel) | |
| * win/makefile.vc (not patchlevel) 2 LOC | | * win/makefile.vc (not patchlevel) 2 LOC | |
| * README (sections 0 and 2) | | * README (sections 0 and 2) | |
| * mac/README (2 LOC, not patchlevel) | | * mac/README (2 LOC, not patchlevel) | |
|
| | | * macosx/Tcl.pbproj/project.pbxproj | |
| | | * (7 LOC total, 2 LOC patch) | |
| * win/README.binary (sections 0-4) | | * win/README.binary (sections 0-4) | |
| * win/README (not patchlevel) (sections 0 and 2) | | * win/README (not patchlevel) (sections 0 and 2) | |
| * unix/tcl.spec (2 LOC Major/Minor, 1 LOC patch) | | * unix/tcl.spec (2 LOC Major/Minor, 1 LOC patch) | |
| * tests/basic.test (1 LOC M/M, not patchlevel) | | * tests/basic.test (1 LOC M/M, not patchlevel) | |
| * tools/tcl.hpj.in (not patchlevel, for windows installer) | | * tools/tcl.hpj.in (not patchlevel, for windows installer) | |
| * tools/tcl.wse.in (for windows installer) | | * tools/tcl.wse.in (for windows installer) | |
| * tools/tclSplash.bmp (not patchlevel) | | * tools/tclSplash.bmp (not patchlevel) | |
| */ | | */ | |
| #define TCL_MAJOR_VERSION 8 | | #define TCL_MAJOR_VERSION 8 | |
| #define TCL_MINOR_VERSION 4 | | #define TCL_MINOR_VERSION 4 | |
| #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE | | #define TCL_RELEASE_LEVEL TCL_FINAL_RELEASE | |
|
| #define TCL_RELEASE_SERIAL 0 | | #define TCL_RELEASE_SERIAL 1 | |
| | | | |
| #define TCL_VERSION "8.4" | | #define TCL_VERSION "8.4" | |
|
| #define TCL_PATCH_LEVEL "8.4.0" | | #define TCL_PATCH_LEVEL "8.4.1" | |
| | | | |
| /* | | /* | |
| * The following definitions set up the proper options for Windows | | * The following definitions set up the proper options for Windows | |
| * compilers. We use this method because there is no autoconf equivalent. | | * compilers. We use this method because there is no autoconf equivalent. | |
| */ | | */ | |
| | | | |
| #ifndef __WIN32__ | | #ifndef __WIN32__ | |
|
| # if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || defined(
__MINGW32__) || defined(__BORLANDC__) | | # if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined
(__BORLANDC__) | |
| # define __WIN32__ | | # define __WIN32__ | |
| # ifndef WIN32 | | # ifndef WIN32 | |
| # define WIN32 | | # define WIN32 | |
| # endif | | # endif | |
| # endif | | # endif | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * STRICT: See MSDN Article Q83456 | | * STRICT: See MSDN Article Q83456 | |
| */ | | */ | |
| | | | |
| skipping to change at line 119 | | skipping to change at line 121 | |
| # define STRINGIFY(x) STRINGIFY1(x) | | # define STRINGIFY(x) STRINGIFY1(x) | |
| # define STRINGIFY1(x) #x | | # define STRINGIFY1(x) #x | |
| #endif | | #endif | |
| #ifndef JOIN | | #ifndef JOIN | |
| # define JOIN(a,b) JOIN1(a,b) | | # define JOIN(a,b) JOIN1(a,b) | |
| # define JOIN1(a,b) a##b | | # define JOIN1(a,b) a##b | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * A special definition used to allow this header file to be included | | * A special definition used to allow this header file to be included | |
|
| * from windows resource files so that they can obtain version | | * from windows or mac resource files so that they can obtain version | |
| * information. RC_INVOKED is defined by default by the RC tool. | | * information. RC_INVOKED is defined by default by the windows RC tool | |
| | | * and manually set for macintosh. | |
| | | * | |
| * Resource compilers don't like all the C stuff, like typedefs and | | * Resource compilers don't like all the C stuff, like typedefs and | |
| * procedure declarations, that occur below, so block them out. | | * procedure declarations, that occur below, so block them out. | |
| */ | | */ | |
| | | | |
| #ifndef RC_INVOKED | | #ifndef RC_INVOKED | |
| | | | |
| /* | | /* | |
|
| * A special definition for Macintosh used to allow this header file | | | |
| * to be included in resource files so that they can get obtain | | | |
| * version information from this file. Resource compilers don't like | | | |
| * all the C stuff, like typedefs and procedure declarations, that | | | |
| * occur below. | | | |
| */ | | | |
| | | | |
| #ifndef RESOURCE_INCLUDED | | | |
| | | | |
| /* | | | |
| * Special macro to define mutexes, that doesn't do anything | | * Special macro to define mutexes, that doesn't do anything | |
| * if we are not using threads. | | * if we are not using threads. | |
| */ | | */ | |
| | | | |
| #ifdef TCL_THREADS | | #ifdef TCL_THREADS | |
| #define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name; | | #define TCL_DECLARE_MUTEX(name) static Tcl_Mutex name; | |
| #else | | #else | |
| #define TCL_DECLARE_MUTEX(name) | | #define TCL_DECLARE_MUTEX(name) | |
| #endif | | #endif | |
| | | | |
| | | | |
| skipping to change at line 333 | | skipping to change at line 327 | |
| typedef int *ClientData; | | typedef int *ClientData; | |
| # endif | | # endif | |
| # define _CLIENTDATA | | # define _CLIENTDATA | |
| #endif | | #endif | |
| | | | |
| /* | | /* | |
| * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, | | * Define Tcl_WideInt to be a type that is (at least) 64-bits wide, | |
| * and define Tcl_WideUInt to be the unsigned variant of that type | | * and define Tcl_WideUInt to be the unsigned variant of that type | |
| * (assuming that where we have one, we can have the other.) | | * (assuming that where we have one, we can have the other.) | |
| * | | * | |
|
| * At the moment, this only works on Unix systems anyway... | | | |
| * | | | |
| * Also defines the following macros: | | * Also defines the following macros: | |
| * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on | | * TCL_WIDE_INT_IS_LONG - if wide ints are really longs (i.e. we're on | |
| * a real 64-bit system.) | | * a real 64-bit system.) | |
| * Tcl_WideAsLong - forgetful converter from wideInt to long. | | * Tcl_WideAsLong - forgetful converter from wideInt to long. | |
| * Tcl_LongAsWide - sign-extending converter from long to wideInt. | | * Tcl_LongAsWide - sign-extending converter from long to wideInt. | |
| * Tcl_WideAsDouble - converter from wideInt to double. | | * Tcl_WideAsDouble - converter from wideInt to double. | |
| * Tcl_DoubleAsWide - converter from double to wideInt. | | * Tcl_DoubleAsWide - converter from double to wideInt. | |
| * | | * | |
| * The following invariant should hold for any long value 'longVal': | | * The following invariant should hold for any long value 'longVal': | |
| * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal)) | | * longVal == Tcl_WideAsLong(Tcl_LongAsWide(longVal)) | |
| * | | * | |
| * Note on converting between Tcl_WideInt and strings. This | | * Note on converting between Tcl_WideInt and strings. This | |
| * implementation (in tclObj.c) depends on the functions strtoull() | | * implementation (in tclObj.c) depends on the functions strtoull() | |
|
| * and, where sprintf(...,"%lld",...) does not work, lltostr(). | | * and sprintf(...,"%" TCL_LL_MODIFIER "d",...). TCL_LL_MODIFIER_SIZE | |
| * Although strtoull() is fairly straight-forward, lltostr() is a most | | * is the length of the modifier string, which is "ll" on most 32-bit | |
| * unusual function on Solaris8 (taking its operating buffer | | * Unix systems. It has to be split up like this to allow for the more | |
| * backwards) so any changes you make will need to be done | | * complex formats sometimes needed (e.g. in the format(n) command.) | |
| * cautiously... | | | |
| */ | | */ | |
| | | | |
| #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG) | | #if !defined(TCL_WIDE_INT_TYPE)&&!defined(TCL_WIDE_INT_IS_LONG) | |
|
| # ifdef __WIN32__ | | # ifdef __CYGWIN__ | |
| | | # define TCL_WIDE_INT_TYPE long long | |
| | | # define TCL_LL_MODIFIER "L" | |
| | | typedef struct stat Tcl_StatBuf; | |
| | | # define TCL_LL_MODIFIER_SIZE 1 | |
| | | # elif defined(__WIN32__) | |
| # define TCL_WIDE_INT_TYPE __int64 | | # define TCL_WIDE_INT_TYPE __int64 | |
| # ifdef __BORLANDC__ | | # ifdef __BORLANDC__ | |
| typedef struct stati64 Tcl_StatBuf; | | typedef struct stati64 Tcl_StatBuf; | |
| # define TCL_LL_MODIFIER "L" | | # define TCL_LL_MODIFIER "L" | |
| # define TCL_LL_MODIFIER_SIZE 1 | | # define TCL_LL_MODIFIER_SIZE 1 | |
| # else /* __BORLANDC__ */ | | # else /* __BORLANDC__ */ | |
| typedef struct _stati64 Tcl_StatBuf; | | typedef struct _stati64 Tcl_StatBuf; | |
| # define TCL_LL_MODIFIER "I64" | | # define TCL_LL_MODIFIER "I64" | |
| # define TCL_LL_MODIFIER_SIZE 3 | | # define TCL_LL_MODIFIER_SIZE 3 | |
| # endif /* __BORLANDC__ */ | | # endif /* __BORLANDC__ */ | |
| | | | |
| skipping to change at line 398 | | skipping to change at line 394 | |
| | | | |
| typedef TCL_WIDE_INT_TYPE Tcl_WideInt; | | typedef TCL_WIDE_INT_TYPE Tcl_WideInt; | |
| typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt; | | typedef unsigned TCL_WIDE_INT_TYPE Tcl_WideUInt; | |
| | | | |
| #ifdef TCL_WIDE_INT_IS_LONG | | #ifdef TCL_WIDE_INT_IS_LONG | |
| typedef struct stat Tcl_StatBuf; | | typedef struct stat Tcl_StatBuf; | |
| # define Tcl_WideAsLong(val) ((long)(val)) | | # define Tcl_WideAsLong(val) ((long)(val)) | |
| # define Tcl_LongAsWide(val) ((long)(val)) | | # define Tcl_LongAsWide(val) ((long)(val)) | |
| # define Tcl_WideAsDouble(val) ((double)((long)(val))) | | # define Tcl_WideAsDouble(val) ((double)((long)(val))) | |
| # define Tcl_DoubleAsWide(val) ((long)((double)(val))) | | # define Tcl_DoubleAsWide(val) ((long)((double)(val))) | |
|
| | | # ifndef TCL_LL_MODIFIER | |
| | | # define TCL_LL_MODIFIER "l" | |
| | | # define TCL_LL_MODIFIER_SIZE 1 | |
| | | # endif /* !TCL_LL_MODIFIER */ | |
| #else /* TCL_WIDE_INT_IS_LONG */ | | #else /* TCL_WIDE_INT_IS_LONG */ | |
|
| # ifndef __WIN32__ | | /* | |
| | | * The next short section of defines are only done when not running on | |
| | | * Windows or some other strange platform. | |
| | | */ | |
| | | # ifndef TCL_LL_MODIFIER | |
| # ifdef HAVE_STRUCT_STAT64 | | # ifdef HAVE_STRUCT_STAT64 | |
| typedef struct stat64 Tcl_StatBuf; | | typedef struct stat64 Tcl_StatBuf; | |
| # else | | # else | |
| typedef struct stat Tcl_StatBuf; | | typedef struct stat Tcl_StatBuf; | |
| # endif /* HAVE_STRUCT_STAT64 */ | | # endif /* HAVE_STRUCT_STAT64 */ | |
| # define TCL_LL_MODIFIER "ll" | | # define TCL_LL_MODIFIER "ll" | |
| # define TCL_LL_MODIFIER_SIZE 2 | | # define TCL_LL_MODIFIER_SIZE 2 | |
|
| # endif /* !__WIN32__ */ | | # endif /* !TCL_LL_MODIFIER */ | |
| # define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val))) | | # define Tcl_WideAsLong(val) ((long)((Tcl_WideInt)(val))) | |
| # define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val))) | | # define Tcl_LongAsWide(val) ((Tcl_WideInt)((long)(val))) | |
| # define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val))) | | # define Tcl_WideAsDouble(val) ((double)((Tcl_WideInt)(val))) | |
| # define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val))) | | # define Tcl_DoubleAsWide(val) ((Tcl_WideInt)((double)(val))) | |
| #endif /* TCL_WIDE_INT_IS_LONG */ | | #endif /* TCL_WIDE_INT_IS_LONG */ | |
| | | | |
| /* | | /* | |
| * This flag controls whether binary compatability is maintained with | | * This flag controls whether binary compatability is maintained with | |
| * extensions built against a previous version of Tcl. This is true | | * extensions built against a previous version of Tcl. This is true | |
| * by default. | | * by default. | |
| | | | |
| skipping to change at line 2251 | | skipping to change at line 2255 | |
| /* | | /* | |
| * Convenience declaration of Tcl_AppInit for backwards compatibility. | | * Convenience declaration of Tcl_AppInit for backwards compatibility. | |
| * This function is not *implemented* by the tcl library, so the storage | | * This function is not *implemented* by the tcl library, so the storage | |
| * class is neither DLLEXPORT nor DLLIMPORT | | * class is neither DLLEXPORT nor DLLIMPORT | |
| */ | | */ | |
| #undef TCL_STORAGE_CLASS | | #undef TCL_STORAGE_CLASS | |
| #define TCL_STORAGE_CLASS | | #define TCL_STORAGE_CLASS | |
| | | | |
| EXTERN int Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp)); | | EXTERN int Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp)); | |
| | | | |
|
| #endif /* RC_INVOKED */ | | | |
| | | | |
| #undef TCL_STORAGE_CLASS | | #undef TCL_STORAGE_CLASS | |
| #define TCL_STORAGE_CLASS DLLIMPORT | | #define TCL_STORAGE_CLASS DLLIMPORT | |
| | | | |
|
| #endif /* RESOURCE_INCLUDED */ | | #endif /* RC_INVOKED */ | |
| | | | |
| /* | | /* | |
| * end block for C++ | | * end block for C++ | |
| */ | | */ | |
| #ifdef __cplusplus | | #ifdef __cplusplus | |
| } | | } | |
| #endif | | #endif | |
| | | | |
| #endif /* _TCL */ | | #endif /* _TCL */ | |
| | | | |
End of changes. 15 change blocks. |
| 29 lines changed or deleted | | 31 lines changed or added | |
|