Tcl Source Code

Artifact [439cf3346f]
Login

Artifact 439cf3346f4fbb6cba8b027eb6889c8ac716e2ad:

Attachment "const.patch" to ticket [404026ffff] added by hobbs 2001-03-13 04:35:54.
diff -cr ../tcl-010312/doc/ByteArrObj.3 ./doc/ByteArrObj.3

*** ../tcl-010312/doc/ByteArrObj.3 Tue Mar  2 19:38:38 1999

--- ./doc/ByteArrObj.3 Mon Feb 19 10:23:00 2001

***************

*** 28,34 ****

  \fBTcl_SetByteArrayLength\fR(\fIobjPtr, length\fR)

  .SH ARGUMENTS

  .AS "unsigned char" *lengthPtr in/out

! .AP "unsigned char" *bytes in

  The array of bytes used to initialize or set a byte-array object.

  .AP int length in

  The length of the array of bytes.  It must be >= 0.

--- 28,34 ----

  \fBTcl_SetByteArrayLength\fR(\fIobjPtr, length\fR)

  .SH ARGUMENTS

  .AS "unsigned char" *lengthPtr in/out

! .AP "CONST unsigned char" *bytes in

  The array of bytes used to initialize or set a byte-array object.

  .AP int length in

  The length of the array of bytes.  It must be >= 0.

Only in ./doc: CVS

diff -cr ../tcl-010312/doc/DumpActiveMemory.3 ./doc/DumpActiveMemory.3

*** ../tcl-010312/doc/DumpActiveMemory.3 Thu Apr 27 19:47:50 2000

--- ./doc/DumpActiveMemory.3 Sun Feb 18 23:29:08 2001

***************

*** 26,32 ****

  .SH ARGUMENTS

  .AP Tcl_Interp *interp in

  Tcl interpreter in which to add commands.

! .AP char *fileName in

  For \fBTcl_DumpActiveMemory\fR, name of the file to which memory

  information will be written.  For \fBTcl_ValidateAllMemory\fR, name of

  the file from which the call is being made (normally \fB__FILE__\fR).

--- 26,32 ----

  .SH ARGUMENTS

  .AP Tcl_Interp *interp in

  Tcl interpreter in which to add commands.

! .AP "CONST char"v *fileName in

  For \fBTcl_DumpActiveMemory\fR, name of the file to which memory

  information will be written.  For \fBTcl_ValidateAllMemory\fR, name of

  the file from which the call is being made (normally \fB__FILE__\fR).

diff -cr ../tcl-010312/doc/InitStubs.3 ./doc/InitStubs.3

*** ../tcl-010312/doc/InitStubs.3 Thu May  6 14:14:42 1999

--- ./doc/InitStubs.3 Sun Feb 18 23:20:36 2001

***************

*** 15,27 ****

  .nf

  \fB#include <tcl.h>\fR

  .sp

! char *

  \fBTcl_InitStubs\fR(\fIinterp, version, exact\fR)

  .SH ARGUMENTS

  .AS Tcl_Interp *interp in

  .AP Tcl_Interp *interp in

  Tcl interpreter handle.

! .AP char *version in

  A version string consisting of one or more decimal numbers

  separated by dots.

  .AP int exact in

--- 15,27 ----

  .nf

  \fB#include <tcl.h>\fR

  .sp

! CONST char *

  \fBTcl_InitStubs\fR(\fIinterp, version, exact\fR)

  .SH ARGUMENTS

  .AS Tcl_Interp *interp in

  .AP Tcl_Interp *interp in

  Tcl interpreter handle.

! .AP CONST char *version in

  A version string consisting of one or more decimal numbers

  separated by dots.

  .AP int exact in

diff -cr ../tcl-010312/doc/PkgRequire.3 ./doc/PkgRequire.3

*** ../tcl-010312/doc/PkgRequire.3 Fri Apr 14 18:01:54 2000

--- ./doc/PkgRequire.3 Sun Feb 18 23:25:10 2001

***************

*** 15,30 ****

  .nf

  \fB#include <tcl.h>\fR

  .sp

! char *

  \fBTcl_PkgRequire\fR(\fIinterp, name, version, exact\fR)

  .sp

! char *

  \fBTcl_PkgRequireEx\fR(\fIinterp, name, version, exact, clientDataPtr\fR)

  .sp

! char *

  \fBTcl_PkgPresent\fR(\fIinterp, name, version, exact\fR)

  .sp

! char *

  \fBTcl_PkgPresentEx\fR(\fIinterp, name, version, exact, clientDataPtr\fR)

  .sp

  int

--- 15,30 ----

  .nf

  \fB#include <tcl.h>\fR

  .sp

! CONST char *

  \fBTcl_PkgRequire\fR(\fIinterp, name, version, exact\fR)

  .sp

! CONST char *

  \fBTcl_PkgRequireEx\fR(\fIinterp, name, version, exact, clientDataPtr\fR)

  .sp

! CONST char *

  \fBTcl_PkgPresent\fR(\fIinterp, name, version, exact\fR)

  .sp

! CONST char *

  \fBTcl_PkgPresentEx\fR(\fIinterp, name, version, exact, clientDataPtr\fR)

  .sp

  int

***************

*** 36,44 ****

  .AS Tcl_FreeProc clientDataPtr

  .AP Tcl_Interp *interp in

  Interpreter where package is needed or available.

! .AP char *name in

  Name of package.

! .AP char *version in

  A version string consisting of one or more decimal numbers

  separated by dots.

  .AP int exact in

--- 36,44 ----

  .AS Tcl_FreeProc clientDataPtr

  .AP Tcl_Interp *interp in

  Interpreter where package is needed or available.

! .AP "CONST char" *name in

  Name of package.

! .AP "CONST char" *version in

  A version string consisting of one or more decimal numbers

  separated by dots.

  .AP int exact in

diff -cr ../tcl-010312/doc/StringObj.3 ./doc/StringObj.3

*** ../tcl-010312/doc/StringObj.3 Thu Sep 14 13:42:30 2000

--- ./doc/StringObj.3 Mon Feb 19 10:25:40 2001

***************

*** 78,84 ****

  \fBTcl_ConcatObj\fR(\fIobjc, objv\fR)

  .SH ARGUMENTS

  .AS Tcl_Interp *appendObjPtr in/out

! .AP char *bytes in

  Points to the first byte of an array of bytes

  used to set or append to a string object.

  This byte array may contain embedded null bytes

--- 78,84 ----

  \fBTcl_ConcatObj\fR(\fIobjc, objv\fR)

  .SH ARGUMENTS

  .AS Tcl_Interp *appendObjPtr in/out

! .AP "CONST char" *bytes in

  Points to the first byte of an array of bytes

  used to set or append to a string object.

  This byte array may contain embedded null bytes

***************

*** 87,93 ****

  The number of bytes to copy from \fIbytes\fR when

  initializing, setting, or appending to a string object.

  If negative, all bytes up to the first null are used.

! .AP Tcl_UniChar *unicode in

  Points to the first byte of an array of Unicode characters

  used to set or append to a string object.

  This byte array may contain embedded null characters

--- 87,93 ----

  The number of bytes to copy from \fIbytes\fR when

  initializing, setting, or appending to a string object.

  If negative, all bytes up to the first null are used.

! .AP "CONST Tcl_UniChar" *unicode in

  Points to the first byte of an array of Unicode characters

  used to set or append to a string object.

  This byte array may contain embedded null characters

***************

*** 113,119 ****

  .AP int *lengthPtr out

  If non-NULL, the location where \fBTcl_GetStringFromObj\fR will store

  the the length of an object's string representation.

! .AP char *string in

  Null-terminated string value to append to \fIobjPtr\fR.

  .AP va_list argList in

  An argument list which must have been initialised using

--- 113,119 ----

  .AP int *lengthPtr out

  If non-NULL, the location where \fBTcl_GetStringFromObj\fR will store

  the the length of an object's string representation.

! .AP "CONST char" *string in

  Null-terminated string value to append to \fIobjPtr\fR.

  .AP va_list argList in

  An argument list which must have been initialised using

diff -cr ../tcl-010312/generic/tcl.decls ./generic/tcl.decls

*** ../tcl-010312/generic/tcl.decls Thu Jan 18 14:09:56 2001

--- ./generic/tcl.decls Mon Feb 19 10:24:52 2001

***************

*** 26,39 ****

  # the an index should never be reused for a different function in order

  # to preserve backwards compatibility.

  

! declare 0 generic {

!     int Tcl_PkgProvideEx(Tcl_Interp *interp, char *name, char *version, \

! 	    ClientData clientData)

! }

! declare 1 generic {

!     char * Tcl_PkgRequireEx(Tcl_Interp *interp, char *name, char *version, \

! 	    int exact, ClientData *clientDataPtr)

! }

  declare 2 generic {

      void Tcl_Panic(char *format, ...)

  }

--- 26,34 ----

  # the an index should never be reused for a different function in order

  # to preserve backwards compatibility.

  

! # slot 0 replaced with CONST interface in slot 433

! # slot 1 replaced with CONST interface in slot 434

! # slot 2 - reworking this implies CONST pollution in Tcl_SetPanicProc?

  declare 2 generic {

      void Tcl_Panic(char *format, ...)

  }

***************

*** 46,60 ****

  declare 5 generic {

      char * Tcl_Realloc(char *ptr, unsigned int size)

  }

! declare 6 generic {

!     char * Tcl_DbCkalloc(unsigned int size, char *file, int line)

! }

! declare 7 generic {

!     int Tcl_DbCkfree(char *ptr, char *file, int line)

! }

! declare 8 generic {

!     char * Tcl_DbCkrealloc(char *ptr, unsigned int size, char *file, int line)

! }

  

  # Tcl_CreateFileHandler and Tcl_DeleteFileHandler are only available on unix,

  # but they are part of the old generic interface, so we include them here for

--- 41,47 ----

  declare 5 generic {

      char * Tcl_Realloc(char *ptr, unsigned int size)

  }

! # slots 6-8 replaced with CONST interface in slots 436-438

  

  # Tcl_CreateFileHandler and Tcl_DeleteFileHandler are only available on unix,

  # but they are part of the old generic interface, so we include them here for

***************

*** 83,91 ****

  declare 15 generic {

      void Tcl_AppendStringsToObj(Tcl_Obj *objPtr, ...)

  }

! declare 16 generic {

!     void Tcl_AppendToObj(Tcl_Obj *objPtr, char *bytes, int length)

! }

  declare 17 generic {

      Tcl_Obj * Tcl_ConcatObj(int objc, Tcl_Obj *CONST objv[])

  }

--- 70,76 ----

  declare 15 generic {

      void Tcl_AppendStringsToObj(Tcl_Obj *objPtr, ...)

  }

! # slot 16 replaced by CONST interface in slot 439

  declare 17 generic {

      Tcl_Obj * Tcl_ConcatObj(int objc, Tcl_Obj *CONST objv[])

  }

***************

*** 93,131 ****

      int Tcl_ConvertToType(Tcl_Interp *interp, Tcl_Obj *objPtr, \

  	    Tcl_ObjType *typePtr)

  }

! declare 19 generic {

!     void Tcl_DbDecrRefCount(Tcl_Obj *objPtr, char *file, int line)

! }

! declare 20 generic {

!     void Tcl_DbIncrRefCount(Tcl_Obj *objPtr, char *file, int line)

! }

! declare 21 generic {

!     int Tcl_DbIsShared(Tcl_Obj *objPtr, char *file, int line)

! }

! declare 22 generic {

!     Tcl_Obj * Tcl_DbNewBooleanObj(int boolValue, char *file, int line)

! }

! declare 23 generic {

!     Tcl_Obj * Tcl_DbNewByteArrayObj(unsigned char *bytes, int length, \

! 	    char *file, int line)

! }

! declare 24 generic {

!     Tcl_Obj * Tcl_DbNewDoubleObj(double doubleValue, char *file, int line)

! }

! declare 25 generic {

!     Tcl_Obj * Tcl_DbNewListObj(int objc, Tcl_Obj *CONST objv[], char *file, \

! 	    int line)

! }

! declare 26 generic {

!     Tcl_Obj * Tcl_DbNewLongObj(long longValue, char *file, int line)

! }

! declare 27 generic {

!     Tcl_Obj * Tcl_DbNewObj(char *file, int line)

! }

! declare 28 generic {

!     Tcl_Obj * Tcl_DbNewStringObj(CONST char *bytes, int length, \

! 	    char *file, int line)

! }

  declare 29 generic {

      Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr)

  }

--- 78,84 ----

      int Tcl_ConvertToType(Tcl_Interp *interp, Tcl_Obj *objPtr, \

  	    Tcl_ObjType *typePtr)

  }

! # slots 19-28 replaced with CONST interface in slots 442-450

  declare 29 generic {

      Tcl_Obj * Tcl_DuplicateObj(Tcl_Obj *objPtr)

  }

***************

*** 197,205 ****

  declare 49 generic {

      Tcl_Obj * Tcl_NewBooleanObj(int boolValue)

  }

! declare 50 generic {

!     Tcl_Obj * Tcl_NewByteArrayObj(unsigned char *bytes, int length)

! }

  declare 51 generic {

      Tcl_Obj * Tcl_NewDoubleObj(double doubleValue)

  }

--- 150,156 ----

  declare 49 generic {

      Tcl_Obj * Tcl_NewBooleanObj(int boolValue)

  }

! # slot 50 replaced with CONST interface in slot 456

  declare 51 generic {

      Tcl_Obj * Tcl_NewDoubleObj(double doubleValue)

  }

***************

*** 224,232 ****

  declare 58 generic {

      unsigned char * Tcl_SetByteArrayLength(Tcl_Obj *objPtr, int length)

  }

! declare 59 generic {

!     void Tcl_SetByteArrayObj(Tcl_Obj *objPtr, unsigned char *bytes, int length)

! }

  declare 60 generic {

      void Tcl_SetDoubleObj(Tcl_Obj *objPtr, double doubleValue)

  }

--- 175,181 ----

  declare 58 generic {

      unsigned char * Tcl_SetByteArrayLength(Tcl_Obj *objPtr, int length)

  }

! # slot 59 replaced with CONST interface in slot 457

  declare 60 generic {

      void Tcl_SetDoubleObj(Tcl_Obj *objPtr, double doubleValue)

  }

***************

*** 242,250 ****

  declare 64 generic {

      void Tcl_SetObjLength(Tcl_Obj *objPtr, int length)

  }

! declare 65 generic {

!     void Tcl_SetStringObj(Tcl_Obj *objPtr, char *bytes, int length)

! }

  declare 66 generic {

      void Tcl_AddErrorInfo(Tcl_Interp *interp, CONST char *message)

  }

--- 191,197 ----

  declare 64 generic {

      void Tcl_SetObjLength(Tcl_Obj *objPtr, int length)

  }

! # slot 65 replaced with CONST interface in slot 458

  declare 66 generic {

      void Tcl_AddErrorInfo(Tcl_Interp *interp, CONST char *message)

  }

***************

*** 915,926 ****

      void Tcl_WrongNumArgs(Tcl_Interp *interp, int objc, \

  	    Tcl_Obj *CONST objv[], char *message)

  }

! declare 265 generic {

!     int Tcl_DumpActiveMemory(char *fileName)

! }

! declare 266 generic {

!     void Tcl_ValidateAllMemory(char *file, int line)

! }

  declare 267 generic {

      void Tcl_AppendResultVA(Tcl_Interp *interp, va_list argList)

  }

--- 862,868 ----

      void Tcl_WrongNumArgs(Tcl_Interp *interp, int objc, \

  	    Tcl_Obj *CONST objv[], char *message)

  }

! # Slots 265-266 replaced with CONST interfaces in slots 440-441

  declare 267 generic {

      void Tcl_AppendResultVA(Tcl_Interp *interp, va_list argList)

  }

***************

*** 933,953 ****

  declare 270 generic {

      char * Tcl_ParseVar(Tcl_Interp *interp, char *str, char **termPtr)

  }

! declare 271 generic {

!     char * Tcl_PkgPresent(Tcl_Interp *interp, char *name, char *version, \

! 	    int exact)

! }

! declare 272 generic {

!     char * Tcl_PkgPresentEx(Tcl_Interp *interp, char *name, char *version, \

! 	    int exact, ClientData *clientDataPtr)

! }

! declare 273 generic {

!     int Tcl_PkgProvide(Tcl_Interp *interp, char *name, char *version)

! }

! declare 274 generic {

!     char * Tcl_PkgRequire(Tcl_Interp *interp, char *name, char *version, \

! 	    int exact)

! }

  declare 275 generic {

      void Tcl_SetErrorCodeVA(Tcl_Interp *interp, va_list argList)

  }

--- 875,881 ----

  declare 270 generic {

      char * Tcl_ParseVar(Tcl_Interp *interp, char *str, char **termPtr)

  }

! # slots 271-274 replaced with constant APIs in slots 452-455

  declare 275 generic {

      void Tcl_SetErrorCodeVA(Tcl_Interp *interp, va_list argList)

  }

***************

*** 1308,1320 ****

  declare 377 generic {

      void Tcl_RegExpGetInfo(Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr)

  }

! declare 378 generic {

!     Tcl_Obj * Tcl_NewUnicodeObj(Tcl_UniChar *unicode, int numChars)

! }

! declare 379 generic {

!     void Tcl_SetUnicodeObj(Tcl_Obj *objPtr, Tcl_UniChar *unicode, \

! 	    int numChars)

! }

  declare 380 generic {

      int Tcl_GetCharLength (Tcl_Obj *objPtr)

  }

--- 1236,1242 ----

  declare 377 generic {

      void Tcl_RegExpGetInfo(Tcl_RegExp regexp, Tcl_RegExpInfo *infoPtr)

  }

! # 378-379 replaced with CONST APIs in slots 459-460

  declare 380 generic {

      int Tcl_GetCharLength (Tcl_Obj *objPtr)

  }

***************

*** 1327,1336 ****

  declare 383 generic {

      Tcl_Obj * Tcl_GetRange (Tcl_Obj *objPtr, int first, int last)

  }

