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