svn commit: trunk/uClibc++/include
gkajmowi at uclibc.org
gkajmowi at uclibc.org
Sun Jun 11 20:51:24 UTC 2006
Author: gkajmowi
Date: 2006-06-11 13:51:22 -0700 (Sun, 11 Jun 2006)
New Revision: 15362
Log:
Convert ostream code to more accurately reflect specifications
Modified:
trunk/uClibc++/include/ostream_helpers
Changeset:
Modified: trunk/uClibc++/include/ostream_helpers
===================================================================
--- trunk/uClibc++/include/ostream_helpers 2006-06-11 18:04:23 UTC (rev 15361)
+++ trunk/uClibc++/include/ostream_helpers 2006-06-11 20:51:22 UTC (rev 15362)
@@ -18,6 +18,7 @@
*/
#include <basic_definitions>
+#include <cstddef>
#include <ios>
#include <cctype>
#include <string>
@@ -245,14 +246,14 @@
int length;
if(stream.flags() & ios_base::scientific){
if(stream.flags() & ios_base::uppercase){
- length = snprintf(buffer, 32, "%*E", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*E", static_cast<int>(stream.width()),static_cast<int>(stream.precision()), f);
}else{
- length = snprintf(buffer, 32, "%*e", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*e", static_cast<int>(stream.width()),static_cast<int>(stream.precision()), f);
}
} else if(stream.flags() & ios_base::fixed){
- length = snprintf(buffer, 32, "%*f", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*f",static_cast<int>(stream.width()),static_cast<int>(stream.precision()), f);
} else {
- length = snprintf(buffer, 32, "%*g", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*g",static_cast<int>(stream.width()),static_cast<int>(stream.precision()), f);
}
stream.write(buffer, length);
if(stream.flags() & ios_base::unitbuf){
@@ -269,14 +270,14 @@
int length;
if(stream.flags() & ios_base::scientific){
if(stream.flags() & ios_base::uppercase){
- length = snprintf(buffer, 32, "%*LE", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*LE", static_cast<int>(stream.width()), static_cast<int>(stream.precision()), f);
}else{
- length = snprintf(buffer, 32, "%*Le", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*Le", static_cast<int>(stream.width()), static_cast<int>(stream.precision()), f);
}
} else if(stream.flags() & ios_base::fixed){
- length = snprintf(buffer, 32, "%*Lf", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*Lf", static_cast<int>(stream.width()), static_cast<int>(stream.precision()), f);
} else {
- length = snprintf(buffer, 32, "%*Lg", static_cast<unsigned int>(stream.width()), f);
+ length = snprintf(buffer, 32, "%*.*Lg", static_cast<int>(stream.width()), static_cast<int>(stream.precision()), f);
}
stream.write(buffer, length);
if(stream.flags() & ios_base::unitbuf){
@@ -433,17 +434,17 @@
static void printout(basic_ostream<wchar_t, traits >& stream, const double f)
{
wchar_t buffer[32];
- wchar_t format_string[20];
+ wchar_t format_string[32];
if(stream.flags() & ios_base::scientific){
if(stream.flags() & ios_base::uppercase){
- swprintf(format_string, 20, L"%%%uE", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%uE", static_cast<int>(stream.width()), static_cast<unsigned int>(stream.precision()),);
}else{
- swprintf(format_string, 20, L"%%%ue", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%ue", static_cast<int>(stream.width()), static_cast<unsigned int>(stream.precision()),);
}
} else if(stream.flags() & ios_base::fixed){
- swprintf(format_string, 20, L"%%%uf", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%uf", static_cast<int>(stream.width()), static_cast<unsigned int>(stream.precision()),);
} else {
- swprintf(format_string, 20, L"%%%ug", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%ug", static_cast<int>(stream.width()), static_cast<unsigned int>(stream.precision()));
}
stream.write(buffer, swprintf(buffer, 32, format_string, f) );
if(stream.flags() & ios_base::unitbuf){
@@ -457,17 +458,17 @@
static void printout(basic_ostream<wchar_t, traits >& stream, const long double f)
{
wchar_t buffer[32];
- wchar_t format_string[20];
+ wchar_t format_string[32];
if(stream.flags() & ios_base::scientific){
if(stream.flags() & ios_base::uppercase){
- swprintf(format_string, 20, L"%%%uLE", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%uLE", static_cast<unsigned int>(stream.width()), static_cast<unsigned int>(stream.precision()));
}else{
- swprintf(format_string, 20, L"%%%uLe", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%uLe", static_cast<unsigned int>(stream.width()), static_cast<unsigned int>(stream.precision()));
}
} else if(stream.flags() & ios_base::fixed){
- swprintf(format_string, 20, L"%%%uLf", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%uLf", static_cast<unsigned int>(stream.width()), static_cast<unsigned int>(stream.precision()));
} else {
- swprintf(format_string, 20, L"%%%uLg", static_cast<unsigned int>(stream.width()));
+ swprintf(format_string, 32, L"%%%u.%uLg", static_cast<unsigned int>(stream.width()), static_cast<unsigned int>(stream.precision()));
}
stream.write(buffer, swprintf(buffer, 32, format_string, f) );
if(stream.flags() & ios_base::unitbuf){
More information about the uClibc-cvs
mailing list