summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tcl.decls3
-rw-r--r--generic/tclIntPlatDecls.h5
-rw-r--r--generic/tclPlatDecls.h5
-rw-r--r--generic/tclStubInit.c8
-rw-r--r--win/tclWinError.c6
-rw-r--r--win/tclWinTest.c2
6 files changed, 25 insertions, 4 deletions
diff --git a/generic/tcl.decls b/generic/tcl.decls
index c4af7cc..88efc8b 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -2426,6 +2426,9 @@ declare 0 win {
declare 1 win {
char *Tcl_WinTCharToUtf(const TCHAR *str, int len, Tcl_DString *dsPtr)
}
+declare 2 win {
+ void Tcl_WinConvertError(unsigned errCode)
+}
################################
# Mac OS X specific functions
diff --git a/generic/tclIntPlatDecls.h b/generic/tclIntPlatDecls.h
index de308de..ab534aa 100644
--- a/generic/tclIntPlatDecls.h
+++ b/generic/tclIntPlatDecls.h
@@ -569,7 +569,12 @@ extern const TclIntPlatStubs *tclIntPlatStubsPtr;
#undef TclpLocaltime_unix
#undef TclpGmtime_unix
#undef TclWinConvertWSAError
+#undef TclWinConvertError
#define TclWinConvertWSAError TclWinConvertError
+#if !defined(TCL_USE_STUBS) && !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 9
+# define TclWinConvertError Tcl_WinConvertError
+#endif
+
#undef TclpInetNtoa
#define TclpInetNtoa inet_ntoa
diff --git a/generic/tclPlatDecls.h b/generic/tclPlatDecls.h
index 4b06148..c0ff12f 100644
--- a/generic/tclPlatDecls.h
+++ b/generic/tclPlatDecls.h
@@ -57,6 +57,8 @@ EXTERN TCHAR * Tcl_WinUtfToTChar(const char *str, int len,
/* 1 */
EXTERN char * Tcl_WinTCharToUtf(const TCHAR *str, int len,
Tcl_DString *dsPtr);
+/* 2 */
+EXTERN void Tcl_WinConvertError(unsigned errCode);
#endif /* WIN */
#ifdef MAC_OSX_TCL /* MACOSX */
/* 0 */
@@ -78,6 +80,7 @@ typedef struct TclPlatStubs {
#if defined(_WIN32) || defined(__CYGWIN__) /* 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 */
+ void (*tcl_WinConvertError) (unsigned errCode); /* 2 */
#endif /* WIN */
#ifdef MAC_OSX_TCL /* MACOSX */
int (*tcl_MacOSXOpenBundleResources) (Tcl_Interp *interp, const char *bundleName, int hasResourceFile, int maxPathLen, char *libraryPath); /* 0 */
@@ -102,6 +105,8 @@ extern const TclPlatStubs *tclPlatStubsPtr;
(tclPlatStubsPtr->tcl_WinUtfToTChar) /* 0 */
#define Tcl_WinTCharToUtf \
(tclPlatStubsPtr->tcl_WinTCharToUtf) /* 1 */
+#define Tcl_WinConvertError \
+ (tclPlatStubsPtr->tcl_WinConvertError) /* 2 */
#endif /* WIN */
#ifdef MAC_OSX_TCL /* MACOSX */
#define Tcl_MacOSXOpenBundleResources \
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 4b0e968..aab3aa7 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -74,6 +74,13 @@
#undef Tcl_UtfToUniCharDString
#undef Tcl_UtfToUniChar
#undef Tcl_MacOSXOpenBundleResources
+#undef TclWinConvertWSAError
+#undef TclWinConvertError
+#if defined(_WIN32) || defined(__CYGWIN__)
+#define TclWinConvertWSAError (void (*)(DWORD))(void *)Tcl_WinConvertError
+#define TclWinConvertError (void (*)(DWORD))(void *)Tcl_WinConvertError
+#endif
+
#if TCL_UTF_MAX > 3
static void uniCodePanic(void) {
@@ -1119,6 +1126,7 @@ static const TclPlatStubs tclPlatStubs = {
#if defined(_WIN32) || defined(__CYGWIN__) /* WIN */
Tcl_WinUtfToTChar, /* 0 */
Tcl_WinTCharToUtf, /* 1 */
+ Tcl_WinConvertError, /* 2 */
#endif /* WIN */
#ifdef MAC_OSX_TCL /* MACOSX */
Tcl_MacOSXOpenBundleResources, /* 0 */
diff --git a/win/tclWinError.c b/win/tclWinError.c
index e85becc..7e5898b 100644
--- a/win/tclWinError.c
+++ b/win/tclWinError.c
@@ -334,7 +334,7 @@ static const unsigned char wsaErrorTable[] = {
/*
*----------------------------------------------------------------------
*
- * TclWinConvertError --
+ * Tcl_WinConvertError --
*
* This routine converts a Win32 error into an errno value.
*
@@ -348,8 +348,8 @@ static const unsigned char wsaErrorTable[] = {
*/
void
-TclWinConvertError(
- DWORD errCode) /* Win32 error code. */
+Tcl_WinConvertError(
+ unsigned errCode) /* Win32 error code. */
{
if (errCode >= sizeof(errorTable)/sizeof(errorTable[0])) {
errCode -= WSAEWOULDBLOCK;
diff --git a/win/tclWinTest.c b/win/tclWinTest.c
index e924b1a..f45b557 100644
--- a/win/tclWinTest.c
+++ b/win/tclWinTest.c
@@ -208,7 +208,7 @@ TestvolumetypeCmd(
if (found == 0) {
Tcl_AppendResult(interp, "could not get volume type for \"",
(path?path:""), "\"", NULL);
- TclWinConvertError(GetLastError());
+ Tcl_WinConvertError(GetLastError());
return TCL_ERROR;
}
Tcl_AppendResult(interp, volType, NULL);