summaryrefslogtreecommitdiffstats
path: root/generic/tclUtf.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-11-19 08:57:49 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-11-19 08:57:49 (GMT)
commit14ec7c1d858d00e7c69c80c28cf599095dd3feaf (patch)
treec1bbe67b99dbfd4a521682975956b358f53f7bb2 /generic/tclUtf.c
parent72c49f69099c98bd55334dbad3d68645c72bc707 (diff)
parent8e1f957a669b2f4b84dca7e8a27f2985c0625172 (diff)
downloadtcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.zip
tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.tar.gz
tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclUtf.c')
-rw-r--r--generic/tclUtf.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/generic/tclUtf.c b/generic/tclUtf.c
index 11bde5c..525cd50 100644
--- a/generic/tclUtf.c
+++ b/generic/tclUtf.c
@@ -2629,12 +2629,25 @@ TclUniCharToUCS4(
* by the Tcl_UniChar string. */
{
if (((src[0] & 0xFC00) == 0xD800) && ((src[1] & 0xFC00) == 0xDC00)) {
- *ucs4Ptr = (((src[0] & 0x3FF) << 10) | (src[01] & 0x3FF)) + 0x10000;
+ *ucs4Ptr = (((src[0] & 0x3FF) << 10) | (src[1] & 0x3FF)) + 0x10000;
return 2;
}
*ucs4Ptr = src[0];
return 1;
}
+
+const Tcl_UniChar *TclUCS4Prev(const Tcl_UniChar *src, const Tcl_UniChar *ptr) {
+ if (src <= ptr + 1) {
+ return ptr;
+ }
+ if (((src[-1] & 0xFC00) == 0xDC00) && ((src[-2] & 0xFC00) == 0xD800)) {
+ return src - 2;
+ }
+ return src - 1;
+}
+
+
+
#endif
/*