Commit 05778252 authored by Gildas Bazin's avatar Gildas Bazin

* src/extras/libc.c: fixed vlc_strncasecmp().

parent 4db0a6d5
...@@ -86,29 +86,20 @@ char *vlc_strndup( const char *string, size_t n ) ...@@ -86,29 +86,20 @@ char *vlc_strndup( const char *string, size_t n )
#if !defined( HAVE_STRCASECMP ) && !defined( HAVE_STRICMP ) #if !defined( HAVE_STRCASECMP ) && !defined( HAVE_STRICMP )
int vlc_strcasecmp( const char *s1, const char *s2 ) int vlc_strcasecmp( const char *s1, const char *s2 )
{ {
int i_delta = 0; int c1, c2;
if( !s1 || !s2 ) return -1; if( !s1 || !s2 ) return -1;
while( !i_delta && *s1 && *s2 ) while( *s1 && *s2 )
{ {
i_delta = *s1 - *s2; c1 = tolower(*s1);
c2 = tolower(*s2);
if( *s1 >= 'A' && *s1 <= 'Z' )
{
i_delta -= ('A' - 'a');
}
if( *s2 >= 'A' && *s2 <= 'Z' )
{
i_delta += ('A' - 'a');
}
if( c1 != c2 ) return (c1 < c2 ? -1 : 1);
s1++; s2++; s1++; s2++;
} }
if( !i_delta && (*s1 || *s2) ) i_delta = *s1 ? 1 : -1; if( !*s1 && !*s2 ) return 0;
else return (*s1 ? 1 : -1);
return i_delta;
} }
#endif #endif
...@@ -118,29 +109,20 @@ int vlc_strcasecmp( const char *s1, const char *s2 ) ...@@ -118,29 +109,20 @@ int vlc_strcasecmp( const char *s1, const char *s2 )
#if !defined( HAVE_STRNCASECMP ) && !defined( HAVE_STRNICMP ) #if !defined( HAVE_STRNCASECMP ) && !defined( HAVE_STRNICMP )
int vlc_strncasecmp( const char *s1, const char *s2, size_t n ) int vlc_strncasecmp( const char *s1, const char *s2, size_t n )
{ {
int i_delta = 0; int c1, c2;
if( !s1 || !s2 ) return -1; if( !s1 || !s2 ) return -1;
while( n-- && !i_delta && *s1 && *s2 ) while( n > 0 && *s1 && *s2 )
{ {
i_delta = *s1 - *s2; c1 = tolower(*s1);
c2 = tolower(*s2);
if( *s1 >= 'A' && *s1 <= 'Z' ) if( c1 != c2 ) return (c1 < c2 ? -1 : 1);
{ s1++; s2++; n--;
i_delta -= 'A' - 'a';
}
if( *s2 >= 'A' && *s2 <= 'Z' )
{
i_delta += 'A' - 'a';
}
s1++; s2++;
} }
if( !n && !i_delta && (*s1 || *s2) ) i_delta = *s1 ? 1 : -1; if( !n || (!*s1 && !*s2) ) return 0;
else return (*s1 ? 1 : -1);
return i_delta;
} }
#endif #endif
......
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