diff options
Diffstat (limited to 'src/utf.c')
-rw-r--r-- | src/utf.c | 62 |
1 files changed, 31 insertions, 31 deletions
@@ -12,7 +12,7 @@ ** This file contains routines used to translate between UTF-8, ** UTF-16, UTF-16BE, and UTF-16LE. ** -** $Id: utf.c,v 1.57 2007/09/01 11:04:27 danielk1977 Exp $ +** $Id: utf.c,v 1.58 2007/09/12 17:01:45 danielk1977 Exp $ ** ** Notes on UTF-8: ** @@ -403,6 +403,36 @@ int sqlite3Utf8CharLen(const char *zIn, int nByte){ return r; } +/* This test function is not currently used by the automated test-suite. +** Hence it is only available in debug builds. +*/ +#if defined(SQLITE_TEST) && defined(SQLITE_DEBUG) +/* +** Translate UTF-8 to UTF-8. +** +** This has the effect of making sure that the string is well-formed +** UTF-8. Miscoded characters are removed. +** +** The translation is done in-place (since it is impossible for the +** correct UTF-8 encoding to be longer than a malformed encoding). +*/ +int sqlite3Utf8To8(unsigned char *zIn){ + unsigned char *zOut = zIn; + unsigned char *zStart = zIn; + unsigned char *zTerm; + u32 c; + + while( zIn[0] ){ + c = sqlite3Utf8Read(zIn, zTerm, (const u8**)&zIn); + if( c!=0xfffd ){ + WRITE_UTF8(zOut, c); + } + } + *zOut = 0; + return zOut - zStart; +} +#endif + #ifndef SQLITE_OMIT_UTF16 /* ** Convert a UTF-16 string in the native encoding into a UTF-8 string. @@ -456,36 +486,6 @@ int sqlite3Utf16ByteLen(const void *zIn, int nChar){ return (z-(char const *)zIn)-((c==0)?2:0); } -/* This test function is not currently used by the automated test-suite. -** Hence it is only available in debug builds. -*/ -#if defined(SQLITE_TEST) && defined(SQLITE_DEBUG) -/* -** Translate UTF-8 to UTF-8. -** -** This has the effect of making sure that the string is well-formed -** UTF-8. Miscoded characters are removed. -** -** The translation is done in-place (since it is impossible for the -** correct UTF-8 encoding to be longer than a malformed encoding). -*/ -int sqlite3Utf8To8(unsigned char *zIn){ - unsigned char *zOut = zIn; - unsigned char *zStart = zIn; - unsigned char *zTerm; - u32 c; - - while( zIn[0] ){ - c = sqlite3Utf8Read(zIn, zTerm, (const u8**)&zIn); - if( c!=0xfffd ){ - WRITE_UTF8(zOut, c); - } - } - *zOut = 0; - return zOut - zStart; -} -#endif - #if defined(SQLITE_TEST) /* ** This routine is called from the TCL test function "translate_selftest". |