--- 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]
-----------------------------------------------------------------------------

Reply via email to