Description: |
(text/x-fossil-wiki)
When running the latest SQLite test-suite there was a regression in 2 test-cases, one of them:
badutf2-4.1.5...
! badutf2-4.1.5 expected: [\u0080]
! badutf2-4.1.5 got: [\uFF80]
bisecting Tcl pointed to commit [7351fc0c9c], but - actually - there's nothing wrong with this commit. Further investigation resulted in the observation that the macro TclUtfToUniChar() contained a mistake: If 'str' points to a signed character (which it normally does), a character in the range \x80-\xC0 results in an unicode character in the range \xFF80-\xFFC0 ... this is clearly wrong.
Conclusion: this is a long-standing bug in the TclUtfToUniChar() macro, which was never discovered because there was no test-case touching this.
Commit [7351fc0c9c] merely exposed this bug in the SQLite test-suite.
|