diff lphobos/std/c/locale.d @ 1:c53b6e3fe49a trunk

[svn r5] Initial commit. Most things are very rough.
author lindquist
date Sat, 01 Sep 2007 21:43:27 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lphobos/std/c/locale.d	Sat Sep 01 21:43:27 2007 +0200
@@ -0,0 +1,151 @@
+/**
+ * C's <locale.h>
+ * License: Public Domain
+ * Standards:
+ *	ISO/IEC 9899:1999 7.11 
+ * Macros:
+ *	WIKI=Phobos/StdCLocale
+ */
+module std.c.locale;
+
+extern(C):
+
+/// Structure giving information about numeric and monetary notation.
+struct lconv{
+	/// The decimal-point character used to format nonmonetary quantities.
+	char* decimal_point;
+
+	/** The character used to separate groups of digits before the
+	 * decimal-point character in formatted nonmonetary quantities.
+	 **/
+	char* thousands_sep;
+
+	/** A string whose elements indicate the size of each group of digits
+	 * in formatted nonmonetary quantities.
+	 **/
+	char* grouping;
+
+	/** The international currency symbol applicable to the current locale.
+	 * The first three characters contain the alphabetic international
+	 * currency symbol in accordance with those specified in ISO 4217.
+	 * The fourth character	(immediately preceding the null character)
+	 * is the character used to separate the international currency symbol
+	 * from the monetary quantity.
+	 **/
+	char* int_curr_symbol;
+
+	/// The local currency symbol applicable to the current locale.
+	char* currency_symbol;
+
+	/// The decimal-point used to format monetary quantities.
+	char* mon_decimal_point;
+
+	/** The separator for groups of digits before the decimal-point in
+	 * formatted monetary quantities.
+	 **/
+	char* mon_thousands_sep;
+
+	/** A string whose elements indicate the size of each group of digits
+	 * in formatted monetary quantities.
+	 **/
+	char* mon_grouping;
+
+	/** The string used to indicate a nonnegative-valued formatted
+	 * monetary quantity.
+	 **/
+	char* positive_sign;
+
+	/** The string used to indicate a negative-valued formatted monetary
+	 * quantity.
+	 **/
+	char* negative_sign;
+
+	/** The number of fractional digits (those after the decimal-point) to
+	 * be displayed in an internationally formatted monetary quantity.
+	 **/
+	char int_frac_digits;
+
+	/** The number of fractional digits (those after the decimal-point) to
+	 * be displayed in a locally formatted monetary quantity.
+	 **/
+	char frac_digits;
+
+	/// 1 if currency_symbol precedes a positive value, 0 if succeeds.
+	char p_cs_precedes;
+	
+	/// 1 if a space separates currency_symbol from a positive value.
+	char p_sep_by_space;
+	
+	/// 1 if currency_symbol precedes a negative value, 0 if succeeds.
+	char n_cs_precedes;
+
+	/// 1 if a space separates currency_symbol from a negative value.
+	char n_sep_by_space;
+
+  /* Positive and negative sign positions:
+     0 Parentheses surround the quantity and currency_symbol.
+     1 The sign string precedes the quantity and currency_symbol.
+     2 The sign string follows the quantity and currency_symbol.
+     3 The sign string immediately precedes the currency_symbol.
+     4 The sign string immediately follows the currency_symbol.  */
+  char p_sign_posn;
+  char n_sign_posn;
+  
+	/// 1 if int_curr_symbol precedes a positive value, 0 if succeeds.
+	char int_p_cs_precedes;
+	
+	/// 1 iff a space separates int_curr_symbol from a positive value.
+	char int_p_sep_by_space;
+	
+	/// 1 if int_curr_symbol precedes a negative value, 0 if succeeds.
+	char int_n_cs_precedes;
+	
+	/// 1 iff a space separates int_curr_symbol from a negative value.
+	char int_n_sep_by_space;
+
+  /* Positive and negative sign positions:
+     0 Parentheses surround the quantity and int_curr_symbol.
+     1 The sign string precedes the quantity and int_curr_symbol.
+     2 The sign string follows the quantity and int_curr_symbol.
+     3 The sign string immediately precedes the int_curr_symbol.
+     4 The sign string immediately follows the int_curr_symbol.  */
+  char int_p_sign_posn;
+  char int_n_sign_posn;
+}
+
+/** Affects the behavior of C's character handling functions and C's multibyte
+ * and wide character functions.
+ **/
+const LC_CTYPE = 0; 
+
+/** Affects the decimal-point character for C's formatted input/output functions
+ * and C's string conversion functions, as well as C's nonmonetary formatting
+ * information returned by the localeconv function.
+ **/
+const LC_NUMERIC = 1;
+
+/// Affects the behavior of the strftime and wcsftime functions.
+const LC_TIME = 2;
+
+/// Affects the behavior of the strcoll and strxfrm functions.
+const LC_COLLATE = 3;
+
+/** Affects the monetary formatting information returned by the localeconv
+ * function.
+ **/
+const LC_MONETARY = 4;
+
+/// The program's entire locale.
+const LC_ALL = 6;
+
+/** The setlocale function selects the appropriate portion of the program's
+ * locale as specified by the category and locale arguments.
+ **/
+char* setlocale(int category, char* locale);
+
+/** The localeconv function sets the components of an object with type
+ * lconv with values appropriate for the formatting of numeric quantities
+ * (monetary and otherwise) according to the rules of the current locale.
+ **/
+lconv* localeconv();
+