! declare 384 generic {

!     void Tcl_AppendUnicodeToObj (Tcl_Obj *objPtr, \

! 	    Tcl_UniChar *unicode, int length)

! }

  declare 385 generic {

      int Tcl_RegExpMatchObj(Tcl_Interp *interp, Tcl_Obj *stringObj, \

  	    Tcl_Obj *patternObj)

--- 1249,1255 ----

  declare 383 generic {

      Tcl_Obj * Tcl_GetRange (Tcl_Obj *objPtr, int first, int last)

  }

! # slot 384 replaced with non-CONST interface in slot 461

  declare 385 generic {

      int Tcl_RegExpMatchObj(Tcl_Interp *interp, Tcl_Obj *stringObj, \

  	    Tcl_Obj *patternObj)

***************

*** 1501,1506 ****

--- 1420,1533 ----

  declare 432 generic {

      int Tcl_AttemptSetObjLength(Tcl_Obj *objPtr, int length)

  }

+ 

+ # Slots introduced in 8.4 for adding CONST to parameters of library APIs

+ 

+ declare 433 -nonconst 0 generic {

+     int Tcl_PkgProvideEx( Tcl_Interp* interp, CONST char* name,

+                           CONST char* version, ClientData clientData )

+ }

+ declare 434 -nonconst 1 generic {

+     CONST char * Tcl_PkgRequireEx( Tcl_Interp *interp, CONST char *name,

+                                    CONST char *version,

+ 	                           int exact, ClientData *clientDataPtr )

+ }

+ 

+ # 435 was reserved for const-ified Tcl_Panic

+ 

+ declare 436 -nonconst 6 generic {

+     char * Tcl_DbCkalloc(unsigned int size, CONST char *file, int line)

+ }

+ declare 437 -nonconst 7 generic {

+     int Tcl_DbCkfree(char *ptr, CONST char *file, int line)

+ }

+ declare 438 -nonconst 8 generic {

+     char * Tcl_DbCkrealloc(char *ptr, unsigned int size,

+                            CONST char *file, int line)

+ }

+ declare 439 -nonconst 16 generic {

+     void Tcl_AppendToObj( Tcl_Obj* objPtr, CONST char* bytes, int length )

+ }

+ declare 440 -nonconst 265 generic {

+     int Tcl_DumpActiveMemory( CONST char *fileName )

+ }

+ declare 441 -nonconst 266 generic {

+     void Tcl_ValidateAllMemory( CONST char *file, int line )

+ }

+ declare 442 -nonconst 19 generic {

+     void Tcl_DbDecrRefCount(Tcl_Obj *objPtr, CONST char *file, int line)

+ }

+ declare 443 -nonconst 20 generic {

+     void Tcl_DbIncrRefCount(Tcl_Obj *objPtr, CONST char *file, int line)

+ }

+ declare 444 -nonconst 21 generic {

+     int Tcl_DbIsShared(Tcl_Obj *objPtr, CONST char *file, int line)

+ }

+ declare 445 -nonconst 22 generic {

+     Tcl_Obj * Tcl_DbNewBooleanObj(int boolValue, CONST char *file, int line)

+ }

+ declare 446 -nonconst 23 generic {

+     Tcl_Obj * Tcl_DbNewByteArrayObj(CONST unsigned char *bytes, int length, \

+ 	    CONST char *file, int line)

+ }

+ declare 447 -nonconst 24 generic {

+     Tcl_Obj * Tcl_DbNewDoubleObj(double doubleValue,

+                                  CONST char *file, int line)

+ }

+ declare 448 -nonconst 25 generic {

+     Tcl_Obj * Tcl_DbNewListObj(int objc, Tcl_Obj *CONST1 *objv, 

+                                CONST char *file, int line)

+ }

+ declare 449 -nonconst 26 generic {

+     Tcl_Obj * Tcl_DbNewLongObj(long longValue, CONST char *file, int line)

+ }

+ declare 450 -nonconst 27 generic {

+     Tcl_Obj * Tcl_DbNewObj(CONST char *file, int line)

+ }

+ declare 451 -nonconst 28 generic {

+     Tcl_Obj * Tcl_DbNewStringObj(CONST1 char *bytes, int length,

+                                  CONST char *file, int line)

+ }

+ declare 452 -nonconst 271 generic {

+     CONST char * Tcl_PkgPresent(Tcl_Interp *interp, CONST char *name,

+                                 CONST char *version, int exact)

+ }

+ declare 453 -nonconst 272 generic {

+     CONST char * Tcl_PkgPresentEx(Tcl_Interp *interp, CONST char *name,

+                                   CONST char *version, int exact,

+                                   ClientData *clientDataPtr)

+ }

+ declare 454 -nonconst 273 generic {

+     int Tcl_PkgProvide(Tcl_Interp *interp, CONST char *name, 

+                        CONST char *version)

+ }

+ declare 455 -nonconst 274 generic {

+     CONST char * Tcl_PkgRequire(Tcl_Interp *interp, CONST char *name, 

+                                 CONST char *version, int exact)

+ }

+ declare 456 -nonconst 50 generic {

+     Tcl_Obj * Tcl_NewByteArrayObj( CONST unsigned char* bytes,

+ 	                           int length )

+ }

+ declare 457 -nonconst 59 generic {

+     void Tcl_SetByteArrayObj(Tcl_Obj *objPtr, CONST unsigned char *bytes,

+                              int length)

+ }

+ declare 458 -nonconst 65 generic {

+     void Tcl_SetStringObj( Tcl_Obj* objPtr, CONST char* bytes, int length )

+ }

+ declare 459 -nonconst 378 generic {

+     Tcl_Obj * Tcl_NewUnicodeObj(CONST Tcl_UniChar *unicode, int numChars)

+ }

+ declare 460 -nonconst 379 generic {

+     void Tcl_SetUnicodeObj(Tcl_Obj *objPtr, CONST Tcl_UniChar *unicode,

+ 	                   int numChars)

+ }

+ declare 461 -nonconst 384 generic {

+     void Tcl_AppendUnicodeToObj (Tcl_Obj *objPtr,

+ 	                         CONST Tcl_UniChar *unicode, int length)

+ }

+ 

  

  ##############################################################################

  

diff -cr ../tcl-010312/generic/tcl.h ./generic/tcl.h

*** ../tcl-010312/generic/tcl.h Thu Jan 18 14:09:56 2001

--- ./generic/tcl.h Sun Feb 18 23:11:38 2001

***************

*** 281,286 ****

--- 281,287 ----

  #   define _ANSI_ARGS_(x)	()

  #   define CONST

  #endif

+ #define CONST1 CONST

  

  /*

   * Make sure EXTERN isn't defined elsewhere

***************

*** 1817,1824 ****

   * linked into an application.

   */

  

! EXTERN char *		Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,

! 			    char *version, int exact));

  

  #ifndef USE_TCL_STUBS

  

--- 1818,1825 ----

   * linked into an application.

   */

  

! EXTERN CONST char *	Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,

! 			    CONST char *version, int exact));

  

  #ifndef USE_TCL_STUBS

  

diff -cr ../tcl-010312/generic/tclBinary.c ./generic/tclBinary.c

*** ../tcl-010312/generic/tclBinary.c Mon May  3 14:19:04 1999

--- ./generic/tclBinary.c Sun Feb 18 18:22:50 2001

***************

*** 125,131 ****

  

  Tcl_Obj *

  Tcl_NewByteArrayObj(bytes, length)

!     unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

--- 125,131 ----

  

  Tcl_Obj *

  Tcl_NewByteArrayObj(bytes, length)

!     CONST unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

***************

*** 137,143 ****

  

  Tcl_Obj *

  Tcl_NewByteArrayObj(bytes, length)

!     unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

--- 137,143 ----

  

  Tcl_Obj *

  Tcl_NewByteArrayObj(bytes, length)

!     CONST unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

***************

*** 180,190 ****

  

  Tcl_Obj *

  Tcl_DbNewByteArrayObj(bytes, length, file, line)

!     unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 180,190 ----

  

  Tcl_Obj *

  Tcl_DbNewByteArrayObj(bytes, length, file, line)

!     CONST unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 200,210 ****

  

  Tcl_Obj *

  Tcl_DbNewByteArrayObj(bytes, length, file, line)

!     unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 200,210 ----

  

  Tcl_Obj *

  Tcl_DbNewByteArrayObj(bytes, length, file, line)

!     CONST unsigned char *bytes;	/* The array of bytes used to initialize

  				 * the new object. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 234,240 ****

  void

  Tcl_SetByteArrayObj(objPtr, bytes, length)

      Tcl_Obj *objPtr;		/* Object to initialize as a ByteArray. */

!     unsigned char *bytes;	/* The array of bytes to use as the new

  				 * value. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

--- 234,240 ----

  void

  Tcl_SetByteArrayObj(objPtr, bytes, length)

      Tcl_Obj *objPtr;		/* Object to initialize as a ByteArray. */

!     CONST unsigned char *bytes;	/* The array of bytes to use as the new

  				 * value. */

      int length;			/* Length of the array of bytes, which must

  				 * be >= 0. */

diff -cr ../tcl-010312/generic/tclCkalloc.c ./generic/tclCkalloc.c

*** ../tcl-010312/generic/tclCkalloc.c Thu Dec  7 23:22:44 2000

--- ./generic/tclCkalloc.c Sun Feb 18 17:45:56 2001

***************

*** 54,60 ****

      struct mem_header *blink;

      MemTag *tagPtr;		/* Tag from "memory tag" command;  may be

  				 * NULL. */

!     char *file;

      long length;

      int line;

      unsigned char low_guard[LOW_GUARD_SIZE];

--- 54,60 ----

      struct mem_header *blink;

      MemTag *tagPtr;		/* Tag from "memory tag" command;  may be

  				 * NULL. */

!     CONST char *file;

      long length;

      int line;

      unsigned char low_guard[LOW_GUARD_SIZE];

***************

*** 131,137 ****

  static int		MemoryCmd _ANSI_ARGS_((ClientData clientData,

  			    Tcl_Interp *interp, int argc, char **argv));

  static void		ValidateMemory _ANSI_ARGS_((

! 			    struct mem_header *memHeaderP, char *file,

  			    int line, int nukeGuards));

  

  /*

--- 131,137 ----

  static int		MemoryCmd _ANSI_ARGS_((ClientData clientData,

  			    Tcl_Interp *interp, int argc, char **argv));

  static void		ValidateMemory _ANSI_ARGS_((

! 			    struct mem_header *memHeaderP, CONST char *file,

  			    int line, int nukeGuards));

  

  /*

***************

*** 200,206 ****

  static void

  ValidateMemory(memHeaderP, file, line, nukeGuards)

      struct mem_header *memHeaderP;	/* Memory chunk to validate */

!     char              *file;		/* File containing the call to

  					 * Tcl_ValidateAllMemory */

      int                line;		/* Line number of call to

  					 * Tcl_ValidateAllMemory */

--- 200,206 ----

  static void

  ValidateMemory(memHeaderP, file, line, nukeGuards)

      struct mem_header *memHeaderP;	/* Memory chunk to validate */

!     CONST char        *file;		/* File containing the call to

  					 * Tcl_ValidateAllMemory */

      int                line;		/* Line number of call to

  					 * Tcl_ValidateAllMemory */

***************

*** 280,287 ****

   */

  void

  Tcl_ValidateAllMemory (file, line)

!     char  *file;	/* File from which Tcl_ValidateAllMemory was called */

!     int    line;	/* Line number of call to Tcl_ValidateAllMemory */

  {

      struct mem_header *memScanP;

  

--- 280,287 ----

   */

  void

  Tcl_ValidateAllMemory (file, line)

!     CONST char  *file;	/* File from which Tcl_ValidateAllMemory was called */

!     int          line;	/* Line number of call to Tcl_ValidateAllMemory */

  {

      struct mem_header *memScanP;

  

***************

*** 310,316 ****

   */

  int

  Tcl_DumpActiveMemory (fileName)

!     char *fileName;		/* Name of the file to write info to */

  {

      FILE              *fileP;

      struct mem_header *memScanP;

--- 310,316 ----

   */

  int

  Tcl_DumpActiveMemory (fileName)

!     CONST char *fileName;		/* Name of the file to write info to */

  {

      FILE              *fileP;

      struct mem_header *memScanP;

***************

*** 364,370 ****

  char *

  Tcl_DbCkalloc(size, file, line)

      unsigned int size;

!     char        *file;

      int          line;

  {

      struct mem_header *result;

--- 364,370 ----

  char *

  Tcl_DbCkalloc(size, file, line)

      unsigned int size;

!     CONST char  *file;

      int          line;

  {

      struct mem_header *result;

***************

*** 553,561 ****

  

  int

  Tcl_DbCkfree(ptr, file, line)

!     char *ptr;

!     char *file;

!     int   line;

  {

      struct mem_header *memp;

  

--- 553,561 ----

  

  int

  Tcl_DbCkfree(ptr, file, line)

!     char       *ptr;

!     CONST char *file;

!     int         line;

  {

      struct mem_header *memp;

  

***************

*** 630,636 ****

  Tcl_DbCkrealloc(ptr, size, file, line)

      char *ptr;

      unsigned int size;

!     char *file;

      int line;

  {

      char *new;

--- 630,636 ----

  Tcl_DbCkrealloc(ptr, size, file, line)

      char *ptr;

      unsigned int size;

!     CONST char *file;

      int line;

  {

      char *new;

***************

*** 999,1005 ****

  char *

  Tcl_DbCkalloc(size, file, line)

      unsigned int size;

!     char        *file;

      int          line;

  {

      char *result;

--- 999,1005 ----

  char *

  Tcl_DbCkalloc(size, file, line)

      unsigned int size;

!     CONST char  *file;

      int          line;

  {

      char *result;

***************

*** 1073,1082 ****

  

  char *

  Tcl_DbCkrealloc(ptr, size, file, line)

!     char *ptr;

      unsigned int size;

!     char *file;

!     int line;

  {

      char *result;

  

--- 1073,1082 ----

  

  char *

  Tcl_DbCkrealloc(ptr, size, file, line)

!     char        *ptr;

      unsigned int size;

!     CONST char  *file;

!     int          line;

  {

      char *result;

  

***************

*** 1143,1151 ****

  

  int

  Tcl_DbCkfree(ptr, file, line)

!     char *ptr;

!     char *file;

!     int   line;

  {

      TclpFree(ptr);

      return 0;

--- 1143,1151 ----

  

  int

  Tcl_DbCkfree(ptr, file, line)

!     char       *ptr;

!     CONST char *file;

!     int         line;

  {

      TclpFree(ptr);

      return 0;

***************

*** 1169,1175 ****

  

  int

  Tcl_DumpActiveMemory(fileName)

!     char *fileName;

  {

      return TCL_OK;

  }

--- 1169,1175 ----

  

  int

  Tcl_DumpActiveMemory(fileName)

!     CONST char *fileName;

  {

      return TCL_OK;

  }

***************

*** 1176,1183 ****

  

  void

  Tcl_ValidateAllMemory(file, line)

!     char  *file;

!     int    line;

  {

  }

  

--- 1176,1183 ----

  

  void

  Tcl_ValidateAllMemory(file, line)

!     CONST char *file;

!     int         line;

  {

  }

  

diff -cr ../tcl-010312/generic/tclDecls.h ./generic/tclDecls.h

*** ../tcl-010312/generic/tclDecls.h Thu Jan 18 14:09:56 2001

--- ./generic/tclDecls.h Mon Feb 19 10:24:58 2001

***************

*** 27,38 ****

   */

  

  /* 0 */

! EXTERN int		Tcl_PkgProvideEx _ANSI_ARGS_((Tcl_Interp * interp, 

! 				char * name, char * version, 

! 				ClientData clientData));

  /* 1 */

! EXTERN char *		Tcl_PkgRequireEx _ANSI_ARGS_((Tcl_Interp * interp, 

! 				char * name, char * version, int exact, 

  				ClientData * clientDataPtr));

  /* 2 */

  EXTERN void		Tcl_Panic _ANSI_ARGS_(TCL_VARARGS(char *,format));

--- 27,39 ----

   */

  

  /* 0 */

! EXTERN int		Tcl_PkgProvideEx_NONCONST _ANSI_ARGS_((

! 				Tcl_Interp* interp, char* name, 

! 				char* version, ClientData clientData));

  /* 1 */

! EXTERN char *		Tcl_PkgRequireEx_NONCONST _ANSI_ARGS_((

! 				Tcl_Interp * interp, char * name, 

! 				char * version, int exact, 

  				ClientData * clientDataPtr));

  /* 2 */

  EXTERN void		Tcl_Panic _ANSI_ARGS_(TCL_VARARGS(char *,format));

***************

*** 44,56 ****

  EXTERN char *		Tcl_Realloc _ANSI_ARGS_((char * ptr, 

  				unsigned int size));

  /* 6 */

! EXTERN char *		Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size, 

! 				char * file, int line));

  /* 7 */

! EXTERN int		Tcl_DbCkfree _ANSI_ARGS_((char * ptr, char * file, 

! 				int line));

  /* 8 */

! EXTERN char *		Tcl_DbCkrealloc _ANSI_ARGS_((char * ptr, 

  				unsigned int size, char * file, int line));

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

  /* 9 */

--- 45,57 ----

  EXTERN char *		Tcl_Realloc _ANSI_ARGS_((char * ptr, 

  				unsigned int size));

  /* 6 */

! EXTERN char *		Tcl_DbCkalloc_NONCONST _ANSI_ARGS_((

! 				unsigned int size, char * file, int line));

  /* 7 */

! EXTERN int		Tcl_DbCkfree_NONCONST _ANSI_ARGS_((char * ptr, 

! 				char * file, int line));

  /* 8 */

! EXTERN char *		Tcl_DbCkrealloc_NONCONST _ANSI_ARGS_((char * ptr, 

  				unsigned int size, char * file, int line));

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

  /* 9 */

***************

*** 73,80 ****

  /* 15 */

  EXTERN void		Tcl_AppendStringsToObj _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr));

  /* 16 */

! EXTERN void		Tcl_AppendToObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				char * bytes, int length));

  /* 17 */

  EXTERN Tcl_Obj *	Tcl_ConcatObj _ANSI_ARGS_((int objc, 

  				Tcl_Obj *CONST objv[]));

--- 74,81 ----

  /* 15 */

  EXTERN void		Tcl_AppendStringsToObj _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr));

  /* 16 */

! EXTERN void		Tcl_AppendToObj_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj* objPtr, char* bytes, int length));

  /* 17 */

  EXTERN Tcl_Obj *	Tcl_ConcatObj _ANSI_ARGS_((int objc, 

  				Tcl_Obj *CONST objv[]));

***************

*** 82,116 ****

  EXTERN int		Tcl_ConvertToType _ANSI_ARGS_((Tcl_Interp * interp, 

  				Tcl_Obj * objPtr, Tcl_ObjType * typePtr));

  /* 19 */

! EXTERN void		Tcl_DbDecrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				char * file, int line));

  /* 20 */

! EXTERN void		Tcl_DbIncrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				char * file, int line));

  /* 21 */

! EXTERN int		Tcl_DbIsShared _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				char * file, int line));

  /* 22 */

! EXTERN Tcl_Obj *	Tcl_DbNewBooleanObj _ANSI_ARGS_((int boolValue, 

! 				char * file, int line));

  /* 23 */

