*** compat/dirent2.h	14 Sep 1998 18:39:44 -0000	1.2
--- compat/dirent2.h	13 Dec 2003 22:49:39 -0000
***************
*** 52,59 ****
   * Procedures defined for reading directories:
   */
  
! extern void		closedir _ANSI_ARGS_((DIR *dirp));
! extern DIR *		opendir _ANSI_ARGS_((char *name));
! extern struct dirent *	readdir _ANSI_ARGS_((DIR *dirp));
  
  #endif /* _DIRENT */
--- 52,59 ----
   * Procedures defined for reading directories:
   */
  
! TCL_EXTRNC void			closedir _ANSI_ARGS_((DIR *dirp));
! TCL_EXTRNC DIR *		opendir _ANSI_ARGS_((char *name));
! TCL_EXTRNC struct dirent *	readdir _ANSI_ARGS_((DIR *dirp));
  
  #endif /* _DIRENT */

*** compat/dlfcn.h	14 Sep 1998 18:39:44 -0000	1.2
--- compat/dlfcn.h	13 Dec 2003 22:49:41 -0000
***************
*** 33,42 ****
  #include <tcl.h>
  #endif
  
- #ifdef __cplusplus
- extern "C" {
- #endif
- 
  /*
   * Mode flags for the dlopen routine.
   */
--- 33,38 ----
***************
*** 53,65 ****
  	void (*fini) _ANSI_ARGS_((void));
  };
  
! VOID *dlopen _ANSI_ARGS_((const char *path, int mode));
! VOID *dlsym _ANSI_ARGS_((void *handle, const char *symbol));
! char *dlerror _ANSI_ARGS_((void));
! int dlclose _ANSI_ARGS_((void *handle));
! 
! #ifdef __cplusplus
! }
! #endif
  
  #endif /* __dlfcn_h__ */
--- 49,57 ----
  	void (*fini) _ANSI_ARGS_((void));
  };
  
! TCL_EXTRNC VOID *dlopen _ANSI_ARGS_((const char *path, int mode));
! TCL_EXTRNC VOID *dlsym _ANSI_ARGS_((void *handle, const char *symbol));
! TCL_EXTRNC char *dlerror _ANSI_ARGS_((void));
! TCL_EXTRNC int dlclose _ANSI_ARGS_((void *handle));
  
  #endif /* __dlfcn_h__ */

*** compat/stdlib.h	16 Apr 1999 00:46:30 -0000	1.3
--- compat/stdlib.h	13 Dec 2003 22:49:43 -0000
***************
*** 22,45 ****
  
  #include <tcl.h>
  
! extern void		abort _ANSI_ARGS_((void));
! extern double		atof _ANSI_ARGS_((CONST char *string));
! extern int		atoi _ANSI_ARGS_((CONST char *string));
! extern long		atol _ANSI_ARGS_((CONST char *string));
! extern char *		calloc _ANSI_ARGS_((unsigned int numElements,
  			    unsigned int size));
! extern void		exit _ANSI_ARGS_((int status));
! extern int		free _ANSI_ARGS_((char *blockPtr));
! extern char *		getenv _ANSI_ARGS_((CONST char *name));
! extern char *		malloc _ANSI_ARGS_((unsigned int numBytes));
! extern void		qsort _ANSI_ARGS_((VOID *base, int n, int size,
  			    int (*compar)(CONST VOID *element1, CONST VOID
  			    *element2)));
! extern char *		realloc _ANSI_ARGS_((char *ptr, unsigned int numBytes));
! extern double		strtod _ANSI_ARGS_((CONST char *string, char **endPtr));
! extern long		strtol _ANSI_ARGS_((CONST char *string, char **endPtr,
  			    int base));
! extern unsigned long	strtoul _ANSI_ARGS_((CONST char *string,
  			    char **endPtr, int base));
  
  #endif /* _STDLIB */
--- 22,45 ----
  
  #include <tcl.h>
  
! TCL_EXTRNC void		abort _ANSI_ARGS_((void));
! TCL_EXTRNC double	atof _ANSI_ARGS_((CONST char *string));
! TCL_EXTRNC int		atoi _ANSI_ARGS_((CONST char *string));
! TCL_EXTRNC long		atol _ANSI_ARGS_((CONST char *string));
! TCL_EXTRNC char *	calloc _ANSI_ARGS_((unsigned int numElements,
  			    unsigned int size));
! TCL_EXTRNC void		exit _ANSI_ARGS_((int status));
! TCL_EXTRNC int		free _ANSI_ARGS_((char *blockPtr));
! TCL_EXTRNC char *	getenv _ANSI_ARGS_((CONST char *name));
! TCL_EXTRNC char *	malloc _ANSI_ARGS_((unsigned int numBytes));
! TCL_EXTRNC void		qsort _ANSI_ARGS_((VOID *base, int n, int size,
  			    int (*compar)(CONST VOID *element1, CONST VOID
  			    *element2)));
! TCL_EXTRNC char *	realloc _ANSI_ARGS_((char *ptr, unsigned int numBytes));
! TCL_EXTRNC double	strtod _ANSI_ARGS_((CONST char *string, char **endPtr));
! TCL_EXTRNC long		strtol _ANSI_ARGS_((CONST char *string, char **endPtr,
  			    int base));
! TCL_EXTRNC unsigned long strtoul _ANSI_ARGS_((CONST char *string,
  			    char **endPtr, int base));
  
  #endif /* _STDLIB */

*** compat/string.h	18 Jul 2000 18:16:17 -0000	1.4
--- compat/string.h	13 Dec 2003 22:49:44 -0000
***************
*** 28,71 ****
  #include <sys/types.h>
  #endif
  
! extern char *		memchr _ANSI_ARGS_((CONST VOID *s, int c, size_t n));
! extern int		memcmp _ANSI_ARGS_((CONST VOID *s1, CONST VOID *s2,
  			    size_t n));
! extern char *		memcpy _ANSI_ARGS_((VOID *t, CONST VOID *f, size_t n));
  #ifdef NO_MEMMOVE
  #define memmove(d, s, n) bcopy ((s), (d), (n))
  #else
! extern char *		memmove _ANSI_ARGS_((VOID *t, CONST VOID *f,
  			    size_t n));
  #endif
! extern char *		memset _ANSI_ARGS_((VOID *s, int c, size_t n));
  
! extern int		strcasecmp _ANSI_ARGS_((CONST char *s1,
  			    CONST char *s2));
! extern char *		strcat _ANSI_ARGS_((char *dst, CONST char *src));
! extern char *		strchr _ANSI_ARGS_((CONST char *string, int c));
! extern int		strcmp _ANSI_ARGS_((CONST char *s1, CONST char *s2));
! extern char *		strcpy _ANSI_ARGS_((char *dst, CONST char *src));
! extern size_t		strcspn _ANSI_ARGS_((CONST char *string,
  			    CONST char *chars));
! extern char *		strdup _ANSI_ARGS_((CONST char *string));
! extern char *		strerror _ANSI_ARGS_((int error));
! extern size_t		strlen _ANSI_ARGS_((CONST char *string));
! extern int		strncasecmp _ANSI_ARGS_((CONST char *s1,
  			    CONST char *s2, size_t n));
! extern char *		strncat _ANSI_ARGS_((char *dst, CONST char *src,
  			    size_t numChars));
! extern int		strncmp _ANSI_ARGS_((CONST char *s1, CONST char *s2,
  			    size_t nChars));
! extern char *		strncpy _ANSI_ARGS_((char *dst, CONST char *src,
  			    size_t numChars));
! extern char *		strpbrk _ANSI_ARGS_((CONST char *string,
  			    CONST char *chars));
! extern char *		strrchr _ANSI_ARGS_((CONST char *string, int c));
! extern size_t		strspn _ANSI_ARGS_((CONST char *string,
  			    CONST char *chars));
! extern char *		strstr _ANSI_ARGS_((CONST char *string,
  			    CONST char *substring));
! extern char *		strtok _ANSI_ARGS_((char *s, CONST char *delim));
  
  #endif /* _STRING */
--- 28,71 ----
  #include <sys/types.h>
  #endif
  
! TCL_EXTRNC char *	memchr _ANSI_ARGS_((CONST VOID *s, int c, size_t n));
! TCL_EXTRNC int		memcmp _ANSI_ARGS_((CONST VOID *s1, CONST VOID *s2,
  			    size_t n));
! TCL_EXTRNC char *	memcpy _ANSI_ARGS_((VOID *t, CONST VOID *f, size_t n));
  #ifdef NO_MEMMOVE
  #define memmove(d, s, n) bcopy ((s), (d), (n))
  #else
! TCL_EXTRNC char *	memmove _ANSI_ARGS_((VOID *t, CONST VOID *f,
  			    size_t n));
  #endif
! TCL_EXTRNC char *	memset _ANSI_ARGS_((VOID *s, int c, size_t n));
  
! TCL_EXTRNC int		strcasecmp _ANSI_ARGS_((CONST char *s1,
  			    CONST char *s2));
! TCL_EXTRNC char *	strcat _ANSI_ARGS_((char *dst, CONST char *src));
! TCL_EXTRNC char *	strchr _ANSI_ARGS_((CONST char *string, int c));
! TCL_EXTRNC int		strcmp _ANSI_ARGS_((CONST char *s1, CONST char *s2));
! TCL_EXTRNC char *	strcpy _ANSI_ARGS_((char *dst, CONST char *src));
! TCL_EXTRNC size_t	strcspn _ANSI_ARGS_((CONST char *string,
  			    CONST char *chars));
! TCL_EXTRNC char *	strdup _ANSI_ARGS_((CONST char *string));
! TCL_EXTRNC char *	strerror _ANSI_ARGS_((int error));
! TCL_EXTRNC size_t	strlen _ANSI_ARGS_((CONST char *string));
! TCL_EXTRNC int		strncasecmp _ANSI_ARGS_((CONST char *s1,
  			    CONST char *s2, size_t n));
! TCL_EXTRNC char *	strncat _ANSI_ARGS_((char *dst, CONST char *src,
  			    size_t numChars));
! TCL_EXTRNC int		strncmp _ANSI_ARGS_((CONST char *s1, CONST char *s2,
  			    size_t nChars));
! TCL_EXTRNC char *	strncpy _ANSI_ARGS_((char *dst, CONST char *src,
  			    size_t numChars));
! TCL_EXTRNC char *	strpbrk _ANSI_ARGS_((CONST char *string,
  			    CONST char *chars));
! TCL_EXTRNC char *	strrchr _ANSI_ARGS_((CONST char *string, int c));
! TCL_EXTRNC size_t	strspn _ANSI_ARGS_((CONST char *string,
  			    CONST char *chars));
! TCL_EXTRNC char *	strstr _ANSI_ARGS_((CONST char *string,
  			    CONST char *substring));
! TCL_EXTRNC char *	strtok _ANSI_ARGS_((char *s, CONST char *delim));
  
  #endif /* _STRING */

