[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/build/uClibc/libc/string/strcasecmp.c b/ap/build/uClibc/libc/string/strcasecmp.c
new file mode 100644
index 0000000..f894e42
--- /dev/null
+++ b/ap/build/uClibc/libc/string/strcasecmp.c
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2002     Manuel Novoa III
+ * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include "_string.h"
+#include <ctype.h>
+#include <locale.h>
+
+#ifdef WANT_WIDE
+# define strcasecmp wcscasecmp
+# define strcasecmp_l wcscasecmp_l
+# ifdef __UCLIBC_DO_XLOCALE
+#  define TOLOWER(C) towlower_l((C), locale_arg)
+# else
+#  define TOLOWER(C) towlower((C))
+# endif
+#else
+# ifdef __UCLIBC_DO_XLOCALE
+#  define TOLOWER(C) tolower_l((C), locale_arg)
+# else
+#  define TOLOWER(C) tolower((C))
+# endif
+#endif
+
+#if defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE)
+
+int strcasecmp(register const Wchar *s1, register const Wchar *s2)
+{
+	return strcasecmp_l(s1, s2, __UCLIBC_CURLOCALE);
+}
+#ifndef WANT_WIDE
+libc_hidden_def(strcasecmp)
+#endif
+
+#else  /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */
+
+int __XL_NPP(strcasecmp)(register const Wchar *s1, register const Wchar *s2
+					  __LOCALE_PARAM )
+{
+#ifdef WANT_WIDE
+	while ((*s1 == *s2) || (TOLOWER(*s1) == TOLOWER(*s2))) {
+		if (!*s1++) {
+			return 0;
+		}
+		++s2;
+	}
+
+	return (((Wuchar)TOLOWER(*s1)) < ((Wuchar)TOLOWER(*s2))) ? -1 : 1;
+	/* TODO -- should wide cmp funcs do wchar or Wuchar compares? */
+#else
+	int r = 0;
+
+	while ( ((s1 == s2) ||
+			 !(r = ((int)( TOLOWER(*((Wuchar *)s1))))
+			   - TOLOWER(*((Wuchar *)s2))))
+			&& (++s2, *s1++));
+
+	return r;
+#endif
+}
+#if !defined WANT_WIDE || (defined WANT_WIDE && defined __UCLIBC_DO_XLOCALE)
+libc_hidden_def(__XL_NPP(strcasecmp))
+#endif
+
+#endif /* defined(__UCLIBC_HAS_XLOCALE__) && !defined(__UCLIBC_DO_XLOCALE) */