! EXTERN Tcl_Obj *	Tcl_DbNewByteArrayObj _ANSI_ARGS_((

  				unsigned char * bytes, int length, 

  				char * file, int line));

  /* 24 */

! EXTERN Tcl_Obj *	Tcl_DbNewDoubleObj _ANSI_ARGS_((double doubleValue, 

! 				char * file, int line));

  /* 25 */

! EXTERN Tcl_Obj *	Tcl_DbNewListObj _ANSI_ARGS_((int objc, 

! 				Tcl_Obj *CONST objv[], char * file, int line));

  /* 26 */

! EXTERN Tcl_Obj *	Tcl_DbNewLongObj _ANSI_ARGS_((long longValue, 

! 				char * file, int line));

  /* 27 */

! EXTERN Tcl_Obj *	Tcl_DbNewObj _ANSI_ARGS_((char * file, int line));

  /* 28 */

! EXTERN Tcl_Obj *	Tcl_DbNewStringObj _ANSI_ARGS_((CONST char * bytes, 

! 				int length, char * file, int line));

  /* 29 */

  EXTERN Tcl_Obj *	Tcl_DuplicateObj _ANSI_ARGS_((Tcl_Obj * objPtr));

  /* 30 */

--- 83,120 ----

  EXTERN int		Tcl_ConvertToType _ANSI_ARGS_((Tcl_Interp * interp, 

  				Tcl_Obj * objPtr, Tcl_ObjType * typePtr));

  /* 19 */

! EXTERN void		Tcl_DbDecrRefCount_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj * objPtr, char * file, int line));

  /* 20 */

! EXTERN void		Tcl_DbIncrRefCount_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj * objPtr, char * file, int line));

  /* 21 */

! EXTERN int		Tcl_DbIsShared_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj * objPtr, char * file, int line));

  /* 22 */

! EXTERN Tcl_Obj *	Tcl_DbNewBooleanObj_NONCONST _ANSI_ARGS_((

! 				int boolValue, char * file, int line));

  /* 23 */

! EXTERN Tcl_Obj *	Tcl_DbNewByteArrayObj_NONCONST _ANSI_ARGS_((

  				unsigned char * bytes, int length, 

  				char * file, int line));

  /* 24 */

! EXTERN Tcl_Obj *	Tcl_DbNewDoubleObj_NONCONST _ANSI_ARGS_((

! 				double doubleValue, char * file, int line));

  /* 25 */

! EXTERN Tcl_Obj *	Tcl_DbNewListObj_NONCONST _ANSI_ARGS_((int objc, 

! 				Tcl_Obj *CONST1 * objv, char * file, 

! 				int line));

  /* 26 */

! EXTERN Tcl_Obj *	Tcl_DbNewLongObj_NONCONST _ANSI_ARGS_((

! 				long longValue, char * file, int line));

  /* 27 */

! EXTERN Tcl_Obj *	Tcl_DbNewObj_NONCONST _ANSI_ARGS_((char * file, 

! 				int line));

  /* 28 */

! EXTERN Tcl_Obj *	Tcl_DbNewStringObj_NONCONST _ANSI_ARGS_((

! 				CONST1 char * bytes, int length, char * file, 

! 				int line));

  /* 29 */

  EXTERN Tcl_Obj *	Tcl_DuplicateObj _ANSI_ARGS_((Tcl_Obj * objPtr));

  /* 30 */

***************

*** 179,186 ****

  /* 49 */

  EXTERN Tcl_Obj *	Tcl_NewBooleanObj _ANSI_ARGS_((int boolValue));

  /* 50 */

! EXTERN Tcl_Obj *	Tcl_NewByteArrayObj _ANSI_ARGS_((

! 				unsigned char * bytes, int length));

  /* 51 */

  EXTERN Tcl_Obj *	Tcl_NewDoubleObj _ANSI_ARGS_((double doubleValue));

  /* 52 */

--- 183,190 ----

  /* 49 */

  EXTERN Tcl_Obj *	Tcl_NewBooleanObj _ANSI_ARGS_((int boolValue));

  /* 50 */

! EXTERN Tcl_Obj *	Tcl_NewByteArrayObj_NONCONST _ANSI_ARGS_((

! 				unsigned char* bytes, int length));

  /* 51 */

  EXTERN Tcl_Obj *	Tcl_NewDoubleObj _ANSI_ARGS_((double doubleValue));

  /* 52 */

***************

*** 202,209 ****

  EXTERN unsigned char *	Tcl_SetByteArrayLength _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				int length));

  /* 59 */

! EXTERN void		Tcl_SetByteArrayObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				unsigned char * bytes, int length));

  /* 60 */

  EXTERN void		Tcl_SetDoubleObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				double doubleValue));

--- 206,214 ----

  EXTERN unsigned char *	Tcl_SetByteArrayLength _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				int length));

  /* 59 */

! EXTERN void		Tcl_SetByteArrayObj_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj * objPtr, unsigned char * bytes, 

! 				int length));

  /* 60 */

  EXTERN void		Tcl_SetDoubleObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				double doubleValue));

***************

*** 220,227 ****

  EXTERN void		Tcl_SetObjLength _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				int length));

  /* 65 */

! EXTERN void		Tcl_SetStringObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				char * bytes, int length));

  /* 66 */

  EXTERN void		Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp * interp, 

  				CONST char * message));

--- 225,232 ----

  EXTERN void		Tcl_SetObjLength _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				int length));

  /* 65 */

! EXTERN void		Tcl_SetStringObj_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj* objPtr, char* bytes, int length));

  /* 66 */

  EXTERN void		Tcl_AddErrorInfo _ANSI_ARGS_((Tcl_Interp * interp, 

  				CONST char * message));

***************

*** 851,860 ****

  				int objc, Tcl_Obj *CONST objv[], 

  				char * message));

  /* 265 */

! EXTERN int		Tcl_DumpActiveMemory _ANSI_ARGS_((char * fileName));

  /* 266 */

! EXTERN void		Tcl_ValidateAllMemory _ANSI_ARGS_((char * file, 

! 				int line));

  /* 267 */

  EXTERN void		Tcl_AppendResultVA _ANSI_ARGS_((Tcl_Interp * interp, 

  				va_list argList));

--- 856,866 ----

  				int objc, Tcl_Obj *CONST objv[], 

  				char * message));

  /* 265 */

! EXTERN int		Tcl_DumpActiveMemory_NONCONST _ANSI_ARGS_((

! 				char * fileName));

  /* 266 */

! EXTERN void		Tcl_ValidateAllMemory_NONCONST _ANSI_ARGS_((

! 				char * file, int line));

  /* 267 */

  EXTERN void		Tcl_AppendResultVA _ANSI_ARGS_((Tcl_Interp * interp, 

  				va_list argList));

***************

*** 867,884 ****

  EXTERN char *		Tcl_ParseVar _ANSI_ARGS_((Tcl_Interp * interp, 

  				char * str, char ** termPtr));

  /* 271 */

! EXTERN char *		Tcl_PkgPresent _ANSI_ARGS_((Tcl_Interp * interp, 

! 				char * name, char * version, int exact));

  /* 272 */

! EXTERN char *		Tcl_PkgPresentEx _ANSI_ARGS_((Tcl_Interp * interp, 

! 				char * name, char * version, int exact, 

  				ClientData * clientDataPtr));

  /* 273 */

! EXTERN int		Tcl_PkgProvide _ANSI_ARGS_((Tcl_Interp * interp, 

! 				char * name, char * version));

  /* 274 */

! EXTERN char *		Tcl_PkgRequire _ANSI_ARGS_((Tcl_Interp * interp, 

! 				char * name, char * version, int exact));

  /* 275 */

  EXTERN void		Tcl_SetErrorCodeVA _ANSI_ARGS_((Tcl_Interp * interp, 

  				va_list argList));

--- 873,894 ----

  EXTERN char *		Tcl_ParseVar _ANSI_ARGS_((Tcl_Interp * interp, 

  				char * str, char ** termPtr));

  /* 271 */

! EXTERN char *		Tcl_PkgPresent_NONCONST _ANSI_ARGS_((

! 				Tcl_Interp * interp, char * name, 

! 				char * version, int exact));

  /* 272 */

! EXTERN char *		Tcl_PkgPresentEx_NONCONST _ANSI_ARGS_((

! 				Tcl_Interp * interp, char * name, 

! 				char * version, int exact, 

  				ClientData * clientDataPtr));

  /* 273 */

! EXTERN int		Tcl_PkgProvide_NONCONST _ANSI_ARGS_((

! 				Tcl_Interp * interp, char * name, 

! 				char * version));

  /* 274 */

! EXTERN char *		Tcl_PkgRequire_NONCONST _ANSI_ARGS_((

! 				Tcl_Interp * interp, char * name, 

! 				char * version, int exact));

  /* 275 */

  EXTERN void		Tcl_SetErrorCodeVA _ANSI_ARGS_((Tcl_Interp * interp, 

  				va_list argList));

***************

*** 1184,1194 ****

  EXTERN void		Tcl_RegExpGetInfo _ANSI_ARGS_((Tcl_RegExp regexp, 

  				Tcl_RegExpInfo * infoPtr));

  /* 378 */

! EXTERN Tcl_Obj *	Tcl_NewUnicodeObj _ANSI_ARGS_((Tcl_UniChar * unicode, 

! 				int numChars));

! /* 379 */

! EXTERN void		Tcl_SetUnicodeObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				Tcl_UniChar * unicode, int numChars));

  /* 380 */

  EXTERN int		Tcl_GetCharLength _ANSI_ARGS_((Tcl_Obj * objPtr));

  /* 381 */

--- 1194,1205 ----

  EXTERN void		Tcl_RegExpGetInfo _ANSI_ARGS_((Tcl_RegExp regexp, 

  				Tcl_RegExpInfo * infoPtr));

  /* 378 */

! EXTERN Tcl_Obj *	Tcl_NewUnicodeObj_NONCONST _ANSI_ARGS_((

  				Tcl_UniChar * unicode, int numChars));

+ /* 379 */

+ EXTERN void		Tcl_SetUnicodeObj_NONCONST _ANSI_ARGS_((

+ 				Tcl_Obj * objPtr, Tcl_UniChar * unicode, 

+ 				int numChars));

  /* 380 */

  EXTERN int		Tcl_GetCharLength _ANSI_ARGS_((Tcl_Obj * objPtr));

  /* 381 */

***************

*** 1200,1207 ****

  EXTERN Tcl_Obj *	Tcl_GetRange _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				int first, int last));

  /* 384 */

! EXTERN void		Tcl_AppendUnicodeToObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

! 				Tcl_UniChar * unicode, int length));

  /* 385 */

  EXTERN int		Tcl_RegExpMatchObj _ANSI_ARGS_((Tcl_Interp * interp, 

  				Tcl_Obj * stringObj, Tcl_Obj * patternObj));

--- 1211,1219 ----

  EXTERN Tcl_Obj *	Tcl_GetRange _ANSI_ARGS_((Tcl_Obj * objPtr, 

  				int first, int last));

  /* 384 */

! EXTERN void		Tcl_AppendUnicodeToObj_NONCONST _ANSI_ARGS_((

! 				Tcl_Obj * objPtr, Tcl_UniChar * unicode, 

! 				int length));

  /* 385 */

  EXTERN int		Tcl_RegExpMatchObj _ANSI_ARGS_((Tcl_Interp * interp, 

  				Tcl_Obj * stringObj, Tcl_Obj * patternObj));

***************

*** 1350,1355 ****

--- 1362,1460 ----

  /* 432 */

  EXTERN int		Tcl_AttemptSetObjLength _ANSI_ARGS_((

  				Tcl_Obj * objPtr, int length));

+ /* 433 */

+ EXTERN int		Tcl_PkgProvideEx _ANSI_ARGS_((Tcl_Interp* interp, 

+ 				CONST char* name, CONST char* version, 

+ 				ClientData clientData));

+ /* 434 */

+ EXTERN CONST char *	Tcl_PkgRequireEx _ANSI_ARGS_((Tcl_Interp * interp, 

+ 				CONST char * name, CONST char * version, 

+ 				int exact, ClientData * clientDataPtr));

+ /* Slot 435 is reserved */

+ /* 436 */

+ EXTERN char *		Tcl_DbCkalloc _ANSI_ARGS_((unsigned int size, 

+ 				CONST char * file, int line));

+ /* 437 */

+ EXTERN int		Tcl_DbCkfree _ANSI_ARGS_((char * ptr, 

+ 				CONST char * file, int line));

+ /* 438 */

+ EXTERN char *		Tcl_DbCkrealloc _ANSI_ARGS_((char * ptr, 

+ 				unsigned int size, CONST char * file, 

+ 				int line));

+ /* 439 */

+ EXTERN void		Tcl_AppendToObj _ANSI_ARGS_((Tcl_Obj* objPtr, 

+ 				CONST char* bytes, int length));

+ /* 440 */

+ EXTERN int		Tcl_DumpActiveMemory _ANSI_ARGS_((

+ 				CONST char * fileName));

+ /* 441 */

+ EXTERN void		Tcl_ValidateAllMemory _ANSI_ARGS_((CONST char * file, 

+ 				int line));

+ /* 442 */

+ EXTERN void		Tcl_DbDecrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr, 

+ 				CONST char * file, int line));

+ /* 443 */

+ EXTERN void		Tcl_DbIncrRefCount _ANSI_ARGS_((Tcl_Obj * objPtr, 

+ 				CONST char * file, int line));

+ /* 444 */

+ EXTERN int		Tcl_DbIsShared _ANSI_ARGS_((Tcl_Obj * objPtr, 

+ 				CONST char * file, int line));

+ /* 445 */

+ EXTERN Tcl_Obj *	Tcl_DbNewBooleanObj _ANSI_ARGS_((int boolValue, 

+ 				CONST char * file, int line));

+ /* 446 */

+ EXTERN Tcl_Obj *	Tcl_DbNewByteArrayObj _ANSI_ARGS_((

+ 				CONST unsigned char * bytes, int length, 

+ 				CONST char * file, int line));

+ /* 447 */

+ EXTERN Tcl_Obj *	Tcl_DbNewDoubleObj _ANSI_ARGS_((double doubleValue, 

+ 				CONST char * file, int line));

+ /* 448 */

+ EXTERN Tcl_Obj *	Tcl_DbNewListObj _ANSI_ARGS_((int objc, 

+ 				Tcl_Obj *CONST1 * objv, CONST char * file, 

+ 				int line));

+ /* 449 */

+ EXTERN Tcl_Obj *	Tcl_DbNewLongObj _ANSI_ARGS_((long longValue, 

+ 				CONST char * file, int line));

+ /* 450 */

+ EXTERN Tcl_Obj *	Tcl_DbNewObj _ANSI_ARGS_((CONST char * file, 

+ 				int line));

+ /* 451 */

+ EXTERN Tcl_Obj *	Tcl_DbNewStringObj _ANSI_ARGS_((CONST1 char * bytes, 

+ 				int length, CONST char * file, int line));

+ /* 452 */

+ EXTERN CONST char *	Tcl_PkgPresent _ANSI_ARGS_((Tcl_Interp * interp, 

+ 				CONST char * name, CONST char * version, 

+ 				int exact));

+ /* 453 */

+ EXTERN CONST char *	Tcl_PkgPresentEx _ANSI_ARGS_((Tcl_Interp * interp, 

+ 				CONST char * name, CONST char * version, 

+ 				int exact, ClientData * clientDataPtr));

+ /* 454 */

+ EXTERN int		Tcl_PkgProvide _ANSI_ARGS_((Tcl_Interp * interp, 

+ 				CONST char * name, CONST char * version));

+ /* 455 */

+ EXTERN CONST char *	Tcl_PkgRequire _ANSI_ARGS_((Tcl_Interp * interp, 

+ 				CONST char * name, CONST char * version, 

+ 				int exact));

+ /* 456 */

+ EXTERN Tcl_Obj *	Tcl_NewByteArrayObj _ANSI_ARGS_((

+ 				CONST unsigned char* bytes, int length));

+ /* 457 */

+ EXTERN void		Tcl_SetByteArrayObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

+ 				CONST unsigned char * bytes, int length));

+ /* 458 */

+ EXTERN void		Tcl_SetStringObj _ANSI_ARGS_((Tcl_Obj* objPtr, 

+ 				CONST char* bytes, int length));

+ /* 459 */

+ EXTERN Tcl_Obj *	Tcl_NewUnicodeObj _ANSI_ARGS_((

+ 				CONST Tcl_UniChar * unicode, int numChars));

+ /* 460 */

+ EXTERN void		Tcl_SetUnicodeObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

+ 				CONST Tcl_UniChar * unicode, int numChars));

+ /* 461 */

+ EXTERN void		Tcl_AppendUnicodeToObj _ANSI_ARGS_((Tcl_Obj * objPtr, 

+ 				CONST Tcl_UniChar * unicode, int length));

  

  typedef struct TclStubHooks {

      struct TclPlatStubs *tclPlatStubs;

***************

*** 1361,1375 ****

      int magic;

      struct TclStubHooks *hooks;

  

!     int (*tcl_PkgProvideEx) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, ClientData clientData)); /* 0 */

!     char * (*tcl_PkgRequireEx) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr)); /* 1 */

      void (*tcl_Panic) _ANSI_ARGS_(TCL_VARARGS(char *,format)); /* 2 */

      char * (*tcl_Alloc) _ANSI_ARGS_((unsigned int size)); /* 3 */

      void (*tcl_Free) _ANSI_ARGS_((char * ptr)); /* 4 */

      char * (*tcl_Realloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 5 */

!     char * (*tcl_DbCkalloc) _ANSI_ARGS_((unsigned int size, char * file, int line)); /* 6 */

!     int (*tcl_DbCkfree) _ANSI_ARGS_((char * ptr, char * file, int line)); /* 7 */

!     char * (*tcl_DbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, char * file, int line)); /* 8 */

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

      void (*tcl_CreateFileHandler) _ANSI_ARGS_((int fd, int mask, Tcl_FileProc * proc, ClientData clientData)); /* 9 */

  #endif /* UNIX */

--- 1466,1480 ----

      int magic;

      struct TclStubHooks *hooks;

  

!     int (*tcl_PkgProvideEx_NONCONST) _ANSI_ARGS_((Tcl_Interp* interp, char* name, char* version, ClientData clientData)); /* 0 */

