diff options
author | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-06-04 18:31:57 +0000 |
---|---|---|
committer | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-06-04 18:31:57 +0000 |
commit | 09e967c2d732783b2579e4e120cd9b608404cb00 (patch) | |
tree | 8d2783a6a7e33608c6012efd6a88b8f5694df81d /mdk-stage1/dietlibc/lib/strcasecmp.c | |
parent | 18fcff49d3c836697d3b75a3d01d31c700e69974 (diff) | |
download | drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.gz drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.bz2 drakx-09e967c2d732783b2579e4e120cd9b608404cb00.tar.xz drakx-09e967c2d732783b2579e4e120cd9b608404cb00.zip |
Merge from R9_0-AMD64, most notably:
- AMD64 support to insmod-busybox, minilibc, et al.
- Sync with insmod-modutils 2.4.19 something but everyone should use
dietlibc nowadays
- Factor out compilation and prefix with $(DIET) for dietlibc builds
- 64-bit & varargs fixes
Diffstat (limited to 'mdk-stage1/dietlibc/lib/strcasecmp.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/strcasecmp.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/mdk-stage1/dietlibc/lib/strcasecmp.c b/mdk-stage1/dietlibc/lib/strcasecmp.c index d978488a4..cf1592567 100644 --- a/mdk-stage1/dietlibc/lib/strcasecmp.c +++ b/mdk-stage1/dietlibc/lib/strcasecmp.c @@ -1,17 +1,18 @@ -#include <ctype.h> -#include "dietfeatures.h" +#include <strings.h> -int strcasecmp(register const char *s,register const char *t) { - register char x; +int strcasecmp ( const char* s1, const char* s2 ) +{ + register unsigned int x2; + register unsigned int x1; - for (;;) { - x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t; -#ifndef WANT_SMALL_STRING_ROUTINES - x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t; - x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t; - x = tolower(*s); if (x != tolower(*t)) break; if (!x) break; ++s; ++t; -#endif - } - return ((int)(unsigned int)(unsigned char) x) - - ((int)(unsigned int)(unsigned char) *t); + while (1) { + 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; } |