1 /* 2 * Copyright (C) 2002 Manuel Novoa III 3 * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> 4 * 5 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. 6 */ 7 8 #include "_string.h" 9 10 #ifdef WANT_WIDE 11 # define Wmemcmp wmemcmp 12 #else 13 # define Wmemcmp memcmp 14 #endif 15 Wmemcmp(const Wvoid * s1,const Wvoid * s2,size_t n)16int Wmemcmp(const Wvoid *s1, const Wvoid *s2, size_t n) 17 { 18 register const Wuchar *r1 = (const Wuchar *) s1; 19 register const Wuchar *r2 = (const Wuchar *) s2; 20 21 #ifdef WANT_WIDE 22 while (n && (*r1 == *r2)) { 23 ++r1; 24 ++r2; 25 --n; 26 } 27 28 return (n == 0) ? 0 : ((*r1 < *r2) ? -1 : 1); 29 #else 30 int r = 0; 31 32 while (n-- && ((r = ((int)(*r1++)) - *r2++) == 0)); 33 34 return r; 35 #endif 36 } 37 38 #ifndef WANT_WIDE 39 libc_hidden_def(memcmp) 40 # ifdef __UCLIBC_SUSV3_LEGACY__ 41 strong_alias(memcmp,bcmp) 42 # endif 43 #endif 44