Good point. I guess my intent is this: I'd like to use the external API completely if possible. If not, I'm not sure whether to include source or use the current library (I can see advantages to each). I guess there aren't external API calls that do the needed tasks, so I'll have to figure out what to do.
Liam On 9/1/07, Joe Wilson <[EMAIL PROTECTED]> wrote: > > --- Liam Healy <[EMAIL PROTECTED]> wrote: > > Thanks. I have changed the use of sqlite3CreateFunc to > > sqlite3_create_function. I did not need to include the source code for > > sqlite3utf8CharLen because there's a sqlite3Utf8CharLen (note different > > capitalization) in the library. However, the definition > > How you intend to integrate your new SQL extension functions into sqlite? > As a loadable module or as an sqlite3 source code patch? > > You can't use sqlite3 internal functions such as sqlite3Utf8CharLen > if you're making an external loadable module, which is why it was > suggested > to copy the function into your code statically. You can only use the > published sqlite3 external API in this case. But your library will survive > without modifications over new sqlite3 releases. > > If you're not making an external loable module and are making an sqlite3 > source patch, just use the script provided earlier in this thread to > change > the old extension sources to be compatible with the 3.4.x sqlite3.c > amalgamation. Mind you, if you're doing the patch approach you may have to > keep updating it with every new sqlite release. > > > of sqlite3ReadUtf8 and needed definitions READ_UTF8, xtra_utf8_bytes, > > xtra_utf8_bits, utf_mask are not in 3.4.2, so I needed to > > salvage from 3.3.13 source. This compiles and loads OK, but I'm > wondering > > if there is a 3.4 way of doing what sqlite3ReadUtf8 did > > so that I don't have to carry the definitions. If anyone has a > suggestion > > I'd appreciate hearing about it. > > > > Liam > > > > > > On 8/31/07, Joe Wilson <[EMAIL PROTECTED]> wrote: > > > > > > --- Liam Healy <[EMAIL PROTECTED]> wrote: > > > > I was the one who packaged up extension-functions.tgz and posted on > > > > contrib. I didn't author the original code but I'd like to fix this > up. > > > > I'm not clear on what needs to be changed. I gather that > > > sqlite3utf8CharLen > > > > and sqlite3CreateFunc shouldn't be used. I'm not sure how to > convert to > > > use > > > > the external API. Anyone have a pointer? > > > > > > See: > > > > > > http://www.sqlite.org/capi3ref.html#sqlite3_create_function > > > > > > http://www.sqlite.org/cvstrac/wiki?p=LoadableExtensions > > > > > > And include this statically in your code, if you require it: > > > > > > #define SQLITE_SKIP_UTF8(zIn) { \ > > > if( (*(zIn++))>=0xc0 ){ \ > > > while( (*zIn & 0xc0)==0x80 ){ zIn++; } \ > > > } \ > > > } > > > > > > int sqlite3Utf8CharLen(const char *zIn, int nByte){ > > > int r = 0; > > > const u8 *z = (const u8*)zIn; > > > const u8 *zTerm; > > > if( nByte>=0 ){ > > > zTerm = &z[nByte]; > > > }else{ > > > zTerm = (const u8*)(-1); > > > } > > > assert( z<=zTerm ); > > > while( *z!=0 && z<zTerm ){ > > > SQLITE_SKIP_UTF8(z); > > > r++; > > > } > > > return r; > > > } > > > > > > ____________________________________________________________________________________ > Yahoo! oneSearch: Finally, mobile search > that gives answers, not web links. > http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC > > > ----------------------------------------------------------------------------- > To unsubscribe, send email to [EMAIL PROTECTED] > > ----------------------------------------------------------------------------- > >