add packages_10.03.2 in preparation for the 10.03.2 interim release
[10.03/packages.git] / libs / uclibc++ / patches / 008-integer_width.patch
1 Index: uClibc++-0.2.2/include/ostream
2 ===================================================================
3 --- uClibc++-0.2.2/include/ostream      (revision 708)
4 +++ uClibc++-0.2.2/include/ostream      (revision 709)
5 @@ -129,6 +129,18 @@
6                         return *this;
7                 }
8  
9 +               _UCXXEXPORT void printout(const char_type* s, streamsize n)
10 +                {
11 +                  int extra = ios::width() - n;
12 +                  if ((ios::flags()&ios::adjustfield) == ios::right)
13 +                    while (extra-- > 0)
14 +                      put(ios::fill());
15 +                  write(s, n);
16 +                  if ((ios::flags()&ios::adjustfield) == ios::left)
17 +                    while (extra-- > 0)
18 +                      put(ios::fill());
19 +                }
20 +
21         protected:
22                 basic_ostream(const basic_ostream<charT,traits> &){ }
23                 basic_ostream<charT,traits> & operator=(const basic_ostream<charT,traits> &){ return *this; }
24 @@ -142,15 +154,15 @@
25                 sentry s(*this);
26                 if( basic_ios<charT,traits>::flags() & ios_base::boolalpha){
27                         if(n){
28 -                               write("true", 4);
29 +                               printout("true", 4);
30                         }else{
31 -                               write("false", 5);
32 +                               printout("false", 5);
33                         }
34                 }else{
35                         if(n){
36 -                               write("1", 1);
37 +                               printout("1", 1);
38                         }else{
39 -                               write("0", 1);
40 +                               printout("0", 1);
41                         }
42                 }
43                 if(basic_ios<charT,traits>::flags() & ios_base::unitbuf){
44 @@ -219,7 +231,7 @@
45         template <class charT, class traits> _UCXXEXPORT basic_ostream<charT,traits>& basic_ostream<charT, traits>::operator<<(void* p){
46                 sentry s(*this);
47                 char buffer[20];
48 -               write(buffer, snprintf(buffer, 20, "%p", p) );
49 +               printout(buffer, snprintf(buffer, 20, "%p", p) );
50                 if(basic_ios<charT,traits>::flags() & ios_base::unitbuf){
51                         flush();
52                 }
53 @@ -356,7 +368,7 @@
54                 operator<<(basic_ostream<charT,traits>& out, const charT* c)
55         {
56                 typename basic_ostream<charT,traits>::sentry s(out);
57 -               out.write(c, traits::length(c) );
58 +               out.printout(c, traits::length(c) );
59                 return out;
60         }
61         
62 @@ -364,7 +376,7 @@
63                 operator<<(basic_ostream<charT,traits>& out, const char* c)
64         {
65                 typename basic_ostream<charT,traits>::sentry s(out);
66 -               out.write(c, char_traits<char>::length(c) );
67 +               out.printout(c, char_traits<char>::length(c) );
68                 return out;
69         }
70  
71 @@ -373,7 +385,7 @@
72                 operator<<(basic_ostream<char,traits>& out, const char* c)
73         {
74                 typename basic_ostream<char,traits>::sentry s(out);
75 -               out.write(c, traits::length(c));
76 +               out.printout(c, traits::length(c));
77                 return out;
78         }
79  
80 @@ -389,7 +401,7 @@
81                         temp[i] = out.widen(c[i]);
82                 }
83  
84 -               out.write(temp, numChars);
85 +               out.printout(temp, numChars);
86                 return out;
87         }
88  #endif
89 @@ -399,7 +411,7 @@
90                 operator<<(basic_ostream<char,traits>& out, const signed char* c)
91         {
92                 typename basic_ostream<char,traits>::sentry s(out);
93 -               out.write(reinterpret_cast<const char *>(c), traits::length( reinterpret_cast<const char *>(c)));
94 +               out.printout(reinterpret_cast<const char *>(c), traits::length( reinterpret_cast<const char *>(c)));
95                 return out;
96         }
97         
98 @@ -407,7 +419,7 @@
99                 operator<<(basic_ostream<char,traits>& out, const unsigned char* c)
100         {
101                 typename basic_ostream<char,traits>::sentry s(out);
102 -               out.write(reinterpret_cast<const char *>(c), traits::length( reinterpret_cast<const char *>(c)));
103 +               out.printout(reinterpret_cast<const char *>(c), traits::length( reinterpret_cast<const char *>(c)));
104                 return out;
105         }
106  
107 Index: uClibc++-0.2.2/include/ostream_helpers
108 ===================================================================
109 --- uClibc++-0.2.2/include/ostream_helpers      (revision 708)
110 +++ uClibc++-0.2.2/include/ostream_helpers      (revision 709)
111 @@ -88,7 +88,7 @@
112                                 }
113                         }
114  
115 -                       stream.write(buffer, snprintf(buffer, 20, formatString, n) );
116 +                       stream.printout(buffer, snprintf(buffer, 20, formatString, n) );
117  
118                         if(stream.flags() & ios_base::unitbuf){
119                                 stream.flush();
120 @@ -135,7 +135,7 @@
121                                 }
122                         }
123  
124 -                       stream.write(buffer, snprintf(buffer, 20, formatString, n));
125 +                       stream.printout(buffer, snprintf(buffer, 20, formatString, n));
126                         if(stream.flags() & ios_base::unitbuf){
127                                 stream.flush();
128                         }
129 @@ -182,7 +182,7 @@
130                                 }
131                         }
132  
133 -                       stream.write(buffer, snprintf(buffer, 27, formatString, n) );
134 +                       stream.printout(buffer, snprintf(buffer, 27, formatString, n) );
135  
136                         if(stream.flags() & ios_base::unitbuf){
137                                 stream.flush();
138 @@ -228,7 +228,7 @@
139                                 }
140                         }
141  
142 -                       stream.write(buffer, snprintf(buffer, 27, formatString, n) );
143 +                       stream.printout(buffer, snprintf(buffer, 27, formatString, n) );
144  
145                         if(stream.flags() & ios_base::unitbuf){
146                                 stream.flush();
147 @@ -256,7 +256,7 @@
148                         } else {
149                                 length = snprintf(buffer, 32, "%*.*g",static_cast<int>(stream.width()),static_cast<int>(stream.precision()), f);
150                         }
151 -                       stream.write(buffer, length);
152 +                       stream.printout(buffer, length);
153                         if(stream.flags() & ios_base::unitbuf){
154                                 stream.flush();
155                         }
156 @@ -280,7 +280,7 @@
157                         } else {
158                                 length = snprintf(buffer, 32, "%*.*Lg", static_cast<int>(stream.width()), static_cast<int>(stream.precision()), f);
159                         }
160 -                       stream.write(buffer, length);
161 +                       stream.printout(buffer, length);
162                         if(stream.flags() & ios_base::unitbuf){
163                                 stream.flush();
164                         }
165 @@ -295,25 +295,25 @@
166                 {
167                         wchar_t buffer[20];
168                         if( stream.flags() & ios_base::dec){
169 -                               stream.write(buffer, swprintf(buffer, 20, L"%ld", n));
170 +                               stream.printout(buffer, swprintf(buffer, 20, L"%ld", n));
171                         }else if( stream.flags() & ios_base::oct){
172                                 if( stream.flags() & ios_base::showbase){
173 -                                       stream.write(buffer, swprintf(buffer, 20, L"%#lo", n));
174 +                                       stream.printout(buffer, swprintf(buffer, 20, L"%#lo", n));
175                                 }else{
176 -                                       stream.write(buffer, swprintf(buffer, 20, L"%lo", n) );
177 +                                       stream.printout(buffer, swprintf(buffer, 20, L"%lo", n) );
178                                 }
179                         }else if (stream.flags() & ios_base::hex){
180                                 if(stream.flags() & ios_base::showbase){
181                                         if(stream.flags() & ios_base::uppercase){
182 -                                               stream.write(buffer, swprintf(buffer, 20, L"%#lX", n) );
183 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%#lX", n) );
184                                         }else{
185 -                                               stream.write(buffer, swprintf(buffer, 20, L"%#lx", n) );
186 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%#lx", n) );
187                                         }
188                                 }else{
189                                         if(stream.flags() & ios_base::uppercase){
190 -                                               stream.write(buffer, swprintf(buffer, 20, L"%lX", n) );
191 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%lX", n) );
192                                         }else{
193 -                                               stream.write(buffer, swprintf(buffer, 20, L"%lx", n) );
194 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%lx", n) );
195                                         }
196                                 }
197                         }
198 @@ -329,25 +329,25 @@
199                 {
200                         wchar_t buffer[20];
201                         if( stream.flags() & ios_base::dec){
202 -                               stream.write(buffer, swprintf(buffer, 20, L"%lu", n));
203 +                               stream.printout(buffer, swprintf(buffer, 20, L"%lu", n));
204                         }else if( stream.flags() & ios_base::oct){
205                                 if( stream.flags() & ios_base::showbase){
206 -                                       stream.write(buffer, swprintf(buffer, 20, L"%#lo", n));
207 +                                       stream.printout(buffer, swprintf(buffer, 20, L"%#lo", n));
208                                 }else{
209 -                                       stream.write(buffer, swprintf(buffer, 20, L"%lo", n) );
210 +                                       stream.printout(buffer, swprintf(buffer, 20, L"%lo", n) );
211                                 }
212                         }else if (stream.flags() & ios_base::hex){
213                                 if(stream.flags() & ios_base::showbase){
214                                         if(stream.flags() & ios_base::uppercase){
215 -                                               stream.write(buffer, swprintf(buffer, 20, L"%#lX", n) );
216 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%#lX", n) );
217                                         }else{
218 -                                               stream.write(buffer, swprintf(buffer, 20, L"%#lx", n) );
219 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%#lx", n) );
220                                         }
221                                 }else{
222                                         if(stream.flags() & ios_base::uppercase){
223 -                                               stream.write(buffer, swprintf(buffer, 20, L"%lX", n) );
224 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%lX", n) );
225                                         }else{
226 -                                               stream.write(buffer, swprintf(buffer, 20, L"%lx", n) );
227 +                                               stream.printout(buffer, swprintf(buffer, 20, L"%lx", n) );
228                                         }
229                                 }
230                         }
231 @@ -365,25 +365,25 @@
232                 {
233                         wchar_t buffer[28];
234                         if( stream.flags() & ios_base::dec){
235 -                               stream.write(buffer, swprintf(buffer, 27, L"%lld", n));
236 +                               stream.printout(buffer, swprintf(buffer, 27, L"%lld", n));
237                         }else if( stream.flags() & ios_base::oct){
238                                 if( stream.flags() & ios_base::showbase){
239 -                                       stream.write(buffer, swprintf(buffer, 27, L"%#llo", n));
240 +                                       stream.printout(buffer, swprintf(buffer, 27, L"%#llo", n));
241                                 }else{
242 -                                       stream.write(buffer, swprintf(buffer, 27, L"%llo", n) );
243 +                                       stream.printout(buffer, swprintf(buffer, 27, L"%llo", n) );
244                                 }
245                         }else if (stream.flags() & ios_base::hex){
246                                 if(stream.flags() & ios_base::showbase){
247                                         if(stream.flags() & ios_base::uppercase){
248 -                                               stream.write(buffer, swprintf(buffer, 27, L"%#llX", n) );
249 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%#llX", n) );
250                                         }else{
251 -                                               stream.write(buffer, swprintf(buffer, 27, L"%#llx", n) );
252 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%#llx", n) );
253                                         }
254                                 }else{
255                                         if(stream.flags() & ios_base::uppercase){
256 -                                               stream.write(buffer, swprintf(buffer, 27, L"%llX", n) );
257 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%llX", n) );
258                                         }else{
259 -                                               stream.write(buffer, swprintf(buffer, 27, L"%llx", n) );
260 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%llx", n) );
261                                         }
262                                 }
263                         }
264 @@ -399,25 +399,25 @@
265                 {
266                         wchar_t buffer[28];
267                         if( stream.flags() & ios_base::dec){
268 -                               stream.write(buffer, swprintf(buffer, 27, L"%llu", n));
269 +                               stream.printout(buffer, swprintf(buffer, 27, L"%llu", n));
270                         }else if( stream.flags() & ios_base::oct){
271                                 if( stream.flags() & ios_base::showbase){
272 -                                       stream.write(buffer, swprintf(buffer, 27, L"%#llo", n));
273 +                                       stream.printout(buffer, swprintf(buffer, 27, L"%#llo", n));
274                                 }else{
275 -                                       stream.write(buffer, swprintf(buffer, 27, L"%llo", n) );
276 +                                       stream.printout(buffer, swprintf(buffer, 27, L"%llo", n) );
277                                 }
278                         }else if (stream.flags() & ios_base::hex){
279                                 if(stream.flags() & ios_base::showbase){
280                                         if(stream.flags() & ios_base::uppercase){
281 -                                               stream.write(buffer, swprintf(buffer, 27, L"%#llX", n) );
282 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%#llX", n) );
283                                         }else{
284 -                                               stream.write(buffer, swprintf(buffer, 27, L"%#llx", n) );
285 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%#llx", n) );
286                                         }
287                                 }else{
288                                         if(stream.flags() & ios_base::uppercase){
289 -                                               stream.write(buffer, swprintf(buffer, 27, L"%llX", n) );
290 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%llX", n) );
291                                         }else{
292 -                                               stream.write(buffer, swprintf(buffer, 27, L"%llx", n) );
293 +                                               stream.printout(buffer, swprintf(buffer, 27, L"%llx", n) );
294                                         }
295                                 }
296                         }
297 @@ -447,7 +447,7 @@
298                         } else {
299                                 swprintf(format_string, 32, L"%%%u.%ug", static_cast<int>(stream.width()), static_cast<unsigned int>(stream.precision()));
300                         }
301 -                       stream.write(buffer, swprintf(buffer, 32, format_string, f) );
302 +                       stream.printout(buffer, swprintf(buffer, 32, format_string, f) );
303                         if(stream.flags() & ios_base::unitbuf){
304                                 stream.flush();
305                         }
306 @@ -471,7 +471,7 @@
307                         } else {
308                                 swprintf(format_string, 32, L"%%%u.%uLg", static_cast<unsigned int>(stream.width()), static_cast<unsigned int>(stream.precision()));
309                         }
310 -                       stream.write(buffer, swprintf(buffer, 32, format_string, f) );
311 +                       stream.printout(buffer, swprintf(buffer, 32, format_string, f) );
312                         if(stream.flags() & ios_base::unitbuf){
313                                 stream.flush();
314                         }