*** compat/tclErrno.h	7 Jun 2002 08:50:22 -0000	1.3
--- compat/tclErrno.h	13 Dec 2003 22:49:46 -0000
***************
*** 14,20 ****
   * RCS: @(#) $Id: tclErrno.h,v 1.3 2002/06/07 08:50:22 dkf Exp $
   */
  
! extern int errno;		/* global error number */
  
  #define	EPERM		1	/* Operation not permitted */
  #define	ENOENT		2	/* No such file or directory */
--- 14,27 ----
   * RCS: @(#) $Id: tclErrno.h,v 1.3 2002/06/07 08:50:22 dkf Exp $
   */
  
! #ifndef _TCLERRNO
! #define _TCLERRNO
! 
! #ifdef __cplusplus
!     extern "C" int errno;	/* global error number */
! #else
!     extern int errno;		/* global error number */
! #endif
  
  #define	EPERM		1	/* Operation not permitted */
  #define	ENOENT		2	/* No such file or directory */
***************
*** 97,99 ****
--- 104,108 ----
  #define	ENOLCK		77	/* No locks available */
  #define	ENOSYS		78	/* Function not implemented */
  #define	EOVERFLOW	79	/* Value too large to be stored in data type */
+ 
+ #endif  /* #ifndef _TCLERRNO */

*** compat/unistd.h	14 Sep 1998 18:39:45 -0000	1.2
--- compat/unistd.h	13 Dec 2003 22:49:48 -0000
***************
*** 32,83 ****
   * ifndef _POSIX_SOURCE section.
   */
  
! extern void _exit _ANSI_ARGS_((int status));
! extern int access _ANSI_ARGS_((CONST char *path, int mode));
! extern int chdir _ANSI_ARGS_((CONST char *path));
! extern int chown _ANSI_ARGS_((CONST char *path, uid_t owner, gid_t group));
! extern int close _ANSI_ARGS_((int fd));
! extern int dup _ANSI_ARGS_((int oldfd));
! extern int dup2 _ANSI_ARGS_((int oldfd, int newfd));
! extern int execl _ANSI_ARGS_((CONST char *path, ...));
! extern int execle _ANSI_ARGS_((CONST char *path, ...));
! extern int execlp _ANSI_ARGS_((CONST char *file, ...));
! extern int execv _ANSI_ARGS_((CONST char *path, char **argv));
! extern int execve _ANSI_ARGS_((CONST char *path, char **argv, char **envp));
! extern int execvp _ANSI_ARGS_((CONST char *file, char **argv));
! extern pid_t fork _ANSI_ARGS_((void));
! extern char *getcwd _ANSI_ARGS_((char *buf, size_t size));
! extern gid_t getegid _ANSI_ARGS_((void));
! extern uid_t geteuid _ANSI_ARGS_((void));
! extern gid_t getgid _ANSI_ARGS_((void));
! extern int getgroups _ANSI_ARGS_((int bufSize, int *buffer));
! extern pid_t getpid _ANSI_ARGS_((void));
! extern uid_t getuid _ANSI_ARGS_((void));
! extern int isatty _ANSI_ARGS_((int fd));
! extern long lseek _ANSI_ARGS_((int fd, long offset, int whence));
! extern int pipe _ANSI_ARGS_((int *fildes));
! extern int read _ANSI_ARGS_((int fd, char *buf, size_t size));
! extern int setgid _ANSI_ARGS_((gid_t group));
! extern int setuid _ANSI_ARGS_((uid_t user));
! extern unsigned sleep _ANSI_ARGS_ ((unsigned seconds));
! extern char *ttyname _ANSI_ARGS_((int fd));
! extern int unlink _ANSI_ARGS_((CONST char *path));
! extern int write _ANSI_ARGS_((int fd, CONST char *buf, size_t size));
  
  #ifndef	_POSIX_SOURCE
! extern char *crypt _ANSI_ARGS_((CONST char *, CONST char *));
! extern int fchown _ANSI_ARGS_((int fd, uid_t owner, gid_t group));
! extern int flock _ANSI_ARGS_((int fd, int operation));
! extern int ftruncate _ANSI_ARGS_((int fd, unsigned long length));
! extern int ioctl _ANSI_ARGS_((int fd, int request, ...));
! extern int readlink _ANSI_ARGS_((CONST char *path, char *buf, int bufsize));
! extern int setegid _ANSI_ARGS_((gid_t group));
! extern int seteuid _ANSI_ARGS_((uid_t user));
! extern int setreuid _ANSI_ARGS_((int ruid, int euid));
! extern int symlink _ANSI_ARGS_((CONST char *, CONST char *));
! extern int ttyslot _ANSI_ARGS_((void));
! extern int truncate _ANSI_ARGS_((CONST char *path, unsigned long length));
! extern int vfork _ANSI_ARGS_((void));
  #endif /* _POSIX_SOURCE */
  
  #endif /* _UNISTD */
--- 32,83 ----
   * ifndef _POSIX_SOURCE section.
   */
  
! TCL_EXTRNC void _exit _ANSI_ARGS_((int status));
! TCL_EXTRNC int access _ANSI_ARGS_((CONST char *path, int mode));
! TCL_EXTRNC int chdir _ANSI_ARGS_((CONST char *path));
! TCL_EXTRNC int chown _ANSI_ARGS_((CONST char *path, uid_t owner, gid_t group));
! TCL_EXTRNC int close _ANSI_ARGS_((int fd));
! TCL_EXTRNC int dup _ANSI_ARGS_((int oldfd));
! TCL_EXTRNC int dup2 _ANSI_ARGS_((int oldfd, int newfd));
! TCL_EXTRNC int execl _ANSI_ARGS_((CONST char *path, ...));
! TCL_EXTRNC int execle _ANSI_ARGS_((CONST char *path, ...));
! TCL_EXTRNC int execlp _ANSI_ARGS_((CONST char *file, ...));
! TCL_EXTRNC int execv _ANSI_ARGS_((CONST char *path, char **argv));
! TCL_EXTRNC int execve _ANSI_ARGS_((CONST char *path, char **argv, char **envp));
! TCL_EXTRNC int execvp _ANSI_ARGS_((CONST char *file, char **argv));
! TCL_EXTRNC pid_t fork _ANSI_ARGS_((void));
! TCL_EXTRNC char *getcwd _ANSI_ARGS_((char *buf, size_t size));
! TCL_EXTRNC gid_t getegid _ANSI_ARGS_((void));
! TCL_EXTRNC uid_t geteuid _ANSI_ARGS_((void));
! TCL_EXTRNC gid_t getgid _ANSI_ARGS_((void));
! TCL_EXTRNC int getgroups _ANSI_ARGS_((int bufSize, int *buffer));
! TCL_EXTRNC pid_t getpid _ANSI_ARGS_((void));
! TCL_EXTRNC uid_t getuid _ANSI_ARGS_((void));
! TCL_EXTRNC int isatty _ANSI_ARGS_((int fd));
! TCL_EXTRNC long lseek _ANSI_ARGS_((int fd, long offset, int whence));
! TCL_EXTRNC int pipe _ANSI_ARGS_((int *fildes));
! TCL_EXTRNC int read _ANSI_ARGS_((int fd, char *buf, size_t size));
! TCL_EXTRNC int setgid _ANSI_ARGS_((gid_t group));
! TCL_EXTRNC int setuid _ANSI_ARGS_((uid_t user));
! TCL_EXTRNC unsigned sleep _ANSI_ARGS_ ((unsigned seconds));
! TCL_EXTRNC char *ttyname _ANSI_ARGS_((int fd));
! TCL_EXTRNC int unlink _ANSI_ARGS_((CONST char *path));
! TCL_EXTRNC int write _ANSI_ARGS_((int fd, CONST char *buf, size_t size));
  
  #ifndef	_POSIX_SOURCE
! TCL_EXTRNC char *crypt _ANSI_ARGS_((CONST char *, CONST char *));
! TCL_EXTRNC int fchown _ANSI_ARGS_((int fd, uid_t owner, gid_t group));
! TCL_EXTRNC int flock _ANSI_ARGS_((int fd, int operation));
! TCL_EXTRNC int ftruncate _ANSI_ARGS_((int fd, unsigned long length));
! TCL_EXTRNC int ioctl _ANSI_ARGS_((int fd, int request, ...));
! TCL_EXTRNC int readlink _ANSI_ARGS_((CONST char *path, char *buf, int bufsize));
! TCL_EXTRNC int setegid _ANSI_ARGS_((gid_t group));
! TCL_EXTRNC int seteuid _ANSI_ARGS_((uid_t user));
! TCL_EXTRNC int setreuid _ANSI_ARGS_((int ruid, int euid));
! TCL_EXTRNC int symlink _ANSI_ARGS_((CONST char *, CONST char *));
! TCL_EXTRNC int ttyslot _ANSI_ARGS_((void));
! TCL_EXTRNC int truncate _ANSI_ARGS_((CONST char *path, unsigned long length));
! TCL_EXTRNC int vfork _ANSI_ARGS_((void));
  #endif /* _POSIX_SOURCE */
  
  #endif /* _UNISTD */

*** generic/tcl.h	14 Nov 2003 23:21:02 -0000	1.168
--- generic/tcl.h	13 Dec 2003 22:49:52 -0000
***************
*** 20,33 ****
  #define _TCL
  
  /*
-  * For C++ compilers, use extern "C"
-  */
- 
- #ifdef __cplusplus
- extern "C" {
- #endif
-     
- /*
   * The following defines are used to indicate the various release levels.
   */
  
--- 20,25 ----
***************
*** 70,76 ****
   */
  
  #ifndef __WIN32__
! #   if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
  #	define __WIN32__
  #	ifndef WIN32
  #	    define WIN32
--- 62,69 ----
   */
  
  #ifndef __WIN32__
! #   if defined(_WIN32) || defined(WIN32) || defined(__MINGW32__) || \
! 	    defined(__BORLANDC__) || (defined(__WATCOMC__) && defined(__WINDOWS_386__))
  #	define __WIN32__
  #	ifndef WIN32
  #	    define WIN32
***************
*** 186,212 ****
  #endif
  
  /*
-  * Macros used to declare a function to be exported by a DLL.
-  * Used by Windows, maps to no-op declarations on non-Windows systems.
-  * The default build on windows is for a DLL, which causes the DLLIMPORT
-  * and DLLEXPORT macros to be nonempty. To build a static library, the
-  * macro STATIC_BUILD should be defined.
-  */
- 
- #ifdef STATIC_BUILD
- #   define DLLIMPORT
- #   define DLLEXPORT
- #else
- #   if (defined(__WIN32__) && (defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || defined(__LCC__) || defined(__WATCOMC__) || (defined(__GNUC__) && defined(__declspec)))) || (defined(MAC_TCL) && FUNCTION_DECLSPEC)
- #	define DLLIMPORT __declspec(dllimport)
- #	define DLLEXPORT __declspec(dllexport)
- #   else
- #	define DLLIMPORT
- #	define DLLEXPORT
- #   endif
- #endif
- 
- /*
   * These macros are used to control whether functions are being declared for
   * import or export.  If a function is being declared while it is being built
   * to be included in a shared library, then it should have the DLLEXPORT
--- 179,184 ----
***************
*** 221,226 ****
--- 193,199 ----
   * storage class will be set to DLLEXPORT.  At the end of the header file, the
   * storage class will be reset to DLLIMPORT.
   */
+ 
  #undef TCL_STORAGE_CLASS
  #ifdef BUILD_tcl
  #   define TCL_STORAGE_CLASS DLLEXPORT
***************
*** 232,237 ****
--- 205,261 ----
  #   endif
  #endif
  
+ /*
+  * Macros used to declare a function to be exported by a DLL.
+  * Used by Windows, maps to no-op declarations on non-Windows systems.
+  * The default build on windows is for a DLL, which causes the DLLIMPORT
+  * and DLLEXPORT macros to be nonempty. To build a static library, the
+  * macro STATIC_BUILD should be defined.
+  */
+ 
+ #ifdef __cplusplus
+ #   define TCL_EXTRNC extern "C"
+ #else
+ #   define TCL_EXTRNC extern
+ #endif
+ 
+ #if defined(STATIC_BUILD)
+ #   define DLLIMPORT
+ #   define DLLEXPORT
+ #   define TCL_EXTERN(RTYPE) TCL_EXTRNC RTYPE
+ #elif (defined(__WIN32__) && ( \
+ 	    defined(_MSC_VER) || (__BORLANDC__ >= 0x0550) || \
+ 	    defined(__LCC__) || defined(__WATCOMC__) || \
+ 	    (defined(__GNUC__) && defined(__declspec)) \
+ 	)) || (defined(MAC_TCL) && FUNCTION_DECLSPEC)
+ #   define DLLIMPORT __declspec(dllimport)
+ #   define DLLEXPORT __declspec(dllexport)
+ #   define TCL_EXTERN(RTYPE) TCL_EXTRNC TCL_STORAGE_CLASS RTYPE
+ #elif defined(__BORLANDC__)
+ #   define DLLIMPORT __import
+ #   define DLLEXPORT __export
+     /* Pre-5.5 Borland requires the attributes be placed after the */
+     /* return type instead. */
+ #   define TCL_EXTERN(RTYPE) TCL_EXTRNC RTYPE TCL_STORAGE_CLASS
+ #else
+ #   define DLLIMPORT
+ #   define DLLEXPORT
+ #   define TCL_EXTERN(RTYPE) TCL_EXTRNC TCL_STORAGE_CLASS RTYPE
+ #endif
+ 
+ /*
+  * Old support for EXTERN is maintained.
+  */
+ #ifdef EXTERN
+ #   undef EXTERN
+ #endif /* EXTERN */
+ 
+ #ifdef __cplusplus
+ #   define EXTERN extern "C" TCL_STORAGE_CLASS
+ #else
+ #   define EXTERN extern TCL_STORAGE_CLASS
+ #endif
+ 
  
  /*
   * Definitions that allow this header file to be used either with or
***************
*** 273,292 ****
  
  
  /*
-  * Make sure EXTERN isn't defined elsewhere
-  */
- #ifdef EXTERN
- #   undef EXTERN
- #endif /* EXTERN */
- 
- #ifdef __cplusplus
- #   define EXTERN extern "C" TCL_STORAGE_CLASS
- #else
- #   define EXTERN extern TCL_STORAGE_CLASS
- #endif
- 
- 
- /*
   * The following code is copied from winnt.h.
   * If we don't replicate it here, then <windows.h> can't be included 
   * after tcl.h, since tcl.h also defines VOID.
--- 297,302 ----
***************
*** 295,306 ****
   * 
   */
  #if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
! #ifndef VOID
! #define VOID void
! typedef char CHAR;
! typedef short SHORT;
! typedef long LONG;
! #endif
  #endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
  
  /*
--- 305,316 ----
   * 
   */
  #if defined(__WIN32__) && !defined(HAVE_WINNT_IGNORE_VOID)
! #   ifndef VOID
! #	define VOID void
! 	typedef char CHAR;
! 	typedef short SHORT;
! 	typedef long LONG;
! #   endif
  #endif /* __WIN32__ && !HAVE_WINNT_IGNORE_VOID */
  
  /*
***************
*** 310,318 ****
   */
  
  #ifndef NO_VOID
! #         define VOID void
  #else
! #         define VOID char
  #endif
  
  /*
--- 320,328 ----
   */
  
  #ifndef NO_VOID
! #   define VOID void
  #else
! #   define VOID char
  #endif
  
  /*
***************
*** 2282,2288 ****
   * linked into an application.
   */
  
! EXTERN CONST char *	Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *version, int exact));
  
  #ifndef USE_TCL_STUBS
--- 2292,2298 ----
   * linked into an application.
   */
  
! TCL_EXTRNC CONST char *	Tcl_InitStubs _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *version, int exact));
  
  #ifndef USE_TCL_STUBS
***************
*** 2328,2334 ****
   * Public functions that are not accessible via the stubs table.
   */
  
! EXTERN void Tcl_Main _ANSI_ARGS_((int argc, char **argv,
  	Tcl_AppInitProc *appInitProc));
  
  /*
--- 2338,2344 ----
   * Public functions that are not accessible via the stubs table.
   */
  
! TCL_EXTERN(void) Tcl_Main _ANSI_ARGS_((int argc, char **argv,
  	Tcl_AppInitProc *appInitProc));
  
  /*
***************
*** 2336,2356 ****
   * This function is not *implemented* by the tcl library, so the storage
   * class is neither DLLEXPORT nor DLLIMPORT
   */
- #undef TCL_STORAGE_CLASS
- #define TCL_STORAGE_CLASS
  
! EXTERN int		Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));
  
  #undef TCL_STORAGE_CLASS
  #define TCL_STORAGE_CLASS DLLIMPORT
  
  #endif /* RC_INVOKED */
- 
- /*
-  * end block for C++
-  */
- #ifdef __cplusplus
- }
- #endif
- 
  #endif /* _TCL */
--- 2346,2356 ----
   * This function is not *implemented* by the tcl library, so the storage
   * class is neither DLLEXPORT nor DLLIMPORT
   */
  
! TCL_EXTRNC int Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));
  
  #undef TCL_STORAGE_CLASS
  #define TCL_STORAGE_CLASS DLLIMPORT
  
  #endif /* RC_INVOKED */
  #endif /* _TCL */

*** generic/tclCompile.h	14 Nov 2003 20:44:44 -0000	1.39
--- generic/tclCompile.h	13 Dec 2003 22:49:54 -0000
***************
*** 40,46 ****
   * This variable is linked to the Tcl variable "tcl_traceCompile".
   */
  
! extern int 		tclTraceCompile;
  #endif
  
  #ifdef TCL_COMPILE_DEBUG
--- 40,46 ----
   * This variable is linked to the Tcl variable "tcl_traceCompile".
   */
  
! TCL_EXTRNC int 		tclTraceCompile;
  #endif
  
  #ifdef TCL_COMPILE_DEBUG
***************
*** 54,60 ****
   * This variable is linked to the Tcl variable "tcl_traceExec".
   */
  
