diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-01-29 08:26:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-01-29 08:26:51 +0000 |
commit | 0d54f746e2bff98ede1626e83439789c72232ddc (patch) | |
tree | 160dcc846b1ccdaec4dd1afd5de3d39dad0a430d | |
parent | aec103d3b709db3103ef0cf54692350dbe2a5e2c (diff) | |
download | glibc-0d54f746e2bff98ede1626e83439789c72232ddc.zip glibc-0d54f746e2bff98ede1626e83439789c72232ddc.tar.gz glibc-0d54f746e2bff98ede1626e83439789c72232ddc.tar.bz2 |
Update.
long string in definition.Only enable returning wide character
strings if really needed.
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | locale/programs/ld-monetary.c | 11 | ||||
-rw-r--r-- | locale/programs/ld-numeric.c | 11 |
3 files changed, 20 insertions, 5 deletions
@@ -1,7 +1,8 @@ 2000-01-29 Ulrich Drepper <drepper@redhat.com> * locale/programs/ld-monetary.c (STR_ELEM_WC): Fix test for too - long string in definition. + long string in definition.Only enable returning wide character + strings if really needed. * locale/programs/ld-numeric.c (STR_ELEM): Likewise. * configure.in: Add check for recent enough sed version. diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c index b983883..24fb2a8 100644 --- a/locale/programs/ld-monetary.c +++ b/locale/programs/ld-monetary.c @@ -152,7 +152,7 @@ monetary_startup (struct linereader *lr, struct localedef_t *locale, if (lr != NULL) { lr->translate_strings = 1; - lr->return_widestr = 1; + lr->return_widestr = 0; } } @@ -609,10 +609,15 @@ monetary_read (struct linereader *ldfile, struct localedef_t *result, struct charmap_t *charmap, const char *repertoire_name, int ignore_content) { + struct repertoire_t *repertoire = NULL; struct locale_monetary_t *monetary; struct token *now; enum token_t nowtok; + /* Get the repertoire we have to use. */ + if (repertoire_name != NULL) + repertoire = repertoire_read (repertoire_name); + /* The rest of the line containing `LC_MONETARY' must be free. */ lr_ignore_rest (ldfile, 1); @@ -695,7 +700,8 @@ monetary_read (struct linereader *ldfile, struct localedef_t *result, break; \ } \ \ - now = lr_token (ldfile, charmap, NULL); \ + ldfile->return_widestr = 1; \ + now = lr_token (ldfile, charmap, repertoire); \ if (now->tok != tok_string) \ goto err_label; \ if (monetary->cat != NULL) \ @@ -720,6 +726,7 @@ monetary_read (struct linereader *ldfile, struct localedef_t *result, if (now->val.str.startwc != NULL) \ monetary->cat##_wc = *now->val.str.startwc; \ } \ + ldfile->return_widestr = 0; \ break STR_ELEM_WC (mon_decimal_point); diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c index ffd85d5..37951c8 100644 --- a/locale/programs/ld-numeric.c +++ b/locale/programs/ld-numeric.c @@ -59,7 +59,7 @@ numeric_startup (struct linereader *lr, struct localedef_t *locale, if (lr != NULL) { lr->translate_strings = 1; - lr->return_widestr = 1; + lr->return_widestr = 0; } } @@ -192,10 +192,15 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result, struct charmap_t *charmap, const char *repertoire_name, int ignore_content) { + struct repertoire_t *repertoire = NULL; struct locale_numeric_t *numeric; struct token *now; enum token_t nowtok; + /* Get the repertoire we have to use. */ + if (repertoire_name != NULL) + repertoire = repertoire_read (repertoire_name); + /* The rest of the line containing `LC_NUMERIC' must be free. */ lr_ignore_rest (ldfile, 1); @@ -245,7 +250,8 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result, break; \ } \ \ - now = lr_token (ldfile, charmap, NULL); \ + ldfile->return_widestr = 1; \ + now = lr_token (ldfile, charmap, repertoire); \ if (now->tok != tok_string) \ goto err_label; \ if (numeric->cat != NULL) \ @@ -270,6 +276,7 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result, if (now->val.str.startwc != NULL) \ numeric->cat##_wc = *now->val.str.startwc; \ } \ + ldfile->return_widestr = 0; \ break STR_ELEM (decimal_point); |