!     char * (*tcl_PkgRequireEx_NONCONST) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr)); /* 1 */

      void (*tcl_Panic) _ANSI_ARGS_(TCL_VARARGS(char *,format)); /* 2 */

      char * (*tcl_Alloc) _ANSI_ARGS_((unsigned int size)); /* 3 */

      void (*tcl_Free) _ANSI_ARGS_((char * ptr)); /* 4 */

      char * (*tcl_Realloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 5 */

!     char * (*tcl_DbCkalloc_NONCONST) _ANSI_ARGS_((unsigned int size, char * file, int line)); /* 6 */

!     int (*tcl_DbCkfree_NONCONST) _ANSI_ARGS_((char * ptr, char * file, int line)); /* 7 */

!     char * (*tcl_DbCkrealloc_NONCONST) _ANSI_ARGS_((char * ptr, unsigned int size, char * file, int line)); /* 8 */

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

      void (*tcl_CreateFileHandler) _ANSI_ARGS_((int fd, int mask, Tcl_FileProc * proc, ClientData clientData)); /* 9 */

  #endif /* UNIX */

***************

*** 1393,1411 ****

      int (*tcl_WaitForEvent) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 13 */

      int (*tcl_AppendAllObjTypes) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 14 */

      void (*tcl_AppendStringsToObj) _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr)); /* 15 */

!     void (*tcl_AppendToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, char * bytes, int length)); /* 16 */

      Tcl_Obj * (*tcl_ConcatObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 17 */

      int (*tcl_ConvertToType) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr)); /* 18 */

!     void (*tcl_DbDecrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, char * file, int line)); /* 19 */

!     void (*tcl_DbIncrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, char * file, int line)); /* 20 */

!     int (*tcl_DbIsShared) _ANSI_ARGS_((Tcl_Obj * objPtr, char * file, int line)); /* 21 */

!     Tcl_Obj * (*tcl_DbNewBooleanObj) _ANSI_ARGS_((int boolValue, char * file, int line)); /* 22 */

!     Tcl_Obj * (*tcl_DbNewByteArrayObj) _ANSI_ARGS_((unsigned char * bytes, int length, char * file, int line)); /* 23 */

!     Tcl_Obj * (*tcl_DbNewDoubleObj) _ANSI_ARGS_((double doubleValue, char * file, int line)); /* 24 */

!     Tcl_Obj * (*tcl_DbNewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[], char * file, int line)); /* 25 */

!     Tcl_Obj * (*tcl_DbNewLongObj) _ANSI_ARGS_((long longValue, char * file, int line)); /* 26 */

!     Tcl_Obj * (*tcl_DbNewObj) _ANSI_ARGS_((char * file, int line)); /* 27 */

!     Tcl_Obj * (*tcl_DbNewStringObj) _ANSI_ARGS_((CONST char * bytes, int length, char * file, int line)); /* 28 */

      Tcl_Obj * (*tcl_DuplicateObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 29 */

      void (*tclFreeObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 30 */

      int (*tcl_GetBoolean) _ANSI_ARGS_((Tcl_Interp * interp, char * str, int * boolPtr)); /* 31 */

--- 1498,1516 ----

      int (*tcl_WaitForEvent) _ANSI_ARGS_((Tcl_Time * timePtr)); /* 13 */

      int (*tcl_AppendAllObjTypes) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr)); /* 14 */

      void (*tcl_AppendStringsToObj) _ANSI_ARGS_(TCL_VARARGS(Tcl_Obj *,objPtr)); /* 15 */

!     void (*tcl_AppendToObj_NONCONST) _ANSI_ARGS_((Tcl_Obj* objPtr, char* bytes, int length)); /* 16 */

      Tcl_Obj * (*tcl_ConcatObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 17 */

      int (*tcl_ConvertToType) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * objPtr, Tcl_ObjType * typePtr)); /* 18 */

!     void (*tcl_DbDecrRefCount_NONCONST) _ANSI_ARGS_((Tcl_Obj * objPtr, char * file, int line)); /* 19 */

!     void (*tcl_DbIncrRefCount_NONCONST) _ANSI_ARGS_((Tcl_Obj * objPtr, char * file, int line)); /* 20 */

!     int (*tcl_DbIsShared_NONCONST) _ANSI_ARGS_((Tcl_Obj * objPtr, char * file, int line)); /* 21 */

!     Tcl_Obj * (*tcl_DbNewBooleanObj_NONCONST) _ANSI_ARGS_((int boolValue, char * file, int line)); /* 22 */

!     Tcl_Obj * (*tcl_DbNewByteArrayObj_NONCONST) _ANSI_ARGS_((unsigned char * bytes, int length, char * file, int line)); /* 23 */

!     Tcl_Obj * (*tcl_DbNewDoubleObj_NONCONST) _ANSI_ARGS_((double doubleValue, char * file, int line)); /* 24 */

!     Tcl_Obj * (*tcl_DbNewListObj_NONCONST) _ANSI_ARGS_((int objc, Tcl_Obj *CONST1 * objv, char * file, int line)); /* 25 */

!     Tcl_Obj * (*tcl_DbNewLongObj_NONCONST) _ANSI_ARGS_((long longValue, char * file, int line)); /* 26 */

!     Tcl_Obj * (*tcl_DbNewObj_NONCONST) _ANSI_ARGS_((char * file, int line)); /* 27 */

!     Tcl_Obj * (*tcl_DbNewStringObj_NONCONST) _ANSI_ARGS_((CONST1 char * bytes, int length, char * file, int line)); /* 28 */

      Tcl_Obj * (*tcl_DuplicateObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 29 */

      void (*tclFreeObj) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 30 */

      int (*tcl_GetBoolean) _ANSI_ARGS_((Tcl_Interp * interp, char * str, int * boolPtr)); /* 31 */

***************

*** 1427,1433 ****

      int (*tcl_ListObjLength) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr)); /* 47 */

      int (*tcl_ListObjReplace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *CONST objv[])); /* 48 */

      Tcl_Obj * (*tcl_NewBooleanObj) _ANSI_ARGS_((int boolValue)); /* 49 */

!     Tcl_Obj * (*tcl_NewByteArrayObj) _ANSI_ARGS_((unsigned char * bytes, int length)); /* 50 */

      Tcl_Obj * (*tcl_NewDoubleObj) _ANSI_ARGS_((double doubleValue)); /* 51 */

      Tcl_Obj * (*tcl_NewIntObj) _ANSI_ARGS_((int intValue)); /* 52 */

      Tcl_Obj * (*tcl_NewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 53 */

--- 1532,1538 ----

      int (*tcl_ListObjLength) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int * intPtr)); /* 47 */

      int (*tcl_ListObjReplace) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * listPtr, int first, int count, int objc, Tcl_Obj *CONST objv[])); /* 48 */

      Tcl_Obj * (*tcl_NewBooleanObj) _ANSI_ARGS_((int boolValue)); /* 49 */

!     Tcl_Obj * (*tcl_NewByteArrayObj_NONCONST) _ANSI_ARGS_((unsigned char* bytes, int length)); /* 50 */

      Tcl_Obj * (*tcl_NewDoubleObj) _ANSI_ARGS_((double doubleValue)); /* 51 */

      Tcl_Obj * (*tcl_NewIntObj) _ANSI_ARGS_((int intValue)); /* 52 */

      Tcl_Obj * (*tcl_NewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST objv[])); /* 53 */

***************

*** 1436,1448 ****

      Tcl_Obj * (*tcl_NewStringObj) _ANSI_ARGS_((CONST char * bytes, int length)); /* 56 */

      void (*tcl_SetBooleanObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int boolValue)); /* 57 */

      unsigned char * (*tcl_SetByteArrayLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 58 */

!     void (*tcl_SetByteArrayObj) _ANSI_ARGS_((Tcl_Obj * objPtr, unsigned char * bytes, int length)); /* 59 */

      void (*tcl_SetDoubleObj) _ANSI_ARGS_((Tcl_Obj * objPtr, double doubleValue)); /* 60 */

      void (*tcl_SetIntObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int intValue)); /* 61 */

      void (*tcl_SetListObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int objc, Tcl_Obj *CONST objv[])); /* 62 */

      void (*tcl_SetLongObj) _ANSI_ARGS_((Tcl_Obj * objPtr, long longValue)); /* 63 */

      void (*tcl_SetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 64 */

!     void (*tcl_SetStringObj) _ANSI_ARGS_((Tcl_Obj * objPtr, char * bytes, int length)); /* 65 */

      void (*tcl_AddErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message)); /* 66 */

      void (*tcl_AddObjErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message, int length)); /* 67 */

      void (*tcl_AllowExceptions) _ANSI_ARGS_((Tcl_Interp * interp)); /* 68 */

--- 1541,1553 ----

      Tcl_Obj * (*tcl_NewStringObj) _ANSI_ARGS_((CONST char * bytes, int length)); /* 56 */

      void (*tcl_SetBooleanObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int boolValue)); /* 57 */

      unsigned char * (*tcl_SetByteArrayLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 58 */

!     void (*tcl_SetByteArrayObj_NONCONST) _ANSI_ARGS_((Tcl_Obj * objPtr, unsigned char * bytes, int length)); /* 59 */

      void (*tcl_SetDoubleObj) _ANSI_ARGS_((Tcl_Obj * objPtr, double doubleValue)); /* 60 */

      void (*tcl_SetIntObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int intValue)); /* 61 */

      void (*tcl_SetListObj) _ANSI_ARGS_((Tcl_Obj * objPtr, int objc, Tcl_Obj *CONST objv[])); /* 62 */

      void (*tcl_SetLongObj) _ANSI_ARGS_((Tcl_Obj * objPtr, long longValue)); /* 63 */

      void (*tcl_SetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 64 */

!     void (*tcl_SetStringObj_NONCONST) _ANSI_ARGS_((Tcl_Obj* objPtr, char* bytes, int length)); /* 65 */

      void (*tcl_AddErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message)); /* 66 */

      void (*tcl_AddObjErrorInfo) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * message, int length)); /* 67 */

      void (*tcl_AllowExceptions) _ANSI_ARGS_((Tcl_Interp * interp)); /* 68 */

***************

*** 1674,1689 ****

      ClientData (*tcl_VarTraceInfo2) _ANSI_ARGS_((Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData)); /* 262 */

      int (*tcl_Write) _ANSI_ARGS_((Tcl_Channel chan, char * s, int slen)); /* 263 */

      void (*tcl_WrongNumArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], char * message)); /* 264 */

!     int (*tcl_DumpActiveMemory) _ANSI_ARGS_((char * fileName)); /* 265 */

!     void (*tcl_ValidateAllMemory) _ANSI_ARGS_((char * file, int line)); /* 266 */

      void (*tcl_AppendResultVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 267 */

      void (*tcl_AppendStringsToObjVA) _ANSI_ARGS_((Tcl_Obj * objPtr, va_list argList)); /* 268 */

      char * (*tcl_HashStats) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 269 */

      char * (*tcl_ParseVar) _ANSI_ARGS_((Tcl_Interp * interp, char * str, char ** termPtr)); /* 270 */

!     char * (*tcl_PkgPresent) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact)); /* 271 */

!     char * (*tcl_PkgPresentEx) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr)); /* 272 */

!     int (*tcl_PkgProvide) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version)); /* 273 */

!     char * (*tcl_PkgRequire) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact)); /* 274 */

      void (*tcl_SetErrorCodeVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 275 */

      int (*tcl_VarEvalVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 276 */

      Tcl_Pid (*tcl_WaitPid) _ANSI_ARGS_((Tcl_Pid pid, int * statPtr, int options)); /* 277 */

--- 1779,1794 ----

      ClientData (*tcl_VarTraceInfo2) _ANSI_ARGS_((Tcl_Interp * interp, char * part1, char * part2, int flags, Tcl_VarTraceProc * procPtr, ClientData prevClientData)); /* 262 */

      int (*tcl_Write) _ANSI_ARGS_((Tcl_Channel chan, char * s, int slen)); /* 263 */

      void (*tcl_WrongNumArgs) _ANSI_ARGS_((Tcl_Interp * interp, int objc, Tcl_Obj *CONST objv[], char * message)); /* 264 */

!     int (*tcl_DumpActiveMemory_NONCONST) _ANSI_ARGS_((char * fileName)); /* 265 */

!     void (*tcl_ValidateAllMemory_NONCONST) _ANSI_ARGS_((char * file, int line)); /* 266 */

      void (*tcl_AppendResultVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 267 */

      void (*tcl_AppendStringsToObjVA) _ANSI_ARGS_((Tcl_Obj * objPtr, va_list argList)); /* 268 */

      char * (*tcl_HashStats) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 269 */

      char * (*tcl_ParseVar) _ANSI_ARGS_((Tcl_Interp * interp, char * str, char ** termPtr)); /* 270 */

!     char * (*tcl_PkgPresent_NONCONST) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact)); /* 271 */

!     char * (*tcl_PkgPresentEx_NONCONST) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact, ClientData * clientDataPtr)); /* 272 */

!     int (*tcl_PkgProvide_NONCONST) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version)); /* 273 */

!     char * (*tcl_PkgRequire_NONCONST) _ANSI_ARGS_((Tcl_Interp * interp, char * name, char * version, int exact)); /* 274 */

      void (*tcl_SetErrorCodeVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 275 */

      int (*tcl_VarEvalVA) _ANSI_ARGS_((Tcl_Interp * interp, va_list argList)); /* 276 */

      Tcl_Pid (*tcl_WaitPid) _ANSI_ARGS_((Tcl_Pid pid, int * statPtr, int options)); /* 277 */

***************

*** 1795,1807 ****

      int (*tcl_UniCharIsPunct) _ANSI_ARGS_((int ch)); /* 375 */

      int (*tcl_RegExpExecObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags)); /* 376 */

      void (*tcl_RegExpGetInfo) _ANSI_ARGS_((Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr)); /* 377 */

!     Tcl_Obj * (*tcl_NewUnicodeObj) _ANSI_ARGS_((Tcl_UniChar * unicode, int numChars)); /* 378 */

!     void (*tcl_SetUnicodeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_UniChar * unicode, int numChars)); /* 379 */

      int (*tcl_GetCharLength) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 380 */

      Tcl_UniChar (*tcl_GetUniChar) _ANSI_ARGS_((Tcl_Obj * objPtr, int index)); /* 381 */

      Tcl_UniChar * (*tcl_GetUnicode) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 382 */

      Tcl_Obj * (*tcl_GetRange) _ANSI_ARGS_((Tcl_Obj * objPtr, int first, int last)); /* 383 */

!     void (*tcl_AppendUnicodeToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_UniChar * unicode, int length)); /* 384 */

      int (*tcl_RegExpMatchObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj)); /* 385 */

      void (*tcl_SetNotifier) _ANSI_ARGS_((Tcl_NotifierProcs * notifierProcPtr)); /* 386 */

      Tcl_Mutex * (*tcl_GetAllocMutex) _ANSI_ARGS_((void)); /* 387 */

--- 1900,1912 ----

      int (*tcl_UniCharIsPunct) _ANSI_ARGS_((int ch)); /* 375 */

      int (*tcl_RegExpExecObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_RegExp regexp, Tcl_Obj * objPtr, int offset, int nmatches, int flags)); /* 376 */

      void (*tcl_RegExpGetInfo) _ANSI_ARGS_((Tcl_RegExp regexp, Tcl_RegExpInfo * infoPtr)); /* 377 */

!     Tcl_Obj * (*tcl_NewUnicodeObj_NONCONST) _ANSI_ARGS_((Tcl_UniChar * unicode, int numChars)); /* 378 */

!     void (*tcl_SetUnicodeObj_NONCONST) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_UniChar * unicode, int numChars)); /* 379 */

      int (*tcl_GetCharLength) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 380 */

      Tcl_UniChar (*tcl_GetUniChar) _ANSI_ARGS_((Tcl_Obj * objPtr, int index)); /* 381 */

      Tcl_UniChar * (*tcl_GetUnicode) _ANSI_ARGS_((Tcl_Obj * objPtr)); /* 382 */

      Tcl_Obj * (*tcl_GetRange) _ANSI_ARGS_((Tcl_Obj * objPtr, int first, int last)); /* 383 */

!     void (*tcl_AppendUnicodeToObj_NONCONST) _ANSI_ARGS_((Tcl_Obj * objPtr, Tcl_UniChar * unicode, int length)); /* 384 */

      int (*tcl_RegExpMatchObj) _ANSI_ARGS_((Tcl_Interp * interp, Tcl_Obj * stringObj, Tcl_Obj * patternObj)); /* 385 */

      void (*tcl_SetNotifier) _ANSI_ARGS_((Tcl_NotifierProcs * notifierProcPtr)); /* 386 */

      Tcl_Mutex * (*tcl_GetAllocMutex) _ANSI_ARGS_((void)); /* 387 */

***************

*** 1840,1846 ****

      int (*tcl_UniCharCaseMatch) _ANSI_ARGS_((CONST Tcl_UniChar * ustr, CONST Tcl_UniChar * pattern, int nocase)); /* 420 */

      Tcl_HashEntry * (*tcl_FindHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key)); /* 421 */

      Tcl_HashEntry * (*tcl_CreateHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key, int * newPtr)); /* 422 */

!     void (*Tcl_InitCustomHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr, int keyType, Tcl_HashKeyType * typePtr)); /* 423 */

      void (*tcl_InitObjHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 424 */

      ClientData (*tcl_CommandTraceInfo) _ANSI_ARGS_((Tcl_Interp * interp, char * varName, int flags, Tcl_CommandTraceProc * procPtr, ClientData prevClientData)); /* 425 */

      int (*tcl_TraceCommand) _ANSI_ARGS_((Tcl_Interp * interp, char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData)); /* 426 */

--- 1945,1951 ----

      int (*tcl_UniCharCaseMatch) _ANSI_ARGS_((CONST Tcl_UniChar * ustr, CONST Tcl_UniChar * pattern, int nocase)); /* 420 */

      Tcl_HashEntry * (*tcl_FindHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key)); /* 421 */

      Tcl_HashEntry * (*tcl_CreateHashEntry) _ANSI_ARGS_((Tcl_HashTable * tablePtr, CONST char * key, int * newPtr)); /* 422 */

!     void (*tcl_InitCustomHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr, int keyType, Tcl_HashKeyType * typePtr)); /* 423 */

      void (*tcl_InitObjHashTable) _ANSI_ARGS_((Tcl_HashTable * tablePtr)); /* 424 */

      ClientData (*tcl_CommandTraceInfo) _ANSI_ARGS_((Tcl_Interp * interp, char * varName, int flags, Tcl_CommandTraceProc * procPtr, ClientData prevClientData)); /* 425 */

      int (*tcl_TraceCommand) _ANSI_ARGS_((Tcl_Interp * interp, char * varName, int flags, Tcl_CommandTraceProc * proc, ClientData clientData)); /* 426 */

***************

*** 1850,1855 ****