! extern int 		tclTraceExec;
  #endif
  
  /*
--- 54,60 ----
   * This variable is linked to the Tcl variable "tcl_traceExec".
   */
  
! TCL_EXTRNC int 		tclTraceExec;
  #endif
  
  /*
***************
*** 566,572 ****
  				/* The type of each operand. */
  } InstructionDesc;
  
! extern InstructionDesc tclInstructionTable[];
  
  /*
   * Definitions of the values of the INST_CALL_BUILTIN_FUNC instruction's
--- 566,572 ----
  				/* The type of each operand. */
  } InstructionDesc;
  
! TCL_EXTRNC InstructionDesc tclInstructionTable[];
  
  /*
   * Definitions of the values of the INST_CALL_BUILTIN_FUNC instruction's
***************
*** 624,630 ****
  				 * function when invoking it. */
  } BuiltinFunc;
  
! extern BuiltinFunc tclBuiltinFuncTable[];
  
  /*
   * Compilation of some Tcl constructs such as if commands and the logical or
--- 624,630 ----
  				 * function when invoking it. */
  } BuiltinFunc;
  
! TCL_EXTRNC BuiltinFunc tclBuiltinFuncTable[];
  
  /*
   * Compilation of some Tcl constructs such as if commands and the logical or
***************
*** 714,720 ****
  				 * THE LAST FIELD IN THE STRUCTURE! */
  } ForeachInfo;
  
! extern AuxDataType		tclForeachInfoType;
  
  
  /*
--- 714,720 ----
  				 * THE LAST FIELD IN THE STRUCTURE! */
  } ForeachInfo;
  
! TCL_EXTRNC AuxDataType		tclForeachInfoType;
  
  
  /*
***************
*** 723,732 ****
   *----------------------------------------------------------------
   */
  
! EXTERN int		TclEvalObjvInternal _ANSI_ARGS_((Tcl_Interp *interp, int objc,
  			    Tcl_Obj *CONST objv[], CONST char *command, int length,
  			    int flags));
! EXTERN int              TclInterpReady _ANSI_ARGS_((Tcl_Interp *interp));
  
  
  /*
--- 723,732 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC int		TclEvalObjvInternal _ANSI_ARGS_((Tcl_Interp *interp, int objc,
  			    Tcl_Obj *CONST objv[], CONST char *command, int length,
  			    int flags));
! TCL_EXTRNC int              TclInterpReady _ANSI_ARGS_((Tcl_Interp *interp));
  
  
  /*
***************
*** 735,741 ****
   *----------------------------------------------------------------
   */
  
! EXTERN int		TclCompEvalObj _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *objPtr));
  
  /*
--- 735,741 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC int		TclCompEvalObj _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *objPtr));
  
  /*
***************
*** 745,832 ****
   *----------------------------------------------------------------
   */
  
! EXTERN void		TclCleanupByteCode _ANSI_ARGS_((ByteCode *codePtr));
! EXTERN int		TclCompileCmdWord _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int count,
  			    CompileEnv *envPtr));
! EXTERN int		TclCompileExpr _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *script, int numBytes,
  			    CompileEnv *envPtr));
! EXTERN int		TclCompileExprWords _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int numWords,
  			    CompileEnv *envPtr));
! EXTERN int		TclCompileScript _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *script, int numBytes, CompileEnv *envPtr));
! EXTERN int		TclCompileTokens _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int count,
  			    CompileEnv *envPtr));
! EXTERN int		TclCreateAuxData _ANSI_ARGS_((ClientData clientData,
  			    AuxDataType *typePtr, CompileEnv *envPtr));
! EXTERN int		TclCreateExceptRange _ANSI_ARGS_((
  			    ExceptionRangeType type, CompileEnv *envPtr));
! EXTERN ExecEnv *	TclCreateExecEnv _ANSI_ARGS_((Tcl_Interp *interp));
! EXTERN void		TclDeleteExecEnv _ANSI_ARGS_((ExecEnv *eePtr));
! EXTERN void		TclDeleteLiteralTable _ANSI_ARGS_((
  			    Tcl_Interp *interp, LiteralTable *tablePtr));
! EXTERN void		TclEmitForwardJump _ANSI_ARGS_((CompileEnv *envPtr,
  			    TclJumpType jumpType, JumpFixup *jumpFixupPtr));
! EXTERN ExceptionRange *	TclGetExceptionRangeForPc _ANSI_ARGS_((
  			    unsigned char *pc, int catchOnly,
  			    ByteCode* codePtr));
! EXTERN void		TclExpandJumpFixupArray _ANSI_ARGS_((
                              JumpFixupArray *fixupArrayPtr));
! EXTERN void		TclFinalizeAuxDataTypeTable _ANSI_ARGS_((void));
! EXTERN int		TclFindCompiledLocal _ANSI_ARGS_((CONST char *name, 
          		    int nameChars, int create, int flags,
  			    Proc *procPtr));
! EXTERN LiteralEntry *	TclLookupLiteralEntry _ANSI_ARGS_((
  			    Tcl_Interp *interp, Tcl_Obj *objPtr));
! EXTERN int		TclFixupForwardJump _ANSI_ARGS_((
  			    CompileEnv *envPtr, JumpFixup *jumpFixupPtr,
  			    int jumpDist, int distThreshold));
! EXTERN void		TclFreeCompileEnv _ANSI_ARGS_((CompileEnv *envPtr));
! EXTERN void		TclFreeJumpFixupArray _ANSI_ARGS_((
    			    JumpFixupArray *fixupArrayPtr));
! EXTERN void		TclInitAuxDataTypeTable _ANSI_ARGS_((void));
! EXTERN void		TclInitByteCodeObj _ANSI_ARGS_((Tcl_Obj *objPtr,
  			    CompileEnv *envPtr));
! EXTERN void		TclInitCompilation _ANSI_ARGS_((void));
! EXTERN void		TclInitCompileEnv _ANSI_ARGS_((Tcl_Interp *interp,
  			    CompileEnv *envPtr, char *string,
  			    int numBytes));
! EXTERN void		TclInitJumpFixupArray _ANSI_ARGS_((
  			    JumpFixupArray *fixupArrayPtr));
! EXTERN void		TclInitLiteralTable _ANSI_ARGS_((
  			    LiteralTable *tablePtr));
  #ifdef TCL_COMPILE_STATS
! EXTERN char *		TclLiteralStats _ANSI_ARGS_((
  			    LiteralTable *tablePtr));
! EXTERN int		TclLog2 _ANSI_ARGS_((int value));
  #endif
  #ifdef TCL_COMPILE_DEBUG
! EXTERN void		TclPrintByteCodeObj _ANSI_ARGS_((Tcl_Interp *interp,
  		            Tcl_Obj *objPtr));
  #endif
! EXTERN int		TclPrintInstruction _ANSI_ARGS_((ByteCode* codePtr,
  			    unsigned char *pc));
! EXTERN void		TclPrintObject _ANSI_ARGS_((FILE *outFile,
  			    Tcl_Obj *objPtr, int maxChars));
! EXTERN void		TclPrintSource _ANSI_ARGS_((FILE *outFile,
  			    CONST char *string, int maxChars));
! EXTERN void		TclRegisterAuxDataType _ANSI_ARGS_((AuxDataType *typePtr));
! EXTERN int		TclRegisterLiteral _ANSI_ARGS_((CompileEnv *envPtr,
  			    char *bytes, int length, int onHeap));
! EXTERN void		TclReleaseLiteral _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *objPtr));
! EXTERN void		TclSetCmdNameObj _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *objPtr, Command *cmdPtr));
  #ifdef TCL_COMPILE_DEBUG
! EXTERN void		TclVerifyGlobalLiteralTable _ANSI_ARGS_((
  			    Interp *iPtr));
! EXTERN void		TclVerifyLocalLiteralTable _ANSI_ARGS_((
  			    CompileEnv *envPtr));
  #endif
! EXTERN int		TclCompileVariableCmd _ANSI_ARGS_((
  			    Tcl_Interp *interp, Tcl_Parse *parsePtr, CompileEnv *envPtr));
  
  /*
--- 745,832 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC void		TclCleanupByteCode _ANSI_ARGS_((ByteCode *codePtr));
! TCL_EXTRNC int		TclCompileCmdWord _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int count,
  			    CompileEnv *envPtr));
! TCL_EXTRNC int		TclCompileExpr _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *script, int numBytes,
  			    CompileEnv *envPtr));
! TCL_EXTRNC int		TclCompileExprWords _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int numWords,
  			    CompileEnv *envPtr));
! TCL_EXTRNC int		TclCompileScript _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *script, int numBytes, CompileEnv *envPtr));
! TCL_EXTRNC int		TclCompileTokens _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int count,
  			    CompileEnv *envPtr));
! TCL_EXTRNC int		TclCreateAuxData _ANSI_ARGS_((ClientData clientData,
  			    AuxDataType *typePtr, CompileEnv *envPtr));
! TCL_EXTRNC int		TclCreateExceptRange _ANSI_ARGS_((
  			    ExceptionRangeType type, CompileEnv *envPtr));
! TCL_EXTRNC ExecEnv *	TclCreateExecEnv _ANSI_ARGS_((Tcl_Interp *interp));
! TCL_EXTRNC void		TclDeleteExecEnv _ANSI_ARGS_((ExecEnv *eePtr));
! TCL_EXTRNC void		TclDeleteLiteralTable _ANSI_ARGS_((
  			    Tcl_Interp *interp, LiteralTable *tablePtr));
! TCL_EXTRNC void		TclEmitForwardJump _ANSI_ARGS_((CompileEnv *envPtr,
  			    TclJumpType jumpType, JumpFixup *jumpFixupPtr));
! TCL_EXTRNC ExceptionRange *	TclGetExceptionRangeForPc _ANSI_ARGS_((
  			    unsigned char *pc, int catchOnly,
  			    ByteCode* codePtr));
! TCL_EXTRNC void		TclExpandJumpFixupArray _ANSI_ARGS_((
                              JumpFixupArray *fixupArrayPtr));
! TCL_EXTRNC void		TclFinalizeAuxDataTypeTable _ANSI_ARGS_((void));
! TCL_EXTRNC int		TclFindCompiledLocal _ANSI_ARGS_((CONST char *name, 
          		    int nameChars, int create, int flags,
  			    Proc *procPtr));
! TCL_EXTRNC LiteralEntry *	TclLookupLiteralEntry _ANSI_ARGS_((
  			    Tcl_Interp *interp, Tcl_Obj *objPtr));
! TCL_EXTRNC int		TclFixupForwardJump _ANSI_ARGS_((
  			    CompileEnv *envPtr, JumpFixup *jumpFixupPtr,
  			    int jumpDist, int distThreshold));
! TCL_EXTRNC void		TclFreeCompileEnv _ANSI_ARGS_((CompileEnv *envPtr));
! TCL_EXTRNC void		TclFreeJumpFixupArray _ANSI_ARGS_((
    			    JumpFixupArray *fixupArrayPtr));
! TCL_EXTRNC void		TclInitAuxDataTypeTable _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitByteCodeObj _ANSI_ARGS_((Tcl_Obj *objPtr,
  			    CompileEnv *envPtr));
! TCL_EXTRNC void		TclInitCompilation _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitCompileEnv _ANSI_ARGS_((Tcl_Interp *interp,
  			    CompileEnv *envPtr, char *string,
  			    int numBytes));
! TCL_EXTRNC void		TclInitJumpFixupArray _ANSI_ARGS_((
  			    JumpFixupArray *fixupArrayPtr));
! TCL_EXTRNC void		TclInitLiteralTable _ANSI_ARGS_((
  			    LiteralTable *tablePtr));
  #ifdef TCL_COMPILE_STATS
! TCL_EXTRNC char *	TclLiteralStats _ANSI_ARGS_((
  			    LiteralTable *tablePtr));
! TCL_EXTRNC int		TclLog2 _ANSI_ARGS_((int value));
  #endif
  #ifdef TCL_COMPILE_DEBUG
! TCL_EXTRNC void		TclPrintByteCodeObj _ANSI_ARGS_((Tcl_Interp *interp,
  		            Tcl_Obj *objPtr));
  #endif
! TCL_EXTRNC int		TclPrintInstruction _ANSI_ARGS_((ByteCode* codePtr,
  			    unsigned char *pc));
! TCL_EXTRNC void		TclPrintObject _ANSI_ARGS_((FILE *outFile,
  			    Tcl_Obj *objPtr, int maxChars));
! TCL_EXTRNC void		TclPrintSource _ANSI_ARGS_((FILE *outFile,
  			    CONST char *string, int maxChars));
! TCL_EXTRNC void		TclRegisterAuxDataType _ANSI_ARGS_((AuxDataType *typePtr));
! TCL_EXTRNC int		TclRegisterLiteral _ANSI_ARGS_((CompileEnv *envPtr,
  			    char *bytes, int length, int onHeap));
! TCL_EXTRNC void		TclReleaseLiteral _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *objPtr));
! TCL_EXTRNC void		TclSetCmdNameObj _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *objPtr, Command *cmdPtr));
  #ifdef TCL_COMPILE_DEBUG
! TCL_EXTRNC void		TclVerifyGlobalLiteralTable _ANSI_ARGS_((
  			    Interp *iPtr));
! TCL_EXTRNC void		TclVerifyLocalLiteralTable _ANSI_ARGS_((
  			    CompileEnv *envPtr));
  #endif
! TCL_EXTRNC int		TclCompileVariableCmd _ANSI_ARGS_((
  			    Tcl_Interp *interp, Tcl_Parse *parsePtr, CompileEnv *envPtr));
  
  /*
***************
*** 1027,1036 ****
   * return type that depend on the number of bytes fetched.
   * The ANSI C "prototypes" for these macros are:
   *
!  * EXTERN int	        TclGetInt1AtPtr  _ANSI_ARGS_((unsigned char *p));
!  * EXTERN int	        TclGetInt4AtPtr  _ANSI_ARGS_((unsigned char *p));
!  * EXTERN unsigned int	TclGetUInt1AtPtr _ANSI_ARGS_((unsigned char *p));
!  * EXTERN unsigned int	TclGetUInt4AtPtr _ANSI_ARGS_((unsigned char *p));
   */
  
  /*
--- 1027,1036 ----
   * return type that depend on the number of bytes fetched.
   * The ANSI C "prototypes" for these macros are:
   *
!  * TCL_EXTRNC int	        TclGetInt1AtPtr  _ANSI_ARGS_((unsigned char *p));
!  * TCL_EXTRNC int	        TclGetInt4AtPtr  _ANSI_ARGS_((unsigned char *p));
!  * TCL_EXTRNC unsigned int	TclGetUInt1AtPtr _ANSI_ARGS_((unsigned char *p));
!  * TCL_EXTRNC unsigned int	TclGetUInt4AtPtr _ANSI_ARGS_((unsigned char *p));
   */
  
  /*
***************
*** 1068,1075 ****
   * Macros used to compute the minimum and maximum of two integers.
   * The ANSI C "prototypes" for these macros are:
   *
!  * EXTERN int  TclMin _ANSI_ARGS_((int i, int j));
!  * EXTERN int  TclMax _ANSI_ARGS_((int i, int j));
   */
  
  #define TclMin(i, j)   ((((int) i) < ((int) j))? (i) : (j))
