(trunk libT) expose tr_memmem() so it can be used by client code. use the OS' implementation if that's available.
This commit is contained in:
parent
ed96a156a5
commit
ed710be223
|
@ -87,7 +87,7 @@ AC_TRY_LINK([#include <linux/falloc.h>],
|
|||
[AC_DEFINE([HAVE_FALLOCATE],[1],[Defined if fallocate() exists])
|
||||
AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])])
|
||||
AC_CHECK_FUNCS([lrintf strlcpy daemon dirname basename daemon strcasecmp localtime_r posix_fallocate])
|
||||
AC_CHECK_FUNCS([lrintf strlcpy daemon dirname basename daemon strcasecmp localtime_r posix_fallocate memmem])
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_MAKE_SET
|
||||
ACX_PTHREAD
|
||||
|
|
|
@ -134,22 +134,6 @@ send_simple_response( struct evhttp_request * req,
|
|||
tr_releaseBuffer( body );
|
||||
}
|
||||
|
||||
static const char*
|
||||
tr_memmem( const char * s1, size_t l1, /* haystack */
|
||||
const char * s2, size_t l2 ) /* needle */
|
||||
{
|
||||
if( !l2 ) return s1;
|
||||
while( l1 >= l2 )
|
||||
{
|
||||
l1--;
|
||||
if( !memcmp( s1, s2, l2 ) )
|
||||
return s1;
|
||||
s1++;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct tr_mimepart
|
||||
{
|
||||
char * headers;
|
||||
|
|
|
@ -683,6 +683,25 @@ tr_strndup( const void * in, int len )
|
|||
return out;
|
||||
}
|
||||
|
||||
const char*
|
||||
tr_memmem( const char * s1, size_t l1, /* haystack */
|
||||
const char * s2, size_t l2 ) /* needle */
|
||||
{
|
||||
#ifdef HAVE_MEMMEM
|
||||
return memmem( s1, l1, s2, l2 );
|
||||
#else
|
||||
if( !l2 ) return s1;
|
||||
while( l1 >= l2 )
|
||||
{
|
||||
l1--;
|
||||
if( !memcmp( s1, s2, l2 ) )
|
||||
return s1;
|
||||
s1++;
|
||||
}
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
char*
|
||||
tr_strdup_printf( const char * fmt, ... )
|
||||
{
|
||||
|
|
|
@ -350,6 +350,9 @@ const char* tr_strerror( int );
|
|||
|
||||
char* tr_strstrip( char * str );
|
||||
|
||||
const char* tr_memmem( const char * haystack, size_t haystack_len,
|
||||
const char * needle, size_t needle_len );
|
||||
|
||||
/***
|
||||
****
|
||||
***/
|
||||
|
|
Loading…
Reference in New Issue