Fossil SCM
4-byte utf-8 for re_compile, fix 3-byte utf-8 there, and fix a compiler warning.
Commit
f86304fefa5b50bfed2e561c27bf6626fb3627f3
Parent
c84051f38db377f…
1 file changed
+6
-1
+6
-1
| --- src/regexp.c | ||
| +++ src/regexp.c | ||
| @@ -627,11 +627,11 @@ | ||
| 627 | 627 | }else{ |
| 628 | 628 | re_append(pRe, RE_OP_ANYSTAR, 0); |
| 629 | 629 | } |
| 630 | 630 | pRe->sIn.z = (unsigned char*)zIn; |
| 631 | 631 | pRe->sIn.i = 0; |
| 632 | - pRe->sIn.mx = strlen(pRe->sIn.z); | |
| 632 | + pRe->sIn.mx = strlen(zIn); | |
| 633 | 633 | zErr = re_subcompile_re(pRe); |
| 634 | 634 | if( zErr ){ |
| 635 | 635 | re_free(pRe); |
| 636 | 636 | return zErr; |
| 637 | 637 | } |
| @@ -655,11 +655,16 @@ | ||
| 655 | 655 | pRe->zInit[j++] = 0xc0 | (x>>6); |
| 656 | 656 | pRe->zInit[j++] = 0x80 | (x&0x3f); |
| 657 | 657 | }else if( x<=0xffff ){ |
| 658 | 658 | pRe->zInit[j++] = 0xd0 | (x>>12); |
| 659 | 659 | pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f); |
| 660 | + pRe->zInit[j++] = 0x80 | (x&0x3f); | |
| 661 | + }else if( x<=0x10ffff ){ | |
| 662 | + pRe->zInit[j++] = 0xe0 | (x>>18); | |
| 663 | + pRe->zInit[j++] = 0x80 | ((x>>12)&0x3f); | |
| 660 | 664 | pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f); |
| 665 | + pRe->zInit[j++] = 0x80 | (x&0x3f); | |
| 661 | 666 | }else{ |
| 662 | 667 | break; |
| 663 | 668 | } |
| 664 | 669 | } |
| 665 | 670 | if( j>0 && pRe->zInit[j-1]==0 ) j--; |
| 666 | 671 |
| --- src/regexp.c | |
| +++ src/regexp.c | |
| @@ -627,11 +627,11 @@ | |
| 627 | }else{ |
| 628 | re_append(pRe, RE_OP_ANYSTAR, 0); |
| 629 | } |
| 630 | pRe->sIn.z = (unsigned char*)zIn; |
| 631 | pRe->sIn.i = 0; |
| 632 | pRe->sIn.mx = strlen(pRe->sIn.z); |
| 633 | zErr = re_subcompile_re(pRe); |
| 634 | if( zErr ){ |
| 635 | re_free(pRe); |
| 636 | return zErr; |
| 637 | } |
| @@ -655,11 +655,16 @@ | |
| 655 | pRe->zInit[j++] = 0xc0 | (x>>6); |
| 656 | pRe->zInit[j++] = 0x80 | (x&0x3f); |
| 657 | }else if( x<=0xffff ){ |
| 658 | pRe->zInit[j++] = 0xd0 | (x>>12); |
| 659 | pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f); |
| 660 | pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f); |
| 661 | }else{ |
| 662 | break; |
| 663 | } |
| 664 | } |
| 665 | if( j>0 && pRe->zInit[j-1]==0 ) j--; |
| 666 |
| --- src/regexp.c | |
| +++ src/regexp.c | |
| @@ -627,11 +627,11 @@ | |
| 627 | }else{ |
| 628 | re_append(pRe, RE_OP_ANYSTAR, 0); |
| 629 | } |
| 630 | pRe->sIn.z = (unsigned char*)zIn; |
| 631 | pRe->sIn.i = 0; |
| 632 | pRe->sIn.mx = strlen(zIn); |
| 633 | zErr = re_subcompile_re(pRe); |
| 634 | if( zErr ){ |
| 635 | re_free(pRe); |
| 636 | return zErr; |
| 637 | } |
| @@ -655,11 +655,16 @@ | |
| 655 | pRe->zInit[j++] = 0xc0 | (x>>6); |
| 656 | pRe->zInit[j++] = 0x80 | (x&0x3f); |
| 657 | }else if( x<=0xffff ){ |
| 658 | pRe->zInit[j++] = 0xd0 | (x>>12); |
| 659 | pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f); |
| 660 | pRe->zInit[j++] = 0x80 | (x&0x3f); |
| 661 | }else if( x<=0x10ffff ){ |
| 662 | pRe->zInit[j++] = 0xe0 | (x>>18); |
| 663 | pRe->zInit[j++] = 0x80 | ((x>>12)&0x3f); |
| 664 | pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f); |
| 665 | pRe->zInit[j++] = 0x80 | (x&0x3f); |
| 666 | }else{ |
| 667 | break; |
| 668 | } |
| 669 | } |
| 670 | if( j>0 && pRe->zInit[j-1]==0 ) j--; |
| 671 |