diff options
Diffstat (limited to 'win')
-rw-r--r-- | win/tclWin32Dll.c | 33 | ||||
-rw-r--r-- | win/tclWinFCmd.c | 13 | ||||
-rw-r--r-- | win/tclWinInit.c | 8 | ||||
-rw-r--r-- | win/tclWinInt.h | 5 |
4 files changed, 42 insertions, 17 deletions
diff --git a/win/tclWin32Dll.c b/win/tclWin32Dll.c index 62d9e1c..5b939f9 100644 --- a/win/tclWin32Dll.c +++ b/win/tclWin32Dll.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclWin32Dll.c,v 1.23 2003/01/25 14:11:32 mdejong Exp $ + * RCS: @(#) $Id: tclWin32Dll.c,v 1.24 2003/02/04 17:06:52 vincentdarley Exp $ */ #include "tclWinInt.h" @@ -556,9 +556,37 @@ TclWinSetInterfaces( /* *--------------------------------------------------------------------------- * + * TclWinResetInterfaceEncodings -- + * + * Called during finalization to free up any encodings we use. + * The tclWinProcs-> look up table is still ok to use after + * this call, provided no encoding conversion is required. + * + * Results: + * None. + * + * Side effects: + * None. + * + *--------------------------------------------------------------------------- + */ +void +TclWinResetInterfaceEncodings() +{ + if (tclWinTCharEncoding != NULL) { + Tcl_FreeEncoding(tclWinTCharEncoding); + tclWinTCharEncoding = NULL; + } +} + +/* + *--------------------------------------------------------------------------- + * * TclWinResetInterfaces -- * * Called during finalization to reset us to a safe state for reuse. + * After this call, it is best not to use the tclWinProcs-> look + * up table since it is likely to be different to what is expected. * * Results: * None. @@ -568,12 +596,9 @@ TclWinSetInterfaces( * *--------------------------------------------------------------------------- */ - void TclWinResetInterfaces() { - Tcl_FreeEncoding(tclWinTCharEncoding); - tclWinTCharEncoding = NULL; tclWinProcs = &asciiProcs; } diff --git a/win/tclWinFCmd.c b/win/tclWinFCmd.c index 66d2931..28e7f27 100644 --- a/win/tclWinFCmd.c +++ b/win/tclWinFCmd.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclWinFCmd.c,v 1.33 2003/01/25 14:11:33 mdejong Exp $ + * RCS: @(#) $Id: tclWinFCmd.c,v 1.34 2003/02/04 17:06:53 vincentdarley Exp $ */ #include "tclWinInt.h" @@ -99,7 +99,6 @@ static int ConvertFileNameFormat(Tcl_Interp *interp, Tcl_Obj **attributePtrPtr); static int DoCopyFile(CONST TCHAR *srcPtr, CONST TCHAR *dstPtr); static int DoCreateDirectory(CONST TCHAR *pathPtr); -static int DoDeleteFile(CONST TCHAR *pathPtr); static int DoRemoveJustDirectory(CONST TCHAR *nativeSrc, int ignoreError, Tcl_DString *errorPtr); static int DoRemoveDirectory(Tcl_DString *pathPtr, int recursive, @@ -670,7 +669,7 @@ _except_docopyfile_handler( /* *--------------------------------------------------------------------------- * - * TclpObjDeleteFile, DoDeleteFile -- + * TclpObjDeleteFile, TclpDeleteFile -- * * Removes a single file (not a directory). * @@ -696,11 +695,11 @@ int TclpObjDeleteFile(pathPtr) Tcl_Obj *pathPtr; { - return DoDeleteFile(Tcl_FSGetNativePath(pathPtr)); + return TclpDeleteFile(Tcl_FSGetNativePath(pathPtr)); } -static int -DoDeleteFile( +int +TclpDeleteFile( CONST TCHAR *nativePath) /* Pathname of file to be removed (native). */ { DWORD attr; @@ -1380,7 +1379,7 @@ TraversalDelete( { switch (type) { case DOTREE_F: { - if (DoDeleteFile(nativeSrc) == TCL_OK) { + if (TclpDeleteFile(nativeSrc) == TCL_OK) { return TCL_OK; } break; diff --git a/win/tclWinInit.c b/win/tclWinInit.c index 186bb89..bdfbc8f 100644 --- a/win/tclWinInit.c +++ b/win/tclWinInit.c @@ -7,7 +7,7 @@ * Copyright (c) 1998-1999 by Scriptics Corporation. * All rights reserved. * - * RCS: @(#) $Id: tclWinInit.c,v 1.37 2003/01/10 15:03:55 vincentdarley Exp $ + * RCS: @(#) $Id: tclWinInit.c,v 1.38 2003/02/04 17:06:53 vincentdarley Exp $ */ #include "tclWinInt.h" @@ -465,7 +465,7 @@ ToUtf( /* *--------------------------------------------------------------------------- * - * TclWinFilesystemAndEncodingsCleanup -- + * TclWinEncodingsCleanup -- * * Reset information to its original state in finalization to * allow for reinitialization to be possible. This must not @@ -482,9 +482,9 @@ ToUtf( */ void -TclWinFilesystemAndEncodingsCleanup() +TclWinEncodingsCleanup() { - TclWinResetInterfaces(); + TclWinResetInterfaceEncodings(); libraryPathEncodingFixed = 0; if (binaryEncoding != NULL) { Tcl_FreeEncoding(binaryEncoding); diff --git a/win/tclWinInt.h b/win/tclWinInt.h index c9be10d..0e0f11d 100644 --- a/win/tclWinInt.h +++ b/win/tclWinInt.h @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclWinInt.h,v 1.19 2003/01/10 15:03:55 vincentdarley Exp $ + * RCS: @(#) $Id: tclWinInt.h,v 1.20 2003/02/04 17:06:53 vincentdarley Exp $ */ #ifndef _TCLWININT @@ -112,7 +112,8 @@ EXTERN TclWinProcs *tclWinProcs; * stubs table. */ -EXTERN void TclWinFilesystemAndEncodingsCleanup(); +EXTERN void TclWinEncodingsCleanup(); +EXTERN void TclWinResetInterfaceEncodings(); EXTERN void TclWinInit(HINSTANCE hInst); EXTERN int TclWinSymLinkCopyDirectory(CONST TCHAR* LinkOriginal, CONST TCHAR* LinkCopy); |