Commit 11884b88 authored by Laurent Aimar's avatar Laurent Aimar

Added strnlen replacement (Untested)

Revert back mp4 r20330 !
parent 11db57b5
...@@ -463,7 +463,7 @@ need_libc=false ...@@ -463,7 +463,7 @@ need_libc=false
AC_CHECK_FUNCS(gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy) AC_CHECK_FUNCS(gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy)
dnl Check for usual libc functions dnl Check for usual libc functions
AC_CHECK_FUNCS(strdup strndup atof) AC_CHECK_FUNCS(strdup strndup strnlen atof)
AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)]) AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)]) AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)]) AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
......
...@@ -871,6 +871,13 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw ) ...@@ -871,6 +871,13 @@ static inline void _SetQWBE( uint8_t *p, uint64_t i_qw )
# define vlc_strndup NULL # define vlc_strndup NULL
#endif #endif
#ifndef HAVE_STRNLEN
# define strnlen vlc_strnlen
VLC_EXPORT( size_t, vlc_strnlen, ( const char *, size_t ) );
#elif !defined(__PLUGIN__)
# define vlc_strnlen NULL
#endif
#ifndef HAVE_STRLCPY #ifndef HAVE_STRLCPY
# define strlcpy vlc_strlcpy # define strlcpy vlc_strlcpy
VLC_EXPORT( size_t, vlc_strlcpy, ( char *, const char *, size_t ) ); VLC_EXPORT( size_t, vlc_strlcpy, ( char *, const char *, size_t ) );
......
...@@ -61,17 +61,18 @@ ...@@ -61,17 +61,18 @@
MP4_GET1BYTE( p_void->i_version ); \ MP4_GET1BYTE( p_void->i_version ); \
MP4_GET3BYTES( p_void->i_flags ) MP4_GET3BYTES( p_void->i_flags )
#define MP4_GETSTRINGZ( p_str ) \ #define MP4_GETSTRINGZ( p_str ) \
if( ( i_read > 0 )&&(p_peek[0] ) ) \ if( (i_read > 0) && (p_peek[0]) ) \
{ \ { \
p_str = calloc( sizeof( char ), __MIN( strlen( (char*)p_peek ), i_read )+1);\ const int __i_copy__ = strnlen( (char*)p_peek, i_read-1 ); \
memcpy( p_str, p_peek, __MIN( strlen( (char*)p_peek ), i_read ) ); \ p_str = calloc( sizeof(char), __i_copy__+1 ); \
p_str[__MIN( strlen( (char*)p_peek ), i_read )] = 0; \ if( __i_copy__ > 0 ) memcpy( p_str, p_peek, __i_copy__ ); \
p_peek += strlen( (char *)p_str ) + 1; \ p_str[__i_copy__] = 0; \
i_read -= strlen( (char *)p_str ) + 1; \ p_peek += __i_copy__ + 1; \
} \ i_read -= __i_copy__ + 1; \
else \ } \
{ \ else \
{ \
p_str = NULL; \ p_str = NULL; \
} }
......
...@@ -112,6 +112,17 @@ char *vlc_strndup( const char *string, size_t n ) ...@@ -112,6 +112,17 @@ char *vlc_strndup( const char *string, size_t n )
} }
#endif #endif
/*****************************************************************************
* strnlen:
*****************************************************************************/
#if !defined( HAVE_STRNLEN )
size_t vlc_strnlen( const char *psz, size_t n )
{
const char *psz_end = memchr( psz, 0, n );
return psz_end ? ( psz_end - psz ) : n;
}
#endif
/***************************************************************************** /*****************************************************************************
* strcasecmp: compare two strings ignoring case * strcasecmp: compare two strings ignoring case
*****************************************************************************/ *****************************************************************************/
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment