diff options
author | Jonathan Roelofs <jonathan@codesourcery.com> | 2014-09-19 20:09:12 +0000 |
---|---|---|
committer | Jonathan Roelofs <jonathan@codesourcery.com> | 2014-09-19 20:09:12 +0000 |
commit | 4f1561a5dd875711fcb5018de791bf953d25c817 (patch) | |
tree | 9ab69c75b07ba0fd5ea8d89d1a0e4786963a5180 /libcxx/include/support/newlib/xlocale.h | |
parent | 0fc0c22fa9fb999f988b89e6870ed657e17d87a9 (diff) | |
download | bcm5719-llvm-4f1561a5dd875711fcb5018de791bf953d25c817.tar.gz bcm5719-llvm-4f1561a5dd875711fcb5018de791bf953d25c817.zip |
Support newlib as libc++'s C library [locale part]
http://reviews.llvm.org/D5385
llvm-svn: 218144
Diffstat (limited to 'libcxx/include/support/newlib/xlocale.h')
-rw-r--r-- | libcxx/include/support/newlib/xlocale.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/libcxx/include/support/newlib/xlocale.h b/libcxx/include/support/newlib/xlocale.h new file mode 100644 index 00000000000..d067cf85a3b --- /dev/null +++ b/libcxx/include/support/newlib/xlocale.h @@ -0,0 +1,63 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP_SUPPORT_NEWLIB_XLOCALE_H +#define _LIBCPP_SUPPORT_NEWLIB_XLOCALE_H + +#if defined(_NEWLIB_VERSION) + +#include <cstdlib> +#include <clocale> +#include <cwctype> +#include <ctype.h> + +#ifdef __cplusplus +extern "C" { +#endif + +// Patch over newlib's lack of extended locale support +typedef void *locale_t; +static inline locale_t duplocale(locale_t) { + return NULL; +} + +static inline void freelocale(locale_t) { +} + +static inline locale_t newlocale(int, const char *, locale_t) { + return NULL; +} + +static inline locale_t uselocale(locale_t) { + return NULL; +} + +#define LC_COLLATE_MASK (1 << LC_COLLATE) +#define LC_CTYPE_MASK (1 << LC_CTYPE) +#define LC_MESSAGES_MASK (1 << LC_MESSAGES) +#define LC_MONETARY_MASK (1 << LC_MONETARY) +#define LC_NUMERIC_MASK (1 << LC_NUMERIC) +#define LC_TIME_MASK (1 << LC_TIME) +#define LC_ALL_MASK (LC_COLLATE_MASK|\ + LC_CTYPE_MASK|\ + LC_MONETARY_MASK|\ + LC_NUMERIC_MASK|\ + LC_TIME_MASK|\ + LC_MESSAGES_MASK) + +// Share implementation with Android's Bionic +#include <support/xlocale/xlocale.h> + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // _NEWLIB_VERSION + +#endif |