|
@@ -246,13 +246,17 @@ EXPORT_SYMBOL(strlcat);
|
|
#undef strcmp
|
|
#undef strcmp
|
|
int strcmp(const char *cs, const char *ct)
|
|
int strcmp(const char *cs, const char *ct)
|
|
{
|
|
{
|
|
- signed char __res;
|
|
|
|
|
|
+ unsigned char c1, c2;
|
|
|
|
|
|
while (1) {
|
|
while (1) {
|
|
- if ((__res = *cs - *ct++) != 0 || !*cs++)
|
|
|
|
|
|
+ c1 = *cs++;
|
|
|
|
+ c2 = *ct++;
|
|
|
|
+ if (c1 != c2)
|
|
|
|
+ return c1 < c2 ? -1 : 1;
|
|
|
|
+ if (!c1)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- return __res;
|
|
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(strcmp);
|
|
EXPORT_SYMBOL(strcmp);
|
|
#endif
|
|
#endif
|
|
@@ -266,14 +270,18 @@ EXPORT_SYMBOL(strcmp);
|
|
*/
|
|
*/
|
|
int strncmp(const char *cs, const char *ct, size_t count)
|
|
int strncmp(const char *cs, const char *ct, size_t count)
|
|
{
|
|
{
|
|
- signed char __res = 0;
|
|
|
|
|
|
+ unsigned char c1, c2;
|
|
|
|
|
|
while (count) {
|
|
while (count) {
|
|
- if ((__res = *cs - *ct++) != 0 || !*cs++)
|
|
|
|
|
|
+ c1 = *cs++;
|
|
|
|
+ c2 = *ct++;
|
|
|
|
+ if (c1 != c2)
|
|
|
|
+ return c1 < c2 ? -1 : 1;
|
|
|
|
+ if (!c1)
|
|
break;
|
|
break;
|
|
count--;
|
|
count--;
|
|
}
|
|
}
|
|
- return __res;
|
|
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(strncmp);
|
|
EXPORT_SYMBOL(strncmp);
|
|
#endif
|
|
#endif
|