--- 1068,1075 ----
   * Macros used to compute the minimum and maximum of two integers.
   * The ANSI C "prototypes" for these macros are:
   *
!  * TCL_EXTRNC int  TclMin _ANSI_ARGS_((int i, int j));
!  * TCL_EXTRNC int  TclMax _ANSI_ARGS_((int i, int j));
   */
  
  #define TclMin(i, j)   ((((int) i) < ((int) j))? (i) : (j))

*** generic/tclFileSystem.h	10 Oct 2003 15:50:35 -0000	1.5
--- generic/tclFileSystem.h	13 Dec 2003 22:50:01 -0000
***************
*** 61,96 ****
   * These functions are not exported at all at present.
   */
  
! int      TclFSCwdPointerEquals _ANSI_ARGS_((Tcl_Obj* objPtr));
! int	 TclFSMakePathFromNormalized _ANSI_ARGS_((Tcl_Interp *interp, 
! 		Tcl_Obj *objPtr, ClientData clientData));
! int      TclFSNormalizeToUniquePath _ANSI_ARGS_((Tcl_Interp *interp, 
! 		Tcl_Obj *pathPtr, int startAt, ClientData *clientDataPtr));
! Tcl_Obj* TclFSMakePathRelative _ANSI_ARGS_((Tcl_Interp *interp, 
! 		Tcl_Obj *objPtr, Tcl_Obj *cwdPtr));
! Tcl_Obj* TclFSInternalToNormalized _ANSI_ARGS_((
! 		Tcl_Filesystem *fromFilesystem, ClientData clientData,
! 		FilesystemRecord **fsRecPtrPtr));
! int      TclFSEnsureEpochOk _ANSI_ARGS_((Tcl_Obj* pathObjPtr,
! 		Tcl_Filesystem **fsPtrPtr));
! void     TclFSSetPathDetails _ANSI_ARGS_((Tcl_Obj *pathObjPtr, 
! 		FilesystemRecord *fsRecPtr, ClientData clientData ));
! Tcl_Obj* TclFSNormalizeAbsolutePath _ANSI_ARGS_((Tcl_Interp* interp, 
! 		Tcl_Obj *pathPtr, ClientData *clientDataPtr));
  
  /* 
   * Private shared variables for use by tclIOUtil.c and tclPathObj.c
   */
! extern Tcl_Filesystem tclNativeFilesystem;
! extern Tcl_ThreadDataKey tclFsDataKey;
  
  /* 
   * Private shared functions for use by tclIOUtil.c and tclPathObj.c
   */
! Tcl_PathType     TclFSGetPathType  _ANSI_ARGS_((Tcl_Obj *pathObjPtr, 
  			    Tcl_Filesystem **filesystemPtrPtr, 
  			    int *driveNameLengthPtr));
! Tcl_PathType     TclGetPathType  _ANSI_ARGS_((Tcl_Obj *pathObjPtr, 
  			    Tcl_Filesystem **filesystemPtrPtr, 
  			    int *driveNameLengthPtr, Tcl_Obj **driveNameRef));
! Tcl_FSPathInFilesystemProc TclNativePathInFilesystem;
--- 61,96 ----
   * These functions are not exported at all at present.
   */
  
! TCL_EXTRNC int	TclFSCwdPointerEquals _ANSI_ARGS_((Tcl_Obj* objPtr));
! TCL_EXTRNC int	TclFSMakePathFromNormalized _ANSI_ARGS_((Tcl_Interp *interp, 
! 		    Tcl_Obj *objPtr, ClientData clientData));
! TCL_EXTRNC int	TclFSNormalizeToUniquePath _ANSI_ARGS_((Tcl_Interp *interp, 
! 		    Tcl_Obj *pathPtr, int startAt, ClientData *clientDataPtr));
! TCL_EXTRNC Tcl_Obj* TclFSMakePathRelative _ANSI_ARGS_((Tcl_Interp *interp, 
! 		    Tcl_Obj *objPtr, Tcl_Obj *cwdPtr));
! TCL_EXTRNC Tcl_Obj* TclFSInternalToNormalized _ANSI_ARGS_((
! 		    Tcl_Filesystem *fromFilesystem, ClientData clientData,
! 		    FilesystemRecord **fsRecPtrPtr));
! TCL_EXTRNC int	TclFSEnsureEpochOk _ANSI_ARGS_((Tcl_Obj* pathObjPtr,
! 		    Tcl_Filesystem **fsPtrPtr));
! TCL_EXTRNC void	TclFSSetPathDetails _ANSI_ARGS_((Tcl_Obj *pathObjPtr, 
! 		    FilesystemRecord *fsRecPtr, ClientData clientData ));
! TCL_EXTRNC Tcl_Obj* TclFSNormalizeAbsolutePath _ANSI_ARGS_((Tcl_Interp* interp, 
! 		    Tcl_Obj *pathPtr, ClientData *clientDataPtr));
  
  /* 
   * Private shared variables for use by tclIOUtil.c and tclPathObj.c
   */
! TCL_EXTRNC Tcl_Filesystem tclNativeFilesystem;
! TCL_EXTRNC Tcl_ThreadDataKey tclFsDataKey;
  
  /* 
   * Private shared functions for use by tclIOUtil.c and tclPathObj.c
   */
! TCL_EXTRNC Tcl_PathType TclFSGetPathType  _ANSI_ARGS_((Tcl_Obj *pathObjPtr, 
  			    Tcl_Filesystem **filesystemPtrPtr, 
  			    int *driveNameLengthPtr));
! TCL_EXTRNC Tcl_PathType TclGetPathType  _ANSI_ARGS_((Tcl_Obj *pathObjPtr, 
  			    Tcl_Filesystem **filesystemPtrPtr, 
  			    int *driveNameLengthPtr, Tcl_Obj **driveNameRef));
! TCL_EXTRNC Tcl_FSPathInFilesystemProc TclNativePathInFilesystem;

*** generic/tclInt.decls	1 Nov 2003 01:28:04 -0000	1.66
--- generic/tclInt.decls	13 Dec 2003 22:50:03 -0000
***************
*** 527,535 ****
      size_t TclpStrftime(char *s, size_t maxsize, CONST char *format,
  	    CONST struct tm *t, int useGMT)
  }
! declare 135 generic {
!     int TclpCheckStackSpace(void)
! }
  
  # Added in 8.1:
  
--- 527,535 ----
      size_t TclpStrftime(char *s, size_t maxsize, CONST char *format,
  	    CONST struct tm *t, int useGMT)
  }
! #declare 135 generic {
! #    int TclpCheckStackSpace(void)
! #}
  
  # Added in 8.1:
  

*** generic/tclInt.h	3 Nov 2003 12:49:31 -0000	1.138
--- generic/tclInt.h	13 Dec 2003 22:50:07 -0000
***************
*** 815,822 ****
   * are really internal and Tcl clients should use Tcl_GetThreadData.
   */
  
! EXTERN VOID *TclThreadDataKeyGet _ANSI_ARGS_((Tcl_ThreadDataKey *keyPtr));
! EXTERN void TclThreadDataKeySet _ANSI_ARGS_((Tcl_ThreadDataKey *keyPtr, VOID *data));
  
  /*
   * This is a convenience macro used to initialize a thread local storage ptr.
--- 815,822 ----
   * are really internal and Tcl clients should use Tcl_GetThreadData.
   */
  
! TCL_EXTRNC VOID *TclThreadDataKeyGet _ANSI_ARGS_((Tcl_ThreadDataKey *keyPtr));
! TCL_EXTRNC void TclThreadDataKeySet _ANSI_ARGS_((Tcl_ThreadDataKey *keyPtr, VOID *data));
  
  /*
   * This is a convenience macro used to initialize a thread local storage ptr.
***************
*** 1553,1609 ****
   *----------------------------------------------------------------
   */
  
! extern Tcl_Time			tclBlockTime;
! extern int			tclBlockTimeSet;
! extern char *			tclExecutableName;
! extern char *			tclNativeExecutableName;
! extern char *			tclDefaultEncodingDir;
! extern Tcl_ChannelType		tclFileChannelType;
! extern char *			tclMemDumpFileName;
! extern TclPlatformType		tclPlatform;
! extern Tcl_NotifierProcs	tclOriginalNotifier;
  
  /*
   * Variables denoting the Tcl object types defined in the core.
   */
  
! extern Tcl_ObjType	tclBooleanType;
! extern Tcl_ObjType	tclByteArrayType;
! extern Tcl_ObjType	tclByteCodeType;
! extern Tcl_ObjType	tclDoubleType;
! extern Tcl_ObjType	tclEndOffsetType;
! extern Tcl_ObjType	tclIntType;
! extern Tcl_ObjType	tclListType;
! extern Tcl_ObjType	tclDictType;
! extern Tcl_ObjType	tclProcBodyType;
! extern Tcl_ObjType	tclStringType;
! extern Tcl_ObjType	tclArraySearchType;
! extern Tcl_ObjType	tclIndexType;
! extern Tcl_ObjType	tclNsNameType;
! extern Tcl_ObjType	tclEnsembleCmdType;
! extern Tcl_ObjType	tclWideIntType;
  
  /*
   * Variables denoting the hash key types defined in the core.
   */
  
! extern Tcl_HashKeyType tclArrayHashKeyType;
! extern Tcl_HashKeyType tclOneWordHashKeyType;
! extern Tcl_HashKeyType tclStringHashKeyType;
! extern Tcl_HashKeyType tclObjHashKeyType;
  
  /*
   * The head of the list of free Tcl objects, and the total number of Tcl
   * objects ever allocated and freed.
   */
  
! extern Tcl_Obj *	tclFreeObjList;
  
  #ifdef TCL_COMPILE_STATS
! extern long		tclObjsAlloced;
! extern long		tclObjsFreed;
  #define TCL_MAX_SHARED_OBJ_STATS 5
! extern long		tclObjsShared[TCL_MAX_SHARED_OBJ_STATS];
  #endif /* TCL_COMPILE_STATS */
  
  /*
--- 1553,1609 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC Tcl_Time		tclBlockTime;
! TCL_EXTRNC int			tclBlockTimeSet;
! TCL_EXTRNC char *		tclExecutableName;
! TCL_EXTRNC char *		tclNativeExecutableName;
! TCL_EXTRNC char *		tclDefaultEncodingDir;
! TCL_EXTRNC Tcl_ChannelType	tclFileChannelType;
! TCL_EXTRNC char *		tclMemDumpFileName;
! TCL_EXTRNC TclPlatformType	tclPlatform;
! TCL_EXTRNC Tcl_NotifierProcs	tclOriginalNotifier;
  
  /*
   * Variables denoting the Tcl object types defined in the core.
   */
  
! TCL_EXTRNC Tcl_ObjType	tclBooleanType;
! TCL_EXTRNC Tcl_ObjType	tclByteArrayType;
! TCL_EXTRNC Tcl_ObjType	tclByteCodeType;
! TCL_EXTRNC Tcl_ObjType	tclDoubleType;
! TCL_EXTRNC Tcl_ObjType	tclEndOffsetType;
! TCL_EXTRNC Tcl_ObjType	tclIntType;
! TCL_EXTRNC Tcl_ObjType	tclListType;
! TCL_EXTRNC Tcl_ObjType	tclDictType;
! TCL_EXTRNC Tcl_ObjType	tclProcBodyType;
! TCL_EXTRNC Tcl_ObjType	tclStringType;
! TCL_EXTRNC Tcl_ObjType	tclArraySearchType;
! TCL_EXTRNC Tcl_ObjType	tclIndexType;
! TCL_EXTRNC Tcl_ObjType	tclNsNameType;
! TCL_EXTRNC Tcl_ObjType	tclEnsembleCmdType;
! TCL_EXTRNC Tcl_ObjType	tclWideIntType;
  
  /*
   * Variables denoting the hash key types defined in the core.
   */
  
! TCL_EXTRNC Tcl_HashKeyType tclArrayHashKeyType;
! TCL_EXTRNC Tcl_HashKeyType tclOneWordHashKeyType;
! TCL_EXTRNC Tcl_HashKeyType tclStringHashKeyType;
! TCL_EXTRNC Tcl_HashKeyType tclObjHashKeyType;
  
  /*
   * The head of the list of free Tcl objects, and the total number of Tcl
   * objects ever allocated and freed.
   */
  
! TCL_EXTRNC Tcl_Obj *	tclFreeObjList;
  
  #ifdef TCL_COMPILE_STATS
! TCL_EXTRNC long		tclObjsAlloced;
! TCL_EXTRNC long		tclObjsFreed;
  #define TCL_MAX_SHARED_OBJ_STATS 5
! TCL_EXTRNC long		tclObjsShared[TCL_MAX_SHARED_OBJ_STATS];
  #endif /* TCL_COMPILE_STATS */
  
  /*
***************
*** 1612,1619 ****
   * is shared by all new objects allocated by Tcl_NewObj.
   */
  
! extern char *		tclEmptyStringRep;
! extern char		tclEmptyString;
  
  /*
   *----------------------------------------------------------------
--- 1612,1619 ----
   * is shared by all new objects allocated by Tcl_NewObj.
   */
  
! TCL_EXTRNC char *	tclEmptyStringRep;
! TCL_EXTRNC char		tclEmptyString;
  
  /*
   *----------------------------------------------------------------
***************
*** 1622,1826 ****
   *----------------------------------------------------------------
   */
  
! EXTERN void		TclAppendLimitedToObj _ANSI_ARGS_((Tcl_Obj *objPtr, 
  			    CONST char *bytes, int length, int limit,
  			    CONST char *ellipsis));
! EXTERN void		TclAppendObjToErrorInfo _ANSI_ARGS_((
  			    Tcl_Interp *interp, Tcl_Obj *objPtr));
