From cd814a13ac289e61904bdda1aaec14904d222f57 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 18 Jun 2021 10:15:01 +0000 Subject: Fix "make html-tcl" target, broken by this commit: [b70eeebb0d196bb2] (in core-8-7-a5-rc branch only) --- unix/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index b405348..f194c82 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -2390,7 +2390,7 @@ BUILD_HTML = \ @${NATIVE_TCLSH} $(TOOL_DIR)/tcltk-man2html.tcl \ --useversion=$(MAJOR_VERSION).$(MINOR_VERSION)$(PATCH_LEVEL) \ --htmldir="$(HTML_INSTALL_DIR)" \ - --srcdir=$(TOP_DIR)/.. $(BUILD_HTML_FLAGS) + --srcdir=$(TOP_DIR) $(BUILD_HTML_FLAGS) #-------------------------------------------------------------------------- # The list of all the targets that do not correspond to real files. This stops -- cgit v0.12 From ce199db516e7d83eb014a33579c727f4a7e68732 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 18 Jun 2021 10:44:08 +0000 Subject: Hm. tcltk-man2html.tcl cannot handle $(PATCH_LEVEL). Don't bother for now. --- unix/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unix/Makefile.in b/unix/Makefile.in index f194c82..9a6799c 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -2388,7 +2388,7 @@ html-tk: ${NATIVE_TCLSH} BUILD_HTML = \ @${NATIVE_TCLSH} $(TOOL_DIR)/tcltk-man2html.tcl \ - --useversion=$(MAJOR_VERSION).$(MINOR_VERSION)$(PATCH_LEVEL) \ + --useversion=$(MAJOR_VERSION).$(MINOR_VERSION) \ --htmldir="$(HTML_INSTALL_DIR)" \ --srcdir=$(TOP_DIR) $(BUILD_HTML_FLAGS) -- cgit v0.12 From eff036def9169a094533c7c709035a05b0b6f258 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sat, 19 Jun 2021 23:24:24 +0000 Subject: Fix windows build failure, caused by [f8608fc420] --- generic/tclZipfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c index 4d43331..c1ba395 100644 --- a/generic/tclZipfs.c +++ b/generic/tclZipfs.c @@ -32,7 +32,7 @@ #define TBLS 1 #endif -#if !defined(NO_DLFCN_H) +#if !defined(_WIN32) && !defined(NO_DLFCN_H) #include #endif -- cgit v0.12 From ee4adbec91804f1019ce381319c4e336e450d03b Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Sat, 19 Jun 2021 23:32:03 +0000 Subject: Assume chan-io-41.6 and chan-io-41.8 are UNIX-only. See [9be2726881c41893], those are failing on Windows now --- tests/chanio.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/chanio.test b/tests/chanio.test index 4e911f9..e8bcc5e 100644 --- a/tests/chanio.test +++ b/tests/chanio.test @@ -5511,7 +5511,7 @@ test chan-io-41.5 {Tcl_FileeventCmd: errors} -constraints fileevent -body { } -returnCodes error -result {bad event name "who-knows": must be readable or writable} -test chan-io-41.6 {Tcl_FileeventCmd: directory} -constraints fileevent -setup { +test chan-io-41.6 {Tcl_FileeventCmd: directory} -constraints {fileevent unix} -setup { set tempdir [::tcltests::tempdir] } -body { set chan [open $tempdir] @@ -5546,7 +5546,7 @@ test chan-io-41.7 {Tcl_FileeventCmd: special} -constraints { } -result 1 -test chan-io-41.8 {Tcl_FileeventCmd: symbolic link} -constraints fileevent -setup { +test chan-io-41.8 {Tcl_FileeventCmd: symbolic link} -constraints {fileevent unix} -setup { set tempdir [::tcltests::tempdir] } -body { set target [makeFile {not again} thefile $tempdir] -- cgit v0.12 From 70c2b0e817830a7baec1796e3dc095fba8b7f6f8 Mon Sep 17 00:00:00 2001 From: pooryorick Date: Sun, 20 Jun 2021 22:47:14 +0000 Subject: Fix for [f9800d52bd61f240], vwait is not NRE-enabled, and yieldto cannot find the right splicing spot --- generic/tclBasic.c | 24 +++++++++++++++++++++++- generic/tclExecute.c | 1 + generic/tclInt.h | 5 +++++ tests/coroutine.test | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 63 insertions(+), 1 deletion(-) diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 86d7960..69194f8 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -4866,6 +4866,7 @@ NRCommand( int result) { Interp *iPtr = (Interp *) interp; + Tcl_Obj *listPtr; iPtr->numLevels--; @@ -4874,7 +4875,10 @@ NRCommand( */ if (data[1] && (data[1] != INT2PTR(1))) { - TclNRAddCallback(interp, TclNRTailcallEval, data[1], NULL, NULL, NULL); + listPtr = (Tcl_Obj *)data[1]; + data[1] = NULL; + + TclNRAddCallback(interp, TclNRTailcallEval, listPtr, NULL, NULL, NULL); } /* OPT ?? @@ -9449,6 +9453,7 @@ TclNRYieldToObjCmd( iPtr->execEnvPtr = corPtr->callerEEPtr; TclSetTailcall(interp, listPtr); + corPtr->yieldPtr = listPtr; iPtr->execEnvPtr = corPtr->eePtr; return TclNRYieldObjCmd(INT2PTR(CORO_ACTIVATE_YIELDM), interp, 1, objv); @@ -9646,6 +9651,22 @@ TclNRCoroutineActivateCallback( */ if (corPtr->stackLevel != stackLevel) { + NRE_callback *runPtr; + + iPtr->execEnvPtr = corPtr->callerEEPtr; + if (corPtr->yieldPtr) { + for (runPtr = TOP_CB(interp); runPtr; runPtr = runPtr->nextPtr) { + if (runPtr->data[1] == corPtr->yieldPtr) { + runPtr->data[1] = NULL; + Tcl_DecrRefCount(corPtr->yieldPtr); + corPtr->yieldPtr = NULL; + break; + } + } + } + iPtr->execEnvPtr = corPtr->eePtr; + + Tcl_SetObjResult(interp, Tcl_NewStringObj( "cannot yield: C stack busy", -1)); Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "CANT_YIELD", @@ -9661,6 +9682,7 @@ TclNRCoroutineActivateCallback( Tcl_Panic("Yield received an option which is not implemented"); } + corPtr->yieldPtr = NULL; corPtr->stackLevel = NULL; numLevels = iPtr->numLevels; diff --git a/generic/tclExecute.c b/generic/tclExecute.c index f9c2954..7e51c0d 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -2506,6 +2506,7 @@ TEBCresume( Tcl_IncrRefCount(valuePtr); iPtr->execEnvPtr = corPtr->callerEEPtr; TclSetTailcall(interp, valuePtr); + corPtr->yieldPtr = valuePtr; iPtr->execEnvPtr = corPtr->eePtr; yieldParameter = (PTR2INT(NULL)+1); /*==CORO_ACTIVATE_YIELDM*/ diff --git a/generic/tclInt.h b/generic/tclInt.h index ad9a5c1..05167b7 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -1496,6 +1496,11 @@ typedef struct CoroutineData { int nargs; /* Number of args required for resuming this * coroutine; -2 means "0 or 1" (default), -1 * means "any" */ + Tcl_Obj *yieldPtr; /* The command to yield to. Stored here in + * order to reset splice point in + * TclNRCoroutineActivateCallback if the + * coroutine is busy. + */ } CoroutineData; typedef struct ExecEnv { diff --git a/tests/coroutine.test b/tests/coroutine.test index b129c03..e155d09 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -755,6 +755,40 @@ test coroutine-7.12 {coro floor above street level #3008307} -body { rename boom {}; rename cc {}; rename c {} } -result {} + +test coroutine-7.13 { +issue f9800d52bd61f240 + +vwait is not NRE-enabled, and yieldto cannot find the right splicing spot +} -body { + coroutine c0 apply [list {} { + variable done + yield + yieldto c1 + after 0 c2 + vwait [namespace current]::done + } [namespace current]] + + coroutine c1 apply [list {} { + yield + tailcall c0 + } [namespace current]] + + coroutine c2 apply [list {} { + variable done + yield + after 0 [list [info coroutine]] + yieldto try {yieldto c1} + after 0 [list [info coroutine]] + yieldto try {yieldto c1} + set done 1 + } [namespace current]] + + after 0 [list [namespace which c0]] + vwait [namespace current]::done + return $done +} -result 1 + test coroutine-8.0.0 {coro inject executed} -body { coroutine demo apply {{} { foreach i {1 2} yield }} demo -- cgit v0.12 From 7357ee63c3c9387431017478d0f70dbd6c4bc21c Mon Sep 17 00:00:00 2001 From: pooryorick Date: Mon, 21 Jun 2021 05:40:22 +0000 Subject: test for issue [5106fddd4400e5b9b], failure to yieldto is not the same thing as not calling yieldto in the first place --- tests/coroutine.test | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/tests/coroutine.test b/tests/coroutine.test index e155d09..437d9ad 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -757,9 +757,9 @@ test coroutine-7.12 {coro floor above street level #3008307} -body { test coroutine-7.13 { -issue f9800d52bd61f240 + issue f9800d52bd61f240 -vwait is not NRE-enabled, and yieldto cannot find the right splicing spot + vwait is not NRE-enabled, and yieldto cannot find the right splicing spot } -body { coroutine c0 apply [list {} { variable done @@ -789,6 +789,38 @@ vwait is not NRE-enabled, and yieldto cannot find the right splicing spot return $done } -result 1 + +test coroutine-7.14 { + issue 5106fddd4400e5b9 + + failure to yieldto is not the same thing as not calling yieldto in the + first place +} -body { + variable done + variable done1 + + coroutine c0 ::apply [list {} { + yield + variable done0 + after 0 [list [namespace which c1]] + vwait [namespace current]::done0 + } [namespace current]] + + coroutine c1 ::apply [list {} { + variable done0 + yield + yieldto try "yieldto [list [info coroutine]]" on error {} " + ::set [list [namespace current]]::done1 failure + ::set [list [namespace current]]::done0 failure + " + set done0 success + } [namespace current]] + after 1 [list [namespace which c0]] + vwait [namespace current]::done0 + return [list $done0 $done1] +} -result {failure failure} + + test coroutine-8.0.0 {coro inject executed} -body { coroutine demo apply {{} { foreach i {1 2} yield }} demo -- cgit v0.12 From c60ee515ee3df4dfa977ba55edda499328b35566 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Jun 2021 09:29:18 +0000 Subject: Fix [048dd20b4171c8da]: cesu-8 encoding fails on \u80 --- generic/tclEncoding.c | 2 +- tests/encoding.test | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index 21c254e..9367863 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -2280,7 +2280,7 @@ UtfToUtfProc( break; } src += len; - if (!(flags & TCL_ENCODING_UTF)) { + if (!(flags & TCL_ENCODING_UTF) && (ch > 0x3FF)) { if (ch > 0xFFFF) { /* CESU-8 6-byte sequence for chars > U+FFFF */ ch -= 0x10000; diff --git a/tests/encoding.test b/tests/encoding.test index 21610a7..6fc3349 100644 --- a/tests/encoding.test +++ b/tests/encoding.test @@ -429,6 +429,21 @@ test encoding-15.21 {UtfToUtfProc CESU-8 noncharacter} { binary scan $y H* z list [string length $y] $z } {3 efbfbf} +test encoding-15.22 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { + set y [encoding convertto cesu-8 \x80] + binary scan $y H* z + list [string length $y] $z +} {2 c280} +test encoding-15.22 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { + set y [encoding convertto cesu-8 \u100] + binary scan $y H* z + list [string length $y] $z +} {2 c480} +test encoding-15.22 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { + set y [encoding convertto cesu-8 \u3FF] + binary scan $y H* z + list [string length $y] $z +} {2 cfbf} test encoding-16.1 {Utf16ToUtfProc} -body { set val [encoding convertfrom utf-16 NN] -- cgit v0.12 From 954fcc121d11445946f89a2ec85795f29934ebd9 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Jun 2021 09:40:59 +0000 Subject: renumber testcases --- tests/encoding.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/encoding.test b/tests/encoding.test index 6fc3349..cc15cde 100644 --- a/tests/encoding.test +++ b/tests/encoding.test @@ -434,12 +434,12 @@ test encoding-15.22 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { binary scan $y H* z list [string length $y] $z } {2 c280} -test encoding-15.22 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { +test encoding-15.23 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { set y [encoding convertto cesu-8 \u100] binary scan $y H* z list [string length $y] $z } {2 c480} -test encoding-15.22 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { +test encoding-15.24 {UtfToUtfProc CESU-8 bug [048dd20b4171c8da]} { set y [encoding convertto cesu-8 \u3FF] binary scan $y H* z list [string length $y] $z -- cgit v0.12 From f36b113b009b236b41e280feb350c6eb2e4820fa Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Jun 2021 09:45:43 +0000 Subject: eol-spacing --- tests/chanio.test | 4 ++-- tests/coroutine.test | 8 ++++---- tools/encoding/iso8859-7.txt | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/chanio.test b/tests/chanio.test index e8bcc5e..2d26ac9 100644 --- a/tests/chanio.test +++ b/tests/chanio.test @@ -5514,7 +5514,7 @@ test chan-io-41.5 {Tcl_FileeventCmd: errors} -constraints fileevent -body { test chan-io-41.6 {Tcl_FileeventCmd: directory} -constraints {fileevent unix} -setup { set tempdir [::tcltests::tempdir] } -body { - set chan [open $tempdir] + set chan [open $tempdir] chan event $chan readable [list ::apply [list {} { variable success set success 1 @@ -5551,7 +5551,7 @@ test chan-io-41.8 {Tcl_FileeventCmd: symbolic link} -constraints {fileevent unix } -body { set target [makeFile {not again} thefile $tempdir] set link [file join $tempdir thelin] - file link -symbolic $link $target + file link -symbolic $link $target set chan [open $link] chan event $chan readable [list ::apply [list {} { variable success diff --git a/tests/coroutine.test b/tests/coroutine.test index 437d9ad..cbd6ffa 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -765,7 +765,7 @@ test coroutine-7.13 { variable done yield yieldto c1 - after 0 c2 + after 0 c2 vwait [namespace current]::done } [namespace current]] @@ -787,11 +787,11 @@ test coroutine-7.13 { after 0 [list [namespace which c0]] vwait [namespace current]::done return $done -} -result 1 +} -result 1 test coroutine-7.14 { - issue 5106fddd4400e5b9 + issue 5106fddd4400e5b9 failure to yieldto is not the same thing as not calling yieldto in the first place @@ -818,7 +818,7 @@ test coroutine-7.14 { after 1 [list [namespace which c0]] vwait [namespace current]::done0 return [list $done0 $done1] -} -result {failure failure} +} -result {failure failure} test coroutine-8.0.0 {coro inject executed} -body { diff --git a/tools/encoding/iso8859-7.txt b/tools/encoding/iso8859-7.txt index 245595d..9131ae3 100644 --- a/tools/encoding/iso8859-7.txt +++ b/tools/encoding/iso8859-7.txt @@ -16,7 +16,7 @@ # ISO 8859-7:2003 characters map into Unicode. # # ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928, -# and ECMA 118. ISO 8859-7:2003 adds two currency signs +# and ECMA 118. ISO 8859-7:2003 adds two currency signs # and one other character not in the earlier standard. # # Format: Three tab-separated columns -- cgit v0.12 From cdae95cf66d9d27eec969ba28abb4a3ba87ea5d6 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Jun 2021 10:27:02 +0000 Subject: Backout merge of "bug-f9800d52bd61f240" branch, which is - apparently - not ready to be merged yet. This is causing failures on all platforms: [https://github.com/tcltk/tcl/runs/2872891537?check_suite_focus=true] --- generic/tclBasic.c | 24 +------------------ generic/tclExecute.c | 1 - generic/tclInt.h | 5 ---- tests/coroutine.test | 66 ---------------------------------------------------- 4 files changed, 1 insertion(+), 95 deletions(-) diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 69194f8..86d7960 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -4866,7 +4866,6 @@ NRCommand( int result) { Interp *iPtr = (Interp *) interp; - Tcl_Obj *listPtr; iPtr->numLevels--; @@ -4875,10 +4874,7 @@ NRCommand( */ if (data[1] && (data[1] != INT2PTR(1))) { - listPtr = (Tcl_Obj *)data[1]; - data[1] = NULL; - - TclNRAddCallback(interp, TclNRTailcallEval, listPtr, NULL, NULL, NULL); + TclNRAddCallback(interp, TclNRTailcallEval, data[1], NULL, NULL, NULL); } /* OPT ?? @@ -9453,7 +9449,6 @@ TclNRYieldToObjCmd( iPtr->execEnvPtr = corPtr->callerEEPtr; TclSetTailcall(interp, listPtr); - corPtr->yieldPtr = listPtr; iPtr->execEnvPtr = corPtr->eePtr; return TclNRYieldObjCmd(INT2PTR(CORO_ACTIVATE_YIELDM), interp, 1, objv); @@ -9651,22 +9646,6 @@ TclNRCoroutineActivateCallback( */ if (corPtr->stackLevel != stackLevel) { - NRE_callback *runPtr; - - iPtr->execEnvPtr = corPtr->callerEEPtr; - if (corPtr->yieldPtr) { - for (runPtr = TOP_CB(interp); runPtr; runPtr = runPtr->nextPtr) { - if (runPtr->data[1] == corPtr->yieldPtr) { - runPtr->data[1] = NULL; - Tcl_DecrRefCount(corPtr->yieldPtr); - corPtr->yieldPtr = NULL; - break; - } - } - } - iPtr->execEnvPtr = corPtr->eePtr; - - Tcl_SetObjResult(interp, Tcl_NewStringObj( "cannot yield: C stack busy", -1)); Tcl_SetErrorCode(interp, "TCL", "COROUTINE", "CANT_YIELD", @@ -9682,7 +9661,6 @@ TclNRCoroutineActivateCallback( Tcl_Panic("Yield received an option which is not implemented"); } - corPtr->yieldPtr = NULL; corPtr->stackLevel = NULL; numLevels = iPtr->numLevels; diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 7e51c0d..f9c2954 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -2506,7 +2506,6 @@ TEBCresume( Tcl_IncrRefCount(valuePtr); iPtr->execEnvPtr = corPtr->callerEEPtr; TclSetTailcall(interp, valuePtr); - corPtr->yieldPtr = valuePtr; iPtr->execEnvPtr = corPtr->eePtr; yieldParameter = (PTR2INT(NULL)+1); /*==CORO_ACTIVATE_YIELDM*/ diff --git a/generic/tclInt.h b/generic/tclInt.h index 05167b7..ad9a5c1 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -1496,11 +1496,6 @@ typedef struct CoroutineData { int nargs; /* Number of args required for resuming this * coroutine; -2 means "0 or 1" (default), -1 * means "any" */ - Tcl_Obj *yieldPtr; /* The command to yield to. Stored here in - * order to reset splice point in - * TclNRCoroutineActivateCallback if the - * coroutine is busy. - */ } CoroutineData; typedef struct ExecEnv { diff --git a/tests/coroutine.test b/tests/coroutine.test index cbd6ffa..b129c03 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -755,72 +755,6 @@ test coroutine-7.12 {coro floor above street level #3008307} -body { rename boom {}; rename cc {}; rename c {} } -result {} - -test coroutine-7.13 { - issue f9800d52bd61f240 - - vwait is not NRE-enabled, and yieldto cannot find the right splicing spot -} -body { - coroutine c0 apply [list {} { - variable done - yield - yieldto c1 - after 0 c2 - vwait [namespace current]::done - } [namespace current]] - - coroutine c1 apply [list {} { - yield - tailcall c0 - } [namespace current]] - - coroutine c2 apply [list {} { - variable done - yield - after 0 [list [info coroutine]] - yieldto try {yieldto c1} - after 0 [list [info coroutine]] - yieldto try {yieldto c1} - set done 1 - } [namespace current]] - - after 0 [list [namespace which c0]] - vwait [namespace current]::done - return $done -} -result 1 - - -test coroutine-7.14 { - issue 5106fddd4400e5b9 - - failure to yieldto is not the same thing as not calling yieldto in the - first place -} -body { - variable done - variable done1 - - coroutine c0 ::apply [list {} { - yield - variable done0 - after 0 [list [namespace which c1]] - vwait [namespace current]::done0 - } [namespace current]] - - coroutine c1 ::apply [list {} { - variable done0 - yield - yieldto try "yieldto [list [info coroutine]]" on error {} " - ::set [list [namespace current]]::done1 failure - ::set [list [namespace current]]::done0 failure - " - set done0 success - } [namespace current]] - after 1 [list [namespace which c0]] - vwait [namespace current]::done0 - return [list $done0 $done1] -} -result {failure failure} - - test coroutine-8.0.0 {coro inject executed} -body { coroutine demo apply {{} { foreach i {1 2} yield }} demo -- cgit v0.12 From 3f913d322f99aae818c2fbe06049a19c4c1125f8 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Jun 2021 12:00:29 +0000 Subject: Change a lot of url's (as far as possible) from http:// to https:// --- ChangeLog | 2 +- ChangeLog.2004 | 2 +- ChangeLog.2007 | 2 +- README.md | 4 ++-- changes | 6 +++--- doc/clock.n | 4 ++-- doc/dde.n | 2 +- doc/tm.n | 4 ++-- generic/tcl.h | 2 +- tools/encoding/iso8859-7.txt | 2 +- unix/README | 6 +++--- unix/tcl.pc.in | 2 +- unix/tcl.spec | 2 +- win/README | 9 ++------- win/tclWinFile.c | 2 +- 15 files changed, 23 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec5e78f..61e3e04 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8096,7 +8096,7 @@ a better first place to look now. 2009-03-25 Jan Nijtmans * doc/tclsh.1: Bring doc and tools in line with - * tools/installData.tcl: http://wiki.tcl.tk/812 + * tools/installData.tcl: https://wiki.tcl-lang.org/page/exec+magic * tools/str2c * tools/tcltk-man2html.tcl diff --git a/ChangeLog.2004 b/ChangeLog.2004 index f7da18d..550e286 100644 --- a/ChangeLog.2004 +++ b/ChangeLog.2004 @@ -345,7 +345,7 @@ * library/clock.tcl: Corrected the regular expressions that match a time zone to allow for time zones specified as +HH or -HH. * tests/clock.test: Added regression test case for the above issue. - Thanks to Rolf Ade for reporting this issue [http://wiki.tcl.tk/13094] + Thanks to Rolf Ade for reporting this issue [https://wiki.tcl-lang.org/page/Parsing+ISO8601+dates+and+times] * win/tclWinDde.c (Tcl_DdeObjCmd): Corrected a typo that caused a compilation failure on VC++. diff --git a/ChangeLog.2007 b/ChangeLog.2007 index 5995956..dd2a5fe 100644 --- a/ChangeLog.2007 +++ b/ChangeLog.2007 @@ -5262,7 +5262,7 @@ * generic/tclStrToD.c: Added code to support the "middle endian" floating point format used in the Nokia N770's software-based floating point. Thanks to Bruce Johnson for reporting this bug, originally on - http://wiki.tcl.tk/15408. + https://wiki.tcl-lang.org/page/Nokia+770. * library/clock.tcl: Fixed a bug with Daylight Saving Time and Posix time zone specifiers reported by Martin Lemburg in http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9a8b15a4dfc0b7a0 diff --git a/README.md b/README.md index c559a82..7a2bca0 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ and selling it either in whole or in part. See the file ## 2. Documentation Extensive documentation is available on our website. The home page for this release, including new features, is -[here](https://www.tcl.tk/software/tcltk/8.6.html). +[here](https://www.tcl-lang.org/software/tcltk/8.6.html). Detailed release notes can be found at the [file distributions page](https://sourceforge.net/projects/tcl/files/Tcl/) by clicking on the relevant version. @@ -96,7 +96,7 @@ Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger, static code checker, single-file wrapping utility, bytecode compiler, and more. More information can be found at - http://www.ActiveState.com/Tcl + https://www.activestate.com/products/tcl/ ## 5. Tcl newsgroup There is a USENET newsgroup, "`comp.lang.tcl`", intended for the exchange of diff --git a/changes b/changes index f41dd58..07e432d 100644 --- a/changes +++ b/changes @@ -8893,7 +8893,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2018-11-16 (bug)[00d04c] Repair [binary encode base64] (sebres) -- Released 8.6.9, November 16, 2018 - details at http://core.tcl-lang.org/tcl/ - +- Released 8.6.9, November 16, 2018 - details at https://core.tcl-lang.org/tcl/ - 2018-11-22 (bug)[7a9dc5] [file normalize ~/~foo] segfault (sebres) @@ -8944,7 +8944,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2019-11-18 (bug)[13657a] application/json us text, not binary (noe,nijtmans) => http 2.9.1 -- Released 8.6.10, Nov 21, 2019 - details at http://core.tcl-lang.org/tcl/ - +- Released 8.6.10, Nov 21, 2019 - details at https://core.tcl-lang.org/tcl/ - 2019-12-03 (bug)[3cd9be] Corner case in surrogate handling (nijtmans) @@ -9073,4 +9073,4 @@ See RFC 2045 2020-12-23 tzdata updated to Olson's tzdata2020e (jima) -- Released 8.6.11, Dec 31, 2020 - details at http://core.tcl-lang.org/tcl/ - +- Released 8.6.11, Dec 31, 2020 - details at https://core.tcl-lang.org/tcl/ - diff --git a/doc/clock.n b/doc/clock.n index b8f2a0c..c46b797 100644 --- a/doc/clock.n +++ b/doc/clock.n @@ -824,7 +824,7 @@ the minus sign one west of Greenwich. A time zone string conforming to the Posix specification of the \fBTZ\fR environment variable will be recognized. The specification may be found at -\fIhttp://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html\fR. +\fIhttps://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html\fR. .PP If the Posix time zone string contains a DST (Daylight Savings Time) part, but doesn't contain a rule stating when DST starts or ends, @@ -848,7 +848,7 @@ to use it as a location name, as above. .SH "LOCALIZATION" .PP Developers wishing to localize the date and time formatting and parsing -are referred to \fIhttp://tip.tcl.tk/173\fR for a +are referred to \fIhttps://tip.tcl-lang.org/173\fR for a specification. .SH "FREE FORM SCAN" .PP diff --git a/doc/dde.n b/doc/dde.n index ac3d8ed..9a0be56 100644 --- a/doc/dde.n +++ b/doc/dde.n @@ -178,7 +178,7 @@ particularly important website: .PP .CS package require dde -\fBdde execute\fR -async iexplore WWW_OpenURL http://www.tcl.tk/ +\fBdde execute\fR -async iexplore WWW_OpenURL http://www.tcl-lang.org/ .CE .SH "SEE ALSO" tk(n), winfo(n), send(n) diff --git a/doc/tm.n b/doc/tm.n index d5c3cc7..bdc167a 100644 --- a/doc/tm.n +++ b/doc/tm.n @@ -298,9 +298,9 @@ environment variables: .SH "SEE ALSO" package(n), Tcl Improvement Proposal #189 .QW "\fITcl Modules\fR" -(online at http://tip.tcl.tk/189.html), Tcl Improvement Proposal #190 +(online at https://tip.tcl-lang.org/189.html), Tcl Improvement Proposal #190 .QW "\fIImplementation Choices for Tcl Modules\fR" -(online at http://tip.tcl.tk/190.html) +(online at https://tip.tcl-lang.org/190.html) .SH "KEYWORDS" modules, package .\" Local Variables: diff --git a/generic/tcl.h b/generic/tcl.h index 9f14207..2dc3ae2 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -2489,7 +2489,7 @@ EXTERN void Tcl_GetMemoryInfo(Tcl_DString *dsPtr); ++(objPtr)->refCount /* * Use do/while0 idiom for optimum correctness without compiler warnings. - * http://c2.com/cgi/wiki?TrivialDoWhileLoop + * https://wiki.c2.com/?TrivialDoWhileLoop */ # define Tcl_DecrRefCount(objPtr) \ do { \ diff --git a/tools/encoding/iso8859-7.txt b/tools/encoding/iso8859-7.txt index 245595d..9131ae3 100644 --- a/tools/encoding/iso8859-7.txt +++ b/tools/encoding/iso8859-7.txt @@ -16,7 +16,7 @@ # ISO 8859-7:2003 characters map into Unicode. # # ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928, -# and ECMA 118. ISO 8859-7:2003 adds two currency signs +# and ECMA 118. ISO 8859-7:2003 adds two currency signs # and one other character not in the earlier standard. # # Format: Three tab-separated columns diff --git a/unix/README b/unix/README index 22b3833..b43a260 100644 --- a/unix/README +++ b/unix/README @@ -8,11 +8,11 @@ MacOSX platform too, but they all depend on UNIX (POSIX/ANSI C) interfaces and some of them only make sense under UNIX. Updated forms of the information found in this file is available at: - http://www.tcl.tk/doc/howto/compile.html#unix + https://www.tcl-tk.org/doc/howto/compile.html#unix For information on platforms where Tcl is known to compile, along with any porting notes for getting it to work on those platforms, see: - http://www.tcl.tk/software/tcltk/platforms.html + https://www.tcl-tk.org/software/tcltk/platforms.html The rest of this file contains instructions on how to do this. The release should compile and run either "out of the box" or with trivial changes on any @@ -91,7 +91,7 @@ How To Compile And Install Tcl: --enable-dtrace Enable tcl DTrace provider (if DTrace is available on the platform), c.f. tclDTrace.d for descriptions of the probes made available, - see http://wiki.tcl.tk/DTrace for more details + see https://wiki.tcl-lang.org/page/DTrace for more details --with-encoding=ENCODING Specifies the encoding for compile-time configuration values. Defaults to iso8859-1, which is also sufficient for ASCII. diff --git a/unix/tcl.pc.in b/unix/tcl.pc.in index 846cb11..84754c6 100644 --- a/unix/tcl.pc.in +++ b/unix/tcl.pc.in @@ -7,7 +7,7 @@ includedir=@includedir@ Name: Tool Command Language Description: Tcl is a powerful, easy-to-learn dynamic programming language, suitable for a wide range of uses. -URL: http://www.tcl.tk/ +URL: https://www.tcl-tk.org/ Version: @TCL_VERSION@@TCL_PATCH_LEVEL@ Requires.private: zlib >= 1.2.3 Libs: -L${libdir} @TCL_LIB_FLAG@ @TCL_STUB_LIB_FLAG@ diff --git a/unix/tcl.spec b/unix/tcl.spec index 1758836..de6fa2b 100644 --- a/unix/tcl.spec +++ b/unix/tcl.spec @@ -9,7 +9,7 @@ Release: 2 License: BSD Group: Development/Languages Source: http://prdownloads.sourceforge.net/tcl/tcl%{version}-src.tar.gz -URL: http://www.tcl.tk/ +URL: https://www.tcl-lang.org/ Buildroot: /var/tmp/%{name}%{version} %description diff --git a/win/README b/win/README index 2c74d48..7435cff 100644 --- a/win/README +++ b/win/README @@ -9,7 +9,7 @@ that are specific to Microsoft Windows. The information in this file is maintained on the web at: - http://www.tcl.tk/doc/howto/compile.html#win + https://www.tcl-lang.org/doc/howto/compile.html#win 2. Compiling Tcl ---------------- @@ -29,7 +29,7 @@ In order to compile Tcl for Windows, you need the following: or - Cygwin + MinGW-w64 [http://cygwin.com/install.html] + Cygwin + MinGW-w64 [https://cygwin.com/install.html] (win32 or win64) or @@ -42,11 +42,6 @@ In order to compile Tcl for Windows, you need the following: Msys + MinGW-w64 [http://mingw-w64.sourceforge.net/] (win32 or win64) - or - - Msys + MinGW [http://www.mingw.org/download.shtml] - (win32 only) - In practice, this release is built with Visual C++ 6.0 and the TEA Makefile. diff --git a/win/tclWinFile.c b/win/tclWinFile.c index f755d11..9a6c5f1 100644 --- a/win/tclWinFile.c +++ b/win/tclWinFile.c @@ -3128,7 +3128,7 @@ TclNativeCreateNativeRep( * If there is no "\\?\" prefix but there is a drive or UNC path prefix * and the path is larger than MAX_PATH chars, no Win32 API function can * handle that unless it is prefixed with the extended path prefix. See: - * + * */ if (((str[0] >= 'A' && str[0] <= 'Z') || (str[0] >= 'a' && str[0] <= 'z')) -- cgit v0.12 From a8e1d5aae33094f7efbd1e290797fcd5c0168522 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Mon, 21 Jun 2021 12:31:39 +0000 Subject: Backport ISSUE_TEMPLATE and PULL_REQUEST_TEMPLATE from 8.7 --- .github/ISSUE_TEMPLATE.md | 3 +++ .github/PULL_REQUEST_TEMPLATE.md | 3 +++ 2 files changed, 6 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..60c8cbb --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,3 @@ +Important Note +========== +Please do not file issues with Tcl on Github. They are unlikely to be noticed in a timely fashion. Tcl issues are hosted in the [tcl fossil repository on core.tcl-lang.org](https://core.tcl-lang.org/tcl/tktnew); please post them there. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..d98ff0e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,3 @@ +Important Note +========== +Please do not file pull requests with Tcl on Github. They are unlikely to be noticed in a timely fashion. Tcl issues (including patches) are hosted in the [tcl fossil repository on core.tcl-lang.org](https://core.tcl-lang.org/tcl/tktnew); please post them there. -- cgit v0.12 From 6f34bcda8f5613edbb17c22b97774e0c4317a951 Mon Sep 17 00:00:00 2001 From: pooryorick Date: Mon, 21 Jun 2021 21:21:50 +0000 Subject: Improve logic and cleanup for tests coroutine-7.13 and coroutine-7.14 --- tests/coroutine.test | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/tests/coroutine.test b/tests/coroutine.test index 437d9ad..91ca8a5 100644 --- a/tests/coroutine.test +++ b/tests/coroutine.test @@ -777,10 +777,8 @@ test coroutine-7.13 { coroutine c2 apply [list {} { variable done yield - after 0 [list [info coroutine]] - yieldto try {yieldto c1} - after 0 [list [info coroutine]] - yieldto try {yieldto c1} + yieldto try {yieldto c1} on error {} [list after 0 [list [info coroutine]]] + yieldto try {yieldto c1} on error {} [list after 0 [list [info coroutine]]] set done 1 } [namespace current]] @@ -801,22 +799,29 @@ test coroutine-7.14 { coroutine c0 ::apply [list {} { yield - variable done0 after 0 [list [namespace which c1]] - vwait [namespace current]::done0 + vwait [namespace current]::done1 } [namespace current]] coroutine c1 ::apply [list {} { - variable done0 + variable done1 yield yieldto try "yieldto [list [info coroutine]]" on error {} " ::set [list [namespace current]]::done1 failure ::set [list [namespace current]]::done0 failure " - set done0 success + set done1 success + } [namespace current]] after 1 [list [namespace which c0]] vwait [namespace current]::done0 + if {[namespace which [namespace current]::c1] ne {}} { + # prior to the fix for 5106fddd4400e5b9, the nested yieldto turned into a + # tailcall which was eventutally activated, causing control to return to + # c1. After the fix, that doesn't happen, so if c1 still exists call it + # one final time to allow it to finish and clean up + rename c1 {} + } return [list $done0 $done1] } -result {failure failure} -- cgit v0.12 From 30db6ce78e7c4b96b977320e4d16555a93401c8d Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 22 Jun 2021 09:02:00 +0000 Subject: Fix [bad6cc213d]: A format string vulnerability in Tcl nmakehelp.c allows code execution via a crated file. Also change a memcpy() to a memmove(), because the range could be overlapping --- win/nmakehlp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/win/nmakehlp.c b/win/nmakehlp.c index 7536ede..4021346 100644 --- a/win/nmakehlp.c +++ b/win/nmakehlp.c @@ -537,7 +537,7 @@ GetVersionFromFile( ++q; } - memcpy(szBuffer, p, q - p); + memmove(szBuffer, p, q - p); szBuffer[q-p] = 0; szResult = szBuffer; break; @@ -674,7 +674,7 @@ SubstituteFile( memcpy(szBuffer, szCopy, sizeof(szCopy)); } } - printf(szBuffer); + printf("%s", szBuffer); } list_free(&substPtr); -- cgit v0.12 From ad4b60ef7cdd42e625b1df07eaa29129cdc7a157 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Tue, 22 Jun 2021 13:19:31 +0000 Subject: More code cleanup, eliminating various compiler warnings with stricter flags. No need to even use strmove at all. --- win/nmakehlp.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/win/nmakehlp.c b/win/nmakehlp.c index 4021346..2dc33cc 100644 --- a/win/nmakehlp.c +++ b/win/nmakehlp.c @@ -14,8 +14,10 @@ #define _CRT_SECURE_NO_DEPRECATE #include +#ifdef _MSC_VER #pragma comment (lib, "user32.lib") #pragma comment (lib, "kernel32.lib") +#endif #include #include @@ -37,7 +39,7 @@ /* protos */ static int CheckForCompilerFeature(const char *option); -static int CheckForLinkerFeature(const char **options, int count); +static int CheckForLinkerFeature(char **options, int count); static int IsIn(const char *string, const char *substring); static int SubstituteFile(const char *substs, const char *filename); static int QualifyPath(const char *path); @@ -54,8 +56,8 @@ typedef struct { char buffer[STATICBUFFERSIZE]; } pipeinfo; -pipeinfo Out = {INVALID_HANDLE_VALUE, '\0'}; -pipeinfo Err = {INVALID_HANDLE_VALUE, '\0'}; +pipeinfo Out = {INVALID_HANDLE_VALUE, ""}; +pipeinfo Err = {INVALID_HANDLE_VALUE, ""}; /* * exitcodes: 0 == no, 1 == yes, 2 == error @@ -273,7 +275,7 @@ CheckForCompilerFeature( "Tried to launch: \"%s\", but got error [%u]: ", cmdline, err); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS| - FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPVOID)&msg[chars], + FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPSTR)&msg[chars], (300-chars), 0); WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, lstrlen(msg), &err,NULL); return 2; @@ -326,7 +328,7 @@ CheckForCompilerFeature( static int CheckForLinkerFeature( - const char **options, + char **options, int count) { STARTUPINFO si; @@ -407,7 +409,7 @@ CheckForLinkerFeature( "Tried to launch: \"%s\", but got error [%u]: ", cmdline, err); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS| - FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPVOID)&msg[chars], + FORMAT_MESSAGE_MAX_WIDTH_MASK, 0L, err, 0, (LPSTR)&msg[chars], (300-chars), 0); WriteFile(GetStdHandle(STD_ERROR_HANDLE), msg, lstrlen(msg), &err,NULL); return 2; @@ -503,7 +505,6 @@ GetVersionFromFile( const char *match, int numdots) { - size_t cbBuffer = 100; static char szBuffer[100]; char *szResult = NULL; FILE *fp = fopen(filename, "rt"); @@ -513,7 +514,7 @@ GetVersionFromFile( * Read data until we see our match string. */ - while (fgets(szBuffer, cbBuffer, fp) != NULL) { + while (fgets(szBuffer, sizeof(szBuffer), fp) != NULL) { LPSTR p, q; p = strstr(szBuffer, match); @@ -523,7 +524,7 @@ GetVersionFromFile( */ p += strlen(match); - while (*p && !isdigit(*p)) { + while (*p && !isdigit((unsigned char)*p)) { ++p; } @@ -532,14 +533,13 @@ GetVersionFromFile( */ q = p; - while (*q && (strchr("0123456789.ab", *q)) && ((!strchr(".ab", *q) - && (!strchr("ab", q[-1])) || --numdots))) { + while (*q && (strchr("0123456789.ab", *q)) && (((!strchr(".ab", *q) + && !strchr("ab", q[-1])) || --numdots))) { ++q; } - memmove(szBuffer, p, q - p); - szBuffer[q-p] = 0; - szResult = szBuffer; + *q = 0; + szResult = p; break; } } @@ -562,7 +562,7 @@ typedef struct list_item_t { static list_item_t * list_insert(list_item_t **listPtrPtr, const char *key, const char *value) { - list_item_t *itemPtr = malloc(sizeof(list_item_t)); + list_item_t *itemPtr = (list_item_t *)malloc(sizeof(list_item_t)); if (itemPtr) { itemPtr->key = strdup(key); itemPtr->value = strdup(value); @@ -611,9 +611,7 @@ SubstituteFile( const char *substitutions, const char *filename) { - size_t cbBuffer = 1024; static char szBuffer[1024], szCopy[1024]; - char *szResult = NULL; list_item_t *substPtr = NULL; FILE *fp, *sp; @@ -626,7 +624,7 @@ SubstituteFile( sp = fopen(substitutions, "rt"); if (sp != NULL) { - while (fgets(szBuffer, cbBuffer, sp) != NULL) { + while (fgets(szBuffer, sizeof(szBuffer), sp) != NULL) { unsigned char *ks, *ke, *vs, *ve; ks = (unsigned char*)szBuffer; while (ks && *ks && isspace(*ks)) ++ks; @@ -657,7 +655,7 @@ SubstituteFile( * Run the substitutions over each line of the input */ - while (fgets(szBuffer, cbBuffer, fp) != NULL) { + while (fgets(szBuffer, sizeof(szBuffer), fp) != NULL) { list_item_t *p = NULL; for (p = substPtr; p != NULL; p = p->nextPtr) { char *m = strstr(szBuffer, p->key); @@ -725,7 +723,8 @@ static int LocateDependencyHelper(const char *dir, const char *keypath) { HANDLE hSearch; char path[MAX_PATH+1]; - int dirlen, keylen, ret; + size_t dirlen; + int keylen, ret; WIN32_FIND_DATA finfo; if (dir == NULL || keypath == NULL) @@ -792,7 +791,8 @@ static int LocateDependencyHelper(const char *dir, const char *keypath) */ static int LocateDependency(const char *keypath) { - int i, ret; + size_t i; + int ret; static const char *paths[] = {"..", "..\\..", "..\\..\\.."}; for (i = 0; i < (sizeof(paths)/sizeof(paths[0])); ++i) { -- cgit v0.12 From 76238b9ab7a2734ae2ce170cb6305a4ad9d03ac3 Mon Sep 17 00:00:00 2001 From: pooryorick Date: Tue, 22 Jun 2021 18:26:58 +0000 Subject: possible fix for [dcb888ed85adeb86] with kevent() --- unix/tclKqueueNotfy.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/unix/tclKqueueNotfy.c b/unix/tclKqueueNotfy.c index ab3732d..62d165e 100644 --- a/unix/tclKqueueNotfy.c +++ b/unix/tclKqueueNotfy.c @@ -182,7 +182,10 @@ PlatformEventsControl( if (fstat(filePtr->fd, &fdStat) == -1) { Tcl_Panic("fstat: %s", strerror(errno)); - } else if ((fdStat.st_mode & S_IFMT) == S_IFREG) { + } else if ((fdStat.st_mode & S_IFMT) == S_IFREG + || (fdStat.st_mode & S_IFMT) == S_ISDIR + || (fdStat.st_mode & S_IFMT) == S_ISLNK + ) { switch (op) { case EV_ADD: if (isNew) { -- cgit v0.12 From a6691785d8bdaa339449e8df532a8b11a8690909 Mon Sep 17 00:00:00 2001 From: pooryorick Date: Wed, 23 Jun 2021 21:31:40 +0000 Subject: fix typos in previous commit --- unix/tclKqueueNotfy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unix/tclKqueueNotfy.c b/unix/tclKqueueNotfy.c index 62d165e..6606c8c 100644 --- a/unix/tclKqueueNotfy.c +++ b/unix/tclKqueueNotfy.c @@ -183,8 +183,8 @@ PlatformEventsControl( if (fstat(filePtr->fd, &fdStat) == -1) { Tcl_Panic("fstat: %s", strerror(errno)); } else if ((fdStat.st_mode & S_IFMT) == S_IFREG - || (fdStat.st_mode & S_IFMT) == S_ISDIR - || (fdStat.st_mode & S_IFMT) == S_ISLNK + || (fdStat.st_mode & S_IFMT) == S_IFDIR + || (fdStat.st_mode & S_IFMT) == S_IFLNK ) { switch (op) { case EV_ADD: -- cgit v0.12 From 25a30f2db04d9d60b0279cbeab73acaeb42aa1ca Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 25 Jun 2021 21:30:32 +0000 Subject: Tweak TIP #590 impl on MacOS: Shared library could start with capital --- generic/tclLoad.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/generic/tclLoad.c b/generic/tclLoad.c index ed2be03..7ea1ebd 100644 --- a/generic/tclLoad.c +++ b/generic/tclLoad.c @@ -344,7 +344,11 @@ Tcl_LoadObjCmd( pkgGuess += 3; } #endif /* __CYGWIN__ */ - if ((pkgGuess[0] == 't') && (pkgGuess[1] == 'c') + if (((pkgGuess[0] == 't') +#ifdef MAC_OSX_TCL + || (pkgGuess[0] == 'T') +#endif + ) && (pkgGuess[1] == 'c') && (pkgGuess[2] == 'l')) { pkgGuess += 3; } -- cgit v0.12