Changeset 1705 for trunk/src/emx/include/InnoTekLIBC/locale.h
- Timestamp:
- Dec 6, 2004, 3:19:54 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/include/InnoTekLIBC/locale.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.2
r1704 r1705 31 31 32 32 #include <sys/cdefs.h> 33 #include <sys/_types.h> 33 34 #include <locale.h> 34 35 #include <uconv.h> … … 45 46 /** MBCS prefixes. Two bits per character. */ 46 47 unsigned char au2MBCSPrefixs[256/4]; 48 #ifdef __OS2__ 47 49 /** The converter object to convert to and from selected codepage 48 50 (used with MBCS codepages only). */ … … 50 52 /** The locale object. */ 51 53 LocaleObject lobj; 54 #endif 52 55 /** Non-zero if there are any MBCS prefix characters in codepage. */ 53 56 char mbcs; … … 56 59 typedef __LIBC_LOCALECOLLATE *__LIBC_PLOCALECOLLATE; 57 60 61 /** 62 * Multibyte to/from wide character conversion functions. 63 */ 64 typedef struct __libc_localeCTypeFuncs 65 { 66 int (*pfnmbsinit)(const __mbstate_t *); 67 size_t (*pfnmbrtowc)(__wchar_t * __restrict, const char * __restrict, size_t, __mbstate_t * __restrict); 68 size_t (*pfnmbsnrtowcs)(__wchar_t * __restrict, const char ** __restrict, size_t, size_t, __mbstate_t * __restrict); 69 size_t (*pfnwcrtomb)(char * __restrict, __wchar_t, __mbstate_t * __restrict); 70 size_t (*pfnwcsnrtombs)(char * __restrict, const __wchar_t ** __restrict, size_t, size_t, __mbstate_t * __restrict); 71 } __LIBC_LOCALECTYPEFUNCS; 72 /** Pointer to multibyte/wide character conversion functions. */ 73 typedef __LIBC_LOCALECTYPEFUNCS *__LIBC_PLOCALECTYPEFUNCS; 74 /** Pointer to const multibyte/wide character conversion functions. */ 75 typedef const __LIBC_LOCALECTYPEFUNCS *__LIBC_PCLOCALECTYPEFUNCS; 58 76 59 77 /** … … 63 81 { 64 82 /** All uppercased characters. */ 65 unsigned char auchUpper[256];83 unsigned char auchUpper[256]; 66 84 /** All lowercased characters. */ 67 unsigned char auchLower[256];85 unsigned char auchLower[256]; 68 86 /** Bit flags for every character (for isXXX() function series). */ 69 unsigned short ausfType[256]; 87 unsigned aufType[256]; 88 89 /* part which we don't 'expose': */ 70 90 /** MBCS prefixes. Two bits per character. */ 71 unsigned char au2MBCSPrefixs[256/4]; 91 unsigned char au2MBCSPrefixs[256/4]; 92 /** Unicode translation. (0xffff means not translation.) */ 93 unsigned short aucUnicode[256]; 94 /** Unicode -> SBCS conversion: 0..128. */ 95 unsigned char auchToSBCS0To128[128]; 96 /** Unicode -> SBCS conversion: Custom regions. */ 97 struct 98 { 99 /** First unicode code point. */ 100 unsigned short usStart; 101 /** Number of entries used. */ 102 unsigned short cChars; 103 /** Array SBCS chars corresponding to (wc - usStart). 0 means no conversion. */ 104 unsigned char auch[28]; 105 } aSBCSs[8]; 106 /** Number of aSBCS regions in use. */ 107 unsigned cSBCSs; 108 /** Conversion functions. */ 109 __LIBC_LOCALECTYPEFUNCS CtypeFuncs; 110 #ifdef __OS2__ 72 111 /** The converter object to convert to and from selected codepage 73 112 (used with MBCS codepages only). */ 74 UconvObject uobj;113 UconvObject uobj; 75 114 /** The locale object. */ 76 LocaleObject lobj; 115 LocaleObject lobj; 116 #endif 77 117 /** Non-zero if there are any MBCS prefix characters in codepage. */ 78 char mbcs;118 char mbcs; 79 119 } __LIBC_LOCALECTYPE; 80 120 /** Pointer to the Ctype locale struct. */ … … 83 123 84 124 /** 85 * This structure contains the flags for the default (C/POSIX) locale. 86 */ 87 typedef struct __libc_LocaleCtypeDefault 88 { 89 /** Bit flags for every character (for isXXX() function series). */ 90 unsigned short ausfType[256]; 91 } __LIBC_LOCALECTYPEDEFAULT; 92 /** Pointer to the Ctype locale struct. */ 93 typedef __LIBC_LOCALECTYPEDEFAULT *__LIBC_PLOCALECTYPEDEFAULT; 94 125 * Unicode CType data. 126 * The structure contains information for the first 256 unicode chars. 127 */ 128 typedef struct __libc_localeWCType 129 { 130 /** All uppercased characters. */ 131 __wchar_t awcUpper[256]; 132 /** All lowercased characters. */ 133 __wchar_t awcLower[256]; 134 /** Bit flags for every character (for iswXXX() function series). */ 135 unsigned aufType[256]; 136 } __LIBC_LOCALEWCTYPE; 137 /** Pointer to the Ctype unicode struct. */ 138 typedef __LIBC_LOCALEWCTYPE *__LIBC_PLOCALEWCTYPE; 95 139 96 140 /** … … 101 145 { 102 146 /** Short month names. */ 103 char *smonths[12];147 char *smonths[12]; 104 148 /** Long month names. */ 105 char *lmonths[12];149 char *lmonths[12]; 106 150 /** Short weekday names. */ 107 char *swdays[7];151 char *swdays[7]; 108 152 /** Long weekday names. */ 109 char *lwdays[7];153 char *lwdays[7]; 110 154 /** Date and time format. */ 111 char *date_time_fmt;155 char *date_time_fmt; 112 156 /** Date format. */ 113 char *date_fmt;157 char *date_fmt; 114 158 /** Time format. */ 115 char *time_fmt;159 char *time_fmt; 116 160 /** AM strings. */ 117 char *am;161 char *am; 118 162 /** PM strings. */ 119 char *pm; 163 char *pm; 164 /** AM/PM format. (T_FMT_AMPM) */ 165 char *ampm_fmt; 166 /** ERA */ 167 char *era; 168 /** ERA_D_FMT. */ 169 char *era_date_fmt; 170 /** ERA_D_T_FMT. */ 171 char *era_date_time_fmt; 172 /** ERA_T_FMT. */ 173 char *era_time_fmt; 174 /** ALT_DIGITS. */ 175 char *alt_digits; 176 /** DATESEP. */ 177 char *datesep; 178 /** TIMESEP. */ 179 char *timesep; 180 /** LISTSEP. */ 181 char *listsep; 120 182 /** If set all the strings are consts and shall not be free()ed. */ 121 int 183 int fConsts; 122 184 } __LIBC_LOCALETIME; 123 185 /** Pointer to time locale data. */ … … 135 197 /** The lconv structure. */ 136 198 struct lconv s; 199 /** CRNCYSTR. */ 200 char *pszCrncyStr; 137 201 /** Indicates that all the numeric members are readonly const strings. */ 138 202 int fNumericConsts; … … 145 209 146 210 /** String collation information. */ 147 extern __LIBC_LOCALECOLLATE __libc_gLocaleCollate;211 extern __LIBC_LOCALECOLLATE __libc_gLocaleCollate; 148 212 /** Character case conversion tables. */ 149 extern __LIBC_LOCALECTYPE __libc_GLocaleCtype;213 extern __LIBC_LOCALECTYPE __libc_GLocaleCtype; 150 214 /** Character case conversion tables for the default 'C'/'POSIX' locale. */ 151 extern const __LIBC_LOCALECTYPEDEFAULT __libc_GLocaleCtypeDefault; 215 extern const __LIBC_LOCALECTYPE __libc_GLocaleCtypeDefault; 216 /** Cached Unicode (__wchar_t) case conversion tables and flags. */ 217 extern const __LIBC_LOCALEWCTYPE __libc_GLocaleWCtype; 152 218 /** Locale information structure. */ 153 extern __LIBC_LOCALELCONV __libc_gLocaleLconv;219 extern __LIBC_LOCALELCONV __libc_gLocaleLconv; 154 220 /** Date / time formatting rules. */ 155 extern __LIBC_LOCALETIME __libc_gLocaleTime; 156 221 extern __LIBC_LOCALETIME __libc_gLocaleTime; 222 223 /** Macros to lock the different locale structures. 224 * @{ 225 */ 226 #define LOCALE_LOCK() do {} while (0) 227 #define LOCALE_UNLOCK() do {} while (0) 228 #define LOCALE_CTYPE_RW_LOCK() do {} while (0) 229 #define LOCALE_CTYPE_RW_UNLOCK() do {} while (0) 230 #define LOCALE_CTYPE_RW_LOCK() do {} while (0) 231 #define LOCALE_CTYPE_RW_UNLOCK() do {} while (0) 232 /** @} */ 157 233 158 234 /** Convert a string to Unicode, apply some transform and convert back. */ … … 165 241 extern void __libc_TranslateCodepage(const char *cp, UniChar *ucp); 166 242 243 extern int __libc_localeCreateObjects(const char *pszLocale, const char *pszCodepage, char *pszCodepageActual, LocaleObject *plobj, UconvObject *puobj); 244 245 extern void __libc_localeFuncsSBCS(__LIBC_PLOCALECTYPEFUNCS pFuncs); 246 extern void __libc_localeFuncsDBCS(__LIBC_PLOCALECTYPEFUNCS pFuncs); 247 extern void __libc_localeFuncsMBCS(__LIBC_PLOCALECTYPEFUNCS pFuncs); 248 extern void __libc_localeFuncsUCS2(__LIBC_PLOCALECTYPEFUNCS pFuncs); 249 extern void __libc_localeFuncsUTF8(__LIBC_PLOCALECTYPEFUNCS pFuncs); 250 extern void __libc_localeFuncsDefault(__LIBC_PLOCALECTYPEFUNCS pFuncs); 251 252 extern size_t __libc_localeFuncsGeneric_mbsnrtowcs(size_t (*pfnmbrtowc)(__wchar_t * __restrict, const char * __restrict, size_t, __mbstate_t * __restrict), 253 __wchar_t * __restrict dst, const char ** __restrict src, size_t nms, size_t len, __mbstate_t * __restrict ps); 254 extern size_t __libc_localeFuncsGeneric_wcsnrtombs(size_t (*pfnwcrtomb)(char * __restrict, __wchar_t, __mbstate_t * __restrict), 255 char * __restrict dst, const __wchar_t ** __restrict src, size_t nwc, size_t len, __mbstate_t * __restrict ps); 256 257 extern void __libc_localeFuncsNone(__LIBC_PLOCALECTYPEFUNCS pFuncs); 258 extern size_t __libc_locale_none_mbrtowc(__wchar_t * __restrict, const char * __restrict, size_t, __mbstate_t * __restrict); 259 extern int __libc_locale_none_mbsinit(const __mbstate_t *); 260 extern size_t __libc_locale_none_mbsnrtowcs(__wchar_t * __restrict dst, const char ** __restrict src, size_t nms, size_t len, __mbstate_t * __restrict ps __unused); 261 extern size_t __libc_locale_none_wcrtomb(char * __restrict, __wchar_t, __mbstate_t * __restrict); 262 extern size_t __libc_locale_none_wcsnrtombs(char * __restrict, const __wchar_t ** __restrict, size_t, size_t, __mbstate_t * __restrict); 167 263 168 264 -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.