! EXTERN int		TclArraySet _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *arrayNameObj, Tcl_Obj *arrayElemObj));
! EXTERN int		TclCheckBadOctal _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *value));
! EXTERN void		TclExpandTokenArray _ANSI_ARGS_((
  			    Tcl_Parse *parsePtr));
! EXTERN int		TclFileAttrsCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[]));
! EXTERN int		TclFileCopyCmd _ANSI_ARGS_((Tcl_Interp *interp, 
  			    int objc, Tcl_Obj *CONST objv[])) ;
! EXTERN int		TclFileDeleteCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[]));
! EXTERN int		TclFileMakeDirsCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[])) ;
! EXTERN int		TclFileRenameCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[])) ;
! EXTERN void		TclFinalizeAllocSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeCompExecEnv _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeCompilation _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeEncodingSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeEnvironment _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeExecution _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeIOSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeFilesystem _ANSI_ARGS_((void));
! EXTERN void		TclResetFilesystem _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeLoad _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeMemorySubsystem _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeNotifier _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeAsync _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeSynchronization _ANSI_ARGS_((void));
! EXTERN void		TclFinalizeThreadData _ANSI_ARGS_((void));
! EXTERN void		TclFindEncodings _ANSI_ARGS_((CONST char *argv0));
! EXTERN int		TclGlob _ANSI_ARGS_((Tcl_Interp *interp,
  			    char *pattern, Tcl_Obj *unquotedPrefix, 
  			    int globFlags, Tcl_GlobTypeData* types));
! EXTERN void		TclInitAlloc _ANSI_ARGS_((void));
! EXTERN void		TclInitDbCkalloc _ANSI_ARGS_((void));
! EXTERN void             TclInitEmbeddedConfigurationInformation 
                              _ANSI_ARGS_((Tcl_Interp *interp));
! EXTERN void		TclInitEncodingSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclInitIOSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclInitNamespaceSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclInitNotifier _ANSI_ARGS_((void));
! EXTERN void		TclInitObjSubsystem _ANSI_ARGS_((void));
! EXTERN void		TclInitSubsystems _ANSI_ARGS_((CONST char *argv0));
! EXTERN int		TclIsLocalScalar _ANSI_ARGS_((CONST char *src,
  			    int len));
! EXTERN int              TclJoinThread _ANSI_ARGS_((Tcl_ThreadId id,
  			    int* result));
! EXTERN Tcl_Obj *	TclLindexList _ANSI_ARGS_((Tcl_Interp* interp,
! 						   Tcl_Obj* listPtr,
! 						   Tcl_Obj* argPtr ));
! EXTERN Tcl_Obj *	TclLindexFlat _ANSI_ARGS_((Tcl_Interp* interp,
! 						   Tcl_Obj* listPtr,
! 						   int indexCount,
! 						   Tcl_Obj *CONST indexArray[]
! 						   ));
! EXTERN int              TclLoadFile _ANSI_ARGS_((Tcl_Interp* interp,
  			    Tcl_Obj *pathPtr, int symc,
  			    CONST char *symbols[],
  			    Tcl_PackageInitProc **procPtrs[],
  			    Tcl_LoadHandle *handlePtr,
  			    ClientData *clientDataPtr,
  			    Tcl_FSUnloadFileProc **unloadProcPtr));
! EXTERN Tcl_Obj *	TclLsetList _ANSI_ARGS_((Tcl_Interp* interp,
! 						 Tcl_Obj* listPtr,
! 						 Tcl_Obj* indexPtr,
! 						 Tcl_Obj* valuePtr  
! 						 ));
! EXTERN Tcl_Obj *	TclLsetFlat _ANSI_ARGS_((Tcl_Interp* interp,
! 						 Tcl_Obj* listPtr,
! 						 int indexCount,
! 						 Tcl_Obj *CONST indexArray[],
! 						 Tcl_Obj* valuePtr
! 						 ));
! EXTERN int              TclParseBackslash _ANSI_ARGS_((CONST char *src,
                              int numBytes, int *readPtr, char *dst));
! EXTERN int		TclParseHex _ANSI_ARGS_((CONST char *src, int numBytes,
                              Tcl_UniChar *resultPtr));
! EXTERN int		TclParseInteger _ANSI_ARGS_((CONST char *string,
  			    int numBytes));
! EXTERN int		TclParseWhiteSpace _ANSI_ARGS_((CONST char *src,
  			    int numBytes, Tcl_Parse *parsePtr, char *typePtr));
! EXTERN int		TclpObjAccess _ANSI_ARGS_((Tcl_Obj *filename,
  			    int mode));
! EXTERN int              TclpObjLstat _ANSI_ARGS_((Tcl_Obj *pathPtr, 
  			    Tcl_StatBuf *buf));
! EXTERN int		TclpCheckStackSpace _ANSI_ARGS_((void));
! EXTERN Tcl_Obj*         TclpTempFileName _ANSI_ARGS_((void));
! EXTERN Tcl_Obj*         TclNewFSPathObj _ANSI_ARGS_((Tcl_Obj *dirPtr, 
  			    CONST char *addStrRep, int len));
! EXTERN int              TclpDeleteFile _ANSI_ARGS_((CONST char *path));
! EXTERN void		TclpFinalizeCondition _ANSI_ARGS_((
  			    Tcl_Condition *condPtr));
! EXTERN void		TclpFinalizeMutex _ANSI_ARGS_((Tcl_Mutex *mutexPtr));
! EXTERN void		TclpFinalizeThreadData _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! EXTERN void		TclpFinalizeThreadDataKey _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! EXTERN char *		TclpFindExecutable _ANSI_ARGS_((
  			    CONST char *argv0));
! EXTERN int		TclpFindVariable _ANSI_ARGS_((CONST char *name,
  			    int *lengthPtr));
! EXTERN void		TclpInitLibraryPath _ANSI_ARGS_((CONST char *argv0));
! EXTERN void		TclpInitLock _ANSI_ARGS_((void));
! EXTERN void		TclpInitPlatform _ANSI_ARGS_((void));
! EXTERN void		TclpInitUnlock _ANSI_ARGS_((void));
! EXTERN int              TclpLoadFile _ANSI_ARGS_((Tcl_Interp *interp, 
! 				Tcl_Obj *pathPtr,
! 				CONST char *sym1, CONST char *sym2, 
! 				Tcl_PackageInitProc **proc1Ptr,
! 				Tcl_PackageInitProc **proc2Ptr, 
! 				ClientData *clientDataPtr,
! 				Tcl_FSUnloadFileProc **unloadProcPtr));
! EXTERN Tcl_Obj*		TclpObjListVolumes _ANSI_ARGS_((void));
! EXTERN void		TclpMasterLock _ANSI_ARGS_((void));
! EXTERN void		TclpMasterUnlock _ANSI_ARGS_((void));
! EXTERN int		TclpMatchFiles _ANSI_ARGS_((Tcl_Interp *interp,
  			    char *separators, Tcl_DString *dirPtr,
  			    char *pattern, char *tail));
! EXTERN int              TclpObjNormalizePath _ANSI_ARGS_((Tcl_Interp *interp, 
  			    Tcl_Obj *pathPtr, int nextCheckpoint));
! EXTERN int		TclpObjCreateDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr));
! EXTERN void             TclpNativeJoinPath _ANSI_ARGS_((Tcl_Obj *prefix, 
! 							char *joining));
! EXTERN Tcl_Obj*         TclpNativeSplitPath _ANSI_ARGS_((Tcl_Obj *pathPtr, 
! 							 int *lenPtr));
! EXTERN Tcl_PathType     TclpGetNativePathType _ANSI_ARGS_((Tcl_Obj *pathObjPtr,
  			    int *driveNameLengthPtr, Tcl_Obj **driveNameRef));
! EXTERN int 		TclCrossFilesystemCopy _ANSI_ARGS_((Tcl_Interp *interp, 
  			    Tcl_Obj *source, Tcl_Obj *target));
! EXTERN int		TclpObjDeleteFile _ANSI_ARGS_((Tcl_Obj *pathPtr));
! EXTERN int		TclpObjCopyDirectory _ANSI_ARGS_((Tcl_Obj *srcPathPtr, 
! 				Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr));
! EXTERN int		TclpObjCopyFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr, 
! 				Tcl_Obj *destPathPtr));
! EXTERN int		TclpObjRemoveDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr, 
! 				int recursive, Tcl_Obj **errorPtr));
! EXTERN int		TclpObjRenameFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr, 
! 				Tcl_Obj *destPathPtr));
! EXTERN int		TclpMatchInDirectory _ANSI_ARGS_((Tcl_Interp *interp, 
! 			        Tcl_Obj *resultPtr, Tcl_Obj *pathPtr, 
! 				CONST char *pattern, Tcl_GlobTypeData *types));
! EXTERN Tcl_Obj*		TclpObjGetCwd _ANSI_ARGS_((Tcl_Interp *interp));
! EXTERN Tcl_Obj*		TclpObjLink _ANSI_ARGS_((Tcl_Obj *pathPtr, 
! 				Tcl_Obj *toPtr, int linkType));
! EXTERN int		TclpObjChdir _ANSI_ARGS_((Tcl_Obj *pathPtr));
! EXTERN Tcl_Obj*         TclFileDirname _ANSI_ARGS_((Tcl_Interp *interp, 
! 						    Tcl_Obj*pathPtr));
! EXTERN int		TclpObjStat _ANSI_ARGS_((Tcl_Obj *pathPtr, Tcl_StatBuf *buf));
! EXTERN Tcl_Channel	TclpOpenFileChannel _ANSI_ARGS_((Tcl_Interp *interp,
! 			    Tcl_Obj *pathPtr, int mode,
! 			    int permissions));
! EXTERN void		TclpCutFileChannel _ANSI_ARGS_((Tcl_Channel chan));
! EXTERN void		TclpCutSockChannel _ANSI_ARGS_((Tcl_Channel chan));
! EXTERN void		TclpSpliceFileChannel _ANSI_ARGS_((Tcl_Channel chan));
! EXTERN void		TclpSpliceSockChannel _ANSI_ARGS_((Tcl_Channel chan));
! EXTERN void		TclpPanic _ANSI_ARGS_(TCL_VARARGS(CONST char *,
  			    format));
! EXTERN char *		TclpReadlink _ANSI_ARGS_((CONST char *fileName,
  			    Tcl_DString *linkPtr));
! EXTERN void		TclpReleaseFile _ANSI_ARGS_((TclFile file));
! EXTERN void		TclpSetVariables _ANSI_ARGS_((Tcl_Interp *interp));
! EXTERN void		TclpUnloadFile _ANSI_ARGS_((Tcl_LoadHandle loadHandle));
! EXTERN VOID *		TclpThreadDataKeyGet _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! EXTERN void		TclpThreadDataKeyInit _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! EXTERN void		TclpThreadDataKeySet _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr, VOID *data));
! EXTERN void		TclpThreadExit _ANSI_ARGS_((int status));
! EXTERN void		TclRememberCondition _ANSI_ARGS_((Tcl_Condition *mutex));
! EXTERN void		TclRememberDataKey _ANSI_ARGS_((Tcl_ThreadDataKey *mutex));
! EXTERN VOID             TclRememberJoinableThread _ANSI_ARGS_((Tcl_ThreadId id));
! EXTERN void		TclRememberMutex _ANSI_ARGS_((Tcl_Mutex *mutex));
! EXTERN VOID             TclSignalExitThread _ANSI_ARGS_((Tcl_ThreadId id,
  			    int result));
! EXTERN int		TclSubstTokens _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int count,
  			    int *tokensLeftPtr));
! EXTERN void		TclTransferResult _ANSI_ARGS_((Tcl_Interp *sourceInterp,
  			    int result, Tcl_Interp *targetInterp));
! EXTERN Tcl_Obj*         TclpNativeToNormalized 
!                             _ANSI_ARGS_((ClientData clientData));
! EXTERN Tcl_Obj*	        TclpFilesystemPathType
! 					_ANSI_ARGS_((Tcl_Obj* pathObjPtr));
! EXTERN Tcl_PackageInitProc* TclpFindSymbol _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_LoadHandle loadHandle, CONST char *symbol));
! EXTERN int              TclpDlopen _ANSI_ARGS_((Tcl_Interp *interp, 
  			    Tcl_Obj *pathPtr, 
  	                    Tcl_LoadHandle *loadHandle, 
  		            Tcl_FSUnloadFileProc **unloadProcPtr));
