Changeset 1782
- Timestamp:
- Jan 17, 2005, 5:38:47 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/emx/src/lib/locale/setlocale.c
-
Property cvs2svn:cvs-rev
changed from
1.10
to1.11
r1781 r1782 222 222 static void localeMonetaryFree(__LIBC_PLOCALELCONV pLconv); 223 223 static int localeNumericDo(__LIBC_PLOCALELCONV pLconv, UconvObject uobj, struct UniLconv *pULconv); 224 static int localeMonetaryDo(__LIBC_PLOCALELCONV pLconv, UconvObject uobj, LocaleObject lobj, struct UniLconv *pULconv );224 static int localeMonetaryDo(__LIBC_PLOCALELCONV pLconv, UconvObject uobj, LocaleObject lobj, struct UniLconv *pULconv, const char *pszLocale); 225 225 static void localeGlobalFree(__LIBC_PLOCALEGLOBAL pGlobal, int iCategory); 226 226 static int localeParseLocale(char *pszLocale, const char **ppszCodepage); … … 902 902 * @param uobj The UconvObject to use. 903 903 * @param pULconv Pointer to the pULconv structure to get the data from. 904 */ 905 static int localeMonetaryDo(__LIBC_PLOCALELCONV pLconv, UconvObject uobj, LocaleObject lobj, struct UniLconv *pULconv) 904 * @param pszLocale The locale specifier. 905 */ 906 static int localeMonetaryDo(__LIBC_PLOCALELCONV pLconv, UconvObject uobj, LocaleObject lobj, struct UniLconv *pULconv, const char *pszLocale) 906 907 { 907 908 int rc; … … 909 910 localeMonetaryFree(pLconv); 910 911 911 /* 912 * Convert the stuff. 913 */ 912 if ( !IS_C_LOCALE(pszLocale) 913 && !IS_POSIX_LOCALE(pszLocale)) 914 { 915 /* 916 * Convert the stuff. 917 */ 914 918 #define CONVERT_UCS(field) \ 915 do { rc = convert_ucs(uobj, pULconv->field, &pLconv->s.field); if (rc) return rc; } while (0)916 CONVERT_UCS(int_curr_symbol);917 CONVERT_UCS(currency_symbol);918 CONVERT_UCS(mon_decimal_point);919 CONVERT_UCS(mon_thousands_sep);920 CONVERT_UCS(positive_sign);921 CONVERT_UCS(negative_sign);922 pLconv->s.int_frac_digits = pULconv->int_frac_digits;923 pLconv->s.frac_digits = pULconv->frac_digits;924 pLconv->s.p_cs_precedes = pULconv->p_cs_precedes;925 pLconv->s.p_sep_by_space = pULconv->p_sep_by_space;926 pLconv->s.n_cs_precedes = pULconv->n_cs_precedes;927 pLconv->s.n_sep_by_space = pULconv->n_sep_by_space;928 pLconv->s.p_sign_posn = pULconv->p_sign_posn;929 pLconv->s.n_sign_posn = pULconv->n_sign_posn;919 do { rc = convert_ucs(uobj, pULconv->field, &pLconv->s.field); if (rc) return rc; } while (0) 920 CONVERT_UCS(int_curr_symbol); 921 CONVERT_UCS(currency_symbol); 922 CONVERT_UCS(mon_decimal_point); 923 CONVERT_UCS(mon_thousands_sep); 924 CONVERT_UCS(positive_sign); 925 CONVERT_UCS(negative_sign); 926 pLconv->s.int_frac_digits = pULconv->int_frac_digits; 927 pLconv->s.frac_digits = pULconv->frac_digits; 928 pLconv->s.p_cs_precedes = pULconv->p_cs_precedes; 929 pLconv->s.p_sep_by_space = pULconv->p_sep_by_space; 930 pLconv->s.n_cs_precedes = pULconv->n_cs_precedes; 931 pLconv->s.n_sep_by_space = pULconv->n_sep_by_space; 932 pLconv->s.p_sign_posn = pULconv->p_sign_posn; 933 pLconv->s.n_sign_posn = pULconv->n_sign_posn; 930 934 #undef CONVERT_UCS 931 935 932 /* 933 * Extra stuff (which I don't know which member corresponds to). 934 */ 935 if ((rc = query_item(lobj, uobj, CRNCYSTR, &pLconv->pszCrncyStr))) 936 return rc; 937 938 return localeConvertGrouping(pULconv->mon_grouping, &pLconv->s.mon_grouping); 936 /* 937 * Extra stuff (which I don't know which member corresponds to). 938 */ 939 if ((rc = query_item(lobj, uobj, CRNCYSTR, &pLconv->pszCrncyStr))) 940 return rc; 941 942 return localeConvertGrouping(pULconv->mon_grouping, &pLconv->s.mon_grouping); 943 } 944 else 945 { 946 /* 947 * The C/POSIX locale. 948 */ 949 pLconv->fMonetaryConsts = 1; 950 pLconv->s.int_curr_symbol = pLconv->s.currency_symbol = pLconv->s.mon_decimal_point 951 = pLconv->s.mon_thousands_sep = pLconv->s.positive_sign = pLconv->s.negative_sign 952 = pLconv->pszCrncyStr = ""; 953 pLconv->s.int_frac_digits = -1; 954 pLconv->s.frac_digits = -1; 955 pLconv->s.p_cs_precedes = -1; 956 pLconv->s.p_sep_by_space = -1; 957 pLconv->s.n_cs_precedes = -1; 958 pLconv->s.n_sep_by_space = -1; 959 pLconv->s.p_sign_posn = -1; 960 pLconv->s.n_sign_posn = -1; 961 return 0; 962 } 939 963 } 940 964 … … 1233 1257 rc = localeNumericDo(&pTemp->Lconv, uobj, pULconv); 1234 1258 else 1235 rc = localeMonetaryDo(&pTemp->Lconv, uobj, lobj, pULconv );1259 rc = localeMonetaryDo(&pTemp->Lconv, uobj, lobj, pULconv, pszLocale); 1236 1260 UniFreeLocaleInfo(pULconv); 1237 1261 } -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.