From 5da08b4c921f9c3f0e6c5c7049595fa6dc33f3b4 Mon Sep 17 00:00:00 2001 From: dgp Date: Mon, 26 Apr 2004 15:51:17 +0000 Subject: * unix/tclUnixFCmd.c (TclpObjNormalizePath): Corrected improper positioning of returned checkpoint. [Bug 941108] --- ChangeLog | 5 +++++ unix/tclUnixFCmd.c | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e7a98a0..0c69841 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-04-26 Don Porter + + * unix/tclUnixFCmd.c (TclpObjNormalizePath): Corrected improper + positioning of returned checkpoint. [Bug 941108] + 2004-04-26 Donal K. Fellows * doc/open.n, doc/close.n: Updated (thanks to David Welton) to be diff --git a/unix/tclUnixFCmd.c b/unix/tclUnixFCmd.c index 3bc94ca..430c932 100644 --- a/unix/tclUnixFCmd.c +++ b/unix/tclUnixFCmd.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclUnixFCmd.c,v 1.36 2004/04/06 22:25:56 dgp Exp $ + * RCS: @(#) $Id: tclUnixFCmd.c,v 1.37 2004/04/26 15:51:20 dgp Exp $ * * Portions of this code were derived from NetBSD source code which has * the following copyright notice: @@ -1810,9 +1810,18 @@ TclpObjNormalizePath(interp, pathPtr, nextCheckpoint) && (strcmp(normPath, nativePath) == 0)) { /* String is unchanged */ Tcl_DStringFree(&ds); - if (path[nextCheckpoint] != '\0') { - nextCheckpoint++; + /* + * Enable this to have the native FS claim normalization of + * the whole path for existing files. That would permit the + * caller to declare normalization complete without calls to + * additional filesystems. Saving lots of calls is probably + * worth the extra access() time here. When no other FS's + * are registered though, things are less clear. + * + if (0 == access(normPath, F_OK)) { + return pathLen; } + */ return nextCheckpoint; } -- cgit v0.12