diff options
author | das <das@noemail.net> | 2006-03-28 10:45:25 (GMT) |
---|---|---|
committer | das <das@noemail.net> | 2006-03-28 10:45:25 (GMT) |
commit | fa17ae8c41999ad9b28ff3bea692082342eaece5 (patch) | |
tree | b8acbf01530bd42bb59a6bac8e90982c4dfc4d24 /unix | |
parent | 21d47741982ee008455ea57e734e1eb57c84a4ac (diff) | |
download | tcl-fa17ae8c41999ad9b28ff3bea692082342eaece5.zip tcl-fa17ae8c41999ad9b28ff3bea692082342eaece5.tar.gz tcl-fa17ae8c41999ad9b28ff3bea692082342eaece5.tar.bz2 |
* unix/tclUnixFCmd.c (TclpObjNormalizePath): deal with *BSD/Darwin
realpath() converting relative paths into absolute paths. [Bug 1064247]
FossilOrigin-Name: 3ac0e983d4c249890c9cf14ee6cba18141dc745c
Diffstat (limited to 'unix')
-rw-r--r-- | unix/tclUnixFCmd.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/unix/tclUnixFCmd.c b/unix/tclUnixFCmd.c index 5d9b7b6..1bba9ee 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.52 2006/03/25 01:32:11 das Exp $ + * RCS: @(#) $Id: tclUnixFCmd.c,v 1.53 2006/03/28 10:45:25 das Exp $ * * Portions of this code were derived from NetBSD source code which has the * following copyright notice: @@ -1884,9 +1884,17 @@ TclpObjNormalizePath( nativePath = Tcl_UtfToExternalDString(NULL, path, lastDir-path, &ds); if (Realpath(nativePath, normPath) != NULL) { - nextCheckpoint = lastDir - path; - goto wholeStringOk; + if (*nativePath != '/' && *normPath == '/') { + /* + * realpath has transformed a relative path into an + * absolute path, we do not know how to handle this. + */ + } else { + nextCheckpoint = lastDir - path; + goto wholeStringOk; + } } + Tcl_DStringFree(&ds); } } |