summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2012-03-20 09:58:52 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2012-03-20 09:58:52 (GMT)
commit3e01654c1a5a2ba61662be868e3ad462906c7b0f (patch)
tree0787c7eb92e0ef00e18ed6b89cdf04287058cec8 /generic
parent2c7e68e5aeb40ae5340c57d4f80ef18a56a7db22 (diff)
parent23f5b19d027c7c6f2eec97dd900569b56a9087f7 (diff)
downloadtcl-3e01654c1a5a2ba61662be868e3ad462906c7b0f.zip
tcl-3e01654c1a5a2ba61662be868e3ad462906c7b0f.tar.gz
tcl-3e01654c1a5a2ba61662be868e3ad462906c7b0f.tar.bz2
[Bug 3508771] load tclreg.dll in cygwin tclsh
Diffstat (limited to 'generic')
-rw-r--r--generic/tcl.decls4
-rw-r--r--generic/tclInt.decls10
-rw-r--r--generic/tclIntPlatDecls.h137
-rw-r--r--generic/tclPlatDecls.h32
-rw-r--r--generic/tclStubInit.c88
5 files changed, 252 insertions, 19 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index 20e9575..b4fa6b5 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -2135,12 +2135,12 @@ declare 1 win {
################################
# Mac OS X specific functions
-declare 0 macosx {
+declare 0 {unix macosx} {
int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp,
CONST char *bundleName, int hasResourceFile,
int maxPathLen, char *libraryPath)
}
-declare 1 macosx {
+declare 1 {unix macosx} {
int Tcl_MacOSXOpenVersionedBundleResources(Tcl_Interp *interp,
CONST char *bundleName, CONST char *bundleVersion,
int hasResourceFile, int maxPathLen, char *libraryPath)
diff --git a/generic/tclInt.decls b/generic/tclInt.decls
index e30379e..d06faf2 100644
--- a/generic/tclInt.decls
+++ b/generic/tclInt.decls
@@ -1107,8 +1107,9 @@ declare 8 unix {
# Added in 8.1:
+# On non-cygwin, this is actually a reference to TclpCreateTempFile
declare 9 unix {
- TclFile TclpCreateTempFile(CONST char *contents)
+ int TclWinGetPlatformId(void)
}
# Added in 8.4:
@@ -1159,6 +1160,13 @@ declare 19 macosx {
void TclMacOSXNotifierAddRunLoopMode(CONST void *runLoopMode)
}
+declare 22 unix {
+ TclFile TclpCreateTempFile(CONST char *contents)
+}
+declare 29 unix {
+ int TclWinCPUID(unsigned int index, unsigned int *regs)
+}
+
# Local Variables:
# mode: tcl
diff --git a/generic/tclIntPlatDecls.h b/generic/tclIntPlatDecls.h
index 3c03015..37b6379 100644
--- a/generic/tclIntPlatDecls.h
+++ b/generic/tclIntPlatDecls.h
@@ -84,10 +84,10 @@ EXTERN TclFile TclpOpenFile(CONST char *fname, int mode);
/* 8 */
EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
#endif
-#ifndef TclpCreateTempFile_TCL_DECLARED
-#define TclpCreateTempFile_TCL_DECLARED
+#ifndef TclWinGetPlatformId_TCL_DECLARED
+#define TclWinGetPlatformId_TCL_DECLARED
/* 9 */
-EXTERN TclFile TclpCreateTempFile(CONST char *contents);
+EXTERN int TclWinGetPlatformId(void);
#endif
#ifndef TclpReaddir_TCL_DECLARED
#define TclpReaddir_TCL_DECLARED
@@ -116,6 +116,29 @@ EXTERN int TclUnixCopyFile(CONST char *src, CONST char *dst,
CONST Tcl_StatBuf *statBufPtr,
int dontCopyAtts);
#endif
+/* Slot 15 is reserved */
+/* Slot 16 is reserved */
+/* Slot 17 is reserved */
+/* Slot 18 is reserved */
+/* Slot 19 is reserved */
+/* Slot 20 is reserved */
+/* Slot 21 is reserved */
+#ifndef TclpCreateTempFile_TCL_DECLARED
+#define TclpCreateTempFile_TCL_DECLARED
+/* 22 */
+EXTERN TclFile TclpCreateTempFile(CONST char *contents);
+#endif
+/* Slot 23 is reserved */
+/* Slot 24 is reserved */
+/* Slot 25 is reserved */
+/* Slot 26 is reserved */
+/* Slot 27 is reserved */
+/* Slot 28 is reserved */
+#ifndef TclWinCPUID_TCL_DECLARED
+#define TclWinCPUID_TCL_DECLARED
+/* 29 */
+EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
+#endif
#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
#ifndef TclWinConvertError_TCL_DECLARED
@@ -302,10 +325,10 @@ EXTERN TclFile TclpOpenFile(CONST char *fname, int mode);
/* 8 */
EXTERN int TclUnixWaitForFile(int fd, int mask, int timeout);
#endif
-#ifndef TclpCreateTempFile_TCL_DECLARED
-#define TclpCreateTempFile_TCL_DECLARED
+#ifndef TclWinGetPlatformId_TCL_DECLARED
+#define TclWinGetPlatformId_TCL_DECLARED
/* 9 */
-EXTERN TclFile TclpCreateTempFile(CONST char *contents);
+EXTERN int TclWinGetPlatformId(void);
#endif
#ifndef TclpReaddir_TCL_DECLARED
#define TclpReaddir_TCL_DECLARED
@@ -369,6 +392,24 @@ EXTERN int TclMacOSXMatchType(Tcl_Interp *interp,
EXTERN void TclMacOSXNotifierAddRunLoopMode(
CONST VOID *runLoopMode);
#endif
+/* Slot 20 is reserved */
+/* Slot 21 is reserved */
+#ifndef TclpCreateTempFile_TCL_DECLARED
+#define TclpCreateTempFile_TCL_DECLARED
+/* 22 */
+EXTERN TclFile TclpCreateTempFile(CONST char *contents);
+#endif
+/* Slot 23 is reserved */
+/* Slot 24 is reserved */
+/* Slot 25 is reserved */
+/* Slot 26 is reserved */
+/* Slot 27 is reserved */
+/* Slot 28 is reserved */
+#ifndef TclWinCPUID_TCL_DECLARED
+#define TclWinCPUID_TCL_DECLARED
+/* 29 */
+EXTERN int TclWinCPUID(unsigned int index, unsigned int *regs);
+#endif
#endif /* MACOSX */
typedef struct TclIntPlatStubs {
@@ -385,12 +426,27 @@ typedef struct TclIntPlatStubs {
TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 6 */
TclFile (*tclpOpenFile) (CONST char *fname, int mode); /* 7 */
int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 8 */
- TclFile (*tclpCreateTempFile) (CONST char *contents); /* 9 */
+ int (*tclWinGetPlatformId) (void); /* 9 */
Tcl_DirEntry * (*tclpReaddir) (DIR *dir); /* 10 */
struct tm * (*tclpLocaltime_unix) (CONST time_t *clock); /* 11 */
struct tm * (*tclpGmtime_unix) (CONST time_t *clock); /* 12 */
char * (*tclpInetNtoa) (struct in_addr addr); /* 13 */
int (*tclUnixCopyFile) (CONST char *src, CONST char *dst, CONST Tcl_StatBuf *statBufPtr, int dontCopyAtts); /* 14 */
+ VOID *reserved15;
+ VOID *reserved16;
+ VOID *reserved17;
+ VOID *reserved18;
+ VOID *reserved19;
+ VOID *reserved20;
+ VOID *reserved21;
+ TclFile (*tclpCreateTempFile) (CONST char *contents); /* 22 */
+ VOID *reserved23;
+ VOID *reserved24;
+ VOID *reserved25;
+ VOID *reserved26;
+ VOID *reserved27;
+ VOID *reserved28;
+ int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
void (*tclWinConvertError) (unsigned long errCode); /* 0 */
@@ -434,7 +490,7 @@ typedef struct TclIntPlatStubs {
TclFile (*tclpMakeFile) (Tcl_Channel channel, int direction); /* 6 */
TclFile (*tclpOpenFile) (CONST char *fname, int mode); /* 7 */
int (*tclUnixWaitForFile) (int fd, int mask, int timeout); /* 8 */
- TclFile (*tclpCreateTempFile) (CONST char *contents); /* 9 */
+ int (*tclWinGetPlatformId) (void); /* 9 */
Tcl_DirEntry * (*tclpReaddir) (DIR *dir); /* 10 */
struct tm * (*tclpLocaltime_unix) (CONST time_t *clock); /* 11 */
struct tm * (*tclpGmtime_unix) (CONST time_t *clock); /* 12 */
@@ -445,6 +501,16 @@ typedef struct TclIntPlatStubs {
int (*tclMacOSXCopyFileAttributes) (CONST char *src, CONST char *dst, CONST Tcl_StatBuf *statBufPtr); /* 17 */
int (*tclMacOSXMatchType) (Tcl_Interp *interp, CONST char *pathName, CONST char *fileName, Tcl_StatBuf *statBufPtr, Tcl_GlobTypeData *types); /* 18 */
void (*tclMacOSXNotifierAddRunLoopMode) (CONST VOID *runLoopMode); /* 19 */
+ VOID *reserved20;
+ VOID *reserved21;
+ TclFile (*tclpCreateTempFile) (CONST char *contents); /* 22 */
+ VOID *reserved23;
+ VOID *reserved24;
+ VOID *reserved25;
+ VOID *reserved26;
+ VOID *reserved27;
+ VOID *reserved28;
+ int (*tclWinCPUID) (unsigned int index, unsigned int *regs); /* 29 */
#endif /* MACOSX */
} TclIntPlatStubs;
@@ -496,9 +562,9 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#define TclUnixWaitForFile \
(tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
#endif
-#ifndef TclpCreateTempFile
-#define TclpCreateTempFile \
- (tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
+#ifndef TclWinGetPlatformId
+#define TclWinGetPlatformId \
+ (tclIntPlatStubsPtr->tclWinGetPlatformId) /* 9 */
#endif
#ifndef TclpReaddir
#define TclpReaddir \
@@ -520,6 +586,27 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#define TclUnixCopyFile \
(tclIntPlatStubsPtr->tclUnixCopyFile) /* 14 */
#endif
+/* Slot 15 is reserved */
+/* Slot 16 is reserved */
+/* Slot 17 is reserved */
+/* Slot 18 is reserved */
+/* Slot 19 is reserved */
+/* Slot 20 is reserved */
+/* Slot 21 is reserved */
+#ifndef TclpCreateTempFile
+#define TclpCreateTempFile \
+ (tclIntPlatStubsPtr->tclpCreateTempFile) /* 22 */
+#endif
+/* Slot 23 is reserved */
+/* Slot 24 is reserved */
+/* Slot 25 is reserved */
+/* Slot 26 is reserved */
+/* Slot 27 is reserved */
+/* Slot 28 is reserved */
+#ifndef TclWinCPUID
+#define TclWinCPUID \
+ (tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
+#endif
#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
#ifndef TclWinConvertError
@@ -659,9 +746,9 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#define TclUnixWaitForFile \
(tclIntPlatStubsPtr->tclUnixWaitForFile) /* 8 */
#endif
-#ifndef TclpCreateTempFile
-#define TclpCreateTempFile \
- (tclIntPlatStubsPtr->tclpCreateTempFile) /* 9 */
+#ifndef TclWinGetPlatformId
+#define TclWinGetPlatformId \
+ (tclIntPlatStubsPtr->tclWinGetPlatformId) /* 9 */
#endif
#ifndef TclpReaddir
#define TclpReaddir \
@@ -703,6 +790,22 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#define TclMacOSXNotifierAddRunLoopMode \
(tclIntPlatStubsPtr->tclMacOSXNotifierAddRunLoopMode) /* 19 */
#endif
+/* Slot 20 is reserved */
+/* Slot 21 is reserved */
+#ifndef TclpCreateTempFile
+#define TclpCreateTempFile \
+ (tclIntPlatStubsPtr->tclpCreateTempFile) /* 22 */
+#endif
+/* Slot 23 is reserved */
+/* Slot 24 is reserved */
+/* Slot 25 is reserved */
+/* Slot 26 is reserved */
+/* Slot 27 is reserved */
+/* Slot 28 is reserved */
+#ifndef TclWinCPUID
+#define TclWinCPUID \
+ (tclIntPlatStubsPtr->tclWinCPUID) /* 29 */
+#endif
#endif /* MACOSX */
#endif /* defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS) */
@@ -714,4 +817,10 @@ extern TclIntPlatStubs *tclIntPlatStubsPtr;
#undef TclpLocaltime_unix
#undef TclpGmtime_unix
+#if !defined(__WIN32__) && !defined(__CYGWIN__) && defined(USE_TCL_STUBS)
+#undef TclpCreateTempFile
+#define TclpCreateTempFile \
+ ((TclFile (*)_ANSI_ARGS_((CONST char *))) tclIntPlatStubsPtr->tclWinGetPlatformId)
+#endif
+
#endif /* _TCLINTPLATDECLS */
diff --git a/generic/tclPlatDecls.h b/generic/tclPlatDecls.h
index ccb8c8f..d52a736 100644
--- a/generic/tclPlatDecls.h
+++ b/generic/tclPlatDecls.h
@@ -43,6 +43,24 @@
* Exported function declarations:
*/
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
+#ifndef Tcl_MacOSXOpenBundleResources_TCL_DECLARED
+#define Tcl_MacOSXOpenBundleResources_TCL_DECLARED
+/* 0 */
+EXTERN int Tcl_MacOSXOpenBundleResources(Tcl_Interp *interp,
+ CONST char *bundleName, int hasResourceFile,
+ int maxPathLen, char *libraryPath);
+#endif
+#ifndef Tcl_MacOSXOpenVersionedBundleResources_TCL_DECLARED
+#define Tcl_MacOSXOpenVersionedBundleResources_TCL_DECLARED
+/* 1 */
+EXTERN int Tcl_MacOSXOpenVersionedBundleResources(
+ Tcl_Interp *interp, CONST char *bundleName,
+ CONST char *bundleVersion,
+ int hasResourceFile, int maxPathLen,
+ char *libraryPath);
+#endif
+#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
#ifndef Tcl_WinUtfToTChar_TCL_DECLARED
#define Tcl_WinUtfToTChar_TCL_DECLARED
@@ -80,6 +98,10 @@ typedef struct TclPlatStubs {
int magic;
struct TclPlatStubHooks *hooks;
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
+ int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, CONST char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */
+ int (*tcl_MacOSXOpenVersionedBundleResources) (Tcl_Interp *interp, CONST char *bundleName, CONST char *bundleVersion, int hasResourceFile, int maxPathLen, char *libraryPath); /* 1 */
+#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
TCHAR * (*tcl_WinUtfToTChar) (CONST char *str, int len, Tcl_DString *dsPtr); /* 0 */
char * (*tcl_WinTCharToUtf) (CONST TCHAR *str, int len, Tcl_DString *dsPtr); /* 1 */
@@ -104,6 +126,16 @@ extern TclPlatStubs *tclPlatStubsPtr;
* Inline function declarations:
*/
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
+#ifndef Tcl_MacOSXOpenBundleResources
+#define Tcl_MacOSXOpenBundleResources \
+ (tclPlatStubsPtr->tcl_MacOSXOpenBundleResources) /* 0 */
+#endif
+#ifndef Tcl_MacOSXOpenVersionedBundleResources
+#define Tcl_MacOSXOpenVersionedBundleResources \
+ (tclPlatStubsPtr->tcl_MacOSXOpenVersionedBundleResources) /* 1 */
+#endif
+#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
#ifndef Tcl_WinUtfToTChar
#define Tcl_WinUtfToTChar \
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index d8a300c..b4e23a9 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -63,6 +63,61 @@ MODULE_SCOPE TclPlatStubs tclPlatStubs;
MODULE_SCOPE TclStubs tclStubs;
MODULE_SCOPE TclTomMathStubs tclTomMathStubs;
+#ifdef __CYGWIN__
+
+#define TclWinGetPlatformId winGetPlatformId
+#define Tcl_WinUtfToTChar winUtfToTChar
+#define Tcl_WinTCharToUtf winTCharToUtf
+
+static Tcl_Encoding winTCharEncoding;
+
+static int
+TclWinGetPlatformId()
+{
+ /* Don't bother to determine the real platform on cygwin,
+ * because VER_PLATFORM_WIN32_NT is the only supported platform */
+ return 2; /* VER_PLATFORM_WIN32_NT */;
+}
+
+static char *
+Tcl_WinUtfToTChar(string, len, dsPtr)
+ CONST char *string;
+ int len;
+ Tcl_DString *dsPtr;
+{
+ if (!winTCharEncoding) {
+ winTCharEncoding = Tcl_GetEncoding(NULL, "unicode");
+ }
+ return Tcl_UtfToExternalDString(winTCharEncoding,
+ string, len, dsPtr);
+}
+
+static char *
+Tcl_WinTCharToUtf(string, len, dsPtr)
+ CONST char *string;
+ int len;
+ Tcl_DString *dsPtr;
+{
+ if (!winTCharEncoding) {
+ winTCharEncoding = Tcl_GetEncoding(NULL, "unicode");
+ }
+ return Tcl_ExternalToUtfDString(winTCharEncoding,
+ string, len, dsPtr);
+}
+
+#define Tcl_MacOSXOpenBundleResources (int (*) _ANSI_ARGS_(( \
+ Tcl_Interp *, CONST char *, int, int, char *))) Tcl_WinUtfToTChar
+#define Tcl_MacOSXOpenVersionedBundleResources (int (*) _ANSI_ARGS_(( \
+ Tcl_Interp *, CONST char *, CONST char *, int, int, char *))) Tcl_WinTCharToUtf
+
+#elif !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
+# define TclWinGetPlatformId (int (*)()) TclpCreateTempFile
+# ifndef MAC_OSX_TCL
+# define Tcl_MacOSXOpenBundleResources 0
+# define Tcl_MacOSXOpenVersionedBundleResources 0
+# endif
+#endif
+
/*
* WARNING: The contents of this file is automatically generated by the
* tools/genStubs.tcl script. Any modifications to the function declarations
@@ -339,12 +394,27 @@ TclIntPlatStubs tclIntPlatStubs = {
TclpMakeFile, /* 6 */
TclpOpenFile, /* 7 */
TclUnixWaitForFile, /* 8 */
- TclpCreateTempFile, /* 9 */
+ TclWinGetPlatformId, /* 9 */
TclpReaddir, /* 10 */
TclpLocaltime_unix, /* 11 */
TclpGmtime_unix, /* 12 */
TclpInetNtoa, /* 13 */
TclUnixCopyFile, /* 14 */
+ NULL, /* 15 */
+ NULL, /* 16 */
+ NULL, /* 17 */
+ NULL, /* 18 */
+ NULL, /* 19 */
+ NULL, /* 20 */
+ NULL, /* 21 */
+ TclpCreateTempFile, /* 22 */
+ NULL, /* 23 */
+ NULL, /* 24 */
+ NULL, /* 25 */
+ NULL, /* 26 */
+ NULL, /* 27 */
+ NULL, /* 28 */
+ TclWinCPUID, /* 29 */
#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
TclWinConvertError, /* 0 */
@@ -388,7 +458,7 @@ TclIntPlatStubs tclIntPlatStubs = {
TclpMakeFile, /* 6 */
TclpOpenFile, /* 7 */
TclUnixWaitForFile, /* 8 */
- TclpCreateTempFile, /* 9 */
+ TclWinGetPlatformId, /* 9 */
TclpReaddir, /* 10 */
TclpLocaltime_unix, /* 11 */
TclpGmtime_unix, /* 12 */
@@ -399,12 +469,26 @@ TclIntPlatStubs tclIntPlatStubs = {
TclMacOSXCopyFileAttributes, /* 17 */
TclMacOSXMatchType, /* 18 */
TclMacOSXNotifierAddRunLoopMode, /* 19 */
+ NULL, /* 20 */
+ NULL, /* 21 */
+ TclpCreateTempFile, /* 22 */
+ NULL, /* 23 */
+ NULL, /* 24 */
+ NULL, /* 25 */
+ NULL, /* 26 */
+ NULL, /* 27 */
+ NULL, /* 28 */
+ TclWinCPUID, /* 29 */
#endif /* MACOSX */
};
TclPlatStubs tclPlatStubs = {
TCL_STUB_MAGIC,
NULL,
+#if !defined(__WIN32__) && !defined(MAC_OSX_TCL) /* UNIX */
+ Tcl_MacOSXOpenBundleResources, /* 0 */
+ Tcl_MacOSXOpenVersionedBundleResources, /* 1 */
+#endif /* UNIX */
#ifdef __WIN32__ /* WIN */
Tcl_WinUtfToTChar, /* 0 */
Tcl_WinTCharToUtf, /* 1 */