--- 1955,1989 ----

      char * (*tcl_AttemptRealloc) _ANSI_ARGS_((char * ptr, unsigned int size)); /* 430 */

      char * (*tcl_AttemptDbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, char * file, int line)); /* 431 */

      int (*tcl_AttemptSetObjLength) _ANSI_ARGS_((Tcl_Obj * objPtr, int length)); /* 432 */

+     int (*tcl_PkgProvideEx) _ANSI_ARGS_((Tcl_Interp* interp, CONST char* name, CONST char* version, ClientData clientData)); /* 433 */

+     CONST char * (*tcl_PkgRequireEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr)); /* 434 */

+     void *reserved435;

+     char * (*tcl_DbCkalloc) _ANSI_ARGS_((unsigned int size, CONST char * file, int line)); /* 436 */

+     int (*tcl_DbCkfree) _ANSI_ARGS_((char * ptr, CONST char * file, int line)); /* 437 */

+     char * (*tcl_DbCkrealloc) _ANSI_ARGS_((char * ptr, unsigned int size, CONST char * file, int line)); /* 438 */

+     void (*tcl_AppendToObj) _ANSI_ARGS_((Tcl_Obj* objPtr, CONST char* bytes, int length)); /* 439 */

+     int (*tcl_DumpActiveMemory) _ANSI_ARGS_((CONST char * fileName)); /* 440 */

+     void (*tcl_ValidateAllMemory) _ANSI_ARGS_((CONST char * file, int line)); /* 441 */

+     void (*tcl_DbDecrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 442 */

+     void (*tcl_DbIncrRefCount) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 443 */

+     int (*tcl_DbIsShared) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST char * file, int line)); /* 444 */

+     Tcl_Obj * (*tcl_DbNewBooleanObj) _ANSI_ARGS_((int boolValue, CONST char * file, int line)); /* 445 */

+     Tcl_Obj * (*tcl_DbNewByteArrayObj) _ANSI_ARGS_((CONST unsigned char * bytes, int length, CONST char * file, int line)); /* 446 */

+     Tcl_Obj * (*tcl_DbNewDoubleObj) _ANSI_ARGS_((double doubleValue, CONST char * file, int line)); /* 447 */

+     Tcl_Obj * (*tcl_DbNewListObj) _ANSI_ARGS_((int objc, Tcl_Obj *CONST1 * objv, CONST char * file, int line)); /* 448 */

+     Tcl_Obj * (*tcl_DbNewLongObj) _ANSI_ARGS_((long longValue, CONST char * file, int line)); /* 449 */

+     Tcl_Obj * (*tcl_DbNewObj) _ANSI_ARGS_((CONST char * file, int line)); /* 450 */

+     Tcl_Obj * (*tcl_DbNewStringObj) _ANSI_ARGS_((CONST1 char * bytes, int length, CONST char * file, int line)); /* 451 */

+     CONST char * (*tcl_PkgPresent) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact)); /* 452 */

+     CONST char * (*tcl_PkgPresentEx) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact, ClientData * clientDataPtr)); /* 453 */

+     int (*tcl_PkgProvide) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version)); /* 454 */

+     CONST char * (*tcl_PkgRequire) _ANSI_ARGS_((Tcl_Interp * interp, CONST char * name, CONST char * version, int exact)); /* 455 */

+     Tcl_Obj * (*tcl_NewByteArrayObj) _ANSI_ARGS_((CONST unsigned char* bytes, int length)); /* 456 */

+     void (*tcl_SetByteArrayObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST unsigned char * bytes, int length)); /* 457 */

+     void (*tcl_SetStringObj) _ANSI_ARGS_((Tcl_Obj* objPtr, CONST char* bytes, int length)); /* 458 */

+     Tcl_Obj * (*tcl_NewUnicodeObj) _ANSI_ARGS_((CONST Tcl_UniChar * unicode, int numChars)); /* 459 */

+     void (*tcl_SetUnicodeObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int numChars)); /* 460 */

+     void (*tcl_AppendUnicodeToObj) _ANSI_ARGS_((Tcl_Obj * objPtr, CONST Tcl_UniChar * unicode, int length)); /* 461 */

  } TclStubs;

  

  #ifdef __cplusplus

***************

*** 1866,1878 ****

   * Inline function declarations:

   */

  

! #ifndef Tcl_PkgProvideEx

! #define Tcl_PkgProvideEx \

! 	(tclStubsPtr->tcl_PkgProvideEx) /* 0 */

  #endif

! #ifndef Tcl_PkgRequireEx

! #define Tcl_PkgRequireEx \

! 	(tclStubsPtr->tcl_PkgRequireEx) /* 1 */

  #endif

  #ifndef Tcl_Panic

  #define Tcl_Panic \

--- 2000,2012 ----

   * Inline function declarations:

   */

  

! #ifndef Tcl_PkgProvideEx_NONCONST

! #define Tcl_PkgProvideEx_NONCONST \

! 	(tclStubsPtr->tcl_PkgProvideEx_NONCONST) /* 0 */

  #endif

! #ifndef Tcl_PkgRequireEx_NONCONST

! #define Tcl_PkgRequireEx_NONCONST \

! 	(tclStubsPtr->tcl_PkgRequireEx_NONCONST) /* 1 */

  #endif

  #ifndef Tcl_Panic

  #define Tcl_Panic \

***************

*** 1890,1906 ****

  #define Tcl_Realloc \

  	(tclStubsPtr->tcl_Realloc) /* 5 */

  #endif

! #ifndef Tcl_DbCkalloc

! #define Tcl_DbCkalloc \

! 	(tclStubsPtr->tcl_DbCkalloc) /* 6 */

  #endif

! #ifndef Tcl_DbCkfree

! #define Tcl_DbCkfree \

! 	(tclStubsPtr->tcl_DbCkfree) /* 7 */

  #endif

! #ifndef Tcl_DbCkrealloc

! #define Tcl_DbCkrealloc \

! 	(tclStubsPtr->tcl_DbCkrealloc) /* 8 */

  #endif

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

  #ifndef Tcl_CreateFileHandler

--- 2024,2040 ----

  #define Tcl_Realloc \

  	(tclStubsPtr->tcl_Realloc) /* 5 */

  #endif

! #ifndef Tcl_DbCkalloc_NONCONST

! #define Tcl_DbCkalloc_NONCONST \

! 	(tclStubsPtr->tcl_DbCkalloc_NONCONST) /* 6 */

  #endif

! #ifndef Tcl_DbCkfree_NONCONST

! #define Tcl_DbCkfree_NONCONST \

! 	(tclStubsPtr->tcl_DbCkfree_NONCONST) /* 7 */

  #endif

! #ifndef Tcl_DbCkrealloc_NONCONST

! #define Tcl_DbCkrealloc_NONCONST \

! 	(tclStubsPtr->tcl_DbCkrealloc_NONCONST) /* 8 */

  #endif

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

  #ifndef Tcl_CreateFileHandler

***************

*** 1934,1942 ****

  #define Tcl_AppendStringsToObj \

  	(tclStubsPtr->tcl_AppendStringsToObj) /* 15 */

  #endif

! #ifndef Tcl_AppendToObj

! #define Tcl_AppendToObj \

! 	(tclStubsPtr->tcl_AppendToObj) /* 16 */

  #endif

  #ifndef Tcl_ConcatObj

  #define Tcl_ConcatObj \

--- 2068,2076 ----

  #define Tcl_AppendStringsToObj \

  	(tclStubsPtr->tcl_AppendStringsToObj) /* 15 */

  #endif

! #ifndef Tcl_AppendToObj_NONCONST

! #define Tcl_AppendToObj_NONCONST \

! 	(tclStubsPtr->tcl_AppendToObj_NONCONST) /* 16 */

  #endif

  #ifndef Tcl_ConcatObj

  #define Tcl_ConcatObj \

***************

*** 1946,1990 ****

  #define Tcl_ConvertToType \

  	(tclStubsPtr->tcl_ConvertToType) /* 18 */

  #endif

! #ifndef Tcl_DbDecrRefCount

! #define Tcl_DbDecrRefCount \

! 	(tclStubsPtr->tcl_DbDecrRefCount) /* 19 */

  #endif

! #ifndef Tcl_DbIncrRefCount

! #define Tcl_DbIncrRefCount \

! 	(tclStubsPtr->tcl_DbIncrRefCount) /* 20 */

  #endif

! #ifndef Tcl_DbIsShared

! #define Tcl_DbIsShared \

! 	(tclStubsPtr->tcl_DbIsShared) /* 21 */

  #endif

! #ifndef Tcl_DbNewBooleanObj

! #define Tcl_DbNewBooleanObj \

! 	(tclStubsPtr->tcl_DbNewBooleanObj) /* 22 */

  #endif

! #ifndef Tcl_DbNewByteArrayObj

! #define Tcl_DbNewByteArrayObj \

! 	(tclStubsPtr->tcl_DbNewByteArrayObj) /* 23 */

  #endif

! #ifndef Tcl_DbNewDoubleObj

! #define Tcl_DbNewDoubleObj \

! 	(tclStubsPtr->tcl_DbNewDoubleObj) /* 24 */

  #endif

- #ifndef Tcl_DbNewListObj

- #define Tcl_DbNewListObj \

! 	(tclStubsPtr->tcl_DbNewListObj) /* 25 */

  #endif

! #ifndef Tcl_DbNewLongObj

! #define Tcl_DbNewLongObj \

! 	(tclStubsPtr->tcl_DbNewLongObj) /* 26 */

  #endif

! #ifndef Tcl_DbNewObj

! #define Tcl_DbNewObj \

! 	(tclStubsPtr->tcl_DbNewObj) /* 27 */

  #endif

! #ifndef Tcl_DbNewStringObj

! #define Tcl_DbNewStringObj \

! 	(tclStubsPtr->tcl_DbNewStringObj) /* 28 */

  #endif

  #ifndef Tcl_DuplicateObj

  #define Tcl_DuplicateObj \

--- 2080,2124 ----

  #define Tcl_ConvertToType \

  	(tclStubsPtr->tcl_ConvertToType) /* 18 */

  #endif

! #ifndef Tcl_DbDecrRefCount_NONCONST

! #define Tcl_DbDecrRefCount_NONCONST \

! 	(tclStubsPtr->tcl_DbDecrRefCount_NONCONST) /* 19 */

  #endif

! #ifndef Tcl_DbIncrRefCount_NONCONST

! #define Tcl_DbIncrRefCount_NONCONST \

! 	(tclStubsPtr->tcl_DbIncrRefCount_NONCONST) /* 20 */

  #endif

! #ifndef Tcl_DbIsShared_NONCONST

! #define Tcl_DbIsShared_NONCONST \

! 	(tclStubsPtr->tcl_DbIsShared_NONCONST) /* 21 */

  #endif

! #ifndef Tcl_DbNewBooleanObj_NONCONST

! #define Tcl_DbNewBooleanObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewBooleanObj_NONCONST) /* 22 */

  #endif

! #ifndef Tcl_DbNewByteArrayObj_NONCONST

! #define Tcl_DbNewByteArrayObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewByteArrayObj_NONCONST) /* 23 */

  #endif

! #ifndef Tcl_DbNewDoubleObj_NONCONST

! #define Tcl_DbNewDoubleObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewDoubleObj_NONCONST) /* 24 */

  #endif

! #ifndef Tcl_DbNewListObj_NONCONST

! #define Tcl_DbNewListObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewListObj_NONCONST) /* 25 */

  #endif

! #ifndef Tcl_DbNewLongObj_NONCONST

! #define Tcl_DbNewLongObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewLongObj_NONCONST) /* 26 */

  #endif

! #ifndef Tcl_DbNewObj_NONCONST

! #define Tcl_DbNewObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewObj_NONCONST) /* 27 */

  #endif

! #ifndef Tcl_DbNewStringObj_NONCONST

! #define Tcl_DbNewStringObj_NONCONST \

! 	(tclStubsPtr->tcl_DbNewStringObj_NONCONST) /* 28 */

  #endif

  #ifndef Tcl_DuplicateObj

  #define Tcl_DuplicateObj \

***************

*** 2070,2078 ****

  #define Tcl_NewBooleanObj \

  	(tclStubsPtr->tcl_NewBooleanObj) /* 49 */

  #endif

! #ifndef Tcl_NewByteArrayObj

! #define Tcl_NewByteArrayObj \

! 	(tclStubsPtr->tcl_NewByteArrayObj) /* 50 */

  #endif

  #ifndef Tcl_NewDoubleObj

  #define Tcl_NewDoubleObj \

--- 2204,2212 ----

  #define Tcl_NewBooleanObj \

  	(tclStubsPtr->tcl_NewBooleanObj) /* 49 */

  #endif

! #ifndef Tcl_NewByteArrayObj_NONCONST

! #define Tcl_NewByteArrayObj_NONCONST \

! 	(tclStubsPtr->tcl_NewByteArrayObj_NONCONST) /* 50 */

  #endif

  #ifndef Tcl_NewDoubleObj

  #define Tcl_NewDoubleObj \

***************

*** 2106,2114 ****

  #define Tcl_SetByteArrayLength \

  	(tclStubsPtr->tcl_SetByteArrayLength) /* 58 */

  #endif

! #ifndef Tcl_SetByteArrayObj

! #define Tcl_SetByteArrayObj \

! 	(tclStubsPtr->tcl_SetByteArrayObj) /* 59 */

  #endif

  #ifndef Tcl_SetDoubleObj

  #define Tcl_SetDoubleObj \

--- 2240,2248 ----

  #define Tcl_SetByteArrayLength \

  	(tclStubsPtr->tcl_SetByteArrayLength) /* 58 */

  #endif

! #ifndef Tcl_SetByteArrayObj_NONCONST

! #define Tcl_SetByteArrayObj_NONCONST \

! 	(tclStubsPtr->tcl_SetByteArrayObj_NONCONST) /* 59 */

  #endif

  #ifndef Tcl_SetDoubleObj

  #define Tcl_SetDoubleObj \

***************

*** 2130,2138 ****

  #define Tcl_SetObjLength \

  	(tclStubsPtr->tcl_SetObjLength) /* 64 */

  #endif

! #ifndef Tcl_SetStringObj

! #define Tcl_SetStringObj \

! 	(tclStubsPtr->tcl_SetStringObj) /* 65 */

  #endif

  #ifndef Tcl_AddErrorInfo

  #define Tcl_AddErrorInfo \

--- 2264,2272 ----

  #define Tcl_SetObjLength \

  	(tclStubsPtr->tcl_SetObjLength) /* 64 */

  #endif

! #ifndef Tcl_SetStringObj_NONCONST

! #define Tcl_SetStringObj_NONCONST \

! 	(tclStubsPtr->tcl_SetStringObj_NONCONST) /* 65 */

  #endif

  #ifndef Tcl_AddErrorInfo

  #define Tcl_AddErrorInfo \

***************

*** 2953,2965 ****

  #define Tcl_WrongNumArgs \

  	(tclStubsPtr->tcl_WrongNumArgs) /* 264 */

  #endif

! #ifndef Tcl_DumpActiveMemory

! #define Tcl_DumpActiveMemory \

! 	(tclStubsPtr->tcl_DumpActiveMemory) /* 265 */

  #endif

! #ifndef Tcl_ValidateAllMemory

! #define Tcl_ValidateAllMemory \

! 	(tclStubsPtr->tcl_ValidateAllMemory) /* 266 */

  #endif

  #ifndef Tcl_AppendResultVA

  #define Tcl_AppendResultVA \

--- 3087,3099 ----

  #define Tcl_WrongNumArgs \

  	(tclStubsPtr->tcl_WrongNumArgs) /* 264 */

  #endif

! #ifndef Tcl_DumpActiveMemory_NONCONST

! #define Tcl_DumpActiveMemory_NONCONST \

! 	(tclStubsPtr->tcl_DumpActiveMemory_NONCONST) /* 265 */

  #endif

! #ifndef Tcl_ValidateAllMemory_NONCONST

! #define Tcl_ValidateAllMemory_NONCONST \

! 	(tclStubsPtr->tcl_ValidateAllMemory_NONCONST) /* 266 */

  #endif

  #ifndef Tcl_AppendResultVA

  #define Tcl_AppendResultVA \

***************

*** 2977,2997 ****

  #define Tcl_ParseVar \

  	(tclStubsPtr->tcl_ParseVar) /* 270 */

  #endif

! #ifndef Tcl_PkgPresent

! #define Tcl_PkgPresent \

! 	(tclStubsPtr->tcl_PkgPresent) /* 271 */

  #endif

! #ifndef Tcl_PkgPresentEx

! #define Tcl_PkgPresentEx \

! 	(tclStubsPtr->tcl_PkgPresentEx) /* 272 */

  #endif

! #ifndef Tcl_PkgProvide

! #define Tcl_PkgProvide \

! 	(tclStubsPtr->tcl_PkgProvide) /* 273 */

  #endif

! #ifndef Tcl_PkgRequire

! #define Tcl_PkgRequire \

! 	(tclStubsPtr->tcl_PkgRequire) /* 274 */

  #endif

  #ifndef Tcl_SetErrorCodeVA

  #define Tcl_SetErrorCodeVA \

--- 3111,3131 ----

  #define Tcl_ParseVar \

  	(tclStubsPtr->tcl_ParseVar) /* 270 */

  #endif

! #ifndef Tcl_PkgPresent_NONCONST

! #define Tcl_PkgPresent_NONCONST \

! 	(tclStubsPtr->tcl_PkgPresent_NONCONST) /* 271 */

  #endif

! #ifndef Tcl_PkgPresentEx_NONCONST

! #define Tcl_PkgPresentEx_NONCONST \

! 	(tclStubsPtr->tcl_PkgPresentEx_NONCONST) /* 272 */

  #endif

! #ifndef Tcl_PkgProvide_NONCONST

! #define Tcl_PkgProvide_NONCONST \

! 	(tclStubsPtr->tcl_PkgProvide_NONCONST) /* 273 */

  #endif

! #ifndef Tcl_PkgRequire_NONCONST

! #define Tcl_PkgRequire_NONCONST \

! 	(tclStubsPtr->tcl_PkgRequire_NONCONST) /* 274 */

  #endif

  #ifndef Tcl_SetErrorCodeVA

  #define Tcl_SetErrorCodeVA \

***************

*** 3410,3422 ****

  #define Tcl_RegExpGetInfo \

  	(tclStubsPtr->tcl_RegExpGetInfo) /* 377 */

  #endif

! #ifndef Tcl_NewUnicodeObj

! #define Tcl_NewUnicodeObj \

! 	(tclStubsPtr->tcl_NewUnicodeObj) /* 378 */

  #endif

! #ifndef Tcl_SetUnicodeObj

! #define Tcl_SetUnicodeObj \

