diff options
-rw-r--r-- | generic/tclExecute.c | 2 | ||||
-rw-r--r-- | generic/tclPathObj.c | 7 | ||||
-rw-r--r--[-rwxr-xr-x] | library/clock.tcl | 0 | ||||
-rw-r--r-- | tests/fileName.test | 3 | ||||
-rw-r--r-- | tests/link.test | 2 | ||||
-rw-r--r-- | unix/tclUnixSock.c | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | win/tclWinFile.c | 0 |
7 files changed, 13 insertions, 3 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index d30e757..6499cf8 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -9408,7 +9408,7 @@ TclCompareTwoNumbers( Tcl_Obj *valuePtr, Tcl_Obj *value2Ptr) { - int type1, type2, compare; + int type1 = TCL_NUMBER_NAN, type2 = TCL_NUMBER_NAN, compare; ClientData ptr1, ptr2; mp_int big1, big2; double d1, d2, tmp; diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c index c2643bf..20f41a3 100644 --- a/generic/tclPathObj.c +++ b/generic/tclPathObj.c @@ -948,6 +948,7 @@ TclJoinPath( } } strElt = Tcl_GetStringFromObj(elt, &strEltLen); + driveNameLength = 0; type = TclGetPathType(elt, &fsPtr, &driveNameLength, &driveName); if (type != TCL_PATH_RELATIVE) { /* @@ -1003,6 +1004,12 @@ TclJoinPath( } } ptr = strElt; + /* [Bug f34cf83dd0] */ + if (driveNameLength > 0) { + if (ptr[0] == '/' && ptr[-1] == '/') { + goto noQuickReturn; + } + } while (*ptr != '\0') { if (*ptr == '/' && (ptr[1] == '/' || ptr[1] == '\0')) { /* diff --git a/library/clock.tcl b/library/clock.tcl index 8e4b657..8e4b657 100755..100644 --- a/library/clock.tcl +++ b/library/clock.tcl diff --git a/tests/fileName.test b/tests/fileName.test index 387d844..ce89623 100644 --- a/tests/fileName.test +++ b/tests/fileName.test @@ -441,6 +441,9 @@ test filename-7.18 {Tcl_JoinPath: unix} {testsetplatform} { testsetplatform unix file join /// a b } "/a/b" +test filename-7.19 {[Bug f34cf83dd0]} { + file join foo //bar +} /bar test filename-9.1 {Tcl_JoinPath: win} {testsetplatform} { testsetplatform win diff --git a/tests/link.test b/tests/link.test index dda7d6b..6bff356 100644 --- a/tests/link.test +++ b/tests/link.test @@ -152,7 +152,7 @@ test link-2.8 {writing C variables from Tcl} -constraints {testlink} -setup { set uwide "0O" concat [testlink get] | $int $real $bool $string $wide $char $uchar $short $ushort $uint $long $ulong $float $uwide } -result {0 0.0 0 0 0 0 0 0 0 0 0 0 0.0 0 | 0x 0b 0 0 0O 0X 0B 0O 0x 0b 0o 0X 0B 0O} -test link-2.8 {writing C variables from Tcl} -constraints {testlink} -setup { +test link-2.9 {writing C variables from Tcl} -constraints {testlink} -setup { testlink delete } -body { testlink set 43 1.21 4 - 56785678 64 250 30000 60000 0xbaadbeef 12321 32123 3.25 1231231234 diff --git a/unix/tclUnixSock.c b/unix/tclUnixSock.c index e8767e2..b9b6b53 100644 --- a/unix/tclUnixSock.c +++ b/unix/tclUnixSock.c @@ -713,7 +713,7 @@ IPv6AddressNeedsNumericRendering( * at least some versions of OSX. */ -#pragma GCC diagnostic push +#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstrict-aliasing" if (!IN6_IS_ADDR_V4MAPPED(&addr)) { #pragma GCC diagnostic pop diff --git a/win/tclWinFile.c b/win/tclWinFile.c index 6662327..6662327 100755..100644 --- a/win/tclWinFile.c +++ b/win/tclWinFile.c |