Fossil SCM

4-byte utf-8 for re_compile, fix 3-byte utf-8 there, and fix a compiler warning.

jan.nijtmans 2013-01-03 22:33 trunk
Commit f86304fefa5b50bfed2e561c27bf6626fb3627f3
1 file changed +6 -1
+6 -1
--- src/regexp.c
+++ src/regexp.c
@@ -627,11 +627,11 @@
627627
}else{
628628
re_append(pRe, RE_OP_ANYSTAR, 0);
629629
}
630630
pRe->sIn.z = (unsigned char*)zIn;
631631
pRe->sIn.i = 0;
632
- pRe->sIn.mx = strlen(pRe->sIn.z);
632
+ pRe->sIn.mx = strlen(zIn);
633633
zErr = re_subcompile_re(pRe);
634634
if( zErr ){
635635
re_free(pRe);
636636
return zErr;
637637
}
@@ -655,11 +655,16 @@
655655
pRe->zInit[j++] = 0xc0 | (x>>6);
656656
pRe->zInit[j++] = 0x80 | (x&0x3f);
657657
}else if( x<=0xffff ){
658658
pRe->zInit[j++] = 0xd0 | (x>>12);
659659
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);
660664
pRe->zInit[j++] = 0x80 | ((x>>6)&0x3f);
665
+ pRe->zInit[j++] = 0x80 | (x&0x3f);
661666
}else{
662667
break;
663668
}
664669
}
665670
if( j>0 && pRe->zInit[j-1]==0 ) j--;
666671
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button