From 42a8fd0db08ab8b45fec6eab4af841f99576b260 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 11 Jul 2009 21:36:13 +0200 Subject: added simplified Unicode support for non-locale-enabled builds Signed-off-by: Denys Vlasenko --- include/unicode.h | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 include/unicode.h (limited to 'include/unicode.h') diff --git a/include/unicode.h b/include/unicode.h new file mode 100644 index 000000000..be64a50e2 --- /dev/null +++ b/include/unicode.h @@ -0,0 +1,57 @@ +/* vi: set sw=4 ts=4: */ +/* + * Licensed under the GPL version 2, see the file LICENSE in this tarball. + */ +#ifndef UNICODE_H +#define UNICODE_H 1 + +#if !ENABLE_FEATURE_ASSUME_UNICODE + +# define check_unicode_in_env() ((void)0) + +#else + +# if ENABLE_LOCALE_SUPPORT + +# include +# include +# define check_unicode_in_env() ((void)0) + +# else + +# if !ENABLE_FEATURE_CHECK_UNICODE_IN_ENV +# define check_unicode_in_env() ((void)0) +# else +void check_unicode_in_env(void) FAST_FUNC; +# endif + +# undef MB_CUR_MAX +# define MB_CUR_MAX 6 + +/* Prevent name collisions */ +# define wint_t bb_wint_t +# define mbstate_t bb_mbstate_t +# define mbstowcs bb_mbstowcs +# define wcstombs bb_wcstombs +# define wcrtomb bb_wcrtomb +# define iswspace bb_iswspace +# define iswalnum bb_iswalnum +# define iswpunct bb_iswpunct + +typedef int32_t wint_t; +typedef struct { + char bogus; +} mbstate_t; + +size_t mbstowcs(wchar_t *dest, const char *src, size_t n) FAST_FUNC; +size_t wcstombs(char *dest, const wchar_t *src, size_t n) FAST_FUNC; +size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps) FAST_FUNC; +int iswspace(wint_t wc) FAST_FUNC; +int iswalnum(wint_t wc) FAST_FUNC; +int iswpunct(wint_t wc) FAST_FUNC; + +# endif + +#endif + +#endif -- cgit v1.2.3