diff options
| author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-11-19 08:57:49 (GMT) |
|---|---|---|
| committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-11-19 08:57:49 (GMT) |
| commit | 14ec7c1d858d00e7c69c80c28cf599095dd3feaf (patch) | |
| tree | c1bbe67b99dbfd4a521682975956b358f53f7bb2 /generic/tclUtf.c | |
| parent | 72c49f69099c98bd55334dbad3d68645c72bc707 (diff) | |
| parent | 8e1f957a669b2f4b84dca7e8a27f2985c0625172 (diff) | |
| download | tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.zip tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.tar.gz tcl-14ec7c1d858d00e7c69c80c28cf599095dd3feaf.tar.bz2 | |
Merge 8.7
Diffstat (limited to 'generic/tclUtf.c')
| -rw-r--r-- | generic/tclUtf.c | 15 |
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 /* |
