diff options
author | Ulrich Drepper <drepper@redhat.com> | 2004-02-10 21:57:59 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2004-02-10 21:57:59 +0000 |
commit | 3bd6014e8fd4676fd06999f4842be8c5558903a8 (patch) | |
tree | cd9f907b522b5373dde81df9d4875c2204fdbb0a /stdio-common | |
parent | Update. (diff) | |
download | glibc-3bd6014e8fd4676fd06999f4842be8c5558903a8.tar.gz glibc-3bd6014e8fd4676fd06999f4842be8c5558903a8.tar.bz2 glibc-3bd6014e8fd4676fd06999f4842be8c5558903a8.zip |
(_i18n_number_rewrite): Few more changes to make the code smaller.
Diffstat (limited to 'stdio-common')
-rw-r--r-- | stdio-common/_i18n_number.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/stdio-common/_i18n_number.h b/stdio-common/_i18n_number.h index f3404c5a0a..04d6619b4c 100644 --- a/stdio-common/_i18n_number.h +++ b/stdio-common/_i18n_number.h @@ -27,13 +27,9 @@ static CHAR_T * _i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr) { #ifdef COMPILE_WPRINTF - wint_t wdecimal = L'\0'; - wint_t wthousands = L'\0'; # define decimal NULL # define thousands NULL #else - wint_t wdecimal = L'\0'; - wint_t wthousands = L'\0'; char decimal[MB_LEN_MAX]; char thousands[MB_LEN_MAX]; #endif @@ -42,12 +38,12 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr) to their equivalent in locale. This is defined for locales which use extra decimal point and thousands-sep. */ wctrans_t map = __wctrans ("to_outpunct"); - if (map != NULL) - { - wdecimal = __towctrans (L'.', map); - wthousands = __towctrans (L',', map); + wint_t wdecimal = __towctrans (L'.', map); + wint_t wthousands = __towctrans (L',', map); #ifndef COMPILE_WPRINTF + if (__builtin_expect (map != NULL, 0)) + { mbstate_t state; memset (&state, '\0', sizeof (state)); @@ -58,8 +54,8 @@ _i18n_number_rewrite (CHAR_T *w, CHAR_T *rear_ptr) if (__wcrtomb (thousands, wthousands, &state) == (size_t) -1) memcpy (thousands, ",", 2); -#endif } +#endif /* Copy existing string so that nothing gets overwritten. */ CHAR_T *src = (CHAR_T *) alloca ((rear_ptr - w) * sizeof (CHAR_T)); |