| 12345678910111213141516171819202122232425262728293031323334353637383940 | /*  Copyright (C) 2008  Denys Vlasenko  <vda.linux@googlemail.com> * *  This library is free software; you can redistribute it and/or *  modify it under the terms of the GNU Lesser General Public *  License as published by the Free Software Foundation; either *  version 2.1 of the License, or (at your option) any later version. */#ifndef _BITS_UCLIBC_CHARCLASS_H#define _BITS_UCLIBC_CHARCLASS_H/* 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};#endif
 |