Diff
Not logged in

Differences From Artifact [5a8870e5fb]:

To Artifact [dda4085de6]:


2233
2234
2235
2236
2237
2238
2239
2240

2241
2242



2243

2244
2245
2246
2247
2248
2249
2250
				 * what modes to create it? */
{
    const Tcl_Filesystem *fsPtr;
    Tcl_Channel retVal = NULL;

    /*
     * We need this just to ensure we return the correct error messages under
     * some circumstances.

     */




    if (Tcl_FSGetNormalizedPath(interp, pathPtr) == NULL) {

	return NULL;
    }

    fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
    if (fsPtr != NULL && fsPtr->openFileChannelProc != NULL) {
	int mode, seekFlag, binary;








|
>


>
>
>
|
>







2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
				 * what modes to create it? */
{
    const Tcl_Filesystem *fsPtr;
    Tcl_Channel retVal = NULL;

    /*
     * We need this just to ensure we return the correct error messages under
     * some circumstances (relative paths only), so because the normalization 
     * is very expensive, don't invoke it for native or absolute paths.
     */

    if (
	!TclFSCwdIsNative() &&
	Tcl_FSGetPathType(pathPtr) != TCL_PATH_ABSOLUTE &&
	Tcl_FSGetNormalizedPath(interp, pathPtr) == NULL
    ) {
	return NULL;
    }

    fsPtr = Tcl_FSGetFileSystemForPath(pathPtr);
    if (fsPtr != NULL && fsPtr->openFileChannelProc != NULL) {
	int mode, seekFlag, binary;