| ︙ | | | ︙ | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
* Copyright (c) 1991-1994 The Regents of the University of California.
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
* Copyright (c) 2001-2004 Vincent Darley.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tclIOUtil.c,v 1.131 2006/03/28 10:28:36 das Exp $
*/
#include "tclInt.h"
#ifdef __WIN32__
# include "tclWinInt.h"
#endif
#include "tclFileSystem.h"
|
|
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
* Copyright (c) 1991-1994 The Regents of the University of California.
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
* Copyright (c) 2001-2004 Vincent Darley.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* RCS: @(#) $Id: tclIOUtil.c,v 1.132 2006/06/21 03:10:39 dgp Exp $
*/
#include "tclInt.h"
#ifdef __WIN32__
# include "tclWinInt.h"
#endif
#include "tclFileSystem.h"
|
| ︙ | | | ︙ | |
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
* code/extensions should not use them, since they do not provide as full
* support as the full filesystem API.
*
* As soon as prowrap and mktclapp are updated to use the full filesystem
* support, I suggest all these hooks are removed.
*/
#define USE_OBSOLETE_FS_HOOKS
#ifdef USE_OBSOLETE_FS_HOOKS
/*
* The following typedef declarations allow for hooking into the chain of
* functions maintained for 'Tcl_Stat(...)', 'Tcl_Access(...)' &
* 'Tcl_OpenFileChannel(...)'. Basically for each hookable function a linked
|
|
|
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
* code/extensions should not use them, since they do not provide as full
* support as the full filesystem API.
*
* As soon as prowrap and mktclapp are updated to use the full filesystem
* support, I suggest all these hooks are removed.
*/
#undef USE_OBSOLETE_FS_HOOKS
#ifdef USE_OBSOLETE_FS_HOOKS
/*
* The following typedef declarations allow for hooking into the chain of
* functions maintained for 'Tcl_Stat(...)', 'Tcl_Access(...)' &
* 'Tcl_OpenFileChannel(...)'. Basically for each hookable function a linked
|
| ︙ | | | ︙ | |
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
|
filesystemList = NULL;
/*
* Now filesystemList is NULL. This means that any attempt to use the
* filesystem is likely to fail.
*/
statProcList = NULL;
accessProcList = NULL;
openFileChannelProcList = NULL;
#ifdef __WIN32__
TclWinEncodingsCleanup();
#endif
}
/*
*----------------------------------------------------------------------
|
>
>
|
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
|
filesystemList = NULL;
/*
* Now filesystemList is NULL. This means that any attempt to use the
* filesystem is likely to fail.
*/
#ifdef USE_OBSOLETE_FS_HOOKS
statProcList = NULL;
accessProcList = NULL;
openFileChannelProcList = NULL;
#endif
#ifdef __WIN32__
TclWinEncodingsCleanup();
#endif
}
/*
*----------------------------------------------------------------------
|
| ︙ | | | ︙ | |
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
|
Tcl_Obj *pathPtr, /* Name of file to open. */
CONST char *modeString, /* A list of POSIX open modes or a string such
* as "rw". */
int permissions) /* If the open involves creating a file, with
* what modes to create it? */
{
Tcl_Filesystem *fsPtr;
#ifdef USE_OBSOLETE_FS_HOOKS
Tcl_Channel retVal = NULL;
/*
* Call each of the "Tcl_OpenFileChannel" functions in succession. A
* non-NULL return value indicates the particular function has succeeded.
*/
Tcl_MutexLock(&obsoleteFsHookMutex);
if (openFileChannelProcList != NULL) {
|
<
>
|
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
|
Tcl_Obj *pathPtr, /* Name of file to open. */
CONST char *modeString, /* A list of POSIX open modes or a string such
* as "rw". */
int permissions) /* If the open involves creating a file, with
* what modes to create it? */
{
Tcl_Filesystem *fsPtr;
Tcl_Channel retVal = NULL;
#ifdef USE_OBSOLETE_FS_HOOKS
/*
* Call each of the "Tcl_OpenFileChannel" functions in succession. A
* non-NULL return value indicates the particular function has succeeded.
*/
Tcl_MutexLock(&obsoleteFsHookMutex);
if (openFileChannelProcList != NULL) {
|
| ︙ | | | ︙ | |