[uClibc-cvs] uClibc/libc/sysdeps/linux/common/bits uClibc_locale.h,1.4,1.5

Manuel Novoa III mjn3 at uclibc.org
Fri Dec 20 19:26:39 UTC 2002


Update of /var/cvs/uClibc/libc/sysdeps/linux/common/bits
In directory winder:/tmp/cvs-serv18665/libc/sysdeps/linux/common/bits

Modified Files:
	uClibc_locale.h 
Log Message:
The big thing is locale dependent collation support.
Also added outdigit support and (legacy) YESSTR/NOSTR support.


Index: uClibc_locale.h
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/common/bits/uClibc_locale.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- uClibc_locale.h	22 Nov 2002 03:05:27 -0000	1.4
+++ uClibc_locale.h	20 Dec 2002 19:26:35 -0000	1.5
@@ -120,6 +120,46 @@
   * In particular, C/POSIX locale is '#' + "\x80\x01"}*LC_ALL + nul.
   */
 
+typedef struct {
+	uint16_t num_weights;
+	uint16_t num_starters;
+	uint16_t ii_shift;
+	uint16_t ti_shift;
+	uint16_t ii_len;
+	uint16_t ti_len;
+	uint16_t max_weight;
+	uint16_t num_col_base;
+	uint16_t max_col_index;
+	uint16_t undefined_idx;
+	uint16_t range_low;
+	uint16_t range_count;
+	uint16_t range_base_weight;
+	uint16_t range_rule_offset; /* change name to index? */
+
+	uint16_t ii_mask;
+	uint16_t ti_mask;
+
+	const uint16_t *index2weight_tbl;
+	const uint16_t *index2ruleidx_tbl;
+	const uint16_t *multistart_tbl;
+	/*	 uint16_t wcs2colidt_offset_low; */
+	/*	 uint16_t wcs2colidt_offset_hi; */
+	const uint16_t *wcs2colidt_tbl;
+
+	/*	 uint16_t undefined_idx; */
+	const uint16_t *overrides_tbl;
+	/*	 uint16_t *multistart_tbl; */
+
+	const uint16_t *weightstr;
+	const uint16_t *ruletable;
+
+
+	uint16_t *index2weight;
+	uint16_t *index2ruleidx;
+
+	uint16_t MAX_WEIGHTS;
+} __collate_t;
+
 
 /*  static unsigned char cur_locale[LOCALE_STRING_SIZE]; */
 
@@ -138,8 +178,7 @@
 	/* ctype */
 	unsigned char encoding;		/* C/POSIX, 8-bit, UTF-8 */
 	unsigned char mb_cur_max;	/* determined by encoding _AND_ translit!!! */
-
-	const char *codeset;
+	const unsigned char outdigit_length[10];
 
 #ifdef __CTYPE_HAS_8_BIT_LOCALES
 	const unsigned char *idx8ctype;
@@ -162,6 +201,19 @@
 	/* width?? */
 #endif /* __WCHAR_ENABLED */
 
+	/* ctype */
+	const char *outdigit0_mb;
+	const char *outdigit1_mb;
+	const char *outdigit2_mb;
+	const char *outdigit3_mb;
+	const char *outdigit4_mb;
+	const char *outdigit5_mb;
+	const char *outdigit6_mb;
+	const char *outdigit7_mb;
+	const char *outdigit8_mb;
+	const char *outdigit9_mb;
+	const char *codeset;		/* MUST BE LAST!!! */
+
 	/* numeric */
 	const char *decimal_point;
 	const char *thousands_sep;
@@ -250,11 +302,16 @@
 	const char *era_d_t_fmt;
 	const char *era_t_fmt;
 
-	/* collate */
+	/* collate is at the end */
 
 	/* messages */
 	const char *yesexpr;
 	const char *noexpr;
+	const char *yesstr;
+	const char *nostr;
+
+	/* collate is at the end */
+	__collate_t collate;
 
 } __locale_t;
 




More information about the uClibc-cvs mailing list