summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2024-08-05 14:13:15 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2024-08-05 14:13:15 (GMT)
commita5b0e278ebffc7c4df91f78d6dca2d9a9f436c64 (patch)
treebb90d36d9dce2dd44facf6f28215d01c0a4a5af2
parentf8f2aa2a1361c63e3e4425fec6f4f894a3a9a047 (diff)
parent1c8d9701af466f1977b1b782465b507087d420c2 (diff)
downloadtcl-a5b0e278ebffc7c4df91f78d6dca2d9a9f436c64.zip
tcl-a5b0e278ebffc7c4df91f78d6dca2d9a9f436c64.tar.gz
tcl-a5b0e278ebffc7c4df91f78d6dca2d9a9f436c64.tar.bz2
merge trunk
-rw-r--r--changes.md3
-rw-r--r--doc/interp.n1
-rw-r--r--generic/tclCmdMZ.c4
-rw-r--r--generic/tclIcu.c35
-rw-r--r--win/rules.vc16
5 files changed, 38 insertions, 21 deletions
diff --git a/changes.md b/changes.md
index aec26b7..6702db3 100644
--- a/changes.md
+++ b/changes.md
@@ -37,6 +37,9 @@ writing Tcl scripts.
- Removed subcommands [trace variable|vdelete|vinfo]
- No -eofchar option for channels anymore for writing.
- On Windows 10+ (Version 1903 or higher), system encoding is always utf-8.
+ - %b/%d/%o/%x format modifiers (without size modifier) for "format"
+ and "scan" always truncate to 32-bits on all platforms.
+ - %L size modifier for "scan" no longer truncates to 64-bit.
- Removed command ::tcl::unsupported::inject.
## Incompatibilities in C public interface
diff --git a/doc/interp.n b/doc/interp.n
index 74745be..e2f3a44 100644
--- a/doc/interp.n
+++ b/doc/interp.n
@@ -644,6 +644,7 @@ built-in commands:
\fBsubst\fR \fBswitch\fR \fBtell\fR \fBtime\fR
\fBtrace\fR \fBunset\fR \fBupdate\fR \fBuplevel\fR
\fBupvar\fR \fBvariable\fR \fBvwait\fR \fBwhile\fR
+\fBzlib\fR
.DE
The following commands are hidden by \fBinterp create\fR when it
creates a safe interpreter:
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index a36e349..30d9b1d 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -4961,8 +4961,8 @@ TryPostBody(
continue;
}
for (j=0 ; j<len1 ; j++) {
- if (strcmp(TclGetString(bits1[j]),
- TclGetString(bits2[j])) != 0) {
+ if (TclStringCmp(bits1[j], bits2[j], 1, 0,
+ TCL_INDEX_NONE) != 0) {
/*
* Really want 'continue outerloop;', but C does
* not give us that.
diff --git a/generic/tclIcu.c b/generic/tclIcu.c
index b6355ee..dd7e82f 100644
--- a/generic/tclIcu.c
+++ b/generic/tclIcu.c
@@ -577,11 +577,19 @@ TclIcuInit(
}
#endif
-#define ICUUC_SYM(name) \
- strcpy(symbol, #name ); \
- strcat(symbol, icuversion); \
- icu_fns._##name = (fn_ ## name) \
- Tcl_FindSymbol(NULL, icu_fns.libs[0], symbol)
+ /* Try for symbol without version (Windows, FreeBSD), then with version */
+#define ICUUC_SYM(name) \
+ do { \
+ strcpy(symbol, #name); \
+ icu_fns._##name = \
+ (fn_##name)Tcl_FindSymbol(NULL, icu_fns.libs[0], symbol); \
+ if (icu_fns._##name == NULL) { \
+ strcat(symbol, icuversion); \
+ icu_fns._##name = \
+ (fn_##name)Tcl_FindSymbol(NULL, icu_fns.libs[0], symbol); \
+ } \
+ } while (0)
+
if (icu_fns.libs[0] != NULL) {
ICUUC_SYM(u_cleanup);
ICUUC_SYM(u_errorName);
@@ -606,11 +614,18 @@ TclIcuInit(
#undef ICUUC_SYM
}
-#define ICUIN_SYM(name) \
- strcpy(symbol, #name ); \
- strcat(symbol, icuversion); \
- icu_fns._##name = (fn_ ## name) \
- Tcl_FindSymbol(NULL, icu_fns.libs[1], symbol)
+#define ICUIN_SYM(name) \
+ do { \
+ strcpy(symbol, #name); \
+ icu_fns._##name = \
+ (fn_##name)Tcl_FindSymbol(NULL, icu_fns.libs[1], symbol); \
+ if (icu_fns._##name == NULL) { \
+ strcat(symbol, icuversion); \
+ icu_fns._##name = \
+ (fn_##name)Tcl_FindSymbol(NULL, icu_fns.libs[1], symbol); \
+ } \
+ } while (0)
+
if (icu_fns.libs[1] != NULL) {
ICUIN_SYM(ucsdet_close);
ICUIN_SYM(ucsdet_detect);
diff --git a/win/rules.vc b/win/rules.vc
index f914884..32742ba 100644
--- a/win/rules.vc
+++ b/win/rules.vc
@@ -1135,10 +1135,8 @@ STUBPREFIX = $(PROJECT)stub
#
# TIP 430. Unused for 8.6 but no harm defining it to allow a common rules.vc
-# TCLSCRIPTZIPNAME maintained for historical reasons
TCL_ZIP_FILE = libtcl$(TCL_MAJOR_VERSION).$(TCL_MINOR_VERSION)$(TCL_PATCH_LETTER)$(TCL_RELEASE_SERIAL).zip
-TCLSCRIPTZIPNAME = $(TCL_ZIP_FILE)
-TKSCRIPTZIPNAME = libtk$(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)$(TK_PATCH_LETTER)$(TK_RELEASE_SERIAL).zip
+TK_ZIP_FILE = libtk$(TK_MAJOR_VERSION).$(TK_MINOR_VERSION)$(TK_PATCH_LETTER)$(TK_RELEASE_SERIAL).zip
!if $(DOING_TCL)
TCLSHNAME = $(PROJECT)sh$(VERSION)$(SUFX).exe
@@ -1146,7 +1144,7 @@ TCLSH = $(OUT_DIR)\$(TCLSHNAME)
TCLIMPLIB = $(OUT_DIR)\$(PROJECT)$(VERSION)$(SUFX).lib
TCLLIBNAME = $(PROJECT)$(VERSION)$(SUFX).$(EXT)
TCLLIB = $(OUT_DIR)\$(TCLLIBNAME)
-TCLSCRIPTZIP = $(OUT_DIR)\$(TCLSCRIPTZIPNAME)
+TCLSCRIPTZIP = $(OUT_DIR)\$(TCL_ZIP_FILE)
!if $(TCL_MAJOR_VERSION) == 8
TCLSTUBLIBNAME = $(STUBPREFIX)$(VERSION).lib
@@ -1182,7 +1180,7 @@ TCLIMPLIB = $(_TCLDIR)\lib\tcl$(TCL_VERSION)t$(SUFX:t=).lib
TCL_LIBRARY = $(_TCLDIR)\lib
TCLREGLIB = $(_TCLDIR)\lib\tclreg13$(SUFX:t=).lib
TCLDDELIB = $(_TCLDIR)\lib\tcldde14$(SUFX:t=).lib
-TCLSCRIPTZIP = $(_TCLDIR)\lib\$(TCLSCRIPTZIPNAME)
+TCLSCRIPTZIP = $(_TCLDIR)\lib\$(TCL_ZIP_FILE)
TCLTOOLSDIR = \must\have\tcl\sources\to\build\this\target
TCL_INCLUDES = -I"$(_TCLDIR)\include"
@@ -1206,7 +1204,7 @@ TCLIMPLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tcl$(TCL_VERSION)t$(SUFX:t=).lib
TCL_LIBRARY = $(_TCLDIR)\library
TCLREGLIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tclreg13$(SUFX:t=).lib
TCLDDELIB = $(_TCLDIR)\win\$(BUILDDIRTOP)\tcldde14$(SUFX:t=).lib
-TCLSCRIPTZIP = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCLSCRIPTZIPNAME)
+TCLSCRIPTZIP = $(_TCLDIR)\win\$(BUILDDIRTOP)\$(TCL_ZIP_FILE)
TCLTOOLSDIR = $(_TCLDIR)\tools
TCL_INCLUDES = -I"$(_TCLDIR)\generic" -I"$(_TCLDIR)\win"
@@ -1255,7 +1253,7 @@ TKSTUBLIB = $(OUT_DIR)\$(TKSTUBLIBNAME)
TKIMPLIB = $(OUT_DIR)\$(TKIMPLIBNAME)
TKLIB = $(OUT_DIR)\$(TKLIBNAME)
TK_INCLUDES = -I"$(WIN_DIR)" -I"$(GENERICDIR)"
-TKSCRIPTZIP = $(OUT_DIR)\$(TKSCRIPTZIPNAME)
+TKSCRIPTZIP = $(OUT_DIR)\$(TK_ZIP_FILE)
!else # effectively NEED_TK
@@ -1270,7 +1268,7 @@ TKIMPLIBNAME = tk$(TK_VERSION)$(SUFX:t=).lib
TKIMPLIB = $(_TKDIR)\lib\$(TKIMPLIBNAME)
!endif
TK_INCLUDES = -I"$(_TKDIR)\include"
-TKSCRIPTZIP = $(_TKDIR)\lib\$(TKSCRIPTZIPNAME)
+TKSCRIPTZIP = $(_TKDIR)\lib\$(TK_ZIP_FILE)
!else # Building against Tk sources
@@ -1284,7 +1282,7 @@ TKIMPLIBNAME = tk$(TK_VERSION)$(SUFX:t=).lib
TKIMPLIB = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKIMPLIBNAME)
!endif
TK_INCLUDES = -I"$(_TKDIR)\generic" -I"$(_TKDIR)\win" -I"$(_TKDIR)\xlib"
-TKSCRIPTZIP = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TKSCRIPTZIPNAME)
+TKSCRIPTZIP = $(_TKDIR)\win\$(BUILDDIRTOP)\$(TK_ZIP_FILE)
!endif # TKINSTALL