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


 tclPlatDecls.h   tclPlatDecls.h 
/* /*
* tclPlatDecls.h -- * tclPlatDecls.h --
* *
* Declarations of platform specific Tcl APIs. * Declarations of platform specific Tcl APIs.
* *
* Copyright (c) 1998-1999 by Scriptics Corporation. * Copyright (c) 1998-1999 by Scriptics Corporation.
* All rights reserved. * All rights reserved.
* *
* RCS: @(#) $Id: tclPlatDecls.h,v 1.17 2002/08/31 06:09:45 das Exp $ * RCS: @(#) $Id: tclPlatDecls.h,v 1.18 2002/09/27 00:50:10 hobbs Exp $
*/ */
#ifndef _TCLPLATDECLS #ifndef _TCLPLATDECLS
#define _TCLPLATDECLS #define _TCLPLATDECLS
/* /*
* Pull in the typedef of TCHAR for windows. * Pull in the typedef of TCHAR for windows.
*/ */
#if defined(__WIN32__) && !defined(_TCHAR_DEFINED) #if defined(__CYGWIN__)
typedef char TCHAR;
#elif defined(__WIN32__) && !defined(_TCHAR_DEFINED)
# include <tchar.h> # include <tchar.h>
# ifndef _TCHAR_DEFINED # ifndef _TCHAR_DEFINED
/* Borland seems to forget to set this. */ /* Borland seems to forget to set this. */
typedef _TCHAR TCHAR; typedef _TCHAR TCHAR;
# define _TCHAR_DEFINED # define _TCHAR_DEFINED
# endif # endif
# if defined(_MSC_VER) && defined(__STDC__) # if defined(_MSC_VER) && defined(__STDC__)
/* MSVC++ misses this. */ /* MSVC++ misses this. */
typedef _TCHAR TCHAR; typedef _TCHAR TCHAR;
# endif # endif
 End of changes. 2 change blocks. 
2 lines changed or deleted 4 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/