! 	(tclStubsPtr->tcl_SetUnicodeObj) /* 379 */

  #endif

  #ifndef Tcl_GetCharLength

  #define Tcl_GetCharLength \

--- 3544,3556 ----

  #define Tcl_RegExpGetInfo \

  	(tclStubsPtr->tcl_RegExpGetInfo) /* 377 */

  #endif

! #ifndef Tcl_NewUnicodeObj_NONCONST

! #define Tcl_NewUnicodeObj_NONCONST \

! 	(tclStubsPtr->tcl_NewUnicodeObj_NONCONST) /* 378 */

  #endif

! #ifndef Tcl_SetUnicodeObj_NONCONST

! #define Tcl_SetUnicodeObj_NONCONST \

! 	(tclStubsPtr->tcl_SetUnicodeObj_NONCONST) /* 379 */

  #endif

  #ifndef Tcl_GetCharLength

  #define Tcl_GetCharLength \

***************

*** 3434,3442 ****

  #define Tcl_GetRange \

  	(tclStubsPtr->tcl_GetRange) /* 383 */

  #endif

! #ifndef Tcl_AppendUnicodeToObj

! #define Tcl_AppendUnicodeToObj \

! 	(tclStubsPtr->tcl_AppendUnicodeToObj) /* 384 */

  #endif

  #ifndef Tcl_RegExpMatchObj

  #define Tcl_RegExpMatchObj \

--- 3568,3576 ----

  #define Tcl_GetRange \

  	(tclStubsPtr->tcl_GetRange) /* 383 */

  #endif

! #ifndef Tcl_AppendUnicodeToObj_NONCONST

! #define Tcl_AppendUnicodeToObj_NONCONST \

! 	(tclStubsPtr->tcl_AppendUnicodeToObj_NONCONST) /* 384 */

  #endif

  #ifndef Tcl_RegExpMatchObj

  #define Tcl_RegExpMatchObj \

***************

*** 3592,3598 ****

  #endif

  #ifndef Tcl_InitCustomHashTable

  #define Tcl_InitCustomHashTable \

! 	(tclStubsPtr->Tcl_InitCustomHashTable) /* 423 */

  #endif

  #ifndef Tcl_InitObjHashTable

  #define Tcl_InitObjHashTable \

--- 3726,3732 ----

  #endif

  #ifndef Tcl_InitCustomHashTable

  #define Tcl_InitCustomHashTable \

! 	(tclStubsPtr->tcl_InitCustomHashTable) /* 423 */

  #endif

  #ifndef Tcl_InitObjHashTable

  #define Tcl_InitObjHashTable \

***************

*** 3629,3634 ****

--- 3763,3881 ----

  #ifndef Tcl_AttemptSetObjLength

  #define Tcl_AttemptSetObjLength \

  	(tclStubsPtr->tcl_AttemptSetObjLength) /* 432 */

+ #endif

+ #ifndef Tcl_PkgProvideEx

+ #define Tcl_PkgProvideEx \

+ 	(tclStubsPtr->tcl_PkgProvideEx) /* 433 */

+ #endif

+ #ifndef Tcl_PkgRequireEx

+ #define Tcl_PkgRequireEx \

+ 	(tclStubsPtr->tcl_PkgRequireEx) /* 434 */

+ #endif

+ /* Slot 435 is reserved */

+ #ifndef Tcl_DbCkalloc

+ #define Tcl_DbCkalloc \

+ 	(tclStubsPtr->tcl_DbCkalloc) /* 436 */

+ #endif

+ #ifndef Tcl_DbCkfree

+ #define Tcl_DbCkfree \

+ 	(tclStubsPtr->tcl_DbCkfree) /* 437 */

+ #endif

+ #ifndef Tcl_DbCkrealloc

+ #define Tcl_DbCkrealloc \

+ 	(tclStubsPtr->tcl_DbCkrealloc) /* 438 */

+ #endif

+ #ifndef Tcl_AppendToObj

+ #define Tcl_AppendToObj \

+ 	(tclStubsPtr->tcl_AppendToObj) /* 439 */

+ #endif

+ #ifndef Tcl_DumpActiveMemory

+ #define Tcl_DumpActiveMemory \

+ 	(tclStubsPtr->tcl_DumpActiveMemory) /* 440 */

+ #endif

+ #ifndef Tcl_ValidateAllMemory

+ #define Tcl_ValidateAllMemory \

+ 	(tclStubsPtr->tcl_ValidateAllMemory) /* 441 */

+ #endif

+ #ifndef Tcl_DbDecrRefCount

+ #define Tcl_DbDecrRefCount \

+ 	(tclStubsPtr->tcl_DbDecrRefCount) /* 442 */

+ #endif

+ #ifndef Tcl_DbIncrRefCount

+ #define Tcl_DbIncrRefCount \

+ 	(tclStubsPtr->tcl_DbIncrRefCount) /* 443 */

+ #endif

+ #ifndef Tcl_DbIsShared

+ #define Tcl_DbIsShared \

+ 	(tclStubsPtr->tcl_DbIsShared) /* 444 */

+ #endif

+ #ifndef Tcl_DbNewBooleanObj

+ #define Tcl_DbNewBooleanObj \

+ 	(tclStubsPtr->tcl_DbNewBooleanObj) /* 445 */

+ #endif

+ #ifndef Tcl_DbNewByteArrayObj

+ #define Tcl_DbNewByteArrayObj \

+ 	(tclStubsPtr->tcl_DbNewByteArrayObj) /* 446 */

+ #endif

+ #ifndef Tcl_DbNewDoubleObj

+ #define Tcl_DbNewDoubleObj \

+ 	(tclStubsPtr->tcl_DbNewDoubleObj) /* 447 */

+ #endif

+ #ifndef Tcl_DbNewListObj

+ #define Tcl_DbNewListObj \

+ 	(tclStubsPtr->tcl_DbNewListObj) /* 448 */

+ #endif

+ #ifndef Tcl_DbNewLongObj

+ #define Tcl_DbNewLongObj \

+ 	(tclStubsPtr->tcl_DbNewLongObj) /* 449 */

+ #endif

+ #ifndef Tcl_DbNewObj

+ #define Tcl_DbNewObj \

+ 	(tclStubsPtr->tcl_DbNewObj) /* 450 */

+ #endif

+ #ifndef Tcl_DbNewStringObj

+ #define Tcl_DbNewStringObj \

+ 	(tclStubsPtr->tcl_DbNewStringObj) /* 451 */

+ #endif

+ #ifndef Tcl_PkgPresent

+ #define Tcl_PkgPresent \

+ 	(tclStubsPtr->tcl_PkgPresent) /* 452 */

+ #endif

+ #ifndef Tcl_PkgPresentEx

+ #define Tcl_PkgPresentEx \

+ 	(tclStubsPtr->tcl_PkgPresentEx) /* 453 */

+ #endif

+ #ifndef Tcl_PkgProvide

+ #define Tcl_PkgProvide \

+ 	(tclStubsPtr->tcl_PkgProvide) /* 454 */

+ #endif

+ #ifndef Tcl_PkgRequire

+ #define Tcl_PkgRequire \

+ 	(tclStubsPtr->tcl_PkgRequire) /* 455 */

+ #endif

+ #ifndef Tcl_NewByteArrayObj

+ #define Tcl_NewByteArrayObj \

+ 	(tclStubsPtr->tcl_NewByteArrayObj) /* 456 */

+ #endif

+ #ifndef Tcl_SetByteArrayObj

+ #define Tcl_SetByteArrayObj \

+ 	(tclStubsPtr->tcl_SetByteArrayObj) /* 457 */

+ #endif

+ #ifndef Tcl_SetStringObj

+ #define Tcl_SetStringObj \

+ 	(tclStubsPtr->tcl_SetStringObj) /* 458 */

+ #endif

+ #ifndef Tcl_NewUnicodeObj

+ #define Tcl_NewUnicodeObj \

+ 	(tclStubsPtr->tcl_NewUnicodeObj) /* 459 */

+ #endif

+ #ifndef Tcl_SetUnicodeObj

+ #define Tcl_SetUnicodeObj \

+ 	(tclStubsPtr->tcl_SetUnicodeObj) /* 460 */

+ #endif

+ #ifndef Tcl_AppendUnicodeToObj

+ #define Tcl_AppendUnicodeToObj \

+ 	(tclStubsPtr->tcl_AppendUnicodeToObj) /* 461 */

  #endif

  

  #endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */

diff -cr ../tcl-010312/generic/tclListObj.c ./generic/tclListObj.c

*** ../tcl-010312/generic/tclListObj.c Tue Aug 10 17:45:12 1999

--- ./generic/tclListObj.c Sun Feb 18 18:25:50 2001

***************

*** 147,153 ****

  Tcl_DbNewListObj(objc, objv, file, line)

      int objc;			/* Count of objects referenced by objv. */

      Tcl_Obj *CONST objv[];	/* An array of pointers to Tcl objects. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 147,153 ----

  Tcl_DbNewListObj(objc, objv, file, line)

      int objc;			/* Count of objects referenced by objv. */

      Tcl_Obj *CONST objv[];	/* An array of pointers to Tcl objects. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 186,192 ****

  Tcl_DbNewListObj(objc, objv, file, line)

      int objc;			/* Count of objects referenced by objv. */

      Tcl_Obj *CONST objv[];	/* An array of pointers to Tcl objects. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 186,192 ----

  Tcl_DbNewListObj(objc, objv, file, line)

      int objc;			/* Count of objects referenced by objv. */

      Tcl_Obj *CONST objv[];	/* An array of pointers to Tcl objects. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

diff -cr ../tcl-010312/generic/tclObj.c ./generic/tclObj.c

*** ../tcl-010312/generic/tclObj.c Thu Jan 18 14:09:56 2001

--- ./generic/tclObj.c Sun Feb 18 18:27:34 2001

***************

*** 491,497 ****

  

  Tcl_Obj *

  Tcl_DbNewObj(file, line)

!     register char *file;	/* The name of the source file calling this

  				 * procedure; used for debugging. */

      register int line;		/* Line number in the source file; used

  				 * for debugging. */

--- 491,497 ----

  

  Tcl_Obj *

  Tcl_DbNewObj(file, line)

!     register CONST char *file;	/* The name of the source file calling this

  				 * procedure; used for debugging. */

      register int line;		/* Line number in the source file; used

  				 * for debugging. */

***************

*** 521,527 ****

  

  Tcl_Obj *

  Tcl_DbNewObj(file, line)

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 521,527 ----

  

  Tcl_Obj *

  Tcl_DbNewObj(file, line)

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 894,900 ****

  Tcl_Obj *

  Tcl_DbNewBooleanObj(boolValue, file, line)

      register int boolValue;	/* Boolean used to initialize new object. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 894,900 ----

  Tcl_Obj *

  Tcl_DbNewBooleanObj(boolValue, file, line)

      register int boolValue;	/* Boolean used to initialize new object. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 914,920 ****

  Tcl_Obj *

  Tcl_DbNewBooleanObj(boolValue, file, line)

      register int boolValue;	/* Boolean used to initialize new object. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 914,920 ----

  Tcl_Obj *

  Tcl_DbNewBooleanObj(boolValue, file, line)

      register int boolValue;	/* Boolean used to initialize new object. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 1252,1258 ****

  Tcl_Obj *

  Tcl_DbNewDoubleObj(dblValue, file, line)

      register double dblValue;	/* Double used to initialize the object. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 1252,1258 ----

  Tcl_Obj *

  Tcl_DbNewDoubleObj(dblValue, file, line)

      register double dblValue;	/* Double used to initialize the object. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 1272,1278 ****

  Tcl_Obj *

  Tcl_DbNewDoubleObj(dblValue, file, line)

      register double dblValue;	/* Double used to initialize the object. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 1272,1278 ----

  Tcl_Obj *

  Tcl_DbNewDoubleObj(dblValue, file, line)

      register double dblValue;	/* Double used to initialize the object. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 1884,1890 ****

  Tcl_DbNewLongObj(longValue, file, line)

      register long longValue;	/* Long integer used to initialize the

  				 * new object. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 1884,1890 ----

  Tcl_DbNewLongObj(longValue, file, line)

      register long longValue;	/* Long integer used to initialize the

  				 * new object. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 1905,1911 ****

  Tcl_DbNewLongObj(longValue, file, line)

      register long longValue;	/* Long integer used to initialize the

  				 * new object. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 1905,1911 ----

  Tcl_DbNewLongObj(longValue, file, line)

      register long longValue;	/* Long integer used to initialize the

  				 * new object. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 2018,2024 ****

  Tcl_DbIncrRefCount(objPtr, file, line)

      register Tcl_Obj *objPtr;	/* The object we are registering a

  				 * reference to. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 2018,2024 ----

  Tcl_DbIncrRefCount(objPtr, file, line)

      register Tcl_Obj *objPtr;	/* The object we are registering a

  				 * reference to. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 2058,2064 ****

  Tcl_DbDecrRefCount(objPtr, file, line)

      register Tcl_Obj *objPtr;	/* The object we are releasing a reference

  				 * to. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 2058,2064 ----

  Tcl_DbDecrRefCount(objPtr, file, line)

      register Tcl_Obj *objPtr;	/* The object we are releasing a reference

  				 * to. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 2099,2105 ****

  int

  Tcl_DbIsShared(objPtr, file, line)

      register Tcl_Obj *objPtr;	/* The object to test for being shared. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 2099,2105 ----

  int

  Tcl_DbIsShared(objPtr, file, line)

      register Tcl_Obj *objPtr;	/* The object to test for being shared. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

diff -cr ../tcl-010312/generic/tclPkg.c ./generic/tclPkg.c

*** ../tcl-010312/generic/tclPkg.c Mon Sep 20 23:20:42 1999

--- ./generic/tclPkg.c Sun Feb 18 23:19:06 2001

***************

*** 51,61 ****

   */

  

  static int		CheckVersion _ANSI_ARGS_((Tcl_Interp *interp,

! 			    char *string));

! static int		ComparePkgVersions _ANSI_ARGS_((char *v1, char *v2,

  			    int *satPtr));

  static Package *	FindPackage _ANSI_ARGS_((Tcl_Interp *interp,

! 			    char *name));

  

  /*

   *----------------------------------------------------------------------

--- 51,62 ----

   */

  

  static int		CheckVersion _ANSI_ARGS_((Tcl_Interp *interp,

! 			    CONST char *string));

! static int		ComparePkgVersions _ANSI_ARGS_((CONST char *v1, 

!                             CONST char *v2,

  			    int *satPtr));

  static Package *	FindPackage _ANSI_ARGS_((Tcl_Interp *interp,

! 			    CONST char *name));

  

  /*

   *----------------------------------------------------------------------

***************

*** 84,91 ****

  Tcl_PkgProvide(interp, name, version)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     char *name;			/* Name of package. */

!     char *version;		/* Version string for package. */

  {

      return Tcl_PkgProvideEx(interp, name, version, (ClientData) NULL);

  }

--- 85,92 ----

  Tcl_PkgProvide(interp, name, version)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     CONST char *name;		/* Name of package. */

!     CONST char *version;	/* Version string for package. */

  {

      return Tcl_PkgProvideEx(interp, name, version, (ClientData) NULL);

  }

***************

*** 94,101 ****

  Tcl_PkgProvideEx(interp, name, version, clientData)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     char *name;			/* Name of package. */

!     char *version;		/* Version string for package. */

      ClientData clientData;      /* clientdata for this package (normally

                                   * used for C callback function table) */

  {

--- 95,102 ----

  Tcl_PkgProvideEx(interp, name, version, clientData)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     CONST char *name;		/* Name of package. */

!     CONST char *version;	/* Version string for package. */

      ClientData clientData;      /* clientdata for this package (normally

                                   * used for C callback function table) */

  {

***************

*** 148,159 ****

   *----------------------------------------------------------------------

   */

  

! char *

  Tcl_PkgRequire(interp, name, version, exact)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     char *name;			/* Name of desired package. */

!     char *version;		/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

--- 149,160 ----

   *----------------------------------------------------------------------

   */

  

! CONST char *

  Tcl_PkgRequire(interp, name, version, exact)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     CONST char *name;		/* Name of desired package. */

!     CONST char *version;	/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

***************

*** 163,174 ****

      return Tcl_PkgRequireEx(interp, name, version, exact, (ClientData *) NULL);

  }

  

! char *

  Tcl_PkgRequireEx(interp, name, version, exact, clientDataPtr)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     char *name;			/* Name of desired package. */

!     char *version;		/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

--- 164,175 ----

      return Tcl_PkgRequireEx(interp, name, version, exact, (ClientData *) NULL);

  }

  

! CONST char *

  Tcl_PkgRequireEx(interp, name, version, exact, clientDataPtr)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     CONST char *name;		/* Name of desired package. */

!     CONST char *version;	/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

***************

*** 350,361 ****

   *----------------------------------------------------------------------

   */

  

! char *

  Tcl_PkgPresent(interp, name, version, exact)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     char *name;			/* Name of desired package. */

!     char *version;		/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

--- 351,362 ----

   *----------------------------------------------------------------------

   */

  

! CONST char *

  Tcl_PkgPresent(interp, name, version, exact)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     CONST char *name;		/* Name of desired package. */

!     CONST char *version;	/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

***************

*** 365,376 ****

      return Tcl_PkgPresentEx(interp, name, version, exact, (ClientData *) NULL);

  }

  

! char *

  Tcl_PkgPresentEx(interp, name, version, exact, clientDataPtr)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     char *name;			/* Name of desired package. */

!     char *version;		/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

--- 366,377 ----

      return Tcl_PkgPresentEx(interp, name, version, exact, (ClientData *) NULL);

  }

  

! CONST char *

  Tcl_PkgPresentEx(interp, name, version, exact, clientDataPtr)

      Tcl_Interp *interp;		/* Interpreter in which package is now

  				 * available. */

!     CONST char *name;		/* Name of desired package. */

