From: Paolo Carlini Date: Thu, 29 Nov 2001 00:27:54 +0000 (+0100) Subject: locale_facets.tcc (__pad): correctly output hex numbers internally aligned. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5a4c85886a6276deccc67f588e524e08ca76eee5;p=gcc.git locale_facets.tcc (__pad): correctly output hex numbers internally aligned. 2001-11-28 Paolo Carlini libstdc++/3655 * include/bits/locale_facets.tcc (__pad): correctly output hex numbers internally aligned. * testsuite/27_io/ostream_inserter_arith.cc: Add testcase. From-SVN: r47433 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c381c9eaa28..b0b7819cb29 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2001-11-28 Paolo Carlini + + libstdc++/3655 + * include/bits/locale_facets.tcc (__pad): correctly output hex + numbers internally aligned. + * testsuite/27_io/ostream_inserter_arith.cc: Add testcase. + 2001-11-28 Paolo Carlini Loren J. Rittle diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index e602e589a57..c3f1b0330a0 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -1959,9 +1959,9 @@ namespace std __news[1] = __olds[1]; __mod += 2; __news += 2; - __beg = const_cast(__olds + __mod); - __beglen = __oldlen - __mod; - __end = __pads; + __beg = __pads; + __beglen = __plen; + __end = const_cast(__olds + __mod); } else if (__testsign) { diff --git a/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc b/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc index bd49ebf7f76..25a0c1283a5 100644 --- a/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc +++ b/libstdc++-v3/testsuite/27_io/ostream_inserter_arith.cc @@ -308,11 +308,25 @@ test03() return 0; } +// libstdc++/3655 +int +test04() +{ + stringbuf strbuf; + ostream o(&strbuf); + + o << hex << showbase << setw(6) << internal << 255; + VERIFY( strbuf.str() == "0x ff" ); + + return 0; +} + int main() { test01(); test02(); + test04(); #ifdef TEST_NUMPUT_VERBOSE cout << "Test passed!" << endl; #endif