diff options
author | drh <drh@noemail.net> | 2012-12-31 20:16:35 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2012-12-31 20:16:35 +0000 |
commit | 25846af3be9e648b0ecf2cd6e4dca0dc802781df (patch) | |
tree | 56c52141d7433681a7ad3905331762e4497aa509 /src/test_regexp.c | |
parent | 14172743a22fce42e77e4ce69dee89511709ebba (diff) | |
download | sqlite-25846af3be9e648b0ecf2cd6e4dca0dc802781df.tar.gz sqlite-25846af3be9e648b0ecf2cd6e4dca0dc802781df.zip |
More test cases for the REGEXP operator. Fix minor bugs uncovered by these
test cases.
FossilOrigin-Name: a611c75061c8e821cb266fcb09759100d4a646b0
Diffstat (limited to 'src/test_regexp.c')
-rw-r--r-- | src/test_regexp.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/test_regexp.c b/src/test_regexp.c index 353955cee..0d6ffa2c7 100644 --- a/src/test_regexp.c +++ b/src/test_regexp.c @@ -342,13 +342,13 @@ static int re_hex(int c, int *pV){ if( c>='0' && c<='9' ){ c -= '0'; }else if( c>='a' && c<='f' ){ - c -= 'a' + 10; + c -= 'a' - 10; }else if( c>='A' && c<='F' ){ - c -= 'A' + 10; + c -= 'A' - 10; }else{ return 0; } - *pV = (*pV)*16 + c; + *pV = (*pV)*16 + (c & 0xff); return 1; } @@ -356,7 +356,7 @@ static int re_hex(int c, int *pV){ ** return its intepretation. */ static unsigned re_esc_char(ReCompiled *p){ - static const char zEsc[] = "afnrtv\\()*.+?[$^{|"; + static const char zEsc[] = "afnrtv\\()*.+?[$^{|}]"; static const char zTrans[] = "\a\f\n\r\t\v"; int i, v = 0; char c = p->zIn[0]; @@ -381,7 +381,7 @@ static unsigned re_esc_char(ReCompiled *p){ } for(i=0; zEsc[i] && zEsc[i]!=c; i++){} if( zEsc[i] ){ - if( c<6 ) c = zTrans[i]; + if( i<6 ) c = zTrans[i]; p->zIn++; }else{ p->zErr = "unknown \\ escape"; |