! EXTERN int              TclpUtime _ANSI_ARGS_((Tcl_Obj *pathPtr,
! 					       struct utimbuf *tval));
  
  /*
   *----------------------------------------------------------------
--- 1622,1818 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC void		TclAppendLimitedToObj _ANSI_ARGS_((Tcl_Obj *objPtr, 
  			    CONST char *bytes, int length, int limit,
  			    CONST char *ellipsis));
! TCL_EXTRNC void		TclAppendObjToErrorInfo _ANSI_ARGS_((
  			    Tcl_Interp *interp, Tcl_Obj *objPtr));
! TCL_EXTRNC int		TclArraySet _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Obj *arrayNameObj, Tcl_Obj *arrayElemObj));
! TCL_EXTRNC int		TclCheckBadOctal _ANSI_ARGS_((Tcl_Interp *interp,
  			    CONST char *value));
! TCL_EXTRNC void		TclExpandTokenArray _ANSI_ARGS_((
  			    Tcl_Parse *parsePtr));
! TCL_EXTRNC int		TclFileAttrsCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[]));
! TCL_EXTRNC int		TclFileCopyCmd _ANSI_ARGS_((Tcl_Interp *interp, 
  			    int objc, Tcl_Obj *CONST objv[])) ;
! TCL_EXTRNC int		TclFileDeleteCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[]));
! TCL_EXTRNC int		TclFileMakeDirsCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[])) ;
! TCL_EXTRNC int		TclFileRenameCmd _ANSI_ARGS_((Tcl_Interp *interp,
  			    int objc, Tcl_Obj *CONST objv[])) ;
! TCL_EXTRNC void		TclFinalizeAllocSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeCompExecEnv _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeCompilation _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeEncodingSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeEnvironment _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeExecution _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeIOSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeFilesystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclResetFilesystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeLoad _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeMemorySubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeNotifier _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeAsync _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeSynchronization _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFinalizeThreadData _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclFindEncodings _ANSI_ARGS_((CONST char *argv0));
! TCL_EXTRNC int		TclGlob _ANSI_ARGS_((Tcl_Interp *interp,
  			    char *pattern, Tcl_Obj *unquotedPrefix, 
  			    int globFlags, Tcl_GlobTypeData* types));
! TCL_EXTRNC void		TclInitAlloc _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitDbCkalloc _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitEmbeddedConfigurationInformation 
                              _ANSI_ARGS_((Tcl_Interp *interp));
! TCL_EXTRNC void		TclInitEncodingSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitIOSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitNamespaceSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitNotifier _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitObjSubsystem _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclInitSubsystems _ANSI_ARGS_((CONST char *argv0));
! TCL_EXTRNC int		TclIsLocalScalar _ANSI_ARGS_((CONST char *src,
  			    int len));
! TCL_EXTRNC int		TclJoinThread _ANSI_ARGS_((Tcl_ThreadId id,
  			    int* result));
! TCL_EXTRNC Tcl_Obj *	TclLindexList _ANSI_ARGS_((Tcl_Interp* interp,
! 			    Tcl_Obj* listPtr, Tcl_Obj* argPtr ));
! TCL_EXTRNC Tcl_Obj *	TclLindexFlat _ANSI_ARGS_((Tcl_Interp* interp,
! 			    Tcl_Obj* listPtr, int indexCount,
! 			    Tcl_Obj *CONST indexArray[]));
! TCL_EXTRNC int		TclLoadFile _ANSI_ARGS_((Tcl_Interp* interp,
  			    Tcl_Obj *pathPtr, int symc,
  			    CONST char *symbols[],
  			    Tcl_PackageInitProc **procPtrs[],
  			    Tcl_LoadHandle *handlePtr,
  			    ClientData *clientDataPtr,
  			    Tcl_FSUnloadFileProc **unloadProcPtr));
! TCL_EXTRNC Tcl_Obj *	TclLsetList _ANSI_ARGS_((Tcl_Interp* interp,
! 			    Tcl_Obj* listPtr, Tcl_Obj* indexPtr,
! 			    Tcl_Obj* valuePtr));
! TCL_EXTRNC Tcl_Obj *	TclLsetFlat _ANSI_ARGS_((Tcl_Interp* interp,
! 			    Tcl_Obj* listPtr, int indexCount,
! 			    Tcl_Obj *CONST indexArray[],
! 			    Tcl_Obj* valuePtr));
! TCL_EXTRNC int		TclParseBackslash _ANSI_ARGS_((CONST char *src,
                              int numBytes, int *readPtr, char *dst));
! TCL_EXTRNC int		TclParseHex _ANSI_ARGS_((CONST char *src, int numBytes,
                              Tcl_UniChar *resultPtr));
! TCL_EXTRNC int		TclParseInteger _ANSI_ARGS_((CONST char *string,
  			    int numBytes));
! TCL_EXTRNC int		TclParseWhiteSpace _ANSI_ARGS_((CONST char *src,
  			    int numBytes, Tcl_Parse *parsePtr, char *typePtr));
! TCL_EXTRNC int		TclpObjAccess _ANSI_ARGS_((Tcl_Obj *filename,
  			    int mode));
! TCL_EXTRNC int		TclpObjLstat _ANSI_ARGS_((Tcl_Obj *pathPtr, 
  			    Tcl_StatBuf *buf));
! TCL_EXTRNC int		TclpCheckStackSpace _ANSI_ARGS_((void));
! TCL_EXTRNC Tcl_Obj*	TclpTempFileName _ANSI_ARGS_((void));
! TCL_EXTRNC Tcl_Obj*	TclNewFSPathObj _ANSI_ARGS_((Tcl_Obj *dirPtr, 
  			    CONST char *addStrRep, int len));
! TCL_EXTRNC int              TclpDeleteFile _ANSI_ARGS_((CONST char *path));
! TCL_EXTRNC void		TclpFinalizeCondition _ANSI_ARGS_((
  			    Tcl_Condition *condPtr));
! TCL_EXTRNC void		TclpFinalizeMutex _ANSI_ARGS_((Tcl_Mutex *mutexPtr));
! TCL_EXTRNC void		TclpFinalizeThreadData _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! TCL_EXTRNC void		TclpFinalizeThreadDataKey _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! TCL_EXTRNC char *	TclpFindExecutable _ANSI_ARGS_((
  			    CONST char *argv0));
! TCL_EXTRNC int		TclpFindVariable _ANSI_ARGS_((CONST char *name,
  			    int *lengthPtr));
! TCL_EXTRNC void		TclpInitLibraryPath _ANSI_ARGS_((CONST char *argv0));
! TCL_EXTRNC void		TclpInitLock _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclpInitPlatform _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclpInitUnlock _ANSI_ARGS_((void));
! TCL_EXTRNC int		TclpLoadFile _ANSI_ARGS_((Tcl_Interp *interp, 
! 			    Tcl_Obj *pathPtr, CONST char *sym1,
! 			    CONST char *sym2, Tcl_PackageInitProc **proc1Ptr,
! 			    Tcl_PackageInitProc **proc2Ptr,
! 			    ClientData *clientDataPtr,
! 			    Tcl_FSUnloadFileProc **unloadProcPtr));
! TCL_EXTRNC Tcl_Obj*	TclpObjListVolumes _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclpMasterLock _ANSI_ARGS_((void));
! TCL_EXTRNC void		TclpMasterUnlock _ANSI_ARGS_((void));
! TCL_EXTRNC int		TclpMatchFiles _ANSI_ARGS_((Tcl_Interp *interp,
  			    char *separators, Tcl_DString *dirPtr,
  			    char *pattern, char *tail));
! TCL_EXTRNC int		TclpObjNormalizePath _ANSI_ARGS_((Tcl_Interp *interp, 
  			    Tcl_Obj *pathPtr, int nextCheckpoint));
! TCL_EXTRNC int		TclpObjCreateDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr));
! TCL_EXTRNC void		TclpNativeJoinPath _ANSI_ARGS_((Tcl_Obj *prefix, 
! 			    char *joining));
! TCL_EXTRNC Tcl_Obj*	TclpNativeSplitPath _ANSI_ARGS_((Tcl_Obj *pathPtr, 
! 			    int *lenPtr));
! TCL_EXTRNC Tcl_PathType	TclpGetNativePathType _ANSI_ARGS_((Tcl_Obj *pathObjPtr,
  			    int *driveNameLengthPtr, Tcl_Obj **driveNameRef));
! TCL_EXTRNC int 		TclCrossFilesystemCopy _ANSI_ARGS_((Tcl_Interp *interp, 
  			    Tcl_Obj *source, Tcl_Obj *target));
! TCL_EXTRNC int		TclpObjDeleteFile _ANSI_ARGS_((Tcl_Obj *pathPtr));
! TCL_EXTRNC int		TclpObjCopyDirectory _ANSI_ARGS_((Tcl_Obj *srcPathPtr, 
! 			    Tcl_Obj *destPathPtr, Tcl_Obj **errorPtr));
! TCL_EXTRNC int		TclpObjCopyFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr, 
! 			    Tcl_Obj *destPathPtr));
! TCL_EXTRNC int		TclpObjRemoveDirectory _ANSI_ARGS_((Tcl_Obj *pathPtr, 
! 			    int recursive, Tcl_Obj **errorPtr));
! TCL_EXTRNC int		TclpObjRenameFile _ANSI_ARGS_((Tcl_Obj *srcPathPtr, 
! 			    Tcl_Obj *destPathPtr));
! TCL_EXTRNC int		TclpMatchInDirectory _ANSI_ARGS_((Tcl_Interp *interp, 
! 			    Tcl_Obj *resultPtr, Tcl_Obj *pathPtr, 
! 			    CONST char *pattern, Tcl_GlobTypeData *types));
! TCL_EXTRNC Tcl_Obj*	TclpObjGetCwd _ANSI_ARGS_((Tcl_Interp *interp));
! TCL_EXTRNC Tcl_Obj*	TclpObjLink _ANSI_ARGS_((Tcl_Obj *pathPtr, 
! 			    Tcl_Obj *toPtr, int linkType));
! TCL_EXTRNC int		TclpObjChdir _ANSI_ARGS_((Tcl_Obj *pathPtr));
! TCL_EXTRNC Tcl_Obj*	TclFileDirname _ANSI_ARGS_((Tcl_Interp *interp, 
! 			    Tcl_Obj*pathPtr));
! TCL_EXTRNC int		TclpObjStat _ANSI_ARGS_((Tcl_Obj *pathPtr,
! 			    Tcl_StatBuf *buf));
! TCL_EXTRNC Tcl_Channel	TclpOpenFileChannel _ANSI_ARGS_((Tcl_Interp *interp,
! 			    Tcl_Obj *pathPtr, int mode, int permissions));
! TCL_EXTRNC void		TclpCutFileChannel _ANSI_ARGS_((Tcl_Channel chan));
! TCL_EXTRNC void		TclpCutSockChannel _ANSI_ARGS_((Tcl_Channel chan));
! TCL_EXTRNC void		TclpSpliceFileChannel _ANSI_ARGS_((Tcl_Channel chan));
! TCL_EXTRNC void		TclpSpliceSockChannel _ANSI_ARGS_((Tcl_Channel chan));
! TCL_EXTRNC void		TclpPanic _ANSI_ARGS_(TCL_VARARGS(CONST char *,
  			    format));
! TCL_EXTRNC char *	TclpReadlink _ANSI_ARGS_((CONST char *fileName,
  			    Tcl_DString *linkPtr));
! TCL_EXTRNC void		TclpReleaseFile _ANSI_ARGS_((TclFile file));
! TCL_EXTRNC void		TclpSetVariables _ANSI_ARGS_((Tcl_Interp *interp));
! TCL_EXTRNC void		TclpUnloadFile _ANSI_ARGS_((Tcl_LoadHandle loadHandle));
! TCL_EXTRNC VOID *	TclpThreadDataKeyGet _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! TCL_EXTRNC void		TclpThreadDataKeyInit _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr));
! TCL_EXTRNC void		TclpThreadDataKeySet _ANSI_ARGS_((
  			    Tcl_ThreadDataKey *keyPtr, VOID *data));
! TCL_EXTRNC void		TclpThreadExit _ANSI_ARGS_((int status));
! TCL_EXTRNC void		TclRememberCondition _ANSI_ARGS_((Tcl_Condition *mutex));
! TCL_EXTRNC void		TclRememberDataKey _ANSI_ARGS_((Tcl_ThreadDataKey *mutex));
! TCL_EXTRNC VOID		TclRememberJoinableThread _ANSI_ARGS_((Tcl_ThreadId id));
! TCL_EXTRNC void		TclRememberMutex _ANSI_ARGS_((Tcl_Mutex *mutex));
! TCL_EXTRNC VOID		TclSignalExitThread _ANSI_ARGS_((Tcl_ThreadId id,
  			    int result));
! TCL_EXTRNC int		TclSubstTokens _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_Token *tokenPtr, int count,
  			    int *tokensLeftPtr));
! TCL_EXTRNC void		TclTransferResult _ANSI_ARGS_((Tcl_Interp *sourceInterp,
  			    int result, Tcl_Interp *targetInterp));
! TCL_EXTRNC Tcl_Obj*	TclpNativeToNormalized _ANSI_ARGS_((
! 			    ClientData clientData));
! TCL_EXTRNC Tcl_Obj*	TclpFilesystemPathType _ANSI_ARGS_((
! 			    Tcl_Obj* pathObjPtr));
! TCL_EXTRNC Tcl_PackageInitProc* TclpFindSymbol _ANSI_ARGS_((Tcl_Interp *interp,
  			    Tcl_LoadHandle loadHandle, CONST char *symbol));
! TCL_EXTRNC int		TclpDlopen _ANSI_ARGS_((Tcl_Interp *interp, 
  			    Tcl_Obj *pathPtr, 
  	                    Tcl_LoadHandle *loadHandle, 
  		            Tcl_FSUnloadFileProc **unloadProcPtr));
! TCL_EXTRNC int		TclpUtime _ANSI_ARGS_((Tcl_Obj *pathPtr,
! 			    struct utimbuf *tval));
  
  /*
   *----------------------------------------------------------------
***************
*** 1828,1991 ****
   *----------------------------------------------------------------
   */
  
