diff options
author | Mystery Man <unknown@mandriva.org> | 2003-05-06 13:11:49 +0000 |
---|---|---|
committer | Mystery Man <unknown@mandriva.org> | 2003-05-06 13:11:49 +0000 |
commit | 3f5d21d90abbd16f16ab69aec1e1a1853a93fd18 (patch) | |
tree | 3d9f5a32303a8d97b4b457949e64bb42b4850ea9 /mdk-stage1/dietlibc/lib/strncasecmp.c | |
parent | 327bd24f8e4291bd1882de1990dd7339f781a9cb (diff) | |
download | drakx-backup-do-not-use-R9_0-AMD64.tar drakx-backup-do-not-use-R9_0-AMD64.tar.gz drakx-backup-do-not-use-R9_0-AMD64.tar.bz2 drakx-backup-do-not-use-R9_0-AMD64.tar.xz drakx-backup-do-not-use-R9_0-AMD64.zip |
This commit was manufactured by cvs2svn to create tag 'R9_0-AMD64'.R9_0-AMD64
Diffstat (limited to 'mdk-stage1/dietlibc/lib/strncasecmp.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/strncasecmp.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/mdk-stage1/dietlibc/lib/strncasecmp.c b/mdk-stage1/dietlibc/lib/strncasecmp.c index 8a5445e53..543fe56ba 100644 --- a/mdk-stage1/dietlibc/lib/strncasecmp.c +++ b/mdk-stage1/dietlibc/lib/strncasecmp.c @@ -1,18 +1,22 @@ -#include <ctype.h> #include <sys/types.h> -#include <string.h> +#include <strings.h> -int strncasecmp(const char *s, const char *t, size_t n) { - register char x; - register const char* u=s+n; - for (;;) { - x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t; - x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t; - x = tolower(*s); if (x!=tolower(*t)) break; if (!x) break; if (++s>=u) return 0; ++t; -#endif - } - return ((int)(unsigned int)(unsigned char) x) - - ((int)(unsigned int)(unsigned char) *t); +int strncasecmp ( const char* s1, const char* s2, size_t len ) +{ + register unsigned int x2; + register unsigned int x1; + register const char* end = s1 + len; + + while (1) { + if ( s1 >= end ) + return 0; + x2 = *s2++ - 'A'; if (x2 < 26u) x2 += 32; + x1 = *s1++ - 'A'; if (x1 < 26u) x1 += 32; + if ( x2 != x1 ) + break; + if ( x1 == (unsigned int)-'A' ) + break; + } + + return x1 - x2; } |