1 /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ 2 #include <precomp.h> 3 4 /* 5 * @implemented 6 */ 7 int 8 CDECL 9 _memicmp(const void *s1, const void *s2, size_t n) 10 { 11 if (NtCurrentPeb()->OSMajorVersion >= 6) 12 { 13 if (!s1 || !s2) 14 { 15 if (n != 0) 16 { 17 MSVCRT_INVALID_PMT(NULL, EINVAL); 18 return _NLSCMPERROR; 19 } 20 return 0; 21 } 22 } 23 24 if (n != 0) 25 { 26 const unsigned char *p1 = s1, *p2 = s2; 27 28 do { 29 if (toupper(*p1) != toupper(*p2)) 30 return (*p1 - *p2); 31 p1++; 32 p2++; 33 } while (--n != 0); 34 } 35 return 0; 36 } 37