summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-03-17 16:35:51 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-03-17 16:35:51 (GMT)
commit27c27e941a08c8ea873a5de4333a498788a22c33 (patch)
tree27485d4f1bbb8509ad6e0ade9f8402cc056bcb44
parent07cfb2190f1ec3f06fb59425ad6fc3b5edd5dcff (diff)
parent50eee151a907e29a58d8201f66988816ae14eae5 (diff)
downloadtcl-27c27e941a08c8ea873a5de4333a498788a22c33.zip
tcl-27c27e941a08c8ea873a5de4333a498788a22c33.tar.gz
tcl-27c27e941a08c8ea873a5de4333a498788a22c33.tar.bz2
Merge 8.5. Mainly add Unicode 13 new plane 3 characters to the internal Unicode tables. Not used in 8.6 yet.
-rw-r--r--ChangeLog2
-rw-r--r--ChangeLog.20052
-rw-r--r--changes2
-rw-r--r--doc/ParseCmd.32
-rw-r--r--doc/ToUpper.32
-rw-r--r--doc/Utf.32
-rw-r--r--doc/binary.n6
-rw-r--r--generic/regc_locale.c4
-rw-r--r--generic/tclUniData.c21
-rw-r--r--library/clock.tcl2
-rwxr-xr-xtools/loadICU.tcl2
-rwxr-xr-xtools/makeTestCases.tcl2
-rw-r--r--tools/uniParse.tcl4
-rwxr-xr-xunix/configure2
-rw-r--r--unix/configure.in2
-rw-r--r--unix/tclUnixPort.h12
16 files changed, 43 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 84281bc..ec5e78f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1847,7 +1847,7 @@ a better first place to look now.
* tools/uniClass.tcl: [FRQ 3473670]: Various Unicode-related
* tools/uniParse.tcl: speedups/robustness. Enhanced tools to be
- * generic/tclUniData.c: able to handle characters > 0xffff. Done in
+ * generic/tclUniData.c: able to handle characters > 0xFFFF. Done in
* generic/tclUtf.c: all branches in order to simplify merges for
* generic/regc_locale.c: new Unicode versions (such as 6.1)
diff --git a/ChangeLog.2005 b/ChangeLog.2005
index 0d1d7cf..109ea8e 100644
--- a/ChangeLog.2005
+++ b/ChangeLog.2005
@@ -2913,7 +2913,7 @@
* generic/tclCompCmds.c: Updated callers to call new routine.
* generic/tclDictObj.c: Updated callers to call new routine.
* tests/obj.test: Corrected bad tests that actually expected
- values like "47" and "0xac" to be accepted as booleans.
+ values like "47" and "0xAC" to be accepted as booleans.
* generic/tclLiteral.c: Disabled the code that forces some literals
into the "int" Tcl_ObjType during registration. We can re-enable it if
diff --git a/changes b/changes
index 1b5b483..090846f 100644
--- a/changes
+++ b/changes
@@ -2307,7 +2307,7 @@ to the standard channel, do not increment the refcount. The channel can
be NULL if there is for example no standard input. (JL)
9/6/96 (portability improvement) Changed parsing of backslash sequences
-like \n to translate directly to absolute values like 0xa instead of
+like \n to translate directly to absolute values like 0xA instead of
letting the compiler do the translation. This guarantees that the
translation is done the same everywhere. (JO)
diff --git a/doc/ParseCmd.3 b/doc/ParseCmd.3
index 667d697..40a0818 100644
--- a/doc/ParseCmd.3
+++ b/doc/ParseCmd.3
@@ -302,7 +302,7 @@ The \fInumComponents\fR field is always 0.
.TP
\fBTCL_TOKEN_BS\fR
.
-The token describes a backslash sequence such as \fB\en\fR or \fB\e0xa3\fR.
+The token describes a backslash sequence such as \fB\en\fR or \fB\e0xA3\fR.
The \fInumComponents\fR field is always 0.
.TP
\fBTCL_TOKEN_COMMAND\fR
diff --git a/doc/ToUpper.3 b/doc/ToUpper.3
index 0647b85..629a8e5 100644
--- a/doc/ToUpper.3
+++ b/doc/ToUpper.3
@@ -81,7 +81,7 @@ and all following characters into their lower-case equivalents.
.SH BUGS
.PP
At this time, the case conversions are only defined for the Unicode
-plane 0 characters. The result for Unicode characters above 0xffff
+plane 0 characters. The result for Unicode characters above 0xFFFF
is undefined, but - actually - only the lower 16 bits of the
character value is handled.
diff --git a/doc/Utf.3 b/doc/Utf.3
index 9d0c617..c00033f 100644
--- a/doc/Utf.3
+++ b/doc/Utf.3
@@ -142,7 +142,7 @@ end and dereference non-existent or random memory; if the source buffer
is known to be null-terminated, this will not happen. If the input is
not in proper UTF-8 format, \fBTcl_UtfToUniChar\fR will store the first
byte of \fIsrc\fR in \fI*chPtr\fR as a Tcl_UniChar between 0x0000 and
-0x00ff and return 1.
+0x00FF and return 1.
.PP
\fBTcl_UniCharToUtfDString\fR converts the given Unicode string
to UTF-8, storing the result in a previously initialized \fBTcl_DString\fR.
diff --git a/doc/binary.n b/doc/binary.n
index 5f25d65..261b765 100644
--- a/doc/binary.n
+++ b/doc/binary.n
@@ -653,7 +653,7 @@ stored in \fIvar2\fR. Note that the integers returned are signed, but
they can be converted to unsigned 8-bit quantities using an expression
like:
.CS
-set num [expr { $num & 0xff }]
+set num [expr { $num & 0xFF }]
.CE
.RE
.IP \fBs\fR 5
@@ -672,7 +672,7 @@ stored in \fIvar2\fR. Note that the integers returned are signed, but
they can be converted to unsigned 16-bit quantities using an expression
like:
.CS
-set num [expr { $num & 0xffff }]
+set num [expr { $num & 0xFFFF }]
.CE
.RE
.IP \fBS\fR 5
@@ -709,7 +709,7 @@ stored in \fIvar2\fR. Note that the integers returned are signed, but
they can be converted to unsigned 32-bit quantities using an expression
like:
.CS
-set num [expr { $num & 0xffffffff }]
+set num [expr { $num & 0xFFFFFFFF }]
.CE
.RE
.IP \fBI\fR 5
diff --git a/generic/regc_locale.c b/generic/regc_locale.c
index 1c31eb4..493f1bb 100644
--- a/generic/regc_locale.c
+++ b/generic/regc_locale.c
@@ -244,7 +244,7 @@ static const crange alphaRangeTable[] = {
{0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B},
{0x1EEA1, 0x1EEA3}, {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x20000, 0x2A6DD},
{0x2A700, 0x2B734}, {0x2B740, 0x2B81D}, {0x2B820, 0x2CEA1}, {0x2CEB0, 0x2EBE0},
- {0x2F800, 0x2FA1D}
+ {0x2F800, 0x2FA1D}, {0x30000, 0x3134A}
#endif
};
@@ -769,7 +769,7 @@ static const crange graphRangeTable[] = {
{0x1FA90, 0x1FAA8}, {0x1FAB0, 0x1FAB6}, {0x1FAC0, 0x1FAC2}, {0x1FAD0, 0x1FAD6},
{0x1FB00, 0x1FB92}, {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9}, {0x20000, 0x2A6DD},
{0x2A700, 0x2B734}, {0x2B740, 0x2B81D}, {0x2B820, 0x2CEA1}, {0x2CEB0, 0x2EBE0},
- {0x2F800, 0x2FA1D}, {0xE0100, 0xE01EF}
+ {0x2F800, 0x2FA1D}, {0x30000, 0x3134A}, {0xE0100, 0xE01EF}
#endif
};
diff --git a/generic/tclUniData.c b/generic/tclUniData.c
index 569e196..ad47dda 100644
--- a/generic/tclUniData.c
+++ b/generic/tclUniData.c
@@ -539,7 +539,24 @@ static const unsigned short pageMap[] = {
1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
1824, 1824, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 11360
+ 1344, 1344, 1344, 1344, 1344, 1344, 11360, 1824, 1824, 1824, 1824,
+ 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
+ 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
+ 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
+ 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1792
#endif /* TCL_UTF_MAX > 3 */
};
@@ -1629,7 +1646,7 @@ static const int groups[] = {
};
#if TCL_UTF_MAX > 3 || TCL_MAJOR_VERSION > 8 || TCL_MINOR_VERSION > 6
-# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1FFFFF) >= 0x2FA20)
+# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1FFFFF) >= 0x31360)
#else
# define UNICODE_OUT_OF_RANGE(ch) (((ch) & 0x1F0000) != 0)
#endif
diff --git a/library/clock.tcl b/library/clock.tcl
index 8e4b657..49dfdbe 100644
--- a/library/clock.tcl
+++ b/library/clock.tcl
@@ -3452,7 +3452,7 @@ proc ::tcl::clock::ReadZoneinfoFile {fileName fname} {
set times [linsert $times 0 $MINWIDE]
set codes {}
foreach c $tempCodes {
- lappend codes [expr { $c & 0xff }]
+ lappend codes [expr { $c & 0xFF }]
}
set codes [linsert $codes 0 0]
diff --git a/tools/loadICU.tcl b/tools/loadICU.tcl
index 31f1e54..021ced3 100755
--- a/tools/loadICU.tcl
+++ b/tools/loadICU.tcl
@@ -588,7 +588,7 @@ proc backslashify { string } {
set retval {}
foreach char [split $string {}] {
scan $char %c ccode
- if { $ccode >= 0x0020 && $ccode < 0x007f && $char ne "\""
+ if { $ccode >= 0x0020 && $ccode < 0x007F && $char ne "\""
&& $char ne "\{" && $char ne "\}" && $char ne "\["
&& $char ne "\]" && $char ne "\\" && $char ne "\$" } {
append retval $char
diff --git a/tools/makeTestCases.tcl b/tools/makeTestCases.tcl
index 6cc033b..70213e0 100755
--- a/tools/makeTestCases.tcl
+++ b/tools/makeTestCases.tcl
@@ -592,7 +592,7 @@ proc testcases5 { f2 } {
foreach { t offset isdst tzname } $row break
if { $t > -4000000000000 } {
set conds [list detroit]
- if { $t > wide(0x7fffffff) } {
+ if { $t > wide(0x7FFFFFFF) } {
set conds [list detroit y2038]
}
incr t -1
diff --git a/tools/uniParse.tcl b/tools/uniParse.tcl
index 24be687..a451096 100644
--- a/tools/uniParse.tcl
+++ b/tools/uniParse.tcl
@@ -114,8 +114,8 @@ proc uni::buildTables {data} {
set items [split $line \;]
scan [lindex $items 0] %x index
- if {$index > 0x2FFFF} then {
- # Ignore non-BMP characters, as long as Tcl doesn't support them
+ if {$index > 0x3FFFF} then {
+ # Ignore characters > plane 3
continue
}
set index [format %d $index]
diff --git a/unix/configure b/unix/configure
index 2f9c4ae..5ede442 100755
--- a/unix/configure
+++ b/unix/configure
@@ -18760,7 +18760,7 @@ echo "${ECHO_T}static library" >&6
TCL_SHLIB_LD_EXTRAS="-compatibility_version ${TCL_VERSION} -current_version ${TCL_VERSION}`echo ${TCL_PATCH_LEVEL} | awk '{match($0, "\\\.[0-9]+"); print substr($0,RSTART,RLENGTH)}'`"
TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -install_name "${DYLIB_INSTALL_DIR}"/${TCL_LIB_FILE}'
- echo "$LDFLAGS " | grep -q -- '-prebind ' && TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -seg1addr 0xa000000'
+ echo "$LDFLAGS " | grep -q -- '-prebind ' && TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -seg1addr 0xA000000'
TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -sectcreate __TEXT __info_plist Tcl-Info.plist'
EXTRA_TCLSH_LIBS='-sectcreate __TEXT __info_plist Tclsh-Info.plist'
EXTRA_APP_CC_SWITCHES='-mdynamic-no-pic'
diff --git a/unix/configure.in b/unix/configure.in
index 0d3f426..5f708a5 100644
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -786,7 +786,7 @@ if test "`uname -s`" = "Darwin" ; then
SC_ENABLE_FRAMEWORK
TCL_SHLIB_LD_EXTRAS="-compatibility_version ${TCL_VERSION} -current_version ${TCL_VERSION}`echo ${TCL_PATCH_LEVEL} | awk ['{match($0, "\\\.[0-9]+"); print substr($0,RSTART,RLENGTH)}']`"
TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -install_name "${DYLIB_INSTALL_DIR}"/${TCL_LIB_FILE}'
- echo "$LDFLAGS " | grep -q -- '-prebind ' && TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -seg1addr 0xa000000'
+ echo "$LDFLAGS " | grep -q -- '-prebind ' && TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -seg1addr 0xA000000'
TCL_SHLIB_LD_EXTRAS="${TCL_SHLIB_LD_EXTRAS}"' -sectcreate __TEXT __info_plist Tcl-Info.plist'
EXTRA_TCLSH_LIBS='-sectcreate __TEXT __info_plist Tclsh-Info.plist'
EXTRA_APP_CC_SWITCHES='-mdynamic-no-pic'
diff --git a/unix/tclUnixPort.h b/unix/tclUnixPort.h
index ed1016a..9961613 100644
--- a/unix/tclUnixPort.h
+++ b/unix/tclUnixPort.h
@@ -250,29 +250,29 @@ extern int TclUnixSetBlockingMode(int fd, int mode);
*/
#ifndef WIFEXITED
-# define WIFEXITED(stat) (((*((int *) &(stat))) & 0xff) == 0)
+# define WIFEXITED(stat) (((*((int *) &(stat))) & 0xFF) == 0)
#endif
#ifndef WEXITSTATUS
-# define WEXITSTATUS(stat) (((*((int *) &(stat))) >> 8) & 0xff)
+# define WEXITSTATUS(stat) (((*((int *) &(stat))) >> 8) & 0xFF)
#endif
#ifndef WIFSIGNALED
# define WIFSIGNALED(stat) \
(((*((int *) &(stat)))) && ((*((int *) &(stat))) \
- == ((*((int *) &(stat))) & 0x00ff)))
+ == ((*((int *) &(stat))) & 0x00FF)))
#endif
#ifndef WTERMSIG
-# define WTERMSIG(stat) ((*((int *) &(stat))) & 0x7f)
+# define WTERMSIG(stat) ((*((int *) &(stat))) & 0x7F)
#endif
#ifndef WIFSTOPPED
-# define WIFSTOPPED(stat) (((*((int *) &(stat))) & 0xff) == 0177)
+# define WIFSTOPPED(stat) (((*((int *) &(stat))) & 0xFF) == 0177)
#endif
#ifndef WSTOPSIG
-# define WSTOPSIG(stat) (((*((int *) &(stat))) >> 8) & 0xff)
+# define WSTOPSIG(stat) (((*((int *) &(stat))) >> 8) & 0xFF)
#endif
/*