Differences From Artifact [73e3d5ab08]:
- File generic/tclUtf.c — part of check-in [806e1e868c] at 2020-05-07 10:09:26 on branch core-8-6-branch — Optimize Tcl_UtfToUniCharDString() (user: jan.nijtmans size: 61725) [more...]
To Artifact [4c78350590]:
- File generic/tclUtf.c — part of check-in [116d4a8943] at 2020-05-07 14:15:06 on branch core-8-6-branch — For TCL_UTF_MAX==4: Make sure that Tcl_UtfNext()/Tcl_UtfPrev() never move more than 3 bytes. This is more consistant with what Tcl 8.7 does too. For TCL_UTF_MAX==6: Make sure that Tcl_UtfNext()/Tcl_UtfPrev() never move more than 4 bytes. For TCL_UTF_MAX==3: No change. Introduce ucs2_utf16 test constraint, since many test results now become the same for ucs2 and utf16. (user: jan.nijtmans size: 61728)
| ︙ | ︙ | |||
69 70 71 72 73 74 75 |
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
#else /* Tcl_UtfCharComplete() might point to 2nd byte of valid 4-byte sequence */
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
#endif
2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
| | | 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
#else /* Tcl_UtfCharComplete() might point to 2nd byte of valid 4-byte sequence */
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
#endif
2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
#if TCL_UTF_MAX > 4
4,4,4,4,4,
#else
1,1,1,1,1,
#endif
1,1,1,1,1,1,1,1,1,1,1
};
|
| ︙ | ︙ | |||
883 884 885 886 887 888 889 | * and exit this loop before we run past the start of the string. */ return fallback; } /* Continue the search backwards... */ look--; | | | | | | | 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 |
* and exit this loop before we run past the start of the string.
*/
return fallback;
}
/* Continue the search backwards... */
look--;
} while (trailBytesSeen < ((TCL_UTF_MAX > 4) ? 4 : 3));
/*
* We've seen 3 (or 4) trail bytes, so we know there will not be a
* properly formed byte sequence to find, and we can stop looking,
* accepting the fallback (for TCL_UTF_MAX > 4) or just go back as
* far as we can.
*/
#if TCL_UTF_MAX > 4
return fallback;
#else
return src - 3;
#endif
}
/*
*---------------------------------------------------------------------------
*
* Tcl_UniCharAtIndex --
|
| ︙ | ︙ |