! EXTERN int	Tcl_AfterObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_AppendObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ArrayObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_BinaryObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_BreakObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_CaseObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_CatchObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_CdObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ClockObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_CloseObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ConcatObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ContinueObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_DictObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_EncodingObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_EofObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ErrorObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_EvalObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ExecObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ExitObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ExprObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FblockedObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FconfigureObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FcopyObjCmd _ANSI_ARGS_((ClientData dummy,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FileObjCmd _ANSI_ARGS_((ClientData dummy,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FileEventObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FlushObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ForObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ForeachObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_FormatObjCmd _ANSI_ARGS_((ClientData dummy,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_GetsObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_GlobalObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_GlobObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_IfObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_IncrObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_InfoObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_InterpObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int argc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_JoinObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LappendObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LindexObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LinsertObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LlengthObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ListObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LoadObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LrangeObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LrepeatObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LreplaceObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LsearchObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LsetObjCmd _ANSI_ARGS_((ClientData clientData,
!                     Tcl_Interp* interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_LsortObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_NamespaceObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_OpenObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_PackageObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_PidObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_PutsObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_PwdObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ReadObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_RegexpObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_RegsubObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_RenameObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ReturnObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ScanObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SeekObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SetObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SplitObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SocketObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SourceObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_StringObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SubstObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_SwitchObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_TellObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_TimeObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_TraceObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_UnsetObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_UpdateObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_UplevelObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_UpvarObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_VariableObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_VwaitObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_WhileObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
  
  /*
   *----------------------------------------------------------------
--- 1820,1904 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_AfterObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_AppendObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ArrayObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_BinaryObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_BreakObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_CaseObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_CatchObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_CdObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ClockObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_CloseObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ConcatObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ContinueObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_DictObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_EncodingObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_EofObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ErrorObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_EvalObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ExecObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ExitObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ExprObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FblockedObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FconfigureObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FcopyObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FileObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FileEventObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FlushObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ForObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ForeachObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_FormatObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_GetsObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_GlobalObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_GlobObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_IfObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_IncrObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_InfoObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_InterpObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_JoinObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LappendObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LindexObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LinsertObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LlengthObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ListObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LoadObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LrangeObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LrepeatObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LreplaceObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LsearchObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LsetObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LsortObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_NamespaceObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_OpenObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_PackageObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_PidObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_PutsObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_PwdObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ReadObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_RegexpObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_RegsubObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_RenameObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ReturnObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ScanObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SeekObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SetObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SplitObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SocketObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SourceObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_StringObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SubstObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_SwitchObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_TellObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_TimeObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_TraceObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_UnsetObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_UpdateObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_UplevelObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_UpvarObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_VariableObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_VwaitObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_WhileObjCmd;
  
  /*
   *----------------------------------------------------------------
***************
*** 1994,2009 ****
   */
  
  #ifdef MAC_TCL
! EXTERN int	Tcl_EchoCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int argc, CONST84 char **argv));
! EXTERN int	Tcl_LsObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_BeepObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_MacSourceObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
! EXTERN int	Tcl_ResourceObjCmd _ANSI_ARGS_((ClientData clientData,
! 		    Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]));
  #endif
  
  /*
--- 1907,1917 ----
   */
  
  #ifdef MAC_TCL
! TCL_EXTRNC Tcl_CmdProc		Tcl_EchoCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_LsObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_BeepObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_MacSourceObjCmd;
! TCL_EXTRNC Tcl_ObjCmdProc	Tcl_ResourceObjCmd;
  #endif
  
  /*
***************
*** 2012,2057 ****
   *----------------------------------------------------------------
   */
  
! EXTERN int	TclCompileAppendCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileBreakCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileCatchCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileContinueCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileExprCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileForCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileForeachCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileIfCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileIncrCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileLappendCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileLindexCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileListCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileLlengthCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileLsetCmd _ANSI_ARGS_((Tcl_Interp* interp,
! 		    Tcl_Parse* parsePtr, struct CompileEnv* envPtr));
! EXTERN int	TclCompileRegexpCmd _ANSI_ARGS_((Tcl_Interp* interp,
! 		    Tcl_Parse* parsePtr, struct CompileEnv* envPtr));
! EXTERN int	TclCompileReturnCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileSetCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileStringCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileSwitchCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
! EXTERN int	TclCompileWhileCmd _ANSI_ARGS_((Tcl_Interp *interp,
! 		    Tcl_Parse *parsePtr, struct CompileEnv *envPtr));
  
  /*
   * Functions defined in generic/tclVar.c and currenttly exported only 
--- 1920,1945 ----
   *----------------------------------------------------------------
   */
  
! TCL_EXTRNC CompileProc	TclCompileAppendCmd;
! TCL_EXTRNC CompileProc	TclCompileBreakCmd;
! TCL_EXTRNC CompileProc	TclCompileCatchCmd;
! TCL_EXTRNC CompileProc	TclCompileContinueCmd;
! TCL_EXTRNC CompileProc	TclCompileExprCmd;
! TCL_EXTRNC CompileProc	TclCompileForCmd;
! TCL_EXTRNC CompileProc	TclCompileForeachCmd;
! TCL_EXTRNC CompileProc	TclCompileIfCmd;
! TCL_EXTRNC CompileProc	TclCompileIncrCmd;
! TCL_EXTRNC CompileProc	TclCompileLappendCmd;
! TCL_EXTRNC CompileProc	TclCompileLindexCmd;
! TCL_EXTRNC CompileProc	TclCompileListCmd;
! TCL_EXTRNC CompileProc	TclCompileLlengthCmd;
! TCL_EXTRNC CompileProc	TclCompileLsetCmd;
! TCL_EXTRNC CompileProc	TclCompileRegexpCmd;
! TCL_EXTRNC CompileProc	TclCompileReturnCmd;
! TCL_EXTRNC CompileProc	TclCompileSetCmd;
! TCL_EXTRNC CompileProc	TclCompileStringCmd;
! TCL_EXTRNC CompileProc	TclCompileSwitchCmd;
! TCL_EXTRNC CompileProc	TclCompileWhileCmd;
  
  /*
   * Functions defined in generic/tclVar.c and currenttly exported only 
***************
*** 2059,2082 ****
   * be placed in the public interface.
   */
  
! EXTERN Var *	TclLookupArrayElement _ANSI_ARGS_((Tcl_Interp *interp,
  		    CONST char *arrayName, CONST char *elName, CONST int flags,
  		    CONST char *msg, CONST int createPart1,
  		    CONST int createPart2, Var *arrayPtr));	
! EXTERN Var *    TclObjLookupVar _ANSI_ARGS_((Tcl_Interp *interp,
  		    Tcl_Obj *part1Ptr, CONST char *part2, int flags,
  		    CONST char *msg, CONST int createPart1,
  		    CONST int createPart2, Var **arrayPtrPtr));
! EXTERN Tcl_Obj *TclPtrGetVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    CONST int flags));
! EXTERN Tcl_Obj *TclPtrSetVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    Tcl_Obj *newValuePtr, CONST int flags));
! EXTERN Tcl_Obj *TclPtrIncrVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    CONST long i, CONST int flags));
! EXTERN Tcl_Obj *TclPtrIncrWideVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    CONST Tcl_WideInt i, CONST int flags));
  
--- 1947,1970 ----
   * be placed in the public interface.
   */
  
! TCL_EXTRNC Var *TclLookupArrayElement _ANSI_ARGS_((Tcl_Interp *interp,
  		    CONST char *arrayName, CONST char *elName, CONST int flags,
  		    CONST char *msg, CONST int createPart1,
  		    CONST int createPart2, Var *arrayPtr));	
! TCL_EXTRNC Var *TclObjLookupVar _ANSI_ARGS_((Tcl_Interp *interp,
  		    Tcl_Obj *part1Ptr, CONST char *part2, int flags,
  		    CONST char *msg, CONST int createPart1,
  		    CONST int createPart2, Var **arrayPtrPtr));
! TCL_EXTRNC Tcl_Obj *TclPtrGetVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    CONST int flags));
! TCL_EXTRNC Tcl_Obj *TclPtrSetVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    Tcl_Obj *newValuePtr, CONST int flags));
! TCL_EXTRNC Tcl_Obj *TclPtrIncrVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    CONST long i, CONST int flags));
! TCL_EXTRNC Tcl_Obj *TclPtrIncrWideVar _ANSI_ARGS_((Tcl_Interp *interp, Var *varPtr,
  		    Var *arrayPtr, CONST char *part1, CONST char *part2,
  		    CONST Tcl_WideInt i, CONST int flags));
  
***************
*** 2137,2143 ****
  #endif /* TCL_MEM_DEBUG */
  
  #ifdef TCL_MEM_DEBUG
! EXTERN void	TclDbInitNewObj _ANSI_ARGS_((Tcl_Obj *objPtr));
  
  # define TclDbNewObj(objPtr, file, line) \
      TclIncrObjsAllocated(); \
--- 2025,2031 ----
  #endif /* TCL_MEM_DEBUG */
  
  #ifdef TCL_MEM_DEBUG
! TCL_EXTRNC void	TclDbInitNewObj _ANSI_ARGS_((Tcl_Obj *objPtr));
  
  # define TclDbNewObj(objPtr, file, line) \
      TclIncrObjsAllocated(); \
***************
*** 2175,2182 ****
   * from per-thread caches.
   */
  
! EXTERN Tcl_Obj *TclThreadAllocObj _ANSI_ARGS_((void));
! EXTERN void TclThreadFreeObj _ANSI_ARGS_((Tcl_Obj *));
  
  #  define TclAllocObjStorage(objPtr) \
         (objPtr) = TclThreadAllocObj()
--- 2063,2070 ----
   * from per-thread caches.
   */
  
! TCL_EXTRNC Tcl_Obj *TclThreadAllocObj _ANSI_ARGS_((void));
! TCL_EXTRNC void TclThreadFreeObj _ANSI_ARGS_((Tcl_Obj *));
  
  #  define TclAllocObjStorage(objPtr) \
         (objPtr) = TclThreadAllocObj()
***************
*** 2218,2224 ****
   * be as simple an expression as possible. The ANSI C "prototype" for
   * this macro is:
   *
!  * EXTERN void	TclInitStringRep _ANSI_ARGS_((Tcl_Obj *objPtr,
   *		    char *bytePtr, int len));
   *----------------------------------------------------------------
   */
--- 2106,2112 ----
   * be as simple an expression as possible. The ANSI C "prototype" for
   * this macro is:
   *
!  * TCL_EXTRNC void	TclInitStringRep _ANSI_ARGS_((Tcl_Obj *objPtr,
   *		    char *bytePtr, int len));
   *----------------------------------------------------------------
   */
***************
*** 2244,2250 ****
   * this pointer must not be modified by the caller.
   * The ANSI C "prototype" for this macro is:
   *
!  * EXTERN char *  TclGetString _ANSI_ARGS_((Tcl_Obj *objPtr));
   *----------------------------------------------------------------
   */
  
--- 2132,2138 ----
   * this pointer must not be modified by the caller.
   * The ANSI C "prototype" for this macro is:
   *
!  * TCL_EXTRNC CONST char *  TclGetString _ANSI_ARGS_((Tcl_Obj *objPtr));
   *----------------------------------------------------------------
   */
  

*** mac/tclMacInt.h	23 Nov 2001 01:27:36 -0000	1.7
--- mac/tclMacInt.h	13 Dec 2003 22:50:22 -0000
***************
*** 65,73 ****
   * Prototypes of Mac only internal functions.
   */
  
! EXTERN char *	TclMacGetFontEncoding _ANSI_ARGS_((int fontId));
! EXTERN int		TclMacHaveThreads _ANSI_ARGS_((void));
! EXTERN long		TclpGetGMTOffset _ANSI_ARGS_((void));
  
  # undef TCL_STORAGE_CLASS
  # define TCL_STORAGE_CLASS DLLIMPORT
--- 65,73 ----
   * Prototypes of Mac only internal functions.
   */
  
! TCL_EXTRNC char *	TclMacGetFontEncoding _ANSI_ARGS_((int fontId));
! TCL_EXTRNC int		TclMacHaveThreads _ANSI_ARGS_((void));
! TCL_EXTRNC long		TclpGetGMTOffset _ANSI_ARGS_((void));
  
  # undef TCL_STORAGE_CLASS
  # define TCL_STORAGE_CLASS DLLIMPORT

*** mac/tclMacPort.h	3 Mar 2003 20:22:44 -0000	1.17
--- mac/tclMacPort.h	13 Dec 2003 22:50:23 -0000
***************
*** 156,162 ****
   * Variables provided by the C library.
   */
   
! extern char **environ;
  
  /*
   *---------------------------------------------------------------------------
--- 156,162 ----
   * Variables provided by the C library.
   */
   
! TCL_EXTRNC char **environ;
  
  /*
   *---------------------------------------------------------------------------
***************
*** 234,240 ****
   * Prototypes needed for compatability
   */
  
! /* EXTERN int	strncasecmp _ANSI_ARGS_((CONST char *s1,
  			    CONST char *s2, size_t n)); */
  
  /*
--- 234,240 ----
   * Prototypes needed for compatability
   */
  