!     CONST char *version;	/* Version string for desired version;

  				 * NULL means use the latest version

  				 * available. */

      int exact;			/* Non-zero means that only the particular

***************

*** 485,491 ****

      Tcl_HashEntry *hPtr;

      Tcl_HashSearch search;

      Tcl_HashTable *tablePtr;

!     char *version, *argv2, *argv3, *argv4;

  

      if (objc < 2) {

          Tcl_WrongNumArgs(interp, 1, objv, "option ?arg arg ...?");

--- 486,493 ----

      Tcl_HashEntry *hPtr;

      Tcl_HashSearch search;

      Tcl_HashTable *tablePtr;

!     CONST char *version;

!     char *argv2, *argv3, *argv4;

  

      if (objc < 2) {

          Tcl_WrongNumArgs(interp, 1, objv, "option ?arg arg ...?");

***************

*** 619,625 ****

  	    if (version == NULL) {

  		return TCL_ERROR;

  	    }

! 	    Tcl_SetResult(interp, version, TCL_VOLATILE);

  	    break;

  	}

  	case PKG_PROVIDE: {

--- 621,627 ----

  	    if (version == NULL) {

  		return TCL_ERROR;

  	    }

! 	    Tcl_SetObjResult( interp, Tcl_NewStringObj( version, -1 ) );

  	    break;

  	}

  	case PKG_PROVIDE: {

***************

*** 674,680 ****

  	    if (version == NULL) {

  		return TCL_ERROR;

  	    }

! 	    Tcl_SetResult(interp, version, TCL_VOLATILE);

  	    break;

  	}

  	case PKG_UNKNOWN: {

--- 676,682 ----

  	    if (version == NULL) {

  		return TCL_ERROR;

  	    }

! 	    Tcl_SetObjResult( interp, Tcl_NewStringObj( version, -1 ) );

  	    break;

  	}

  	case PKG_UNKNOWN: {

***************

*** 776,782 ****

  static Package *

  FindPackage(interp, name)

      Tcl_Interp *interp;		/* Interpreter to use for package lookup. */

