improved the speed somewhat
fixed bug with negative chars in comparisons
This commit is contained in:
@@ -7,15 +7,20 @@
|
||||
#include <string.h>
|
||||
|
||||
int
|
||||
strncmp(register const char *s1, register const char *s2, size_t n)
|
||||
strncmp(register const char *s1, register const char *s2, register size_t n)
|
||||
{
|
||||
while (n > 0) {
|
||||
n--;
|
||||
if (*s1 != *s2)
|
||||
if (n) {
|
||||
do {
|
||||
if (*s1 != *s2++)
|
||||
break;
|
||||
if (*s1++ == '\0')
|
||||
return 0;
|
||||
} while (--n > 0);
|
||||
if (n > 0) {
|
||||
if (*s1 == '\0') return -1;
|
||||
if (*--s2 == '\0') return 1;
|
||||
return *s1 - *s2;
|
||||
if (*s1++ == '\0')
|
||||
return 0;
|
||||
s2++;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user