diff options
| author | dgp <dgp@users.sourceforge.net> | 2020-04-02 20:36:04 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2020-04-02 20:36:04 (GMT) |
| commit | d429ddf40d173212a0fadb4794b91096c58201a1 (patch) | |
| tree | a51a0757fc4a99328bc0228804850c7f70ce91f8 | |
| parent | fbf2a3255bd9e59c1a84415305da87b202330606 (diff) | |
| download | tcl-d429ddf40d173212a0fadb4794b91096c58201a1.zip tcl-d429ddf40d173212a0fadb4794b91096c58201a1.tar.gz tcl-d429ddf40d173212a0fadb4794b91096c58201a1.tar.bz2 | |
More callers.
| -rw-r--r-- | generic/tclUtf.c | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/generic/tclUtf.c b/generic/tclUtf.c index 0db06bd..8f02790 100644 --- a/generic/tclUtf.c +++ b/generic/tclUtf.c @@ -578,19 +578,11 @@ Tcl_UtfFindFirst( const char *src, /* The UTF-8 string to be searched. */ int ch) /* The Unicode character to search for. */ { - int len, fullchar; - Tcl_UniChar find = 0; - +fprintf(stdout, "COVER\n"); fflush(stdout); while (1) { - len = TclUtfToUniChar(src, &find); - fullchar = find; -#if TCL_UTF_MAX <= 4 - if ((fullchar != ch) && (find >= 0xD800) && (len < 3)) { - len += TclUtfToUniChar(src + len, &find); - fullchar = (((fullchar & 0x3FF) << 10) | (find & 0x3FF)) + 0x10000; - } -#endif - if (fullchar == ch) { + int ucs4, len = TclUtfToUCS4(src, &ucs4); + + if (ucs4 == ch) { return src; } if (*src == '\0') { @@ -624,21 +616,12 @@ Tcl_UtfFindLast( const char *src, /* The UTF-8 string to be searched. */ int ch) /* The Unicode character to search for. */ { - int len, fullchar; - Tcl_UniChar find = 0; - const char *last; + const char *last = NULL; - last = NULL; while (1) { - len = TclUtfToUniChar(src, &find); - fullchar = find; -#if TCL_UTF_MAX <= 4 - if ((fullchar != ch) && (find >= 0xD800) && (len < 3)) { - len += TclUtfToUniChar(src + len, &find); - fullchar = (((fullchar & 0x3FF) << 10) | (find & 0x3FF)) + 0x10000; - } -#endif - if (fullchar == ch) { + int ucs4, len = TclUtfToUCS4(src, &ucs4); + + if (ucs4 == ch) { last = src; } if (*src == '\0') { |
