]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/util/strdicasecmp.c
Merge 2-2
[netatalk.git] / libatalk / util / strdicasecmp.c
index d143aaa1e7b630cefe2e0fd56d192c4712bf3507..ff7c0772c6a804654db836ddf4c783d91fc47020 100644 (file)
@@ -4,7 +4,7 @@
 
 #include <atalk/util.h>
 
-unsigned const char    _diacasemap[] = {
+const int      _diacasemap[] = {
        /* map  value   name */
        0       /* 0    NUL*/,
        1       /* 1    SOH*/,
@@ -264,7 +264,7 @@ unsigned const char _diacasemap[] = {
        255     /* 255  caron*/,
 };
 
-unsigned const char    _dialowermap[] = {
+const int      _dialowermap[] = {
        /* map  value   name */
        0       /* 0    NUL*/,
        1       /* 1    SOH*/,
@@ -538,15 +538,16 @@ int strdiacasecmp( const char *s1, const char *s2 )
 
 int strndiacasecmp( const char *s1, const char *s2, size_t n )
 {
-    while ( --n >= 0 &&
+    while ( n > 0 &&
            _diacasemap[ (unsigned char) *s1 ] ==
            _diacasemap[ (unsigned char) *s2++ ] ) {
        if ( *s1++ == '\0' ) {
            return( 0 );
        }
+       n--;
     }
 
-    if (n < 0)
+    if (n == 0)
        return 0;
     return _diacasemap[ (unsigned char) *s1 ] -
           _diacasemap[ (unsigned char) *--s2 ];