Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/include/unicode.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1123 - (hide annotations) (download)
Wed Aug 18 21:56:57 2010 UTC (13 years, 9 months ago) by niro
File MIME type: text/plain
File size: 3466 byte(s)
-updated to busybox-1.17.1
1 niro 984 /* vi: set sw=4 ts=4: */
2     /*
3     * Licensed under the GPL version 2, see the file LICENSE in this tarball.
4     */
5     #ifndef UNICODE_H
6     #define UNICODE_H 1
7    
8 niro 1123 #if ENABLE_UNICODE_USING_LOCALE
9     # include <wchar.h>
10     # include <wctype.h>
11     #endif
12    
13     PUSH_AND_SET_FUNCTION_VISIBILITY_TO_HIDDEN
14    
15 niro 984 enum {
16     UNICODE_UNKNOWN = 0,
17     UNICODE_OFF = 1,
18     UNICODE_ON = 2,
19     };
20    
21 niro 1123 #define unicode_bidi_isrtl(wc) 0
22     #define unicode_bidi_is_neutral_wchar(wc) (wc <= 126 && !isalpha(wc))
23 niro 984
24 niro 1123 #if !ENABLE_UNICODE_SUPPORT
25    
26     # define unicode_strlen(string) strlen(string)
27     # define unicode_strwidth(string) strlen(string)
28 niro 984 # define unicode_status UNICODE_OFF
29     # define init_unicode() ((void)0)
30    
31     #else
32    
33 niro 1123 # if CONFIG_LAST_SUPPORTED_WCHAR < 126 || CONFIG_LAST_SUPPORTED_WCHAR >= 0x30000
34     # undef CONFIG_LAST_SUPPORTED_WCHAR
35     # define CONFIG_LAST_SUPPORTED_WCHAR 0x2ffff
36     # endif
37    
38     # if CONFIG_LAST_SUPPORTED_WCHAR < 0x300
39     # undef ENABLE_UNICODE_COMBINING_WCHARS
40     # define ENABLE_UNICODE_COMBINING_WCHARS 0
41     # endif
42    
43     # if CONFIG_LAST_SUPPORTED_WCHAR < 0x1100
44     # undef ENABLE_UNICODE_WIDE_WCHARS
45     # define ENABLE_UNICODE_WIDE_WCHARS 0
46     # endif
47    
48     # if CONFIG_LAST_SUPPORTED_WCHAR < 0x590
49     # undef ENABLE_UNICODE_BIDI_SUPPORT
50     # define ENABLE_UNICODE_BIDI_SUPPORT 0
51     # endif
52    
53     /* Number of unicode chars. Falls back to strlen() on invalid unicode */
54 niro 984 size_t FAST_FUNC unicode_strlen(const char *string);
55 niro 1123 /* Width on terminal */
56     size_t FAST_FUNC unicode_strwidth(const char *string);
57     enum {
58     UNI_FLAG_PAD = (1 << 0),
59     };
60     //UNUSED: unsigned FAST_FUNC unicode_padding_to_width(unsigned width, const char *src);
61     //UNUSED: char* FAST_FUNC unicode_conv_to_printable2(uni_stat_t *stats, const char *src, unsigned width, int flags);
62     char* FAST_FUNC unicode_conv_to_printable(uni_stat_t *stats, const char *src);
63     char* FAST_FUNC unicode_conv_to_printable_maxwidth(uni_stat_t *stats, const char *src, unsigned maxwidth);
64     char* FAST_FUNC unicode_conv_to_printable_fixedwidth(uni_stat_t *stats, const char *src, unsigned width);
65 niro 984
66 niro 1123 # if ENABLE_UNICODE_USING_LOCALE
67 niro 984
68     extern uint8_t unicode_status;
69     void init_unicode(void) FAST_FUNC;
70    
71     # else
72    
73     /* Homegrown Unicode support. It knows only C and Unicode locales. */
74    
75     # if !ENABLE_FEATURE_CHECK_UNICODE_IN_ENV
76     # define unicode_status UNICODE_ON
77     # define init_unicode() ((void)0)
78     # else
79     extern uint8_t unicode_status;
80     void init_unicode(void) FAST_FUNC;
81     # endif
82    
83     # undef MB_CUR_MAX
84     # define MB_CUR_MAX 6
85    
86     /* Prevent name collisions */
87     # define wint_t bb_wint_t
88     # define mbstate_t bb_mbstate_t
89     # define mbstowcs bb_mbstowcs
90     # define wcstombs bb_wcstombs
91     # define wcrtomb bb_wcrtomb
92     # define iswspace bb_iswspace
93     # define iswalnum bb_iswalnum
94     # define iswpunct bb_iswpunct
95     # define wcwidth bb_wcwidth
96    
97     typedef int32_t wint_t;
98     typedef struct {
99     char bogus;
100     } mbstate_t;
101    
102     size_t mbstowcs(wchar_t *dest, const char *src, size_t n) FAST_FUNC;
103     size_t wcstombs(char *dest, const wchar_t *src, size_t n) FAST_FUNC;
104     size_t wcrtomb(char *s, wchar_t wc, mbstate_t *ps) FAST_FUNC;
105     int iswspace(wint_t wc) FAST_FUNC;
106     int iswalnum(wint_t wc) FAST_FUNC;
107     int iswpunct(wint_t wc) FAST_FUNC;
108 niro 1123 int wcwidth(unsigned ucs) FAST_FUNC;
109     # if ENABLE_UNICODE_BIDI_SUPPORT
110     # undef unicode_bidi_isrtl
111     int unicode_bidi_isrtl(wint_t wc) FAST_FUNC;
112     # if ENABLE_UNICODE_NEUTRAL_TABLE
113     # undef unicode_bidi_is_neutral_wchar
114     int unicode_bidi_is_neutral_wchar(wint_t wc) FAST_FUNC;
115     # endif
116     # endif
117 niro 984
118    
119 niro 1123 # endif /* !UNICODE_USING_LOCALE */
120 niro 984
121 niro 1123 #endif /* UNICODE_SUPPORT */
122 niro 984
123 niro 1123 POP_SAVED_FUNCTION_VISIBILITY
124    
125 niro 984 #endif