diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-03-21 18:13:36 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-03-21 18:13:36 +0000 |
commit | c132ecc38fe4508e9dbd97ec9ada86d6637d97ae (patch) | |
tree | 64331b264ad988f176bbd6c6c540451a4b1b19ef /include/locale.h | |
parent | a10cb1d4a37161dc39761e342d66837c9f22021d (diff) |
Stub out localeconv. Please look over this to check it is correct....
I started trying to read the glibc code -- but that code is far too
messy to be read. So I just wrote a silly C app against glibc, set
the locale to POSIX, then called localeconv(). I wrote this version
of localeconv.c so it returns the same stuff.
-Erik
Diffstat (limited to 'include/locale.h')
-rw-r--r-- | include/locale.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/include/locale.h b/include/locale.h index f0c6f2e63..937c0f0d1 100644 --- a/include/locale.h +++ b/include/locale.h @@ -24,6 +24,55 @@ #define LC_MESSAGES 5 #define LC_ALL 6 + +/* Structure giving information about numeric and monetary notation. */ +struct lconv +{ + /* Numeric (non-monetary) information. */ + + char *decimal_point; /* Decimal point character. */ + char *thousands_sep; /* Thousands separator. */ + /* Each element is the number of digits in each group; + elements with higher indices are farther left. + An element with value CHAR_MAX means that no further grouping is done. + An element with value 0 means that the previous element is used + for all groups farther left. */ + char *grouping; + + /* Monetary information. */ + + /* First three chars are a currency symbol from ISO 4217. + Fourth char is the separator. Fifth char is '\0'. */ + char *int_curr_symbol; + char *currency_symbol; /* Local currency symbol. */ + char *mon_decimal_point; /* Decimal point character. */ + char *mon_thousands_sep; /* Thousands separator. */ + char *mon_grouping; /* Like `grouping' element (above). */ + char *positive_sign; /* Sign for positive values. */ + char *negative_sign; /* Sign for negative values. */ + char int_frac_digits; /* Int'l fractional digits. */ + char frac_digits; /* Local fractional digits. */ + /* 1 if currency_symbol precedes a positive value, 0 if succeeds. */ + char p_cs_precedes; + /* 1 iff 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 iff 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; +}; + extern char *setlocale(int __category, __const char *__locale); +/* Return the numeric/monetary information for the current locale. */ +extern struct lconv *localeconv __P ((void)); + #endif /* locale.h */ |