Implement all the POSIX _l functions.
Strictly speaking, this only implements the _l variants of the functions
we actually have. We're still missing nl_langinfo_l, for example, but we
don't have nl_langinfo either.
Change-Id: Ie711c7b04e7b9100932a13f5a5d5b28847eb4c12
diff --git a/libc/include/strings.h b/libc/include/strings.h
index ae261cf..1253006 100644
--- a/libc/include/strings.h
+++ b/libc/include/strings.h
@@ -41,22 +41,23 @@
#include <sys/types.h>
#include <sys/cdefs.h>
+#include <xlocale.h>
__BEGIN_DECLS
#if defined(__BIONIC_FORTIFY)
-#define bcopy(b1, b2, len) \
- (void)(__builtin___memmove_chk((b2), (b1), (len), __bos0(b2)))
-#define bzero(b, len) \
- (void)(__builtin___memset_chk((b), '\0', (len), __bos0(b)))
+#define bcopy(b1, b2, len) (void)(__builtin___memmove_chk((b2), (b1), (len), __bos0(b2)))
+#define bzero(b, len) (void)(__builtin___memset_chk((b), '\0', (len), __bos0(b)))
#else
#define bcopy(b1, b2, len) (void)(__builtin_memmove((b2), (b1), (len)))
#define bzero(b, len) (void)(__builtin_memset((b), '\0', (len)))
#endif
+int ffs(int);
-int ffs(int);
-int strcasecmp(const char *, const char *);
-int strncasecmp(const char *, const char *, size_t);
+int strcasecmp(const char*, const char*) __purefunc;
+int strcasecmp_l(const char*, const char*, locale_t) __purefunc;
+int strncasecmp(const char*, const char*, size_t) __purefunc;
+int strncasecmp_l(const char*, const char*, size_t, locale_t) __purefunc;
__END_DECLS