locale_facets.tcc (time_put::put): Absolutely avoid dereferencing end iterators; 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. * include/bits/locale_facets.tcc (num_get::_M_extract_float, num_get::_M_extract_int): Minor tweak. From-SVN: r73035
This commit is contained in:
parent
9c9081ae91
commit
6bf0b59cbf
|
@ -1,3 +1,11 @@
|
||||||
|
2003-10-29 Paolo Carlini <pcarlini@suse.de>
|
||||||
|
|
||||||
|
* include/bits/locale_facets.tcc (time_put::put): Absolutely
|
||||||
|
avoid dereferencing end iterators; clean up.
|
||||||
|
|
||||||
|
* include/bits/locale_facets.tcc (num_get::_M_extract_float,
|
||||||
|
num_get::_M_extract_int): Minor tweak.
|
||||||
|
|
||||||
2003-10-29 Paolo Carlini <pcarlini@suse.de>
|
2003-10-29 Paolo Carlini <pcarlini@suse.de>
|
||||||
|
|
||||||
* include/bits/locale_facets.tcc: Remove some unnecessary
|
* include/bits/locale_facets.tcc: Remove some unnecessary
|
||||||
|
|
|
@ -219,10 +219,9 @@ namespace std
|
||||||
{
|
{
|
||||||
// Scientific notation.
|
// Scientific notation.
|
||||||
__xtrc += __e ? _S_atoms_in[_S_ie] : _S_atoms_in[_S_iE];
|
__xtrc += __e ? _S_atoms_in[_S_ie] : _S_atoms_in[_S_iE];
|
||||||
++__beg;
|
|
||||||
|
|
||||||
// Remove optional plus or minus sign, if they exist.
|
// Remove optional plus or minus sign, if they exist.
|
||||||
if (__beg != __end)
|
if (++__beg != __end)
|
||||||
{
|
{
|
||||||
const bool __plus = __traits_type::eq(*__beg, __lit[_S_iplus]);
|
const bool __plus = __traits_type::eq(*__beg, __lit[_S_iplus]);
|
||||||
if (__plus || __traits_type::eq(*__beg, __lit[_S_iminus]))
|
if (__plus || __traits_type::eq(*__beg, __lit[_S_iminus]))
|
||||||
|
@ -327,9 +326,8 @@ namespace std
|
||||||
if (__beg != __end && __traits_type::eq(*__beg, __lit[_S_izero]))
|
if (__beg != __end && __traits_type::eq(*__beg, __lit[_S_izero]))
|
||||||
{
|
{
|
||||||
__xtrc += _S_atoms_in[_S_izero];
|
__xtrc += _S_atoms_in[_S_izero];
|
||||||
++__beg;
|
|
||||||
|
|
||||||
if (__beg != __end)
|
if (++__beg != __end)
|
||||||
{
|
{
|
||||||
const bool __x = __traits_type::eq(*__beg, __lit[_S_ix]);
|
const bool __x = __traits_type::eq(*__beg, __lit[_S_ix]);
|
||||||
if (__x || __traits_type::eq(*__beg, __lit[_S_iX]))
|
if (__x || __traits_type::eq(*__beg, __lit[_S_iX]))
|
||||||
|
@ -1995,31 +1993,32 @@ namespace std
|
||||||
{
|
{
|
||||||
const locale __loc = __io.getloc();
|
const locale __loc = __io.getloc();
|
||||||
ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
|
ctype<_CharT> const& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||||
while (__beg != __end)
|
for (; __beg != __end; ++__beg)
|
||||||
{
|
{
|
||||||
const _CharT __tmp = *__beg;
|
if (__ctype.narrow(*__beg, 0) != '%')
|
||||||
++__beg;
|
{
|
||||||
if (__ctype.narrow(__tmp, 0) == '%' && __beg != __end)
|
*__s = *__beg;
|
||||||
|
++__s;
|
||||||
|
}
|
||||||
|
else if (++__beg != __end)
|
||||||
{
|
{
|
||||||
char __format;
|
char __format;
|
||||||
char __mod = 0;
|
char __mod = 0;
|
||||||
const char __c = __ctype.narrow(*__beg, 0);
|
const char __c = __ctype.narrow(*__beg, 0);
|
||||||
++__beg;
|
if (__c != 'E' && __c != 'O')
|
||||||
if (__c == 'E' || __c == 'O')
|
__format = __c;
|
||||||
|
else if (++__beg != __end)
|
||||||
{
|
{
|
||||||
__mod = __c;
|
__mod = __c;
|
||||||
__format = __ctype.narrow(*__beg, 0);
|
__format = __ctype.narrow(*__beg, 0);
|
||||||
++__beg;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
__format = __c;
|
break;
|
||||||
__s = this->do_put(__s, __io, __fill, __tm, __format, __mod);
|
__s = this->do_put(__s, __io, __fill, __tm,
|
||||||
|
__format, __mod);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
break;
|
||||||
*__s = __tmp;
|
|
||||||
++__s;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return __s;
|
return __s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue