diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-12-05 09:51:08 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-12-05 09:51:08 +0000 |
commit | dd17514ce7a10d785b977586224d31563888cb9d (patch) | |
tree | f57c103834b1701ecae9c96ac5bdb78b5a6b9c25 /localedata | |
parent | Update. (diff) | |
download | glibc-dd17514ce7a10d785b977586224d31563888cb9d.tar.gz glibc-dd17514ce7a10d785b977586224d31563888cb9d.tar.bz2 glibc-dd17514ce7a10d785b977586224d31563888cb9d.zip |
Update.
2003-11-30 Petter Reinholdtsen <pere@hungry.com>
* stdlib/strfmon.c: Correct formatting of international currency
values. The international currency formatting should prefer the
int_* values if they are set for a locale, and use the domestic
values if the int_* values are unset.
Diffstat (limited to 'localedata')
21 files changed, 245 insertions, 6 deletions
diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 1b4802c829..62c79ff139 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,35 @@ +2003-11-30 Petter Reinholdtsen <pere@hungry.com> + + * tst-fmon.sh: Allow quotes around the result string, to make it + easier to see important whitespace. + * tst-fmon.data: Likewise. + + * tst-fmon.sh: Clean up output, unify capitalization and output order. + * tst-fmon.c: Likewise. + + * tst-fmon.data: Add test for international currency formatting. + * tst-fmon-locales/tstfmon_n01y12: Add definitions for int_* fields. + * tst-fmon-locales/tstfmon_n02n40: Likewise. + * tst-fmon-locales/tstfmon_n10y31: Likewise. + * tst-fmon-locales/tstfmon_n11y41: Likewise. + * tst-fmon-locales/tstfmon_n12y11: Likewise. + * tst-fmon-locales/tstfmon_n20n32: Likewise. + * tst-fmon-locales/tstfmon_n30y20: Likewise. + * tst-fmon-locales/tstfmon_n41n00: Likewise. + * tst-fmon-locales/tstfmon_y01y10: Likewise. + * tst-fmon-locales/tstfmon_y02n22: Likewise. + * tst-fmon-locales/tstfmon_y22n42: Likewise. + * tst-fmon-locales/tstfmon_y30y21: Likewise. + * tst-fmon-locales/tstfmon_y32n31: Likewise. + * tst-fmon-locales/tstfmon_y40y00: Likewise. + * tst-fmon-locales/tstfmon_y42n21: Likewise. + + * locales/en_US: Correct spacing for international + currency formatting, now that strfmon() works better. + + * locales/ja_JP: Correct currency position and + spacing now that strfmon() work better. + 2003-12-03 Ulrich Drepper <drepper@redhat.com> * locales/af_ZA: Add ISO 3166 information. diff --git a/localedata/locales/en_US b/localedata/locales/en_US index 13a19dba21..1da3158cd7 100644 --- a/localedata/locales/en_US +++ b/localedata/locales/en_US @@ -52,8 +52,10 @@ negative_sign "<U002D>" int_frac_digits 2 frac_digits 2 p_cs_precedes 1 +int_p_sep_by_space 1 p_sep_by_space 0 n_cs_precedes 1 +int_n_sep_by_space 1 n_sep_by_space 0 p_sign_posn 1 n_sign_posn 1 diff --git a/localedata/locales/ja_JP b/localedata/locales/ja_JP index 1e4b1c188e..6a3229f9aa 100644 --- a/localedata/locales/ja_JP +++ b/localedata/locales/ja_JP @@ -14894,8 +14894,10 @@ p_cs_precedes 1 p_sep_by_space 0 n_cs_precedes 1 n_sep_by_space 0 -p_sign_posn 1 +p_sign_posn 4 n_sign_posn 4 +int_p_sep_by_space 2 +int_n_sep_by_space 2 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n01y12 b/localedata/tst-fmon-locales/tstfmon_n01y12 index 975c5ec9a5..499a1ea28e 100644 --- a/localedata/tst-fmon-locales/tstfmon_n01y12 +++ b/localedata/tst-fmon-locales/tstfmon_n01y12 @@ -23,4 +23,10 @@ p_sep_by_space 1 n_cs_precedes 1 n_sign_posn 1 n_sep_by_space 2 +int_p_cs_precedes 0 +int_p_sign_posn 0 +int_p_sep_by_space 1 +int_n_cs_precedes 1 +int_n_sign_posn 1 +int_n_sep_by_space 2 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n02n40 b/localedata/tst-fmon-locales/tstfmon_n02n40 index 7c4161243f..ad6ee6b1ca 100644 --- a/localedata/tst-fmon-locales/tstfmon_n02n40 +++ b/localedata/tst-fmon-locales/tstfmon_n02n40 @@ -23,4 +23,10 @@ p_sep_by_space 2 n_cs_precedes 0 n_sign_posn 4 n_sep_by_space 0 +int_p_cs_precedes 0 +int_p_sign_posn 0 +int_p_sep_by_space 2 +int_n_cs_precedes 0 +int_n_sign_posn 4 +int_n_sep_by_space 0 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n10y31 b/localedata/tst-fmon-locales/tstfmon_n10y31 index 5e14d7dcfd..e325832e34 100644 --- a/localedata/tst-fmon-locales/tstfmon_n10y31 +++ b/localedata/tst-fmon-locales/tstfmon_n10y31 @@ -23,4 +23,10 @@ p_sep_by_space 0 n_cs_precedes 1 n_sign_posn 3 n_sep_by_space 1 +int_p_cs_precedes 0 +int_p_sign_posn 1 +int_p_sep_by_space 0 +int_n_cs_precedes 1 +int_n_sign_posn 3 +int_n_sep_by_space 1 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n11y41 b/localedata/tst-fmon-locales/tstfmon_n11y41 index 22685cb83e..497f750a00 100644 --- a/localedata/tst-fmon-locales/tstfmon_n11y41 +++ b/localedata/tst-fmon-locales/tstfmon_n11y41 @@ -23,4 +23,10 @@ p_sep_by_space 1 n_cs_precedes 1 n_sign_posn 4 n_sep_by_space 1 +int_p_cs_precedes 0 +int_p_sign_posn 1 +int_p_sep_by_space 1 +int_n_cs_precedes 1 +int_n_sign_posn 4 +int_n_sep_by_space 1 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n12y11 b/localedata/tst-fmon-locales/tstfmon_n12y11 index 0788bab471..d964101df5 100644 --- a/localedata/tst-fmon-locales/tstfmon_n12y11 +++ b/localedata/tst-fmon-locales/tstfmon_n12y11 @@ -23,4 +23,10 @@ p_sep_by_space 2 n_cs_precedes 1 n_sign_posn 1 n_sep_by_space 1 +int_p_cs_precedes 0 +int_p_sign_posn 1 +int_p_sep_by_space 2 +int_n_cs_precedes 1 +int_n_sign_posn 1 +int_n_sep_by_space 1 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n20n32 b/localedata/tst-fmon-locales/tstfmon_n20n32 index 2c219e9d42..94412809ff 100644 --- a/localedata/tst-fmon-locales/tstfmon_n20n32 +++ b/localedata/tst-fmon-locales/tstfmon_n20n32 @@ -23,4 +23,10 @@ p_sep_by_space 0 n_cs_precedes 0 n_sign_posn 3 n_sep_by_space 2 +int_p_cs_precedes 0 +int_p_sign_posn 2 +int_p_sep_by_space 0 +int_n_cs_precedes 0 +int_n_sign_posn 3 +int_n_sep_by_space 2 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n30y20 b/localedata/tst-fmon-locales/tstfmon_n30y20 index c3216b4e2d..2c8a9ea7a0 100644 --- a/localedata/tst-fmon-locales/tstfmon_n30y20 +++ b/localedata/tst-fmon-locales/tstfmon_n30y20 @@ -23,4 +23,10 @@ p_sep_by_space 0 n_cs_precedes 1 n_sign_posn 2 n_sep_by_space 0 +int_p_cs_precedes 0 +int_p_sign_posn 3 +int_p_sep_by_space 0 +int_n_cs_precedes 1 +int_n_sign_posn 2 +int_n_sep_by_space 0 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_n41n00 b/localedata/tst-fmon-locales/tstfmon_n41n00 index 199cd54cf8..56879ec9c1 100644 --- a/localedata/tst-fmon-locales/tstfmon_n41n00 +++ b/localedata/tst-fmon-locales/tstfmon_n41n00 @@ -23,4 +23,10 @@ p_sep_by_space 1 n_cs_precedes 0 n_sign_posn 0 n_sep_by_space 0 +int_p_cs_precedes 0 +int_p_sign_posn 4 +int_p_sep_by_space 1 +int_n_cs_precedes 0 +int_n_sign_posn 0 +int_n_sep_by_space 0 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y01y10 b/localedata/tst-fmon-locales/tstfmon_y01y10 index 1e26360b91..7c0b22afca 100644 --- a/localedata/tst-fmon-locales/tstfmon_y01y10 +++ b/localedata/tst-fmon-locales/tstfmon_y01y10 @@ -23,4 +23,10 @@ p_sep_by_space 1 n_cs_precedes 1 n_sign_posn 1 n_sep_by_space 0 +int_p_cs_precedes 1 +int_p_sign_posn 0 +int_p_sep_by_space 1 +int_n_cs_precedes 1 +int_n_sign_posn 1 +int_n_sep_by_space 0 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y02n22 b/localedata/tst-fmon-locales/tstfmon_y02n22 index 26c8158d21..7d9ac30104 100644 --- a/localedata/tst-fmon-locales/tstfmon_y02n22 +++ b/localedata/tst-fmon-locales/tstfmon_y02n22 @@ -23,4 +23,10 @@ p_sep_by_space 2 n_cs_precedes 0 n_sign_posn 2 n_sep_by_space 2 +int_p_cs_precedes 1 +int_p_sign_posn 0 +int_p_sep_by_space 2 +int_n_cs_precedes 0 +int_n_sign_posn 2 +int_n_sep_by_space 2 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y22n42 b/localedata/tst-fmon-locales/tstfmon_y22n42 index 37a2d49f00..fda413b0e6 100644 --- a/localedata/tst-fmon-locales/tstfmon_y22n42 +++ b/localedata/tst-fmon-locales/tstfmon_y22n42 @@ -23,4 +23,10 @@ p_sep_by_space 2 n_cs_precedes 0 n_sign_posn 4 n_sep_by_space 2 +int_p_cs_precedes 1 +int_p_sign_posn 2 +int_p_sep_by_space 2 +int_n_cs_precedes 0 +int_n_sign_posn 4 +int_n_sep_by_space 2 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y30y21 b/localedata/tst-fmon-locales/tstfmon_y30y21 index 4b38c4252c..9dee2cc16b 100644 --- a/localedata/tst-fmon-locales/tstfmon_y30y21 +++ b/localedata/tst-fmon-locales/tstfmon_y30y21 @@ -23,4 +23,10 @@ p_sep_by_space 0 n_cs_precedes 1 n_sign_posn 2 n_sep_by_space 1 +int_p_cs_precedes 1 +int_p_sign_posn 3 +int_p_sep_by_space 0 +int_n_cs_precedes 1 +int_n_sign_posn 2 +int_n_sep_by_space 1 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y32n31 b/localedata/tst-fmon-locales/tstfmon_y32n31 index 7c54154607..34967c778b 100644 --- a/localedata/tst-fmon-locales/tstfmon_y32n31 +++ b/localedata/tst-fmon-locales/tstfmon_y32n31 @@ -23,4 +23,10 @@ p_sep_by_space 2 n_cs_precedes 0 n_sign_posn 3 n_sep_by_space 1 +int_p_cs_precedes 1 +int_p_sign_posn 3 +int_p_sep_by_space 2 +int_n_cs_precedes 0 +int_n_sign_posn 3 +int_n_sep_by_space 1 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y40y00 b/localedata/tst-fmon-locales/tstfmon_y40y00 index 664b20db59..348b07b1e6 100644 --- a/localedata/tst-fmon-locales/tstfmon_y40y00 +++ b/localedata/tst-fmon-locales/tstfmon_y40y00 @@ -23,4 +23,10 @@ p_sep_by_space 0 n_cs_precedes 1 n_sign_posn 0 n_sep_by_space 0 +int_p_cs_precedes 1 +int_p_sign_posn 4 +int_p_sep_by_space 0 +int_n_cs_precedes 1 +int_n_sign_posn 0 +int_n_sep_by_space 0 END LC_MONETARY diff --git a/localedata/tst-fmon-locales/tstfmon_y42n21 b/localedata/tst-fmon-locales/tstfmon_y42n21 index 2a879e4f72..d2f7e9ed44 100644 --- a/localedata/tst-fmon-locales/tstfmon_y42n21 +++ b/localedata/tst-fmon-locales/tstfmon_y42n21 @@ -23,4 +23,10 @@ p_sep_by_space 2 n_cs_precedes 0 n_sign_posn 2 n_sep_by_space 1 +int_p_cs_precedes 1 +int_p_sign_posn 4 +int_p_sep_by_space 2 +int_n_cs_precedes 0 +int_n_sign_posn 2 +int_n_sep_by_space 1 END LC_MONETARY diff --git a/localedata/tst-fmon.c b/localedata/tst-fmon.c index 091a057a0f..a45c8ba166 100644 --- a/localedata/tst-fmon.c +++ b/localedata/tst-fmon.c @@ -58,8 +58,8 @@ main (int argc, char *argv[]) if (strcmp (s, argv[4]) != 0) { printf ("\ -locale: \"%s\", format: \"%s\", expected: \"%s\", got: \"%s\" => %s\n", - argv[1], argv[2], argv[4], s, +Locale: \"%s\" Format: \"%s\" Value: \"%s\" Recieved: \"%s\" Expected: \"%s\" => %s\n", + argv[1], argv[2], argv[3], s, argv[4], strcmp (s, argv[4]) != 0 ? "false" : "correct"); exit (EXIT_FAILURE); } diff --git a/localedata/tst-fmon.data b/localedata/tst-fmon.data index d67a38f54b..d7bcb1793f 100644 --- a/localedata/tst-fmon.data +++ b/localedata/tst-fmon.data @@ -1,5 +1,5 @@ # Test data for test-strfmon, which checks it's implementation in glibc -# Copyright (C) 1996, 1997, 2000, 2002 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 2000, 2002, 2003 Free Software Foundation, Inc. # This file is part of the GNU C Library. # Contributed by Jochen Hein <jochen.hein@delphi.central.de>, 1997. # @@ -28,6 +28,8 @@ # #2 format string which is fed into strfmon # #3 double value that is used for formatting # #4 the expected result (may contain trailing spaces!) +# This field might be enclosed with "" to make it easier to see +# the white space # # First the implementation without any locale-dependent data # - no currency symbol is printed, formatting is somewhat standard @@ -236,3 +238,113 @@ tstfmon_y42n21 %11n 123.45 $ +123.45 tstfmon_y42n21 %11n -123.45 123.45 $- tstfmon_y42n21 %^=*#5n 123.45 $ +**123.45 tstfmon_y42n21 %^=*#5n -123.45 **123.45 $- +# +# check all int_cs_precedes/int_sign_posn/int_sep_by_space +# combinations using special test locales. The six characters after +# the "_" indicate these three values for positive and then negative +# quantities. +# +tstfmon_n01y12 %i 123.45 "123.45 USC" +tstfmon_n01y12 %i -123.45 "- USC123.45" +tstfmon_n01y12 %13i 123.45 " 123.45 USC" +tstfmon_n01y12 %13i -123.45 " - USC123.45" +tstfmon_n01y12 %^=*#5i 123.45 " **123.45 USC" +tstfmon_n01y12 %^=*#5i -123.45 "- USC**123.45" +# +tstfmon_n02n40 %i 123.45 "123.45USC" +tstfmon_n02n40 %i -123.45 "123.45USC-" +tstfmon_n02n40 %13i 123.45 " 123.45USC" +tstfmon_n02n40 %13i -123.45 " 123.45USC-" +tstfmon_n02n40 %^=*#5i 123.45 "**123.45USC" +tstfmon_n02n40 %^=*#5i -123.45 "**123.45USC-" +# +tstfmon_n10y31 %i 123.45 "+123.45USC" +tstfmon_n10y31 %i -123.45 "-USC 123.45" +tstfmon_n10y31 %13i 123.45 " +123.45USC" +tstfmon_n10y31 %13i -123.45 " -USC 123.45" +tstfmon_n10y31 %^=*#5i 123.45 " +**123.45USC" +tstfmon_n10y31 %^=*#5i -123.45 "-USC **123.45" +# +tstfmon_n11y41 %i 123.45 "+123.45 USC" +tstfmon_n11y41 %i -123.45 "USC- 123.45" +tstfmon_n11y41 %13i 123.45 " +123.45 USC" +tstfmon_n11y41 %13i -123.45 " USC- 123.45" +tstfmon_n11y41 %^=*#5i 123.45 " +**123.45 USC" +tstfmon_n11y41 %^=*#5i -123.45 "USC- **123.45" +# +tstfmon_n12y11 %i 123.45 "+123.45USC" +tstfmon_n12y11 %i -123.45 "-USC 123.45" +tstfmon_n12y11 %13i 123.45 " +123.45USC" +tstfmon_n12y11 %13i -123.45 " -USC 123.45" +tstfmon_n12y11 %^=*#5i 123.45 " +**123.45USC" +tstfmon_n12y11 %^=*#5i -123.45 "-USC **123.45" +# +tstfmon_n20n32 %i 123.45 "123.45USC+" +tstfmon_n20n32 %i -123.45 "123.45- USC" +tstfmon_n20n32 %13i 123.45 " 123.45USC+" +tstfmon_n20n32 %13i -123.45 " 123.45- USC" +tstfmon_n20n32 %^=*#5i 123.45 "**123.45USC+" +tstfmon_n20n32 %^=*#5i -123.45 "**123.45- USC" +# +tstfmon_n30y20 %i 123.45 "123.45+USC" +tstfmon_n30y20 %i -123.45 "USC123.45-" +tstfmon_n30y20 %13i 123.45 " 123.45+USC" +tstfmon_n30y20 %13i -123.45 " USC123.45-" +tstfmon_n30y20 %^=*#5i 123.45 " **123.45+USC" +tstfmon_n30y20 %^=*#5i -123.45 "USC**123.45-" +# +tstfmon_n41n00 %i 123.45 "123.45 USC+" +tstfmon_n41n00 %i -123.45 "(123.45USC)" +tstfmon_n41n00 %13i 123.45 " 123.45 USC+" +tstfmon_n41n00 %13i -123.45 " (123.45USC)" +tstfmon_n41n00 %^=*#5i 123.45 " **123.45 USC+" +tstfmon_n41n00 %^=*#5i -123.45 "(**123.45USC)" +# +tstfmon_y01y10 %i 123.45 "USC 123.45" +tstfmon_y01y10 %i -123.45 "-USC123.45" +tstfmon_y01y10 %13i 123.45 " USC 123.45" +tstfmon_y01y10 %13i -123.45 " -USC123.45" +tstfmon_y01y10 %^=*#5i 123.45 "USC **123.45" +tstfmon_y01y10 %^=*#5i -123.45 "-USC**123.45" +# +tstfmon_y02n22 %i 123.45 "USC123.45" +tstfmon_y02n22 %i -123.45 "123.45USC O/D" +tstfmon_y02n22 %12i 123.45 " USC123.45" +tstfmon_y02n22 %12i -123.45 "123.45USC O/D" +tstfmon_y02n22 %^=*#5i 123.45 "USC**123.45" +tstfmon_y02n22 %^=*#5i -123.45 " **123.45USC O/D" +# +tstfmon_y22n42 %i 123.45 "USC123.45+" +tstfmon_y22n42 %i -123.45 "123.45USC -" +tstfmon_y22n42 %13i 123.45 " USC123.45+" +tstfmon_y22n42 %13i -123.45 " 123.45USC -" +tstfmon_y22n42 %^=*#5i 123.45 "USC**123.45+" +tstfmon_y22n42 %^=*#5i -123.45 " **123.45USC -" +# +tstfmon_y30y21 %i 123.45 "+USC123.45" +tstfmon_y30y21 %i -123.45 "USC 123.45-" +tstfmon_y30y21 %13i 123.45 " +USC123.45" +tstfmon_y30y21 %13i -123.45 " USC 123.45-" +tstfmon_y30y21 %^=*#5i 123.45 "+USC**123.45" +tstfmon_y30y21 %^=*#5i -123.45 "USC **123.45-" +# +tstfmon_y32n31 %i 123.45 "+ USC123.45" +tstfmon_y32n31 %i -123.45 "123.45 -USC" +tstfmon_y32n31 %13i 123.45 " + USC123.45" +tstfmon_y32n31 %13i -123.45 " 123.45 -USC" +tstfmon_y32n31 %^=*#5i 123.45 "+ USC**123.45" +tstfmon_y32n31 %^=*#5i -123.45 " **123.45 -USC" +# +tstfmon_y40y00 %i 123.45 "USC+123.45" +tstfmon_y40y00 %i -123.45 "(USC123.45)" +tstfmon_y40y00 %13i 123.45 " USC+123.45" +tstfmon_y40y00 %13i -123.45 " (USC123.45)" +tstfmon_y40y00 %^=*#5i 123.45 "USC+**123.45" +tstfmon_y40y00 %^=*#5i -123.45 "(USC**123.45)" +# +tstfmon_y42n21 %i 123.45 "USC +123.45" +tstfmon_y42n21 %i -123.45 "123.45 USC-" +tstfmon_y42n21 %13i 123.45 " USC +123.45" +tstfmon_y42n21 %13i -123.45 " 123.45 USC-" +tstfmon_y42n21 %^=*#5i 123.45 "USC +**123.45" +tstfmon_y42n21 %^=*#5i -123.45 " **123.45 USC-" diff --git a/localedata/tst-fmon.sh b/localedata/tst-fmon.sh index c8b6d69949..95dab36f74 100755 --- a/localedata/tst-fmon.sh +++ b/localedata/tst-fmon.sh @@ -44,16 +44,17 @@ errcode=0 while IFS=" " read locale format value expect; do case "$locale" in '#'*) continue ;; esac if [ -n "$format" ]; then + expect=`echo "$expect" | sed 's/^\"\(.*\)\"$/\1/'` if LOCPATH=${common_objpfx}localedata \ GCONV_PATH=${common_objpfx}/iconvdata \ ${run_program_prefix} ${common_objpfx}localedata/tst-fmon \ "$locale" "$format" "$value" "$expect" ; then echo "Locale: \"${locale}\" Format: \"${format}\"" \ - "Value: \"${value}\" Expect: \"${expect}\" passed" + "Value: \"${value}\" Expected: \"${expect}\" passed" else errcode=$? echo "Locale: \"${locale}\" Format: \"${format}\"" \ - "Value: \"${value}\" Expect: \"${expect}\" failed" + "Value: \"${value}\" Expected: \"${expect}\" failed" fi fi done < $datafile |