diff options
Diffstat (limited to 'extra/locale/gen_wc8bit.c')
-rw-r--r-- | extra/locale/gen_wc8bit.c | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/extra/locale/gen_wc8bit.c b/extra/locale/gen_wc8bit.c index 785c3f4c0..d76c15a51 100644 --- a/extra/locale/gen_wc8bit.c +++ b/extra/locale/gen_wc8bit.c @@ -7,6 +7,14 @@ #include <wctype.h> #include <limits.h> +#ifndef __UCLIBC__ +#ifndef _WCTYPE_H +#define _WCTYPE_H +#endif +#include "../../libc/sysdeps/linux/common/bits/uClibc_ctype.h" +#endif + + /* #define CTYPE_PACKED */ #define UPLOW_IDX_SHIFT 3 /* best if 2 unpacked or 3 packed */ @@ -63,34 +71,6 @@ typedef struct { unsigned char c2wc_idx[C2WC_IDX_LEN]; } charset_data; -/* Taking advantage of the C99 mutual-exclusion guarantees for the various - * (w)ctype classes, including the descriptions of printing and control - * (w)chars, we can place each in one of the following mutually-exlusive - * subsets. Since there are less than 16, we can store the data for - * each (w)chars in a nibble. In contrast, glibc uses an unsigned int - * per (w)char, with one bit flag for each is* type. While this allows - * a simple '&' operation to determine the type vs. a range test and a - * little special handling for the "blank" and "xdigit" types in my - * approach, it also uses 8 times the space for the tables on the typical - * 32-bit archs we supported.*/ -enum { - __CTYPE_unclassified = 0, - __CTYPE_alpha_nonupper_nonlower, - __CTYPE_alpha_lower, - __CTYPE_alpha_upper_lower, - __CTYPE_alpha_upper, - __CTYPE_digit, - __CTYPE_punct, - __CTYPE_graph, - __CTYPE_print_space_nonblank, - __CTYPE_print_space_blank, - __CTYPE_space_nonblank_noncntrl, - __CTYPE_space_blank_noncntrl, - __CTYPE_cntrl_space_nonblank, - __CTYPE_cntrl_space_blank, - __CTYPE_cntrl_nonspace, -}; - int main(int argc, char **argv) { FILE *fp; |