!     char *name;			/* Name of package to fine. */

  {

      Interp *iPtr = (Interp *) interp;

      Tcl_HashEntry *hPtr;

--- 778,784 ----

  static Package *

  FindPackage(interp, name)

      Tcl_Interp *interp;		/* Interpreter to use for package lookup. */

!     CONST char *name;		/* Name of package to fine. */

  {

      Interp *iPtr = (Interp *) interp;

      Tcl_HashEntry *hPtr;

***************

*** 866,876 ****

  static int

  CheckVersion(interp, string)

      Tcl_Interp *interp;		/* Used for error reporting. */

!     char *string;		/* Supposedly a version number, which is

  				 * groups of decimal digits separated

  				 * by dots. */

  {

!     char *p = string;

      char prevChar;

      

      if (!isdigit(UCHAR(*p))) {	/* INTL: digit */

--- 868,878 ----

  static int

  CheckVersion(interp, string)

      Tcl_Interp *interp;		/* Used for error reporting. */

!     CONST char *string;		/* Supposedly a version number, which is

  				 * groups of decimal digits separated

  				 * by dots. */

  {

!     CONST char *p = string;

      char prevChar;

      

      if (!isdigit(UCHAR(*p))) {	/* INTL: digit */

***************

*** 915,921 ****

  

  static int

  ComparePkgVersions(v1, v2, satPtr)

!     char *v1, *v2;		/* Versions strings, of form 2.1.3 (any

  				 * number of version numbers). */

      int *satPtr;		/* If non-null, the word pointed to is

  				 * filled in with a 0/1 value.  1 means

--- 917,924 ----

  

  static int

  ComparePkgVersions(v1, v2, satPtr)

!     CONST char *v1;

!     CONST char *v2;		/* Versions strings, of form 2.1.3 (any

  				 * number of version numbers). */

      int *satPtr;		/* If non-null, the word pointed to is

  				 * filled in with a 0/1 value.  1 means

diff -cr ../tcl-010312/generic/tclStringObj.c ./generic/tclStringObj.c

*** ../tcl-010312/generic/tclStringObj.c Thu Sep 14 13:42:32 2000

--- ./generic/tclStringObj.c Mon Feb 19 10:15:28 2001

***************

*** 42,56 ****

   */

  

  static void		AppendUnicodeToUnicodeRep _ANSI_ARGS_((

!     			    Tcl_Obj *objPtr, Tcl_UniChar *unicode,

  			    int appendNumChars));

  static void		AppendUnicodeToUtfRep _ANSI_ARGS_((

!     			    Tcl_Obj *objPtr, Tcl_UniChar *unicode,

  			    int numChars));

  static void		AppendUtfToUnicodeRep _ANSI_ARGS_((Tcl_Obj *objPtr,

!     			    char *bytes, int numBytes));

  static void		AppendUtfToUtfRep _ANSI_ARGS_((Tcl_Obj *objPtr,

!     			    char *bytes, int numBytes));

  

  static void		FillUnicodeRep _ANSI_ARGS_((Tcl_Obj *objPtr));

  

--- 42,56 ----

   */

  

  static void		AppendUnicodeToUnicodeRep _ANSI_ARGS_((

!     			    Tcl_Obj *objPtr, CONST Tcl_UniChar *unicode,

  			    int appendNumChars));

  static void		AppendUnicodeToUtfRep _ANSI_ARGS_((

!     			    Tcl_Obj *objPtr, CONST Tcl_UniChar *unicode,

  			    int numChars));

  static void		AppendUtfToUnicodeRep _ANSI_ARGS_((Tcl_Obj *objPtr,

!     			    CONST char *bytes, int numBytes));

  static void		AppendUtfToUtfRep _ANSI_ARGS_((Tcl_Obj *objPtr,

!     			    CONST char *bytes, int numBytes));

  

  static void		FillUnicodeRep _ANSI_ARGS_((Tcl_Obj *objPtr));

  

***************

*** 250,256 ****

  				 * when initializing the new object. If 

  				 * negative, use bytes up to the first

  				 * NULL byte. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 250,256 ----

  				 * when initializing the new object. If 

  				 * negative, use bytes up to the first

  				 * NULL byte. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 275,281 ****

  				 * when initializing the new object. If 

  				 * negative, use bytes up to the first

  				 * NULL byte. */

!     char *file;			/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

--- 275,281 ----

  				 * when initializing the new object. If 

  				 * negative, use bytes up to the first

  				 * NULL byte. */

!     CONST char *file;		/* The name of the source file calling this

  				 * procedure; used for debugging. */

      int line;			/* Line number in the source file; used

  				 * for debugging. */

***************

*** 306,312 ****

  

  Tcl_Obj *

  Tcl_NewUnicodeObj(unicode, numChars)

!     Tcl_UniChar *unicode;	/* The unicode string used to initialize

  				 * the new object. */

      int numChars;		/* Number of characters in the unicode

  				 * string. */

--- 306,312 ----

  

  Tcl_Obj *

  Tcl_NewUnicodeObj(unicode, numChars)

!     CONST Tcl_UniChar *unicode;	/* The unicode string used to initialize

  				 * the new object. */

      int numChars;		/* Number of characters in the unicode

  				 * string. */

***************

*** 617,623 ****

  void

  Tcl_SetStringObj(objPtr, bytes, length)

      register Tcl_Obj *objPtr;	/* Object whose internal rep to init. */

!     char *bytes;		/* Points to the first of the length bytes

  				 * used to initialize the object. */

      register int length;	/* The number of bytes to copy from "bytes"

  				 * when initializing the object. If 

--- 617,623 ----

  void

  Tcl_SetStringObj(objPtr, bytes, length)

      register Tcl_Obj *objPtr;	/* Object whose internal rep to init. */

!     CONST char *bytes;		/* Points to the first of the length bytes

  				 * used to initialize the object. */

      register int length;	/* The number of bytes to copy from "bytes"

  				 * when initializing the object. If 

***************

*** 827,833 ****

  void

  Tcl_SetUnicodeObj(objPtr, unicode, numChars)

      Tcl_Obj *objPtr;		/* The object to set the string of. */

!     Tcl_UniChar *unicode;	/* The unicode string used to initialize

  				 * the object. */

      int numChars;		/* Number of characters in the unicode

  				 * string. */

--- 827,833 ----

  void

  Tcl_SetUnicodeObj(objPtr, unicode, numChars)

      Tcl_Obj *objPtr;		/* The object to set the string of. */

!     CONST Tcl_UniChar *unicode;	/* The unicode string used to initialize

  				 * the object. */

      int numChars;		/* Number of characters in the unicode

  				 * string. */

***************

*** 889,895 ****

  void

  Tcl_AppendToObj(objPtr, bytes, length)

      register Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     char *bytes;		/* Points to the bytes to append to the

  				 * object. */

      register int length;	/* The number of bytes to append from

  				 * "bytes". If < 0, then append all bytes

--- 889,895 ----

  void

  Tcl_AppendToObj(objPtr, bytes, length)

      register Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     CONST char *bytes;		/* Points to the bytes to append to the

  				 * object. */

      register int length;	/* The number of bytes to append from

  				 * "bytes". If < 0, then append all bytes

***************

*** 946,952 ****

  void

  Tcl_AppendUnicodeToObj(objPtr, unicode, length)

      register Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     Tcl_UniChar *unicode;	/* The unicode string to append to the

  			         * object. */

      int length;			/* Number of chars in "unicode". */

  {

--- 946,952 ----

  void

  Tcl_AppendUnicodeToObj(objPtr, unicode, length)

      register Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     CONST Tcl_UniChar *unicode;	/* The unicode string to append to the

  			         * object. */

      int length;			/* Number of chars in "unicode". */

  {

***************

*** 1084,1092 ****

  

  static void

  AppendUnicodeToUnicodeRep(objPtr, unicode, appendNumChars)

!     Tcl_Obj *objPtr;	      /* Points to the object to append to. */

!     Tcl_UniChar *unicode;     /* String to append. */

!     int appendNumChars;	      /* Number of chars of "unicode" to append. */

  {

      String *stringPtr, *tmpString;

      size_t numChars;

--- 1084,1092 ----

  

  static void

  AppendUnicodeToUnicodeRep(objPtr, unicode, appendNumChars)

!     Tcl_Obj *objPtr;	        /* Points to the object to append to. */

!     CONST Tcl_UniChar *unicode; /* String to append. */

!     int appendNumChars;	        /* Number of chars of "unicode" to append. */

  {

      String *stringPtr, *tmpString;

      size_t numChars;

***************

*** 1160,1168 ****

  

  static void

  AppendUnicodeToUtfRep(objPtr, unicode, numChars)

!     Tcl_Obj *objPtr;	      /* Points to the object to append to. */

!     Tcl_UniChar *unicode;     /* String to convert to UTF. */

!     int numChars;	      /* Number of chars of "unicode" to convert. */

  {

      Tcl_DString dsPtr;

      char *bytes;

--- 1160,1168 ----

  

  static void

  AppendUnicodeToUtfRep(objPtr, unicode, numChars)

!     Tcl_Obj *objPtr;	        /* Points to the object to append to. */

!     CONST Tcl_UniChar *unicode; /* String to convert to UTF. */

!     int numChars;	        /* Number of chars of "unicode" to convert. */

  {

      Tcl_DString dsPtr;

      char *bytes;

***************

*** 1204,1210 ****

  static void

  AppendUtfToUnicodeRep(objPtr, bytes, numBytes)

      Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     char *bytes;		/* String to convert to Unicode. */

      int numBytes;	/* Number of bytes of "bytes" to convert. */

  {

      Tcl_DString dsPtr;

--- 1204,1210 ----

  static void

  AppendUtfToUnicodeRep(objPtr, bytes, numBytes)

      Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     CONST char *bytes;	/* String to convert to Unicode. */

      int numBytes;	/* Number of bytes of "bytes" to convert. */

  {

      Tcl_DString dsPtr;

***************

*** 1245,1251 ****

  static void

  AppendUtfToUtfRep(objPtr, bytes, numBytes)

      Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     char *bytes;	/* String to append. */

      int numBytes;	/* Number of bytes of "bytes" to append. */

  {

      String *stringPtr;

--- 1245,1251 ----

  static void

  AppendUtfToUtfRep(objPtr, bytes, numBytes)

      Tcl_Obj *objPtr;	/* Points to the object to append to. */

!     CONST char *bytes;	/* String to append. */

      int numBytes;	/* Number of bytes of "bytes" to append. */

  {

      String *stringPtr;

Only in ./generic: tclStringObj.c.orig

diff -cr ../tcl-010312/generic/tclStubInit.c ./generic/tclStubInit.c

*** ../tcl-010312/generic/tclStubInit.c Thu Jan 18 14:09:56 2001

--- ./generic/tclStubInit.c Mon Feb 19 10:25:02 2001

***************

*** 43,48 ****

--- 43,64 ----

   */

  

  /* !BEGIN!: Do not edit below this line. */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

  

  TclIntStubs tclIntStubs = {

      TCL_STUB_MAGIC,

***************

*** 243,248 ****

--- 259,270 ----

      TclChannelTransform, /* 161 */

      TclChannelEventScriptInvoker, /* 162 */

  };

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #ifdef MAC_TCL

+ #endif /* MAC_TCL */

  

  TclIntPlatStubs tclIntPlatStubs = {

      TCL_STUB_MAGIC,

***************

*** 317,322 ****

--- 339,348 ----

      TclMacChmod, /* 25 */

  #endif /* MAC_TCL */

  };

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #ifdef MAC_TCL

+ #endif /* MAC_TCL */

  

  TclPlatStubs tclPlatStubs = {

      TCL_STUB_MAGIC,

***************

*** 337,342 ****

--- 363,619 ----

      strcasecmp, /* 8 */

  #endif /* MAC_TCL */

  };

+ int

+ Tcl_PkgProvideEx_NONCONST( interp, name, version, clientData )

+     Tcl_Interp* interp;

+     char* name;

+     char* version;

+     ClientData clientData;

+ {

+     return ( int ) Tcl_PkgProvideEx( interp, name, version, clientData );

+ }

+ char *

+ Tcl_PkgRequireEx_NONCONST( interp, name, version, exact, clientDataPtr )

+     Tcl_Interp * interp;

+     char * name;

+     char * version;

+     int exact;

+     ClientData * clientDataPtr;

+ {

+     return ( char * ) Tcl_PkgRequireEx( interp, name, version, exact, clientDataPtr );

+ }

+ char *

+ Tcl_DbCkalloc_NONCONST( size, file, line )

+     unsigned int size;

+     char * file;

+     int line;

+ {

+     return ( char * ) Tcl_DbCkalloc( size, file, line );

+ }

+ int

+ Tcl_DbCkfree_NONCONST( ptr, file, line )

+     char * ptr;

+     char * file;

+     int line;

+ {

+     return ( int ) Tcl_DbCkfree( ptr, file, line );

+ }

+ char *

+ Tcl_DbCkrealloc_NONCONST( ptr, size, file, line )

+     char * ptr;

+     unsigned int size;

+     char * file;

+     int line;

+ {

+     return ( char * ) Tcl_DbCkrealloc( ptr, size, file, line );

+ }

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ void

+ Tcl_AppendToObj_NONCONST( objPtr, bytes, length )

+     Tcl_Obj* objPtr;

+     char* bytes;

+     int length;

+ {

+     Tcl_AppendToObj( objPtr, bytes, length );

+ }

+ void

+ Tcl_DbDecrRefCount_NONCONST( objPtr, file, line )

+     Tcl_Obj * objPtr;

+     char * file;

+     int line;

+ {

+     Tcl_DbDecrRefCount( objPtr, file, line );

+ }

+ void

+ Tcl_DbIncrRefCount_NONCONST( objPtr, file, line )

+     Tcl_Obj * objPtr;

+     char * file;

+     int line;

+ {

+     Tcl_DbIncrRefCount( objPtr, file, line );

+ }

+ int

+ Tcl_DbIsShared_NONCONST( objPtr, file, line )

+     Tcl_Obj * objPtr;

+     char * file;

+     int line;

+ {

+     return ( int ) Tcl_DbIsShared( objPtr, file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewBooleanObj_NONCONST( boolValue, file, line )

+     int boolValue;

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewBooleanObj( boolValue, file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewByteArrayObj_NONCONST( bytes, length, file, line )

+     unsigned char * bytes;

+     int length;

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewByteArrayObj( bytes, length, file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewDoubleObj_NONCONST( doubleValue, file, line )

+     double doubleValue;

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewDoubleObj( doubleValue, file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewListObj_NONCONST( objc, objv, file, line )

+     int objc;

+     Tcl_Obj *CONST1 * objv;

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewListObj( objc, objv, file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewLongObj_NONCONST( longValue, file, line )

+     long longValue;

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewLongObj( longValue, file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewObj_NONCONST( file, line )

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewObj( file, line );

+ }

+ Tcl_Obj *

+ Tcl_DbNewStringObj_NONCONST( bytes, length, file, line )

+     CONST1 char * bytes;

+     int length;

+     char * file;

+     int line;

+ {

+     return ( Tcl_Obj * ) Tcl_DbNewStringObj( bytes, length, file, line );

+ }

+ Tcl_Obj *

+ Tcl_NewByteArrayObj_NONCONST( bytes, length )

+     unsigned char* bytes;

+     int length;

+ {

+     return ( Tcl_Obj * ) Tcl_NewByteArrayObj( bytes, length );

+ }

+ void

+ Tcl_SetByteArrayObj_NONCONST( objPtr, bytes, length )

+     Tcl_Obj * objPtr;

+     unsigned char * bytes;

+     int length;

+ {

+     Tcl_SetByteArrayObj( objPtr, bytes, length );

+ }

+ void

+ Tcl_SetStringObj_NONCONST( objPtr, bytes, length )

+     Tcl_Obj* objPtr;

+     char* bytes;

+     int length;

+ {

+     Tcl_SetStringObj( objPtr, bytes, length );

+ }

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ int

+ Tcl_DumpActiveMemory_NONCONST( fileName )

+     char * fileName;

+ {

+     return ( int ) Tcl_DumpActiveMemory( fileName );

+ }

+ void

+ Tcl_ValidateAllMemory_NONCONST( file, line )

+     char * file;

+     int line;

+ {

+     Tcl_ValidateAllMemory( file, line );

+ }

+ char *

+ Tcl_PkgPresent_NONCONST( interp, name, version, exact )

+     Tcl_Interp * interp;

+     char * name;

+     char * version;

+     int exact;

+ {

+     return ( char * ) Tcl_PkgPresent( interp, name, version, exact );

+ }

+ char *

+ Tcl_PkgPresentEx_NONCONST( interp, name, version, exact, clientDataPtr )

+     Tcl_Interp * interp;

+     char * name;

+     char * version;

+     int exact;

+     ClientData * clientDataPtr;

+ {

+     return ( char * ) Tcl_PkgPresentEx( interp, name, version, exact, clientDataPtr );

+ }

+ int

+ Tcl_PkgProvide_NONCONST( interp, name, version )

+     Tcl_Interp * interp;

+     char * name;

+     char * version;

+ {

+     return ( int ) Tcl_PkgProvide( interp, name, version );

+ }

+ char *

+ Tcl_PkgRequire_NONCONST( interp, name, version, exact )

+     Tcl_Interp * interp;

+     char * name;

+     char * version;

+     int exact;

+ {

+     return ( char * ) Tcl_PkgRequire( interp, name, version, exact );

+ }

+ #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

+ #endif /* UNIX */

+ #ifdef __WIN32__

+ #endif /* __WIN32__ */

+ Tcl_Obj *

+ Tcl_NewUnicodeObj_NONCONST( unicode, numChars )

+     Tcl_UniChar * unicode;

+     int numChars;

+ {

+     return ( Tcl_Obj * ) Tcl_NewUnicodeObj( unicode, numChars );

+ }

+ void

+ Tcl_SetUnicodeObj_NONCONST( objPtr, unicode, numChars )

+     Tcl_Obj * objPtr;

+     Tcl_UniChar * unicode;

+     int numChars;

+ {

+     Tcl_SetUnicodeObj( objPtr, unicode, numChars );

+ }

+ void

+ Tcl_AppendUnicodeToObj_NONCONST( objPtr, unicode, length )

+     Tcl_Obj * objPtr;

+     Tcl_UniChar * unicode;

+     int length;

+ {

+     Tcl_AppendUnicodeToObj( objPtr, unicode, length );

+ }

  

  static TclStubHooks tclStubHooks = {

      &tclPlatStubs,

***************

*** 347,361 ****

  TclStubs tclStubs = {

      TCL_STUB_MAGIC,

      &tclStubHooks,

!     Tcl_PkgProvideEx, /* 0 */

!     Tcl_PkgRequireEx, /* 1 */

      Tcl_Panic, /* 2 */

      Tcl_Alloc, /* 3 */

      Tcl_Free, /* 4 */

      Tcl_Realloc, /* 5 */

!     Tcl_DbCkalloc, /* 6 */

!     Tcl_DbCkfree, /* 7 */

!     Tcl_DbCkrealloc, /* 8 */

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

      Tcl_CreateFileHandler, /* 9 */

  #endif /* UNIX */

--- 624,638 ----

  TclStubs tclStubs = {

      TCL_STUB_MAGIC,

      &tclStubHooks,

!     Tcl_PkgProvideEx_NONCONST, /* 0 */

!     Tcl_PkgRequireEx_NONCONST, /* 1 */

      Tcl_Panic, /* 2 */

      Tcl_Alloc, /* 3 */

      Tcl_Free, /* 4 */

      Tcl_Realloc, /* 5 */

!     Tcl_DbCkalloc_NONCONST, /* 6 */

!     Tcl_DbCkfree_NONCONST, /* 7 */

!     Tcl_DbCkrealloc_NONCONST, /* 8 */

  #if !defined(__WIN32__) && !defined(MAC_TCL) /* UNIX */

      Tcl_CreateFileHandler, /* 9 */

  #endif /* UNIX */

***************

*** 379,397 ****

      Tcl_WaitForEvent, /* 13 */

      Tcl_AppendAllObjTypes, /* 14 */

      Tcl_AppendStringsToObj, /* 15 */

!     Tcl_AppendToObj, /* 16 */

      Tcl_ConcatObj, /* 17 */

      Tcl_ConvertToType, /* 18 */

!     Tcl_DbDecrRefCount, /* 19 */

!     Tcl_DbIncrRefCount, /* 20 */

!     Tcl_DbIsShared, /* 21 */

!     Tcl_DbNewBooleanObj, /* 22 */

!     Tcl_DbNewByteArrayObj, /* 23 */

!     Tcl_DbNewDoubleObj, /* 24 */

!     Tcl_DbNewListObj, /* 25 */

!     Tcl_DbNewLongObj, /* 26 */

!     Tcl_DbNewObj, /* 27 */

!     Tcl_DbNewStringObj, /* 28 */

      Tcl_DuplicateObj, /* 29 */

      TclFreeObj, /* 30 */

      Tcl_GetBoolean, /* 31 */

--- 656,674 ----

      Tcl_WaitForEvent, /* 13 */

      Tcl_AppendAllObjTypes, /* 14 */

      Tcl_AppendStringsToObj, /* 15 */

!     Tcl_AppendToObj_NONCONST, /* 16 */

      Tcl_ConcatObj, /* 17 */

      Tcl_ConvertToType, /* 18 */

!     Tcl_DbDecrRefCount_NONCONST, /* 19 */

!     Tcl_DbIncrRefCount_NONCONST, /* 20 */

!     Tcl_DbIsShared_NONCONST, /* 21 */

!     Tcl_DbNewBooleanObj_NONCONST, /* 22 */

!     Tcl_DbNewByteArrayObj_NONCONST, /* 23 */

!     Tcl_DbNewDoubleObj_NONCONST, /* 24 */

!     Tcl_DbNewListObj_NONCONST, /* 25 */

!     Tcl_DbNewLongObj_NONCONST, /* 26 */

!     Tcl_DbNewObj_NONCONST, /* 27 */

!     Tcl_DbNewStringObj_NONCONST, /* 28 */

      Tcl_DuplicateObj, /* 29 */

      TclFreeObj, /* 30 */

      Tcl_GetBoolean, /* 31 */

***************

*** 413,419 ****

      Tcl_ListObjLength, /* 47 */

      Tcl_ListObjReplace, /* 48 */

      Tcl_NewBooleanObj, /* 49 */

!     Tcl_NewByteArrayObj, /* 50 */

      Tcl_NewDoubleObj, /* 51 */

      Tcl_NewIntObj, /* 52 */

      Tcl_NewListObj, /* 53 */

--- 690,696 ----

      Tcl_ListObjLength, /* 47 */

      Tcl_ListObjReplace, /* 48 */

      Tcl_NewBooleanObj, /* 49 */

!     Tcl_NewByteArrayObj_NONCONST, /* 50 */

      Tcl_NewDoubleObj, /* 51 */

      Tcl_NewIntObj, /* 52 */

      Tcl_NewListObj, /* 53 */

***************

*** 422,434 ****

      Tcl_NewStringObj, /* 56 */

      Tcl_SetBooleanObj, /* 57 */

      Tcl_SetByteArrayLength, /* 58 */

!     Tcl_SetByteArrayObj, /* 59 */

      Tcl_SetDoubleObj, /* 60 */

      Tcl_SetIntObj, /* 61 */

      Tcl_SetListObj, /* 62 */

      Tcl_SetLongObj, /* 63 */

      Tcl_SetObjLength, /* 64 */

!     Tcl_SetStringObj, /* 65 */

      Tcl_AddErrorInfo, /* 66 */

      Tcl_AddObjErrorInfo, /* 67 */

      Tcl_AllowExceptions, /* 68 */

--- 699,711 ----

      Tcl_NewStringObj, /* 56 */

      Tcl_SetBooleanObj, /* 57 */

      Tcl_SetByteArrayLength, /* 58 */

!     Tcl_SetByteArrayObj_NONCONST, /* 59 */

      Tcl_SetDoubleObj, /* 60 */

      Tcl_SetIntObj, /* 61 */

      Tcl_SetListObj, /* 62 */

      Tcl_SetLongObj, /* 63 */

      Tcl_SetObjLength, /* 64 */

!     Tcl_SetStringObj_NONCONST, /* 65 */

      Tcl_AddErrorInfo, /* 66 */

      Tcl_AddObjErrorInfo, /* 67 */

      Tcl_AllowExceptions, /* 68 */

***************

*** 660,675 ****

      Tcl_VarTraceInfo2, /* 262 */

      Tcl_Write, /* 263 */

      Tcl_WrongNumArgs, /* 264 */

!     Tcl_DumpActiveMemory, /* 265 */

!     Tcl_ValidateAllMemory, /* 266 */

      Tcl_AppendResultVA, /* 267 */

      Tcl_AppendStringsToObjVA, /* 268 */

      Tcl_HashStats, /* 269 */

      Tcl_ParseVar, /* 270 */

!     Tcl_PkgPresent, /* 271 */

!     Tcl_PkgPresentEx, /* 272 */

!     Tcl_PkgProvide, /* 273 */

!     Tcl_PkgRequire, /* 274 */

      Tcl_SetErrorCodeVA, /* 275 */

      Tcl_VarEvalVA, /* 276 */

      Tcl_WaitPid, /* 277 */

--- 937,952 ----

      Tcl_VarTraceInfo2, /* 262 */

      Tcl_Write, /* 263 */

      Tcl_WrongNumArgs, /* 264 */

!     Tcl_DumpActiveMemory_NONCONST, /* 265 */

!     Tcl_ValidateAllMemory_NONCONST, /* 266 */

      Tcl_AppendResultVA, /* 267 */

      Tcl_AppendStringsToObjVA, /* 268 */

      Tcl_HashStats, /* 269 */

      Tcl_ParseVar, /* 270 */

!     Tcl_PkgPresent_NONCONST, /* 271 */

!     Tcl_PkgPresentEx_NONCONST, /* 272 */

!     Tcl_PkgProvide_NONCONST, /* 273 */

!     Tcl_PkgRequire_NONCONST, /* 274 */

      Tcl_SetErrorCodeVA, /* 275 */

      Tcl_VarEvalVA, /* 276 */

      Tcl_WaitPid, /* 277 */

***************

*** 781,793 ****

      Tcl_UniCharIsPunct, /* 375 */

      Tcl_RegExpExecObj, /* 376 */

      Tcl_RegExpGetInfo, /* 377 */

!     Tcl_NewUnicodeObj, /* 378 */

!     Tcl_SetUnicodeObj, /* 379 */

      Tcl_GetCharLength, /* 380 */

      Tcl_GetUniChar, /* 381 */

      Tcl_GetUnicode, /* 382 */

      Tcl_GetRange, /* 383 */

!     Tcl_AppendUnicodeToObj, /* 384 */

      Tcl_RegExpMatchObj, /* 385 */

      Tcl_SetNotifier, /* 386 */

      Tcl_GetAllocMutex, /* 387 */

--- 1058,1070 ----

      Tcl_UniCharIsPunct, /* 375 */

      Tcl_RegExpExecObj, /* 376 */

      Tcl_RegExpGetInfo, /* 377 */

!     Tcl_NewUnicodeObj_NONCONST, /* 378 */

!     Tcl_SetUnicodeObj_NONCONST, /* 379 */

      Tcl_GetCharLength, /* 380 */

      Tcl_GetUniChar, /* 381 */

      Tcl_GetUnicode, /* 382 */

      Tcl_GetRange, /* 383 */

!     Tcl_AppendUnicodeToObj_NONCONST, /* 384 */

      Tcl_RegExpMatchObj, /* 385 */

      Tcl_SetNotifier, /* 386 */

      Tcl_GetAllocMutex, /* 387 */

***************

*** 836,841 ****

--- 1113,1147 ----

      Tcl_AttemptRealloc, /* 430 */

      Tcl_AttemptDbCkrealloc, /* 431 */

      Tcl_AttemptSetObjLength, /* 432 */

+     Tcl_PkgProvideEx, /* 433 */

+     Tcl_PkgRequireEx, /* 434 */

+     NULL, /* 435 */

+     Tcl_DbCkalloc, /* 436 */

+     Tcl_DbCkfree, /* 437 */

+     Tcl_DbCkrealloc, /* 438 */

+     Tcl_AppendToObj, /* 439 */

+     Tcl_DumpActiveMemory, /* 440 */

+     Tcl_ValidateAllMemory, /* 441 */

+     Tcl_DbDecrRefCount, /* 442 */

+     Tcl_DbIncrRefCount, /* 443 */

+     Tcl_DbIsShared, /* 444 */

+     Tcl_DbNewBooleanObj, /* 445 */

+     Tcl_DbNewByteArrayObj, /* 446 */

+     Tcl_DbNewDoubleObj, /* 447 */

+     Tcl_DbNewListObj, /* 448 */

+     Tcl_DbNewLongObj, /* 449 */

+     Tcl_DbNewObj, /* 450 */

+     Tcl_DbNewStringObj, /* 451 */

+     Tcl_PkgPresent, /* 452 */

+     Tcl_PkgPresentEx, /* 453 */

+     Tcl_PkgProvide, /* 454 */

+     Tcl_PkgRequire, /* 455 */

+     Tcl_NewByteArrayObj, /* 456 */

+     Tcl_SetByteArrayObj, /* 457 */

+     Tcl_SetStringObj, /* 458 */

+     Tcl_NewUnicodeObj, /* 459 */

+     Tcl_SetUnicodeObj, /* 460 */

+     Tcl_AppendUnicodeToObj, /* 461 */

  };

  

  /* !END!: Do not edit above this line. */

diff -cr ../tcl-010312/generic/tclStubLib.c ./generic/tclStubLib.c

*** ../tcl-010312/generic/tclStubLib.c Mon May 24 20:00:28 1999

--- ./generic/tclStubLib.c Sun Feb 18 23:10:46 2001

***************

*** 80,92 ****

  #undef Tcl_InitStubs

  #endif

  

! char *

  Tcl_InitStubs (interp, version, exact)

      Tcl_Interp *interp;

!     char *version;

      int exact;

  {

!     char *actualVersion;

      TclStubs *tmp;

      

      if (!tclStubsPtr) {

--- 80,92 ----

  #undef Tcl_InitStubs

  #endif

  

! CONST char *

  Tcl_InitStubs (interp, version, exact)

      Tcl_Interp *interp;

!     CONST char *version;

      int exact;

  {

!     CONST char *actualVersion;

      TclStubs *tmp;

      

      if (!tclStubsPtr) {

diff -cr ../tcl-010312/tools/genStubs.tcl ./tools/genStubs.tcl

*** ../tcl-010312/tools/genStubs.tcl Wed Jun  9 23:29:02 1999

--- ./tools/genStubs.tcl Mon Feb 19 05:59:06 2001

***************

*** 117,122 ****

--- 117,125 ----

  #	This function is used in the declarations file to declare a new

  #	interface entry.

  #

+ # Usage:

+ #	declare index ?-nonconst index? {platform...} {decl}

+ #

  # Arguments:

  #	index		The index number of the interface.

  #	platform	The platform the interface belongs to.  Should be one

***************

*** 126,140 ****

  #

  # Results:

  #	None.

  

  proc genStubs::declare {args} {

      variable stubs

      variable curName

  

!     if {[llength $args] != 3} {

  	puts stderr "wrong # args: declare $args"

      }

!     lassign $args index platformList decl

  

      # Check for duplicate declarations, then add the declaration and

      # bump the lastNum counter if necessary.

--- 129,157 ----

  #

  # Results:

  #	None.

+ #

+ # To declare that the non-CONST version of the interface accepts

+ # a constant parameter, use CONST1 instead of CONST in its

+ # specification.

  

  proc genStubs::declare {args} {

      variable stubs

      variable curName

  

!     if { [llength $args] < 3 } {

! 	puts stderr "wrong \# args: declare $args"

!     }

!     set index [lindex $args 0]

!     if { [lindex $args 1] == "-nonconst" } {

! 	set nonConstIndex [lindex $args 2]

! 	set rest [lrange $args 3 end]

!     } else {

! 	set rest [lrange $args 1 end]

!     }

!     if { [llength $rest] != 2 } {

  	puts stderr "wrong # args: declare $args"

      }

!     lassign $rest platformList decl

  

      # Check for duplicate declarations, then add the declaration and

      # bump the lastNum counter if necessary.

***************

*** 154,159 ****

--- 171,183 ----

  		    || ($index > $stubs($curName,$platform,lastNum))} {

  		set stubs($curName,$platform,lastNum) $index

  	    }

+ 	    if { [info exists nonConstIndex] } {

+ 		set stubs($curName,$platform,$nonConstIndex) \

+ 		    [nonConstDecl $decl]

+ 		if { $nonConstIndex > $stubs($curName,$platform,lastNum) } {

+ 		    set stubs($curName,$platform,$lastNum) $nonConstIndex

+ 		}

+ 	    }

  	}

      }

      return

***************

*** 307,312 ****

--- 331,364 ----

      return [list $rtype $fname $args]

  }

  

+ # genStubs::nonConstDecl --

+ #

+ #	Make the 'non-constant' legacy version of a declaration

+ #

+ # Arguments:

+ #	decl -- Three element list comprising the return type

+ #		of a function, the name of the function, and

+ #		a list of pairs comprising parameter type and

+ #		parameter name.

+ #

+ # Results:

+ #	Returns the legacy declaration, with CONST qualifiers

+ #	removed from the return type all parameters

+ 

+ proc genStubs::nonConstDecl { decl } {

+ 

+     foreach { rType name params } $decl break

+     regsub -all {\mCONST[[:space:]]+} $rType {} rType

+     append name _NONCONST

+     foreach pair $params {

+ 	foreach { paramType paramName } $pair break

+ 	regsub -all {\mCONST[[:space:]]+} $paramType {} paramType

+ 	lappend newParams [list $paramType $paramName]

+     }

+     return [list $rType $name $newParams]

+ 

+ }

+ 

  # genStubs::parseArg --

  #

  #	This function parses a function argument into a type and name.

***************

*** 561,566 ****

--- 613,664 ----

      return $text

  }

  

+ # genStubs::makeNonConst

+ #

+ #	Generate the non-constant wrapper for a function

+ #

+ # Arguments:

+ #	name    The interface name

+ #       decl    The function declaration

+ #       index   The slot index for this function

+ #

+ # Results:

+ #	Returns a C definition for the non-constant wrapper, or

+ #	the empty string if no wrapper is needed.

+ 

+ proc genStubs::makeNonConst { name decl index } {

+ 

+     set text {}

+ 

+     lassign $decl rtype fname args

+     if { [regexp {(.*)_NONCONST$} $fname -> basename] } {

+ 	set sep ""

+ 	foreach arg $args {

+ 	    foreach { argType argName } $arg break

+ 	    append paramList $sep $argType " " $argName

+ 	    append argList $sep $argName

+ 	    append argDecls "    " $argType " " $argName ";\n"

+ 	    set sep ", "

+ 	}

+ 	# declaration is already in fooDecls.h, don't repeat it here.

+ 	#append text $rtype " " $fname " _ANSI_ARGS_(( " \

+ 	#    $paramList " ));" \n

+ 	append text $rtype "\n" $fname "( " $argList " )\n"

+ 	foreach arg $args {

+ 	    foreach { argType argName } $arg break

+ 	    append text "    " $argType " " $argName ";\n"

+ 	}

+ 	append text "{\n    "

+ 	if {[string compare $rtype "void"]} {

+ 	    append text "return ( " $rtype " ) "

+ 	}

+ 	append text $basename "( " $argList " );\n" \

+ 	    "}\n"

+     }

+ 

+     return $text

+ }

+ 

  # genStubs::forAllStubs --

  #

  #	This function iterates over all of the platforms and invokes

***************

*** 774,779 ****

--- 872,879 ----

  

      set capName [string toupper [string index $name 0]]

      append capName [string range $name 1 end]

+ 

+     forAllStubs $name makeNonConst 0 text {}

  

      if {[info exists hooks($name)]} {

   	append text "\nstatic ${capName}StubHooks ${name}StubHooks = \{\n"