diff options
| author | dgp@users.sourceforge.net <dgp> | 2012-08-20 23:50:44 (GMT) |
|---|---|---|
| committer | dgp@users.sourceforge.net <dgp> | 2012-08-20 23:50:44 (GMT) |
| commit | 92536a13014df084488b845491542bbddcd1f4d5 (patch) | |
| tree | 740b650a52897d03d9c3dbd0632fbed19c9e2d31 /generic/tclPathObj.c | |
| parent | 0d03bb6f0f128ef84f791fc03c298999aaec64ce (diff) | |
| parent | 7dc83ee2161ff6870f219fca0191c38daa7a32e5 (diff) | |
| download | tcl-92536a13014df084488b845491542bbddcd1f4d5.zip tcl-92536a13014df084488b845491542bbddcd1f4d5.tar.gz tcl-92536a13014df084488b845491542bbddcd1f4d5.tar.bz2 | |
3559678 Fix bad filename normalization when the last component is the empty string.
Diffstat (limited to 'generic/tclPathObj.c')
| -rw-r--r-- | generic/tclPathObj.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c index db07c0e..2b9ff87 100644 --- a/generic/tclPathObj.c +++ b/generic/tclPathObj.c @@ -1764,7 +1764,7 @@ Tcl_FSGetNormalizedPath( */ Tcl_Obj *dir, *copy; - int cwdLen, pathType; + int tailLen, cwdLen, pathType; pathType = Tcl_FSGetPathType(fsPathPtr->cwdPtr); dir = Tcl_FSGetNormalizedPath(interp, fsPathPtr->cwdPtr); @@ -1776,7 +1776,12 @@ Tcl_FSGetNormalizedPath( UpdateStringOfFsPath(pathPtr); } - copy = AppendPath(dir, fsPathPtr->normPathPtr); + Tcl_GetStringFromObj(fsPathPtr->normPathPtr, &tailLen); + if (tailLen) { + copy = AppendPath(dir, fsPathPtr->normPathPtr); + } else { + copy = Tcl_DuplicateObj(dir); + } Tcl_IncrRefCount(dir); Tcl_IncrRefCount(copy); |
