Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch bug-ed29806baf-8.6 Through [76cc0911f3] Excluding Merge-Ins
This is equivalent to a diff from b14b21b3aa to 76cc0911f3
|
2020-05-04
| ||
| 13:01 | Merge 8.6 check-in: 1256ace951 user: jan.nijtmans tags: bug-ed29806baf-8.6 | |
| 12:31 | New internal function TclGetUCS4() only available when TCL_UTF_MAX=4. This fixes all "knownBug" test... check-in: 41517f0841 user: jan.nijtmans tags: core-8-6-branch | |
| 11:08 | Merge 8.6 check-in: 76cc0911f3 user: jan.nijtmans tags: bug-ed29806baf-8.6 | |
| 09:41 | Merge 8.6 check-in: 2dd789a502 user: jan.nijtmans tags: core-8-branch | |
| 09:40 | Merge 8.5 check-in: b14b21b3aa user: jan.nijtmans tags: core-8-6-branch | |
| 09:37 | Test-case cleanup. Increase timeout a little bit in main.test, making Travis build errors because of... check-in: c6a5d8fca9 user: jan.nijtmans tags: core-8-5-branch | |
| 08:35 | (partial) fix for [9d0cb35bb2]: Various issues with core-8-6-branch, TCL_UTF_MAX=4. (even though TCL... check-in: af513d6a16 user: jan.nijtmans tags: core-8-6-branch | |
|
2020-05-03
| ||
| 22:27 | Merge 8.6 check-in: 0de2fe18d1 user: jan.nijtmans tags: bug-ed29806baf-8.6 | |
Changes to generic/tclExecute.c.
| ︙ | |||
5567 5568 5569 5570 5571 5572 5573 | 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 | - + - - - - - - - + |
} else if (TclIsPureByteArray(valuePtr)) {
objResultPtr = Tcl_NewByteArrayObj(
Tcl_GetByteArrayFromObj(valuePtr, NULL)+index, 1);
} else if (valuePtr->bytes && length == valuePtr->length) {
objResultPtr = Tcl_NewStringObj((const char *)
valuePtr->bytes+index, 1);
} else {
|
| ︙ |
Changes to generic/tclUtf.c.
| ︙ | |||
60 61 62 63 64 65 66 | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | + + + + + + - + + + + + + + + + + + + + + - + |
*/
static const unsigned char totalBytes[256] = {
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,
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,
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,
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,
/* 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,
/* End of "continuation byte section" */
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,
|
| ︙ | |||
553 554 555 556 557 558 559 | 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 | - + |
int
Tcl_UtfCharComplete(
const char *src, /* String to check if first few bytes contain
* a complete UTF-8 character. */
int length) /* Length of above string in bytes. */
{
|
| ︙ |
Changes to tests/utf.test.
| ︙ | |||
393 394 395 396 397 398 399 | 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 | - + - + - + - + - + - + - + |
} 3
test utf-6.68 {Tcl_UtfNext} testutfnext {
testutfnext \xF2\xA0\xA0G
} 1
test utf-6.69.0 {Tcl_UtfNext} {testutfnext ucs2} {
testutfnext \xF2\xA0\xA0\xA0
} 1
|
| ︙ | |||
468 469 470 471 472 473 474 | 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 | - + - + - + + + + - + - + + + + - + |
} 3
test utf-6.86 {Tcl_UtfNext - overlong sequences} testutfnext {
testutfnext \xF0\x80\x80\x80
} 1
test utf-6.87.0 {Tcl_UtfNext - overlong sequences} {testutfnext ucs2} {
testutfnext \xF0\x90\x80\x80
} 1
|
| ︙ | |||
549 550 551 552 553 554 555 | 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 | - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + |
} 0
test utf-6.109 {Tcl_UtfNext, read limits} testutfnext {
testutfnext \xE8\xA0\xA0\xA0 3
} 3
test utf-6.110.0 {Tcl_UtfNext, read limits} {testutfnext ucs2} {
testutfnext \xF2\xA0\xA0\xA0G 1
} 1
|
| ︙ | |||
688 689 690 691 692 693 694 | 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 | - + - + - + |
} 2
test utf-7.9.2 {Tcl_UtfPrev} testutfprev {
testutfprev A\xF8\xA0\xF8\xA0 3
} 2
test utf-7.10.0 {Tcl_UtfPrev} {testutfprev ucs2} {
testutfprev A\xF2\xA0
} 2
|
| ︙ | |||
745 746 747 748 749 750 751 | 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 | - + - + - + |
} 3
test utf-7.14.2 {Tcl_UtfPrev} testutfprev {
testutfprev A\xF8\xA0\xA0\xF8 4
} 3
test utf-7.15.0 {Tcl_UtfPrev} {testutfprev ucs2} {
testutfprev A\xF2\xA0\xA0
} 3
|
| ︙ | |||
883 884 885 886 887 888 889 | 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 | - + - + - + |
} 1
test utf-7.38 {Tcl_UtfPrev -- overlong sequence} testutfprev {
testutfprev A\xE0\xA0\x80 2
} 1
test utf-7.39.0 {Tcl_UtfPrev -- overlong sequence} {testutfprev ucs2} {
testutfprev A\xF0\x90\x80\x80
} 2
|
| ︙ | |||
928 929 930 931 932 933 934 | 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 | - + - + - + |
} 0
test utf-7.47.2 {Tcl_UtfPrev, pointing to 3th byte of 3-byte invalid sequence} testutfprev {
testutfprev \xE8\xA0\x00 2
} 0
test utf-7.48.0 {Tcl_UtfPrev, validity check [493dccc2de]} {testutfprev ucs2} {
testutfprev A\xF4\x8F\xBF\xBF
} 2
|
| ︙ | |||
983 984 985 986 987 988 989 | 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 | - + - + |
} c
test utf-8.4 {Tcl_UniCharAtIndex: index > 0} {
string index \u4E4E\u25A\xFF\u543 2
} \uFF
test utf-8.5.0 {Tcl_UniCharAtIndex: high surrogate} ucs2 {
string index \uD842 0
} \uD842
|
| ︙ | |||
1178 1179 1180 1181 1182 1183 1184 | 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 | - + | bsCheck \uk 117 bsCheck \u41 65 bsCheck \ua 10 bsCheck \uA 10 bsCheck \340 224 bsCheck \uA1 161 bsCheck \u4E21 20001 |
| ︙ | |||
1340 1341 1342 1343 1344 1345 1346 | 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 | - + |
string compare [string range [format %c 0xFFFF] 0 0] [string range [format %c 0x10000] 0 0]
} -1
test utf-20.2 {[4c591fa487] TclUniCharNcmp/TclUtfNcmp} knownBug {
set one [format %c 0xFFFF]
set two [format %c 0x10000]
set first [string compare $one $two]
string range $one 0 0
|
| ︙ | |||
1462 1463 1464 1465 1466 1467 1468 | 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 | - + - + |
incr count
}
variable count 1
UniCharCaseCmpTest < a b
UniCharCaseCmpTest > b a
UniCharCaseCmpTest > B a
UniCharCaseCmpTest > aBcB abca
|
| ︙ |