! /* TCL_EXTRNC int	strncasecmp _ANSI_ARGS_((CONST char *s1,
  			    CONST char *s2, size_t n)); */
  
  /*

*** tools/checkLibraryDoc.tcl	15 Jan 2002 17:55:30 -0000	1.7
--- tools/checkLibraryDoc.tcl	13 Dec 2003 22:50:25 -0000
***************
*** 243,249 ****
  
  proc grepDecl {dir pkg} {
      set file [file join $dir generic "[string tolower $pkg]IntDecls.h"] 
!     set apis [myGrep "^EXTERN.*\[ \t\]${pkg}_.*" $file]
      set pat1 ".*(${pkg}_\[A-z0-9]+).*$"
  
      foreach a $apis {
--- 243,249 ----
  
  proc grepDecl {dir pkg} {
      set file [file join $dir generic "[string tolower $pkg]IntDecls.h"] 
!     set apis [myGrep "^TCL_EXTERN.*\[ \t\]${pkg}_.*" $file]
      set pat1 ".*(${pkg}_\[A-z0-9]+).*$"
  
      foreach a $apis {
***************
*** 261,267 ****
      global CommentList
      global StructList
      
!     set apis [myGrep "^EXTERN.*\[ \t\]${pkg}_Db.*" "${dir}/\*/\*\.\[ch\]"]
      set pat1 ".*(${pkg}_\[A-z0-9]+).*$"
  
      foreach a $apis {
--- 261,267 ----
      global CommentList
      global StructList
      
!     set apis [myGrep "^TCL_EXTERN.*\[ \t\]${pkg}_Db.*" "${dir}/\*/\*\.\[ch\]"]
      set pat1 ".*(${pkg}_\[A-z0-9]+).*$"
  
      foreach a $apis {

*** tools/genStubs.tcl	25 Aug 2003 21:04:57 -0000	1.16
--- tools/genStubs.tcl	13 Dec 2003 22:50:27 -0000
***************
*** 357,363 ****
      lassign $decl rtype fname args
  
      append text "/* $index */\n"
!     set line "EXTERN $rtype"
      set count [expr {2 - ([string length $line] / 8)}]
      append line [string range "\t\t\t" 0 $count]
      set pad [expr {24 - [string length $line]}]
--- 357,363 ----
      lassign $decl rtype fname args
  
      append text "/* $index */\n"
!     set line "TCL_EXTERN($rtype)"
      set count [expr {2 - ([string length $line] / 8)}]
      append line [string range "\t\t\t" 0 $count]
      set pad [expr {24 - [string length $line]}]
***************
*** 803,812 ****
      emitSlots $name text
  
      append text "} ${capName}Stubs;\n"
! 
!     append text "\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n"
!     append text "extern ${capName}Stubs *${name}StubsPtr;\n"
!     append text "#ifdef __cplusplus\n}\n#endif\n"
  
      emitMacros $name text
  
--- 803,809 ----
      emitSlots $name text
  
      append text "} ${capName}Stubs;\n"
!     append text "\nTCL_EXTRNC ${capName}Stubs *${name}StubsPtr;\n"
  
      emitMacros $name text
  

*** unix/tclUnixPort.h	9 Dec 2003 15:27:48 -0000	1.32
--- unix/tclUnixPort.h	13 Dec 2003 22:50:29 -0000
***************
*** 86,94 ****
  #endif
  
  #if !HAVE_STRTOLL && defined(TCL_WIDE_INT_TYPE) && !TCL_WIDE_INT_IS_LONG
! EXTERN Tcl_WideInt	strtoll _ANSI_ARGS_((CONST char *string,
  					     char **endPtr, int base));
! EXTERN Tcl_WideUInt	strtoull _ANSI_ARGS_((CONST char *string,
  					      char **endPtr, int base));
  #endif
  
--- 86,94 ----
  #endif
  
  #if !HAVE_STRTOLL && defined(TCL_WIDE_INT_TYPE) && !TCL_WIDE_INT_IS_LONG
! TCL_EXTRNC Tcl_WideInt	strtoll _ANSI_ARGS_((CONST char *string,
  					     char **endPtr, int base));
! TCL_EXTRNC Tcl_WideUInt	strtoull _ANSI_ARGS_((CONST char *string,
  					      char **endPtr, int base));
  #endif
  
***************
*** 288,294 ****
  #endif
  
  #ifdef GETTOD_NOT_DECLARED
! EXTERN int		gettimeofday _ANSI_ARGS_((struct timeval *tp,
  			    struct timezone *tzp));
  #endif
  
--- 288,294 ----
  #endif
  
  #ifdef GETTOD_NOT_DECLARED
! TCL_EXTRNC int		gettimeofday _ANSI_ARGS_((struct timeval *tp,
  			    struct timezone *tzp));
  #endif
  
***************
*** 465,471 ****
   */
  
  #ifdef NO_ERRNO
! extern int errno;
  #endif /* NO_ERRNO */
  
  /*
--- 465,471 ----
   */
  
  #ifdef NO_ERRNO
! TCL_EXTRNC int errno;
  #endif /* NO_ERRNO */
  
  /*
***************
*** 488,494 ****
  #if defined(_sgi) || defined(__sgi) || (defined(__APPLE__) && defined(__DYNAMIC__))
  #   define environ _environ
  #endif
! extern char **environ;
  
  /*
   * At present (12/91) not all stdlib.h implementations declare strtod.
--- 488,494 ----
  #if defined(_sgi) || defined(__sgi) || (defined(__APPLE__) && defined(__DYNAMIC__))
  #   define environ _environ
  #endif
! TCL_EXTRNC char **environ;
  
  /*
   * At present (12/91) not all stdlib.h implementations declare strtod.
***************
*** 498,504 ****
   * up being too many conflicts with slightly-different prototypes.
   */
  
! extern double strtod();
  
  /*
   * There is no platform-specific panic routine for Unix in the Tcl internals.
--- 498,504 ----
   * up being too many conflicts with slightly-different prototypes.
   */
  
! TCL_EXTRNC double strtod();
  
  /*
   * There is no platform-specific panic routine for Unix in the Tcl internals.
***************
*** 558,570 ****
  #ifdef TCL_THREADS
  #include <pthread.h>
  typedef pthread_mutex_t TclpMutex;
! EXTERN void	TclpMutexInit _ANSI_ARGS_((TclpMutex *mPtr));
! EXTERN void	TclpMutexLock _ANSI_ARGS_((TclpMutex *mPtr));
! EXTERN void	TclpMutexUnlock _ANSI_ARGS_((TclpMutex *mPtr));
! EXTERN Tcl_DirEntry * 	TclpReaddir(DIR *);
! EXTERN struct tm *     	TclpLocaltime(time_t *);
! EXTERN struct tm *     	TclpGmtime(time_t *);
! EXTERN char *          	TclpInetNtoa(struct in_addr);
  #define readdir(x)	TclpReaddir(x)
  #define localtime(x)	TclpLocaltime(x)
  #define gmtime(x)	TclpGmtime(x)
--- 558,570 ----
  #ifdef TCL_THREADS
  #include <pthread.h>
  typedef pthread_mutex_t TclpMutex;
! TCL_EXTRNC void	TclpMutexInit _ANSI_ARGS_((TclpMutex *mPtr));
! TCL_EXTRNC void	TclpMutexLock _ANSI_ARGS_((TclpMutex *mPtr));
! TCL_EXTRNC void	TclpMutexUnlock _ANSI_ARGS_((TclpMutex *mPtr));
! TCL_EXTRNC Tcl_DirEntry * 	TclpReaddir(DIR *);
! TCL_EXTRNC struct tm *     	TclpLocaltime(time_t *);
! TCL_EXTRNC struct tm *     	TclpGmtime(time_t *);
! TCL_EXTRNC char *          	TclpInetNtoa(struct in_addr);
  #define readdir(x)	TclpReaddir(x)
  #define localtime(x)	TclpLocaltime(x)
  #define gmtime(x)	TclpGmtime(x)

*** win/tclWin32Dll.c	13 Oct 2003 16:48:07 -0000	1.28
--- win/tclWin32Dll.c	13 Dec 2003 22:50:31 -0000
***************
*** 54,59 ****
--- 54,60 ----
  
  static TclWinProcs asciiProcs = {
      0,
+     sizeof(TclWinProcs),
  
      (BOOL (WINAPI *)(CONST TCHAR *, LPDCB)) BuildCommDCBA,
      (TCHAR *(WINAPI *)(TCHAR *)) CharLowerA,
***************
*** 105,110 ****
--- 106,112 ----
  
  static TclWinProcs unicodeProcs = {
      1,
+     sizeof(TclWinProcs),
  
      (BOOL (WINAPI *)(CONST TCHAR *, LPDCB)) BuildCommDCBW,
      (TCHAR *(WINAPI *)(TCHAR *)) CharLowerW,

*** win/tclWinDde.c	10 Nov 2003 22:55:48 -0000	1.18
--- win/tclWinDde.c	13 Dec 2003 22:50:34 -0000
***************
*** 102,109 ****
  	int objc,			/* Number of arguments */
  	Tcl_Obj *CONST objv[]);	/* The arguments */
  
! EXTERN int Dde_Init(Tcl_Interp *interp);
! EXTERN int Dde_SafeInit(Tcl_Interp *interp);
  
  /*
   *----------------------------------------------------------------------
--- 102,109 ----
  	int objc,			/* Number of arguments */
  	Tcl_Obj *CONST objv[]);	/* The arguments */
  
! TCL_EXTERN(int) Dde_Init(Tcl_Interp *interp);
! TCL_EXTERN(int) Dde_SafeInit(Tcl_Interp *interp);
  
  /*
   *----------------------------------------------------------------------

*** win/tclWinInt.h	13 Oct 2003 16:48:07 -0000	1.23
--- win/tclWinInt.h	13 Dec 2003 22:50:36 -0000
***************
*** 60,65 ****
--- 60,66 ----
  
  typedef struct TclWinProcs {
      int useWide;
+     int sizeOfStruct;
  
      BOOL (WINAPI *buildCommDCBProc)(CONST TCHAR *, LPDCB);
      TCHAR *(WINAPI *charLowerProc)(TCHAR *);
***************
*** 138,164 ****
  		    LPBOOL AccessStatus);
  } TclWinProcs;
  
! EXTERN TclWinProcs *tclWinProcs;
  
  /*
   * Declarations of functions that are not accessible by way of the
   * stubs table.
   */
  
! EXTERN void		TclWinEncodingsCleanup();
! EXTERN void		TclWinResetInterfaceEncodings();
! EXTERN void		TclWinInit(HINSTANCE hInst);
! EXTERN int              TclWinSymLinkCopyDirectory(CONST TCHAR* LinkOriginal,
  						   CONST TCHAR* LinkCopy);
! EXTERN int              TclWinSymLinkDelete(CONST TCHAR* LinkOriginal, 
  					    int linkOnly);
! EXTERN char TclWinDriveLetterForVolMountPoint(CONST WCHAR *mountPoint);
  #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
! EXTERN void		TclWinFreeAllocCache(void);
! EXTERN void		TclFreeAllocCache(void *);
! EXTERN Tcl_Mutex	*TclpNewAllocMutex(void);
! EXTERN void		*TclpGetAllocCache(void);
! EXTERN void		TclpSetAllocCache(void *);
  #endif /* TCL_THREADS */
  
  /* Needed by tclWinFile.c and tclWinFCmd.c */
--- 139,165 ----
  		    LPBOOL AccessStatus);
  } TclWinProcs;
  
! TCL_EXTRNC TclWinProcs *tclWinProcs;
  
  /*
   * Declarations of functions that are not accessible by way of the
   * stubs table.
   */
  
! TCL_EXTRNC void		TclWinEncodingsCleanup();
! TCL_EXTRNC void		TclWinResetInterfaceEncodings();
! TCL_EXTRNC void		TclWinInit(HINSTANCE hInst);
! TCL_EXTRNC int		TclWinSymLinkCopyDirectory(CONST TCHAR* LinkOriginal,
  						   CONST TCHAR* LinkCopy);
! TCL_EXTRNC int		TclWinSymLinkDelete(CONST TCHAR* LinkOriginal, 
  					    int linkOnly);
! TCL_EXTRNC char TclWinDriveLetterForVolMountPoint(CONST WCHAR *mountPoint);
  #if defined(TCL_THREADS) && defined(USE_THREAD_ALLOC)
! TCL_EXTRNC void		TclWinFreeAllocCache(void);
! TCL_EXTRNC void		TclFreeAllocCache(void *);
! TCL_EXTRNC Tcl_Mutex	*TclpNewAllocMutex(void);
! TCL_EXTRNC void		*TclpGetAllocCache(void);
! TCL_EXTRNC void		TclpSetAllocCache(void *);
  #endif /* TCL_THREADS */
  
  /* Needed by tclWinFile.c and tclWinFCmd.c */

*** win/tclWinPort.h	27 Aug 2003 21:52:41 -0000	1.38
--- win/tclWinPort.h	13 Dec 2003 22:50:38 -0000
***************
*** 495,513 ****
   * Declarations for Windows-only functions.
   */
  
! EXTERN HANDLE	    TclWinSerialReopen _ANSI_ARGS_(( HANDLE handle,
  			CONST TCHAR *name, DWORD access));
  
! EXTERN Tcl_Channel  TclWinOpenSerialChannel _ANSI_ARGS_((HANDLE handle,
                          char *channelName, int permissions));
  					 
! EXTERN Tcl_Channel  TclWinOpenConsoleChannel _ANSI_ARGS_((HANDLE handle,
                          char *channelName, int permissions));
  
! EXTERN Tcl_Channel  TclWinOpenFileChannel _ANSI_ARGS_((HANDLE handle,
                          char *channelName, int permissions, int appendMode));
  
! EXTERN TclFile TclWinMakeFile _ANSI_ARGS_((HANDLE handle));
  
  /*
   * Platform specific mutex definition used by memory allocators.
--- 495,513 ----
   * Declarations for Windows-only functions.
   */
  
! TCL_EXTRNC HANDLE	TclWinSerialReopen _ANSI_ARGS_(( HANDLE handle,
  			CONST TCHAR *name, DWORD access));
  
! TCL_EXTRNC Tcl_Channel	TclWinOpenSerialChannel _ANSI_ARGS_((HANDLE handle,
                          char *channelName, int permissions));
  					 
! TCL_EXTRNC Tcl_Channel	TclWinOpenConsoleChannel _ANSI_ARGS_((HANDLE handle,
                          char *channelName, int permissions));
  
! TCL_EXTRNC Tcl_Channel	TclWinOpenFileChannel _ANSI_ARGS_((HANDLE handle,
                          char *channelName, int permissions, int appendMode));
  
! TCL_EXTRNC TclFile TclWinMakeFile _ANSI_ARGS_((HANDLE handle));
  
  /*
   * Platform specific mutex definition used by memory allocators.
***************
*** 518,526 ****
  
  #ifdef TCL_THREADS
  typedef CRITICAL_SECTION TclpMutex;
! EXTERN void	TclpMutexInit _ANSI_ARGS_((TclpMutex *mPtr));
! EXTERN void	TclpMutexLock _ANSI_ARGS_((TclpMutex *mPtr));
! EXTERN void	TclpMutexUnlock _ANSI_ARGS_((TclpMutex *mPtr));
  #else /* !TCL_THREADS */
  typedef int TclpMutex;
  #define	TclpMutexInit(a)
--- 518,526 ----
  
  #ifdef TCL_THREADS
  typedef CRITICAL_SECTION TclpMutex;
! TCL_EXTRNC void	TclpMutexInit _ANSI_ARGS_((TclpMutex *mPtr));
! TCL_EXTRNC void	TclpMutexLock _ANSI_ARGS_((TclpMutex *mPtr));
! TCL_EXTRNC void	TclpMutexUnlock _ANSI_ARGS_((TclpMutex *mPtr));
  #else /* !TCL_THREADS */
  typedef int TclpMutex;
  #define	TclpMutexInit(a)
***************
*** 529,537 ****
  #endif /* TCL_THREADS */
  
  #ifdef TCL_WIDE_INT_TYPE
! EXTERN Tcl_WideInt	strtoll _ANSI_ARGS_((CONST char *string,
  					     char **endPtr, int base));
! EXTERN Tcl_WideUInt	strtoull _ANSI_ARGS_((CONST char *string,
  					      char **endPtr, int base));
  #endif /* TCL_WIDE_INT_TYPE */
  
--- 529,537 ----
  #endif /* TCL_THREADS */
  
  #ifdef TCL_WIDE_INT_TYPE
! TCL_EXTRNC Tcl_WideInt	strtoll _ANSI_ARGS_((CONST char *string,
  					     char **endPtr, int base));
! TCL_EXTRNC Tcl_WideUInt	strtoull _ANSI_ARGS_((CONST char *string,
  					      char **endPtr, int base));
  #endif /* TCL_WIDE_INT_TYPE */
  

*** win/tclWinReg.c	10 Nov 2003 22:55:48 -0000	1.24
--- win/tclWinReg.c	13 Dec 2003 22:50:51 -0000
***************
*** 190,196 ****
  			    Tcl_Obj *valueNameObj, Tcl_Obj *dataObj,
  			    Tcl_Obj *typeObj);
  
! EXTERN int Registry_Init(Tcl_Interp *interp);
  
  /*
   *----------------------------------------------------------------------
--- 190,196 ----
  			    Tcl_Obj *valueNameObj, Tcl_Obj *dataObj,
  			    Tcl_Obj *typeObj);
  
! TCL_EXTERN(int) Registry_Init(Tcl_Interp *interp);
  
  /*
   *----------------------------------------------------------------------

