diff options
author | Paolo Carlini <pcarlini@suse.de> | 2003-10-29 13:34:04 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2003-10-29 13:34:04 +0000 |
commit | 4f3632326091fc7da7f42bc08d9c472b0a1a1cd4 (patch) | |
tree | d979259e67718819c81b3cc44dd224f3dde82468 | |
parent | 6bf0b59cbfea56724632a81aa5a0623e2e6d3297 (diff) | |
download | gcc-4f3632326091fc7da7f42bc08d9c472b0a1a1cd4.zip gcc-4f3632326091fc7da7f42bc08d9c472b0a1a1cd4.tar.gz gcc-4f3632326091fc7da7f42bc08d9c472b0a1a1cd4.tar.bz2 |
c_locale.cc: Add back <cmath> and <cstdlib>.
2003-10-29 Paolo Carlini <pcarlini@suse.de>
* config/locale/generic/c_locale.cc: Add back <cmath>
and <cstdlib>.
* include/bits/locale_facets.tcc
(num_get::_M_extract_float): Clean up.
From-SVN: r73036
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/config/locale/generic/c_locale.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.tcc | 16 |
3 files changed, 16 insertions, 10 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 264136d..e68a725 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,13 @@ 2003-10-29 Paolo Carlini <pcarlini@suse.de> + * config/locale/generic/c_locale.cc: Add back <cmath> and + <cstdlib>. + + * include/bits/locale_facets.tcc (num_get::_M_extract_float): + Clean up. + +2003-10-29 Paolo Carlini <pcarlini@suse.de> + * include/bits/locale_facets.tcc (time_put::put): Absolutely avoid dereferencing end iterators; clean up. diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc index 4697357..d0f81b8 100644 --- a/libstdc++-v3/config/locale/generic/c_locale.cc +++ b/libstdc++-v3/config/locale/generic/c_locale.cc @@ -34,6 +34,8 @@ // Written by Benjamin Kosnik <bkoz@redhat.com> #include <cerrno> // For errno +#include <cmath> // For isinf, finite, finitef, fabs +#include <cstdlib> // For strof, strtold #include <locale> #ifdef _GLIBCXX_HAVE_IEEEFP_H diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 681a4c3..fae6988 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -169,7 +169,7 @@ namespace std string __found_grouping; int __sep_pos = 0; bool __e; - while (__beg != __end) + for (; __beg != __end; ++__beg) { // Only look in digits. const char_type __c = *__beg; @@ -182,7 +182,6 @@ namespace std __xtrc += _S_atoms_in[__p - __lit]; __found_mantissa = true; ++__sep_pos; - ++__beg; } else if (__traits_type::eq(__c, __lc->_M_thousands_sep) && __lc->_M_use_grouping && !__found_dec) @@ -193,7 +192,6 @@ namespace std { __found_grouping += static_cast<char>(__sep_pos); __sep_pos = 0; - ++__beg; } else { @@ -211,7 +209,6 @@ namespace std __found_grouping += static_cast<char>(__sep_pos); __xtrc += '.'; __found_dec = true; - ++__beg; } else if ((__e = __traits_type::eq(__c, __lit[_S_ie]) || __traits_type::eq(__c, __lit[_S_iE])) @@ -225,13 +222,12 @@ namespace std { const bool __plus = __traits_type::eq(*__beg, __lit[_S_iplus]); if (__plus || __traits_type::eq(*__beg, __lit[_S_iminus])) - { - __xtrc += __plus ? _S_atoms_in[_S_iplus] - : _S_atoms_in[_S_iminus]; - ++__beg; - } + __xtrc += __plus ? _S_atoms_in[_S_iplus] + : _S_atoms_in[_S_iminus]; + __found_sci = true; } - __found_sci = true; + else + break; } else // Not a valid input item. |