locale_facets.tcc (__pad<>::_S_pad): Minor tweaks, avoid unnecessary casts, do widenings just in time.
2007-05-17 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.tcc (__pad<>::_S_pad): Minor tweaks, avoid unnecessary casts, do widenings just in time. From-SVN: r124790
This commit is contained in:
parent
1941551ace
commit
a576fe880e
2 changed files with 18 additions and 16 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-05-17 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/locale_facets.tcc (__pad<>::_S_pad): Minor tweaks, avoid
|
||||
unnecessary casts, do widenings just in time.
|
||||
|
||||
2007-05-16 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Add a function
|
||||
|
|
|
@ -1200,7 +1200,7 @@ _GLIBCXX_END_LDBL_NAMESPACE
|
|||
// Padding last.
|
||||
if (__adjust == ios_base::left)
|
||||
{
|
||||
_Traits::copy(__news, const_cast<_CharT*>(__olds), __oldlen);
|
||||
_Traits::copy(__news, __olds, __oldlen);
|
||||
_Traits::assign(__news + __oldlen, __plen, __fill);
|
||||
return;
|
||||
}
|
||||
|
@ -1214,30 +1214,27 @@ _GLIBCXX_END_LDBL_NAMESPACE
|
|||
const locale& __loc = __io._M_getloc();
|
||||
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
|
||||
|
||||
const bool __testsign = (__ctype.widen('-') == __olds[0]
|
||||
|| __ctype.widen('+') == __olds[0]);
|
||||
const bool __testhex = (__ctype.widen('0') == __olds[0]
|
||||
&& __oldlen > 1
|
||||
&& (__ctype.widen('x') == __olds[1]
|
||||
|| __ctype.widen('X') == __olds[1]));
|
||||
if (__testhex)
|
||||
if (__ctype.widen('-') == __olds[0]
|
||||
|| __ctype.widen('+') == __olds[0])
|
||||
{
|
||||
__news[0] = __olds[0];
|
||||
__mod = 1;
|
||||
++__news;
|
||||
}
|
||||
else if (__ctype.widen('0') == __olds[0]
|
||||
&& __oldlen > 1
|
||||
&& (__ctype.widen('x') == __olds[1]
|
||||
|| __ctype.widen('X') == __olds[1]))
|
||||
{
|
||||
__news[0] = __olds[0];
|
||||
__news[1] = __olds[1];
|
||||
__mod = 2;
|
||||
__news += 2;
|
||||
}
|
||||
else if (__testsign)
|
||||
{
|
||||
__news[0] = __olds[0];
|
||||
__mod = 1;
|
||||
++__news;
|
||||
}
|
||||
// else Padding first.
|
||||
}
|
||||
_Traits::assign(__news, __plen, __fill);
|
||||
_Traits::copy(__news + __plen, const_cast<_CharT*>(__olds + __mod),
|
||||
__oldlen - __mod);
|
||||
_Traits::copy(__news + __plen, __olds + __mod, __oldlen - __mod);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
Loading…
Add table
Reference in a new issue