2007-03-14 20:24:57 +00:00
|
|
|
/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
|
|
|
|
#include <precomp.h>
|
1999-07-29 21:25:04 +00:00
|
|
|
|
2003-07-11 13:50:23 +00:00
|
|
|
/*
|
|
|
|
* @implemented
|
|
|
|
*/
|
1999-07-29 21:25:04 +00:00
|
|
|
int
|
2015-09-15 10:35:49 +00:00
|
|
|
CDECL
|
1999-07-29 21:25:04 +00:00
|
|
|
_memicmp(const void *s1, const void *s2, size_t n)
|
|
|
|
{
|
2023-09-19 15:32:00 +00:00
|
|
|
if (NtCurrentPeb()->OSMajorVersion >= 6)
|
|
|
|
{
|
|
|
|
if (!s1 || !s2)
|
|
|
|
{
|
|
|
|
if (n != 0)
|
|
|
|
{
|
|
|
|
MSVCRT_INVALID_PMT(NULL, EINVAL);
|
|
|
|
return _NLSCMPERROR;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
1999-07-29 21:25:04 +00:00
|
|
|
if (n != 0)
|
|
|
|
{
|
|
|
|
const unsigned char *p1 = s1, *p2 = s2;
|
|
|
|
|
|
|
|
do {
|
|
|
|
if (toupper(*p1) != toupper(*p2))
|
|
|
|
return (*p1 - *p2);
|
|
|
|
p1++;
|
|
|
|
p2++;
|
|
|
|
} while (--n != 0);
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|