Fossil SCM
Adapt test-case 112 such that it contains a reversed CR/LF, a case not covered before. Fix detection of reversed CR/LF and lone CR in reversed UTF-16 case.
Commit
a4cdc7235a92342204a193a6504de066def41110
Parent
d1f0c4b93e29d71…
2 files changed
+13
-20
+28
-28
+13
-20
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -346,52 +346,45 @@ | ||
| 346 | 346 | if( n%sizeof(WCHAR_T) ){ |
| 347 | 347 | flags |= LOOK_ODD; /* Odd number of bytes -> binary (UTF-8?) */ |
| 348 | 348 | if( n<sizeof(WCHAR_T) ) return flags; /* One byte -> binary (UTF-8?) */ |
| 349 | 349 | } |
| 350 | 350 | c = *z; |
| 351 | - if( bReverse ){ | |
| 352 | - c = UTF16_SWAP(c); | |
| 353 | - } | |
| 354 | 351 | if( c==0 ){ |
| 355 | 352 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 356 | - }else if( c=='\r' ){ | |
| 357 | - flags |= LOOK_CR; | |
| 358 | - if( n<=sizeof(WCHAR_T) || z[1]!='\n' ){ | |
| 359 | - flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ | |
| 360 | - } | |
| 353 | + }else if( bReverse ){ | |
| 354 | + c = UTF16_SWAP(c); | |
| 361 | 355 | } |
| 362 | 356 | j = (c!='\n'); |
| 363 | 357 | if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ |
| 364 | 358 | while( 1 ){ |
| 365 | 359 | int c2 = c; |
| 366 | 360 | n -= sizeof(WCHAR_T); |
| 367 | 361 | if( n<sizeof(WCHAR_T) ) break; |
| 368 | 362 | c = *++z; |
| 369 | - if( bReverse ){ | |
| 370 | - c = UTF16_SWAP(c); | |
| 371 | - } | |
| 372 | 363 | ++j; |
| 373 | 364 | if( c==0 ){ |
| 374 | 365 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 375 | - }else if( c=='\n' ){ | |
| 376 | - flags |= LOOK_LF; | |
| 366 | + }else if( bReverse ){ | |
| 367 | + c = UTF16_SWAP(c); | |
| 368 | + } | |
| 369 | + if( c=='\n' ){ | |
| 377 | 370 | if( c2=='\r' ){ |
| 378 | - flags |= LOOK_CRLF; /* Found LF preceded by CR */ | |
| 371 | + flags |= (LOOK_CRLF | LOOK_CR | LOOK_LF); | |
| 379 | 372 | }else{ |
| 380 | - flags |= LOOK_LONE_LF; | |
| 373 | + flags |= (LOOK_LONE_LF | LOOK_LF); | |
| 381 | 374 | } |
| 382 | 375 | if( j>UTF16_LENGTH_MASK ){ |
| 383 | 376 | flags |= LOOK_LENGTH; /* Very long line -> binary */ |
| 384 | 377 | } |
| 385 | 378 | j = 0; |
| 386 | - }else if( c=='\r' ){ | |
| 387 | - flags |= LOOK_CR; | |
| 388 | - if( n<=sizeof(WCHAR_T) || z[1]!='\n' ){ | |
| 389 | - flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ | |
| 390 | - } | |
| 379 | + }else if( c2=='\r' ){ | |
| 380 | + flags |= (LOOK_CR | LOOK_LONE_CR); | |
| 391 | 381 | } |
| 392 | 382 | } |
| 383 | + if( c=='\r' ){ | |
| 384 | + flags |= (LOOK_CR | LOOK_LONE_CR); /* Found CR as last char */ | |
| 385 | + } | |
| 393 | 386 | if( j>UTF16_LENGTH_MASK ){ |
| 394 | 387 | flags |= LOOK_LENGTH; /* Very long line -> binary */ |
| 395 | 388 | } |
| 396 | 389 | return flags; |
| 397 | 390 | } |
| 398 | 391 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -346,52 +346,45 @@ | |
| 346 | if( n%sizeof(WCHAR_T) ){ |
| 347 | flags |= LOOK_ODD; /* Odd number of bytes -> binary (UTF-8?) */ |
| 348 | if( n<sizeof(WCHAR_T) ) return flags; /* One byte -> binary (UTF-8?) */ |
| 349 | } |
| 350 | c = *z; |
| 351 | if( bReverse ){ |
| 352 | c = UTF16_SWAP(c); |
| 353 | } |
| 354 | if( c==0 ){ |
| 355 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 356 | }else if( c=='\r' ){ |
| 357 | flags |= LOOK_CR; |
| 358 | if( n<=sizeof(WCHAR_T) || z[1]!='\n' ){ |
| 359 | flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ |
| 360 | } |
| 361 | } |
| 362 | j = (c!='\n'); |
| 363 | if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ |
| 364 | while( 1 ){ |
| 365 | int c2 = c; |
| 366 | n -= sizeof(WCHAR_T); |
| 367 | if( n<sizeof(WCHAR_T) ) break; |
| 368 | c = *++z; |
| 369 | if( bReverse ){ |
| 370 | c = UTF16_SWAP(c); |
| 371 | } |
| 372 | ++j; |
| 373 | if( c==0 ){ |
| 374 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 375 | }else if( c=='\n' ){ |
| 376 | flags |= LOOK_LF; |
| 377 | if( c2=='\r' ){ |
| 378 | flags |= LOOK_CRLF; /* Found LF preceded by CR */ |
| 379 | }else{ |
| 380 | flags |= LOOK_LONE_LF; |
| 381 | } |
| 382 | if( j>UTF16_LENGTH_MASK ){ |
| 383 | flags |= LOOK_LENGTH; /* Very long line -> binary */ |
| 384 | } |
| 385 | j = 0; |
| 386 | }else if( c=='\r' ){ |
| 387 | flags |= LOOK_CR; |
| 388 | if( n<=sizeof(WCHAR_T) || z[1]!='\n' ){ |
| 389 | flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ |
| 390 | } |
| 391 | } |
| 392 | } |
| 393 | if( j>UTF16_LENGTH_MASK ){ |
| 394 | flags |= LOOK_LENGTH; /* Very long line -> binary */ |
| 395 | } |
| 396 | return flags; |
| 397 | } |
| 398 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -346,52 +346,45 @@ | |
| 346 | if( n%sizeof(WCHAR_T) ){ |
| 347 | flags |= LOOK_ODD; /* Odd number of bytes -> binary (UTF-8?) */ |
| 348 | if( n<sizeof(WCHAR_T) ) return flags; /* One byte -> binary (UTF-8?) */ |
| 349 | } |
| 350 | c = *z; |
| 351 | if( c==0 ){ |
| 352 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 353 | }else if( bReverse ){ |
| 354 | c = UTF16_SWAP(c); |
| 355 | } |
| 356 | j = (c!='\n'); |
| 357 | if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ |
| 358 | while( 1 ){ |
| 359 | int c2 = c; |
| 360 | n -= sizeof(WCHAR_T); |
| 361 | if( n<sizeof(WCHAR_T) ) break; |
| 362 | c = *++z; |
| 363 | ++j; |
| 364 | if( c==0 ){ |
| 365 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 366 | }else if( bReverse ){ |
| 367 | c = UTF16_SWAP(c); |
| 368 | } |
| 369 | if( c=='\n' ){ |
| 370 | if( c2=='\r' ){ |
| 371 | flags |= (LOOK_CRLF | LOOK_CR | LOOK_LF); |
| 372 | }else{ |
| 373 | flags |= (LOOK_LONE_LF | LOOK_LF); |
| 374 | } |
| 375 | if( j>UTF16_LENGTH_MASK ){ |
| 376 | flags |= LOOK_LENGTH; /* Very long line -> binary */ |
| 377 | } |
| 378 | j = 0; |
| 379 | }else if( c2=='\r' ){ |
| 380 | flags |= (LOOK_CR | LOOK_LONE_CR); |
| 381 | } |
| 382 | } |
| 383 | if( c=='\r' ){ |
| 384 | flags |= (LOOK_CR | LOOK_LONE_CR); /* Found CR as last char */ |
| 385 | } |
| 386 | if( j>UTF16_LENGTH_MASK ){ |
| 387 | flags |= LOOK_LENGTH; /* Very long line -> binary */ |
| 388 | } |
| 389 | return flags; |
| 390 | } |
| 391 |
+28
-28
| --- test/utf.test | ||
| +++ test/utf.test | ||
| @@ -160,11 +160,11 @@ | ||
| 160 | 160 | 107 \x00[string repeat A 8193]\x00\r\n \ |
| 161 | 161 | 108 \x00[string repeat ABCD 2049]\x00 \ |
| 162 | 162 | 109 \x00[string repeat ABCD 2049]\x00\r \ |
| 163 | 163 | 110 \x00[string repeat ABCD 2049]\x00\n \ |
| 164 | 164 | 111 \x00[string repeat ABCD 2049]\x00\r\n \ |
| 165 | - 112 \u0d00\n \ | |
| 165 | + 112 \r\u0d00\u0a00\n \ | |
| 166 | 166 | 113 \u0a00\u0d00\n \ |
| 167 | 167 | ] |
| 168 | 168 | |
| 169 | 169 | array set extraData [list \ |
| 170 | 170 | 0 "" \ |
| @@ -3375,31 +3375,31 @@ | ||
| 3375 | 3375 | Has flag LOOK_CRLF: yes |
| 3376 | 3376 | Has flag LOOK_LENGTH: yes |
| 3377 | 3377 | Has flag LOOK_ODD: no} |
| 3378 | 3378 | |
| 3379 | 3379 | utf-check 324 utf-check-324-0-112-0.jnk \ |
| 3380 | -{File "%TEMP%/utf-check-324-0-112-0.jnk" has 2 bytes. | |
| 3380 | +{File "%TEMP%/utf-check-324-0-112-0.jnk" has 4 bytes. | |
| 3381 | 3381 | Starts with UTF-8 BOM: no |
| 3382 | 3382 | Starts with UTF-16 BOM: no |
| 3383 | 3383 | Looks like UTF-8: no |
| 3384 | 3384 | Has flag LOOK_NUL: yes |
| 3385 | -Has flag LOOK_CR: no | |
| 3386 | -Has flag LOOK_LONE_CR: no | |
| 3385 | +Has flag LOOK_CR: yes | |
| 3386 | +Has flag LOOK_LONE_CR: yes | |
| 3387 | 3387 | Has flag LOOK_LF: yes |
| 3388 | 3388 | Has flag LOOK_LONE_LF: yes |
| 3389 | 3389 | Has flag LOOK_CRLF: no |
| 3390 | 3390 | Has flag LOOK_LENGTH: no |
| 3391 | 3391 | Has flag LOOK_ODD: no} |
| 3392 | 3392 | |
| 3393 | 3393 | utf-check 325 utf-check-325-0-112-1.jnk \ |
| 3394 | -{File "%TEMP%/utf-check-325-0-112-1.jnk" has 3 bytes. | |
| 3394 | +{File "%TEMP%/utf-check-325-0-112-1.jnk" has 5 bytes. | |
| 3395 | 3395 | Starts with UTF-8 BOM: no |
| 3396 | 3396 | Starts with UTF-16 BOM: no |
| 3397 | 3397 | Looks like UTF-8: no |
| 3398 | 3398 | Has flag LOOK_NUL: yes |
| 3399 | -Has flag LOOK_CR: no | |
| 3400 | -Has flag LOOK_LONE_CR: no | |
| 3399 | +Has flag LOOK_CR: yes | |
| 3400 | +Has flag LOOK_LONE_CR: yes | |
| 3401 | 3401 | Has flag LOOK_LF: yes |
| 3402 | 3402 | Has flag LOOK_LONE_LF: yes |
| 3403 | 3403 | Has flag LOOK_CRLF: no |
| 3404 | 3404 | Has flag LOOK_LENGTH: no |
| 3405 | 3405 | Has flag LOOK_ODD: no} |
| @@ -6567,31 +6567,31 @@ | ||
| 6567 | 6567 | Has flag LOOK_CRLF: yes |
| 6568 | 6568 | Has flag LOOK_LENGTH: yes |
| 6569 | 6569 | Has flag LOOK_ODD: no} |
| 6570 | 6570 | |
| 6571 | 6571 | utf-check 552 utf-check-552-1-112-0.jnk \ |
| 6572 | -{File "%TEMP%/utf-check-552-1-112-0.jnk" has 7 bytes. | |
| 6572 | +{File "%TEMP%/utf-check-552-1-112-0.jnk" has 11 bytes. | |
| 6573 | 6573 | Starts with UTF-8 BOM: yes |
| 6574 | 6574 | Starts with UTF-16 BOM: no |
| 6575 | 6575 | Looks like UTF-8: yes |
| 6576 | 6576 | Has flag LOOK_NUL: no |
| 6577 | -Has flag LOOK_CR: no | |
| 6578 | -Has flag LOOK_LONE_CR: no | |
| 6577 | +Has flag LOOK_CR: yes | |
| 6578 | +Has flag LOOK_LONE_CR: yes | |
| 6579 | 6579 | Has flag LOOK_LF: yes |
| 6580 | 6580 | Has flag LOOK_LONE_LF: yes |
| 6581 | 6581 | Has flag LOOK_CRLF: no |
| 6582 | 6582 | Has flag LOOK_LENGTH: no |
| 6583 | 6583 | Has flag LOOK_ODD: no} |
| 6584 | 6584 | |
| 6585 | 6585 | utf-check 553 utf-check-553-1-112-1.jnk \ |
| 6586 | -{File "%TEMP%/utf-check-553-1-112-1.jnk" has 8 bytes. | |
| 6586 | +{File "%TEMP%/utf-check-553-1-112-1.jnk" has 12 bytes. | |
| 6587 | 6587 | Starts with UTF-8 BOM: yes |
| 6588 | 6588 | Starts with UTF-16 BOM: no |
| 6589 | 6589 | Looks like UTF-8: yes |
| 6590 | 6590 | Has flag LOOK_NUL: no |
| 6591 | -Has flag LOOK_CR: no | |
| 6592 | -Has flag LOOK_LONE_CR: no | |
| 6591 | +Has flag LOOK_CR: yes | |
| 6592 | +Has flag LOOK_LONE_CR: yes | |
| 6593 | 6593 | Has flag LOOK_LF: yes |
| 6594 | 6594 | Has flag LOOK_LONE_LF: yes |
| 6595 | 6595 | Has flag LOOK_CRLF: no |
| 6596 | 6596 | Has flag LOOK_LENGTH: no |
| 6597 | 6597 | Has flag LOOK_ODD: no} |
| @@ -9759,34 +9759,34 @@ | ||
| 9759 | 9759 | Has flag LOOK_CRLF: no |
| 9760 | 9760 | Has flag LOOK_LENGTH: yes |
| 9761 | 9761 | Has flag LOOK_ODD: no} |
| 9762 | 9762 | |
| 9763 | 9763 | utf-check 780 utf-check-780-2-112-0.jnk \ |
| 9764 | -{File "%TEMP%/utf-check-780-2-112-0.jnk" has 6 bytes. | |
| 9764 | +{File "%TEMP%/utf-check-780-2-112-0.jnk" has 10 bytes. | |
| 9765 | 9765 | Starts with UTF-8 BOM: no |
| 9766 | 9766 | Starts with UTF-16 BOM: yes |
| 9767 | 9767 | Looks like UTF-16: yes |
| 9768 | 9768 | Has flag LOOK_NUL: no |
| 9769 | -Has flag LOOK_CR: no | |
| 9770 | -Has flag LOOK_LONE_CR: no | |
| 9769 | +Has flag LOOK_CR: yes | |
| 9770 | +Has flag LOOK_LONE_CR: yes | |
| 9771 | 9771 | Has flag LOOK_LF: yes |
| 9772 | 9772 | Has flag LOOK_LONE_LF: yes |
| 9773 | 9773 | Has flag LOOK_CRLF: no |
| 9774 | 9774 | Has flag LOOK_LENGTH: no |
| 9775 | 9775 | Has flag LOOK_ODD: no} |
| 9776 | 9776 | |
| 9777 | 9777 | utf-check 781 utf-check-781-2-112-1.jnk \ |
| 9778 | -{File "%TEMP%/utf-check-781-2-112-1.jnk" has 7 bytes. | |
| 9778 | +{File "%TEMP%/utf-check-781-2-112-1.jnk" has 11 bytes. | |
| 9779 | 9779 | Starts with UTF-8 BOM: no |
| 9780 | 9780 | Starts with UTF-16 BOM: yes |
| 9781 | 9781 | Looks like UTF-8: no |
| 9782 | 9782 | Has flag LOOK_NUL: yes |
| 9783 | 9783 | Has flag LOOK_CR: yes |
| 9784 | -Has flag LOOK_LONE_CR: no | |
| 9784 | +Has flag LOOK_LONE_CR: yes | |
| 9785 | 9785 | Has flag LOOK_LF: yes |
| 9786 | -Has flag LOOK_LONE_LF: no | |
| 9787 | -Has flag LOOK_CRLF: yes | |
| 9786 | +Has flag LOOK_LONE_LF: yes | |
| 9787 | +Has flag LOOK_CRLF: no | |
| 9788 | 9788 | Has flag LOOK_LENGTH: no |
| 9789 | 9789 | Has flag LOOK_ODD: no} |
| 9790 | 9790 | |
| 9791 | 9791 | utf-check 782 utf-check-782-2-113-0.jnk \ |
| 9792 | 9792 | {File "%TEMP%/utf-check-782-2-113-0.jnk" has 8 bytes. |
| @@ -12951,34 +12951,34 @@ | ||
| 12951 | 12951 | Has flag LOOK_CRLF: no |
| 12952 | 12952 | Has flag LOOK_LENGTH: yes |
| 12953 | 12953 | Has flag LOOK_ODD: no} |
| 12954 | 12954 | |
| 12955 | 12955 | utf-check 1008 utf-check-1008-3-112-0.jnk \ |
| 12956 | -{File "%TEMP%/utf-check-1008-3-112-0.jnk" has 6 bytes. | |
| 12956 | +{File "%TEMP%/utf-check-1008-3-112-0.jnk" has 10 bytes. | |
| 12957 | 12957 | Starts with UTF-8 BOM: no |
| 12958 | 12958 | Starts with UTF-16 BOM: reversed |
| 12959 | 12959 | Looks like UTF-16: yes |
| 12960 | 12960 | Has flag LOOK_NUL: no |
| 12961 | 12961 | Has flag LOOK_CR: yes |
| 12962 | 12962 | Has flag LOOK_LONE_CR: no |
| 12963 | -Has flag LOOK_LF: no | |
| 12963 | +Has flag LOOK_LF: yes | |
| 12964 | 12964 | Has flag LOOK_LONE_LF: no |
| 12965 | -Has flag LOOK_CRLF: no | |
| 12965 | +Has flag LOOK_CRLF: yes | |
| 12966 | 12966 | Has flag LOOK_LENGTH: no |
| 12967 | 12967 | Has flag LOOK_ODD: no} |
| 12968 | 12968 | |
| 12969 | 12969 | utf-check 1009 utf-check-1009-3-112-1.jnk \ |
| 12970 | -{File "%TEMP%/utf-check-1009-3-112-1.jnk" has 7 bytes. | |
| 12970 | +{File "%TEMP%/utf-check-1009-3-112-1.jnk" has 11 bytes. | |
| 12971 | 12971 | Starts with UTF-8 BOM: no |
| 12972 | 12972 | Starts with UTF-16 BOM: reversed |
| 12973 | 12973 | Looks like UTF-8: no |
| 12974 | 12974 | Has flag LOOK_NUL: yes |
| 12975 | 12975 | Has flag LOOK_CR: yes |
| 12976 | -Has flag LOOK_LONE_CR: no | |
| 12976 | +Has flag LOOK_LONE_CR: yes | |
| 12977 | 12977 | Has flag LOOK_LF: yes |
| 12978 | -Has flag LOOK_LONE_LF: no | |
| 12979 | -Has flag LOOK_CRLF: yes | |
| 12978 | +Has flag LOOK_LONE_LF: yes | |
| 12979 | +Has flag LOOK_CRLF: no | |
| 12980 | 12980 | Has flag LOOK_LENGTH: no |
| 12981 | 12981 | Has flag LOOK_ODD: no} |
| 12982 | 12982 | |
| 12983 | 12983 | utf-check 1010 utf-check-1010-3-113-0.jnk \ |
| 12984 | 12984 | {File "%TEMP%/utf-check-1010-3-113-0.jnk" has 8 bytes. |
| @@ -12985,11 +12985,11 @@ | ||
| 12985 | 12985 | Starts with UTF-8 BOM: no |
| 12986 | 12986 | Starts with UTF-16 BOM: reversed |
| 12987 | 12987 | Looks like UTF-16: yes |
| 12988 | 12988 | Has flag LOOK_NUL: no |
| 12989 | 12989 | Has flag LOOK_CR: yes |
| 12990 | -Has flag LOOK_LONE_CR: no | |
| 12990 | +Has flag LOOK_LONE_CR: yes | |
| 12991 | 12991 | Has flag LOOK_LF: yes |
| 12992 | 12992 | Has flag LOOK_LONE_LF: yes |
| 12993 | 12993 | Has flag LOOK_CRLF: no |
| 12994 | 12994 | Has flag LOOK_LENGTH: no |
| 12995 | 12995 | Has flag LOOK_ODD: no} |
| 12996 | 12996 |
| --- test/utf.test | |
| +++ test/utf.test | |
| @@ -160,11 +160,11 @@ | |
| 160 | 107 \x00[string repeat A 8193]\x00\r\n \ |
| 161 | 108 \x00[string repeat ABCD 2049]\x00 \ |
| 162 | 109 \x00[string repeat ABCD 2049]\x00\r \ |
| 163 | 110 \x00[string repeat ABCD 2049]\x00\n \ |
| 164 | 111 \x00[string repeat ABCD 2049]\x00\r\n \ |
| 165 | 112 \u0d00\n \ |
| 166 | 113 \u0a00\u0d00\n \ |
| 167 | ] |
| 168 | |
| 169 | array set extraData [list \ |
| 170 | 0 "" \ |
| @@ -3375,31 +3375,31 @@ | |
| 3375 | Has flag LOOK_CRLF: yes |
| 3376 | Has flag LOOK_LENGTH: yes |
| 3377 | Has flag LOOK_ODD: no} |
| 3378 | |
| 3379 | utf-check 324 utf-check-324-0-112-0.jnk \ |
| 3380 | {File "%TEMP%/utf-check-324-0-112-0.jnk" has 2 bytes. |
| 3381 | Starts with UTF-8 BOM: no |
| 3382 | Starts with UTF-16 BOM: no |
| 3383 | Looks like UTF-8: no |
| 3384 | Has flag LOOK_NUL: yes |
| 3385 | Has flag LOOK_CR: no |
| 3386 | Has flag LOOK_LONE_CR: no |
| 3387 | Has flag LOOK_LF: yes |
| 3388 | Has flag LOOK_LONE_LF: yes |
| 3389 | Has flag LOOK_CRLF: no |
| 3390 | Has flag LOOK_LENGTH: no |
| 3391 | Has flag LOOK_ODD: no} |
| 3392 | |
| 3393 | utf-check 325 utf-check-325-0-112-1.jnk \ |
| 3394 | {File "%TEMP%/utf-check-325-0-112-1.jnk" has 3 bytes. |
| 3395 | Starts with UTF-8 BOM: no |
| 3396 | Starts with UTF-16 BOM: no |
| 3397 | Looks like UTF-8: no |
| 3398 | Has flag LOOK_NUL: yes |
| 3399 | Has flag LOOK_CR: no |
| 3400 | Has flag LOOK_LONE_CR: no |
| 3401 | Has flag LOOK_LF: yes |
| 3402 | Has flag LOOK_LONE_LF: yes |
| 3403 | Has flag LOOK_CRLF: no |
| 3404 | Has flag LOOK_LENGTH: no |
| 3405 | Has flag LOOK_ODD: no} |
| @@ -6567,31 +6567,31 @@ | |
| 6567 | Has flag LOOK_CRLF: yes |
| 6568 | Has flag LOOK_LENGTH: yes |
| 6569 | Has flag LOOK_ODD: no} |
| 6570 | |
| 6571 | utf-check 552 utf-check-552-1-112-0.jnk \ |
| 6572 | {File "%TEMP%/utf-check-552-1-112-0.jnk" has 7 bytes. |
| 6573 | Starts with UTF-8 BOM: yes |
| 6574 | Starts with UTF-16 BOM: no |
| 6575 | Looks like UTF-8: yes |
| 6576 | Has flag LOOK_NUL: no |
| 6577 | Has flag LOOK_CR: no |
| 6578 | Has flag LOOK_LONE_CR: no |
| 6579 | Has flag LOOK_LF: yes |
| 6580 | Has flag LOOK_LONE_LF: yes |
| 6581 | Has flag LOOK_CRLF: no |
| 6582 | Has flag LOOK_LENGTH: no |
| 6583 | Has flag LOOK_ODD: no} |
| 6584 | |
| 6585 | utf-check 553 utf-check-553-1-112-1.jnk \ |
| 6586 | {File "%TEMP%/utf-check-553-1-112-1.jnk" has 8 bytes. |
| 6587 | Starts with UTF-8 BOM: yes |
| 6588 | Starts with UTF-16 BOM: no |
| 6589 | Looks like UTF-8: yes |
| 6590 | Has flag LOOK_NUL: no |
| 6591 | Has flag LOOK_CR: no |
| 6592 | Has flag LOOK_LONE_CR: no |
| 6593 | Has flag LOOK_LF: yes |
| 6594 | Has flag LOOK_LONE_LF: yes |
| 6595 | Has flag LOOK_CRLF: no |
| 6596 | Has flag LOOK_LENGTH: no |
| 6597 | Has flag LOOK_ODD: no} |
| @@ -9759,34 +9759,34 @@ | |
| 9759 | Has flag LOOK_CRLF: no |
| 9760 | Has flag LOOK_LENGTH: yes |
| 9761 | Has flag LOOK_ODD: no} |
| 9762 | |
| 9763 | utf-check 780 utf-check-780-2-112-0.jnk \ |
| 9764 | {File "%TEMP%/utf-check-780-2-112-0.jnk" has 6 bytes. |
| 9765 | Starts with UTF-8 BOM: no |
| 9766 | Starts with UTF-16 BOM: yes |
| 9767 | Looks like UTF-16: yes |
| 9768 | Has flag LOOK_NUL: no |
| 9769 | Has flag LOOK_CR: no |
| 9770 | Has flag LOOK_LONE_CR: no |
| 9771 | Has flag LOOK_LF: yes |
| 9772 | Has flag LOOK_LONE_LF: yes |
| 9773 | Has flag LOOK_CRLF: no |
| 9774 | Has flag LOOK_LENGTH: no |
| 9775 | Has flag LOOK_ODD: no} |
| 9776 | |
| 9777 | utf-check 781 utf-check-781-2-112-1.jnk \ |
| 9778 | {File "%TEMP%/utf-check-781-2-112-1.jnk" has 7 bytes. |
| 9779 | Starts with UTF-8 BOM: no |
| 9780 | Starts with UTF-16 BOM: yes |
| 9781 | Looks like UTF-8: no |
| 9782 | Has flag LOOK_NUL: yes |
| 9783 | Has flag LOOK_CR: yes |
| 9784 | Has flag LOOK_LONE_CR: no |
| 9785 | Has flag LOOK_LF: yes |
| 9786 | Has flag LOOK_LONE_LF: no |
| 9787 | Has flag LOOK_CRLF: yes |
| 9788 | Has flag LOOK_LENGTH: no |
| 9789 | Has flag LOOK_ODD: no} |
| 9790 | |
| 9791 | utf-check 782 utf-check-782-2-113-0.jnk \ |
| 9792 | {File "%TEMP%/utf-check-782-2-113-0.jnk" has 8 bytes. |
| @@ -12951,34 +12951,34 @@ | |
| 12951 | Has flag LOOK_CRLF: no |
| 12952 | Has flag LOOK_LENGTH: yes |
| 12953 | Has flag LOOK_ODD: no} |
| 12954 | |
| 12955 | utf-check 1008 utf-check-1008-3-112-0.jnk \ |
| 12956 | {File "%TEMP%/utf-check-1008-3-112-0.jnk" has 6 bytes. |
| 12957 | Starts with UTF-8 BOM: no |
| 12958 | Starts with UTF-16 BOM: reversed |
| 12959 | Looks like UTF-16: yes |
| 12960 | Has flag LOOK_NUL: no |
| 12961 | Has flag LOOK_CR: yes |
| 12962 | Has flag LOOK_LONE_CR: no |
| 12963 | Has flag LOOK_LF: no |
| 12964 | Has flag LOOK_LONE_LF: no |
| 12965 | Has flag LOOK_CRLF: no |
| 12966 | Has flag LOOK_LENGTH: no |
| 12967 | Has flag LOOK_ODD: no} |
| 12968 | |
| 12969 | utf-check 1009 utf-check-1009-3-112-1.jnk \ |
| 12970 | {File "%TEMP%/utf-check-1009-3-112-1.jnk" has 7 bytes. |
| 12971 | Starts with UTF-8 BOM: no |
| 12972 | Starts with UTF-16 BOM: reversed |
| 12973 | Looks like UTF-8: no |
| 12974 | Has flag LOOK_NUL: yes |
| 12975 | Has flag LOOK_CR: yes |
| 12976 | Has flag LOOK_LONE_CR: no |
| 12977 | Has flag LOOK_LF: yes |
| 12978 | Has flag LOOK_LONE_LF: no |
| 12979 | Has flag LOOK_CRLF: yes |
| 12980 | Has flag LOOK_LENGTH: no |
| 12981 | Has flag LOOK_ODD: no} |
| 12982 | |
| 12983 | utf-check 1010 utf-check-1010-3-113-0.jnk \ |
| 12984 | {File "%TEMP%/utf-check-1010-3-113-0.jnk" has 8 bytes. |
| @@ -12985,11 +12985,11 @@ | |
| 12985 | Starts with UTF-8 BOM: no |
| 12986 | Starts with UTF-16 BOM: reversed |
| 12987 | Looks like UTF-16: yes |
| 12988 | Has flag LOOK_NUL: no |
| 12989 | Has flag LOOK_CR: yes |
| 12990 | Has flag LOOK_LONE_CR: no |
| 12991 | Has flag LOOK_LF: yes |
| 12992 | Has flag LOOK_LONE_LF: yes |
| 12993 | Has flag LOOK_CRLF: no |
| 12994 | Has flag LOOK_LENGTH: no |
| 12995 | Has flag LOOK_ODD: no} |
| 12996 |
| --- test/utf.test | |
| +++ test/utf.test | |
| @@ -160,11 +160,11 @@ | |
| 160 | 107 \x00[string repeat A 8193]\x00\r\n \ |
| 161 | 108 \x00[string repeat ABCD 2049]\x00 \ |
| 162 | 109 \x00[string repeat ABCD 2049]\x00\r \ |
| 163 | 110 \x00[string repeat ABCD 2049]\x00\n \ |
| 164 | 111 \x00[string repeat ABCD 2049]\x00\r\n \ |
| 165 | 112 \r\u0d00\u0a00\n \ |
| 166 | 113 \u0a00\u0d00\n \ |
| 167 | ] |
| 168 | |
| 169 | array set extraData [list \ |
| 170 | 0 "" \ |
| @@ -3375,31 +3375,31 @@ | |
| 3375 | Has flag LOOK_CRLF: yes |
| 3376 | Has flag LOOK_LENGTH: yes |
| 3377 | Has flag LOOK_ODD: no} |
| 3378 | |
| 3379 | utf-check 324 utf-check-324-0-112-0.jnk \ |
| 3380 | {File "%TEMP%/utf-check-324-0-112-0.jnk" has 4 bytes. |
| 3381 | Starts with UTF-8 BOM: no |
| 3382 | Starts with UTF-16 BOM: no |
| 3383 | Looks like UTF-8: no |
| 3384 | Has flag LOOK_NUL: yes |
| 3385 | Has flag LOOK_CR: yes |
| 3386 | Has flag LOOK_LONE_CR: yes |
| 3387 | Has flag LOOK_LF: yes |
| 3388 | Has flag LOOK_LONE_LF: yes |
| 3389 | Has flag LOOK_CRLF: no |
| 3390 | Has flag LOOK_LENGTH: no |
| 3391 | Has flag LOOK_ODD: no} |
| 3392 | |
| 3393 | utf-check 325 utf-check-325-0-112-1.jnk \ |
| 3394 | {File "%TEMP%/utf-check-325-0-112-1.jnk" has 5 bytes. |
| 3395 | Starts with UTF-8 BOM: no |
| 3396 | Starts with UTF-16 BOM: no |
| 3397 | Looks like UTF-8: no |
| 3398 | Has flag LOOK_NUL: yes |
| 3399 | Has flag LOOK_CR: yes |
| 3400 | Has flag LOOK_LONE_CR: yes |
| 3401 | Has flag LOOK_LF: yes |
| 3402 | Has flag LOOK_LONE_LF: yes |
| 3403 | Has flag LOOK_CRLF: no |
| 3404 | Has flag LOOK_LENGTH: no |
| 3405 | Has flag LOOK_ODD: no} |
| @@ -6567,31 +6567,31 @@ | |
| 6567 | Has flag LOOK_CRLF: yes |
| 6568 | Has flag LOOK_LENGTH: yes |
| 6569 | Has flag LOOK_ODD: no} |
| 6570 | |
| 6571 | utf-check 552 utf-check-552-1-112-0.jnk \ |
| 6572 | {File "%TEMP%/utf-check-552-1-112-0.jnk" has 11 bytes. |
| 6573 | Starts with UTF-8 BOM: yes |
| 6574 | Starts with UTF-16 BOM: no |
| 6575 | Looks like UTF-8: yes |
| 6576 | Has flag LOOK_NUL: no |
| 6577 | Has flag LOOK_CR: yes |
| 6578 | Has flag LOOK_LONE_CR: yes |
| 6579 | Has flag LOOK_LF: yes |
| 6580 | Has flag LOOK_LONE_LF: yes |
| 6581 | Has flag LOOK_CRLF: no |
| 6582 | Has flag LOOK_LENGTH: no |
| 6583 | Has flag LOOK_ODD: no} |
| 6584 | |
| 6585 | utf-check 553 utf-check-553-1-112-1.jnk \ |
| 6586 | {File "%TEMP%/utf-check-553-1-112-1.jnk" has 12 bytes. |
| 6587 | Starts with UTF-8 BOM: yes |
| 6588 | Starts with UTF-16 BOM: no |
| 6589 | Looks like UTF-8: yes |
| 6590 | Has flag LOOK_NUL: no |
| 6591 | Has flag LOOK_CR: yes |
| 6592 | Has flag LOOK_LONE_CR: yes |
| 6593 | Has flag LOOK_LF: yes |
| 6594 | Has flag LOOK_LONE_LF: yes |
| 6595 | Has flag LOOK_CRLF: no |
| 6596 | Has flag LOOK_LENGTH: no |
| 6597 | Has flag LOOK_ODD: no} |
| @@ -9759,34 +9759,34 @@ | |
| 9759 | Has flag LOOK_CRLF: no |
| 9760 | Has flag LOOK_LENGTH: yes |
| 9761 | Has flag LOOK_ODD: no} |
| 9762 | |
| 9763 | utf-check 780 utf-check-780-2-112-0.jnk \ |
| 9764 | {File "%TEMP%/utf-check-780-2-112-0.jnk" has 10 bytes. |
| 9765 | Starts with UTF-8 BOM: no |
| 9766 | Starts with UTF-16 BOM: yes |
| 9767 | Looks like UTF-16: yes |
| 9768 | Has flag LOOK_NUL: no |
| 9769 | Has flag LOOK_CR: yes |
| 9770 | Has flag LOOK_LONE_CR: yes |
| 9771 | Has flag LOOK_LF: yes |
| 9772 | Has flag LOOK_LONE_LF: yes |
| 9773 | Has flag LOOK_CRLF: no |
| 9774 | Has flag LOOK_LENGTH: no |
| 9775 | Has flag LOOK_ODD: no} |
| 9776 | |
| 9777 | utf-check 781 utf-check-781-2-112-1.jnk \ |
| 9778 | {File "%TEMP%/utf-check-781-2-112-1.jnk" has 11 bytes. |
| 9779 | Starts with UTF-8 BOM: no |
| 9780 | Starts with UTF-16 BOM: yes |
| 9781 | Looks like UTF-8: no |
| 9782 | Has flag LOOK_NUL: yes |
| 9783 | Has flag LOOK_CR: yes |
| 9784 | Has flag LOOK_LONE_CR: yes |
| 9785 | Has flag LOOK_LF: yes |
| 9786 | Has flag LOOK_LONE_LF: yes |
| 9787 | Has flag LOOK_CRLF: no |
| 9788 | Has flag LOOK_LENGTH: no |
| 9789 | Has flag LOOK_ODD: no} |
| 9790 | |
| 9791 | utf-check 782 utf-check-782-2-113-0.jnk \ |
| 9792 | {File "%TEMP%/utf-check-782-2-113-0.jnk" has 8 bytes. |
| @@ -12951,34 +12951,34 @@ | |
| 12951 | Has flag LOOK_CRLF: no |
| 12952 | Has flag LOOK_LENGTH: yes |
| 12953 | Has flag LOOK_ODD: no} |
| 12954 | |
| 12955 | utf-check 1008 utf-check-1008-3-112-0.jnk \ |
| 12956 | {File "%TEMP%/utf-check-1008-3-112-0.jnk" has 10 bytes. |
| 12957 | Starts with UTF-8 BOM: no |
| 12958 | Starts with UTF-16 BOM: reversed |
| 12959 | Looks like UTF-16: yes |
| 12960 | Has flag LOOK_NUL: no |
| 12961 | Has flag LOOK_CR: yes |
| 12962 | Has flag LOOK_LONE_CR: no |
| 12963 | Has flag LOOK_LF: yes |
| 12964 | Has flag LOOK_LONE_LF: no |
| 12965 | Has flag LOOK_CRLF: yes |
| 12966 | Has flag LOOK_LENGTH: no |
| 12967 | Has flag LOOK_ODD: no} |
| 12968 | |
| 12969 | utf-check 1009 utf-check-1009-3-112-1.jnk \ |
| 12970 | {File "%TEMP%/utf-check-1009-3-112-1.jnk" has 11 bytes. |
| 12971 | Starts with UTF-8 BOM: no |
| 12972 | Starts with UTF-16 BOM: reversed |
| 12973 | Looks like UTF-8: no |
| 12974 | Has flag LOOK_NUL: yes |
| 12975 | Has flag LOOK_CR: yes |
| 12976 | Has flag LOOK_LONE_CR: yes |
| 12977 | Has flag LOOK_LF: yes |
| 12978 | Has flag LOOK_LONE_LF: yes |
| 12979 | Has flag LOOK_CRLF: no |
| 12980 | Has flag LOOK_LENGTH: no |
| 12981 | Has flag LOOK_ODD: no} |
| 12982 | |
| 12983 | utf-check 1010 utf-check-1010-3-113-0.jnk \ |
| 12984 | {File "%TEMP%/utf-check-1010-3-113-0.jnk" has 8 bytes. |
| @@ -12985,11 +12985,11 @@ | |
| 12985 | Starts with UTF-8 BOM: no |
| 12986 | Starts with UTF-16 BOM: reversed |
| 12987 | Looks like UTF-16: yes |
| 12988 | Has flag LOOK_NUL: no |
| 12989 | Has flag LOOK_CR: yes |
| 12990 | Has flag LOOK_LONE_CR: yes |
| 12991 | Has flag LOOK_LF: yes |
| 12992 | Has flag LOOK_LONE_LF: yes |
| 12993 | Has flag LOOK_CRLF: no |
| 12994 | Has flag LOOK_LENGTH: no |
| 12995 | Has flag LOOK_ODD: no} |
| 12996 |