From d065b460d41a1ecd43fa6ad85ac9d01df40a8e05 Mon Sep 17 00:00:00 2001 From: oehhar Date: Wed, 7 Feb 2024 17:57:38 +0000 Subject: 8.6 changes file finished from my side --- changes | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/changes b/changes index e8bd917..7f60826 100644 --- a/changes +++ b/changes @@ -9224,42 +9224,62 @@ Many code fixes to avoid overflow or undefined behavior. Thanks chrstphrchvz. 2023-07-05 (bug) [66ffaf] incomplete double byte encoding sequences ignored like in [encoding convertfrom gb12345 x] (nadkarni) -2023-08-29 Update zlib to version 1.3 +2023-07-26 (rfe) [c54e4a] fork multithreading performance by using vfork/spawn + when supported (neumann) + +2023-08-17 TIP #662: Tcl_VarEval is not depreciated any more (nijtmans) + +2023-08-29 Update zlib to version 1.3 (nijtmans) + +2023-09-04 Update libtommath to version 1.2.1 (nijtmans) 2023-09-05 (bug) [60cacf] Fix tclvfs tkt Segmentation Fault at interpreter exit when tclvfs loaded. 2023-09-05 (bug) [b5ac3e] Tcl_GetUniChar reads beyond string length for ASCII - strings + strings (nadkarni) -2023-09-06 (bug) [d3465c] Update install-sh to version "2020-11-14.01". +2023-09-06 (bug) [d3465c] Update install-sh to version 2020-11-14.01 (nijtmans) -2023-09-08 Unicode 15.1 +2023-09-08 Unicode 15.1 (nijtmans) + +2023-09-12 Remove option utf16 from win/makefile.vc (nijtmans) 2023-09-13 (bug) [43b065] MS Windows: files with emojis are found by glob but - not recognized by file exists or open + not recognized by file exists or open (nijtmans) 2023-09-13 (bug) [a1f11d] VC6 compilation error of core-8-6-branch: error C2065: - 'int16_t' : undeclared identifier + 'int16_t' : undeclared identifier (nijtmans) 2023-09-14 (bug) [00655c] ClockGetdatefieldsObjCmd(): avoid signed integer - overflow and platform-dependent behavior + overflow and platform-dependent behavior (nijtmans) -2023-10-01 (bug) [7b3167] tclOO.c: initialize fakeObject.refCount +2023-10-01 (bug) [7b3167] tclOO.c: initialize fakeObject.refCount (nijtmans) 2023-10-04 (bug) [7371b6] AddressSanitizer use-after-return detection breaks NRE - ests, coroutines + tests, coroutines (nijtmans) -2023-12-06 (bug) [db4f28] fixes SF by BO in ReadChars (and Tcl_ReadChars with - append) +2023-11-30 (bug) [fb2fa9],[21b062] reallow [exec %var%] on MS-Windows. It was + forbidden in 8.6.13 (brester) 2023-12-30 (rfe) [0ac9d0] Don't call getsockname(2) in Tcl_MakeFileChannel(3) unless absolutely necessary. Permits better constraining of Tcl/tclsh via OpenBSD's pledge(2) or similar mechanisms. Minor rewrite. -2024-01-24 [db4f28] Cure performance issues by 8.6.13 bugfix for channel read - with large data (brester) +2024-01-24 [db4f28] segfault when Tcl_ReadChars is called with unicode object + (brester) 2024-01-11 (bug) [fd27ad] doc change of Tcl_PkgRequire & friends: version string specification refers to "package require". -- Released 8.6.14, Jan ??, 2024 - details at https://core.tcl-lang.org/tcl/ - +2024-01-27 (bug) [16e25e] error for [tcl_startOfPreviousWord string end-1] + (nijtmans) + +2024-01-29 Update to zlib 1.3.1 (nijtmans) + +2024-02-05 fix/document Tcl_ObjPrintf with "ll" modifier (nijtmans) + +2024-02-06 [8e666d] endless loop when redefining proc ::history (nash) + +2024-02-06 [86b3c1] endless loop when ::unknown is moved into a namespace (nash) + +- Released 8.6.14, Feb ??, 2024 - details at https://core.tcl-lang.org/tcl/ - -- cgit v0.12 From 90de673f3290590440628bd2b3dc3b4550a17bd3 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 7 Feb 2024 20:52:03 +0000 Subject: Backout [c63ef66f0d], back to the drawing table. --- generic/tclEncoding.c | 8 ++----- tests/encodingVectors.tcl | 54 +++++++++++++++++++++++------------------------ 2 files changed, 29 insertions(+), 33 deletions(-) diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index d03d4f8..727ed89 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -3387,9 +3387,7 @@ TableToUtfProc( } else if (PROFILE_REPLACE(flags)) { ch = UNICODE_REPLACE_CHAR; } else { - char chbuf[2]; - chbuf[0] = byte; chbuf[1] = 0; - Tcl_UtfToUniChar(chbuf, &ch); + ch = (Tcl_UniChar)byte; } } else { ch = toUnicode[byte][*((unsigned char *)++src)]; @@ -3409,9 +3407,7 @@ TableToUtfProc( if (PROFILE_REPLACE(flags)) { ch = UNICODE_REPLACE_CHAR; } else { - char chbuf[2]; - chbuf[0] = byte; chbuf[1] = 0; - Tcl_UtfToUniChar(chbuf, &ch); + ch = (Tcl_UniChar)byte; } } diff --git a/tests/encodingVectors.tcl b/tests/encodingVectors.tcl index dfceab4..4265b26 100644 --- a/tests/encodingVectors.tcl +++ b/tests/encodingVectors.tcl @@ -109,40 +109,40 @@ set encInvalidBytes {}; # Reset the table # 80-9F which is treated as cp1252. # This tests the TableToUtfProc code path. lappend encInvalidBytes {*}{ - ascii 80 tcl8 \u20AC -1 {} {map to cp1252} + ascii 80 tcl8 \u20AC -1 {knownBug} {map to cp1252} ascii 80 replace \uFFFD -1 {} {Smallest invalid byte} ascii 80 strict {} 0 {} {Smallest invalid byte} ascii 81 tcl8 \u0081 -1 {} {map to cp1252} - ascii 82 tcl8 \u201A -1 {} {map to cp1252} - ascii 83 tcl8 \u0192 -1 {} {map to cp1252} - ascii 84 tcl8 \u201E -1 {} {map to cp1252} - ascii 85 tcl8 \u2026 -1 {} {map to cp1252} - ascii 86 tcl8 \u2020 -1 {} {map to cp1252} - ascii 87 tcl8 \u2021 -1 {} {map to cp1252} - ascii 88 tcl8 \u02C6 -1 {} {map to cp1252} - ascii 89 tcl8 \u2030 -1 {} {map to cp1252} - ascii 8A tcl8 \u0160 -1 {} {map to cp1252} - ascii 8B tcl8 \u2039 -1 {} {map to cp1252} - ascii 8C tcl8 \u0152 -1 {} {map to cp1252} + ascii 82 tcl8 \u201A -1 {knownBug} {map to cp1252} + ascii 83 tcl8 \u0192 -1 {knownBug} {map to cp1252} + ascii 84 tcl8 \u201E -1 {knownBug} {map to cp1252} + ascii 85 tcl8 \u2026 -1 {knownBug} {map to cp1252} + ascii 86 tcl8 \u2020 -1 {knownBug} {map to cp1252} + ascii 87 tcl8 \u2021 -1 {knownBug} {map to cp1252} + ascii 88 tcl8 \u02C6 -1 {knownBug} {map to cp1252} + ascii 89 tcl8 \u2030 -1 {knownBug} {map to cp1252} + ascii 8A tcl8 \u0160 -1 {knownBug} {map to cp1252} + ascii 8B tcl8 \u2039 -1 {knownBug} {map to cp1252} + ascii 8C tcl8 \u0152 -1 {knownBug} {map to cp1252} ascii 8D tcl8 \u008D -1 {} {map to cp1252} - ascii 8E tcl8 \u017D -1 {} {map to cp1252} + ascii 8E tcl8 \u017D -1 {knownBug} {map to cp1252} ascii 8F tcl8 \u008F -1 {} {map to cp1252} ascii 90 tcl8 \u0090 -1 {} {map to cp1252} - ascii 91 tcl8 \u2018 -1 {} {map to cp1252} - ascii 92 tcl8 \u2019 -1 {} {map to cp1252} - ascii 93 tcl8 \u201C -1 {} {map to cp1252} - ascii 94 tcl8 \u201D -1 {} {map to cp1252} - ascii 95 tcl8 \u2022 -1 {} {map to cp1252} - ascii 96 tcl8 \u2013 -1 {} {map to cp1252} - ascii 97 tcl8 \u2014 -1 {} {map to cp1252} - ascii 98 tcl8 \u02DC -1 {} {map to cp1252} - ascii 99 tcl8 \u2122 -1 {} {map to cp1252} - ascii 9A tcl8 \u0161 -1 {} {map to cp1252} - ascii 9B tcl8 \u203A -1 {} {map to cp1252} - ascii 9C tcl8 \u0153 -1 {} {map to cp1252} + ascii 91 tcl8 \u2018 -1 {knownBug} {map to cp1252} + ascii 92 tcl8 \u2019 -1 {knownBug} {map to cp1252} + ascii 93 tcl8 \u201C -1 {knownBug} {map to cp1252} + ascii 94 tcl8 \u201D -1 {knownBug} {map to cp1252} + ascii 95 tcl8 \u2022 -1 {knownBug} {map to cp1252} + ascii 96 tcl8 \u2013 -1 {knownBug} {map to cp1252} + ascii 97 tcl8 \u2014 -1 {knownBug} {map to cp1252} + ascii 98 tcl8 \u02DC -1 {knownBug} {map to cp1252} + ascii 99 tcl8 \u2122 -1 {knownBug} {map to cp1252} + ascii 9A tcl8 \u0161 -1 {knownBug} {map to cp1252} + ascii 9B tcl8 \u203A -1 {knownBug} {map to cp1252} + ascii 9C tcl8 \u0153 -1 {knownBug} {map to cp1252} ascii 9D tcl8 \u009D -1 {} {map to cp1252} - ascii 9E tcl8 \u017E -1 {} {map to cp1252} - ascii 9F tcl8 \u0178 -1 {} {map to cp1252} + ascii 9E tcl8 \u017E -1 {knownBug} {map to cp1252} + ascii 9F tcl8 \u0178 -1 {knownBug} {map to cp1252} ascii FF tcl8 \u00FF -1 {} {Largest invalid byte} ascii FF replace \uFFFD -1 {} {Largest invalid byte} -- cgit v0.12