2 * Copyright 2011 Piotr Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
30 #include "wine/debug.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(msvcp
);
33 /* ?_Index@ios_base@std@@0HA */
34 int ios_base_Index
= 0;
35 /* ?_Sync@ios_base@std@@0_NA */
36 bool ios_base_Sync
= FALSE
;
40 __int64
DECLSPEC_ALIGN(8) pos
;
44 static inline const char* debugstr_fpos_int(fpos_int
*fpos
)
46 return wine_dbg_sprintf("fpos(%Id %I64d %d)", fpos
->off
, fpos
->pos
, fpos
->state
);
50 void (__cdecl
*pfunc
)(ios_base
*, streamsize
);
55 void (__cdecl
*pfunc
)(ios_base
*, int);
63 } basic_filebuf__Initfl
;
66 basic_streambuf_char base
;
70 basic_string_char
*str
;
77 basic_streambuf_wchar base
;
81 basic_string_char
*str
;
85 } basic_filebuf_wchar
;
88 STRINGBUF_allocated
= 1,
89 STRINGBUF_no_write
= 2,
90 STRINGBUF_no_read
= 4,
93 } basic_stringbuf_state
;
96 basic_streambuf_char base
;
101 char allocator
; /* empty struct */
102 } basic_stringbuf_char
;
105 basic_streambuf_wchar base
;
110 char allocator
; /* empty struct */
111 } basic_stringbuf_wchar
;
115 basic_streambuf_char
*strbuf
;
116 struct _basic_ostream_char
*stream
;
122 basic_streambuf_wchar
*strbuf
;
123 struct _basic_ostream_wchar
*stream
;
127 typedef struct _basic_ostream_char
{
129 /* virtual inheritance
130 * basic_ios_char basic_ios;
132 } basic_ostream_char
;
134 typedef struct _basic_ostream_wchar
{
136 /* virtual inheritance
137 * basic_ios_wchar basic_ios;
139 } basic_ostream_wchar
;
144 /* virtual inheritance
145 * basic_ios_char basic_ios;
147 } basic_istream_char
;
152 /* virtual inheritance
153 * basic_ios_wchar basic_ios;
155 } basic_istream_wchar
;
158 basic_istream_char base1
;
159 basic_ostream_char base2
;
160 /* virtual inheritance
161 * basic_ios_char basic_ios;
163 } basic_iostream_char
;
166 basic_istream_wchar base1
;
167 basic_ostream_wchar base2
;
168 /* virtual inheritance
169 * basic_ios_wchar basic_ios;
171 } basic_iostream_wchar
;
174 basic_ostream_char base
;
175 basic_filebuf_char filebuf
;
176 /* virtual inheritance
177 * basic_ios_char basic_ios;
179 } basic_ofstream_char
;
182 basic_ostream_wchar base
;
183 basic_filebuf_wchar filebuf
;
184 /* virtual inheritance
185 * basic_ios_wchar basic_ios;
187 } basic_ofstream_wchar
;
190 basic_istream_char base
;
191 basic_filebuf_char filebuf
;
192 /* virtual inheritance
193 * basic_ios_char basic_ios;
195 } basic_ifstream_char
;
198 basic_istream_wchar base
;
199 basic_filebuf_wchar filebuf
;
200 /* virtual inheritance
201 * basic_ios_wchar basic_ios;
203 } basic_ifstream_wchar
;
206 basic_iostream_char base
;
207 basic_filebuf_char filebuf
;
208 /* virtual inheritance
209 * basic_ios_char basic_ios;
211 } basic_fstream_char
;
214 basic_iostream_wchar base
;
215 basic_filebuf_wchar filebuf
;
216 /* virtual inheritance
217 * basic_ios_char basic_ios;
219 } basic_fstream_wchar
;
222 basic_ostream_char base
;
223 basic_stringbuf_char strbuf
;
224 /* virtual inheritance
225 * basic_ios_char basic_ios;
227 } basic_ostringstream_char
;
230 basic_ostream_wchar base
;
231 basic_stringbuf_wchar strbuf
;
232 /* virtual inheritance
233 * basic_ios_wchar basic_ios;
235 } basic_ostringstream_wchar
;
238 basic_istream_char base
;
239 basic_stringbuf_char strbuf
;
240 /* virtual inheritance
241 * basic_ios_char basic_ios;
243 } basic_istringstream_char
;
246 basic_istream_wchar base
;
247 basic_stringbuf_wchar strbuf
;
248 /* virtual inheritance
249 * basic_ios_wchar basic_ios;
251 } basic_istringstream_wchar
;
254 basic_iostream_char base
;
255 basic_stringbuf_char strbuf
;
256 /* virtual inheritance
257 * basic_ios_char basic_ios;
259 } basic_stringstream_char
;
262 basic_iostream_wchar base
;
263 basic_stringbuf_wchar strbuf
;
264 /* virtual inheritance
265 * basic_ios_wchar basic_ios;
267 } basic_stringstream_wchar
;
270 STRSTATE_Allocated
= 1,
271 STRSTATE_Constant
= 2,
272 STRSTATE_Dynamic
= 4,
274 } strstreambuf__Strstate
;
277 basic_streambuf_char base
;
282 void* (__cdecl
*palloc
)(size_t);
283 void (__cdecl
*pfree
)(void*);
287 basic_ostream_char base
;
289 /* virtual inheritance
290 * basic_ios_char basic_ios;
295 basic_istream_char base
;
297 /* virtual inheritance
298 * basic_ios_char basic_ios;
303 basic_iostream_char base
;
305 /* virtual inheritance
306 * basic_ios_char basic_ios;
310 #define VBTABLE_ALIGN 4
312 extern const vtable_ptr iosb_vtable
;
314 /* ??_7ios_base@std@@6B@ */
315 extern const vtable_ptr ios_base_vtable
;
317 /* ??_7?$basic_ios@DU?$char_traits@D@std@@@std@@6B@ */
318 extern const vtable_ptr basic_ios_char_vtable
;
320 /* ??_7?$basic_ios@GU?$char_traits@G@std@@@std@@6B@ */
321 extern const vtable_ptr basic_ios_short_vtable
;
323 /* ??_7?$basic_streambuf@DU?$char_traits@D@std@@@std@@6B@ */
324 extern const vtable_ptr basic_streambuf_char_vtable
;
326 /* ??_7?$basic_streambuf@GU?$char_traits@G@std@@@std@@6B@ */
327 extern const vtable_ptr basic_streambuf_short_vtable
;
329 /* ??_7?$basic_filebuf@DU?$char_traits@D@std@@@std@@6B@ */
330 extern const vtable_ptr basic_filebuf_char_vtable
;
332 /* ??_7?$basic_filebuf@GU?$char_traits@G@std@@@std@@6B@ */
333 extern const vtable_ptr basic_filebuf_short_vtable
;
335 /* ??_7?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
336 extern const vtable_ptr basic_stringbuf_char_vtable
;
338 /* ??_7?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
339 extern const vtable_ptr basic_stringbuf_short_vtable
;
341 /* ??_8?$basic_ostream@DU?$char_traits@D@std@@@std@@7B@ */
342 const int basic_ostream_char_vbtable
[] = {0, ALIGNED_SIZE(sizeof(basic_ostream_char
), VBTABLE_ALIGN
)};
343 /* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
344 extern const vtable_ptr basic_ostream_char_vtable
;
346 /* ??_8?$basic_ostream@GU?$char_traits@G@std@@@std@@7B@ */
347 const int basic_ostream_short_vbtable
[] = {0, ALIGNED_SIZE(sizeof(basic_ostream_wchar
), VBTABLE_ALIGN
)};
348 /* ??_7?$basic_ostream@GU?$char_traits@G@std@@@std@@6B@ */
349 extern const vtable_ptr basic_ostream_short_vtable
;
351 /* ??_8?$basic_istream@DU?$char_traits@D@std@@@std@@7B@ */
352 const int basic_istream_char_vbtable
[] = {0, ALIGNED_SIZE(sizeof(basic_istream_char
), VBTABLE_ALIGN
)};
353 /* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
354 extern const vtable_ptr basic_istream_char_vtable
;
356 /* ??_8?$basic_istream@GU?$char_traits@G@std@@@std@@7B@ */
357 const int basic_istream_short_vbtable
[] = {0, ALIGNED_SIZE(sizeof(basic_istream_wchar
), VBTABLE_ALIGN
)};
358 /* ??_7?$basic_istream@GU?$char_traits@G@std@@@std@@6B@ */
359 extern const vtable_ptr basic_istream_short_vtable
;
361 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
362 const int basic_iostream_char_vbtable1
[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_char
), VBTABLE_ALIGN
)};
363 /* ??_8?$basic_iostream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
364 const int basic_iostream_char_vbtable2
[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_char
), VBTABLE_ALIGN
)-FIELD_OFFSET(basic_iostream_char
, base2
)};
365 /* ??_7?$basic_iostream@DU?$char_traits@D@std@@@std@@6B@ */
366 extern const vtable_ptr basic_iostream_char_vtable
;
368 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
369 const int basic_iostream_short_vbtable1
[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_wchar
), VBTABLE_ALIGN
)};
370 /* ??_8?$basic_iostream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
371 const int basic_iostream_short_vbtable2
[] = {0, ALIGNED_SIZE(sizeof(basic_iostream_wchar
), VBTABLE_ALIGN
)-FIELD_OFFSET(basic_iostream_wchar
, base2
)};
372 /* ??_7?$basic_iostream@GU?$char_traits@G@std@@@std@@6B@ */
373 extern const vtable_ptr basic_iostream_short_vtable
;
375 /* ??_8?$basic_ofstream@DU?$char_traits@D@std@@@std@@7B@ */
376 const int basic_ofstream_char_vbtable
[] = {0, sizeof(basic_ofstream_char
)};
377 /* ??_7?$basic_ofstream@DU?$char_traits@D@std@@@std@@6B@ */
378 extern const vtable_ptr basic_ofstream_char_vtable
;
380 /* ??_8?$basic_ofstream@GU?$char_traits@G@std@@@std@@7B@ */
381 const int basic_ofstream_short_vbtable
[] = {0, sizeof(basic_ofstream_wchar
)};
382 /* ??_7?$basic_ofstream@GU?$char_traits@G@std@@@std@@6B@ */
383 extern const vtable_ptr basic_ofstream_short_vtable
;
385 /* ??_8?$basic_ifstream@DU?$char_traits@D@std@@@std@@7B@ */
386 const int basic_ifstream_char_vbtable
[] = {0, sizeof(basic_ifstream_char
)};
387 /* ??_7?$basic_ifstream@DU?$char_traits@D@std@@@std@@6B@ */
388 extern const vtable_ptr basic_ifstream_char_vtable
;
390 /* ??_8?$basic_ifstream@GU?$char_traits@G@std@@@std@@7B@ */
391 const int basic_ifstream_short_vbtable
[] = {0, sizeof(basic_ifstream_wchar
)};
392 /* ??_7?$basic_ifstream@GU?$char_traits@G@std@@@std@@6B@ */
393 extern const vtable_ptr basic_ifstream_short_vtable
;
395 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
396 const int basic_fstream_char_vbtable1
[] = {0, sizeof(basic_fstream_char
)};
397 /* ??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
398 const int basic_fstream_char_vbtable2
[] = {0, sizeof(basic_fstream_char
)-FIELD_OFFSET(basic_fstream_char
, base
.base2
)};
399 /* ??_7?$basic_fstream@DU?$char_traits@D@std@@@std@@6B@ */
400 extern const vtable_ptr basic_fstream_char_vtable
;
402 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
403 const int basic_fstream_short_vbtable1
[] = {0, sizeof(basic_fstream_wchar
)};
404 /* ??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
405 const int basic_fstream_short_vbtable2
[] = {0, sizeof(basic_fstream_wchar
)-FIELD_OFFSET(basic_fstream_wchar
, base
.base2
)};
406 /* ??_7?$basic_fstream@GU?$char_traits@G@std@@@std@@6B@ */
407 extern const vtable_ptr basic_fstream_short_vtable
;
409 /* ??_8?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
410 const int basic_ostringstream_char_vbtable
[] = {0, sizeof(basic_ostringstream_char
)};
411 /* ??_7?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
412 extern const vtable_ptr basic_ostringstream_char_vtable
;
414 /* ??_8?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
415 const int basic_ostringstream_short_vbtable
[] = {0, sizeof(basic_ostringstream_wchar
)};
416 /* ??_7?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
417 extern const vtable_ptr basic_ostringstream_short_vtable
;
419 /* ??_8?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B@ */
420 const int basic_istringstream_char_vbtable
[] = {0, sizeof(basic_istringstream_char
)};
421 /* ??_7?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
422 extern const vtable_ptr basic_istringstream_char_vtable
;
424 /* ??_8?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B@ */
425 const int basic_istringstream_short_vbtable
[] = {0, sizeof(basic_istringstream_wchar
)};
426 /* ??_7?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
427 extern const vtable_ptr basic_istringstream_short_vtable
;
429 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_istream@DU?$char_traits@D@std@@@1@@ */
430 const int basic_stringstream_char_vbtable1
[] = {0, sizeof(basic_stringstream_char
)};
431 /* ??_8?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@ */
432 const int basic_stringstream_char_vbtable2
[] = {0, sizeof(basic_stringstream_char
)-FIELD_OFFSET(basic_stringstream_char
, base
.base2
)};
433 /* ??_7?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@6B@ */
434 extern const vtable_ptr basic_stringstream_char_vtable
;
436 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@ */
437 const int basic_stringstream_short_vbtable1
[] = {0, sizeof(basic_stringstream_wchar
)};
438 /* ??_8?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@ */
439 const int basic_stringstream_short_vbtable2
[] = {0, sizeof(basic_stringstream_wchar
)-FIELD_OFFSET(basic_stringstream_wchar
, base
.base2
)};
440 /* ??_7?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@6B@ */
441 extern const vtable_ptr basic_stringstream_short_vtable
;
443 /* ??_7strstreambuf@std@@6B */
444 extern const vtable_ptr strstreambuf_vtable
;
446 static const int ostrstream_vbtable
[] = {0, sizeof(ostrstream
)};
447 extern const vtable_ptr ostrstream_vtable
;
449 static const int istrstream_vbtable
[] = {0, sizeof(istrstream
)};
451 static const int strstream_vbtable1
[] = {0, sizeof(strstream
)};
452 static const int strstream_vbtable2
[] = {0, sizeof(strstream
)-FIELD_OFFSET(strstream
, base
.base2
)};
453 extern const vtable_ptr strstream_vtable
;
455 DEFINE_RTTI_DATA0(iosb
, 0, ".?AV?$_Iosb@H@std@@")
456 DEFINE_RTTI_DATA1(ios_base
, 0, &iosb_rtti_base_descriptor
, ".?AV?$_Iosb@H@std@@")
457 DEFINE_RTTI_DATA2(basic_ios_char
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
458 ".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@")
459 DEFINE_RTTI_DATA2(basic_ios_short
, 0, &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
460 ".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@")
461 DEFINE_RTTI_DATA0(basic_streambuf_char
, 0,
462 ".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@")
463 DEFINE_RTTI_DATA0(basic_streambuf_short
, 0,
464 ".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@")
465 DEFINE_RTTI_DATA1(basic_filebuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
466 ".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@")
467 DEFINE_RTTI_DATA1(basic_filebuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
468 ".?AV?$basic_filebuf@GU?$char_traits@G@std@@@std@@")
469 DEFINE_RTTI_DATA1(basic_stringbuf_char
, 0, &basic_streambuf_char_rtti_base_descriptor
,
470 ".?AV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
471 DEFINE_RTTI_DATA1(basic_stringbuf_short
, 0, &basic_streambuf_short_rtti_base_descriptor
,
472 ".?AV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
473 DEFINE_RTTI_DATA3(basic_ostream_char
, sizeof(basic_ostream_char
), &basic_ios_char_rtti_base_descriptor
,
474 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
475 ".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@")
476 DEFINE_RTTI_DATA3(basic_ostream_short
, sizeof(basic_ostream_wchar
), &basic_ios_short_rtti_base_descriptor
,
477 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
478 ".?AV?$basic_ostream@GU?$char_traits@G@std@@@std@@")
479 DEFINE_RTTI_DATA3(basic_istream_char
, sizeof(basic_istream_char
), &basic_ios_char_rtti_base_descriptor
,
480 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
481 ".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@")
482 DEFINE_RTTI_DATA3(basic_istream_short
, sizeof(basic_istream_wchar
), &basic_ios_short_rtti_base_descriptor
,
483 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
484 ".?AV?$basic_istream@GU?$char_traits@G@std@@@std@@")
485 DEFINE_RTTI_DATA8(basic_iostream_char
, sizeof(basic_iostream_char
),
486 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
487 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
488 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
489 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
490 ".?AV?$basic_iostream@DU?$char_traits@D@std@@@std@@")
491 DEFINE_RTTI_DATA8(basic_iostream_short
, sizeof(basic_iostream_wchar
),
492 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
493 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
494 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
495 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
496 ".?AV?$basic_iostream@GU?$char_traits@G@std@@@std@@")
497 DEFINE_RTTI_DATA4(basic_ofstream_char
, sizeof(basic_ofstream_char
),
498 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
499 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
500 ".?AV?$basic_ofstream@DU?$char_traits@D@std@@@std@@")
501 DEFINE_RTTI_DATA4(basic_ofstream_short
, sizeof(basic_ofstream_wchar
),
502 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
503 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
504 ".?AV?$basic_ofstream@GU?$char_traits@G@std@@@std@@")
505 DEFINE_RTTI_DATA4(basic_ifstream_char
, sizeof(basic_ifstream_char
),
506 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
507 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
508 ".?AV?$basic_ifstream@DU?$char_traits@D@std@@@std@@")
509 DEFINE_RTTI_DATA4(basic_ifstream_short
, sizeof(basic_ifstream_wchar
),
510 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
511 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
512 ".?AV?$basic_ifstream@GU?$char_traits@G@std@@@std@@")
513 DEFINE_RTTI_DATA8(basic_fstream_char
, sizeof(basic_fstream_char
),
514 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
515 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
516 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
517 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
518 ".?AV?$basic_fstream@DU?$char_traits@D@std@@@std@@")
519 DEFINE_RTTI_DATA8(basic_fstream_short
, sizeof(basic_fstream_wchar
),
520 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
521 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
522 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
523 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
524 ".?AV?$basic_fstream@GU?$char_traits@G@std@@@std@@")
525 DEFINE_RTTI_DATA4(basic_ostringstream_char
, sizeof(basic_ostringstream_char
),
526 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
527 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
528 ".?AV?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
529 DEFINE_RTTI_DATA4(basic_ostringstream_short
, sizeof(basic_ostringstream_wchar
),
530 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
531 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
532 ".?AV?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
533 DEFINE_RTTI_DATA4(basic_istringstream_char
, sizeof(basic_istringstream_char
),
534 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
535 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
536 ".?AV?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
537 DEFINE_RTTI_DATA4(basic_istringstream_short
, sizeof(basic_istringstream_wchar
),
538 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
539 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
540 ".?AV?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
541 DEFINE_RTTI_DATA8(basic_stringstream_char
, sizeof(basic_stringstream_char
),
542 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
543 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
544 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
545 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
546 ".?AV?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@")
547 DEFINE_RTTI_DATA8(basic_stringstream_short
, sizeof(basic_stringstream_wchar
),
548 &basic_istream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
549 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
550 &basic_ostream_short_rtti_base_descriptor
, &basic_ios_short_rtti_base_descriptor
,
551 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
552 ".?AV?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@")
553 DEFINE_RTTI_DATA1(strstreambuf
, sizeof(strstreambuf
),
554 &basic_streambuf_char_rtti_base_descriptor
, ".?AVstrstreambuf@std@@")
555 DEFINE_RTTI_DATA4(ostrstream
, sizeof(ostrstream
),
556 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
557 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
558 "?AVostrstream@std@@")
559 DEFINE_RTTI_DATA8(strstream
, sizeof(strstream
),
560 &basic_istream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
561 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
562 &basic_ostream_char_rtti_base_descriptor
, &basic_ios_char_rtti_base_descriptor
,
563 &ios_base_rtti_base_descriptor
, &iosb_rtti_base_descriptor
,
564 "?AVstrstream@std@@")
566 __ASM_BLOCK_BEGIN(ios_vtables
)
568 VTABLE_ADD_FUNC(iosb_vector_dtor
));
569 __ASM_VTABLE(ios_base
,
570 VTABLE_ADD_FUNC(ios_base_vector_dtor
));
571 __ASM_VTABLE(basic_ios_char
,
572 VTABLE_ADD_FUNC(basic_ios_char_vector_dtor
));
573 __ASM_VTABLE(basic_ios_short
,
574 VTABLE_ADD_FUNC(basic_ios_short_vector_dtor
));
575 __ASM_VTABLE(basic_streambuf_char
,
576 VTABLE_ADD_FUNC(basic_streambuf_char_vector_dtor
)
577 VTABLE_ADD_FUNC(basic_streambuf_char_overflow
)
578 VTABLE_ADD_FUNC(basic_streambuf_char_pbackfail
)
579 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
580 VTABLE_ADD_FUNC(basic_streambuf_char_underflow
)
581 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
582 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
583 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
584 VTABLE_ADD_FUNC(basic_streambuf_char_seekoff
)
585 VTABLE_ADD_FUNC(basic_streambuf_char_seekpos
)
586 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
587 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
588 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
589 __ASM_VTABLE(basic_streambuf_short
,
590 VTABLE_ADD_FUNC(basic_streambuf_wchar_vector_dtor
)
591 VTABLE_ADD_FUNC(basic_streambuf_wchar_overflow
)
592 VTABLE_ADD_FUNC(basic_streambuf_wchar_pbackfail
)
593 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
594 VTABLE_ADD_FUNC(basic_streambuf_wchar_underflow
)
595 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
596 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
597 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
598 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekoff
)
599 VTABLE_ADD_FUNC(basic_streambuf_wchar_seekpos
)
600 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
601 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
602 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
603 __ASM_VTABLE(basic_filebuf_char
,
604 VTABLE_ADD_FUNC(basic_filebuf_char_vector_dtor
)
605 VTABLE_ADD_FUNC(basic_filebuf_char_overflow
)
606 VTABLE_ADD_FUNC(basic_filebuf_char_pbackfail
)
607 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
608 VTABLE_ADD_FUNC(basic_filebuf_char_underflow
)
609 VTABLE_ADD_FUNC(basic_filebuf_char_uflow
)
610 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
611 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
612 VTABLE_ADD_FUNC(basic_filebuf_char_seekoff
)
613 VTABLE_ADD_FUNC(basic_filebuf_char_seekpos
)
614 VTABLE_ADD_FUNC(basic_filebuf_char_setbuf
)
615 VTABLE_ADD_FUNC(basic_filebuf_char_sync
)
616 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
617 __ASM_VTABLE(basic_filebuf_short
,
618 VTABLE_ADD_FUNC(basic_filebuf_short_vector_dtor
)
619 VTABLE_ADD_FUNC(basic_filebuf_short_overflow
)
620 VTABLE_ADD_FUNC(basic_filebuf_short_pbackfail
)
621 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
622 VTABLE_ADD_FUNC(basic_filebuf_short_underflow
)
623 VTABLE_ADD_FUNC(basic_filebuf_short_uflow
)
624 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
625 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
626 VTABLE_ADD_FUNC(basic_filebuf_short_seekoff
)
627 VTABLE_ADD_FUNC(basic_filebuf_short_seekpos
)
628 VTABLE_ADD_FUNC(basic_filebuf_short_setbuf
)
629 VTABLE_ADD_FUNC(basic_filebuf_short_sync
)
630 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
631 __ASM_VTABLE(basic_stringbuf_char
,
632 VTABLE_ADD_FUNC(basic_stringbuf_char_vector_dtor
)
633 VTABLE_ADD_FUNC(basic_stringbuf_char_overflow
)
634 VTABLE_ADD_FUNC(basic_stringbuf_char_pbackfail
)
635 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
636 VTABLE_ADD_FUNC(basic_stringbuf_char_underflow
)
637 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
638 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
639 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
640 VTABLE_ADD_FUNC(basic_stringbuf_char_seekoff
)
641 VTABLE_ADD_FUNC(basic_stringbuf_char_seekpos
)
642 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
643 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
644 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
645 __ASM_VTABLE(basic_stringbuf_short
,
646 VTABLE_ADD_FUNC(basic_stringbuf_short_vector_dtor
)
647 VTABLE_ADD_FUNC(basic_stringbuf_short_overflow
)
648 VTABLE_ADD_FUNC(basic_stringbuf_short_pbackfail
)
649 VTABLE_ADD_FUNC(basic_streambuf_wchar_showmanyc
)
650 VTABLE_ADD_FUNC(basic_stringbuf_short_underflow
)
651 VTABLE_ADD_FUNC(basic_streambuf_wchar_uflow
)
652 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsgetn
)
653 VTABLE_ADD_FUNC(basic_streambuf_wchar_xsputn
)
654 VTABLE_ADD_FUNC(basic_stringbuf_short_seekoff
)
655 VTABLE_ADD_FUNC(basic_stringbuf_short_seekpos
)
656 VTABLE_ADD_FUNC(basic_streambuf_wchar_setbuf
)
657 VTABLE_ADD_FUNC(basic_streambuf_wchar_sync
)
658 VTABLE_ADD_FUNC(basic_streambuf_wchar_imbue
));
659 __ASM_VTABLE(basic_ostream_char
,
660 VTABLE_ADD_FUNC(basic_ostream_char_vector_dtor
));
661 __ASM_VTABLE(basic_ostream_short
,
662 VTABLE_ADD_FUNC(basic_ostream_short_vector_dtor
));
663 __ASM_VTABLE(basic_istream_char
,
664 VTABLE_ADD_FUNC(basic_istream_char_vector_dtor
));
665 __ASM_VTABLE(basic_istream_short
,
666 VTABLE_ADD_FUNC(basic_istream_short_vector_dtor
));
667 __ASM_VTABLE(basic_iostream_char
,
668 VTABLE_ADD_FUNC(basic_iostream_char_vector_dtor
));
669 __ASM_VTABLE(basic_iostream_short
,
670 VTABLE_ADD_FUNC(basic_iostream_short_vector_dtor
));
671 __ASM_VTABLE(basic_ofstream_char
,
672 VTABLE_ADD_FUNC(basic_ofstream_char_vector_dtor
));
673 __ASM_VTABLE(basic_ofstream_short
,
674 VTABLE_ADD_FUNC(basic_ofstream_short_vector_dtor
));
675 __ASM_VTABLE(basic_ifstream_char
,
676 VTABLE_ADD_FUNC(basic_ifstream_char_vector_dtor
));
677 __ASM_VTABLE(basic_ifstream_short
,
678 VTABLE_ADD_FUNC(basic_ifstream_short_vector_dtor
));
679 __ASM_VTABLE(basic_fstream_char
,
680 VTABLE_ADD_FUNC(basic_fstream_char_vector_dtor
));
681 __ASM_VTABLE(basic_fstream_short
,
682 VTABLE_ADD_FUNC(basic_fstream_short_vector_dtor
));
683 __ASM_VTABLE(basic_ostringstream_char
,
684 VTABLE_ADD_FUNC(basic_ostringstream_char_vector_dtor
));
685 __ASM_VTABLE(basic_ostringstream_short
,
686 VTABLE_ADD_FUNC(basic_ostringstream_short_vector_dtor
));
687 __ASM_VTABLE(basic_istringstream_char
,
688 VTABLE_ADD_FUNC(basic_istringstream_char_vector_dtor
));
689 __ASM_VTABLE(basic_istringstream_short
,
690 VTABLE_ADD_FUNC(basic_istringstream_short_vector_dtor
));
691 __ASM_VTABLE(basic_stringstream_char
,
692 VTABLE_ADD_FUNC(basic_stringstream_char_vector_dtor
));
693 __ASM_VTABLE(basic_stringstream_short
,
694 VTABLE_ADD_FUNC(basic_stringstream_short_vector_dtor
));
695 __ASM_VTABLE(strstreambuf
,
696 VTABLE_ADD_FUNC(strstreambuf_vector_dtor
)
697 VTABLE_ADD_FUNC(strstreambuf_overflow
)
698 VTABLE_ADD_FUNC(strstreambuf_pbackfail
)
699 VTABLE_ADD_FUNC(basic_streambuf_char_showmanyc
)
700 VTABLE_ADD_FUNC(strstreambuf_underflow
)
701 VTABLE_ADD_FUNC(basic_streambuf_char_uflow
)
702 VTABLE_ADD_FUNC(basic_streambuf_char_xsgetn
)
703 VTABLE_ADD_FUNC(basic_streambuf_char_xsputn
)
704 VTABLE_ADD_FUNC(strstreambuf_seekoff
)
705 VTABLE_ADD_FUNC(strstreambuf_seekpos
)
706 VTABLE_ADD_FUNC(basic_streambuf_char_setbuf
)
707 VTABLE_ADD_FUNC(basic_streambuf_char_sync
)
708 VTABLE_ADD_FUNC(basic_streambuf_char_imbue
));
709 __ASM_VTABLE(ostrstream
,
710 VTABLE_ADD_FUNC(ostrstream_vector_dtor
));
711 __ASM_VTABLE(strstream
,
712 VTABLE_ADD_FUNC(strstream_vector_dtor
));
715 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
716 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
717 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp_next
, 16)
718 void __thiscall
basic_streambuf_char_setp_next(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
720 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
724 this->wsize
= last
-next
;
727 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD0@Z */
728 /* ?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z */
729 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setp
, 12)
730 void __thiscall
basic_streambuf_char_setp(basic_streambuf_char
*this, char *first
, char *last
)
732 basic_streambuf_char_setp_next(this, first
, first
, last
);
735 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAD00@Z */
736 /* ?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z */
737 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setg
, 16)
738 void __thiscall
basic_streambuf_char_setg(basic_streambuf_char
*this, char *first
, char *next
, char *last
)
740 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
744 this->rsize
= last
-next
;
747 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
748 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
749 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init_empty
, 4)
750 void __thiscall
basic_streambuf_char__Init_empty(basic_streambuf_char
*this)
752 TRACE("(%p)\n", this);
754 this->prbuf
= &this->rbuf
;
755 this->pwbuf
= &this->wbuf
;
756 this->prpos
= &this->rpos
;
757 this->pwpos
= &this->wpos
;
758 this->prsize
= &this->rsize
;
759 this->pwsize
= &this->wsize
;
761 basic_streambuf_char_setp(this, NULL
, NULL
);
762 basic_streambuf_char_setg(this, NULL
, NULL
, NULL
);
765 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@W4_Uninitialized@1@@Z */
766 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
767 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor_uninitialized
, 8)
768 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor_uninitialized(basic_streambuf_char
*this, int uninitialized
)
770 TRACE("(%p %d)\n", this, uninitialized
);
771 this->vtable
= &basic_streambuf_char_vtable
;
775 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAE@XZ */
776 /* ??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAA@XZ */
777 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_ctor
, 4)
778 basic_streambuf_char
* __thiscall
basic_streambuf_char_ctor(basic_streambuf_char
*this)
780 TRACE("(%p)\n", this);
782 this->vtable
= &basic_streambuf_char_vtable
;
783 locale_ctor(IOS_LOCALE(this));
784 basic_streambuf_char__Init_empty(this);
789 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
790 /* ??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
791 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_dtor
, 4)
792 void __thiscall
basic_streambuf_char_dtor(basic_streambuf_char
*this)
794 TRACE("(%p)\n", this);
795 locale_dtor(IOS_LOCALE(this));
798 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_vector_dtor
, 8)
799 basic_streambuf_char
* __thiscall
basic_streambuf_char_vector_dtor(basic_streambuf_char
*this, unsigned int flags
)
801 TRACE("(%p %x)\n", this, flags
);
803 /* we have an array, with the number of elements stored before the first object */
804 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
806 for(i
=*ptr
-1; i
>=0; i
--)
807 basic_streambuf_char_dtor(this+i
);
808 operator_delete(ptr
);
810 basic_streambuf_char_dtor(this);
812 operator_delete(this);
818 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
819 /* ?_Gnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
820 static streamsize
basic_streambuf_char__Gnavail(const basic_streambuf_char
*this)
822 TRACE("(%p)\n", this);
823 return *this->prpos
? *this->prsize
: 0;
826 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
827 /* ?_Gndec@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
828 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gndec
, 4)
829 char* __thiscall
basic_streambuf_char__Gndec(basic_streambuf_char
*this)
831 TRACE("(%p)\n", this);
837 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
838 /* ?_Gninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
839 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Gninc
, 4)
840 char* __thiscall
basic_streambuf_char__Gninc(basic_streambuf_char
*this)
842 TRACE("(%p)\n", this);
844 return (*this->prpos
)++;
847 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
848 /* ?_Gnpreinc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
849 static char* basic_streambuf_char__Gnpreinc(basic_streambuf_char
*this)
851 TRACE("(%p)\n", this);
857 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXPAPAD0PAH001@Z */
858 /* ?_Init@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAPEAD0PEAH001@Z */
859 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Init
, 28)
860 void __thiscall
basic_streambuf_char__Init(basic_streambuf_char
*this, char **gf
, char **gn
, int *gc
, char **pf
, char **pn
, int *pc
)
862 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
872 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEHXZ */
873 /* ?_Pnavail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBA_JXZ */
874 static streamsize
basic_streambuf_char__Pnavail(const basic_streambuf_char
*this)
876 TRACE("(%p)\n", this);
877 return *this->pwpos
? *this->pwsize
: 0;
880 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEPADXZ */
881 /* ?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ */
882 DEFINE_THISCALL_WRAPPER(basic_streambuf_char__Pninc
, 4)
883 char* __thiscall
basic_streambuf_char__Pninc(basic_streambuf_char
*this)
885 TRACE("(%p)\n", this);
887 return (*this->pwpos
)++;
890 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
891 /* ?underflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
892 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_underflow
, 4)
893 #define call_basic_streambuf_char_underflow(this) CALL_VTBL_FUNC(this, 16, int, (basic_streambuf_char*), (this))
894 int __thiscall
basic_streambuf_char_underflow(basic_streambuf_char
*this)
896 TRACE("(%p)\n", this);
900 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
901 /* ?uflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
902 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_uflow
, 4)
903 #define call_basic_streambuf_char_uflow(this) CALL_VTBL_FUNC(this, 20, int, (basic_streambuf_char*), (this))
904 int __thiscall
basic_streambuf_char_uflow(basic_streambuf_char
*this)
908 TRACE("(%p)\n", this);
910 if(call_basic_streambuf_char_underflow(this)==EOF
)
913 ret
= (unsigned char)**this->prpos
;
919 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
920 /* ?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
921 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_eback
, 4)
922 char* __thiscall
basic_streambuf_char_eback(const basic_streambuf_char
*this)
924 TRACE("(%p)\n", this);
928 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
929 /* ?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
930 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gptr
, 4)
931 char* __thiscall
basic_streambuf_char_gptr(const basic_streambuf_char
*this)
933 TRACE("(%p)\n", this);
937 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
938 /* ?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
939 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_egptr
, 4)
940 char* __thiscall
basic_streambuf_char_egptr(const basic_streambuf_char
*this)
942 TRACE("(%p)\n", this);
943 return *this->prpos
+*this->prsize
;
946 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
947 /* ?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
948 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_epptr
, 4)
949 char* __thiscall
basic_streambuf_char_epptr(const basic_streambuf_char
*this)
951 TRACE("(%p)\n", this);
952 return *this->pwpos
+*this->pwsize
;
955 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
956 /* ?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
957 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_gbump
, 8)
958 void __thiscall
basic_streambuf_char_gbump(basic_streambuf_char
*this, int off
)
960 TRACE("(%p %d)\n", this, off
);
962 *this->prsize
-= off
;
965 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@XZ */
966 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QBE?AVlocale@2@XZ */
967 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@XZ */
968 /* ?getloc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEBA?AVlocale@2@XZ */
969 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_getloc
, 8)
970 locale
* __thiscall
basic_streambuf_char_getloc(const basic_streambuf_char
*this, locale
*ret
)
972 TRACE("(%p)\n", this);
973 return locale_copy_ctor(ret
, IOS_LOCALE(this));
976 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEXABVlocale@2@@Z */
977 /* ?imbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAXAEBVlocale@2@@Z */
978 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_imbue
, 8)
979 #define call_basic_streambuf_char_imbue(this, loc) CALL_VTBL_FUNC(this, 48, void, (basic_streambuf_char*, const locale*), (this, loc))
980 void __thiscall
basic_streambuf_char_imbue(basic_streambuf_char
*this, const locale
*loc
)
982 TRACE("(%p %p)\n", this, loc
);
985 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
986 /* ?overflow@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
987 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_overflow
, 8)
988 #define call_basic_streambuf_char_overflow(this, ch) CALL_VTBL_FUNC(this, 4, int, (basic_streambuf_char*, int), (this, ch))
989 int __thiscall
basic_streambuf_char_overflow(basic_streambuf_char
*this, int ch
)
991 TRACE("(%p %d)\n", this, ch
);
995 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
996 /* ?pbackfail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
997 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbackfail
, 8)
998 #define call_basic_streambuf_char_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, int, (basic_streambuf_char*, int), (this, ch))
999 int __thiscall
basic_streambuf_char_pbackfail(basic_streambuf_char
*this, int ch
)
1001 TRACE("(%p %d)\n", this, ch
);
1005 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1006 /* ?pbase@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1007 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbase
, 4)
1008 char* __thiscall
basic_streambuf_char_pbase(const basic_streambuf_char
*this)
1010 TRACE("(%p)\n", this);
1011 return *this->pwbuf
;
1014 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IAEXH@Z */
1015 /* ?pbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z */
1016 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pbump
, 8)
1017 void __thiscall
basic_streambuf_char_pbump(basic_streambuf_char
*this, int off
)
1019 TRACE("(%p %d)\n", this, off
);
1020 *this->pwpos
+= off
;
1021 *this->pwsize
-= off
;
1024 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IBEPADXZ */
1025 /* ?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ */
1026 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pptr
, 4)
1027 char* __thiscall
basic_streambuf_char_pptr(const basic_streambuf_char
*this)
1029 TRACE("(%p)\n", this);
1030 return *this->pwpos
;
1033 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1034 /* ?pubimbue@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1035 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubimbue
, 12)
1036 locale
* __thiscall
basic_streambuf_char_pubimbue(basic_streambuf_char
*this, locale
*ret
, const locale
*loc
)
1038 TRACE("(%p %p)\n", this, loc
);
1039 memcpy(ret
, IOS_LOCALE(this), sizeof(locale
));
1040 call_basic_streambuf_char_imbue(this, loc
);
1041 locale_copy_ctor(IOS_LOCALE(this), loc
);
1045 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1046 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1047 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1048 /* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1049 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff
, 20)
1050 #define call_basic_streambuf_char_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, fpos_int*, (basic_streambuf_char*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1051 fpos_int
* __thiscall
basic_streambuf_char_seekoff(basic_streambuf_char
*this,
1052 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1054 TRACE("(%p %Id %d %d)\n", this, off
, way
, mode
);
1061 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1062 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1063 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JFF@Z */
1064 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JFF@Z */
1065 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1066 /* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1067 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff
, 20)
1068 fpos_int
* __thiscall
basic_streambuf_char_pubseekoff(basic_streambuf_char
*this,
1069 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1071 TRACE("(%p %Id %d %d)\n", this, off
, way
, mode
);
1072 return call_basic_streambuf_char_seekoff(this, ret
, off
, way
, mode
);
1075 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1076 /* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1077 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos
, 36)
1078 #define call_basic_streambuf_char_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, fpos_int*, (basic_streambuf_char*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1079 fpos_int
* __thiscall
basic_streambuf_char_seekpos(basic_streambuf_char
*this,
1080 fpos_int
*ret
, fpos_int pos
, int mode
)
1082 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1089 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1090 /* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1091 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos
, 36)
1092 fpos_int
* __thiscall
basic_streambuf_char_pubseekpos(basic_streambuf_char
*this,
1093 fpos_int
*ret
, fpos_int pos
, int mode
)
1095 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1096 return call_basic_streambuf_char_seekpos(this, ret
, pos
, mode
);
1099 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEPAV12@PADH@Z */
1100 /* ?setbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAPEAV12@PEAD_J@Z */
1101 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_setbuf
, 12)
1102 #define call_basic_streambuf_char_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, basic_streambuf_char*, (basic_streambuf_char*, char*, streamsize), (this, buf, count))
1103 basic_streambuf_char
* __thiscall
basic_streambuf_char_setbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1105 TRACE("(%p %p %Id)\n", this, buf
, count
);
1109 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PADH@Z */
1110 /* ?pubsetbuf@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEAD_J@Z */
1111 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsetbuf
, 12)
1112 basic_streambuf_char
* __thiscall
basic_streambuf_char_pubsetbuf(basic_streambuf_char
*this, char *buf
, streamsize count
)
1114 TRACE("(%p %p %Id)\n", this, buf
, count
);
1115 return call_basic_streambuf_char_setbuf(this, buf
, count
);
1118 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1119 /* ?sync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
1120 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sync
, 4)
1121 #define call_basic_streambuf_char_sync(this) CALL_VTBL_FUNC(this, 44, int, (basic_streambuf_char*), (this))
1122 int __thiscall
basic_streambuf_char_sync(basic_streambuf_char
*this)
1124 TRACE("(%p)\n", this);
1128 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1129 /* ?pubsync@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1130 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubsync
, 4)
1131 int __thiscall
basic_streambuf_char_pubsync(basic_streambuf_char
*this)
1133 TRACE("(%p)\n", this);
1134 return call_basic_streambuf_char_sync(this);
1137 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPADH@Z */
1138 /* ?xsgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEAD_J@Z */
1139 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsgetn
, 12)
1140 #define call_basic_streambuf_char_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, streamsize, (basic_streambuf_char*, char*, streamsize), (this, ptr, count))
1141 streamsize __thiscall
basic_streambuf_char_xsgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1143 streamsize copied
, chunk
;
1146 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1148 for(copied
=0; copied
<count
;) {
1149 chunk
= basic_streambuf_char__Gnavail(this);
1150 if(chunk
> count
-copied
)
1151 chunk
= count
-copied
;
1154 memcpy(ptr
+copied
, *this->prpos
, chunk
);
1155 *this->prpos
+= chunk
;
1156 *this->prsize
-= chunk
;
1158 }else if((c
= call_basic_streambuf_char_uflow(this)) != EOF
) {
1169 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
1170 /* ?sgetn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
1171 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetn
, 12)
1172 streamsize __thiscall
basic_streambuf_char_sgetn(basic_streambuf_char
*this, char *ptr
, streamsize count
)
1174 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1175 return call_basic_streambuf_char_xsgetn(this, ptr
, count
);
1178 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
1179 /* ?showmanyc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JXZ */
1180 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_showmanyc
, 4)
1181 #define call_basic_streambuf_char_showmanyc(this) CALL_VTBL_FUNC(this, 12, streamsize, (basic_streambuf_char*), (this))
1182 streamsize __thiscall
basic_streambuf_char_showmanyc(basic_streambuf_char
*this)
1184 TRACE("(%p)\n", this);
1188 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1189 /* ?in_avail@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JXZ */
1190 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_in_avail
, 4)
1191 streamsize __thiscall
basic_streambuf_char_in_avail(basic_streambuf_char
*this)
1195 TRACE("(%p)\n", this);
1197 ret
= basic_streambuf_char__Gnavail(this);
1198 return ret
? ret
: call_basic_streambuf_char_showmanyc(this);
1201 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1202 /* ?sputbackc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1203 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputbackc
, 8)
1204 int __thiscall
basic_streambuf_char_sputbackc(basic_streambuf_char
*this, char ch
)
1206 TRACE("(%p %d)\n", this, ch
);
1207 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
1210 return (unsigned char)ch
;
1213 return call_basic_streambuf_char_pbackfail(this, (unsigned char)ch
);
1216 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z */
1217 /* ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z */
1218 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputc
, 8)
1219 int __thiscall
basic_streambuf_char_sputc(basic_streambuf_char
*this, char ch
)
1221 TRACE("(%p %d)\n", this, ch
);
1222 return basic_streambuf_char__Pnavail(this) ?
1223 (unsigned char)(*basic_streambuf_char__Pninc(this) = ch
) :
1224 call_basic_streambuf_char_overflow(this, (unsigned char)ch
);
1227 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1228 /* ?sungetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1229 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sungetc
, 4)
1230 int __thiscall
basic_streambuf_char_sungetc(basic_streambuf_char
*this)
1232 TRACE("(%p)\n", this);
1233 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
1236 return (unsigned char)**this->prpos
;
1239 return call_basic_streambuf_char_pbackfail(this, EOF
);
1242 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
1243 /* ?stossc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
1244 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_stossc
, 4)
1245 void __thiscall
basic_streambuf_char_stossc(basic_streambuf_char
*this)
1247 TRACE("(%p)\n", this);
1248 if(basic_streambuf_char__Gnavail(this))
1249 basic_streambuf_char__Gninc(this);
1251 call_basic_streambuf_char_uflow(this);
1254 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1255 /* ?sbumpc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1256 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sbumpc
, 4)
1257 int __thiscall
basic_streambuf_char_sbumpc(basic_streambuf_char
*this)
1259 TRACE("(%p)\n", this);
1260 return basic_streambuf_char__Gnavail(this) ?
1261 (int)(unsigned char)*basic_streambuf_char__Gninc(this) : call_basic_streambuf_char_uflow(this);
1264 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1265 /* ?sgetc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1266 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sgetc
, 4)
1267 int __thiscall
basic_streambuf_char_sgetc(basic_streambuf_char
*this)
1269 TRACE("(%p)\n", this);
1270 return basic_streambuf_char__Gnavail(this) ?
1271 (int)(unsigned char)*basic_streambuf_char_gptr(this) : call_basic_streambuf_char_underflow(this);
1274 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHXZ */
1275 /* ?snextc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHXZ */
1276 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_snextc
, 4)
1277 int __thiscall
basic_streambuf_char_snextc(basic_streambuf_char
*this)
1279 TRACE("(%p)\n", this);
1281 if(basic_streambuf_char__Gnavail(this) > 1)
1282 return (unsigned char)*basic_streambuf_char__Gnpreinc(this);
1283 return basic_streambuf_char_sbumpc(this)==EOF
?
1284 EOF
: basic_streambuf_char_sgetc(this);
1287 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAEHPBDH@Z */
1288 /* ?xsputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA_JPEBD_J@Z */
1289 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_xsputn
, 12)
1290 #define call_basic_streambuf_char_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, streamsize, (basic_streambuf_char*, const char*, streamsize), (this, ptr, count))
1291 streamsize __thiscall
basic_streambuf_char_xsputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1293 streamsize copied
, chunk
;
1295 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1297 for(copied
=0; copied
<count
;) {
1298 chunk
= basic_streambuf_char__Pnavail(this);
1299 if(chunk
> count
-copied
)
1300 chunk
= count
-copied
;
1303 memcpy(*this->pwpos
, ptr
+copied
, chunk
);
1304 *this->pwpos
+= chunk
;
1305 *this->pwsize
-= chunk
;
1307 }else if(call_basic_streambuf_char_overflow(this, (unsigned char)ptr
[copied
]) != EOF
) {
1317 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z */
1318 /* ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z */
1319 DEFINE_THISCALL_WRAPPER(basic_streambuf_char_sputn
, 12)
1320 streamsize __thiscall
basic_streambuf_char_sputn(basic_streambuf_char
*this, const char *ptr
, streamsize count
)
1322 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1323 return call_basic_streambuf_char_xsputn(this, ptr
, count
);
1326 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1327 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1328 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp_next
, 16)
1329 void __thiscall
basic_streambuf_wchar_setp_next(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
1331 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1335 this->wsize
= last
-next
;
1338 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG0@Z */
1339 /* ?setp@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG0@Z */
1340 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setp
, 12)
1341 void __thiscall
basic_streambuf_wchar_setp(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *last
)
1343 basic_streambuf_wchar_setp_next(this, first
, first
, last
);
1346 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAG00@Z */
1347 /* ?setg@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAG00@Z */
1348 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setg
, 16)
1349 void __thiscall
basic_streambuf_wchar_setg(basic_streambuf_wchar
*this, wchar_t *first
, wchar_t *next
, wchar_t *last
)
1351 TRACE("(%p %p %p %p)\n", this, first
, next
, last
);
1355 this->rsize
= last
-next
;
1358 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
1359 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
1360 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init_empty
, 4)
1361 void __thiscall
basic_streambuf_wchar__Init_empty(basic_streambuf_wchar
*this)
1363 TRACE("(%p)\n", this);
1365 this->prbuf
= &this->rbuf
;
1366 this->pwbuf
= &this->wbuf
;
1367 this->prpos
= &this->rpos
;
1368 this->pwpos
= &this->wpos
;
1369 this->prsize
= &this->rsize
;
1370 this->pwsize
= &this->wsize
;
1372 basic_streambuf_wchar_setp(this, NULL
, NULL
);
1373 basic_streambuf_wchar_setg(this, NULL
, NULL
, NULL
);
1376 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@W4_Uninitialized@1@@Z */
1377 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@W4_Uninitialized@1@@Z */
1378 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor_uninitialized
, 8)
1379 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor_uninitialized(basic_streambuf_wchar
*this, int uninitialized
)
1381 TRACE("(%p %d)\n", this, uninitialized
);
1382 this->vtable
= &basic_streambuf_short_vtable
;
1386 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAE@XZ */
1387 /* ??0?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAA@XZ */
1388 DEFINE_THISCALL_WRAPPER(basic_streambuf_short_ctor
, 4)
1389 basic_streambuf_wchar
* __thiscall
basic_streambuf_short_ctor(basic_streambuf_wchar
*this)
1391 TRACE("(%p)\n", this);
1393 this->vtable
= &basic_streambuf_short_vtable
;
1394 locale_ctor(IOS_LOCALE(this));
1395 basic_streambuf_wchar__Init_empty(this);
1400 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
1401 /* ??1?$basic_streambuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
1402 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_dtor
, 4)
1403 void __thiscall
basic_streambuf_wchar_dtor(basic_streambuf_wchar
*this)
1405 TRACE("(%p)\n", this);
1406 locale_dtor(IOS_LOCALE(this));
1409 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_vector_dtor
, 8)
1410 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_vector_dtor(basic_streambuf_wchar
*this, unsigned int flags
)
1412 TRACE("(%p %x)\n", this, flags
);
1414 /* we have an array, with the number of elements stored before the first object */
1415 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
1417 for(i
=*ptr
-1; i
>=0; i
--)
1418 basic_streambuf_wchar_dtor(this+i
);
1419 operator_delete(ptr
);
1421 basic_streambuf_wchar_dtor(this);
1423 operator_delete(this);
1429 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1430 /* ?_Gnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1431 static streamsize
basic_streambuf_wchar__Gnavail(const basic_streambuf_wchar
*this)
1433 TRACE("(%p)\n", this);
1434 return *this->prpos
? *this->prsize
: 0;
1437 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1438 /* ?_Gndec@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1439 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gndec
, 4)
1440 wchar_t* __thiscall
basic_streambuf_wchar__Gndec(basic_streambuf_wchar
*this)
1442 TRACE("(%p)\n", this);
1445 return *this->prpos
;
1448 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1449 /* ?_Gninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1450 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Gninc
, 4)
1451 wchar_t* __thiscall
basic_streambuf_wchar__Gninc(basic_streambuf_wchar
*this)
1453 TRACE("(%p)\n", this);
1455 return (*this->prpos
)++;
1458 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1459 /* ?_Gnpreinc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1460 static wchar_t* basic_streambuf_wchar__Gnpreinc(basic_streambuf_wchar
*this)
1462 TRACE("(%p)\n", this);
1465 return *this->prpos
;
1468 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXPAPAG0PAH001@Z */
1469 /* ?_Init@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXPEAPEAG0PEAH001@Z */
1470 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Init
, 28)
1471 void __thiscall
basic_streambuf_wchar__Init(basic_streambuf_wchar
*this, wchar_t **gf
, wchar_t **gn
, int *gc
, wchar_t **pf
, wchar_t **pn
, int *pc
)
1473 TRACE("(%p %p %p %p %p %p %p)\n", this, gf
, gn
, gc
, pf
, pn
, pc
);
1483 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEHXZ */
1484 /* ?_Pnavail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBA_JXZ */
1485 static streamsize
basic_streambuf_wchar__Pnavail(const basic_streambuf_wchar
*this)
1487 TRACE("(%p)\n", this);
1488 return *this->pwpos
? *this->pwsize
: 0;
1491 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEPAGXZ */
1492 /* ?_Pninc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAPEAGXZ */
1493 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar__Pninc
, 4)
1494 wchar_t* __thiscall
basic_streambuf_wchar__Pninc(basic_streambuf_wchar
*this)
1496 TRACE("(%p)\n", this);
1498 return (*this->pwpos
)++;
1501 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1502 /* ?underflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1503 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_underflow
, 4)
1504 #define call_basic_streambuf_wchar_underflow(this) CALL_VTBL_FUNC(this, 16, unsigned short, (basic_streambuf_wchar*), (this))
1505 unsigned short __thiscall
basic_streambuf_wchar_underflow(basic_streambuf_wchar
*this)
1507 TRACE("(%p)\n", this);
1511 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
1512 /* ?uflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
1513 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_uflow
, 4)
1514 #define call_basic_streambuf_wchar_uflow(this) CALL_VTBL_FUNC(this, 20, unsigned short, (basic_streambuf_wchar*), (this))
1515 unsigned short __thiscall
basic_streambuf_wchar_uflow(basic_streambuf_wchar
*this)
1519 TRACE("(%p)\n", this);
1521 if(call_basic_streambuf_wchar_underflow(this)==WEOF
)
1524 ret
= **this->prpos
;
1530 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1531 /* ?eback@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1532 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_eback
, 4)
1533 wchar_t* __thiscall
basic_streambuf_wchar_eback(const basic_streambuf_wchar
*this)
1535 TRACE("(%p)\n", this);
1536 return *this->prbuf
;
1539 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1540 /* ?gptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1541 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gptr
, 4)
1542 wchar_t* __thiscall
basic_streambuf_wchar_gptr(const basic_streambuf_wchar
*this)
1544 TRACE("(%p)\n", this);
1545 return *this->prpos
;
1548 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1549 /* ?egptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1550 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_egptr
, 4)
1551 wchar_t* __thiscall
basic_streambuf_wchar_egptr(const basic_streambuf_wchar
*this)
1553 TRACE("(%p)\n", this);
1554 return *this->prpos
+*this->prsize
;
1557 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1558 /* ?epptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1559 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_epptr
, 4)
1560 wchar_t* __thiscall
basic_streambuf_wchar_epptr(const basic_streambuf_wchar
*this)
1562 TRACE("(%p)\n", this);
1563 return *this->pwpos
+*this->pwsize
;
1566 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1567 /* ?gbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1568 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_gbump
, 8)
1569 void __thiscall
basic_streambuf_wchar_gbump(basic_streambuf_wchar
*this, int off
)
1571 TRACE("(%p %d)\n", this, off
);
1572 *this->prpos
+= off
;
1573 *this->prsize
-= off
;
1576 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEXABVlocale@2@@Z */
1577 /* ?imbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAXAEBVlocale@2@@Z */
1578 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_imbue
, 8)
1579 #define call_basic_streambuf_wchar_imbue(this, loc) CALL_VTBL_FUNC(this, 48, void, (basic_streambuf_wchar*, const locale*), (this, loc))
1580 void __thiscall
basic_streambuf_wchar_imbue(basic_streambuf_wchar
*this, const locale
*loc
)
1582 TRACE("(%p %p)\n", this, loc
);
1585 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1586 /* ?overflow@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1587 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_overflow
, 8)
1588 #define call_basic_streambuf_wchar_overflow(this, ch) CALL_VTBL_FUNC(this, 4, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1589 unsigned short __thiscall
basic_streambuf_wchar_overflow(basic_streambuf_wchar
*this, unsigned short ch
)
1591 TRACE("(%p %d)\n", this, ch
);
1595 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
1596 /* ?pbackfail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
1597 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbackfail
, 8)
1598 #define call_basic_streambuf_wchar_pbackfail(this, ch) CALL_VTBL_FUNC(this, 8, unsigned short, (basic_streambuf_wchar*, unsigned short), (this, ch))
1599 unsigned short __thiscall
basic_streambuf_wchar_pbackfail(basic_streambuf_wchar
*this, unsigned short ch
)
1601 TRACE("(%p %d)\n", this, ch
);
1605 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1606 /* ?pbase@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1607 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbase
, 4)
1608 wchar_t* __thiscall
basic_streambuf_wchar_pbase(const basic_streambuf_wchar
*this)
1610 TRACE("(%p)\n", this);
1611 return *this->pwbuf
;
1614 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IAEXH@Z */
1615 /* ?pbump@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEAAXH@Z */
1616 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pbump
, 8)
1617 void __thiscall
basic_streambuf_wchar_pbump(basic_streambuf_wchar
*this, int off
)
1619 TRACE("(%p %d)\n", this, off
);
1620 *this->pwpos
+= off
;
1621 *this->pwsize
-= off
;
1624 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IBEPAGXZ */
1625 /* ?pptr@?$basic_streambuf@GU?$char_traits@G@std@@@std@@IEBAPEAGXZ */
1626 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pptr
, 4)
1627 wchar_t* __thiscall
basic_streambuf_wchar_pptr(const basic_streambuf_wchar
*this)
1629 TRACE("(%p)\n", this);
1630 return *this->pwpos
;
1633 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
1634 /* ?pubimbue@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
1635 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubimbue
, 12)
1636 locale
* __thiscall
basic_streambuf_wchar_pubimbue(basic_streambuf_wchar
*this, locale
*ret
, const locale
*loc
)
1638 TRACE("(%p %p)\n", this, loc
);
1639 memcpy(ret
, IOS_LOCALE(this), sizeof(locale
));
1640 call_basic_streambuf_wchar_imbue(this, loc
);
1641 locale_copy_ctor(IOS_LOCALE(this), loc
);
1645 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1646 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
1647 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
1648 /* ?seekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
1649 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekoff
, 20)
1650 #define call_basic_streambuf_wchar_seekoff(this, ret, off, way, mode) CALL_VTBL_FUNC(this, 32, fpos_int*, (basic_streambuf_wchar*, fpos_int*, streamoff, int, int), (this, ret, off, way, mode))
1651 fpos_int
* __thiscall
basic_streambuf_wchar_seekoff(basic_streambuf_wchar
*this,
1652 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1654 TRACE("(%p %Id %d %d)\n", this, off
, way
, mode
);
1661 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
1662 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
1663 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JFF@Z */
1664 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JFF@Z */
1665 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
1666 /* ?pubseekoff@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@_JW4seekdir@ioos_base@2@H@Z */
1667 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekoff
, 20)
1668 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekoff(basic_streambuf_wchar
*this,
1669 fpos_int
*ret
, streamoff off
, int way
, int mode
)
1671 TRACE("(%p %Id %d %d)\n", this, off
, way
, mode
);
1672 return call_basic_streambuf_wchar_seekoff(this, ret
, off
, way
, mode
);
1675 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
1676 /* ?seekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
1677 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_seekpos
, 36)
1678 #define call_basic_streambuf_wchar_seekpos(this, ret, pos, mode) CALL_VTBL_FUNC(this, 36, fpos_int*, (basic_streambuf_wchar*, fpos_int*, fpos_int, int), (this, ret, pos, mode))
1679 fpos_int
* __thiscall
basic_streambuf_wchar_seekpos(basic_streambuf_wchar
*this,
1680 fpos_int
*ret
, fpos_int pos
, int mode
)
1682 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1689 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
1690 /* ?pubseekpos@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
1691 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubseekpos
, 36)
1692 fpos_int
* __thiscall
basic_streambuf_wchar_pubseekpos(basic_streambuf_wchar
*this,
1693 fpos_int
*ret
, fpos_int pos
, int mode
)
1695 TRACE("(%p %s %d)\n", this, debugstr_fpos_int(&pos
), mode
);
1696 return call_basic_streambuf_wchar_seekpos(this, ret
, pos
, mode
);
1699 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEPAV12@PAGH@Z */
1700 /* ?setbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAPEAV12@PEAG_J@Z */
1701 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_setbuf
, 12)
1702 #define call_basic_streambuf_wchar_setbuf(this, buf, count) CALL_VTBL_FUNC(this, 40, basic_streambuf_wchar*, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, buf, count))
1703 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_setbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
1705 TRACE("(%p %p %Id)\n", this, buf
, count
);
1709 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PAGH@Z */
1710 /* ?pubsetbuf@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEAG_J@Z */
1711 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsetbuf
, 12)
1712 basic_streambuf_wchar
* __thiscall
basic_streambuf_wchar_pubsetbuf(basic_streambuf_wchar
*this, wchar_t *buf
, streamsize count
)
1714 TRACE("(%p %p %Id)\n", this, buf
, count
);
1715 return call_basic_streambuf_wchar_setbuf(this, buf
, count
);
1718 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1719 /* ?sync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
1720 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sync
, 4)
1721 #define call_basic_streambuf_wchar_sync(this) CALL_VTBL_FUNC(this, 44, int, (basic_streambuf_wchar*), (this))
1722 int __thiscall
basic_streambuf_wchar_sync(basic_streambuf_wchar
*this)
1724 TRACE("(%p)\n", this);
1728 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1729 /* ?pubsync@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHXZ */
1730 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_pubsync
, 4)
1731 int __thiscall
basic_streambuf_wchar_pubsync(basic_streambuf_wchar
*this)
1733 TRACE("(%p)\n", this);
1734 return call_basic_streambuf_wchar_sync(this);
1737 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPAGH@Z */
1738 /* ?xsgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEAG_J@Z */
1739 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsgetn
, 12)
1740 #define call_basic_streambuf_wchar_xsgetn(this, ptr, count) CALL_VTBL_FUNC(this, 24, streamsize, (basic_streambuf_wchar*, wchar_t*, streamsize), (this, ptr, count))
1741 streamsize __thiscall
basic_streambuf_wchar_xsgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
1743 streamsize copied
, chunk
;
1746 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1748 for(copied
=0; copied
<count
;) {
1749 chunk
= basic_streambuf_wchar__Gnavail(this);
1750 if(chunk
> count
-copied
)
1751 chunk
= count
-copied
;
1754 memcpy(ptr
+copied
, *this->prpos
, chunk
*sizeof(wchar_t));
1755 *this->prpos
+= chunk
;
1756 *this->prsize
-= chunk
;
1758 }else if((c
= call_basic_streambuf_wchar_uflow(this)) != WEOF
) {
1769 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
1770 /* ?sgetn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
1771 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetn
, 12)
1772 streamsize __thiscall
basic_streambuf_wchar_sgetn(basic_streambuf_wchar
*this, wchar_t *ptr
, streamsize count
)
1774 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1775 return call_basic_streambuf_wchar_xsgetn(this, ptr
, count
);
1778 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
1779 /* ?showmanyc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JXZ */
1780 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_showmanyc
, 4)
1781 #define call_basic_streambuf_wchar_showmanyc(this) CALL_VTBL_FUNC(this, 12, streamsize, (basic_streambuf_wchar*), (this))
1782 streamsize __thiscall
basic_streambuf_wchar_showmanyc(basic_streambuf_wchar
*this)
1784 TRACE("(%p)\n", this);
1788 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHXZ */
1789 /* ?in_avail@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JXZ */
1790 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_in_avail
, 4)
1791 streamsize __thiscall
basic_streambuf_wchar_in_avail(basic_streambuf_wchar
*this)
1795 TRACE("(%p)\n", this);
1797 ret
= basic_streambuf_wchar__Gnavail(this);
1798 return ret
? ret
: call_basic_streambuf_wchar_showmanyc(this);
1801 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1802 /* ?sputbackc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
1803 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputbackc
, 8)
1804 unsigned short __thiscall
basic_streambuf_wchar_sputbackc(basic_streambuf_wchar
*this, wchar_t ch
)
1806 TRACE("(%p %d)\n", this, ch
);
1807 if(*this->prpos
&& *this->prpos
>*this->prbuf
&& (*this->prpos
)[-1]==ch
) {
1813 return call_basic_streambuf_wchar_pbackfail(this, ch
);
1816 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGG@Z */
1817 /* ?sputc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAHG@Z */
1818 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputc
, 8)
1819 unsigned short __thiscall
basic_streambuf_wchar_sputc(basic_streambuf_wchar
*this, wchar_t ch
)
1821 TRACE("(%p %d)\n", this, ch
);
1822 return basic_streambuf_wchar__Pnavail(this) ?
1823 (*basic_streambuf_wchar__Pninc(this) = ch
) :
1824 call_basic_streambuf_wchar_overflow(this, ch
);
1827 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1828 /* ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1829 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sungetc
, 4)
1830 unsigned short __thiscall
basic_streambuf_wchar_sungetc(basic_streambuf_wchar
*this)
1832 TRACE("(%p)\n", this);
1833 if(*this->prpos
&& *this->prpos
>*this->prbuf
) {
1836 return **this->prpos
;
1839 return call_basic_streambuf_wchar_pbackfail(this, WEOF
);
1842 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
1843 /* ?stossc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
1844 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_stossc
, 4)
1845 void __thiscall
basic_streambuf_wchar_stossc(basic_streambuf_wchar
*this)
1847 TRACE("(%p)\n", this);
1848 if(basic_streambuf_wchar__Gnavail(this))
1849 basic_streambuf_wchar__Gninc(this);
1851 call_basic_streambuf_wchar_uflow(this);
1854 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1855 /* ?sbumpc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1856 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sbumpc
, 4)
1857 unsigned short __thiscall
basic_streambuf_wchar_sbumpc(basic_streambuf_wchar
*this)
1859 TRACE("(%p)\n", this);
1860 return basic_streambuf_wchar__Gnavail(this) ?
1861 *basic_streambuf_wchar__Gninc(this) : call_basic_streambuf_wchar_uflow(this);
1864 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1865 /* ?sgetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1866 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sgetc
, 4)
1867 unsigned short __thiscall
basic_streambuf_wchar_sgetc(basic_streambuf_wchar
*this)
1869 TRACE("(%p)\n", this);
1870 return basic_streambuf_wchar__Gnavail(this) ?
1871 *basic_streambuf_wchar_gptr(this) : call_basic_streambuf_wchar_underflow(this);
1874 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEGXZ */
1875 /* ?snextc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ */
1876 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_snextc
, 4)
1877 unsigned short __thiscall
basic_streambuf_wchar_snextc(basic_streambuf_wchar
*this)
1879 TRACE("(%p)\n", this);
1881 if(basic_streambuf_wchar__Gnavail(this) > 1)
1882 return *basic_streambuf_wchar__Gnpreinc(this);
1883 return basic_streambuf_wchar_sbumpc(this)==WEOF
?
1884 WEOF
: basic_streambuf_wchar_sgetc(this);
1887 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MAEHPBGH@Z */
1888 /* ?xsputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@MEAA_JPEBG_J@Z */
1889 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_xsputn
, 12)
1890 #define call_basic_streambuf_wchar_xsputn(this, ptr, count) CALL_VTBL_FUNC(this, 28, streamsize, (basic_streambuf_wchar*, const wchar_t*, streamsize), (this, ptr, count))
1891 streamsize __thiscall
basic_streambuf_wchar_xsputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
1893 streamsize copied
, chunk
;
1895 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1897 for(copied
=0; copied
<count
;) {
1898 chunk
= basic_streambuf_wchar__Pnavail(this);
1899 if(chunk
> count
-copied
)
1900 chunk
= count
-copied
;
1903 memcpy(*this->pwpos
, ptr
+copied
, chunk
*sizeof(wchar_t));
1904 *this->pwpos
+= chunk
;
1905 *this->pwsize
-= chunk
;
1907 }else if(call_basic_streambuf_wchar_overflow(this, ptr
[copied
]) != WEOF
) {
1917 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QAEHPBGH@Z */
1918 /* ?sputn@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAA_JPEBG_J@Z */
1919 DEFINE_THISCALL_WRAPPER(basic_streambuf_wchar_sputn
, 12)
1920 streamsize __thiscall
basic_streambuf_wchar_sputn(basic_streambuf_wchar
*this, const wchar_t *ptr
, streamsize count
)
1922 TRACE("(%p %p %Id)\n", this, ptr
, count
);
1923 return call_basic_streambuf_wchar_xsputn(this, ptr
, count
);
1926 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
1927 /* ?_Stinit@?1??_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
1928 int basic_filebuf_char__Init__Stinit
= 0;
1930 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
1931 /* ?_Init@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
1932 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Init
, 12)
1933 void __thiscall
basic_filebuf_char__Init(basic_filebuf_char
*this, FILE *file
, basic_filebuf__Initfl which
)
1935 TRACE("(%p %p %d)\n", this, file
, which
);
1938 this->state0
= basic_filebuf_char__Init__Stinit
;
1939 this->state
= basic_filebuf_char__Init__Stinit
;
1940 if(which
== INITFL_new
)
1942 this->close
= (which
== INITFL_open
);
1945 basic_streambuf_char__Init_empty(&this->base
);
1947 basic_streambuf_char__Init(&this->base
, &file
->_base
, &file
->_ptr
,
1948 &file
->_cnt
, &file
->_base
, &file
->_ptr
, &file
->_cnt
);
1951 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IAEXXZ */
1952 /* ?_Initcvt@?$basic_filebuf@DU?$char_traits@D@std@@@std@@IEAAXXZ */
1953 DEFINE_THISCALL_WRAPPER(basic_filebuf_char__Initcvt
, 4)
1954 void __thiscall
basic_filebuf_char__Initcvt(basic_filebuf_char
*this)
1956 codecvt_char
*cvt
= codecvt_char_use_facet(IOS_LOCALE(&this->base
));
1958 TRACE("(%p)\n", this);
1960 locale__Addfac(&this->loc
, &cvt
->base
.facet
, codecvt_char_id
.id
, LC_CTYPE
);
1961 if(codecvt_base_always_noconv(&cvt
->base
)) {
1964 this->str
= operator_new(sizeof(basic_string_char
));
1965 MSVCP_basic_string_char_ctor(this->str
);
1970 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@XZ */
1971 /* ?close@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@XZ */
1972 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_close
, 4)
1973 basic_filebuf_char
* __thiscall
basic_filebuf_char_close(basic_filebuf_char
*this)
1975 basic_filebuf_char
*ret
= this;
1977 TRACE("(%p)\n", this);
1979 if(!this->file
|| fclose(this->file
))
1982 basic_filebuf_char__Init(this, NULL
, INITFL_close
);
1986 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z */
1987 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@PEAU_iobuf@@@Z */
1988 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_file
, 8)
1989 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_file(basic_filebuf_char
*this, FILE *file
)
1991 TRACE("(%p %p)\n", this, file
);
1993 basic_streambuf_char_ctor(&this->base
);
1994 this->base
.vtable
= &basic_filebuf_char_vtable
;
1996 locale_ctor(&this->loc
);
1997 basic_filebuf_char__Init(this, file
, INITFL_new
);
2001 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEXXZ */
2002 /* ??_F?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAXXZ */
2003 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor
, 4)
2004 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor(basic_filebuf_char
*this)
2006 return basic_filebuf_char_ctor_file(this, NULL
);
2009 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2010 /* ??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2011 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_ctor_uninitialized
, 8)
2012 basic_filebuf_char
* __thiscall
basic_filebuf_char_ctor_uninitialized(basic_filebuf_char
*this, int uninitialized
)
2014 TRACE("(%p %d)\n", this, uninitialized
);
2016 basic_streambuf_char_ctor_uninitialized(&this->base
, 0);
2017 this->base
.vtable
= &basic_filebuf_char_vtable
;
2018 locale_ctor(&this->loc
);
2022 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UAE@XZ */
2023 /* ??1?$basic_filebuf@DU?$char_traits@D@std@@@std@@UEAA@XZ */
2024 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_dtor
, 4)
2025 void __thiscall
basic_filebuf_char_dtor(basic_filebuf_char
*this)
2027 TRACE("(%p)\n", this);
2030 basic_filebuf_char_close(this);
2032 MSVCP_basic_string_char_dtor(this->str
);
2033 operator_delete(this->str
);
2035 locale_dtor(&this->loc
);
2036 basic_streambuf_char_dtor(&this->base
);
2039 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_vector_dtor
, 8)
2040 basic_filebuf_char
* __thiscall
basic_filebuf_char_vector_dtor(basic_filebuf_char
*this, unsigned int flags
)
2042 TRACE("(%p %x)\n", this, flags
);
2044 /* we have an array, with the number of elements stored before the first object */
2045 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
2047 for(i
=*ptr
-1; i
>=0; i
--)
2048 basic_filebuf_char_dtor(this+i
);
2049 operator_delete(ptr
);
2051 basic_filebuf_char_dtor(this);
2053 operator_delete(this);
2059 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QBE_NXZ */
2060 /* ?is_open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
2061 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_is_open
, 4)
2062 bool __thiscall
basic_filebuf_char_is_open(const basic_filebuf_char
*this)
2064 TRACE("(%p)\n", this);
2065 return this->file
!= NULL
;
2068 /* ?_Fiopen@std@@YAPAU_iobuf@@PB_WHH@Z */
2069 /* ?_Fiopen@std@@YAPEAU_iobuf@@PEB_WHH@Z */
2070 static FILE* _Fiopen_wchar(const wchar_t *name
, int mode
, int prot
)
2072 static const struct {
2074 const wchar_t str
[4];
2075 const wchar_t str_bin
[4];
2077 {OPENMODE_out
, L
"w", L
"wb"},
2078 {OPENMODE_out
|OPENMODE_app
, L
"a", L
"ab"},
2079 {OPENMODE_app
, L
"a", L
"ab"},
2080 {OPENMODE_out
|OPENMODE_trunc
, L
"w", L
"wb"},
2081 {OPENMODE_in
, L
"r", L
"rb"},
2082 {OPENMODE_in
|OPENMODE_out
, L
"r+", L
"r+b"},
2083 {OPENMODE_in
|OPENMODE_out
|OPENMODE_trunc
, L
"w+", L
"w+b"},
2084 {OPENMODE_in
|OPENMODE_out
|OPENMODE_app
, L
"a+", L
"a+b"},
2085 {OPENMODE_in
|OPENMODE_app
, L
"a+", L
"a+b"}
2088 int real_mode
= mode
& ~(OPENMODE_ate
|OPENMODE__Nocreate
|OPENMODE__Noreplace
|OPENMODE_binary
);
2092 TRACE("(%s %d %d)\n", debugstr_w(name
), mode
, prot
);
2094 for(mode_idx
=0; mode_idx
<ARRAY_SIZE(str_mode
); mode_idx
++)
2095 if(str_mode
[mode_idx
].mode
== real_mode
)
2097 if(mode_idx
== ARRAY_SIZE(str_mode
))
2100 if((mode
& OPENMODE__Nocreate
) && !(f
= _wfopen(name
, L
"r")))
2105 if((mode
& OPENMODE__Noreplace
) && (mode
& (OPENMODE_out
|OPENMODE_app
))
2106 && (f
= _wfopen(name
, L
"r"))) {
2111 f
= _wfsopen(name
, (mode
& OPENMODE_binary
) ? str_mode
[mode_idx
].str_bin
2112 : str_mode
[mode_idx
].str
, prot
);
2116 if((mode
& OPENMODE_ate
) && fseek(f
, 0, SEEK_END
)) {
2124 /* ?__Fiopen@std@@YAPAU_iobuf@@PBDH@Z */
2125 /* ?__Fiopen@std@@YAPEAU_iobuf@@PEBDH@Z */
2126 FILE* __cdecl
___Fiopen(const char *name
, int mode
)
2128 wchar_t nameW
[FILENAME_MAX
];
2130 TRACE("(%p %d)\n", name
, mode
);
2132 if(!MultiByteToWideChar(CP_ACP
, 0, name
, -1, nameW
, FILENAME_MAX
-1))
2134 return _Fiopen_wchar(nameW
, mode
, _SH_DENYNO
);
2137 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDH@Z */
2138 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDH@Z */
2139 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDI@Z */
2140 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDI@Z */
2141 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode
, 12)
2142 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_mode(basic_filebuf_char
*this, const char *name
, unsigned int mode
)
2146 TRACE("(%p %s %d)\n", this, name
, mode
);
2148 if(basic_filebuf_char_is_open(this))
2150 if(!(f
= ___Fiopen(name
, mode
)))
2153 basic_filebuf_char__Init(this, f
, INITFL_open
);
2154 basic_filebuf_char__Initcvt(this);
2158 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDF@Z */
2159 /* ?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QEAAPEAV12@PEBDF@Z */
2160 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_open_mode_old
, 12)
2161 basic_filebuf_char
* __thiscall
basic_filebuf_char_open_mode_old(basic_filebuf_char
*this, const char *name
, short mode
)
2163 return basic_filebuf_char_open_mode(this, name
, mode
);
2166 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2167 /* ?overflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2168 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_overflow
, 8)
2169 int __thiscall
basic_filebuf_char_overflow(basic_filebuf_char
*this, int c
)
2171 char *ptr
, ch
= c
, *to_next
;
2172 const char *from_next
;
2176 TRACE("(%p %d)\n", this, c
);
2178 if(!basic_filebuf_char_is_open(this))
2184 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
2187 MSVCP_basic_string_char_clear(this->str
);
2188 MSVCP_basic_string_char_append_len_ch(this->str
, 8, '\0');
2189 ptr
= this->str
->ptr
;
2190 ret
= codecvt_char_out(this->cvt
, &this->state
, from_next
, &ch
+1, &from_next
,
2191 ptr
, ptr
+MSVCP_basic_string_char_length(this->str
), &to_next
);
2194 case CODECVT_partial
:
2195 if(from_next
== &ch
)
2198 if(!fwrite(ptr
, to_next
-ptr
, 1, this->file
))
2201 case CODECVT_noconv
:
2202 return fwrite(&ch
, sizeof(char), 1, this->file
) ? c
: EOF
;
2208 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHH@Z */
2209 /* ?pbackfail@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHH@Z */
2210 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_pbackfail
, 8)
2211 int __thiscall
basic_filebuf_char_pbackfail(basic_filebuf_char
*this, int c
)
2213 TRACE("(%p %d)\n", this, c
);
2215 if(!basic_filebuf_char_is_open(this))
2218 if(basic_streambuf_char_gptr(&this->base
)>basic_streambuf_char_eback(&this->base
)
2219 && (c
==EOF
|| (int)(unsigned char)basic_streambuf_char_gptr(&this->base
)[-1]==c
)) {
2220 basic_streambuf_char__Gndec(&this->base
);
2221 return c
==EOF
? !c
: c
;
2222 }else if(c
== EOF
) {
2224 }else if(!this->cvt
) {
2225 return ungetc(c
, this->file
);
2226 }else if(MSVCP_basic_string_char_length(this->str
)) {
2230 b
= e
+this->str
->size
-1;
2231 for(cur
= b
; cur
>=e
; cur
--) {
2232 if(ungetc(*cur
, this->file
) == EOF
) {
2233 for(; cur
<=b
; cur
++)
2238 MSVCP_basic_string_char_clear(this->str
);
2239 this->state
= this->state0
;
2246 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2247 /* ?uflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2248 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_uflow
, 4)
2249 int __thiscall
basic_filebuf_char_uflow(basic_filebuf_char
*this)
2252 const char *buf_next
;
2255 TRACE("(%p)\n", this);
2257 if(!basic_filebuf_char_is_open(this))
2260 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
2261 return (unsigned char)*basic_streambuf_char__Gninc(&this->base
);
2263 c
= fgetc(this->file
);
2264 if(!this->cvt
|| c
==EOF
)
2267 MSVCP_basic_string_char_clear(this->str
);
2268 this->state0
= this->state
;
2270 MSVCP_basic_string_char_append_ch(this->str
, c
);
2271 this->state
= this->state0
;
2273 switch(codecvt_char_in(this->cvt
, &this->state
, this->str
->ptr
,
2274 this->str
->ptr
+this->str
->size
, &buf_next
, &ch
, &ch
+1, &to_next
)) {
2275 case CODECVT_partial
:
2277 case CODECVT_noconv
:
2278 return (unsigned char)this->str
->ptr
[0];
2280 return (unsigned char)ch
;
2285 c
= fgetc(this->file
);
2291 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2292 /* ?underflow@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2293 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_underflow
, 4)
2294 int __thiscall
basic_filebuf_char_underflow(basic_filebuf_char
*this)
2298 TRACE("(%p)\n", this);
2300 if(basic_streambuf_char_gptr(&this->base
) < basic_streambuf_char_egptr(&this->base
))
2301 return (unsigned char)*basic_streambuf_char_gptr(&this->base
);
2303 ret
= call_basic_streambuf_char_uflow(&this->base
);
2305 ret
= call_basic_streambuf_char_pbackfail(&this->base
, ret
);
2309 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2310 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
2311 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2312 /* ?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2313 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekoff
, 20)
2314 fpos_int
* __thiscall
basic_filebuf_char_seekoff(basic_filebuf_char
*this,
2315 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2319 TRACE("(%p %p %Id %d %d)\n", this, ret
, off
, way
, mode
);
2321 if(!basic_filebuf_char_is_open(this) || fseek(this->file
, off
, way
)) {
2328 fgetpos(this->file
, &pos
);
2331 ret
->state
= this->state
;
2335 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2336 /* ?seekpos@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2337 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_seekpos
, 36)
2338 fpos_int
* __thiscall
basic_filebuf_char_seekpos(basic_filebuf_char
*this,
2339 fpos_int
*ret
, fpos_int pos
, int mode
)
2343 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
2345 if(!basic_filebuf_char_is_open(this) || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
2346 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
2353 fgetpos(this->file
, &fpos
);
2356 ret
->state
= this->state
;
2360 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PADH@Z */
2361 /* ?setbuf@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAD_J@Z */
2362 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_setbuf
, 12)
2363 basic_streambuf_char
* __thiscall
basic_filebuf_char_setbuf(basic_filebuf_char
*this, char *buf
, streamsize count
)
2365 TRACE("(%p %p %Id)\n", this, buf
, count
);
2367 if(!basic_filebuf_char_is_open(this))
2370 if(setvbuf(this->file
, buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
))
2373 basic_filebuf_char__Init(this, this->file
, INITFL_open
);
2377 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAEHXZ */
2378 /* ?sync@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MEAAHXZ */
2379 DEFINE_THISCALL_WRAPPER(basic_filebuf_char_sync
, 4)
2380 int __thiscall
basic_filebuf_char_sync(basic_filebuf_char
*this)
2382 TRACE("(%p)\n", this);
2384 if(!basic_filebuf_char_is_open(this))
2387 if(call_basic_streambuf_char_overflow(&this->base
, EOF
) == EOF
)
2389 return fflush(this->file
);
2392 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@23@@Z@4HA */
2393 /* ?_Stinit@?1??_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@23@@Z@4HA */
2394 int basic_filebuf_short__Init__Stinit
= 0;
2396 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXPAU_iobuf@@W4_Initfl@12@@Z */
2397 /* ?_Init@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXPEAU_iobuf@@W4_Initfl@12@@Z */
2398 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Init
, 12)
2399 void __thiscall
basic_filebuf_short__Init(basic_filebuf_wchar
*this, FILE *file
, basic_filebuf__Initfl which
)
2401 TRACE("(%p %p %d)\n", this, file
, which
);
2404 this->state0
= basic_filebuf_short__Init__Stinit
;
2405 this->state
= basic_filebuf_short__Init__Stinit
;
2406 if(which
== INITFL_new
)
2408 this->close
= (which
== INITFL_open
);
2411 basic_streambuf_wchar__Init_empty(&this->base
);
2414 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IAEXXZ */
2415 /* ?_Initcvt@?$basic_filebuf@GU?$char_traits@G@std@@@std@@IEAAXXZ */
2416 DEFINE_THISCALL_WRAPPER(basic_filebuf_short__Initcvt
, 4)
2417 void __thiscall
basic_filebuf_short__Initcvt(basic_filebuf_wchar
*this)
2419 codecvt_wchar
*cvt
= codecvt_short_use_facet(IOS_LOCALE(&this->base
));
2421 TRACE("(%p)\n", this);
2423 if(codecvt_base_always_noconv(&cvt
->base
)) {
2426 basic_streambuf_wchar__Init_empty(&this->base
);
2431 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@XZ */
2432 /* ?close@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@XZ */
2433 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_close
, 4)
2434 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_close(basic_filebuf_wchar
*this)
2436 basic_filebuf_wchar
*ret
= this;
2438 TRACE("(%p)\n", this);
2440 if(!this->file
|| fclose(this->file
))
2443 basic_filebuf_short__Init(this, NULL
, INITFL_close
);
2447 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z */
2448 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@PEAU_iobuf@@@Z */
2449 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_file
, 8)
2450 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor_file(basic_filebuf_wchar
*this, FILE *file
)
2452 TRACE("(%p %p)\n", this, file
);
2454 basic_streambuf_short_ctor(&this->base
);
2455 this->base
.vtable
= &basic_filebuf_short_vtable
;
2457 locale_ctor(&this->loc
);
2458 basic_filebuf_short__Init(this, file
, INITFL_new
);
2462 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEXXZ */
2463 /* ??_F?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAXXZ */
2464 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor
, 4)
2465 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor(basic_filebuf_wchar
*this)
2467 return basic_filebuf_short_ctor_file(this, NULL
);
2470 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
2471 /* ??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
2472 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_ctor_uninitialized
, 8)
2473 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_ctor_uninitialized(basic_filebuf_wchar
*this, int uninitialized
)
2475 TRACE("(%p %d)\n", this, uninitialized
);
2477 basic_streambuf_short_ctor_uninitialized(&this->base
, 0);
2478 this->base
.vtable
= &basic_filebuf_short_vtable
;
2479 locale_ctor(&this->loc
);
2483 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UAE@XZ */
2484 /* ??1?$basic_filebuf@GU?$char_traits@G@std@@@std@@UEAA@XZ */
2485 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_dtor
, 4)
2486 void __thiscall
basic_filebuf_short_dtor(basic_filebuf_wchar
*this)
2488 TRACE("(%p)\n", this);
2491 basic_filebuf_short_close(this);
2493 MSVCP_basic_string_char_dtor(this->str
);
2494 operator_delete(this->str
);
2496 locale_dtor(&this->loc
);
2497 basic_streambuf_wchar_dtor(&this->base
);
2500 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_vector_dtor
, 8)
2501 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_vector_dtor(basic_filebuf_wchar
*this, unsigned int flags
)
2503 TRACE("(%p %x)\n", this, flags
);
2505 /* we have an array, with the number of elements stored before the first object */
2506 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
2508 for(i
=*ptr
-1; i
>=0; i
--)
2509 basic_filebuf_short_dtor(this+i
);
2510 operator_delete(ptr
);
2512 basic_filebuf_short_dtor(this);
2514 operator_delete(this);
2520 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QBE_NXZ */
2521 /* ?is_open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
2522 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_is_open
, 4)
2523 bool __thiscall
basic_filebuf_short_is_open(const basic_filebuf_wchar
*this)
2525 TRACE("(%p)\n", this);
2526 return this->file
!= NULL
;
2529 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDH@Z */
2530 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDH@Z */
2531 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode
, 12)
2532 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open_mode(basic_filebuf_wchar
*this, const char *name
, unsigned int mode
)
2534 wchar_t nameW
[FILENAME_MAX
];
2537 TRACE("(%p %p %u)\n", this, name
, mode
);
2539 if(basic_filebuf_short_is_open(this))
2542 if(mbstowcs_s(NULL
, nameW
, FILENAME_MAX
, name
, FILENAME_MAX
-1) != 0)
2545 if(!(f
= _Fiopen_wchar(nameW
, mode
, SH_DENYNO
)))
2548 basic_filebuf_short__Init(this, f
, INITFL_open
);
2549 basic_filebuf_short__Initcvt(this);
2553 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
2554 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
2555 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_open_mode_old
, 12)
2556 basic_filebuf_wchar
* __thiscall
basic_filebuf_short_open_mode_old(basic_filebuf_wchar
*this, const char *name
, short mode
)
2558 TRACE("(%p %p %d)\n", this, name
, mode
);
2559 return basic_filebuf_short_open_mode(this, name
, mode
);
2562 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
2563 /* ?overflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
2564 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_overflow
, 8)
2565 unsigned short __thiscall
basic_filebuf_short_overflow(basic_filebuf_wchar
*this, unsigned short c
)
2567 char *ptr
, *to_next
;
2569 const wchar_t *from_next
;
2573 TRACE("(%p %d)\n", this, c
);
2575 if(!basic_filebuf_short_is_open(this))
2581 return fwrite(&ch
, sizeof(wchar_t), 1, this->file
) ? c
: WEOF
;
2584 MSVCP_basic_string_char_clear(this->str
);
2585 MSVCP_basic_string_char_append_len_ch(this->str
, 8, '\0');
2586 ptr
= this->str
->ptr
;
2587 ret
= codecvt_wchar_out(this->cvt
, &this->state
, &ch
, &ch
+1, &from_next
,
2588 ptr
, ptr
+MSVCP_basic_string_char_length(this->str
), &to_next
);
2591 case CODECVT_partial
:
2592 if(from_next
== &ch
)
2596 if(!fwrite(ptr
, to_next
-ptr
, 1, this->file
))
2599 case CODECVT_noconv
:
2600 return fwrite(&ch
, sizeof(wchar_t), 1, this->file
) ? c
: WEOF
;
2606 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGG@Z */
2607 /* ?pbackfail@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGG@Z */
2608 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_pbackfail
, 8)
2609 unsigned short __thiscall
basic_filebuf_short_pbackfail(basic_filebuf_wchar
*this, unsigned short c
)
2611 TRACE("(%p %d)\n", this, c
);
2613 if(!basic_filebuf_short_is_open(this))
2616 if(basic_streambuf_wchar_gptr(&this->base
)>basic_streambuf_wchar_eback(&this->base
)
2617 && (c
==WEOF
|| basic_streambuf_wchar_gptr(&this->base
)[-1]==c
)) {
2618 basic_streambuf_wchar__Gndec(&this->base
);
2619 return c
==WEOF
? !c
: c
;
2620 }else if(c
== WEOF
) {
2622 }else if(!this->cvt
) {
2623 return ungetwc(c
, this->file
);
2624 }else if(MSVCP_basic_string_char_length(this->str
)) {
2628 b
= e
+this->str
->size
-1;
2629 for(cur
= b
; cur
>=e
; cur
--) {
2630 if(ungetc(*cur
, this->file
) == EOF
) {
2631 for(; cur
<=b
; cur
++)
2636 MSVCP_basic_string_char_clear(this->str
);
2637 this->state
= this->state0
;
2644 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
2645 /* ?uflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
2646 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_uflow
, 4)
2647 unsigned short __thiscall
basic_filebuf_short_uflow(basic_filebuf_wchar
*this)
2649 wchar_t ch
, *to_next
;
2650 const char *buf_next
;
2653 TRACE("(%p)\n", this);
2655 if(!basic_filebuf_short_is_open(this))
2658 if(basic_streambuf_wchar_gptr(&this->base
) < basic_streambuf_wchar_egptr(&this->base
))
2659 return *basic_streambuf_wchar__Gninc(&this->base
);
2662 return fgetwc(this->file
);
2664 MSVCP_basic_string_char_clear(this->str
);
2665 this->state0
= this->state
;
2667 if((c
= fgetc(this->file
)) == EOF
)
2669 MSVCP_basic_string_char_append_ch(this->str
, c
);
2670 this->state
= this->state0
;
2672 switch(codecvt_wchar_in(this->cvt
, &this->state
, this->str
->ptr
,
2673 this->str
->ptr
+this->str
->size
, &buf_next
, &ch
, &ch
+1, &to_next
)) {
2674 case CODECVT_partial
:
2676 case CODECVT_noconv
:
2677 if(this->str
->size
< sizeof(unsigned short)/sizeof(char))
2679 return *(unsigned short*)this->str
->ptr
;
2681 return (unsigned short)ch
;
2688 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEGXZ */
2689 /* ?underflow@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAGXZ */
2690 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_underflow
, 4)
2691 unsigned short __thiscall
basic_filebuf_short_underflow(basic_filebuf_wchar
*this)
2695 TRACE("(%p)\n", this);
2697 if(basic_streambuf_wchar_gptr(&this->base
) < basic_streambuf_wchar_egptr(&this->base
))
2698 return *basic_streambuf_wchar_gptr(&this->base
);
2700 ret
= call_basic_streambuf_wchar_uflow(&this->base
);
2702 ret
= call_basic_streambuf_wchar_pbackfail(&this->base
, ret
);
2706 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
2707 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
2708 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
2709 /* ?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
2710 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_seekoff
, 20)
2711 fpos_int
* __thiscall
basic_filebuf_short_seekoff(basic_filebuf_wchar
*this,
2712 fpos_int
*ret
, streamoff off
, int way
, int mode
)
2716 TRACE("(%p %p %Id %d %d)\n", this, ret
, off
, way
, mode
);
2718 if(!basic_filebuf_short_is_open(this) || fseek(this->file
, off
, way
)) {
2725 fgetpos(this->file
, &pos
);
2728 ret
->state
= this->state
;
2732 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
2733 /* ?seekpos@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
2734 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_seekpos
, 36)
2735 fpos_int
* __thiscall
basic_filebuf_short_seekpos(basic_filebuf_wchar
*this,
2736 fpos_int
*ret
, fpos_int pos
, int mode
)
2740 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
2742 if(!basic_filebuf_short_is_open(this) || fseek(this->file
, (LONG
)pos
.pos
, SEEK_SET
)
2743 || (pos
.off
&& fseek(this->file
, pos
.off
, SEEK_CUR
))) {
2750 fgetpos(this->file
, &fpos
);
2753 ret
->state
= this->state
;
2757 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAGH@Z */
2758 /* ?setbuf@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAG_J@Z */
2759 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_setbuf
, 12)
2760 basic_streambuf_wchar
* __thiscall
basic_filebuf_short_setbuf(basic_filebuf_wchar
*this, wchar_t *buf
, streamsize count
)
2762 TRACE("(%p %p %Id)\n", this, buf
, count
);
2764 if(!basic_filebuf_short_is_open(this))
2767 if(setvbuf(this->file
, (char*)buf
, (buf
==NULL
&& count
==0) ? _IONBF
: _IOFBF
, count
*sizeof(wchar_t)))
2770 basic_filebuf_short__Init(this, this->file
, INITFL_open
);
2774 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAEHXZ */
2775 /* ?sync@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MEAAHXZ */
2776 DEFINE_THISCALL_WRAPPER(basic_filebuf_short_sync
, 4)
2777 int __thiscall
basic_filebuf_short_sync(basic_filebuf_wchar
*this)
2779 TRACE("(%p)\n", this);
2781 if(!basic_filebuf_short_is_open(this))
2784 if(call_basic_streambuf_wchar_overflow(&this->base
, WEOF
) == WEOF
)
2786 return fflush(this->file
);
2789 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
2790 /* ?_Getstate@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
2791 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEHH@Z */
2792 /* ?_Mode@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAAHH@Z */
2793 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Getstate
, 8)
2794 int __thiscall
basic_stringbuf_char__Getstate(basic_stringbuf_char
*this, IOSB_openmode mode
)
2798 if(!(mode
& OPENMODE_in
))
2799 state
|= STRINGBUF_no_read
;
2801 if(!(mode
& OPENMODE_out
))
2802 state
|= STRINGBUF_no_write
;
2804 if(mode
& OPENMODE_ate
)
2805 state
|= STRINGBUF_at_end
;
2807 if(mode
& OPENMODE_app
)
2808 state
|= STRINGBUF_append
;
2813 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXPBDIH@Z */
2814 /* ?_Init@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXPEBD_KH@Z */
2815 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Init
, 16)
2816 void __thiscall
basic_stringbuf_char__Init(basic_stringbuf_char
*this, const char *str
, size_t count
, int state
)
2818 TRACE("(%p, %p, %Iu, %d)\n", this, str
, count
, state
);
2820 basic_streambuf_char__Init_empty(&this->base
);
2822 this->state
= state
;
2823 this->seekhigh
= NULL
;
2826 char *buf
= operator_new(count
);
2828 memcpy(buf
, str
, count
);
2829 this->seekhigh
= buf
+ count
;
2831 this->state
|= STRINGBUF_allocated
;
2833 if(!(state
& STRINGBUF_no_read
))
2834 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+ count
);
2836 if(!(state
& STRINGBUF_no_write
)) {
2837 basic_streambuf_char_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
2839 if(!basic_streambuf_char_gptr(&this->base
))
2840 basic_streambuf_char_setg(&this->base
, buf
, 0, buf
);
2845 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
2846 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
2847 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_str
, 12)
2848 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_str(basic_stringbuf_char
*this,
2849 const basic_string_char
*str
, IOSB_openmode mode
)
2851 TRACE("(%p %p %d)\n", this, str
, mode
);
2853 basic_streambuf_char_ctor(&this->base
);
2854 this->base
.vtable
= &basic_stringbuf_char_vtable
;
2856 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
),
2857 str
->size
, basic_stringbuf_char__Getstate(this, mode
));
2861 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
2862 /* ??0?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
2863 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor_mode
, 8)
2864 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor_mode(
2865 basic_stringbuf_char
*this, IOSB_openmode mode
)
2867 TRACE("(%p %d)\n", this, mode
);
2869 basic_streambuf_char_ctor(&this->base
);
2870 this->base
.vtable
= &basic_stringbuf_char_vtable
;
2872 basic_stringbuf_char__Init(this, NULL
, 0, basic_stringbuf_char__Getstate(this, mode
));
2876 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
2877 /* ??_F?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
2878 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_ctor
, 4)
2879 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_ctor(basic_stringbuf_char
*this)
2881 return basic_stringbuf_char_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
2884 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXXZ */
2885 /* ?_Tidy@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAXXZ */
2886 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char__Tidy
, 4)
2887 void __thiscall
basic_stringbuf_char__Tidy(basic_stringbuf_char
*this)
2889 TRACE("(%p)\n", this);
2891 if(this->state
& STRINGBUF_allocated
) {
2892 operator_delete(basic_streambuf_char_eback(&this->base
));
2893 this->seekhigh
= NULL
;
2894 this->state
&= ~STRINGBUF_allocated
;
2897 basic_streambuf_char__Init_empty(&this->base
);
2900 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
2901 /* ??1?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
2902 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_dtor
, 4)
2903 void __thiscall
basic_stringbuf_char_dtor(basic_stringbuf_char
*this)
2905 TRACE("(%p)\n", this);
2907 basic_stringbuf_char__Tidy(this);
2908 basic_streambuf_char_dtor(&this->base
);
2911 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_vector_dtor
, 8)
2912 basic_stringbuf_char
* __thiscall
basic_stringbuf_char_vector_dtor(basic_stringbuf_char
*this, unsigned int flags
)
2914 TRACE("(%p %x)\n", this, flags
);
2917 /* we have an array, with the number of elements stored before the first object */
2918 INT_PTR i
, *ptr
= (INT_PTR
*) this - 1;
2920 for (i
= *ptr
- 1; i
>= 0; i
--)
2921 basic_stringbuf_char_dtor(this+i
);
2923 operator_delete(ptr
);
2925 basic_stringbuf_char_dtor(this);
2928 operator_delete(this);
2934 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
2935 /* ?overflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
2936 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_overflow
, 8)
2937 int __thiscall
basic_stringbuf_char_overflow(basic_stringbuf_char
*this, int meta
)
2939 size_t oldsize
, size
;
2942 TRACE("(%p %x)\n", this, meta
);
2946 if(this->state
& STRINGBUF_no_write
)
2949 ptr
= basic_streambuf_char_pptr(&this->base
);
2950 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
2951 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
2952 this->seekhigh
, basic_streambuf_char_epptr(&this->base
));
2954 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
2955 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = meta
);
2957 oldsize
= (ptr
? basic_streambuf_char_epptr(&this->base
)-basic_streambuf_char_eback(&this->base
): 0);
2960 buf
= operator_new(size
);
2963 this->seekhigh
= buf
;
2964 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
2965 if(this->state
& STRINGBUF_no_read
)
2966 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
2968 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
+1);
2970 this->state
|= STRINGBUF_allocated
;
2972 ptr
= basic_streambuf_char_eback(&this->base
);
2973 memcpy(buf
, ptr
, oldsize
);
2975 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
2976 basic_streambuf_char_setp_next(&this->base
, buf
,
2977 buf
+(basic_streambuf_char_pptr(&this->base
)-ptr
), buf
+size
);
2978 if(this->state
& STRINGBUF_no_read
)
2979 basic_streambuf_char_setg(&this->base
, buf
, NULL
, buf
);
2981 basic_streambuf_char_setg(&this->base
, buf
,
2982 buf
+(basic_streambuf_char_gptr(&this->base
)-ptr
),
2983 basic_streambuf_char_pptr(&this->base
)+1);
2985 operator_delete(ptr
);
2988 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = meta
);
2991 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHH@Z */
2992 /* ?pbackfail@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHH@Z */
2993 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_pbackfail
, 8)
2994 int __thiscall
basic_stringbuf_char_pbackfail(basic_stringbuf_char
*this, int c
)
2998 TRACE("(%p %x)\n", this, c
);
3000 cur
= basic_streambuf_char_gptr(&this->base
);
3001 if(!cur
|| cur
==basic_streambuf_char_eback(&this->base
)
3002 || (c
!=EOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
3007 basic_streambuf_char_gbump(&this->base
, -1);
3008 return c
==EOF
? !EOF
: c
;
3011 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAEHXZ */
3012 /* ?underflow@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAAHXZ */
3013 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_underflow
, 4)
3014 int __thiscall
basic_stringbuf_char_underflow(basic_stringbuf_char
*this)
3018 TRACE("(%p)\n", this);
3020 cur
= basic_streambuf_char_gptr(&this->base
);
3021 if(!cur
|| this->state
&STRINGBUF_no_read
)
3024 ptr
= basic_streambuf_char_pptr(&this->base
);
3025 if(this->seekhigh
< ptr
)
3026 this->seekhigh
= ptr
;
3028 ptr
= basic_streambuf_char_egptr(&this->base
);
3029 if(this->seekhigh
> ptr
)
3030 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
), cur
, this->seekhigh
);
3032 if(cur
< this->seekhigh
)
3033 return (unsigned char)*cur
;
3037 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3038 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3039 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3040 /* ?seekoff@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3041 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekoff
, 20)
3042 fpos_int
* __thiscall
basic_stringbuf_char_seekoff(basic_stringbuf_char
*this,
3043 fpos_int
*ret
, streamoff off
, int way
, int mode
)
3045 char *beg
, *cur_r
, *cur_w
;
3047 TRACE("(%p %p %Id %d %d)\n", this, ret
, off
, way
, mode
);
3049 cur_w
= basic_streambuf_char_pptr(&this->base
);
3050 if(cur_w
> this->seekhigh
)
3051 this->seekhigh
= cur_w
;
3057 beg
= basic_streambuf_char_eback(&this->base
);
3058 cur_r
= basic_streambuf_char_gptr(&this->base
);
3059 if((mode
& OPENMODE_in
) && cur_r
) {
3060 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
3062 else if(way
== SEEKDIR_end
)
3063 off
+= this->seekhigh
-beg
;
3064 else if(way
!= SEEKDIR_beg
)
3067 if(off
<0 || off
>this->seekhigh
-beg
) {
3070 basic_streambuf_char_gbump(&this->base
, beg
-cur_r
+off
);
3071 if((mode
& OPENMODE_out
) && cur_w
) {
3072 basic_streambuf_char_setp_next(&this->base
, beg
,
3073 basic_streambuf_char_gptr(&this->base
),
3074 basic_streambuf_char_epptr(&this->base
));
3077 }else if((mode
& OPENMODE_out
) && cur_w
) {
3078 if(way
== SEEKDIR_cur
)
3080 else if(way
== SEEKDIR_end
)
3081 off
+= this->seekhigh
-beg
;
3082 else if(way
!= SEEKDIR_beg
)
3085 if(off
<0 || off
>this->seekhigh
-beg
)
3088 basic_streambuf_char_pbump(&this->base
, beg
-cur_w
+off
);
3097 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3098 /* ?seekpos@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3099 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_seekpos
, 36)
3100 fpos_int
* __thiscall
basic_stringbuf_char_seekpos(basic_stringbuf_char
*this,
3101 fpos_int
*ret
, fpos_int pos
, int mode
)
3103 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
3105 if(pos
.off
==-1 && pos
.pos
==0 && pos
.state
==0) {
3110 return basic_stringbuf_char_seekoff(this, ret
, pos
.pos
+pos
.off
, SEEKDIR_beg
, mode
);
3113 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
3114 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
3115 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_set
, 8)
3116 void __thiscall
basic_stringbuf_char_str_set(basic_stringbuf_char
*this, const basic_string_char
*str
)
3118 TRACE("(%p %p)\n", this, str
);
3120 basic_stringbuf_char__Tidy(this);
3121 basic_stringbuf_char__Init(this, MSVCP_basic_string_char_c_str(str
), str
->size
, this->state
);
3124 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3125 /* ?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
3126 DEFINE_THISCALL_WRAPPER(basic_stringbuf_char_str_get
, 8)
3127 basic_string_char
* __thiscall
basic_stringbuf_char_str_get(const basic_stringbuf_char
*this, basic_string_char
*ret
)
3131 TRACE("(%p)\n", this);
3133 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_char_pptr(&this->base
)) {
3136 ptr
= basic_streambuf_char_pbase(&this->base
);
3137 pptr
= basic_streambuf_char_pptr(&this->base
);
3139 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
3142 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_char_gptr(&this->base
)) {
3143 ptr
= basic_streambuf_char_eback(&this->base
);
3144 return MSVCP_basic_string_char_ctor_cstr_len(ret
, ptr
, basic_streambuf_char_egptr(&this->base
) - ptr
);
3147 return MSVCP_basic_string_char_ctor(ret
);
3150 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3151 /* ?_Getstate@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3152 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AAEHH@Z */
3153 /* ?_Mode@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@AEAAHH@Z */
3154 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short__Getstate
, 8)
3155 int __thiscall
basic_stringbuf_short__Getstate(basic_stringbuf_wchar
*this, IOSB_openmode mode
)
3159 if(!(mode
& OPENMODE_in
))
3160 state
|= STRINGBUF_no_read
;
3162 if(!(mode
& OPENMODE_out
))
3163 state
|= STRINGBUF_no_write
;
3165 if(mode
& OPENMODE_ate
)
3166 state
|= STRINGBUF_at_end
;
3168 if(mode
& OPENMODE_app
)
3169 state
|= STRINGBUF_append
;
3174 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXPBGIH@Z */
3175 /* ?_Init@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXPEBG_KH@Z */
3176 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short__Init
, 16)
3177 void __thiscall
basic_stringbuf_short__Init(basic_stringbuf_wchar
*this, const wchar_t *str
, size_t count
, int state
)
3179 TRACE("(%p, %p, %Iu, %d)\n", this, str
, count
, state
);
3181 basic_streambuf_wchar__Init_empty(&this->base
);
3183 this->state
= state
;
3184 this->seekhigh
= NULL
;
3187 wchar_t *buf
= operator_new(count
*sizeof(wchar_t));
3189 memcpy(buf
, str
, count
*sizeof(wchar_t));
3190 this->seekhigh
= buf
+ count
;
3192 this->state
|= STRINGBUF_allocated
;
3194 if(!(state
& STRINGBUF_no_read
))
3195 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+ count
);
3197 if(!(state
& STRINGBUF_no_write
)) {
3198 basic_streambuf_wchar_setp_next(&this->base
, buf
, (state
& STRINGBUF_at_end
) ? buf
+ count
: buf
, buf
+ count
);
3200 if(!basic_streambuf_wchar_gptr(&this->base
))
3201 basic_streambuf_wchar_setg(&this->base
, buf
, 0, buf
);
3206 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
3207 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
3208 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_str
, 12)
3209 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_str(basic_stringbuf_wchar
*this,
3210 const basic_string_wchar
*str
, IOSB_openmode mode
)
3212 TRACE("(%p %p %d)\n", this, str
, mode
);
3214 basic_streambuf_short_ctor(&this->base
);
3215 this->base
.vtable
= &basic_stringbuf_short_vtable
;
3217 basic_stringbuf_short__Init(this, MSVCP_basic_string_wchar_c_str(str
),
3218 str
->size
, basic_stringbuf_short__Getstate(this, mode
));
3222 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
3223 /* ??0?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
3224 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor_mode
, 8)
3225 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor_mode(
3226 basic_stringbuf_wchar
*this, IOSB_openmode mode
)
3228 TRACE("(%p %d)\n", this, mode
);
3230 basic_streambuf_short_ctor(&this->base
);
3231 this->base
.vtable
= &basic_stringbuf_short_vtable
;
3233 basic_stringbuf_short__Init(this, NULL
, 0, basic_stringbuf_short__Getstate(this, mode
));
3237 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
3238 /* ??_F?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
3239 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_ctor
, 4)
3240 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_ctor(basic_stringbuf_wchar
*this)
3242 return basic_stringbuf_short_ctor_mode(this, OPENMODE_in
|OPENMODE_out
);
3245 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXXZ */
3246 /* ?_Tidy@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAXXZ */
3247 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short__Tidy
, 4)
3248 void __thiscall
basic_stringbuf_short__Tidy(basic_stringbuf_wchar
*this)
3250 TRACE("(%p)\n", this);
3252 if(this->state
& STRINGBUF_allocated
) {
3253 operator_delete(basic_streambuf_wchar_eback(&this->base
));
3254 this->seekhigh
= NULL
;
3255 this->state
&= ~STRINGBUF_allocated
;
3258 basic_streambuf_wchar__Init_empty(&this->base
);
3261 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
3262 /* ??1?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
3263 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_dtor
, 4)
3264 void __thiscall
basic_stringbuf_short_dtor(basic_stringbuf_wchar
*this)
3266 TRACE("(%p)\n", this);
3268 basic_stringbuf_short__Tidy(this);
3269 basic_streambuf_wchar_dtor(&this->base
);
3272 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_vector_dtor
, 8)
3273 basic_stringbuf_wchar
* __thiscall
basic_stringbuf_short_vector_dtor(basic_stringbuf_wchar
*this, unsigned int flags
)
3275 TRACE("(%p %x)\n", this, flags
);
3278 /* we have an array, with the number of elements stored before the first object */
3279 INT_PTR i
, *ptr
= (INT_PTR
*) this - 1;
3281 for (i
= *ptr
- 1; i
>= 0; i
--)
3282 basic_stringbuf_short_dtor(this+i
);
3284 operator_delete(ptr
);
3286 basic_stringbuf_short_dtor(this);
3289 operator_delete(this);
3295 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
3296 /* ?overflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
3297 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_overflow
, 8)
3298 unsigned short __thiscall
basic_stringbuf_short_overflow(basic_stringbuf_wchar
*this, unsigned short meta
)
3300 size_t oldsize
, size
;
3303 TRACE("(%p %x)\n", this, meta
);
3307 if(this->state
& STRINGBUF_no_write
)
3310 ptr
= basic_streambuf_wchar_pptr(&this->base
);
3311 if((this->state
&STRINGBUF_append
) && ptr
<this->seekhigh
)
3312 basic_streambuf_wchar_setp_next(&this->base
, basic_streambuf_wchar_pbase(&this->base
),
3313 this->seekhigh
, basic_streambuf_wchar_epptr(&this->base
));
3315 if(ptr
&& ptr
<basic_streambuf_wchar_epptr(&this->base
))
3316 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
3318 oldsize
= (ptr
? basic_streambuf_wchar_epptr(&this->base
)-basic_streambuf_wchar_eback(&this->base
): 0);
3321 buf
= operator_new(size
*sizeof(wchar_t));
3324 this->seekhigh
= buf
;
3325 basic_streambuf_wchar_setp(&this->base
, buf
, buf
+size
);
3326 if(this->state
& STRINGBUF_no_read
)
3327 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
3329 basic_streambuf_wchar_setg(&this->base
, buf
, buf
, buf
+1);
3331 this->state
|= STRINGBUF_allocated
;
3333 ptr
= basic_streambuf_wchar_eback(&this->base
);
3334 memcpy(buf
, ptr
, oldsize
*sizeof(wchar_t));
3336 this->seekhigh
= buf
+(this->seekhigh
-ptr
);
3337 basic_streambuf_wchar_setp_next(&this->base
, buf
,
3338 buf
+(basic_streambuf_wchar_pptr(&this->base
)-ptr
), buf
+size
);
3339 if(this->state
& STRINGBUF_no_read
)
3340 basic_streambuf_wchar_setg(&this->base
, buf
, NULL
, buf
);
3342 basic_streambuf_wchar_setg(&this->base
, buf
,
3343 buf
+(basic_streambuf_wchar_gptr(&this->base
)-ptr
),
3344 basic_streambuf_wchar_pptr(&this->base
)+1);
3346 operator_delete(ptr
);
3349 return (*basic_streambuf_wchar__Pninc(&this->base
) = meta
);
3352 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGG@Z */
3353 /* ?pbackfail@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGG@Z */
3354 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_pbackfail
, 8)
3355 unsigned short __thiscall
basic_stringbuf_short_pbackfail(basic_stringbuf_wchar
*this, unsigned short c
)
3359 TRACE("(%p %x)\n", this, c
);
3361 cur
= basic_streambuf_wchar_gptr(&this->base
);
3362 if(!cur
|| cur
==basic_streambuf_wchar_eback(&this->base
)
3363 || (c
!=WEOF
&& c
!=cur
[-1] && this->state
&STRINGBUF_no_write
))
3368 basic_streambuf_wchar_gbump(&this->base
, -1);
3369 return c
==WEOF
? !WEOF
: c
;
3372 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAEGXZ */
3373 /* ?underflow@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAAGXZ */
3374 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_underflow
, 4)
3375 unsigned short __thiscall
basic_stringbuf_short_underflow(basic_stringbuf_wchar
*this)
3379 TRACE("(%p)\n", this);
3381 cur
= basic_streambuf_wchar_gptr(&this->base
);
3382 if(!cur
|| this->state
&STRINGBUF_no_read
)
3385 ptr
= basic_streambuf_wchar_pptr(&this->base
);
3386 if(this->seekhigh
< ptr
)
3387 this->seekhigh
= ptr
;
3389 ptr
= basic_streambuf_wchar_egptr(&this->base
);
3390 if(this->seekhigh
> ptr
)
3391 basic_streambuf_wchar_setg(&this->base
, basic_streambuf_wchar_eback(&this->base
), cur
, this->seekhigh
);
3393 if(cur
< this->seekhigh
)
3398 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
3399 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
3400 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@JHH@Z */
3401 /* ?seekoff@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
3402 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_seekoff
, 20)
3403 fpos_int
* __thiscall
basic_stringbuf_short_seekoff(basic_stringbuf_wchar
*this,
3404 fpos_int
*ret
, streamoff off
, int way
, int mode
)
3406 wchar_t *beg
, *cur_r
, *cur_w
;
3408 TRACE("(%p %p %Id %d %d)\n", this, ret
, off
, way
, mode
);
3410 cur_w
= basic_streambuf_wchar_pptr(&this->base
);
3411 if(cur_w
> this->seekhigh
)
3412 this->seekhigh
= cur_w
;
3418 beg
= basic_streambuf_wchar_eback(&this->base
);
3419 cur_r
= basic_streambuf_wchar_gptr(&this->base
);
3420 if((mode
& OPENMODE_in
) && cur_r
) {
3421 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
3423 else if(way
== SEEKDIR_end
)
3424 off
+= this->seekhigh
-beg
;
3425 else if(way
!= SEEKDIR_beg
)
3428 if(off
<0 || off
>this->seekhigh
-beg
) {
3431 basic_streambuf_wchar_gbump(&this->base
, beg
-cur_r
+off
);
3432 if((mode
& OPENMODE_out
) && cur_w
) {
3433 basic_streambuf_wchar_setp_next(&this->base
, beg
,
3434 basic_streambuf_wchar_gptr(&this->base
),
3435 basic_streambuf_wchar_epptr(&this->base
));
3438 }else if((mode
& OPENMODE_out
) && cur_w
) {
3439 if(way
== SEEKDIR_cur
)
3441 else if(way
== SEEKDIR_end
)
3442 off
+= this->seekhigh
-beg
;
3443 else if(way
!= SEEKDIR_beg
)
3446 if(off
<0 || off
>this->seekhigh
-beg
)
3449 basic_streambuf_wchar_pbump(&this->base
, beg
-cur_w
+off
);
3458 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
3459 /* ?seekpos@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
3460 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_seekpos
, 36)
3461 fpos_int
* __thiscall
basic_stringbuf_short_seekpos(basic_stringbuf_wchar
*this,
3462 fpos_int
*ret
, fpos_int pos
, int mode
)
3464 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
3466 if(pos
.off
==-1 && pos
.pos
==0 && pos
.state
==0) {
3471 return basic_stringbuf_short_seekoff(this, ret
, pos
.pos
+pos
.off
, SEEKDIR_beg
, mode
);
3474 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
3475 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
3476 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_str_set
, 8)
3477 void __thiscall
basic_stringbuf_short_str_set(basic_stringbuf_wchar
*this, const basic_string_wchar
*str
)
3479 TRACE("(%p %p)\n", this, str
);
3481 basic_stringbuf_short__Tidy(this);
3482 basic_stringbuf_short__Init(this, MSVCP_basic_string_wchar_c_str(str
), str
->size
, this->state
);
3485 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3486 /* ?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
3487 DEFINE_THISCALL_WRAPPER(basic_stringbuf_short_str_get
, 8)
3488 basic_string_wchar
* __thiscall
basic_stringbuf_short_str_get(const basic_stringbuf_wchar
*this, basic_string_wchar
*ret
)
3492 TRACE("(%p)\n", this);
3494 if(!(this->state
& STRINGBUF_no_write
) && basic_streambuf_wchar_pptr(&this->base
)) {
3497 ptr
= basic_streambuf_wchar_pbase(&this->base
);
3498 pptr
= basic_streambuf_wchar_pptr(&this->base
);
3500 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, (this->seekhigh
< pptr
? pptr
: this->seekhigh
) - ptr
);
3503 if(!(this->state
& STRINGBUF_no_read
) && basic_streambuf_wchar_gptr(&this->base
)) {
3504 ptr
= basic_streambuf_wchar_eback(&this->base
);
3505 return MSVCP_basic_string_wchar_ctor_cstr_len(ret
, ptr
, basic_streambuf_wchar_egptr(&this->base
) - ptr
);
3508 return MSVCP_basic_string_wchar_ctor(ret
);
3511 /* ??0ios_base@std@@IAE@XZ */
3512 /* ??0ios_base@std@@IEAA@XZ */
3513 DEFINE_THISCALL_WRAPPER(ios_base_ctor
, 4)
3514 ios_base
* __thiscall
ios_base_ctor(ios_base
*this)
3516 TRACE("(%p)\n", this);
3517 this->vtable
= &ios_base_vtable
;
3518 locale_ctor_uninitialized(IOS_LOCALE(this), 0);
3522 /* ??0ios_base@std@@QAE@ABV01@@Z */
3523 /* ??0ios_base@std@@QEAA@AEBV01@@Z */
3524 DEFINE_THISCALL_WRAPPER(ios_base_copy_ctor
, 8)
3525 ios_base
* __thiscall
ios_base_copy_ctor(ios_base
*this, const ios_base
*copy
)
3527 TRACE("(%p %p)\n", this, copy
);
3529 this->vtable
= &ios_base_vtable
;
3533 /* ?_Callfns@ios_base@std@@AAEXW4event@12@@Z */
3534 /* ?_Callfns@ios_base@std@@AEAAXW4event@12@@Z */
3535 DEFINE_THISCALL_WRAPPER(ios_base_Callfns
, 8)
3536 void __thiscall
ios_base_Callfns(ios_base
*this, IOS_BASE_event event
)
3538 IOS_BASE_fnarray
*cur
;
3540 TRACE("(%p %x)\n", this, event
);
3542 for(cur
=this->calls
; cur
; cur
=cur
->next
)
3543 cur
->event_handler(event
, this, cur
->index
);
3546 /* ?_Tidy@ios_base@std@@AAEXXZ */
3547 /* ?_Tidy@ios_base@std@@AEAAXXZ */
3548 DEFINE_THISCALL_WRAPPER(ios_base_Tidy
, 4)
3549 void __thiscall
ios_base_Tidy(ios_base
*this)
3551 IOS_BASE_iosarray
*arr_cur
, *arr_next
;
3552 IOS_BASE_fnarray
*event_cur
, *event_next
;
3554 TRACE("(%p)\n", this);
3556 ios_base_Callfns(this, EVENT_erase_event
);
3558 for(arr_cur
=this->arr
; arr_cur
; arr_cur
=arr_next
) {
3559 arr_next
= arr_cur
->next
;
3560 operator_delete(arr_cur
);
3564 for(event_cur
=this->calls
; event_cur
; event_cur
=event_next
) {
3565 event_next
= event_cur
->next
;
3566 operator_delete(event_cur
);
3571 /* ??1ios_base@std@@UAE@XZ */
3572 /* ??1ios_base@std@@UEAA@XZ */
3573 DEFINE_THISCALL_WRAPPER(ios_base_dtor
, 4)
3574 void __thiscall
ios_base_dtor(ios_base
*this)
3576 TRACE("(%p)\n", this);
3577 locale_dtor(IOS_LOCALE(this));
3578 ios_base_Tidy(this);
3581 DEFINE_THISCALL_WRAPPER(ios_base_vector_dtor
, 8)
3582 ios_base
* __thiscall
ios_base_vector_dtor(ios_base
*this, unsigned int flags
)
3584 TRACE("(%p %x)\n", this, flags
);
3586 /* we have an array, with the number of elements stored before the first object */
3587 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
3589 for(i
=*ptr
-1; i
>=0; i
--)
3590 ios_base_dtor(this+i
);
3591 operator_delete(ptr
);
3593 ios_base_dtor(this);
3595 operator_delete(this);
3601 DEFINE_THISCALL_WRAPPER(iosb_vector_dtor
, 8)
3602 void* __thiscall
iosb_vector_dtor(void *this, unsigned int flags
)
3604 TRACE("(%p %x)\n", this, flags
);
3606 INT_PTR
*ptr
= (INT_PTR
*)this-1;
3607 operator_delete(ptr
);
3610 operator_delete(this);
3616 /* ?_Findarr@ios_base@std@@AAEAAU_Iosarray@12@H@Z */
3617 /* ?_Findarr@ios_base@std@@AEAAAEAU_Iosarray@12@H@Z */
3618 DEFINE_THISCALL_WRAPPER(ios_base_Findarr
, 8)
3619 IOS_BASE_iosarray
* __thiscall
ios_base_Findarr(ios_base
*this, int index
)
3621 IOS_BASE_iosarray
*p
;
3623 TRACE("(%p %d)\n", this, index
);
3625 for(p
=this->arr
; p
; p
=p
->next
) {
3626 if(p
->index
== index
)
3630 for(p
=this->arr
; p
; p
=p
->next
) {
3631 if(!p
->long_val
&& !p
->ptr_val
) {
3637 p
= operator_new(sizeof(IOS_BASE_iosarray
));
3638 p
->next
= this->arr
;
3646 /* ?iword@ios_base@std@@QAEAAJH@Z */
3647 /* ?iword@ios_base@std@@QEAAAEAJH@Z */
3648 DEFINE_THISCALL_WRAPPER(ios_base_iword
, 8)
3649 LONG
* __thiscall
ios_base_iword(ios_base
*this, int index
)
3651 TRACE("(%p %d)\n", this, index
);
3652 return &ios_base_Findarr(this, index
)->long_val
;
3655 /* ?pword@ios_base@std@@QAEAAPAXH@Z */
3656 /* ?pword@ios_base@std@@QEAAAEAPEAXH@Z */
3657 DEFINE_THISCALL_WRAPPER(ios_base_pword
, 8)
3658 void** __thiscall
ios_base_pword(ios_base
*this, int index
)
3660 TRACE("(%p %d)\n", this, index
);
3661 return &ios_base_Findarr(this, index
)->ptr_val
;
3664 /* ?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z */
3665 /* ?register_callback@ios_base@std@@QEAAXP6AXW4event@12@AEAV12@H@ZH@Z */
3666 DEFINE_THISCALL_WRAPPER(ios_base_register_callback
, 12)
3667 void __thiscall
ios_base_register_callback(ios_base
*this, IOS_BASE_event_callback callback
, int index
)
3669 IOS_BASE_fnarray
*event
;
3671 TRACE("(%p %p %d)\n", this, callback
, index
);
3673 event
= operator_new(sizeof(IOS_BASE_fnarray
));
3674 event
->next
= this->calls
;
3675 event
->index
= index
;
3676 event
->event_handler
= callback
;
3677 this->calls
= event
;
3680 /* ?clear@ios_base@std@@QAEXH_N@Z */
3681 /* ?clear@ios_base@std@@QEAAXH_N@Z */
3682 DEFINE_THISCALL_WRAPPER(ios_base_clear_reraise
, 12)
3683 void __thiscall
ios_base_clear_reraise(ios_base
*this, IOSB_iostate state
, bool reraise
)
3685 TRACE("(%p %x %x)\n", this, state
, reraise
);
3687 this->state
= state
& IOSTATE_mask
;
3688 if(!(this->state
& this->except
))
3692 _CxxThrowException(NULL
, NULL
);
3693 else if(this->state
& this->except
& IOSTATE_eofbit
)
3694 throw_failure("eofbit is set");
3695 else if(this->state
& this->except
& IOSTATE_failbit
)
3696 throw_failure("failbit is set");
3697 else if(this->state
& this->except
& IOSTATE_badbit
)
3698 throw_failure("badbit is set");
3699 else if(this->state
& this->except
& IOSTATE__Hardfail
)
3700 throw_failure("_Hardfail is set");
3703 /* ?clear@ios_base@std@@QAEXF@Z */
3704 /* ?clear@ios_base@std@@QEAAXF@Z */
3705 DEFINE_THISCALL_WRAPPER(ios_base_clear
, 8)
3706 void __thiscall
ios_base_clear(ios_base
*this, IOSB_iostate state
)
3708 ios_base_clear_reraise(this, state
, FALSE
);
3711 /* ?exceptions@ios_base@std@@QAEXH@Z */
3712 /* ?exceptions@ios_base@std@@QEAAXH@Z */
3713 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_set
, 8)
3714 void __thiscall
ios_base_exceptions_set(ios_base
*this, IOSB_iostate state
)
3716 TRACE("(%p %x)\n", this, state
);
3717 this->except
= state
& IOSTATE_mask
;
3718 ios_base_clear(this, this->state
);
3721 /* ?exceptions@ios_base@std@@QBEHXZ */
3722 /* ?exceptions@ios_base@std@@QEBAHXZ */
3723 DEFINE_THISCALL_WRAPPER(ios_base_exceptions_get
, 4)
3724 IOSB_iostate __thiscall
ios_base_exceptions_get(ios_base
*this)
3726 TRACE("(%p)\n", this);
3727 return this->except
;
3730 /* ?copyfmt@ios_base@std@@QAEAAV12@ABV12@@Z */
3731 /* ?copyfmt@ios_base@std@@QEAAAEAV12@AEBV12@@Z */
3732 DEFINE_THISCALL_WRAPPER(ios_base_copyfmt
, 8)
3733 ios_base
* __thiscall
ios_base_copyfmt(ios_base
*this, const ios_base
*rhs
)
3735 TRACE("(%p %p)\n", this, rhs
);
3738 IOS_BASE_iosarray
*arr_cur
;
3739 IOS_BASE_fnarray
*event_cur
;
3741 ios_base_Tidy(this);
3743 for(arr_cur
=rhs
->arr
; arr_cur
; arr_cur
=arr_cur
->next
) {
3744 if(arr_cur
->long_val
)
3745 *ios_base_iword(this, arr_cur
->index
) = arr_cur
->long_val
;
3746 if(arr_cur
->ptr_val
)
3747 *ios_base_pword(this, arr_cur
->index
) = arr_cur
->ptr_val
;
3749 this->stdstr
= rhs
->stdstr
;
3750 this->fmtfl
= rhs
->fmtfl
;
3751 this->prec
= rhs
->prec
;
3752 this->wide
= rhs
->wide
;
3753 locale_operator_assign(IOS_LOCALE(this), IOS_LOCALE(rhs
));
3755 for(event_cur
=rhs
->calls
; event_cur
; event_cur
=event_cur
->next
)
3756 ios_base_register_callback(this, event_cur
->event_handler
, event_cur
->index
);
3758 ios_base_Callfns(this, EVENT_copyfmt_event
);
3759 ios_base_exceptions_set(this, rhs
->except
);
3765 /* ??4ios_base@std@@QAEAAV01@ABV01@@Z */
3766 /* ??4ios_base@std@@QEAAAEAV01@AEBV01@@Z */
3767 DEFINE_THISCALL_WRAPPER(ios_base_assign
, 8)
3768 ios_base
* __thiscall
ios_base_assign(ios_base
*this, const ios_base
*right
)
3770 TRACE("(%p %p)\n", this, right
);
3773 this->state
= right
->state
;
3774 ios_base_copyfmt(this, right
);
3780 /* ?fail@ios_base@std@@QBE_NXZ */
3781 /* ?fail@ios_base@std@@QEBA_NXZ */
3782 DEFINE_THISCALL_WRAPPER(ios_base_fail
, 4)
3783 bool __thiscall
ios_base_fail(const ios_base
*this)
3785 TRACE("(%p)\n", this);
3786 return (this->state
& (IOSTATE_failbit
|IOSTATE_badbit
)) != 0;
3789 /* ??7ios_base@std@@QBE_NXZ */
3790 /* ??7ios_base@std@@QEBA_NXZ */
3791 DEFINE_THISCALL_WRAPPER(ios_base_op_succ
, 4)
3792 bool __thiscall
ios_base_op_succ(const ios_base
*this)
3794 TRACE("(%p)\n", this);
3795 return ios_base_fail(this);
3798 /* ??Bios_base@std@@QBEPAXXZ */
3799 /* ??Bios_base@std@@QEBAPEAXXZ */
3800 DEFINE_THISCALL_WRAPPER(ios_base_op_fail
, 4)
3801 void* __thiscall
ios_base_op_fail(const ios_base
*this)
3803 TRACE("(%p)\n", this);
3804 return ios_base_fail(this) ? NULL
: (void*)this;
3807 /* ?_Addstd@ios_base@std@@IAEXXZ */
3808 /* ?_Addstd@ios_base@std@@IEAAXXZ */
3809 DEFINE_THISCALL_WRAPPER(ios_base_Addstd
, 4)
3810 void __thiscall
ios_base_Addstd(ios_base
*this)
3812 FIXME("(%p) stub\n", this);
3815 /* ?_Init@ios_base@std@@IAEXXZ */
3816 /* ?_Init@ios_base@std@@IEAAXXZ */
3817 DEFINE_THISCALL_WRAPPER(ios_base__Init
, 4)
3818 void __thiscall
ios_base__Init(ios_base
*this)
3820 TRACE("(%p)\n", this);
3823 this->state
= this->except
= IOSTATE_goodbit
;
3824 this->fmtfl
= FMTFLAG_skipws
| FMTFLAG_dec
;
3829 locale_ctor(IOS_LOCALE(this));
3832 /* ?bad@ios_base@std@@QBE_NXZ */
3833 /* ?bad@ios_base@std@@QEBA_NXZ */
3834 DEFINE_THISCALL_WRAPPER(ios_base_bad
, 4)
3835 bool __thiscall
ios_base_bad(const ios_base
*this)
3837 TRACE("(%p)\n", this);
3838 return (this->state
& IOSTATE_badbit
) != 0;
3841 /* ?eof@ios_base@std@@QBE_NXZ */
3842 /* ?eof@ios_base@std@@QEBA_NXZ */
3843 DEFINE_THISCALL_WRAPPER(ios_base_eof
, 4)
3844 bool __thiscall
ios_base_eof(const ios_base
*this)
3846 TRACE("(%p)\n", this);
3847 return (this->state
& IOSTATE_eofbit
) != 0;
3850 /* ?flags@ios_base@std@@QAEHH@Z */
3851 /* ?flags@ios_base@std@@QEAAHH@Z */
3852 DEFINE_THISCALL_WRAPPER(ios_base_flags_set
, 8)
3853 IOSB_fmtflags __thiscall
ios_base_flags_set(ios_base
*this, IOSB_fmtflags flags
)
3855 IOSB_fmtflags ret
= this->fmtfl
;
3857 TRACE("(%p %x)\n", this, flags
);
3859 this->fmtfl
= flags
& FMTFLAG_mask
;
3863 /* ?flags@ios_base@std@@QBEHXZ */
3864 /* ?flags@ios_base@std@@QEBAHXZ */
3865 DEFINE_THISCALL_WRAPPER(ios_base_flags_get
, 4)
3866 IOSB_fmtflags __thiscall
ios_base_flags_get(const ios_base
*this)
3868 TRACE("(%p)\n", this);
3872 /* ?getloc@ios_base@std@@QBE?AVlocale@2@XZ */
3873 /* ?getloc@ios_base@std@@QEBA?AVlocale@2@XZ */
3874 DEFINE_THISCALL_WRAPPER(ios_base_getloc
, 8)
3875 locale
* __thiscall
ios_base_getloc(const ios_base
*this, locale
*ret
)
3877 TRACE("(%p)\n", this);
3878 return locale_copy_ctor(ret
, IOS_LOCALE(this));
3881 /* ?good@ios_base@std@@QBE_NXZ */
3882 /* ?good@ios_base@std@@QEBA_NXZ */
3883 DEFINE_THISCALL_WRAPPER(ios_base_good
, 4)
3884 bool __thiscall
ios_base_good(const ios_base
*this)
3886 TRACE("(%p)\n", this);
3887 return this->state
== IOSTATE_goodbit
;
3890 /* ?imbue@ios_base@std@@QAE?AVlocale@2@ABV32@@Z */
3891 /* ?imbue@ios_base@std@@QEAA?AVlocale@2@AEBV32@@Z */
3892 DEFINE_THISCALL_WRAPPER(ios_base_imbue
, 12)
3893 locale
* __thiscall
ios_base_imbue(ios_base
*this, locale
*ret
, const locale
*loc
)
3895 TRACE("(%p %p)\n", this, loc
);
3896 *ret
= *IOS_LOCALE(this);
3897 locale_copy_ctor(IOS_LOCALE(this), loc
);
3901 /* ?precision@ios_base@std@@QAEHH@Z */
3902 /* ?precision@ios_base@std@@QEAA_J_J@Z */
3903 DEFINE_THISCALL_WRAPPER(ios_base_precision_set
, 8)
3904 streamsize __thiscall
ios_base_precision_set(ios_base
*this, streamsize precision
)
3906 streamsize ret
= this->prec
;
3908 TRACE("(%p %Id)\n", this, precision
);
3910 this->prec
= precision
;
3914 /* ?precision@ios_base@std@@QBEHXZ */
3915 /* ?precision@ios_base@std@@QEBA_JXZ */
3916 DEFINE_THISCALL_WRAPPER(ios_base_precision_get
, 4)
3917 streamsize __thiscall
ios_base_precision_get(const ios_base
*this)
3919 TRACE("(%p)\n", this);
3923 /* ?rdstate@ios_base@std@@QBEHXZ */
3924 /* ?rdstate@ios_base@std@@QEBAHXZ */
3925 DEFINE_THISCALL_WRAPPER(ios_base_rdstate
, 4)
3926 IOSB_iostate __thiscall
ios_base_rdstate(const ios_base
*this)
3928 TRACE("(%p)\n", this);
3932 /* ?setf@ios_base@std@@QAEHHH@Z */
3933 /* ?setf@ios_base@std@@QEAAHHH@Z */
3934 DEFINE_THISCALL_WRAPPER(ios_base_setf_mask
, 12)
3935 IOSB_fmtflags __thiscall
ios_base_setf_mask(ios_base
*this, IOSB_fmtflags flags
, IOSB_fmtflags mask
)
3937 IOSB_fmtflags ret
= this->fmtfl
;
3939 TRACE("(%p %x %x)\n", this, flags
, mask
);
3941 this->fmtfl
= (this->fmtfl
& (~mask
)) | (flags
& mask
& FMTFLAG_mask
);
3945 /* ?setf@ios_base@std@@QAEHH@Z */
3946 /* ?setf@ios_base@std@@QEAAHH@Z */
3947 DEFINE_THISCALL_WRAPPER(ios_base_setf
, 8)
3948 IOSB_fmtflags __thiscall
ios_base_setf(ios_base
*this, IOSB_fmtflags flags
)
3950 IOSB_fmtflags ret
= this->fmtfl
;
3952 TRACE("(%p %x)\n", this, flags
);
3954 this->fmtfl
|= flags
& FMTFLAG_mask
;
3958 /* ?setstate@ios_base@std@@QAEXH_N@Z */
3959 /* ?setstate@ios_base@std@@QEAAXH_N@Z */
3960 DEFINE_THISCALL_WRAPPER(ios_base_setstate_reraise
, 12)
3961 void __thiscall
ios_base_setstate_reraise(ios_base
*this, IOSB_iostate state
, bool reraise
)
3963 TRACE("(%p %x %x)\n", this, state
, reraise
);
3965 if(state
!= IOSTATE_goodbit
)
3966 ios_base_clear_reraise(this, this->state
| state
, reraise
);
3969 /* ?setstate@ios_base@std@@QAEXH@Z */
3970 /* ?setstate@ios_base@std@@QEAAXH@Z */
3971 DEFINE_THISCALL_WRAPPER(ios_base_setstate
, 8)
3972 void __thiscall
ios_base_setstate(ios_base
*this, IOSB_iostate state
)
3974 ios_base_setstate_reraise(this, state
, FALSE
);
3977 /* ?sync_with_stdio@ios_base@std@@SA_N_N@Z */
3978 bool __cdecl
ios_base_sync_with_stdio(bool sync
)
3983 TRACE("(%x)\n", sync
);
3985 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
3986 ret
= ios_base_Sync
;
3987 ios_base_Sync
= sync
;
3988 _Lockit_dtor(&lock
);
3992 /* ?unsetf@ios_base@std@@QAEXH@Z */
3993 /* ?unsetf@ios_base@std@@QEAAXH@Z */
3994 DEFINE_THISCALL_WRAPPER(ios_base_unsetf
, 8)
3995 void __thiscall
ios_base_unsetf(ios_base
*this, IOSB_fmtflags flags
)
3997 TRACE("(%p %x)\n", this, flags
);
3998 this->fmtfl
&= ~flags
;
4001 /* ?width@ios_base@std@@QAEHH@Z */
4002 /* ?width@ios_base@std@@QEAA_J_J@Z */
4003 DEFINE_THISCALL_WRAPPER(ios_base_width_set
, 8)
4004 streamsize __thiscall
ios_base_width_set(ios_base
*this, streamsize width
)
4006 streamsize ret
= this->wide
;
4008 TRACE("(%p %Id)\n", this, width
);
4014 /* ?width@ios_base@std@@QBEHXZ */
4015 /* ?width@ios_base@std@@QEBA_JXZ */
4016 DEFINE_THISCALL_WRAPPER(ios_base_width_get
, 4)
4017 streamsize __thiscall
ios_base_width_get(ios_base
*this)
4019 TRACE("(%p)\n", this);
4023 /* ?xalloc@ios_base@std@@SAHXZ */
4024 int __cdecl
ios_base_xalloc(void)
4031 _Lockit_ctor_locktype(&lock
, _LOCK_STREAM
);
4032 ret
= ios_base_Index
++;
4033 _Lockit_dtor(&lock
);
4037 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IAE@XZ */
4038 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */
4039 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor
, 4)
4040 basic_ios_char
* __thiscall
basic_ios_char_ctor(basic_ios_char
*this)
4042 TRACE("(%p)\n", this);
4044 ios_base_ctor(&this->base
);
4045 this->base
.vtable
= &basic_ios_char_vtable
;
4049 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IAEXPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4050 /* ?init@?$basic_ios@DU?$char_traits@D@std@@@std@@IEAAXPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@_N@Z */
4051 DEFINE_THISCALL_WRAPPER(basic_ios_char_init
, 12)
4052 void __thiscall
basic_ios_char_init(basic_ios_char
*this, basic_streambuf_char
*streambuf
, bool isstd
)
4054 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
4055 ios_base__Init(&this->base
);
4056 this->strbuf
= streambuf
;
4057 this->stream
= NULL
;
4061 ios_base_setstate(&this->base
, IOSTATE_badbit
);
4064 FIXME("standard streams not handled yet\n");
4067 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4068 /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4069 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor_streambuf
, 8)
4070 basic_ios_char
* __thiscall
basic_ios_char_ctor_streambuf(basic_ios_char
*this, basic_streambuf_char
*strbuf
)
4072 TRACE("(%p %p)\n", this, strbuf
);
4074 basic_ios_char_ctor(this);
4075 basic_ios_char_init(this, strbuf
, FALSE
);
4079 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UAE@XZ */
4080 /* ??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4081 DEFINE_THISCALL_WRAPPER(basic_ios_char_dtor
, 4)
4082 void __thiscall
basic_ios_char_dtor(basic_ios_char
*this)
4084 TRACE("(%p)\n", this);
4085 ios_base_dtor(&this->base
);
4088 DEFINE_THISCALL_WRAPPER(basic_ios_char_vector_dtor
, 8)
4089 basic_ios_char
* __thiscall
basic_ios_char_vector_dtor(basic_ios_char
*this, unsigned int flags
)
4091 TRACE("(%p %x)\n", this, flags
);
4093 /* we have an array, with the number of elements stored before the first object */
4094 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
4096 for(i
=*ptr
-1; i
>=0; i
--)
4097 basic_ios_char_dtor(this+i
);
4098 operator_delete(ptr
);
4100 basic_ios_char_dtor(this);
4102 operator_delete(this);
4108 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4109 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4110 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear_reraise
, 12)
4111 void __thiscall
basic_ios_char_clear_reraise(basic_ios_char
*this, IOSB_iostate state
, bool reraise
)
4113 TRACE("(%p %x %x)\n", this, state
, reraise
);
4114 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
4117 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4118 /* ?clear@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4119 DEFINE_THISCALL_WRAPPER(basic_ios_char_clear
, 8)
4120 void __thiscall
basic_ios_char_clear(basic_ios_char
*this, unsigned int state
)
4122 basic_ios_char_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
4125 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEAAV12@ABV12@@Z */
4126 /* ?copyfmt@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4127 DEFINE_THISCALL_WRAPPER(basic_ios_char_copyfmt
, 8)
4128 basic_ios_char
* __thiscall
basic_ios_char_copyfmt(basic_ios_char
*this, basic_ios_char
*copy
)
4130 TRACE("(%p %p)\n", this, copy
);
4134 this->stream
= copy
->stream
;
4135 this->fillch
= copy
->fillch
;
4136 ios_base_copyfmt(&this->base
, ©
->base
);
4140 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEDD@Z */
4141 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAADD@Z */
4142 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_set
, 8)
4143 char __thiscall
basic_ios_char_fill_set(basic_ios_char
*this, char fill
)
4145 char ret
= this->fillch
;
4147 TRACE("(%p %c)\n", this, fill
);
4149 this->fillch
= fill
;
4153 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ */
4154 /* ?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADXZ */
4155 DEFINE_THISCALL_WRAPPER(basic_ios_char_fill_get
, 4)
4156 char __thiscall
basic_ios_char_fill_get(basic_ios_char
*this)
4158 TRACE("(%p)\n", this);
4159 return this->fillch
;
4162 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4163 /* ?imbue@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4164 DEFINE_THISCALL_WRAPPER(basic_ios_char_imbue
, 12)
4165 locale
*__thiscall
basic_ios_char_imbue(basic_ios_char
*this, locale
*ret
, const locale
*loc
)
4167 TRACE("(%p %p %p)\n", this, ret
, loc
);
4170 basic_streambuf_char_pubimbue(this->strbuf
, ret
, loc
);
4174 return ios_base_imbue(&this->base
, ret
, loc
);
4177 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDDD@Z */
4178 /* ?narrow@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADDD@Z */
4179 DEFINE_THISCALL_WRAPPER(basic_ios_char_narrow
, 12)
4180 char __thiscall
basic_ios_char_narrow(basic_ios_char
*this, char ch
, char def
)
4182 TRACE("(%p %c %c)\n", this, ch
, def
);
4183 return ctype_char_narrow_ch(ctype_char_use_facet(IOS_LOCALE(this->strbuf
)), ch
, def
);
4186 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PAV32@@Z */
4187 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4188 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_set
, 8)
4189 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_set(basic_ios_char
*this, basic_streambuf_char
*streambuf
)
4191 basic_streambuf_char
*ret
= this->strbuf
;
4193 TRACE("(%p %p)\n", this, streambuf
);
4195 this->strbuf
= streambuf
;
4196 basic_ios_char_clear(this, IOSTATE_goodbit
);
4200 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4201 /* ?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ */
4202 DEFINE_THISCALL_WRAPPER(basic_ios_char_rdbuf_get
, 4)
4203 basic_streambuf_char
* __thiscall
basic_ios_char_rdbuf_get(const basic_ios_char
*this)
4205 TRACE("(%p)\n", this);
4206 return this->strbuf
;
4209 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z */
4210 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z */
4211 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate_reraise
, 12)
4212 void __thiscall
basic_ios_char_setstate_reraise(basic_ios_char
*this, IOSB_iostate state
, bool reraise
)
4214 TRACE("(%p %x %x)\n", this, state
, reraise
);
4216 if(state
!= IOSTATE_goodbit
)
4217 basic_ios_char_clear_reraise(this, this->base
.state
| state
, reraise
);
4220 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXI@Z */
4221 /* ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXI@Z */
4222 DEFINE_THISCALL_WRAPPER(basic_ios_char_setstate
, 8)
4223 void __thiscall
basic_ios_char_setstate(basic_ios_char
*this, unsigned int state
)
4225 basic_ios_char_setstate_reraise(this, (IOSB_iostate
)state
, FALSE
);
4228 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@PAV32@@Z */
4229 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@PEAV32@@Z */
4230 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_set
, 8)
4231 basic_ostream_char
* __thiscall
basic_ios_char_tie_set(basic_ios_char
*this, basic_ostream_char
*ostream
)
4233 basic_ostream_char
*ret
= this->stream
;
4235 TRACE("(%p %p)\n", this, ostream
);
4237 this->stream
= ostream
;
4241 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
4242 /* ?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ */
4243 DEFINE_THISCALL_WRAPPER(basic_ios_char_tie_get
, 4)
4244 basic_ostream_char
* __thiscall
basic_ios_char_tie_get(const basic_ios_char
*this)
4246 TRACE("(%p)\n", this);
4247 return this->stream
;
4250 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDD@Z */
4251 /* ?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z */
4252 DEFINE_THISCALL_WRAPPER(basic_ios_char_widen
, 8)
4253 char __thiscall
basic_ios_char_widen(basic_ios_char
*this, char ch
)
4255 TRACE("(%p %c)\n", this, ch
);
4256 return ctype_char_widen_ch(ctype_char_use_facet(IOS_LOCALE(this->strbuf
)), ch
);
4259 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IAE@XZ */
4260 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@IEAA@XZ */
4261 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor
, 4)
4262 basic_ios_wchar
* __thiscall
basic_ios_short_ctor(basic_ios_wchar
*this)
4264 TRACE("(%p)\n", this);
4266 ios_base_ctor(&this->base
);
4267 this->base
.vtable
= &basic_ios_short_vtable
;
4271 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IAEXPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
4272 /* ?init@?$basic_ios@GU?$char_traits@G@std@@@std@@IEAAXPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@_N@Z */
4273 DEFINE_THISCALL_WRAPPER(basic_ios_short_init
, 12)
4274 void __thiscall
basic_ios_short_init(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
, bool isstd
)
4276 TRACE("(%p %p %x)\n", this, streambuf
, isstd
);
4277 ios_base__Init(&this->base
);
4278 this->strbuf
= streambuf
;
4279 this->stream
= NULL
;
4283 ios_base_setstate(&this->base
, IOSTATE_badbit
);
4286 FIXME("standard streams not handled yet\n");
4289 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
4290 /* ??0?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
4291 DEFINE_THISCALL_WRAPPER(basic_ios_short_ctor_streambuf
, 8)
4292 basic_ios_wchar
* __thiscall
basic_ios_short_ctor_streambuf(basic_ios_wchar
*this, basic_streambuf_wchar
*strbuf
)
4294 TRACE("(%p %p)\n", this, strbuf
);
4296 basic_ios_short_ctor(this);
4297 basic_ios_short_init(this, strbuf
, FALSE
);
4301 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UAE@XZ */
4302 /* ??1?$basic_ios@GU?$char_traits@G@std@@@std@@UEAA@XZ */
4303 DEFINE_THISCALL_WRAPPER(basic_ios_short_dtor
, 4)
4304 void __thiscall
basic_ios_short_dtor(basic_ios_wchar
*this)
4306 TRACE("(%p)\n", this);
4307 ios_base_dtor(&this->base
);
4310 DEFINE_THISCALL_WRAPPER(basic_ios_short_vector_dtor
, 8)
4311 basic_ios_wchar
* __thiscall
basic_ios_short_vector_dtor(basic_ios_wchar
*this, unsigned int flags
)
4313 TRACE("(%p %x)\n", this, flags
);
4315 /* we have an array, with the number of elements stored before the first object */
4316 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
4318 for(i
=*ptr
-1; i
>=0; i
--)
4319 basic_ios_short_dtor(this+i
);
4320 operator_delete(ptr
);
4322 basic_ios_short_dtor(this);
4324 operator_delete(this);
4330 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
4331 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
4332 DEFINE_THISCALL_WRAPPER(basic_ios_short_clear_reraise
, 12)
4333 void __thiscall
basic_ios_short_clear_reraise(basic_ios_wchar
*this, IOSB_iostate state
, bool reraise
)
4335 TRACE("(%p %x %x)\n", this, state
, reraise
);
4336 ios_base_clear_reraise(&this->base
, state
| (this->strbuf
? IOSTATE_goodbit
: IOSTATE_badbit
), reraise
);
4339 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
4340 /* ?clear@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
4341 DEFINE_THISCALL_WRAPPER(basic_ios_short_clear
, 8)
4342 void __thiscall
basic_ios_short_clear(basic_ios_wchar
*this, unsigned int state
)
4344 basic_ios_short_clear_reraise(this, (IOSB_iostate
)state
, FALSE
);
4347 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEAAV12@ABV12@@Z */
4348 /* ?copyfmt@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEBV12@@Z */
4349 DEFINE_THISCALL_WRAPPER(basic_ios_short_copyfmt
, 8)
4350 basic_ios_wchar
* __thiscall
basic_ios_short_copyfmt(basic_ios_wchar
*this, basic_ios_wchar
*copy
)
4352 TRACE("(%p %p)\n", this, copy
);
4356 this->stream
= copy
->stream
;
4357 this->fillch
= copy
->fillch
;
4358 ios_base_copyfmt(&this->base
, ©
->base
);
4362 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEGG@Z */
4363 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAGG@Z */
4364 DEFINE_THISCALL_WRAPPER(basic_ios_short_fill_set
, 8)
4365 wchar_t __thiscall
basic_ios_short_fill_set(basic_ios_wchar
*this, wchar_t fill
)
4367 wchar_t ret
= this->fillch
;
4369 TRACE("(%p %c)\n", this, fill
);
4371 this->fillch
= fill
;
4375 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGXZ */
4376 /* ?fill@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGXZ */
4377 DEFINE_THISCALL_WRAPPER(basic_ios_short_fill_get
, 4)
4378 wchar_t __thiscall
basic_ios_short_fill_get(basic_ios_wchar
*this)
4380 TRACE("(%p)\n", this);
4381 return this->fillch
;
4384 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QAE?AVlocale@2@ABV32@@Z */
4385 /* ?imbue@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAA?AVlocale@2@AEBV32@@Z */
4386 DEFINE_THISCALL_WRAPPER(basic_ios_short_imbue
, 12)
4387 locale
*__thiscall
basic_ios_short_imbue(basic_ios_wchar
*this, locale
*ret
, const locale
*loc
)
4389 TRACE("(%p %p %p)\n", this, ret
, loc
);
4392 basic_streambuf_wchar_pubimbue(this->strbuf
, ret
, loc
);
4396 return ios_base_imbue(&this->base
, ret
, loc
);
4399 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEDGD@Z */
4400 /* ?narrow@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBADGD@Z */
4401 DEFINE_THISCALL_WRAPPER(basic_ios_short_narrow
, 12)
4402 char __thiscall
basic_ios_short_narrow(basic_ios_wchar
*this, wchar_t ch
, char def
)
4404 TRACE("(%p %c %c)\n", this, ch
, def
);
4405 return ctype_wchar_narrow_ch(ctype_wchar_use_facet(IOS_LOCALE(this->strbuf
)), ch
, def
);
4408 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PAV32@@Z */
4409 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@PEAV32@@Z */
4410 DEFINE_THISCALL_WRAPPER(basic_ios_short_rdbuf_set
, 8)
4411 basic_streambuf_wchar
* __thiscall
basic_ios_short_rdbuf_set(basic_ios_wchar
*this, basic_streambuf_wchar
*streambuf
)
4413 basic_streambuf_wchar
*ret
= this->strbuf
;
4415 TRACE("(%p %p)\n", this, streambuf
);
4417 this->strbuf
= streambuf
;
4418 basic_ios_short_clear(this, IOSTATE_goodbit
);
4422 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
4423 /* ?rdbuf@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@XZ */
4424 DEFINE_THISCALL_WRAPPER(basic_ios_short_rdbuf_get
, 4)
4425 basic_streambuf_wchar
* __thiscall
basic_ios_short_rdbuf_get(const basic_ios_wchar
*this)
4427 TRACE("(%p)\n", this);
4428 return this->strbuf
;
4431 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXH_N@Z */
4432 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXH_N@Z */
4433 DEFINE_THISCALL_WRAPPER(basic_ios_short_setstate_reraise
, 12)
4434 void __thiscall
basic_ios_short_setstate_reraise(basic_ios_wchar
*this, IOSB_iostate state
, bool reraise
)
4436 TRACE("(%p %x %x)\n", this, state
, reraise
);
4438 if(state
!= IOSTATE_goodbit
)
4439 basic_ios_short_clear_reraise(this, this->base
.state
| state
, reraise
);
4442 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXI@Z */
4443 /* ?setstate@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXI@Z */
4444 DEFINE_THISCALL_WRAPPER(basic_ios_short_setstate
, 8)
4445 void __thiscall
basic_ios_short_setstate(basic_ios_wchar
*this, IOSB_iostate state
)
4447 basic_ios_short_setstate_reraise(this, state
, FALSE
);
4450 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@PAV32@@Z */
4451 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@PEAV32@@Z */
4452 DEFINE_THISCALL_WRAPPER(basic_ios_short_tie_set
, 8)
4453 basic_ostream_wchar
* __thiscall
basic_ios_short_tie_set(basic_ios_wchar
*this, basic_ostream_wchar
*ostream
)
4455 basic_ostream_wchar
*ret
= this->stream
;
4457 TRACE("(%p %p)\n", this, ostream
);
4459 this->stream
= ostream
;
4463 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
4464 /* ?tie@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_ostream@GU?$char_traits@G@std@@@2@XZ */
4465 DEFINE_THISCALL_WRAPPER(basic_ios_short_tie_get
, 4)
4466 basic_ostream_wchar
* __thiscall
basic_ios_short_tie_get(const basic_ios_wchar
*this)
4468 TRACE("(%p)\n", this);
4469 return this->stream
;
4472 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QBEGD@Z */
4473 /* ?widen@?$basic_ios@GU?$char_traits@G@std@@@std@@QEBAGD@Z */
4474 DEFINE_THISCALL_WRAPPER(basic_ios_short_widen
, 8)
4475 wchar_t __thiscall
basic_ios_short_widen(basic_ios_wchar
*this, char ch
)
4477 TRACE("(%p %c)\n", this, ch
);
4478 return ctype_wchar_widen_ch(ctype_wchar_use_facet(IOS_LOCALE(this->strbuf
)), ch
);
4481 /* Caution: basic_ostream uses virtual inheritance.
4482 * All constructors have additional parameter that says if base class should be initialized.
4483 * Base class needs to be accessed using vbtable.
4485 static inline basic_ios_char
* basic_ostream_char_get_basic_ios(basic_ostream_char
*this)
4487 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
4490 static inline basic_ios_char
* basic_ostream_char_to_basic_ios(basic_ostream_char
*ptr
)
4492 return (basic_ios_char
*)((char*)ptr
+basic_ostream_char_vbtable
[1]);
4495 static inline basic_ostream_char
* basic_ostream_char_from_basic_ios(basic_ios_char
*ptr
)
4497 return (basic_ostream_char
*)((char*)ptr
-basic_ostream_char_vbtable
[1]);
4500 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
4501 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
4502 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor
, 20)
4503 basic_ostream_char
* __thiscall
basic_ostream_char_ctor(basic_ostream_char
*this,
4504 basic_streambuf_char
*strbuf
, bool isstd
, bool init
, bool virt_init
)
4506 basic_ios_char
*base
;
4508 TRACE("(%p %p %d %d %d)\n", this, strbuf
, isstd
, init
, virt_init
);
4511 this->vbtable
= basic_ostream_char_vbtable
;
4512 base
= basic_ostream_char_get_basic_ios(this);
4513 basic_ios_char_ctor(base
);
4515 base
= basic_ostream_char_get_basic_ios(this);
4518 base
->base
.vtable
= &basic_ostream_char_vtable
;
4520 basic_ios_char_init(base
, strbuf
, isstd
);
4524 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
4525 /* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
4526 DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor_uninitialized
, 12)
4527 basic_ostream_char
* __thiscall
basic_ostream_char_ctor_uninitialized(basic_ostream_char
*this,
4528 int uninitialized
, bool virt_init
)
4530 basic_ios_char
*base
;
4532 TRACE("(%p %d)\n", this, uninitialized
);
4535 this->vbtable
= basic_ostream_char_vbtable
;
4536 base
= basic_ostream_char_get_basic_ios(this);
4537 basic_ios_char_ctor(base
);
4539 base
= basic_ostream_char_get_basic_ios(this);
4542 base
->base
.vtable
= &basic_ostream_char_vtable
;
4543 ios_base_Addstd(&base
->base
);
4547 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
4548 /* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
4549 DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor
, 4)
4550 void __thiscall
basic_ostream_char_dtor(basic_ios_char
*base
)
4552 basic_ostream_char
*this = basic_ostream_char_from_basic_ios(base
);
4554 /* don't destroy virtual base here */
4555 TRACE("(%p)\n", this);
4558 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
4559 /* ??_D?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
4560 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor
, 4)
4561 void __thiscall
basic_ostream_char_vbase_dtor(basic_ostream_char
*this)
4563 TRACE("(%p)\n", this);
4564 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
4565 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
4568 DEFINE_THISCALL_WRAPPER(basic_ostream_char_vector_dtor
, 8)
4569 basic_ostream_char
* __thiscall
basic_ostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
4571 basic_ostream_char
*this = basic_ostream_char_from_basic_ios(base
);
4573 TRACE("(%p %x)\n", this, flags
);
4576 /* we have an array, with the number of elements stored before the first object */
4577 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
4579 for(i
=*ptr
-1; i
>=0; i
--)
4580 basic_ostream_char_vbase_dtor(this+i
);
4581 operator_delete(ptr
);
4583 basic_ostream_char_vbase_dtor(this);
4585 operator_delete(this);
4591 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
4592 /* ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
4593 DEFINE_THISCALL_WRAPPER(basic_ostream_char_flush
, 4)
4594 basic_ostream_char
* __thiscall
basic_ostream_char_flush(basic_ostream_char
*this)
4596 /* this function is not matching C++ specification */
4597 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4599 TRACE("(%p)\n", this);
4601 if(basic_ios_char_rdbuf_get(base
) && ios_base_good(&base
->base
)
4602 && basic_streambuf_char_pubsync(basic_ios_char_rdbuf_get(base
))==-1)
4603 basic_ios_char_setstate(base
, IOSTATE_badbit
);
4607 /* ?flush@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
4608 /* ?flush@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
4609 basic_ostream_char
* __cdecl
flush_ostream_char(basic_ostream_char
*ostream
)
4611 return basic_ostream_char_flush(ostream
);
4614 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
4615 /* ?osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
4616 DEFINE_THISCALL_WRAPPER(basic_ostream_char_osfx
, 4)
4617 void __thiscall
basic_ostream_char_osfx(basic_ostream_char
*this)
4619 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4621 TRACE("(%p)\n", this);
4623 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
4624 basic_ostream_char_flush(this);
4627 static BOOL
basic_ostream_char_sentry_create(basic_ostream_char
*ostr
)
4629 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
4631 if(ios_base_good(&base
->base
) && base
->stream
)
4632 basic_ostream_char_flush(base
->stream
);
4634 return ios_base_good(&base
->base
);
4637 static void basic_ostream_char_sentry_destroy(basic_ostream_char
*ostr
)
4639 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
4641 if(ios_base_good(&base
->base
) && !__uncaught_exception())
4642 basic_ostream_char_osfx(ostr
);
4645 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE_NXZ */
4646 /* ?opfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA_NXZ */
4647 DEFINE_THISCALL_WRAPPER(basic_ostream_char_opfx
, 4)
4648 bool __thiscall
basic_ostream_char_opfx(basic_ostream_char
*this)
4650 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4652 TRACE("(%p)\n", this);
4654 if(ios_base_good(&base
->base
) && base
->stream
)
4655 basic_ostream_char_flush(base
->stream
);
4656 return ios_base_good(&base
->base
);
4659 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
4660 /* ?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
4661 DEFINE_THISCALL_WRAPPER(basic_ostream_char_put
, 8)
4662 basic_ostream_char
* __thiscall
basic_ostream_char_put(basic_ostream_char
*this, char ch
)
4664 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4666 TRACE("(%p %c)\n", this, ch
);
4668 if(!basic_ostream_char_sentry_create(this)
4669 || basic_streambuf_char_sputc(base
->strbuf
, ch
)==EOF
) {
4670 basic_ostream_char_sentry_destroy(this);
4671 basic_ios_char_setstate(base
, IOSTATE_badbit
);
4675 basic_ostream_char_sentry_destroy(this);
4679 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
4680 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
4681 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp
, 12)
4682 basic_ostream_char
* __thiscall
basic_ostream_char_seekp(basic_ostream_char
*this, streamoff off
, int way
)
4684 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4686 TRACE("(%p %Id %d)\n", this, off
, way
);
4688 if(!ios_base_fail(&base
->base
)) {
4691 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
4692 &seek
, off
, way
, OPENMODE_out
);
4693 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
4694 basic_ios_char_setstate(base
, IOSTATE_failbit
);
4699 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
4700 /* ?seekp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
4701 DEFINE_THISCALL_WRAPPER(basic_ostream_char_seekp_fpos
, 28)
4702 basic_ostream_char
* __thiscall
basic_ostream_char_seekp_fpos(basic_ostream_char
*this, fpos_int pos
)
4704 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4706 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
4708 if(!ios_base_fail(&base
->base
)) {
4711 basic_streambuf_char_pubseekpos(basic_ios_char_rdbuf_get(base
),
4712 &seek
, pos
, OPENMODE_out
);
4713 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
4714 basic_ios_char_setstate(base
, IOSTATE_failbit
);
4719 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
4720 /* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
4721 DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp
, 8)
4722 fpos_int
* __thiscall
basic_ostream_char_tellp(basic_ostream_char
*this, fpos_int
*ret
)
4724 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4726 TRACE("(%p)\n", this);
4728 if(!ios_base_fail(&base
->base
)) {
4729 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
4730 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
4739 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@PBDH@Z */
4740 /* ?write@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEBD_J@Z */
4741 DEFINE_THISCALL_WRAPPER(basic_ostream_char_write
, 12)
4742 basic_ostream_char
* __thiscall
basic_ostream_char_write(basic_ostream_char
*this, const char *str
, streamsize count
)
4744 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4746 TRACE("(%p %s %Id)\n", this, debugstr_a(str
), count
);
4748 if(!basic_ostream_char_sentry_create(this)
4749 || basic_streambuf_char_sputn(base
->strbuf
, str
, count
)!=count
) {
4750 basic_ostream_char_sentry_destroy(this);
4751 basic_ios_char_setstate(base
, IOSTATE_badbit
);
4755 basic_ostream_char_sentry_destroy(this);
4759 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@F@Z */
4760 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@F@Z */
4761 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_short
, 8)
4762 basic_ostream_char
* __thiscall
basic_ostream_char_print_short(basic_ostream_char
*this, short val
)
4764 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4765 int state
= IOSTATE_goodbit
;
4767 TRACE("(%p %d)\n", this, val
);
4769 if(basic_ostream_char_sentry_create(this)) {
4770 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4771 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4772 ostreambuf_iterator_char dest
;
4774 memset(&dest
, 0, sizeof(dest
));
4775 dest
.strbuf
= strbuf
;
4776 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
),
4777 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
4778 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
4780 basic_ostream_char_sentry_destroy(this);
4782 basic_ios_char_setstate(base
, state
);
4786 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@G@Z */
4787 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@G@Z */
4788 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ushort
, 8)
4789 basic_ostream_char
* __thiscall
basic_ostream_char_print_ushort(basic_ostream_char
*this, unsigned short val
)
4791 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4792 int state
= IOSTATE_goodbit
;
4794 TRACE("(%p %u)\n", this, val
);
4796 if(basic_ostream_char_sentry_create(this)) {
4797 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4798 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4799 ostreambuf_iterator_char dest
;
4801 memset(&dest
, 0, sizeof(dest
));
4802 dest
.strbuf
= strbuf
;
4803 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4805 basic_ostream_char_sentry_destroy(this);
4807 basic_ios_char_setstate(base
, state
);
4811 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z */
4812 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@H@Z */
4813 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@J@Z */
4814 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@J@Z */
4815 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int
, 8)
4816 basic_ostream_char
* __thiscall
basic_ostream_char_print_int(basic_ostream_char
*this, int val
)
4818 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4819 int state
= IOSTATE_goodbit
;
4821 TRACE("(%p %d)\n", this, val
);
4823 if(basic_ostream_char_sentry_create(this)) {
4824 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4825 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4826 ostreambuf_iterator_char dest
;
4828 memset(&dest
, 0, sizeof(dest
));
4829 dest
.strbuf
= strbuf
;
4830 num_put_char_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4832 basic_ostream_char_sentry_destroy(this);
4834 basic_ios_char_setstate(base
, state
);
4838 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z */
4839 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@I@Z */
4840 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@K@Z */
4841 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@K@Z */
4842 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint
, 8)
4843 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint(basic_ostream_char
*this, unsigned int val
)
4845 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4846 int state
= IOSTATE_goodbit
;
4848 TRACE("(%p %u)\n", this, val
);
4850 if(basic_ostream_char_sentry_create(this)) {
4851 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4852 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4853 ostreambuf_iterator_char dest
;
4855 memset(&dest
, 0, sizeof(dest
));
4856 dest
.strbuf
= strbuf
;
4857 num_put_char_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4859 basic_ostream_char_sentry_destroy(this);
4861 basic_ios_char_setstate(base
, state
);
4865 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@M@Z */
4866 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@M@Z */
4867 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_float
, 8)
4868 basic_ostream_char
* __thiscall
basic_ostream_char_print_float(basic_ostream_char
*this, float val
)
4870 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4871 int state
= IOSTATE_goodbit
;
4873 TRACE("(%p %f)\n", this, val
);
4875 if(basic_ostream_char_sentry_create(this)) {
4876 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4877 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4878 ostreambuf_iterator_char dest
;
4880 memset(&dest
, 0, sizeof(dest
));
4881 dest
.strbuf
= strbuf
;
4882 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4884 basic_ostream_char_sentry_destroy(this);
4886 basic_ios_char_setstate(base
, state
);
4890 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@N@Z */
4891 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@N@Z */
4892 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_double
, 12)
4893 basic_ostream_char
* __thiscall
basic_ostream_char_print_double(basic_ostream_char
*this, double val
)
4895 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4896 int state
= IOSTATE_goodbit
;
4898 TRACE("(%p %lf)\n", this, val
);
4900 if(basic_ostream_char_sentry_create(this)) {
4901 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4902 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4903 ostreambuf_iterator_char dest
;
4905 memset(&dest
, 0, sizeof(dest
));
4906 dest
.strbuf
= strbuf
;
4907 num_put_char_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4909 basic_ostream_char_sentry_destroy(this);
4911 basic_ios_char_setstate(base
, state
);
4915 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@O@Z */
4916 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@O@Z */
4917 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ldouble
, 12)
4918 basic_ostream_char
* __thiscall
basic_ostream_char_print_ldouble(basic_ostream_char
*this, double val
)
4920 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4921 int state
= IOSTATE_goodbit
;
4923 TRACE("(%p %lf)\n", this, val
);
4925 if(basic_ostream_char_sentry_create(this)) {
4926 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4927 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4928 ostreambuf_iterator_char dest
;
4930 memset(&dest
, 0, sizeof(dest
));
4931 dest
.strbuf
= strbuf
;
4932 num_put_char_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4934 basic_ostream_char_sentry_destroy(this);
4936 basic_ios_char_setstate(base
, state
);
4940 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4941 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
4942 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_streambuf
, 8)
4943 basic_ostream_char
* __thiscall
basic_ostream_char_print_streambuf(basic_ostream_char
*this, basic_streambuf_char
*val
)
4945 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4946 IOSB_iostate state
= IOSTATE_badbit
;
4949 TRACE("(%p %p)\n", this, val
);
4951 if(basic_ostream_char_sentry_create(this)) {
4952 for(c
= basic_streambuf_char_sgetc(val
); c
!=EOF
;
4953 c
= basic_streambuf_char_snextc(val
)) {
4954 state
= IOSTATE_goodbit
;
4956 if(basic_streambuf_char_sputc(base
->strbuf
, c
) == EOF
) {
4957 state
= IOSTATE_badbit
;
4962 state
= IOSTATE_badbit
;
4964 basic_ostream_char_sentry_destroy(this);
4966 ios_base_width_set(&base
->base
, 0);
4967 basic_ios_char_setstate(base
, state
);
4971 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@PBX@Z */
4972 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEBX@Z */
4973 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_ptr
, 8)
4974 basic_ostream_char
* __thiscall
basic_ostream_char_print_ptr(basic_ostream_char
*this, const void *val
)
4976 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
4977 int state
= IOSTATE_goodbit
;
4979 TRACE("(%p %p)\n", this, val
);
4981 if(basic_ostream_char_sentry_create(this)) {
4982 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
4983 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
4984 ostreambuf_iterator_char dest
;
4986 memset(&dest
, 0, sizeof(dest
));
4987 dest
.strbuf
= strbuf
;
4988 num_put_char_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
4990 basic_ostream_char_sentry_destroy(this);
4992 basic_ios_char_setstate(base
, state
);
4996 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_J@Z */
4997 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_J@Z */
4998 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_int64
, 12)
4999 basic_ostream_char
* __thiscall
basic_ostream_char_print_int64(basic_ostream_char
*this, __int64 val
)
5001 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5002 int state
= IOSTATE_goodbit
;
5004 TRACE("(%p)\n", this);
5006 if(basic_ostream_char_sentry_create(this)) {
5007 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5008 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
5009 ostreambuf_iterator_char dest
;
5011 memset(&dest
, 0, sizeof(dest
));
5012 dest
.strbuf
= strbuf
;
5013 num_put_char_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5015 basic_ostream_char_sentry_destroy(this);
5017 basic_ios_char_setstate(base
, state
);
5021 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_K@Z */
5022 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z */
5023 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_uint64
, 12)
5024 basic_ostream_char
* __thiscall
basic_ostream_char_print_uint64(basic_ostream_char
*this, unsigned __int64 val
)
5026 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5027 int state
= IOSTATE_goodbit
;
5029 TRACE("(%p)\n", this);
5031 if(basic_ostream_char_sentry_create(this)) {
5032 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5033 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
5034 ostreambuf_iterator_char dest
;
5036 memset(&dest
, 0, sizeof(dest
));
5037 dest
.strbuf
= strbuf
;
5038 num_put_char_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5040 basic_ostream_char_sentry_destroy(this);
5042 basic_ios_char_setstate(base
, state
);
5046 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@_N@Z */
5047 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_N@Z */
5048 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_bool
, 8)
5049 basic_ostream_char
* __thiscall
basic_ostream_char_print_bool(basic_ostream_char
*this, bool val
)
5051 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(this);
5052 int state
= IOSTATE_goodbit
;
5054 TRACE("(%p %x)\n", this, val
);
5056 if(basic_ostream_char_sentry_create(this)) {
5057 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
5058 const num_put
*numput
= num_put_char_use_facet(IOS_LOCALE(strbuf
));
5059 ostreambuf_iterator_char dest
;
5061 memset(&dest
, 0, sizeof(dest
));
5062 dest
.strbuf
= strbuf
;
5063 num_put_char_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_char_fill_get(base
), val
);
5065 basic_ostream_char_sentry_destroy(this);
5067 basic_ios_char_setstate(base
, state
);
5071 /* ?ends@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5072 /* ?ends@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5073 basic_ostream_char
* __cdecl
basic_ostream_char_ends(basic_ostream_char
*ostr
)
5075 TRACE("(%p)\n", ostr
);
5077 basic_ostream_char_put(ostr
, 0);
5081 /* ?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z */
5082 /* ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
5083 basic_ostream_char
* __cdecl
basic_ostream_char_endl(basic_ostream_char
*ostr
)
5085 TRACE("(%p)\n", ostr
);
5087 basic_ostream_char_put(ostr
, '\n');
5088 basic_ostream_char_flush(ostr
);
5092 /* ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
5093 /* ??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
5094 basic_ostream_char
* __cdecl
basic_ostream_char_print_bstr(basic_ostream_char
*ostr
, const basic_string_char
*str
)
5096 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5097 IOSB_iostate state
= IOSTATE_goodbit
;
5099 TRACE("(%p %p)\n", ostr
, str
);
5101 if(basic_ostream_char_sentry_create(ostr
)) {
5102 size_t len
= MSVCP_basic_string_char_length(str
);
5103 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5105 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5106 for(; pad
!=0; pad
--) {
5107 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5108 state
= IOSTATE_badbit
;
5114 if(state
== IOSTATE_goodbit
) {
5115 if(basic_streambuf_char_sputn(base
->strbuf
, MSVCP_basic_string_char_c_str(str
), len
) != len
)
5116 state
= IOSTATE_badbit
;
5119 if(state
== IOSTATE_goodbit
) {
5120 for(; pad
!=0; pad
--) {
5121 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5122 state
= IOSTATE_badbit
;
5128 base
->base
.wide
= 0;
5130 state
= IOSTATE_badbit
;
5132 basic_ostream_char_sentry_destroy(ostr
);
5134 basic_ios_char_setstate(base
, state
);
5138 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@C@Z */
5139 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@C@Z */
5140 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@D@Z */
5141 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@D@Z */
5142 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@E@Z */
5143 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@E@Z */
5144 basic_ostream_char
* __cdecl
basic_ostream_char_print_ch(basic_ostream_char
*ostr
, char ch
)
5146 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5147 IOSB_iostate state
= IOSTATE_goodbit
;
5149 TRACE("(%p %d)\n", ostr
, ch
);
5151 if(basic_ostream_char_sentry_create(ostr
)) {
5152 streamsize pad
= (base
->base
.wide
>1 ? base
->base
.wide
-1 : 0);
5154 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5155 for(; pad
!=0; pad
--) {
5156 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5157 state
= IOSTATE_badbit
;
5163 if(state
== IOSTATE_goodbit
) {
5164 if(basic_streambuf_char_sputc(base
->strbuf
, ch
) == EOF
)
5165 state
= IOSTATE_badbit
;
5168 if(state
== IOSTATE_goodbit
) {
5169 for(; pad
!=0; pad
--) {
5170 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5171 state
= IOSTATE_badbit
;
5177 base
->base
.wide
= 0;
5179 state
= IOSTATE_badbit
;
5181 basic_ostream_char_sentry_destroy(ostr
);
5183 basic_ios_char_setstate(base
, state
);
5187 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBC@Z */
5188 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBC@Z */
5189 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBD@Z */
5190 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBD@Z */
5191 /* ??$?6U?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@PBE@Z */
5192 /* ??$?6U?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@PEBE@Z */
5193 basic_ostream_char
* __cdecl
basic_ostream_char_print_str(basic_ostream_char
*ostr
, const char *str
)
5195 basic_ios_char
*base
= basic_ostream_char_get_basic_ios(ostr
);
5196 IOSB_iostate state
= IOSTATE_goodbit
;
5198 TRACE("(%p %s)\n", ostr
, str
);
5200 if(basic_ostream_char_sentry_create(ostr
)) {
5201 size_t len
= strlen(str
);
5202 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5204 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5205 for(; pad
!=0; pad
--) {
5206 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5207 state
= IOSTATE_badbit
;
5213 if(state
== IOSTATE_goodbit
) {
5214 if(basic_streambuf_char_sputn(base
->strbuf
, str
, len
) != len
)
5215 state
= IOSTATE_badbit
;
5218 if(state
== IOSTATE_goodbit
) {
5219 for(; pad
!=0; pad
--) {
5220 if(basic_streambuf_char_sputc(base
->strbuf
, base
->fillch
) == EOF
) {
5221 state
= IOSTATE_badbit
;
5227 base
->base
.wide
= 0;
5229 state
= IOSTATE_badbit
;
5231 basic_ostream_char_sentry_destroy(ostr
);
5233 basic_ios_char_setstate(base
, state
);
5237 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
5238 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
5239 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func
, 8)
5240 basic_ostream_char
* __thiscall
basic_ostream_char_print_func(basic_ostream_char
*this,
5241 basic_ostream_char
* (__cdecl
*pfunc
)(basic_ostream_char
*))
5243 TRACE("(%p %p)\n", this, pfunc
);
5248 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
5249 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
5250 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_basic_ios
, 8)
5251 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_basic_ios(basic_ostream_char
*this,
5252 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
5254 TRACE("(%p %p)\n", this, pfunc
);
5255 pfunc(basic_ostream_char_get_basic_ios(this));
5259 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
5260 /* ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
5261 DEFINE_THISCALL_WRAPPER(basic_ostream_char_print_func_ios_base
, 8)
5262 basic_ostream_char
* __thiscall
basic_ostream_char_print_func_ios_base(
5263 basic_ostream_char
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
5265 TRACE("(%p %p)\n", this, pfunc
);
5266 pfunc(&basic_ostream_char_get_basic_ios(this)->base
);
5270 /* Caution: basic_ostream uses virtual inheritance. */
5271 static inline basic_ios_wchar
* basic_ostream_short_get_basic_ios(basic_ostream_wchar
*this)
5273 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
5276 static inline basic_ios_wchar
* basic_ostream_short_to_basic_ios(basic_ostream_wchar
*ptr
)
5278 return (basic_ios_wchar
*)((char*)ptr
+basic_ostream_short_vbtable
[1]);
5281 static inline basic_ostream_wchar
* basic_ostream_short_from_basic_ios(basic_ios_wchar
*ptr
)
5283 return (basic_ostream_wchar
*)((char*)ptr
-basic_ostream_short_vbtable
[1]);
5286 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
5287 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N1@Z */
5288 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor
, 20)
5289 basic_ostream_wchar
* __thiscall
basic_ostream_short_ctor(basic_ostream_wchar
*this,
5290 basic_streambuf_wchar
*strbuf
, bool isstd
, bool init
, bool virt_init
)
5292 basic_ios_wchar
*base
;
5294 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
5297 this->vbtable
= basic_ostream_short_vbtable
;
5298 base
= basic_ostream_short_get_basic_ios(this);
5299 basic_ios_short_ctor(base
);
5301 base
= basic_ostream_short_get_basic_ios(this);
5304 base
->base
.vtable
= &basic_ostream_short_vtable
;
5306 basic_ios_short_init(base
, strbuf
, isstd
);
5310 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
5311 /* ??0?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
5312 DEFINE_THISCALL_WRAPPER(basic_ostream_short_ctor_uninitialized
, 12)
5313 basic_ostream_wchar
* __thiscall
basic_ostream_short_ctor_uninitialized(basic_ostream_wchar
*this,
5314 int uninitialized
, bool virt_init
)
5316 basic_ios_wchar
*base
;
5318 TRACE("(%p %d)\n", this, uninitialized
);
5321 this->vbtable
= basic_ostream_short_vbtable
;
5322 base
= basic_ostream_short_get_basic_ios(this);
5323 basic_ios_short_ctor(base
);
5325 base
= basic_ostream_short_get_basic_ios(this);
5328 base
->base
.vtable
= &basic_ostream_short_vtable
;
5329 ios_base_Addstd(&base
->base
);
5333 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
5334 /* ??1?$basic_ostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
5335 DEFINE_THISCALL_WRAPPER(basic_ostream_short_dtor
, 4)
5336 void __thiscall
basic_ostream_short_dtor(basic_ios_wchar
*base
)
5338 basic_ostream_wchar
*this = basic_ostream_short_from_basic_ios(base
);
5340 /* don't destroy virtual base here */
5341 TRACE("(%p)\n", this);
5344 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
5345 /* ??_D?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
5346 DEFINE_THISCALL_WRAPPER(basic_ostream_short_vbase_dtor
, 4)
5347 void __thiscall
basic_ostream_short_vbase_dtor(basic_ostream_wchar
*this)
5349 TRACE("(%p)\n", this);
5350 basic_ostream_short_dtor(basic_ostream_short_to_basic_ios(this));
5351 basic_ios_short_dtor(basic_ostream_short_get_basic_ios(this));
5354 DEFINE_THISCALL_WRAPPER(basic_ostream_short_vector_dtor
, 8)
5355 basic_ostream_wchar
* __thiscall
basic_ostream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
5357 basic_ostream_wchar
*this = basic_ostream_short_from_basic_ios(base
);
5359 TRACE("(%p %x)\n", this, flags
);
5362 /* we have an array, with the number of elements stored before the first object */
5363 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
5365 for(i
=*ptr
-1; i
>=0; i
--)
5366 basic_ostream_short_vbase_dtor(this+i
);
5367 operator_delete(ptr
);
5369 basic_ostream_short_vbase_dtor(this);
5371 operator_delete(this);
5377 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
5378 /* ?flush@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
5379 DEFINE_THISCALL_WRAPPER(basic_ostream_short_flush
, 4)
5380 basic_ostream_wchar
* __thiscall
basic_ostream_short_flush(basic_ostream_wchar
*this)
5382 /* this function is not matching C++ specification */
5383 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5385 TRACE("(%p)\n", this);
5387 if(basic_ios_short_rdbuf_get(base
) && ios_base_good(&base
->base
)
5388 && basic_streambuf_wchar_pubsync(basic_ios_short_rdbuf_get(base
))==-1)
5389 basic_ios_short_setstate(base
, IOSTATE_badbit
);
5393 /* ?flush@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
5394 /* ?flush@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
5395 basic_ostream_wchar
* __cdecl
flush_ostream_short(basic_ostream_wchar
*ostream
)
5397 return basic_ostream_short_flush(ostream
);
5400 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
5401 /* ?osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
5402 DEFINE_THISCALL_WRAPPER(basic_ostream_short_osfx
, 4)
5403 void __thiscall
basic_ostream_short_osfx(basic_ostream_wchar
*this)
5405 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5407 TRACE("(%p)\n", this);
5409 if(base
->base
.fmtfl
& FMTFLAG_unitbuf
)
5410 basic_ostream_short_flush(this);
5413 static BOOL
basic_ostream_short_sentry_create(basic_ostream_wchar
*ostr
)
5415 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(ostr
);
5417 if(ios_base_good(&base
->base
) && base
->stream
)
5418 basic_ostream_short_flush(base
->stream
);
5420 return ios_base_good(&base
->base
);
5423 static void basic_ostream_short_sentry_destroy(basic_ostream_wchar
*ostr
)
5425 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(ostr
);
5427 if(ios_base_good(&base
->base
) && !__uncaught_exception())
5428 basic_ostream_short_osfx(ostr
);
5431 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE_NXZ */
5432 /* ?opfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA_NXZ */
5433 DEFINE_THISCALL_WRAPPER(basic_ostream_short_opfx
, 4)
5434 bool __thiscall
basic_ostream_short_opfx(basic_ostream_wchar
*this)
5436 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5438 TRACE("(%p)\n", this);
5440 if(ios_base_good(&base
->base
) && base
->stream
)
5441 basic_ostream_short_flush(base
->stream
);
5442 return ios_base_good(&base
->base
);
5445 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
5446 /* ?put@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
5447 DEFINE_THISCALL_WRAPPER(basic_ostream_short_put
, 8)
5448 basic_ostream_wchar
* __thiscall
basic_ostream_short_put(basic_ostream_wchar
*this, wchar_t ch
)
5450 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5452 TRACE("(%p %c)\n", this, ch
);
5454 if(!basic_ostream_short_sentry_create(this)
5455 || basic_streambuf_wchar_sputc(base
->strbuf
, ch
)==WEOF
) {
5456 basic_ostream_short_sentry_destroy(this);
5457 basic_ios_short_setstate(base
, IOSTATE_badbit
);
5461 basic_ostream_short_sentry_destroy(this);
5465 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
5466 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
5467 DEFINE_THISCALL_WRAPPER(basic_ostream_short_seekp
, 12)
5468 basic_ostream_wchar
* __thiscall
basic_ostream_short_seekp(basic_ostream_wchar
*this, streamoff off
, int way
)
5470 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5472 TRACE("(%p %Id %d)\n", this, off
, way
);
5474 if(!ios_base_fail(&base
->base
)) {
5477 basic_streambuf_wchar_pubseekoff(basic_ios_short_rdbuf_get(base
),
5478 &seek
, off
, way
, OPENMODE_out
);
5479 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
5480 basic_ios_short_setstate(base
, IOSTATE_failbit
);
5485 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
5486 /* ?seekp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
5487 DEFINE_THISCALL_WRAPPER(basic_ostream_short_seekp_fpos
, 28)
5488 basic_ostream_wchar
* __thiscall
basic_ostream_short_seekp_fpos(basic_ostream_wchar
*this, fpos_int pos
)
5490 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5492 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
5494 if(!ios_base_fail(&base
->base
)) {
5497 basic_streambuf_wchar_pubseekpos(basic_ios_short_rdbuf_get(base
),
5498 &seek
, pos
, OPENMODE_out
);
5499 if(seek
.off
==-1 && seek
.pos
==0 && seek
.state
==0)
5500 basic_ios_short_setstate(base
, IOSTATE_failbit
);
5505 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
5506 /* ?tellp@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
5507 DEFINE_THISCALL_WRAPPER(basic_ostream_short_tellp
, 8)
5508 fpos_int
* __thiscall
basic_ostream_short_tellp(basic_ostream_wchar
*this, fpos_int
*ret
)
5510 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5512 TRACE("(%p)\n", this);
5514 if(!ios_base_fail(&base
->base
)) {
5515 basic_streambuf_wchar_pubseekoff(basic_ios_short_rdbuf_get(base
),
5516 ret
, 0, SEEKDIR_cur
, OPENMODE_out
);
5525 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV12@PBGH@Z */
5526 /* ?write@?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEBG_J@Z */
5527 DEFINE_THISCALL_WRAPPER(basic_ostream_short_write
, 12)
5528 basic_ostream_wchar
* __thiscall
basic_ostream_short_write(basic_ostream_wchar
*this, const wchar_t *str
, streamsize count
)
5530 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5532 TRACE("(%p %s %Id)\n", this, debugstr_w(str
), count
);
5534 if(!basic_ostream_short_sentry_create(this)
5535 || basic_streambuf_wchar_sputn(base
->strbuf
, str
, count
)!=count
) {
5536 basic_ostream_short_sentry_destroy(this);
5537 basic_ios_short_setstate(base
, IOSTATE_badbit
);
5541 basic_ostream_short_sentry_destroy(this);
5545 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@F@Z */
5546 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@F@Z */
5547 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_short
, 8)
5548 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_short(basic_ostream_wchar
*this, short val
)
5550 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5551 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5552 int state
= IOSTATE_goodbit
;
5554 TRACE("(%p %d)\n", this, val
);
5556 if(basic_ostream_short_sentry_create(this)) {
5557 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5558 ostreambuf_iterator_wchar dest
;
5560 memset(&dest
, 0, sizeof(dest
));
5561 dest
.strbuf
= strbuf
;
5562 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
),
5563 (ios_base_flags_get(&base
->base
) & FMTFLAG_basefield
& (FMTFLAG_oct
| FMTFLAG_hex
))
5564 ? (LONG
)((unsigned short)val
) : (LONG
)val
);
5566 basic_ostream_short_sentry_destroy(this);
5568 basic_ios_short_setstate(base
, state
);
5572 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAEAAV01@G@Z */
5573 /* ??6?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAAAEAV01@G@Z */
5574 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ushort
, 8)
5575 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ushort(basic_ostream_wchar
*this, unsigned short val
)
5577 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5578 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5579 int state
= IOSTATE_goodbit
;
5581 TRACE("(%p %d)\n", this, val
);
5583 if(basic_ostream_short_sentry_create(this)) {
5584 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5585 ostreambuf_iterator_wchar dest
;
5587 memset(&dest
, 0, sizeof(dest
));
5588 dest
.strbuf
= strbuf
;
5589 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5591 basic_ostream_short_sentry_destroy(this);
5593 basic_ios_short_setstate(base
, state
);
5597 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@H@Z */
5598 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@H@Z */
5599 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@J@Z */
5600 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@J@Z */
5601 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int
, 8)
5602 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_int(basic_ostream_wchar
*this, int val
)
5604 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5605 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5606 int state
= IOSTATE_goodbit
;
5608 TRACE("(%p %d)\n", this, val
);
5610 if(basic_ostream_short_sentry_create(this)) {
5611 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5612 ostreambuf_iterator_wchar dest
;
5614 memset(&dest
, 0, sizeof(dest
));
5615 dest
.strbuf
= strbuf
;
5616 num_put_wchar_put_long(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5618 basic_ostream_short_sentry_destroy(this);
5620 basic_ios_short_setstate(base
, state
);
5624 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@I@Z */
5625 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@I@Z */
5626 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@K@Z */
5627 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@K@Z */
5628 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint
, 8)
5629 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_uint(basic_ostream_wchar
*this, unsigned int val
)
5631 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5632 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5633 int state
= IOSTATE_goodbit
;
5635 TRACE("(%p %u)\n", this, val
);
5637 if(basic_ostream_short_sentry_create(this)) {
5638 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5639 ostreambuf_iterator_wchar dest
;
5641 memset(&dest
, 0, sizeof(dest
));
5642 dest
.strbuf
= strbuf
;
5643 num_put_wchar_put_ulong(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5645 basic_ostream_short_sentry_destroy(this);
5647 basic_ios_short_setstate(base
, state
);
5651 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@M@Z */
5652 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@M@Z */
5653 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_float
, 8)
5654 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_float(basic_ostream_wchar
*this, float val
)
5656 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5657 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5658 int state
= IOSTATE_goodbit
;
5660 TRACE("(%p %f)\n", this, val
);
5662 if(basic_ostream_short_sentry_create(this)) {
5663 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5664 ostreambuf_iterator_wchar dest
;
5666 memset(&dest
, 0, sizeof(dest
));
5667 dest
.strbuf
= strbuf
;
5668 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5670 basic_ostream_short_sentry_destroy(this);
5672 basic_ios_short_setstate(base
, state
);
5676 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@N@Z */
5677 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@N@Z */
5678 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_double
, 12)
5679 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_double(basic_ostream_wchar
*this, double val
)
5681 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5682 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5683 int state
= IOSTATE_goodbit
;
5685 TRACE("(%p %lf)\n", this, val
);
5687 if(basic_ostream_short_sentry_create(this)) {
5688 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5689 ostreambuf_iterator_wchar dest
;
5691 memset(&dest
, 0, sizeof(dest
));
5692 dest
.strbuf
= strbuf
;
5693 num_put_wchar_put_double(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5695 basic_ostream_short_sentry_destroy(this);
5697 basic_ios_short_setstate(base
, state
);
5701 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@O@Z */
5702 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@O@Z */
5703 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ldouble
, 12)
5704 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ldouble(basic_ostream_wchar
*this, double val
)
5706 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5707 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5708 int state
= IOSTATE_goodbit
;
5710 TRACE("(%p %lf)\n", this, val
);
5712 if(basic_ostream_short_sentry_create(this)) {
5713 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5714 ostreambuf_iterator_wchar dest
;
5716 memset(&dest
, 0, sizeof(dest
));
5717 dest
.strbuf
= strbuf
;
5718 num_put_wchar_put_ldouble(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5720 basic_ostream_short_sentry_destroy(this);
5722 basic_ios_short_setstate(base
, state
);
5726 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5727 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
5728 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_streambuf
, 8)
5729 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_streambuf(basic_ostream_wchar
*this, basic_streambuf_wchar
*val
)
5731 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5732 IOSB_iostate state
= IOSTATE_badbit
;
5733 unsigned short c
= '\n';
5735 TRACE("(%p %p)\n", this, val
);
5737 if(basic_ostream_short_sentry_create(this)) {
5738 for(c
= basic_streambuf_wchar_sgetc(val
); c
!=WEOF
;
5739 c
= basic_streambuf_wchar_snextc(val
)) {
5740 state
= IOSTATE_goodbit
;
5742 if(basic_streambuf_wchar_sputc(base
->strbuf
, c
) == WEOF
) {
5743 state
= IOSTATE_badbit
;
5748 state
= IOSTATE_badbit
;
5750 basic_ostream_short_sentry_destroy(this);
5752 ios_base_width_set(&base
->base
, 0);
5753 basic_ios_short_setstate(base
, state
);
5757 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z */
5758 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEBX@Z */
5759 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_ptr
, 8)
5760 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_ptr(basic_ostream_wchar
*this, const void *val
)
5762 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5763 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5764 int state
= IOSTATE_goodbit
;
5766 TRACE("(%p %p)\n", this, val
);
5768 if(basic_ostream_short_sentry_create(this)) {
5769 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5770 ostreambuf_iterator_wchar dest
;
5772 memset(&dest
, 0, sizeof(dest
));
5773 dest
.strbuf
= strbuf
;
5774 num_put_wchar_put_ptr(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5776 basic_ostream_short_sentry_destroy(this);
5778 basic_ios_short_setstate(base
, state
);
5782 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_J@Z */
5783 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_J@Z */
5784 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_int64
, 12)
5785 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_int64(basic_ostream_wchar
*this, __int64 val
)
5787 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5788 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5789 int state
= IOSTATE_goodbit
;
5791 TRACE("(%p)\n", this);
5793 if(basic_ostream_short_sentry_create(this)) {
5794 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5795 ostreambuf_iterator_wchar dest
;
5797 memset(&dest
, 0, sizeof(dest
));
5798 dest
.strbuf
= strbuf
;
5799 num_put_wchar_put_int64(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5801 basic_ostream_short_sentry_destroy(this);
5803 basic_ios_short_setstate(base
, state
);
5807 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_K@Z */
5808 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_K@Z */
5809 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_uint64
, 12)
5810 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_uint64(basic_ostream_wchar
*this, unsigned __int64 val
)
5812 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5813 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5814 int state
= IOSTATE_goodbit
;
5816 TRACE("(%p)\n", this);
5818 if(basic_ostream_short_sentry_create(this)) {
5819 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5820 ostreambuf_iterator_wchar dest
;
5822 memset(&dest
, 0, sizeof(dest
));
5823 dest
.strbuf
= strbuf
;
5824 num_put_wchar_put_uint64(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5826 basic_ostream_short_sentry_destroy(this);
5828 basic_ios_short_setstate(base
, state
);
5832 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@_N@Z */
5833 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@_N@Z */
5834 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_bool
, 8)
5835 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_bool(basic_ostream_wchar
*this, bool val
)
5837 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(this);
5838 const num_put
*numput
= num_put_short_use_facet(IOS_LOCALE(basic_ios_short_rdbuf_get(base
)));
5839 int state
= IOSTATE_goodbit
;
5841 TRACE("(%p %x)\n", this, val
);
5843 if(basic_ostream_short_sentry_create(this)) {
5844 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
5845 ostreambuf_iterator_wchar dest
;
5847 memset(&dest
, 0, sizeof(dest
));
5848 dest
.strbuf
= strbuf
;
5849 num_put_wchar_put_bool(numput
, &dest
, dest
, &base
->base
, basic_ios_short_fill_get(base
), val
);
5851 basic_ostream_short_sentry_destroy(this);
5853 basic_ios_short_setstate(base
, state
);
5857 /* ?ends@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
5858 /* ?ends@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
5859 basic_ostream_wchar
* __cdecl
basic_ostream_short_ends(basic_ostream_wchar
*ostr
)
5861 TRACE("(%p)\n", ostr
);
5863 basic_ostream_short_put(ostr
, 0);
5867 /* ?endl@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@1@AAV21@@Z */
5868 /* ?endl@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
5869 basic_ostream_wchar
* __cdecl
basic_ostream_short_endl(basic_ostream_wchar
*ostr
)
5871 TRACE("(%p)\n", ostr
);
5873 basic_ostream_short_put(ostr
, '\n');
5874 basic_ostream_short_flush(ostr
);
5878 /* ??$?6GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
5879 /* ??$?6GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
5880 basic_ostream_wchar
* __cdecl
basic_ostream_short_print_bstr(basic_ostream_wchar
*ostr
, const basic_string_wchar
*str
)
5882 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(ostr
);
5883 IOSB_iostate state
= IOSTATE_goodbit
;
5885 TRACE("(%p %p)\n", ostr
, str
);
5887 if(basic_ostream_short_sentry_create(ostr
)) {
5888 size_t len
= MSVCP_basic_string_wchar_length(str
);
5889 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5891 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5892 for(; pad
!=0; pad
--) {
5893 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5894 state
= IOSTATE_badbit
;
5900 if(state
== IOSTATE_goodbit
) {
5901 if(basic_streambuf_wchar_sputn(base
->strbuf
, MSVCP_basic_string_wchar_c_str(str
), len
) != len
)
5902 state
= IOSTATE_badbit
;
5905 if(state
== IOSTATE_goodbit
) {
5906 for(; pad
!=0; pad
--) {
5907 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5908 state
= IOSTATE_badbit
;
5914 base
->base
.wide
= 0;
5916 state
= IOSTATE_badbit
;
5918 basic_ostream_short_sentry_destroy(ostr
);
5920 basic_ios_short_setstate(base
, state
);
5924 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@G@Z */
5925 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@G@Z */
5926 basic_ostream_wchar
* __cdecl
basic_ostream_short_print_ch(basic_ostream_wchar
*ostr
, wchar_t ch
)
5928 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(ostr
);
5929 IOSB_iostate state
= IOSTATE_goodbit
;
5931 TRACE("(%p %d)\n", ostr
, ch
);
5933 if(basic_ostream_short_sentry_create(ostr
)) {
5934 streamsize pad
= (base
->base
.wide
>1 ? base
->base
.wide
-1 : 0);
5936 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5937 for(; pad
!=0; pad
--) {
5938 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5939 state
= IOSTATE_badbit
;
5945 if(state
== IOSTATE_goodbit
) {
5946 if(basic_streambuf_wchar_sputc(base
->strbuf
, ch
) == WEOF
)
5947 state
= IOSTATE_badbit
;
5950 if(state
== IOSTATE_goodbit
) {
5951 for(; pad
!=0; pad
--) {
5952 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5953 state
= IOSTATE_badbit
;
5959 base
->base
.wide
= 0;
5961 state
= IOSTATE_badbit
;
5963 basic_ostream_short_sentry_destroy(ostr
);
5965 basic_ios_short_setstate(base
, state
);
5969 /* ??$?6GU?$char_traits@G@std@@@std@@YAAAV?$basic_ostream@GU?$char_traits@G@std@@@0@AAV10@PBG@Z */
5970 /* ??$?6GU?$char_traits@G@std@@@std@@YAAEAV?$basic_ostream@GU?$char_traits@G@std@@@0@AEAV10@PEBG@Z */
5971 basic_ostream_wchar
* __cdecl
basic_ostream_short_print_str(basic_ostream_wchar
*ostr
, const wchar_t *str
)
5973 basic_ios_wchar
*base
= basic_ostream_short_get_basic_ios(ostr
);
5974 IOSB_iostate state
= IOSTATE_goodbit
;
5976 TRACE("(%p %s)\n", ostr
, debugstr_w(str
));
5978 if(basic_ostream_short_sentry_create(ostr
)) {
5979 size_t len
= wcslen(str
);
5980 streamsize pad
= (base
->base
.wide
>len
? base
->base
.wide
-len
: 0);
5982 if((base
->base
.fmtfl
& FMTFLAG_adjustfield
) != FMTFLAG_left
) {
5983 for(; pad
!=0; pad
--) {
5984 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5985 state
= IOSTATE_badbit
;
5991 if(state
== IOSTATE_goodbit
) {
5992 if(basic_streambuf_wchar_sputn(base
->strbuf
, str
, len
) != len
)
5993 state
= IOSTATE_badbit
;
5996 if(state
== IOSTATE_goodbit
) {
5997 for(; pad
!=0; pad
--) {
5998 if(basic_streambuf_wchar_sputc(base
->strbuf
, base
->fillch
) == WEOF
) {
5999 state
= IOSTATE_badbit
;
6005 base
->base
.wide
= 0;
6007 state
= IOSTATE_badbit
;
6009 basic_ostream_short_sentry_destroy(ostr
);
6011 basic_ios_short_setstate(base
, state
);
6015 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
6016 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
6017 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_func
, 8)
6018 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_func(basic_ostream_wchar
*this,
6019 basic_ostream_wchar
* (__cdecl
*pfunc
)(basic_ostream_wchar
*))
6021 TRACE("(%p %p)\n", this, pfunc
);
6026 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
6027 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
6028 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_func_basic_ios
, 8)
6029 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_func_basic_ios(basic_ostream_wchar
*this,
6030 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
6032 TRACE("(%p %p)\n", this, pfunc
);
6033 pfunc(basic_ostream_short_get_basic_ios(this));
6037 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
6038 /* ??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
6039 DEFINE_THISCALL_WRAPPER(basic_ostream_short_print_func_ios_base
, 8)
6040 basic_ostream_wchar
* __thiscall
basic_ostream_short_print_func_ios_base(
6041 basic_ostream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
6043 TRACE("(%p %p)\n", this, pfunc
);
6044 pfunc(&basic_ostream_short_get_basic_ios(this)->base
);
6048 /* Caution: basic_istream uses virtual inheritance. */
6049 static inline basic_ios_char
* basic_istream_char_get_basic_ios(basic_istream_char
*this)
6051 return (basic_ios_char
*)((char*)this+this->vbtable
[1]);
6054 static inline basic_ios_char
* basic_istream_char_to_basic_ios(basic_istream_char
*ptr
)
6056 return (basic_ios_char
*)((char*)ptr
+basic_istream_char_vbtable
[1]);
6059 static inline basic_istream_char
* basic_istream_char_from_basic_ios(basic_ios_char
*ptr
)
6061 return (basic_istream_char
*)((char*)ptr
-basic_istream_char_vbtable
[1]);
6064 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
6065 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
6066 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor
, 16)
6067 basic_istream_char
* __thiscall
basic_istream_char_ctor(basic_istream_char
*this, basic_streambuf_char
*strbuf
, bool isstd
, bool virt_init
)
6069 basic_ios_char
*base
;
6071 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
6074 this->vbtable
= basic_istream_char_vbtable
;
6075 base
= basic_istream_char_get_basic_ios(this);
6076 basic_ios_char_ctor(base
);
6078 base
= basic_istream_char_get_basic_ios(this);
6081 base
->base
.vtable
= &basic_istream_char_vtable
;
6083 basic_ios_char_init(base
, strbuf
, isstd
);
6087 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z */
6088 /* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
6089 DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_uninitialized
, 12)
6090 basic_istream_char
* __thiscall
basic_istream_char_ctor_uninitialized(basic_istream_char
*this, int uninitialized
, bool virt_init
)
6092 basic_ios_char
*base
;
6094 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
6097 this->vbtable
= basic_istream_char_vbtable
;
6098 base
= basic_istream_char_get_basic_ios(this);
6099 basic_ios_char_ctor(base
);
6101 base
= basic_istream_char_get_basic_ios(this);
6104 base
->base
.vtable
= &basic_istream_char_vtable
;
6105 ios_base_Addstd(&base
->base
);
6109 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
6110 /* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
6111 DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor
, 4)
6112 void __thiscall
basic_istream_char_dtor(basic_ios_char
*base
)
6114 basic_istream_char
*this = basic_istream_char_from_basic_ios(base
);
6116 /* don't destroy virtual base here */
6117 TRACE("(%p)\n", this);
6120 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6121 /* ??_D?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6122 DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor
, 4)
6123 void __thiscall
basic_istream_char_vbase_dtor(basic_istream_char
*this)
6125 TRACE("(%p)\n", this);
6126 basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
6127 basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
6130 DEFINE_THISCALL_WRAPPER(basic_istream_char_vector_dtor
, 8)
6131 basic_istream_char
* __thiscall
basic_istream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
6133 basic_istream_char
*this = basic_istream_char_from_basic_ios(base
);
6135 TRACE("(%p %x)\n", this, flags
);
6138 /* we have an array, with the number of elements stored before the first object */
6139 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
6141 for(i
=*ptr
-1; i
>=0; i
--)
6142 basic_istream_char_vbase_dtor(this+i
);
6143 operator_delete(ptr
);
6145 basic_istream_char_vbase_dtor(this);
6147 operator_delete(this);
6153 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z */
6154 /* ?ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_N_N@Z */
6155 DEFINE_THISCALL_WRAPPER(basic_istream_char_ipfx
, 8)
6156 bool __thiscall
basic_istream_char_ipfx(basic_istream_char
*this, bool noskip
)
6158 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6160 TRACE("(%p %d)\n", this, noskip
);
6162 if(ios_base_good(&base
->base
)) {
6163 if(basic_ios_char_tie_get(base
))
6164 basic_ostream_char_flush(basic_ios_char_tie_get(base
));
6166 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
6167 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6168 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(base
->strbuf
));
6171 for(ch
= basic_streambuf_char_sgetc(strbuf
); ;
6172 ch
= basic_streambuf_char_snextc(strbuf
)) {
6173 if(ch
==EOF
|| !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
6179 if(!ios_base_good(&base
->base
)) {
6180 basic_ios_char_setstate(base
, IOSTATE_failbit
);
6187 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXXZ */
6188 /* ?isfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
6189 DEFINE_THISCALL_WRAPPER(basic_istream_char_isfx
, 4)
6190 void __thiscall
basic_istream_char_isfx(basic_istream_char
*this)
6192 TRACE("(%p)\n", this);
6195 static BOOL
basic_istream_char_sentry_create(basic_istream_char
*istr
, bool noskip
)
6197 return basic_istream_char_ipfx(istr
, noskip
);
6200 static void basic_istream_char_sentry_destroy(basic_istream_char
*istr
)
6204 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBEHXZ */
6205 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QEBA_JXZ */
6206 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBA_JXZ */
6207 /* ?gcount@?$basic_istream@DU?$char_traits@D@std@@@std@@QBE_JXZ */
6208 DEFINE_THISCALL_WRAPPER(basic_istream_char_gcount
, 4)
6209 streamsize __thiscall
basic_istream_char_gcount(const basic_istream_char
*this)
6211 TRACE("(%p)\n", this);
6215 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
6216 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
6217 DEFINE_THISCALL_WRAPPER(basic_istream_char_get
, 4)
6218 int __thiscall
basic_istream_char_get(basic_istream_char
*this)
6220 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6223 TRACE("(%p)\n", this);
6227 if(!basic_istream_char_sentry_create(this, TRUE
)) {
6228 basic_istream_char_sentry_destroy(this);
6232 ret
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(base
));
6233 basic_istream_char_sentry_destroy(this);
6235 basic_ios_char_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
6242 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z */
6243 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z */
6244 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_ch
, 8)
6245 basic_istream_char
* __thiscall
basic_istream_char_get_ch(basic_istream_char
*this, char *ch
)
6249 TRACE("(%p %p)\n", this, ch
);
6251 ret
= basic_istream_char_get(this);
6257 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
6258 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
6259 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str_delim
, 16)
6260 basic_istream_char
* __thiscall
basic_istream_char_get_str_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
6262 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6265 TRACE("(%p %p %Id %s)\n", this, str
, count
, debugstr_an(&delim
, 1));
6269 if(basic_istream_char_sentry_create(this, TRUE
)) {
6270 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6272 for(ch
= basic_streambuf_char_sgetc(strbuf
); count
>1;
6273 ch
= basic_streambuf_char_snextc(strbuf
)) {
6274 if(ch
==EOF
|| ch
==delim
)
6282 basic_istream_char_sentry_destroy(this);
6284 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
6285 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
6291 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6292 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6293 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_str
, 12)
6294 basic_istream_char
* __thiscall
basic_istream_char_get_str(basic_istream_char
*this, char *str
, streamsize count
)
6296 return basic_istream_char_get_str_delim(this, str
, count
, '\n');
6299 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
6300 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@D@Z */
6301 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf_delim
, 12)
6302 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf_delim(basic_istream_char
*this, basic_streambuf_char
*strbuf
, char delim
)
6304 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6307 TRACE("(%p %p %s)\n", this, strbuf
, debugstr_an(&delim
, 1));
6311 if(basic_istream_char_sentry_create(this, TRUE
)) {
6312 basic_streambuf_char
*strbuf_read
= basic_ios_char_rdbuf_get(base
);
6314 for(ch
= basic_streambuf_char_sgetc(strbuf_read
); ;
6315 ch
= basic_streambuf_char_snextc(strbuf_read
)) {
6316 if(ch
==EOF
|| ch
==delim
)
6319 if(basic_streambuf_char_sputc(strbuf
, ch
) == EOF
)
6324 basic_istream_char_sentry_destroy(this);
6326 basic_ios_char_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
6327 (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
6331 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
6332 /* ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z */
6333 DEFINE_THISCALL_WRAPPER(basic_istream_char_get_streambuf
, 8)
6334 basic_istream_char
* __thiscall
basic_istream_char_get_streambuf(basic_istream_char
*this, basic_streambuf_char
*strbuf
)
6336 return basic_istream_char_get_streambuf_delim(this, strbuf
, '\n');
6339 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADHD@Z */
6340 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_JD@Z */
6341 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline_delim
, 16)
6342 basic_istream_char
* __thiscall
basic_istream_char_getline_delim(basic_istream_char
*this, char *str
, streamsize count
, char delim
)
6344 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6345 int ch
= (unsigned char)delim
;
6347 TRACE("(%p %p %Id %s)\n", this, str
, count
, debugstr_an(&delim
, 1));
6351 if(basic_istream_char_sentry_create(this, TRUE
) && count
>0) {
6352 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6355 ch
= basic_streambuf_char_sbumpc(strbuf
);
6357 if(ch
==EOF
|| ch
==(unsigned char)delim
)
6365 if(ch
== (unsigned char)delim
)
6367 else if(ch
!= EOF
) {
6368 ch
= basic_streambuf_char_sgetc(strbuf
);
6370 if(ch
== (unsigned char)delim
) {
6371 basic_streambuf_char__Gninc(strbuf
);
6376 basic_istream_char_sentry_destroy(this);
6378 basic_ios_char_setstate(base
, (ch
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
6379 (!this->count
|| (ch
!=(unsigned char)delim
&& ch
!=EOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
6385 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6386 /* ?getline@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6387 DEFINE_THISCALL_WRAPPER(basic_istream_char_getline
, 12)
6388 basic_istream_char
* __thiscall
basic_istream_char_getline(basic_istream_char
*this, char *str
, streamsize count
)
6390 return basic_istream_char_getline_delim(this, str
, count
, '\n');
6393 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@HH@Z */
6394 /* ?ignore@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
6395 DEFINE_THISCALL_WRAPPER(basic_istream_char_ignore
, 12)
6396 basic_istream_char
* __thiscall
basic_istream_char_ignore(basic_istream_char
*this, streamsize count
, int delim
)
6398 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6399 int ch
= (unsigned char)delim
;
6402 TRACE("(%p %Id %d)\n", this, count
, delim
);
6406 if(basic_istream_char_sentry_create(this, TRUE
)) {
6407 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6408 state
= IOSTATE_goodbit
;
6411 ch
= basic_streambuf_char_sbumpc(strbuf
);
6414 state
= IOSTATE_eofbit
;
6422 if(count
!= INT_MAX
)
6426 state
= IOSTATE_failbit
;
6427 basic_istream_char_sentry_destroy(this);
6429 basic_ios_char_setstate(base
, state
);
6433 /* ?ws@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@1@AAV21@@Z */
6434 /* ?ws@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@1@AEAV21@@Z */
6435 basic_istream_char
* __cdecl
ws_basic_istream_char(basic_istream_char
*istream
)
6437 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
6440 TRACE("(%p)\n", istream
);
6442 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
6443 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6444 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(strbuf
));
6446 for(ch
= basic_streambuf_char_sgetc(strbuf
); ctype_char_is_ch(ctype
, _SPACE
, ch
);
6447 ch
= basic_streambuf_char_snextc(strbuf
)) {
6452 basic_istream_char_sentry_destroy(istream
);
6455 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
6459 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
6460 /* ?peek@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
6461 DEFINE_THISCALL_WRAPPER(basic_istream_char_peek
, 4)
6462 int __thiscall
basic_istream_char_peek(basic_istream_char
*this)
6464 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6467 TRACE("(%p)\n", this);
6471 if(basic_istream_char_sentry_create(this, TRUE
))
6472 ret
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
6473 basic_istream_char_sentry_destroy(this);
6476 basic_ios_char_setstate(base
, IOSTATE_eofbit
);
6481 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@PADH@Z */
6482 /* ?read@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@PEAD_J@Z */
6483 DEFINE_THISCALL_WRAPPER(basic_istream_char_read
, 12)
6484 basic_istream_char
* __thiscall
basic_istream_char_read(basic_istream_char
*this, char *str
, streamsize count
)
6486 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6487 IOSB_iostate state
= IOSTATE_goodbit
;
6489 TRACE("(%p %p %Id)\n", this, str
, count
);
6491 if(basic_istream_char_sentry_create(this, TRUE
)) {
6492 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6494 this->count
= basic_streambuf_char_sgetn(strbuf
, str
, count
);
6495 if(this->count
!= count
)
6496 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
6500 basic_istream_char_sentry_destroy(this);
6502 basic_ios_char_setstate(base
, state
);
6506 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHPADH@Z */
6507 /* ?readsome@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA_JPEAD_J@Z */
6508 DEFINE_THISCALL_WRAPPER(basic_istream_char_readsome
, 12)
6509 streamsize __thiscall
basic_istream_char_readsome(basic_istream_char
*this, char *str
, streamsize count
)
6511 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6512 IOSB_iostate state
= IOSTATE_goodbit
;
6514 TRACE("(%p %p %Id)\n", this, str
, count
);
6518 if(basic_istream_char_sentry_create(this, TRUE
)) {
6519 streamsize avail
= basic_streambuf_char_in_avail(basic_ios_char_rdbuf_get(base
));
6524 state
|= IOSTATE_eofbit
;
6526 basic_istream_char_read(this, str
, avail
);
6528 state
|= IOSTATE_failbit
;
6530 basic_istream_char_sentry_destroy(this);
6532 basic_ios_char_setstate(base
, state
);
6536 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@D@Z */
6537 /* ?putback@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z */
6538 DEFINE_THISCALL_WRAPPER(basic_istream_char_putback
, 8)
6539 basic_istream_char
* __thiscall
basic_istream_char_putback(basic_istream_char
*this, char ch
)
6541 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6542 IOSB_iostate state
= IOSTATE_goodbit
;
6544 TRACE("(%p %c)\n", this, ch
);
6548 if(basic_istream_char_sentry_create(this, TRUE
)) {
6549 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6551 if(!ios_base_good(&base
->base
))
6552 state
|= IOSTATE_failbit
;
6553 else if(!strbuf
|| basic_streambuf_char_sputbackc(strbuf
, ch
)==EOF
)
6554 state
|= IOSTATE_badbit
;
6556 basic_istream_char_sentry_destroy(this);
6558 basic_ios_char_setstate(base
, state
);
6562 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ */
6563 /* ?unget@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ */
6564 DEFINE_THISCALL_WRAPPER(basic_istream_char_unget
, 4)
6565 basic_istream_char
* __thiscall
basic_istream_char_unget(basic_istream_char
*this)
6567 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6568 IOSB_iostate state
= IOSTATE_goodbit
;
6570 TRACE("(%p)\n", this);
6574 if(basic_istream_char_sentry_create(this, TRUE
)) {
6575 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6577 if(!ios_base_good(&base
->base
))
6578 state
|= IOSTATE_failbit
;
6579 else if(!strbuf
|| basic_streambuf_char_sungetc(strbuf
)==EOF
)
6580 state
|= IOSTATE_badbit
;
6582 basic_istream_char_sentry_destroy(this);
6584 basic_ios_char_setstate(base
, state
);
6588 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ */
6589 /* ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ */
6590 DEFINE_THISCALL_WRAPPER(basic_istream_char_sync
, 4)
6591 int __thiscall
basic_istream_char_sync(basic_istream_char
*this)
6593 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6594 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6596 TRACE("(%p)\n", this);
6601 if(basic_istream_char_sentry_create(this, TRUE
)) {
6602 if(basic_streambuf_char_pubsync(strbuf
) != -1) {
6603 basic_istream_char_sentry_destroy(this);
6607 basic_istream_char_sentry_destroy(this);
6609 basic_ios_char_setstate(base
, IOSTATE_badbit
);
6613 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
6614 /* ?tellg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
6615 DEFINE_THISCALL_WRAPPER(basic_istream_char_tellg
, 8)
6616 fpos_int
* __thiscall
basic_istream_char_tellg(basic_istream_char
*this, fpos_int
*ret
)
6618 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6620 TRACE("(%p %p)\n", this, ret
);
6622 if(ios_base_fail(&base
->base
)) {
6629 basic_streambuf_char_pubseekoff(basic_ios_char_rdbuf_get(base
),
6630 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
6635 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
6636 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
6637 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JH@Z */
6638 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@_JH@Z */
6639 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg
, 12)
6640 basic_istream_char
* __thiscall
basic_istream_char_seekg(basic_istream_char
*this, streamoff off
, int dir
)
6642 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6644 TRACE("(%p %Id %d)\n", this, off
, dir
);
6646 if(!ios_base_fail(&base
->base
)) {
6647 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6650 basic_streambuf_char_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
6656 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
6657 /* ?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
6658 DEFINE_THISCALL_WRAPPER(basic_istream_char_seekg_fpos
, 28)
6659 basic_istream_char
* __thiscall
basic_istream_char_seekg_fpos(basic_istream_char
*this, fpos_int pos
)
6661 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6663 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
6665 if(!ios_base_fail(&base
->base
)) {
6666 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6669 basic_streambuf_char_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
6675 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAF@Z */
6676 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAF@Z */
6677 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_short
, 8)
6678 basic_istream_char
* __thiscall
basic_istream_char_read_short(basic_istream_char
*this, short *v
)
6680 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6681 int state
= IOSTATE_goodbit
;
6683 TRACE("(%p %p)\n", this, v
);
6685 if(basic_istream_char_sentry_create(this, FALSE
)) {
6686 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6687 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6688 istreambuf_iterator_char first
={0}, last
={0};
6691 first
.strbuf
= strbuf
;
6692 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
6694 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
6697 state
|= IOSTATE_failbit
;
6699 basic_istream_char_sentry_destroy(this);
6701 basic_ios_char_setstate(base
, state
);
6705 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAG@Z */
6706 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAG@Z */
6707 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ushort
, 8)
6708 basic_istream_char
* __thiscall
basic_istream_char_read_ushort(basic_istream_char
*this, unsigned short *v
)
6710 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6711 int state
= IOSTATE_goodbit
;
6713 TRACE("(%p %p)\n", this, v
);
6715 if(basic_istream_char_sentry_create(this, FALSE
)) {
6716 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6717 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6718 istreambuf_iterator_char first
={0}, last
={0};
6720 first
.strbuf
= strbuf
;
6721 num_get_char_get_ushort(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6723 basic_istream_char_sentry_destroy(this);
6725 basic_ios_char_setstate(base
, state
);
6729 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAH@Z */
6730 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAH@Z */
6731 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int
, 8)
6732 basic_istream_char
* __thiscall
basic_istream_char_read_int(basic_istream_char
*this, int *v
)
6734 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6735 int state
= IOSTATE_goodbit
;
6737 TRACE("(%p %p)\n", this, v
);
6739 if(basic_istream_char_sentry_create(this, FALSE
)) {
6740 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6741 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6742 istreambuf_iterator_char first
={0}, last
={0};
6744 first
.strbuf
= strbuf
;
6745 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, (LONG
*)v
);
6747 basic_istream_char_sentry_destroy(this);
6749 basic_ios_char_setstate(base
, state
);
6753 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z */
6754 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAI@Z */
6755 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint
, 8)
6756 basic_istream_char
* __thiscall
basic_istream_char_read_uint(basic_istream_char
*this, unsigned int *v
)
6758 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6759 int state
= IOSTATE_goodbit
;
6761 TRACE("(%p %p)\n", this, v
);
6763 if(basic_istream_char_sentry_create(this, FALSE
)) {
6764 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6765 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6766 istreambuf_iterator_char first
={0}, last
={0};
6768 first
.strbuf
= strbuf
;
6769 num_get_char_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6771 basic_istream_char_sentry_destroy(this);
6773 basic_ios_char_setstate(base
, state
);
6777 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAJ@Z */
6778 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAJ@Z */
6779 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_long
, 8)
6780 basic_istream_char
* __thiscall
basic_istream_char_read_long(basic_istream_char
*this, LONG
*v
)
6782 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6783 int state
= IOSTATE_goodbit
;
6785 TRACE("(%p %p)\n", this, v
);
6787 if(basic_istream_char_sentry_create(this, FALSE
)) {
6788 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6789 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6790 istreambuf_iterator_char first
={0}, last
={0};
6792 first
.strbuf
= strbuf
;
6793 num_get_char_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6795 basic_istream_char_sentry_destroy(this);
6797 basic_ios_char_setstate(base
, state
);
6801 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAK@Z */
6802 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAK@Z */
6803 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ulong
, 8)
6804 basic_istream_char
* __thiscall
basic_istream_char_read_ulong(basic_istream_char
*this, ULONG
*v
)
6806 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6807 int state
= IOSTATE_goodbit
;
6809 TRACE("(%p %p)\n", this, v
);
6811 if(basic_istream_char_sentry_create(this, FALSE
)) {
6812 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6813 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6814 istreambuf_iterator_char first
={0}, last
={0};
6816 first
.strbuf
= strbuf
;
6817 num_get_char_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6819 basic_istream_char_sentry_destroy(this);
6821 basic_ios_char_setstate(base
, state
);
6825 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAM@Z */
6826 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAM@Z */
6827 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_float
, 8)
6828 basic_istream_char
* __thiscall
basic_istream_char_read_float(basic_istream_char
*this, float *v
)
6830 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6831 int state
= IOSTATE_goodbit
;
6833 TRACE("(%p %p)\n", this, v
);
6835 if(basic_istream_char_sentry_create(this, FALSE
)) {
6836 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6837 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6838 istreambuf_iterator_char first
={0}, last
={0};
6840 first
.strbuf
= strbuf
;
6841 num_get_char_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6843 basic_istream_char_sentry_destroy(this);
6845 basic_ios_char_setstate(base
, state
);
6849 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAN@Z */
6850 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAN@Z */
6851 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_double
, 8)
6852 basic_istream_char
* __thiscall
basic_istream_char_read_double(basic_istream_char
*this, double *v
)
6854 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6855 int state
= IOSTATE_goodbit
;
6857 TRACE("(%p %p)\n", this, v
);
6859 if(basic_istream_char_sentry_create(this, FALSE
)) {
6860 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6861 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6862 istreambuf_iterator_char first
={0}, last
={0};
6864 first
.strbuf
= strbuf
;
6865 num_get_char_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6867 basic_istream_char_sentry_destroy(this);
6869 basic_ios_char_setstate(base
, state
);
6873 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAO@Z */
6874 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAO@Z */
6875 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ldouble
, 8)
6876 basic_istream_char
* __thiscall
basic_istream_char_read_ldouble(basic_istream_char
*this, double *v
)
6878 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6879 int state
= IOSTATE_goodbit
;
6881 TRACE("(%p %p)\n", this, v
);
6883 if(basic_istream_char_sentry_create(this, FALSE
)) {
6884 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6885 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6886 istreambuf_iterator_char first
={0}, last
={0};
6888 first
.strbuf
= strbuf
;
6889 num_get_char_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6891 basic_istream_char_sentry_destroy(this);
6893 basic_ios_char_setstate(base
, state
);
6897 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAPAX@Z */
6898 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
6899 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_ptr
, 8)
6900 basic_istream_char
* __thiscall
basic_istream_char_read_ptr(basic_istream_char
*this, void **v
)
6902 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6903 int state
= IOSTATE_goodbit
;
6905 TRACE("(%p %p)\n", this, v
);
6907 if(basic_istream_char_sentry_create(this, FALSE
)) {
6908 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6909 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6910 istreambuf_iterator_char first
={0}, last
={0};
6912 first
.strbuf
= strbuf
;
6913 num_get_char_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6915 basic_istream_char_sentry_destroy(this);
6917 basic_ios_char_setstate(base
, state
);
6921 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_J@Z */
6922 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_J@Z */
6923 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_int64
, 8)
6924 basic_istream_char
* __thiscall
basic_istream_char_read_int64(basic_istream_char
*this, __int64
*v
)
6926 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6927 int state
= IOSTATE_goodbit
;
6929 TRACE("(%p %p)\n", this, v
);
6931 if(basic_istream_char_sentry_create(this, FALSE
)) {
6932 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6933 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6934 istreambuf_iterator_char first
={0}, last
={0};
6936 first
.strbuf
= strbuf
;
6937 num_get_char_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6939 basic_istream_char_sentry_destroy(this);
6941 basic_ios_char_setstate(base
, state
);
6945 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_K@Z */
6946 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_K@Z */
6947 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_uint64
, 8)
6948 basic_istream_char
* __thiscall
basic_istream_char_read_uint64(basic_istream_char
*this, unsigned __int64
*v
)
6950 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6951 int state
= IOSTATE_goodbit
;
6953 TRACE("(%p %p)\n", this, v
);
6955 if(basic_istream_char_sentry_create(this, FALSE
)) {
6956 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6957 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6958 istreambuf_iterator_char first
={0}, last
={0};
6960 first
.strbuf
= strbuf
;
6961 num_get_char_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6963 basic_istream_char_sentry_destroy(this);
6965 basic_ios_char_setstate(base
, state
);
6969 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AA_N@Z */
6970 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@AEA_N@Z */
6971 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_bool
, 8)
6972 basic_istream_char
* __thiscall
basic_istream_char_read_bool(basic_istream_char
*this, bool *v
)
6974 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
6975 int state
= IOSTATE_goodbit
;
6977 TRACE("(%p %p)\n", this, v
);
6979 if(basic_istream_char_sentry_create(this, FALSE
)) {
6980 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
6981 const num_get
*numget
= num_get_char_use_facet(IOS_LOCALE(strbuf
));
6982 istreambuf_iterator_char first
={0}, last
={0};
6984 first
.strbuf
= strbuf
;
6985 num_get_char_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
6987 basic_istream_char_sentry_destroy(this);
6989 basic_ios_char_setstate(base
, state
);
6993 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@D@Z */
6994 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@D@Z */
6995 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr_delim(
6996 basic_istream_char
*istream
, basic_string_char
*str
, char delim
)
6998 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
6999 IOSB_iostate state
= IOSTATE_goodbit
;
7000 int c
= (unsigned char)delim
;
7002 TRACE("(%p %p %s)\n", istream
, str
, debugstr_an(&delim
, 1));
7004 MSVCP_basic_string_char_clear(str
);
7005 if(basic_istream_char_sentry_create(istream
, TRUE
)) {
7006 basic_streambuf_char
*strbuf
= basic_ios_char_rdbuf_get(base
);
7008 c
= basic_streambuf_char_sgetc(strbuf
);
7009 for(; c
!=(unsigned char)delim
&& c
!=EOF
; c
= basic_streambuf_char_snextc(strbuf
))
7010 MSVCP_basic_string_char_append_ch(str
, c
);
7011 if(c
==EOF
) state
|= IOSTATE_eofbit
;
7012 else if(c
==(unsigned char)delim
) basic_streambuf_char_sbumpc(strbuf
);
7014 if(!MSVCP_basic_string_char_length(str
) && c
!=(unsigned char)delim
) state
|= IOSTATE_failbit
;
7016 basic_istream_char_sentry_destroy(istream
);
7018 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
), state
);
7022 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
7023 /* ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
7024 basic_istream_char
* __cdecl
basic_istream_char_getline_bstr(
7025 basic_istream_char
*istream
, basic_string_char
*str
)
7027 return basic_istream_char_getline_bstr_delim(istream
, str
, '\n');
7030 /* ??$?5DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
7031 /* ??$?5DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z */
7032 basic_istream_char
* __cdecl
basic_istream_char_read_bstr(
7033 basic_istream_char
*istream
, basic_string_char
*str
)
7035 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
7036 IOSB_iostate state
= IOSTATE_failbit
;
7039 TRACE("(%p %p)\n", istream
, str
);
7041 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
7042 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(base
->strbuf
));
7043 size_t count
= ios_base_width_get(&base
->base
);
7048 MSVCP_basic_string_char_clear(str
);
7050 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
7051 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
7052 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
)), count
--) {
7053 state
= IOSTATE_goodbit
;
7054 MSVCP_basic_string_char_append_ch(str
, c
);
7057 basic_istream_char_sentry_destroy(istream
);
7059 ios_base_width_set(&base
->base
, 0);
7060 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7064 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAD@Z */
7065 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAD@Z */
7066 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAC@Z */
7067 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAC@Z */
7068 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@PAE@Z */
7069 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@PEAE@Z */
7070 basic_istream_char
* __cdecl
basic_istream_char_read_str(basic_istream_char
*istream
, char *str
)
7072 basic_ios_char
*base
= basic_istream_char_get_basic_ios(istream
);
7073 IOSB_iostate state
= IOSTATE_failbit
;
7076 TRACE("(%p %p)\n", istream
, str
);
7078 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
7079 const ctype_char
*ctype
= ctype_char_use_facet(IOS_LOCALE(base
->strbuf
));
7080 size_t count
= ios_base_width_get(&base
->base
)-1;
7082 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
));
7083 c
!=EOF
&& !ctype_char_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
7084 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
)), count
--) {
7085 state
= IOSTATE_goodbit
;
7089 basic_istream_char_sentry_destroy(istream
);
7092 ios_base_width_set(&base
->base
, 0);
7093 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7097 /* ??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z */
7098 /* ??$?5DU?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAD@Z */
7099 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z */
7100 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAC@Z */
7101 /* ??$?5U?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z */
7102 /* ??$?5U?$char_traits@D@std@@@std@@YAAEAV?$basic_istream@DU?$char_traits@D@std@@@0@AEAV10@AEAE@Z */
7103 basic_istream_char
* __cdecl
basic_istream_char_read_ch(basic_istream_char
*istream
, char *ch
)
7105 IOSB_iostate state
= IOSTATE_failbit
;
7108 TRACE("(%p %p)\n", istream
, ch
);
7110 if(basic_istream_char_sentry_create(istream
, FALSE
)) {
7111 c
= basic_streambuf_char_sbumpc(basic_ios_char_rdbuf_get(
7112 basic_istream_char_get_basic_ios(istream
)));
7114 state
= IOSTATE_goodbit
;
7118 basic_istream_char_sentry_destroy(istream
);
7120 basic_ios_char_setstate(basic_istream_char_get_basic_ios(istream
),
7121 state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7125 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
7126 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
7127 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_streambuf
, 8)
7128 basic_istream_char
* __thiscall
basic_istream_char_read_streambuf(
7129 basic_istream_char
*this, basic_streambuf_char
*streambuf
)
7131 basic_ios_char
*base
= basic_istream_char_get_basic_ios(this);
7132 IOSB_iostate state
= IOSTATE_failbit
;
7135 TRACE("(%p %p)\n", this, streambuf
);
7137 if(basic_istream_char_sentry_create(this, FALSE
)) {
7138 for(c
= basic_streambuf_char_sgetc(basic_ios_char_rdbuf_get(base
)); c
!=EOF
;
7139 c
= basic_streambuf_char_snextc(basic_ios_char_rdbuf_get(base
))) {
7140 state
= IOSTATE_goodbit
;
7141 if(basic_streambuf_char_sputc(streambuf
, c
) == EOF
)
7145 basic_istream_char_sentry_destroy(this);
7147 basic_ios_char_setstate(base
, state
| (c
==EOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7151 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
7152 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
7153 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func
, 8)
7154 basic_istream_char
* __thiscall
basic_istream_char_read_func(basic_istream_char
*this,
7155 basic_istream_char
* (__cdecl
*pfunc
)(basic_istream_char
*))
7157 TRACE("(%p %p)\n", this, pfunc
);
7162 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@DU?$char_traits@D@std@@@1@AAV21@@Z@Z */
7163 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@DU?$char_traits@D@std@@@1@AEAV21@@Z@Z */
7164 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_basic_ios
, 8)
7165 basic_istream_char
* __thiscall
basic_istream_char_read_func_basic_ios(basic_istream_char
*this,
7166 basic_ios_char
* (__cdecl
*pfunc
)(basic_ios_char
*))
7168 TRACE("(%p %p)\n", this, pfunc
);
7169 pfunc(basic_istream_char_get_basic_ios(this));
7173 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
7174 /* ??5?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
7175 DEFINE_THISCALL_WRAPPER(basic_istream_char_read_func_ios_base
, 8)
7176 basic_istream_char
* __thiscall
basic_istream_char_read_func_ios_base(basic_istream_char
*this,
7177 ios_base
* (__cdecl
*pfunc
)(ios_base
*))
7179 TRACE("(%p %p)\n", this, pfunc
);
7180 pfunc(&basic_istream_char_get_basic_ios(this)->base
);
7184 /* Caution: basic_istream uses virtual inheritance. */
7185 static inline basic_ios_wchar
* basic_istream_short_get_basic_ios(basic_istream_wchar
*this)
7187 return (basic_ios_wchar
*)((char*)this+this->vbtable
[1]);
7190 static inline basic_ios_wchar
* basic_istream_short_to_basic_ios(basic_istream_wchar
*ptr
)
7192 return (basic_ios_wchar
*)((char*)ptr
+basic_istream_short_vbtable
[1]);
7195 static inline basic_istream_wchar
* basic_istream_short_from_basic_ios(basic_ios_wchar
*ptr
)
7197 return (basic_istream_wchar
*)((char*)ptr
-basic_istream_short_vbtable
[1]);
7200 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
7201 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@_N@Z */
7202 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor
, 16)
7203 basic_istream_wchar
* __thiscall
basic_istream_short_ctor(basic_istream_wchar
*this,
7204 basic_streambuf_wchar
*strbuf
, bool isstd
, bool virt_init
)
7206 basic_ios_wchar
*base
;
7208 TRACE("(%p %p %d %d)\n", this, strbuf
, isstd
, virt_init
);
7211 this->vbtable
= basic_istream_short_vbtable
;
7212 base
= basic_istream_short_get_basic_ios(this);
7213 basic_ios_short_ctor(base
);
7215 base
= basic_istream_short_get_basic_ios(this);
7218 base
->base
.vtable
= &basic_istream_short_vtable
;
7220 basic_ios_short_init(base
, strbuf
, isstd
);
7224 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z */
7225 /* ??0?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA@W4_Uninitialized@1@@Z */
7226 DEFINE_THISCALL_WRAPPER(basic_istream_short_ctor_uninitialized
, 12)
7227 basic_istream_wchar
* __thiscall
basic_istream_short_ctor_uninitialized(
7228 basic_istream_wchar
*this, int uninitialized
, bool virt_init
)
7230 basic_ios_wchar
*base
;
7232 TRACE("(%p %d %d)\n", this, uninitialized
, virt_init
);
7235 this->vbtable
= basic_istream_short_vbtable
;
7236 base
= basic_istream_short_get_basic_ios(this);
7237 basic_ios_short_ctor(base
);
7239 base
= basic_istream_short_get_basic_ios(this);
7242 base
->base
.vtable
= &basic_istream_short_vtable
;
7243 ios_base_Addstd(&base
->base
);
7247 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UAE@XZ */
7248 /* ??1?$basic_istream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
7249 DEFINE_THISCALL_WRAPPER(basic_istream_short_dtor
, 4)
7250 void __thiscall
basic_istream_short_dtor(basic_ios_wchar
*base
)
7252 basic_istream_wchar
*this = basic_istream_short_from_basic_ios(base
);
7254 /* don't destroy virtual base here */
7255 TRACE("(%p)\n", this);
7258 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
7259 /* ??_D?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
7260 DEFINE_THISCALL_WRAPPER(basic_istream_short_vbase_dtor
, 4)
7261 void __thiscall
basic_istream_short_vbase_dtor(basic_istream_wchar
*this)
7263 TRACE("(%p)\n", this);
7264 basic_istream_short_dtor(basic_istream_short_to_basic_ios(this));
7265 basic_ios_short_dtor(basic_istream_short_get_basic_ios(this));
7268 DEFINE_THISCALL_WRAPPER(basic_istream_short_vector_dtor
, 8)
7269 basic_istream_wchar
* __thiscall
basic_istream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
7271 basic_istream_wchar
*this = basic_istream_short_from_basic_ios(base
);
7273 TRACE("(%p %x)\n", this, flags
);
7276 /* we have an array, with the number of elements stored before the first object */
7277 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
7279 for(i
=*ptr
-1; i
>=0; i
--)
7280 basic_istream_short_vbase_dtor(this+i
);
7281 operator_delete(ptr
);
7283 basic_istream_short_vbase_dtor(this);
7285 operator_delete(this);
7291 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z */
7292 /* ?ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_N_N@Z */
7293 DEFINE_THISCALL_WRAPPER(basic_istream_short_ipfx
, 8)
7294 bool __thiscall
basic_istream_short_ipfx(basic_istream_wchar
*this, bool noskip
)
7296 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7298 TRACE("(%p %d)\n", this, noskip
);
7300 if(ios_base_good(&base
->base
)) {
7301 if(basic_ios_short_tie_get(base
))
7302 basic_ostream_short_flush(basic_ios_short_tie_get(base
));
7304 if(!noskip
&& (ios_base_flags_get(&base
->base
) & FMTFLAG_skipws
)) {
7305 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7306 const ctype_wchar
*ctype
= ctype_wchar_use_facet(IOS_LOCALE(base
->strbuf
));
7309 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ;
7310 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
7311 if(ch
==WEOF
|| !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, ch
))
7317 if(!ios_base_good(&base
->base
)) {
7318 basic_ios_short_setstate(base
, IOSTATE_failbit
);
7324 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXXZ */
7325 /* ?isfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
7326 DEFINE_THISCALL_WRAPPER(basic_istream_short_isfx
, 4)
7327 void __thiscall
basic_istream_short_isfx(basic_istream_wchar
*this)
7329 TRACE("(%p)\n", this);
7332 static BOOL
basic_istream_short_sentry_create(basic_istream_wchar
*istr
, bool noskip
)
7334 return basic_istream_short_ipfx(istr
, noskip
);
7337 static void basic_istream_short_sentry_destroy(basic_istream_wchar
*istr
)
7341 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBEHXZ */
7342 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ */
7343 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBA_JXZ */
7344 /* ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QBE_JXZ */
7345 DEFINE_THISCALL_WRAPPER(basic_istream_short_gcount
, 4)
7346 streamsize __thiscall
basic_istream_short_gcount(const basic_istream_wchar
*this)
7348 TRACE("(%p)\n", this);
7352 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
7353 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
7354 DEFINE_THISCALL_WRAPPER(basic_istream_short_get
, 4)
7355 unsigned short __thiscall
basic_istream_short_get(basic_istream_wchar
*this)
7357 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7360 TRACE("(%p)\n", this);
7364 if(!basic_istream_short_sentry_create(this, TRUE
)) {
7365 basic_istream_short_sentry_destroy(this);
7369 ret
= basic_streambuf_wchar_sbumpc(basic_ios_short_rdbuf_get(base
));
7370 basic_istream_short_sentry_destroy(this);
7372 basic_ios_short_setstate(base
, IOSTATE_eofbit
|IOSTATE_failbit
);
7379 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAG@Z */
7380 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAG@Z */
7381 DEFINE_THISCALL_WRAPPER(basic_istream_short_get_ch
, 8)
7382 basic_istream_wchar
* __thiscall
basic_istream_short_get_ch(basic_istream_wchar
*this, wchar_t *ch
)
7386 TRACE("(%p %p)\n", this, ch
);
7388 ret
= basic_istream_short_get(this);
7394 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
7395 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
7396 DEFINE_THISCALL_WRAPPER(basic_istream_short_get_str_delim
, 16)
7397 basic_istream_wchar
* __thiscall
basic_istream_short_get_str_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
7399 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7400 unsigned short ch
= delim
;
7402 TRACE("(%p %p %Id %s)\n", this, str
, count
, debugstr_wn(&delim
, 1));
7406 if(basic_istream_short_sentry_create(this, TRUE
)) {
7407 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7409 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); count
>1;
7410 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
7411 if(ch
==WEOF
|| ch
==delim
)
7419 basic_istream_short_sentry_destroy(this);
7421 basic_ios_short_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
7422 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7428 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
7429 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
7430 DEFINE_THISCALL_WRAPPER(basic_istream_short_get_str
, 12)
7431 basic_istream_wchar
* __thiscall
basic_istream_short_get_str(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7433 return basic_istream_short_get_str_delim(this, str
, count
, '\n');
7436 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
7437 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@G@Z */
7438 DEFINE_THISCALL_WRAPPER(basic_istream_short_get_streambuf_delim
, 12)
7439 basic_istream_wchar
* __thiscall
basic_istream_short_get_streambuf_delim(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
, wchar_t delim
)
7441 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7442 unsigned short ch
= delim
;
7444 TRACE("(%p %p %s)\n", this, strbuf
, debugstr_wn(&delim
, 1));
7448 if(basic_istream_short_sentry_create(this, TRUE
)) {
7449 basic_streambuf_wchar
*strbuf_read
= basic_ios_short_rdbuf_get(base
);
7451 for(ch
= basic_streambuf_wchar_sgetc(strbuf_read
); ;
7452 ch
= basic_streambuf_wchar_snextc(strbuf_read
)) {
7453 if(ch
==WEOF
|| ch
==delim
)
7456 if(basic_streambuf_wchar_sputc(strbuf
, ch
) == WEOF
)
7461 basic_istream_short_sentry_destroy(this);
7463 basic_ios_short_setstate(base
, (!this->count
? IOSTATE_failbit
: IOSTATE_goodbit
) |
7464 (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
7468 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@AAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
7469 /* ?get@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@AEAV?$basic_streambuf@GU?$char_traits@G@std@@@2@@Z */
7470 DEFINE_THISCALL_WRAPPER(basic_istream_short_get_streambuf
, 8)
7471 basic_istream_wchar
* __thiscall
basic_istream_short_get_streambuf(basic_istream_wchar
*this, basic_streambuf_wchar
*strbuf
)
7473 return basic_istream_short_get_streambuf_delim(this, strbuf
, '\n');
7476 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGHG@Z */
7477 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_JG@Z */
7478 DEFINE_THISCALL_WRAPPER(basic_istream_short_getline_delim
, 16)
7479 basic_istream_wchar
* __thiscall
basic_istream_short_getline_delim(basic_istream_wchar
*this, wchar_t *str
, streamsize count
, wchar_t delim
)
7481 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7482 unsigned short ch
= delim
;
7484 TRACE("(%p %p %Id %s)\n", this, str
, count
, debugstr_wn(&delim
, 1));
7488 if(basic_istream_short_sentry_create(this, TRUE
) && count
>0) {
7489 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7492 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
7494 if(ch
==WEOF
|| ch
==delim
)
7504 else if(ch
!= WEOF
) {
7505 ch
= basic_streambuf_wchar_sgetc(strbuf
);
7508 basic_streambuf_wchar__Gninc(strbuf
);
7513 basic_istream_short_sentry_destroy(this);
7515 basic_ios_short_setstate(base
, (ch
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
) |
7516 (!this->count
|| (ch
!=delim
&& ch
!=WEOF
) ? IOSTATE_failbit
: IOSTATE_goodbit
));
7522 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
7523 /* ?getline@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
7524 DEFINE_THISCALL_WRAPPER(basic_istream_short_getline
, 12)
7525 basic_istream_wchar
* __thiscall
basic_istream_short_getline(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7527 return basic_istream_short_getline_delim(this, str
, count
, '\n');
7530 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@HG@Z */
7531 /* ?ignore@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JG@Z */
7532 DEFINE_THISCALL_WRAPPER(basic_istream_short_ignore
, 12)
7533 basic_istream_wchar
* __thiscall
basic_istream_short_ignore(basic_istream_wchar
*this, streamsize count
, unsigned short delim
)
7535 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7536 unsigned short ch
= delim
;
7539 TRACE("(%p %Id %d)\n", this, count
, delim
);
7543 if(basic_istream_short_sentry_create(this, TRUE
)) {
7544 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7545 state
= IOSTATE_goodbit
;
7548 ch
= basic_streambuf_wchar_sbumpc(strbuf
);
7551 state
= IOSTATE_eofbit
;
7559 if(count
!= INT_MAX
)
7563 state
= IOSTATE_failbit
;
7564 basic_istream_short_sentry_destroy(this);
7566 basic_ios_short_setstate(base
, state
);
7570 /* ?ws@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@1@AAV21@@Z */
7571 /* ?ws@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@1@AEAV21@@Z */
7572 basic_istream_wchar
* __cdecl
ws_basic_istream_short(basic_istream_wchar
*istream
)
7574 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(istream
);
7575 unsigned short ch
= '\n';
7577 TRACE("(%p)\n", istream
);
7579 if(basic_istream_short_sentry_create(istream
, TRUE
)) {
7580 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7581 const ctype_wchar
*ctype
= ctype_wchar_use_facet(IOS_LOCALE(strbuf
));
7583 for(ch
= basic_streambuf_wchar_sgetc(strbuf
); ctype_wchar_is_ch(ctype
, _SPACE
, ch
);
7584 ch
= basic_streambuf_wchar_snextc(strbuf
)) {
7589 basic_istream_short_sentry_destroy(istream
);
7592 basic_ios_short_setstate(base
, IOSTATE_eofbit
);
7596 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEGXZ */
7597 /* ?peek@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAGXZ */
7598 DEFINE_THISCALL_WRAPPER(basic_istream_short_peek
, 4)
7599 unsigned short __thiscall
basic_istream_short_peek(basic_istream_wchar
*this)
7601 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7602 unsigned short ret
= WEOF
;
7604 TRACE("(%p)\n", this);
7608 if(basic_istream_short_sentry_create(this, TRUE
))
7609 ret
= basic_streambuf_wchar_sgetc(basic_ios_short_rdbuf_get(base
));
7610 basic_istream_short_sentry_destroy(this);
7613 basic_ios_short_setstate(base
, IOSTATE_eofbit
);
7618 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@PAGH@Z */
7619 /* ?read@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@PEAG_J@Z */
7620 DEFINE_THISCALL_WRAPPER(basic_istream_short_read
, 12)
7621 basic_istream_wchar
* __thiscall
basic_istream_short_read(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7623 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7624 IOSB_iostate state
= IOSTATE_goodbit
;
7626 TRACE("(%p %p %Id)\n", this, str
, count
);
7628 if(basic_istream_short_sentry_create(this, TRUE
)) {
7629 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7631 this->count
= basic_streambuf_wchar_sgetn(strbuf
, str
, count
);
7632 if(this->count
!= count
)
7633 state
|= IOSTATE_failbit
| IOSTATE_eofbit
;
7637 basic_istream_short_sentry_destroy(this);
7639 basic_ios_short_setstate(base
, state
);
7643 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHPAGH@Z */
7644 /* ?readsome@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA_JPEAG_J@Z */
7645 DEFINE_THISCALL_WRAPPER(basic_istream_short_readsome
, 12)
7646 streamsize __thiscall
basic_istream_short_readsome(basic_istream_wchar
*this, wchar_t *str
, streamsize count
)
7648 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7649 IOSB_iostate state
= IOSTATE_goodbit
;
7651 TRACE("(%p %p %Id)\n", this, str
, count
);
7655 if(basic_istream_short_sentry_create(this, TRUE
)) {
7656 streamsize avail
= basic_streambuf_wchar_in_avail(basic_ios_short_rdbuf_get(base
));
7661 state
|= IOSTATE_eofbit
;
7663 basic_istream_short_read(this, str
, avail
);
7665 state
|= IOSTATE_failbit
;
7667 basic_istream_short_sentry_destroy(this);
7669 basic_ios_short_setstate(base
, state
);
7673 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@G@Z */
7674 /* ?putback@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@G@Z */
7675 DEFINE_THISCALL_WRAPPER(basic_istream_short_putback
, 8)
7676 basic_istream_wchar
* __thiscall
basic_istream_short_putback(basic_istream_wchar
*this, wchar_t ch
)
7678 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7679 IOSB_iostate state
= IOSTATE_goodbit
;
7681 TRACE("(%p %c)\n", this, ch
);
7685 if(basic_istream_short_sentry_create(this, TRUE
)) {
7686 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7688 if(!ios_base_good(&base
->base
))
7689 state
|= IOSTATE_failbit
;
7690 else if(!strbuf
|| basic_streambuf_wchar_sputbackc(strbuf
, ch
)==WEOF
)
7691 state
|= IOSTATE_badbit
;
7693 basic_istream_short_sentry_destroy(this);
7695 basic_ios_short_setstate(base
, state
);
7699 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@XZ */
7700 /* ?unget@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@XZ */
7701 DEFINE_THISCALL_WRAPPER(basic_istream_short_unget
, 4)
7702 basic_istream_wchar
* __thiscall
basic_istream_short_unget(basic_istream_wchar
*this)
7704 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7705 IOSB_iostate state
= IOSTATE_goodbit
;
7707 TRACE("(%p)\n", this);
7711 if(basic_istream_short_sentry_create(this, TRUE
)) {
7712 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7714 if(!ios_base_good(&base
->base
))
7715 state
|= IOSTATE_failbit
;
7716 else if(!strbuf
|| basic_streambuf_wchar_sungetc(strbuf
)==WEOF
)
7717 state
|= IOSTATE_badbit
;
7719 basic_istream_short_sentry_destroy(this);
7721 basic_ios_short_setstate(base
, state
);
7725 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEHXZ */
7726 /* ?sync@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAHXZ */
7727 DEFINE_THISCALL_WRAPPER(basic_istream_short_sync
, 4)
7728 int __thiscall
basic_istream_short_sync(basic_istream_wchar
*this)
7730 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7731 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7733 TRACE("(%p)\n", this);
7738 if(basic_istream_short_sentry_create(this, TRUE
)) {
7739 if(basic_streambuf_wchar_pubsync(strbuf
) != -1) {
7740 basic_istream_short_sentry_destroy(this);
7744 basic_istream_short_sentry_destroy(this);
7746 basic_ios_short_setstate(base
, IOSTATE_badbit
);
7750 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE?AV?$fpos@H@2@XZ */
7751 /* ?tellg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
7752 DEFINE_THISCALL_WRAPPER(basic_istream_short_tellg
, 8)
7753 fpos_int
* __thiscall
basic_istream_short_tellg(basic_istream_wchar
*this, fpos_int
*ret
)
7755 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7757 TRACE("(%p %p)\n", this, ret
);
7759 if(ios_base_fail(&base
->base
)) {
7766 basic_streambuf_wchar_pubseekoff(basic_ios_short_rdbuf_get(base
),
7767 ret
, 0, SEEKDIR_cur
, OPENMODE_in
);
7772 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z */
7773 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JW4seekdir@ios_base@2@@Z */
7774 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JH@Z */
7775 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@_JH@Z */
7776 DEFINE_THISCALL_WRAPPER(basic_istream_short_seekg
, 12)
7777 basic_istream_wchar
* __thiscall
basic_istream_short_seekg(basic_istream_wchar
*this, streamoff off
, int dir
)
7779 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7781 TRACE("(%p %Id %d)\n", this, off
, dir
);
7783 if(!ios_base_fail(&base
->base
)) {
7784 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7787 basic_streambuf_wchar_pubseekoff(strbuf
, &ret
, off
, dir
, OPENMODE_in
);
7793 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z */
7794 /* ?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV12@V?$fpos@H@2@@Z */
7795 DEFINE_THISCALL_WRAPPER(basic_istream_short_seekg_fpos
, 28)
7796 basic_istream_wchar
* __thiscall
basic_istream_short_seekg_fpos(basic_istream_wchar
*this, fpos_int pos
)
7798 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7800 TRACE("(%p %s)\n", this, debugstr_fpos_int(&pos
));
7802 if(!ios_base_fail(&base
->base
)) {
7803 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7806 basic_streambuf_wchar_pubseekpos(strbuf
, &ret
, pos
, OPENMODE_in
);
7812 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAF@Z */
7813 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAF@Z */
7814 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_short
, 8)
7815 basic_istream_wchar
* __thiscall
basic_istream_short_read_short(basic_istream_wchar
*this, short *v
)
7817 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7818 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7819 int state
= IOSTATE_goodbit
;
7821 TRACE("(%p %p)\n", this, v
);
7823 if(basic_istream_short_sentry_create(this, FALSE
)) {
7824 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7825 istreambuf_iterator_wchar first
={0}, last
={0};
7828 first
.strbuf
= strbuf
;
7829 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, &tmp
);
7831 if(!(state
&IOSTATE_failbit
) && tmp
==(LONG
)((short)tmp
))
7834 state
|= IOSTATE_failbit
;
7836 basic_istream_short_sentry_destroy(this);
7838 basic_ios_short_setstate(base
, state
);
7842 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAH@Z */
7843 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAH@Z */
7844 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int
, 8)
7845 basic_istream_wchar
* __thiscall
basic_istream_short_read_int(basic_istream_wchar
*this, int *v
)
7847 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7848 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7849 int state
= IOSTATE_goodbit
;
7851 TRACE("(%p %p)\n", this, v
);
7853 if(basic_istream_short_sentry_create(this, FALSE
)) {
7854 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7855 istreambuf_iterator_wchar first
={0}, last
={0};
7857 first
.strbuf
= strbuf
;
7858 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, (LONG
*)v
);
7860 basic_istream_short_sentry_destroy(this);
7862 basic_ios_short_setstate(base
, state
);
7866 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAI@Z */
7867 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAI@Z */
7868 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint
, 8)
7869 basic_istream_wchar
* __thiscall
basic_istream_short_read_uint(basic_istream_wchar
*this, unsigned int *v
)
7871 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7872 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7873 int state
= IOSTATE_goodbit
;
7875 TRACE("(%p %p)\n", this, v
);
7877 if(basic_istream_short_sentry_create(this, FALSE
)) {
7878 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7879 istreambuf_iterator_wchar first
={0}, last
={0};
7881 first
.strbuf
= strbuf
;
7882 num_get_wchar_get_uint(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7884 basic_istream_short_sentry_destroy(this);
7886 basic_ios_short_setstate(base
, state
);
7890 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAJ@Z */
7891 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAJ@Z */
7892 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_long
, 8)
7893 basic_istream_wchar
* __thiscall
basic_istream_short_read_long(basic_istream_wchar
*this, LONG
*v
)
7895 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7896 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7897 int state
= IOSTATE_goodbit
;
7899 TRACE("(%p %p)\n", this, v
);
7901 if(basic_istream_short_sentry_create(this, FALSE
)) {
7902 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7903 istreambuf_iterator_wchar first
={0}, last
={0};
7905 first
.strbuf
= strbuf
;
7906 num_get_wchar_get_long(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7908 basic_istream_short_sentry_destroy(this);
7910 basic_ios_short_setstate(base
, state
);
7914 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAK@Z */
7915 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAK@Z */
7916 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ulong
, 8)
7917 basic_istream_wchar
* __thiscall
basic_istream_short_read_ulong(basic_istream_wchar
*this, ULONG
*v
)
7919 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7920 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7921 int state
= IOSTATE_goodbit
;
7923 TRACE("(%p %p)\n", this, v
);
7925 if(basic_istream_short_sentry_create(this, FALSE
)) {
7926 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7927 istreambuf_iterator_wchar first
={0}, last
={0};
7929 first
.strbuf
= strbuf
;
7930 num_get_wchar_get_ulong(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7932 basic_istream_short_sentry_destroy(this);
7934 basic_ios_short_setstate(base
, state
);
7938 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAM@Z */
7939 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAM@Z */
7940 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_float
, 8)
7941 basic_istream_wchar
* __thiscall
basic_istream_short_read_float(basic_istream_wchar
*this, float *v
)
7943 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7944 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7945 int state
= IOSTATE_goodbit
;
7947 TRACE("(%p %p)\n", this, v
);
7949 if(basic_istream_short_sentry_create(this, FALSE
)) {
7950 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7951 istreambuf_iterator_wchar first
={0}, last
={0};
7953 first
.strbuf
= strbuf
;
7954 num_get_wchar_get_float(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7956 basic_istream_short_sentry_destroy(this);
7958 basic_ios_short_setstate(base
, state
);
7962 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAN@Z */
7963 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAN@Z */
7964 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_double
, 8)
7965 basic_istream_wchar
* __thiscall
basic_istream_short_read_double(basic_istream_wchar
*this, double *v
)
7967 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7968 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7969 int state
= IOSTATE_goodbit
;
7971 TRACE("(%p %p)\n", this, v
);
7973 if(basic_istream_short_sentry_create(this, FALSE
)) {
7974 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7975 istreambuf_iterator_wchar first
={0}, last
={0};
7977 first
.strbuf
= strbuf
;
7978 num_get_wchar_get_double(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
7980 basic_istream_short_sentry_destroy(this);
7982 basic_ios_short_setstate(base
, state
);
7986 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAO@Z */
7987 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAO@Z */
7988 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ldouble
, 8)
7989 basic_istream_wchar
* __thiscall
basic_istream_short_read_ldouble(basic_istream_wchar
*this, double *v
)
7991 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
7992 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
7993 int state
= IOSTATE_goodbit
;
7995 TRACE("(%p %p)\n", this, v
);
7997 if(basic_istream_short_sentry_create(this, FALSE
)) {
7998 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
7999 istreambuf_iterator_wchar first
={0}, last
={0};
8001 first
.strbuf
= strbuf
;
8002 num_get_wchar_get_ldouble(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8004 basic_istream_short_sentry_destroy(this);
8006 basic_ios_short_setstate(base
, state
);
8010 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AAPAX@Z */
8011 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEAPEAX@Z */
8012 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_ptr
, 8)
8013 basic_istream_wchar
* __thiscall
basic_istream_short_read_ptr(basic_istream_wchar
*this, void **v
)
8015 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
8016 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
8017 int state
= IOSTATE_goodbit
;
8019 TRACE("(%p %p)\n", this, v
);
8021 if(basic_istream_short_sentry_create(this, FALSE
)) {
8022 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
8023 istreambuf_iterator_wchar first
={0}, last
={0};
8025 first
.strbuf
= strbuf
;
8026 num_get_wchar_get_void(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8028 basic_istream_short_sentry_destroy(this);
8030 basic_ios_short_setstate(base
, state
);
8034 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_J@Z */
8035 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_J@Z */
8036 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_int64
, 8)
8037 basic_istream_wchar
* __thiscall
basic_istream_short_read_int64(basic_istream_wchar
*this, __int64
*v
)
8039 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
8040 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
8041 int state
= IOSTATE_goodbit
;
8043 TRACE("(%p %p)\n", this, v
);
8045 if(basic_istream_short_sentry_create(this, FALSE
)) {
8046 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
8047 istreambuf_iterator_wchar first
={0}, last
={0};
8049 first
.strbuf
= strbuf
;
8050 num_get_wchar_get_int64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8052 basic_istream_short_sentry_destroy(this);
8054 basic_ios_short_setstate(base
, state
);
8058 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_K@Z */
8059 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_K@Z */
8060 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_uint64
, 8)
8061 basic_istream_wchar
* __thiscall
basic_istream_short_read_uint64(basic_istream_wchar
*this, unsigned __int64
*v
)
8063 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
8064 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
8065 int state
= IOSTATE_goodbit
;
8067 TRACE("(%p %p)\n", this, v
);
8069 if(basic_istream_short_sentry_create(this, FALSE
)) {
8070 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
8071 istreambuf_iterator_wchar first
={0}, last
={0};
8073 first
.strbuf
= strbuf
;
8074 num_get_wchar_get_uint64(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8076 basic_istream_short_sentry_destroy(this);
8078 basic_ios_short_setstate(base
, state
);
8082 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@AA_N@Z */
8083 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@AEA_N@Z */
8084 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_bool
, 8)
8085 basic_istream_wchar
* __thiscall
basic_istream_short_read_bool(basic_istream_wchar
*this, bool *v
)
8087 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
8088 const num_get
*numget
= num_get_short_use_facet(IOS_LOCALE(base
->strbuf
));
8089 int state
= IOSTATE_goodbit
;
8091 TRACE("(%p %p)\n", this, v
);
8093 if(basic_istream_short_sentry_create(this, FALSE
)) {
8094 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
8095 istreambuf_iterator_wchar first
={0}, last
={0};
8097 first
.strbuf
= strbuf
;
8098 num_get_wchar_get_bool(numget
, &last
, first
, last
, &base
->base
, &state
, v
);
8100 basic_istream_short_sentry_destroy(this);
8102 basic_ios_short_setstate(base
, state
);
8106 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@G@Z */
8107 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@G@Z */
8108 basic_istream_wchar
* __cdecl
basic_istream_short_getline_bstr_delim(
8109 basic_istream_wchar
*istream
, basic_string_wchar
*str
, wchar_t delim
)
8111 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(istream
);
8112 IOSB_iostate state
= IOSTATE_goodbit
;
8115 TRACE("(%p %p %s)\n", istream
, str
, debugstr_wn(&delim
, 1));
8117 MSVCP_basic_string_wchar_clear(str
);
8118 if(basic_istream_short_sentry_create(istream
, TRUE
)) {
8119 basic_streambuf_wchar
*strbuf
= basic_ios_short_rdbuf_get(base
);
8121 c
= basic_streambuf_wchar_sgetc(strbuf
);
8122 for(; c
!=delim
&& c
!=WEOF
; c
= basic_streambuf_wchar_snextc(strbuf
))
8123 MSVCP_basic_string_wchar_append_ch(str
, c
);
8124 if(c
==delim
) basic_streambuf_wchar_sbumpc(strbuf
);
8125 else if(c
==WEOF
) state
|= IOSTATE_eofbit
;
8127 if(!MSVCP_basic_string_wchar_length(str
) && c
!=delim
) state
|= IOSTATE_failbit
;
8129 basic_istream_short_sentry_destroy(istream
);
8131 basic_ios_short_setstate(basic_istream_short_get_basic_ios(istream
), state
);
8135 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
8136 /* ??$getline@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
8137 basic_istream_wchar
* __cdecl
basic_istream_short_getline_bstr(
8138 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
8140 return basic_istream_short_getline_bstr_delim(istream
, str
, '\n');
8143 /* ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
8144 /* ??$?5GU?$char_traits@G@std@@V?$allocator@G@1@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z */
8145 basic_istream_wchar
* __cdecl
basic_istream_short_read_bstr(
8146 basic_istream_wchar
*istream
, basic_string_wchar
*str
)
8148 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(istream
);
8149 const ctype_wchar
*ctype
= ctype_short_use_facet(IOS_LOCALE(base
->strbuf
));
8150 IOSB_iostate state
= IOSTATE_failbit
;
8153 TRACE("(%p %p)\n", istream
, str
);
8155 if(basic_istream_short_sentry_create(istream
, FALSE
)) {
8156 size_t count
= ios_base_width_get(&base
->base
);
8161 MSVCP_basic_string_wchar_clear(str
);
8163 for(c
= basic_streambuf_wchar_sgetc(basic_ios_short_rdbuf_get(base
));
8164 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
8165 c
= basic_streambuf_wchar_snextc(basic_ios_short_rdbuf_get(base
)), count
--) {
8166 state
= IOSTATE_goodbit
;
8167 MSVCP_basic_string_wchar_append_ch(str
, c
);
8170 basic_istream_short_sentry_destroy(istream
);
8172 ios_base_width_set(&base
->base
, 0);
8173 basic_ios_short_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8177 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@PAG@Z */
8178 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@PEAG@Z */
8179 basic_istream_wchar
* __cdecl
basic_istream_short_read_str(basic_istream_wchar
*istream
, wchar_t *str
)
8181 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(istream
);
8182 const ctype_wchar
*ctype
= ctype_short_use_facet(IOS_LOCALE(base
->strbuf
));
8183 IOSB_iostate state
= IOSTATE_failbit
;
8184 unsigned short c
= '\n';
8186 TRACE("(%p %p)\n", istream
, str
);
8188 if(basic_istream_short_sentry_create(istream
, FALSE
)) {
8189 size_t count
= ios_base_width_get(&base
->base
)-1;
8191 for(c
= basic_streambuf_wchar_sgetc(basic_ios_short_rdbuf_get(base
));
8192 c
!=WEOF
&& !ctype_wchar_is_ch(ctype
, _SPACE
|_BLANK
, c
) && count
>0;
8193 c
= basic_streambuf_wchar_snextc(basic_ios_short_rdbuf_get(base
)), count
--) {
8194 state
= IOSTATE_goodbit
;
8198 basic_istream_short_sentry_destroy(istream
);
8201 ios_base_width_set(&base
->base
, 0);
8202 basic_ios_short_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8206 /* ??$?5GU?$char_traits@G@std@@@std@@YAAAV?$basic_istream@GU?$char_traits@G@std@@@0@AAV10@AAG@Z */
8207 /* ??$?5GU?$char_traits@G@std@@@std@@YAAEAV?$basic_istream@GU?$char_traits@G@std@@@0@AEAV10@AEAG@Z */
8208 basic_istream_wchar
* __cdecl
basic_istream_short_read_ch(basic_istream_wchar
*istream
, wchar_t *ch
)
8210 IOSB_iostate state
= IOSTATE_failbit
;
8211 unsigned short c
= 0;
8213 TRACE("(%p %p)\n", istream
, ch
);
8215 if(basic_istream_short_sentry_create(istream
, FALSE
)) {
8216 c
= basic_streambuf_wchar_sbumpc(basic_ios_short_rdbuf_get(
8217 basic_istream_short_get_basic_ios(istream
)));
8219 state
= IOSTATE_goodbit
;
8223 basic_istream_short_sentry_destroy(istream
);
8225 basic_ios_short_setstate(basic_istream_short_get_basic_ios(istream
),
8226 state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8230 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
8231 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
8232 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_streambuf
, 8)
8233 basic_istream_wchar
* __thiscall
basic_istream_short_read_streambuf(
8234 basic_istream_wchar
*this, basic_streambuf_wchar
*streambuf
)
8236 basic_ios_wchar
*base
= basic_istream_short_get_basic_ios(this);
8237 IOSB_iostate state
= IOSTATE_failbit
;
8238 unsigned short c
= '\n';
8240 TRACE("(%p %p)\n", this, streambuf
);
8242 if(basic_istream_short_sentry_create(this, FALSE
)) {
8243 for(c
= basic_streambuf_wchar_sgetc(basic_ios_short_rdbuf_get(base
)); c
!=WEOF
;
8244 c
= basic_streambuf_wchar_snextc(basic_ios_short_rdbuf_get(base
))) {
8245 state
= IOSTATE_goodbit
;
8246 if(basic_streambuf_wchar_sputc(streambuf
, c
) == WEOF
)
8250 basic_istream_short_sentry_destroy(this);
8252 basic_ios_short_setstate(base
, state
| (c
==WEOF
? IOSTATE_eofbit
: IOSTATE_goodbit
));
8256 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z */
8257 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z */
8258 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_func
, 8)
8259 basic_istream_wchar
* __thiscall
basic_istream_short_read_func(basic_istream_wchar
*this,
8260 basic_istream_wchar
* (__cdecl
*pfunc
)(basic_istream_wchar
*))
8262 TRACE("(%p %p)\n", this, pfunc
);
8267 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAV?$basic_ios@GU?$char_traits@G@std@@@1@AAV21@@Z@Z */
8268 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAV?$basic_ios@GU?$char_traits@G@std@@@1@AEAV21@@Z@Z */
8269 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_func_basic_ios
, 8)
8270 basic_istream_wchar
* __thiscall
basic_istream_short_read_func_basic_ios(basic_istream_wchar
*this,
8271 basic_ios_wchar
* (__cdecl
*pfunc
)(basic_ios_wchar
*))
8273 TRACE("(%p %p)\n", this, pfunc
);
8274 pfunc(basic_istream_short_get_basic_ios(this));
8278 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z */
8279 /* ??5?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAAEAV01@P6AAEAVios_base@1@AEAV21@@Z@Z */
8280 DEFINE_THISCALL_WRAPPER(basic_istream_short_read_func_ios_base
, 8)
8281 basic_istream_wchar
* __thiscall
basic_istream_short_read_func_ios_base(
8282 basic_istream_wchar
*this, ios_base
* (__cdecl
*pfunc
)(ios_base
*))
8284 TRACE("(%p %p)\n", this, pfunc
);
8285 pfunc(&basic_istream_short_get_basic_ios(this)->base
);
8289 static inline basic_ios_char
* basic_iostream_char_to_basic_ios(basic_iostream_char
*ptr
)
8291 return (basic_ios_char
*)((char*)ptr
+basic_iostream_char_vbtable1
[1]);
8294 static inline basic_iostream_char
* basic_iostream_char_from_basic_ios(basic_ios_char
*ptr
)
8296 return (basic_iostream_char
*)((char*)ptr
-basic_iostream_char_vbtable1
[1]);
8299 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8300 /* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
8301 DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor
, 12)
8302 basic_iostream_char
* __thiscall
basic_iostream_char_ctor(basic_iostream_char
*this, basic_streambuf_char
*strbuf
, bool virt_init
)
8304 basic_ios_char
*basic_ios
;
8306 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
8309 this->base1
.vbtable
= basic_iostream_char_vbtable1
;
8310 this->base2
.vbtable
= basic_iostream_char_vbtable2
;
8311 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
8312 basic_ios_char_ctor(basic_ios
);
8314 basic_ios
= basic_istream_char_get_basic_ios(&this->base1
);
8317 basic_ios
->base
.vtable
= &basic_iostream_char_vtable
;
8319 basic_istream_char_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
8320 basic_ostream_char_ctor(&this->base2
, NULL
, FALSE
, FALSE
, FALSE
);
8324 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8325 /* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8326 DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor
, 4)
8327 void __thiscall
basic_iostream_char_dtor(basic_ios_char
*base
)
8329 basic_iostream_char
*this = basic_iostream_char_from_basic_ios(base
);
8331 TRACE("(%p)\n", this);
8332 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2
));
8333 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1
));
8336 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8337 /* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8338 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor
, 4)
8339 void __thiscall
basic_iostream_char_vbase_dtor(basic_iostream_char
*this)
8341 TRACE("(%p)\n", this);
8342 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
8343 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1
));
8346 DEFINE_THISCALL_WRAPPER(basic_iostream_char_vector_dtor
, 8)
8347 basic_iostream_char
* __thiscall
basic_iostream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8349 basic_iostream_char
*this = basic_iostream_char_from_basic_ios(base
);
8351 TRACE("(%p %x)\n", this, flags
);
8354 /* we have an array, with the number of elements stored before the first object */
8355 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8357 for(i
=*ptr
-1; i
>=0; i
--)
8358 basic_iostream_char_vbase_dtor(this+i
);
8359 operator_delete(ptr
);
8361 basic_iostream_char_vbase_dtor(this);
8363 operator_delete(this);
8369 static inline basic_ios_wchar
* basic_iostream_short_to_basic_ios(basic_iostream_wchar
*ptr
)
8371 return (basic_ios_wchar
*)((char*)ptr
+basic_iostream_short_vbtable1
[1]);
8374 static inline basic_iostream_wchar
* basic_iostream_short_from_basic_ios(basic_ios_wchar
*ptr
)
8376 return (basic_iostream_wchar
*)((char*)ptr
-basic_iostream_short_vbtable1
[1]);
8379 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QAE@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
8380 /* ??0?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAA@PEAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z */
8381 DEFINE_THISCALL_WRAPPER(basic_iostream_short_ctor
, 12)
8382 basic_iostream_wchar
* __thiscall
basic_iostream_short_ctor(basic_iostream_wchar
*this,
8383 basic_streambuf_wchar
*strbuf
, bool virt_init
)
8385 basic_ios_wchar
*basic_ios
;
8387 TRACE("(%p %p %d)\n", this, strbuf
, virt_init
);
8390 this->base1
.vbtable
= basic_iostream_short_vbtable1
;
8391 this->base2
.vbtable
= basic_iostream_short_vbtable2
;
8392 basic_ios
= basic_istream_short_get_basic_ios(&this->base1
);
8393 basic_ios_short_ctor(basic_ios
);
8395 basic_ios
= basic_istream_short_get_basic_ios(&this->base1
);
8398 basic_istream_short_ctor(&this->base1
, strbuf
, FALSE
, FALSE
);
8399 basic_ostream_short_ctor(&this->base2
, NULL
, FALSE
, FALSE
, FALSE
);
8401 basic_ios
->base
.vtable
= &basic_iostream_short_vtable
;
8405 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8406 /* ??1?$basic_iostream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8407 DEFINE_THISCALL_WRAPPER(basic_iostream_short_dtor
, 4)
8408 void __thiscall
basic_iostream_short_dtor(basic_ios_wchar
*base
)
8410 basic_iostream_wchar
*this = basic_iostream_short_from_basic_ios(base
);
8412 TRACE("(%p)\n", this);
8413 basic_ostream_short_dtor(basic_ostream_short_to_basic_ios(&this->base2
));
8414 basic_istream_short_dtor(basic_istream_short_to_basic_ios(&this->base1
));
8417 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8418 /* ??_D?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8419 DEFINE_THISCALL_WRAPPER(basic_iostream_short_vbase_dtor
, 4)
8420 void __thiscall
basic_iostream_short_vbase_dtor(basic_iostream_wchar
*this)
8422 TRACE("(%p)\n", this);
8423 basic_iostream_short_dtor(basic_iostream_short_to_basic_ios(this));
8424 basic_ios_short_dtor(basic_istream_short_get_basic_ios(&this->base1
));
8427 DEFINE_THISCALL_WRAPPER(basic_iostream_short_vector_dtor
, 8)
8428 basic_iostream_wchar
* __thiscall
basic_iostream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
8430 basic_iostream_wchar
*this = basic_iostream_short_from_basic_ios(base
);
8432 TRACE("(%p %x)\n", this, flags
);
8435 /* we have an array, with the number of elements stored before the first object */
8436 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8438 for(i
=*ptr
-1; i
>=0; i
--)
8439 basic_iostream_short_vbase_dtor(this+i
);
8440 operator_delete(ptr
);
8442 basic_iostream_short_vbase_dtor(this);
8444 operator_delete(this);
8450 static inline basic_ios_char
* basic_ofstream_char_to_basic_ios(basic_ofstream_char
*ptr
)
8452 return (basic_ios_char
*)((char*)ptr
+basic_ofstream_char_vbtable
[1]);
8455 static inline basic_ofstream_char
* basic_ofstream_char_from_basic_ios(basic_ios_char
*ptr
)
8457 return (basic_ofstream_char
*)((char*)ptr
-basic_ofstream_char_vbtable
[1]);
8460 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
8461 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
8462 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor
, 8)
8463 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor(basic_ofstream_char
*this, bool virt_init
)
8465 basic_ios_char
*basic_ios
;
8467 TRACE("(%p %d)\n", this, virt_init
);
8470 this->base
.vbtable
= basic_ofstream_char_vbtable
;
8471 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8472 basic_ios_char_ctor(basic_ios
);
8474 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8477 basic_filebuf_char_ctor(&this->filebuf
);
8478 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, TRUE
, FALSE
);
8479 basic_ios
->base
.vtable
= &basic_ofstream_char_vtable
;
8483 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
8484 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
8485 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_copy_ctor
, 12)
8486 basic_ofstream_char
* __thiscall
basic_ofstream_char_copy_ctor(basic_ofstream_char
*this,
8487 basic_ofstream_char
*copy
, bool virt_init
)
8489 basic_ios_char
*basic_ios
;
8491 TRACE("(%p %p %d)\n", this, copy
, virt_init
);
8494 this->base
.vbtable
= basic_ofstream_char_vbtable
;
8495 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8496 basic_ios_char_ctor(basic_ios
);
8498 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8501 basic_filebuf_char_ctor_file(&this->filebuf
, copy
->filebuf
.file
);
8502 basic_ostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, TRUE
, FALSE
);
8503 basic_ios
->base
.vtable
= &basic_ofstream_char_vtable
;
8507 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
8508 /* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
8509 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor_name
, 16)
8510 basic_ofstream_char
* __thiscall
basic_ofstream_char_ctor_name(basic_ofstream_char
*this,
8511 const char *name
, int mode
, bool virt_init
)
8513 TRACE("(%p %s %d %d)\n", this, name
, mode
, virt_init
);
8515 basic_ofstream_char_ctor(this, virt_init
);
8517 if(!basic_filebuf_char_open_mode(&this->filebuf
, name
, mode
|OPENMODE_out
)) {
8518 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8519 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8524 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8525 /* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8526 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor
, 4)
8527 void __thiscall
basic_ofstream_char_dtor(basic_ios_char
*base
)
8529 basic_ofstream_char
*this = basic_ofstream_char_from_basic_ios(base
);
8531 TRACE("(%p)\n", this);
8533 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
8534 basic_filebuf_char_dtor(&this->filebuf
);
8537 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8538 /* ??_D?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8539 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vbase_dtor
, 4)
8540 void __thiscall
basic_ofstream_char_vbase_dtor(basic_ofstream_char
*this)
8542 TRACE("(%p)\n", this);
8544 basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
8545 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
8548 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_vector_dtor
, 8)
8549 basic_ofstream_char
* __thiscall
basic_ofstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8551 basic_ofstream_char
*this = basic_ofstream_char_from_basic_ios(base
);
8553 TRACE("(%p %x)\n", this, flags
);
8556 /* we have an array, with the number of elements stored before the first object */
8557 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8559 for(i
=*ptr
-1; i
>=0; i
--)
8560 basic_ofstream_char_vbase_dtor(this+i
);
8561 operator_delete(ptr
);
8563 basic_ofstream_char_vbase_dtor(this);
8565 operator_delete(this);
8571 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8572 /* ?close@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8573 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_close
, 4)
8574 void __thiscall
basic_ofstream_char_close(basic_ofstream_char
*this)
8576 TRACE("(%p)\n", this);
8578 if(!basic_filebuf_char_close(&this->filebuf
)) {
8579 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8580 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8584 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
8585 /* ?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
8586 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_is_open
, 4)
8587 bool __thiscall
basic_ofstream_char_is_open(const basic_ofstream_char
*this)
8589 TRACE("(%p)\n", this);
8590 return basic_filebuf_char_is_open(&this->filebuf
);
8593 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
8594 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
8595 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open
, 12)
8596 void __thiscall
basic_ofstream_char_open(basic_ofstream_char
*this,
8597 const char *name
, int mode
)
8599 TRACE("(%p %s %d)\n", this, name
, mode
);
8601 if(!basic_filebuf_char_open_mode(&this->filebuf
, name
, mode
|OPENMODE_out
)) {
8602 basic_ios_char
*basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
8603 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8607 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
8608 /* ?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
8609 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_open_old
, 12)
8610 void __thiscall
basic_ofstream_char_open_old(basic_ofstream_char
*this,
8611 const char *name
, short mode
)
8613 basic_ofstream_char_open(this, name
, mode
);
8616 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8617 /* ?rdbuf@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8618 DEFINE_THISCALL_WRAPPER(basic_ofstream_char_rdbuf
, 4)
8619 basic_filebuf_char
* __thiscall
basic_ofstream_char_rdbuf(const basic_ofstream_char
*this)
8621 TRACE("(%p)\n", this);
8622 return (basic_filebuf_char
*)&this->filebuf
;
8625 static inline basic_ios_wchar
* basic_ofstream_short_to_basic_ios(basic_ofstream_wchar
*ptr
)
8627 return (basic_ios_wchar
*)((char*)ptr
+basic_ofstream_short_vbtable
[1]);
8630 static inline basic_ofstream_wchar
* basic_ofstream_short_from_basic_ios(basic_ios_wchar
*ptr
)
8632 return (basic_ofstream_wchar
*)((char*)ptr
-basic_ofstream_short_vbtable
[1]);
8635 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
8636 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
8637 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor
, 8)
8638 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor(basic_ofstream_wchar
*this, bool virt_init
)
8640 basic_ios_wchar
*basic_ios
;
8642 TRACE("(%p %d)\n", this, virt_init
);
8645 this->base
.vbtable
= basic_ofstream_short_vbtable
;
8646 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8647 basic_ios_short_ctor(basic_ios
);
8649 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8652 basic_filebuf_short_ctor(&this->filebuf
);
8653 basic_ostream_short_ctor(&this->base
, &this->filebuf
.base
, FALSE
, TRUE
, FALSE
);
8654 basic_ios
->base
.vtable
= &basic_ofstream_short_vtable
;
8658 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
8659 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
8660 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_copy_ctor
, 12)
8661 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_copy_ctor(basic_ofstream_wchar
*this,
8662 basic_ofstream_wchar
*copy
, bool virt_init
)
8664 basic_ios_wchar
*basic_ios
;
8666 TRACE("(%p %p %d)\n", this, copy
, virt_init
);
8669 this->base
.vbtable
= basic_ofstream_short_vbtable
;
8670 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8671 basic_ios_short_ctor(basic_ios
);
8673 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8676 basic_filebuf_short_ctor_file(&this->filebuf
, copy
->filebuf
.file
);
8677 basic_ostream_short_ctor(&this->base
, &this->filebuf
.base
, FALSE
, TRUE
, FALSE
);
8678 basic_ios
->base
.vtable
= &basic_ofstream_short_vtable
;
8682 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
8683 /* ??0?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
8684 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_ctor_name
, 16)
8685 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_ctor_name(basic_ofstream_wchar
*this,
8686 const char *name
, int mode
, bool virt_init
)
8688 TRACE("(%p %s %d %d)\n", this, name
, mode
, virt_init
);
8690 basic_ofstream_short_ctor(this, virt_init
);
8692 if(!basic_filebuf_short_open_mode(&this->filebuf
, name
, mode
|OPENMODE_out
)) {
8693 basic_ios_wchar
*basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8694 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
8699 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
8700 /* ??1?$basic_ofstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
8701 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_dtor
, 4)
8702 void __thiscall
basic_ofstream_short_dtor(basic_ios_wchar
*base
)
8704 basic_ofstream_wchar
*this = basic_ofstream_short_from_basic_ios(base
);
8706 TRACE("(%p)\n", this);
8708 basic_ostream_short_dtor(basic_ostream_short_to_basic_ios(&this->base
));
8709 basic_filebuf_short_dtor(&this->filebuf
);
8712 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8713 /* ??_D?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8714 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_vbase_dtor
, 4)
8715 void __thiscall
basic_ofstream_short_vbase_dtor(basic_ofstream_wchar
*this)
8717 TRACE("(%p)\n", this);
8719 basic_ofstream_short_dtor(basic_ofstream_short_to_basic_ios(this));
8720 basic_ios_short_dtor(basic_ostream_short_get_basic_ios(&this->base
));
8723 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_vector_dtor
, 8)
8724 basic_ofstream_wchar
* __thiscall
basic_ofstream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
8726 basic_ofstream_wchar
*this = basic_ofstream_short_from_basic_ios(base
);
8728 TRACE("(%p %x)\n", this, flags
);
8731 /* we have an array, with the number of elements stored before the first object */
8732 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8734 for(i
=*ptr
-1; i
>=0; i
--)
8735 basic_ofstream_short_vbase_dtor(this+i
);
8736 operator_delete(ptr
);
8738 basic_ofstream_short_vbase_dtor(this);
8740 operator_delete(this);
8746 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
8747 /* ?close@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
8748 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_close
, 4)
8749 void __thiscall
basic_ofstream_short_close(basic_ofstream_wchar
*this)
8751 TRACE("(%p)\n", this);
8753 if(!basic_filebuf_short_close(&this->filebuf
)) {
8754 basic_ios_wchar
*basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8755 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
8759 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
8760 /* ?is_open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
8761 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_is_open
, 4)
8762 bool __thiscall
basic_ofstream_short_is_open(const basic_ofstream_wchar
*this)
8764 TRACE("(%p)\n", this);
8765 return basic_filebuf_short_is_open(&this->filebuf
);
8768 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
8769 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
8770 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_open
, 12)
8771 void __thiscall
basic_ofstream_short_open(basic_ofstream_wchar
*this,
8772 const char *name
, int mode
)
8774 TRACE("(%p %s %d)\n", this, name
, mode
);
8776 if(!basic_filebuf_short_open_mode(&this->filebuf
, name
, mode
|OPENMODE_out
)) {
8777 basic_ios_wchar
*basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
8778 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
8782 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QAEXPBDF@Z */
8783 /* ?open@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDF@Z */
8784 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_open_old
, 12)
8785 void __thiscall
basic_ofstream_short_open_old(basic_ofstream_wchar
*this,
8786 const char *name
, int mode
)
8788 basic_ofstream_short_open(this, name
, mode
);
8791 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
8792 /* ?rdbuf@?$basic_ofstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
8793 DEFINE_THISCALL_WRAPPER(basic_ofstream_short_rdbuf
, 4)
8794 basic_filebuf_wchar
* __thiscall
basic_ofstream_short_rdbuf(const basic_ofstream_wchar
*this)
8796 TRACE("(%p)\n", this);
8797 return (basic_filebuf_wchar
*)&this->filebuf
;
8800 static inline basic_ios_char
* basic_ifstream_char_to_basic_ios(basic_ifstream_char
*ptr
)
8802 return (basic_ios_char
*)((char*)ptr
+basic_ifstream_char_vbtable
[1]);
8805 static inline basic_ifstream_char
* basic_ifstream_char_from_basic_ios(basic_ios_char
*ptr
)
8807 return (basic_ifstream_char
*)((char*)ptr
-basic_ifstream_char_vbtable
[1]);
8810 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
8811 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
8812 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor
, 8)
8813 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor(basic_ifstream_char
*this, bool virt_init
)
8815 basic_ios_char
*basic_ios
;
8817 TRACE("(%p %d)\n", this, virt_init
);
8820 this->base
.vbtable
= basic_ifstream_char_vbtable
;
8821 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8822 basic_ios_char_ctor(basic_ios
);
8824 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8827 basic_filebuf_char_ctor(&this->filebuf
);
8828 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
8829 basic_ios
->base
.vtable
= &basic_ifstream_char_vtable
;
8833 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
8834 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
8835 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_copy_ctor
, 12)
8836 basic_ifstream_char
* __thiscall
basic_ifstream_char_copy_ctor(basic_ifstream_char
*this,
8837 const basic_ifstream_char
*copy
, bool virt_init
)
8839 basic_ios_char
*basic_ios
;
8841 TRACE("(%p %p %d)\n", this, copy
, virt_init
);
8844 this->base
.vbtable
= basic_ifstream_char_vbtable
;
8845 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8846 basic_ios_char_ctor(basic_ios
);
8848 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8851 basic_filebuf_char_ctor_file(&this->filebuf
, copy
->filebuf
.file
);
8852 basic_istream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
8853 basic_ios
->base
.vtable
= &basic_ifstream_char_vtable
;
8857 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
8858 /* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
8859 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor_name
, 16)
8860 basic_ifstream_char
* __thiscall
basic_ifstream_char_ctor_name(basic_ifstream_char
*this,
8861 const char *name
, int mode
, bool virt_init
)
8863 TRACE("(%p %s %d %d)\n", this, name
, mode
, virt_init
);
8865 basic_ifstream_char_ctor(this, virt_init
);
8867 if(!basic_filebuf_char_open_mode(&this->filebuf
, name
, mode
|OPENMODE_in
)) {
8868 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8869 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8874 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
8875 /* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
8876 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor
, 4)
8877 void __thiscall
basic_ifstream_char_dtor(basic_ios_char
*base
)
8879 basic_ifstream_char
*this = basic_ifstream_char_from_basic_ios(base
);
8881 TRACE("(%p)\n", this);
8883 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
8884 basic_filebuf_char_dtor(&this->filebuf
);
8887 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8888 /* ??_D?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8889 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vbase_dtor
, 4)
8890 void __thiscall
basic_ifstream_char_vbase_dtor(basic_ifstream_char
*this)
8892 TRACE("(%p)\n", this);
8894 basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
8895 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
));
8898 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_vector_dtor
, 8)
8899 basic_ifstream_char
* __thiscall
basic_ifstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
8901 basic_ifstream_char
*this = basic_ifstream_char_from_basic_ios(base
);
8903 TRACE("(%p %x)\n", this, flags
);
8906 /* we have an array, with the number of elements stored before the first object */
8907 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
8909 for(i
=*ptr
-1; i
>=0; i
--)
8910 basic_ifstream_char_vbase_dtor(this+i
);
8911 operator_delete(ptr
);
8913 basic_ifstream_char_vbase_dtor(this);
8915 operator_delete(this);
8921 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
8922 /* ?close@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
8923 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_close
, 4)
8924 void __thiscall
basic_ifstream_char_close(basic_ifstream_char
*this)
8926 TRACE("(%p)\n", this);
8928 if(!basic_filebuf_char_close(&this->filebuf
)) {
8929 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8930 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8934 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
8935 /* ?is_open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
8936 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_is_open
, 4)
8937 bool __thiscall
basic_ifstream_char_is_open(const basic_ifstream_char
*this)
8939 TRACE("(%p)\n", this);
8940 return basic_filebuf_char_is_open(&this->filebuf
);
8943 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
8944 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
8945 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open
, 12)
8946 void __thiscall
basic_ifstream_char_open(basic_ifstream_char
*this,
8947 const char *name
, int mode
)
8949 TRACE("(%p %s %d)\n", this, name
, mode
);
8951 if(!basic_filebuf_char_open_mode(&this->filebuf
, name
, mode
|OPENMODE_in
)) {
8952 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
8953 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
8957 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
8958 /* ?open@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
8959 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_open_old
, 12)
8960 void __thiscall
basic_ifstream_char_open_old(basic_ifstream_char
*this,
8961 const char *name
, short mode
)
8963 basic_ifstream_char_open(this, name
, mode
);
8966 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8967 /* ?rdbuf@?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
8968 DEFINE_THISCALL_WRAPPER(basic_ifstream_char_rdbuf
, 4)
8969 basic_filebuf_char
* __thiscall
basic_ifstream_char_rdbuf(const basic_ifstream_char
*this)
8971 TRACE("(%p)\n", this);
8972 return (basic_filebuf_char
*)&this->filebuf
;
8975 static inline basic_ios_wchar
* basic_ifstream_short_to_basic_ios(basic_ifstream_wchar
*ptr
)
8977 return (basic_ios_wchar
*)((char*)ptr
+basic_ifstream_short_vbtable
[1]);
8980 static inline basic_ifstream_wchar
* basic_ifstream_short_from_basic_ios(basic_ios_wchar
*ptr
)
8982 return (basic_ifstream_wchar
*)((char*)ptr
-basic_ifstream_short_vbtable
[1]);
8985 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
8986 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
8987 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor
, 8)
8988 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor(basic_ifstream_wchar
*this, bool virt_init
)
8990 basic_ios_wchar
*basic_ios
;
8992 TRACE("(%p %d)\n", this, virt_init
);
8995 this->base
.vbtable
= basic_ifstream_short_vbtable
;
8996 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
8997 basic_ios_short_ctor(basic_ios
);
8999 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9002 basic_filebuf_short_ctor(&this->filebuf
);
9003 basic_istream_short_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
9004 basic_ios
->base
.vtable
= &basic_ifstream_short_vtable
;
9008 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
9009 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
9010 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_copy_ctor
, 12)
9011 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_copy_ctor(basic_ifstream_wchar
*this,
9012 basic_ifstream_wchar
*copy
, bool virt_init
)
9014 basic_ios_wchar
*basic_ios
;
9016 TRACE("(%p %p %d)\n", this, copy
, virt_init
);
9019 this->base
.vbtable
= basic_ifstream_short_vbtable
;
9020 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9021 basic_ios_short_ctor(basic_ios
);
9023 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9026 basic_filebuf_short_ctor_file(&this->filebuf
, copy
->filebuf
.file
);
9027 basic_istream_short_ctor(&this->base
, &this->filebuf
.base
, FALSE
, FALSE
);
9028 basic_ios
->base
.vtable
= &basic_ifstream_short_vtable
;
9032 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAE@PBDH@Z */
9033 /* ??0?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAA@PEBDH@Z */
9034 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_ctor_name
, 16)
9035 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_ctor_name(basic_ifstream_wchar
*this,
9036 const char *name
, int mode
, bool virt_init
)
9038 TRACE("(%p %s %d %d)\n", this, name
, mode
, virt_init
);
9040 basic_ifstream_short_ctor(this, virt_init
);
9042 if(!basic_filebuf_short_open_mode(&this->filebuf
, name
, mode
|OPENMODE_in
)) {
9043 basic_ios_wchar
*basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9044 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
9049 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9050 /* ??1?$basic_ifstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9051 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_dtor
, 4)
9052 void __thiscall
basic_ifstream_short_dtor(basic_ios_wchar
*base
)
9054 basic_ifstream_wchar
*this = basic_ifstream_short_from_basic_ios(base
);
9056 TRACE("(%p)\n", this);
9058 basic_istream_short_dtor(basic_istream_short_to_basic_ios(&this->base
));
9059 basic_filebuf_short_dtor(&this->filebuf
);
9062 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9063 /* ??_D?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9064 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_vbase_dtor
, 4)
9065 void __thiscall
basic_ifstream_short_vbase_dtor(basic_ifstream_wchar
*this)
9067 TRACE("(%p)\n", this);
9069 basic_ifstream_short_dtor(basic_ifstream_short_to_basic_ios(this));
9070 basic_ios_short_dtor(basic_istream_short_get_basic_ios(&this->base
));
9073 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_vector_dtor
, 8)
9074 basic_ifstream_wchar
* __thiscall
basic_ifstream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9076 basic_ifstream_wchar
*this = basic_ifstream_short_from_basic_ios(base
);
9078 TRACE("(%p %x)\n", this, flags
);
9081 /* we have an array, with the number of elements stored before the first object */
9082 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9084 for(i
=*ptr
-1; i
>=0; i
--)
9085 basic_ifstream_short_vbase_dtor(this+i
);
9086 operator_delete(ptr
);
9088 basic_ifstream_short_vbase_dtor(this);
9090 operator_delete(this);
9096 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9097 /* ?close@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9098 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_close
, 4)
9099 void __thiscall
basic_ifstream_short_close(basic_ifstream_wchar
*this)
9101 TRACE("(%p)\n", this);
9103 if(!basic_filebuf_short_close(&this->filebuf
)) {
9104 basic_ios_wchar
*basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9105 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
9109 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
9110 /* ?is_open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
9111 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_is_open
, 4)
9112 bool __thiscall
basic_ifstream_short_is_open(const basic_ifstream_wchar
*this)
9114 TRACE("(%p)\n", this);
9115 return basic_filebuf_short_is_open(&this->filebuf
);
9118 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
9119 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
9120 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_open
, 12)
9121 void __thiscall
basic_ifstream_short_open(basic_ifstream_wchar
*this,
9122 const char *name
, int mode
)
9124 TRACE("(%p %s %d)\n", this, name
, mode
);
9126 if(!basic_filebuf_short_open_mode(&this->filebuf
, name
, mode
|OPENMODE_in
)) {
9127 basic_ios_wchar
*basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9128 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
9132 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QAEXPBDF@Z */
9133 /* ?open@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDF@Z */
9134 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_open_old
, 12)
9135 void __thiscall
basic_ifstream_short_open_old(basic_ifstream_wchar
*this,
9136 const char *name
, short mode
)
9138 basic_ifstream_short_open(this, name
, mode
);
9141 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
9142 /* ?rdbuf@?$basic_ifstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
9143 DEFINE_THISCALL_WRAPPER(basic_ifstream_short_rdbuf
, 4)
9144 basic_filebuf_wchar
* __thiscall
basic_ifstream_short_rdbuf(const basic_ifstream_wchar
*this)
9146 TRACE("(%p)\n", this);
9147 return (basic_filebuf_wchar
*)&this->filebuf
;
9150 static inline basic_ios_char
* basic_fstream_char_to_basic_ios(basic_fstream_char
*ptr
)
9152 return (basic_ios_char
*)((char*)ptr
+basic_fstream_char_vbtable1
[1]);
9155 static inline basic_fstream_char
* basic_fstream_char_from_basic_ios(basic_ios_char
*ptr
)
9157 return (basic_fstream_char
*)((char*)ptr
-basic_fstream_char_vbtable1
[1]);
9160 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
9161 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
9162 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor
, 8)
9163 basic_fstream_char
* __thiscall
basic_fstream_char_ctor(basic_fstream_char
*this, bool virt_init
)
9165 basic_ios_char
*basic_ios
;
9167 TRACE("(%p %d)\n", this, virt_init
);
9170 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
9171 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
9172 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9173 basic_ios_char_ctor(basic_ios
);
9175 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9178 basic_filebuf_char_ctor(&this->filebuf
);
9179 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
9180 basic_ios
->base
.vtable
= &basic_fstream_char_vtable
;
9184 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z */
9185 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@AEBV01@@Z */
9186 DEFINE_THISCALL_WRAPPER(basic_fstream_char_copy_ctor
, 12)
9187 basic_fstream_char
* __thiscall
basic_fstream_char_copy_ctor(basic_fstream_char
*this,
9188 basic_fstream_char
*copy
, bool virt_init
)
9190 basic_ios_char
*basic_ios
;
9192 TRACE("(%p %p %d)\n", this, copy
, virt_init
);
9195 this->base
.base1
.vbtable
= basic_fstream_char_vbtable1
;
9196 this->base
.base2
.vbtable
= basic_fstream_char_vbtable2
;
9197 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9198 basic_ios_char_ctor(basic_ios
);
9200 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9203 basic_filebuf_char_ctor_file(&this->filebuf
, copy
->filebuf
.file
);
9204 basic_iostream_char_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
9205 basic_ios
->base
.vtable
= &basic_fstream_char_vtable
;
9209 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z */
9210 /* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@PEBDH@Z */
9211 DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor_name
, 16)
9212 basic_fstream_char
* __thiscall
basic_fstream_char_ctor_name(basic_fstream_char
*this,
9213 const char *name
, int mode
, bool virt_init
)
9215 TRACE("(%p %s %d %d)\n", this, name
, mode
, virt_init
);
9217 basic_fstream_char_ctor(this, virt_init
);
9219 if(!basic_filebuf_char_open_mode(&this->filebuf
, name
, mode
)) {
9220 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9221 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
9226 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
9227 /* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
9228 DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor
, 4)
9229 void __thiscall
basic_fstream_char_dtor(basic_ios_char
*base
)
9231 basic_fstream_char
*this = basic_fstream_char_from_basic_ios(base
);
9233 TRACE("(%p)\n", this);
9235 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
9236 basic_filebuf_char_dtor(&this->filebuf
);
9239 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9240 /* ??_D?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9241 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vbase_dtor
, 4)
9242 void __thiscall
basic_fstream_char_vbase_dtor(basic_fstream_char
*this)
9244 TRACE("(%p)\n", this);
9246 basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
9247 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
9250 DEFINE_THISCALL_WRAPPER(basic_fstream_char_vector_dtor
, 8)
9251 basic_fstream_char
* __thiscall
basic_fstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
9253 basic_fstream_char
*this = basic_fstream_char_from_basic_ios(base
);
9255 TRACE("(%p %x)\n", this, flags
);
9258 /* we have an array, with the number of elements stored before the first object */
9259 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9261 for(i
=*ptr
-1; i
>=0; i
--)
9262 basic_fstream_char_vbase_dtor(this+i
);
9263 operator_delete(ptr
);
9265 basic_fstream_char_vbase_dtor(this);
9267 operator_delete(this);
9273 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXXZ */
9274 /* ?close@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXXZ */
9275 DEFINE_THISCALL_WRAPPER(basic_fstream_char_close
, 4)
9276 void __thiscall
basic_fstream_char_close(basic_fstream_char
*this)
9278 TRACE("(%p)\n", this);
9280 if(!basic_filebuf_char_close(&this->filebuf
)) {
9281 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9282 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
9286 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBE_NXZ */
9287 /* ?is_open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBA_NXZ */
9288 DEFINE_THISCALL_WRAPPER(basic_fstream_char_is_open
, 4)
9289 bool __thiscall
basic_fstream_char_is_open(const basic_fstream_char
*this)
9291 TRACE("(%p)\n", this);
9292 return basic_filebuf_char_is_open(&this->filebuf
);
9295 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z */
9296 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDH@Z */
9297 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open
, 12)
9298 void __thiscall
basic_fstream_char_open(basic_fstream_char
*this,
9299 const char *name
, int mode
)
9301 TRACE("(%p %s %d)\n", this, name
, mode
);
9303 if(!basic_filebuf_char_open_mode(&this->filebuf
, name
, mode
)) {
9304 basic_ios_char
*basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
9305 basic_ios_char_setstate(basic_ios
, IOSTATE_failbit
);
9309 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QAEXPBDF@Z */
9310 /* ?open@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAAXPEBDF@Z */
9311 DEFINE_THISCALL_WRAPPER(basic_fstream_char_open_old
, 12)
9312 void __thiscall
basic_fstream_char_open_old(basic_fstream_char
*this,
9313 const char *name
, int mode
)
9315 basic_fstream_char_open(this, name
, mode
);
9318 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
9319 /* ?rdbuf@?$basic_fstream@DU?$char_traits@D@std@@@std@@QEBAPEAV?$basic_filebuf@DU?$char_traits@D@std@@@2@XZ */
9320 DEFINE_THISCALL_WRAPPER(basic_fstream_char_rdbuf
, 4)
9321 basic_filebuf_char
* __thiscall
basic_fstream_char_rdbuf(const basic_fstream_char
*this)
9323 TRACE("(%p)\n", this);
9324 return (basic_filebuf_char
*)&this->filebuf
;
9327 static inline basic_ios_wchar
* basic_fstream_short_to_basic_ios(basic_fstream_wchar
*ptr
)
9329 return (basic_ios_wchar
*)((char*)ptr
+basic_fstream_short_vbtable1
[1]);
9332 static inline basic_fstream_wchar
* basic_fstream_short_from_basic_ios(basic_ios_wchar
*ptr
)
9334 return (basic_fstream_wchar
*)((char*)ptr
-basic_fstream_short_vbtable1
[1]);
9337 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@XZ */
9338 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@XZ */
9339 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor
, 8)
9340 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor(basic_fstream_wchar
*this, bool virt_init
)
9342 basic_ios_wchar
*basic_ios
;
9344 TRACE("(%p %d)\n", this, virt_init
);
9347 this->base
.base1
.vbtable
= basic_fstream_short_vbtable1
;
9348 this->base
.base2
.vbtable
= basic_fstream_short_vbtable2
;
9349 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9350 basic_ios_short_ctor(basic_ios
);
9352 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9355 basic_filebuf_short_ctor(&this->filebuf
);
9356 basic_iostream_short_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
9357 basic_ios
->base
.vtable
= &basic_fstream_short_vtable
;
9361 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z */
9362 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@AEBV01@@Z */
9363 DEFINE_THISCALL_WRAPPER(basic_fstream_short_copy_ctor
, 12)
9364 basic_fstream_wchar
* __thiscall
basic_fstream_short_copy_ctor(basic_fstream_wchar
*this,
9365 basic_fstream_wchar
*copy
, bool virt_init
)
9367 basic_ios_wchar
*basic_ios
;
9369 TRACE("(%p %p %d)\n", this, copy
, virt_init
);
9372 this->base
.base1
.vbtable
= basic_fstream_short_vbtable1
;
9373 this->base
.base2
.vbtable
= basic_fstream_short_vbtable2
;
9374 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9375 basic_ios_short_ctor(basic_ios
);
9377 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9380 basic_filebuf_short_ctor_file(&this->filebuf
, copy
->filebuf
.file
);
9381 basic_iostream_short_ctor(&this->base
, &this->filebuf
.base
, FALSE
);
9382 basic_ios
->base
.vtable
= &basic_fstream_short_vtable
;
9386 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QAE@PBGHH@Z */
9387 /* ??0?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAA@PEBGHH@Z */
9388 DEFINE_THISCALL_WRAPPER(basic_fstream_short_ctor_name
, 16)
9389 basic_fstream_wchar
* __thiscall
basic_fstream_short_ctor_name(basic_fstream_wchar
*this,
9390 const char *name
, int mode
, bool virt_init
)
9392 TRACE("(%p %s %d %d)\n", this, name
, mode
, virt_init
);
9394 basic_fstream_short_ctor(this, virt_init
);
9396 if(!basic_filebuf_short_open_mode(&this->filebuf
, name
, mode
)) {
9397 basic_ios_wchar
*basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9398 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
9403 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UAE@XZ */
9404 /* ??1?$basic_fstream@GU?$char_traits@G@std@@@std@@UEAA@XZ */
9405 DEFINE_THISCALL_WRAPPER(basic_fstream_short_dtor
, 4)
9406 void __thiscall
basic_fstream_short_dtor(basic_ios_wchar
*base
)
9408 basic_fstream_wchar
*this = basic_fstream_short_from_basic_ios(base
);
9410 TRACE("(%p)\n", this);
9412 basic_iostream_short_dtor(basic_iostream_short_to_basic_ios(&this->base
));
9413 basic_filebuf_short_dtor(&this->filebuf
);
9416 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9417 /* ??_D?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9418 DEFINE_THISCALL_WRAPPER(basic_fstream_short_vbase_dtor
, 4)
9419 void __thiscall
basic_fstream_short_vbase_dtor(basic_fstream_wchar
*this)
9421 TRACE("(%p)\n", this);
9423 basic_fstream_short_dtor(basic_fstream_short_to_basic_ios(this));
9424 basic_ios_short_dtor(basic_istream_short_get_basic_ios(&this->base
.base1
));
9427 DEFINE_THISCALL_WRAPPER(basic_fstream_short_vector_dtor
, 8)
9428 basic_fstream_wchar
* __thiscall
basic_fstream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9430 basic_fstream_wchar
*this = basic_fstream_short_from_basic_ios(base
);
9432 TRACE("(%p %x)\n", this, flags
);
9435 /* we have an array, with the number of elements stored before the first object */
9436 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9438 for(i
=*ptr
-1; i
>=0; i
--)
9439 basic_fstream_short_vbase_dtor(this+i
);
9440 operator_delete(ptr
);
9442 basic_fstream_short_vbase_dtor(this);
9444 operator_delete(this);
9450 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXXZ */
9451 /* ?close@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXXZ */
9452 DEFINE_THISCALL_WRAPPER(basic_fstream_short_close
, 4)
9453 void __thiscall
basic_fstream_short_close(basic_fstream_wchar
*this)
9455 TRACE("(%p)\n", this);
9457 if(!basic_filebuf_short_close(&this->filebuf
)) {
9458 basic_ios_wchar
*basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9459 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
9463 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBE_NXZ */
9464 /* ?is_open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBA_NXZ */
9465 DEFINE_THISCALL_WRAPPER(basic_fstream_short_is_open
, 4)
9466 bool __thiscall
basic_fstream_short_is_open(const basic_fstream_wchar
*this)
9468 TRACE("(%p)\n", this);
9469 return basic_filebuf_short_is_open(&this->filebuf
);
9472 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QAEXPBDH@Z */
9473 /* ?open@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEAAXPEBDH@Z */
9474 DEFINE_THISCALL_WRAPPER(basic_fstream_short_open
, 12)
9475 void __thiscall
basic_fstream_short_open(basic_fstream_wchar
*this,
9476 const char *name
, int mode
)
9478 TRACE("(%p %s %d)\n", this, name
, mode
);
9480 if(!basic_filebuf_short_open_mode(&this->filebuf
, name
, mode
)) {
9481 basic_ios_wchar
*basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
9482 basic_ios_short_setstate(basic_ios
, IOSTATE_failbit
);
9486 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAEPAV12@PBDF@Z */
9487 /* ?open@?$basic_filebuf@GU?$char_traits@G@std@@@std@@QEAAPEAV12@PEBDF@Z */
9488 DEFINE_THISCALL_WRAPPER(basic_fstream_short_open_old
, 12)
9489 void __thiscall
basic_fstream_short_open_old(basic_fstream_wchar
*this,
9490 const char *name
, int mode
)
9492 basic_fstream_short_open(this, name
, mode
);
9495 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QBEPAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
9496 /* ?rdbuf@?$basic_fstream@GU?$char_traits@G@std@@@std@@QEBAPEAV?$basic_filebuf@GU?$char_traits@G@std@@@2@XZ */
9497 DEFINE_THISCALL_WRAPPER(basic_fstream_short_rdbuf
, 4)
9498 basic_filebuf_wchar
* __thiscall
basic_fstream_short_rdbuf(const basic_fstream_wchar
*this)
9500 TRACE("(%p)\n", this);
9501 return (basic_filebuf_wchar
*)&this->filebuf
;
9504 static inline basic_ios_char
* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char
*ptr
)
9506 return (basic_ios_char
*)((char*)ptr
+basic_ostringstream_char_vbtable
[1]);
9509 static inline basic_ostringstream_char
* basic_ostringstream_char_from_basic_ios(basic_ios_char
*ptr
)
9511 return (basic_ostringstream_char
*)((char*)ptr
-basic_ostringstream_char_vbtable
[1]);
9514 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
9515 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
9516 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str
, 16)
9517 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_str(basic_ostringstream_char
*this,
9518 const basic_string_char
*str
, int mode
, bool virt_init
)
9520 basic_ios_char
*basic_ios
;
9522 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9525 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
9526 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
9527 basic_ios_char_ctor(basic_ios
);
9529 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
9532 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
9533 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, TRUE
, FALSE
);
9534 basic_ios
->base
.vtable
= &basic_ostringstream_char_vtable
;
9538 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
9539 /* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
9540 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_mode
, 12)
9541 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor_mode(
9542 basic_ostringstream_char
*this, int mode
, bool virt_init
)
9544 basic_ios_char
*basic_ios
;
9546 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9549 this->base
.vbtable
= basic_ostringstream_char_vbtable
;
9550 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
9551 basic_ios_char_ctor(basic_ios
);
9553 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
9556 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
9557 basic_ostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, TRUE
, FALSE
);
9558 basic_ios
->base
.vtable
= &basic_ostringstream_char_vtable
;
9562 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
9563 /* ??_F?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
9564 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor
, 4)
9565 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_ctor(
9566 basic_ostringstream_char
*this)
9568 return basic_ostringstream_char_ctor_mode(this, 0, TRUE
);
9571 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
9572 /* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
9573 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor
, 4)
9574 void __thiscall
basic_ostringstream_char_dtor(basic_ios_char
*base
)
9576 basic_ostringstream_char
*this = basic_ostringstream_char_from_basic_ios(base
);
9578 TRACE("(%p)\n", this);
9580 basic_stringbuf_char_dtor(&this->strbuf
);
9581 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
9584 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
9585 /* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
9586 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vbase_dtor
, 4)
9587 void __thiscall
basic_ostringstream_char_vbase_dtor(basic_ostringstream_char
*this)
9589 TRACE("(%p)\n", this);
9591 basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
9592 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
9595 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_vector_dtor
, 8)
9596 basic_ostringstream_char
* __thiscall
basic_ostringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
9598 basic_ostringstream_char
*this = basic_ostringstream_char_from_basic_ios(base
);
9600 TRACE("(%p %x)\n", this, flags
);
9603 /* we have an array, with the number of elements stored before the first object */
9604 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9606 for(i
=*ptr
-1; i
>=0; i
--)
9607 basic_ostringstream_char_vbase_dtor(this+i
);
9608 operator_delete(ptr
);
9610 basic_ostringstream_char_vbase_dtor(this);
9612 operator_delete(this);
9618 /* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9619 /* ?rdbuf@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9620 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_rdbuf
, 4)
9621 basic_stringbuf_char
* __thiscall
basic_ostringstream_char_rdbuf(const basic_ostringstream_char
*this)
9623 TRACE("(%p)\n", this);
9624 return (basic_stringbuf_char
*)&this->strbuf
;
9627 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
9628 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
9629 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_set
, 8)
9630 void __thiscall
basic_ostringstream_char_str_set(basic_ostringstream_char
*this, const basic_string_char
*str
)
9632 TRACE("(%p %p)\n", this, str
);
9633 basic_stringbuf_char_str_set(&this->strbuf
, str
);
9636 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9637 /* ?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9638 DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_str_get
, 8)
9639 basic_string_char
* __thiscall
basic_ostringstream_char_str_get(const basic_ostringstream_char
*this, basic_string_char
*ret
)
9641 TRACE("(%p %p)\n", this, ret
);
9642 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
9645 static inline basic_ios_wchar
* basic_ostringstream_short_to_basic_ios(basic_ostringstream_wchar
*ptr
)
9647 return (basic_ios_wchar
*)((char*)ptr
+basic_ostringstream_short_vbtable
[1]);
9650 static inline basic_ostringstream_wchar
* basic_ostringstream_short_from_basic_ios(basic_ios_wchar
*ptr
)
9652 return (basic_ostringstream_wchar
*)((char*)ptr
-basic_ostringstream_short_vbtable
[1]);
9655 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
9656 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
9657 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_str
, 16)
9658 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor_str(basic_ostringstream_wchar
*this,
9659 const basic_string_wchar
*str
, int mode
, bool virt_init
)
9661 basic_ios_wchar
*basic_ios
;
9663 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9666 this->base
.vbtable
= basic_ostringstream_short_vbtable
;
9667 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
9668 basic_ios_short_ctor(basic_ios
);
9670 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
9673 basic_stringbuf_short_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_out
);
9674 basic_ostream_short_ctor(&this->base
, &this->strbuf
.base
, FALSE
, TRUE
, FALSE
);
9675 basic_ios
->base
.vtable
= &basic_ostringstream_short_vtable
;
9679 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
9680 /* ??0?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
9681 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor_mode
, 12)
9682 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor_mode(
9683 basic_ostringstream_wchar
*this, int mode
, bool virt_init
)
9685 basic_ios_wchar
*basic_ios
;
9687 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9690 this->base
.vbtable
= basic_ostringstream_short_vbtable
;
9691 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
9692 basic_ios_short_ctor(basic_ios
);
9694 basic_ios
= basic_ostream_short_get_basic_ios(&this->base
);
9697 basic_stringbuf_short_ctor_mode(&this->strbuf
, mode
|OPENMODE_out
);
9698 basic_ostream_short_ctor(&this->base
, &this->strbuf
.base
, FALSE
, TRUE
, FALSE
);
9699 basic_ios
->base
.vtable
= &basic_ostringstream_short_vtable
;
9703 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
9704 /* ??_F?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
9705 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_ctor
, 4)
9706 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_ctor(
9707 basic_ostringstream_wchar
*this)
9709 return basic_ostringstream_short_ctor_mode(this, 0, TRUE
);
9712 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
9713 /* ??1?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
9714 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_dtor
, 4)
9715 void __thiscall
basic_ostringstream_short_dtor(basic_ios_wchar
*base
)
9717 basic_ostringstream_wchar
*this = basic_ostringstream_short_from_basic_ios(base
);
9719 TRACE("(%p)\n", this);
9721 basic_stringbuf_short_dtor(&this->strbuf
);
9722 basic_ostream_short_dtor(basic_ostream_short_to_basic_ios(&this->base
));
9725 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
9726 /* ??_D?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
9727 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_vbase_dtor
, 4)
9728 void __thiscall
basic_ostringstream_short_vbase_dtor(basic_ostringstream_wchar
*this)
9730 TRACE("(%p)\n", this);
9732 basic_ostringstream_short_dtor(basic_ostringstream_short_to_basic_ios(this));
9733 basic_ios_short_dtor(basic_ostream_short_get_basic_ios(&this->base
));
9736 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_vector_dtor
, 8)
9737 basic_ostringstream_wchar
* __thiscall
basic_ostringstream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
9739 basic_ostringstream_wchar
*this = basic_ostringstream_short_from_basic_ios(base
);
9741 TRACE("(%p %x)\n", this, flags
);
9744 /* we have an array, with the number of elements stored before the first object */
9745 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9747 for(i
=*ptr
-1; i
>=0; i
--)
9748 basic_ostringstream_short_vbase_dtor(this+i
);
9749 operator_delete(ptr
);
9751 basic_ostringstream_short_vbase_dtor(this);
9753 operator_delete(this);
9759 /* ?rdbuf@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
9760 /* ?rdbuf@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
9761 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_rdbuf
, 4)
9762 basic_stringbuf_wchar
* __thiscall
basic_ostringstream_short_rdbuf(const basic_ostringstream_wchar
*this)
9764 TRACE("(%p)\n", this);
9765 return (basic_stringbuf_wchar
*)&this->strbuf
;
9768 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
9769 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
9770 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_str_set
, 8)
9771 void __thiscall
basic_ostringstream_short_str_set(basic_ostringstream_wchar
*this, const basic_string_wchar
*str
)
9773 TRACE("(%p %p)\n", this, str
);
9774 basic_stringbuf_short_str_set(&this->strbuf
, str
);
9777 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
9778 /* ?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
9779 DEFINE_THISCALL_WRAPPER(basic_ostringstream_short_str_get
, 8)
9780 basic_string_wchar
* __thiscall
basic_ostringstream_short_str_get(const basic_ostringstream_wchar
*this, basic_string_wchar
*ret
)
9782 TRACE("(%p %p)\n", this, ret
);
9783 return basic_stringbuf_short_str_get(&this->strbuf
, ret
);
9786 static inline basic_ios_char
* basic_istringstream_char_to_basic_ios(basic_istringstream_char
*ptr
)
9788 return (basic_ios_char
*)((char*)ptr
+basic_istringstream_char_vbtable
[1]);
9791 static inline basic_istringstream_char
* basic_istringstream_char_from_basic_ios(basic_ios_char
*ptr
)
9793 return (basic_istringstream_char
*)((char*)ptr
-basic_istringstream_char_vbtable
[1]);
9796 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
9797 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
9798 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str
, 16)
9799 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_str(basic_istringstream_char
*this,
9800 const basic_string_char
*str
, int mode
, bool virt_init
)
9802 basic_ios_char
*basic_ios
;
9804 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9807 this->base
.vbtable
= basic_istringstream_char_vbtable
;
9808 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
9809 basic_ios_char_ctor(basic_ios
);
9811 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
9814 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
9815 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
9816 basic_ios
->base
.vtable
= &basic_istringstream_char_vtable
;
9820 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
9821 /* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
9822 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_mode
, 12)
9823 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor_mode(
9824 basic_istringstream_char
*this, int mode
, bool virt_init
)
9826 basic_ios_char
*basic_ios
;
9828 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9831 this->base
.vbtable
= basic_istringstream_char_vbtable
;
9832 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
9833 basic_ios_char_ctor(basic_ios
);
9835 basic_ios
= basic_istream_char_get_basic_ios(&this->base
);
9838 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
9839 basic_istream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
9840 basic_ios
->base
.vtable
= &basic_istringstream_char_vtable
;
9844 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
9845 /* ??_F?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
9846 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor
, 4)
9847 basic_istringstream_char
* __thiscall
basic_istringstream_char_ctor(
9848 basic_istringstream_char
*this)
9850 return basic_istringstream_char_ctor_mode(this, 0, TRUE
);
9853 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
9854 /* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
9855 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor
, 4)
9856 void __thiscall
basic_istringstream_char_dtor(basic_ios_char
*base
)
9858 basic_istringstream_char
*this = basic_istringstream_char_from_basic_ios(base
);
9860 TRACE("(%p)\n", this);
9862 basic_stringbuf_char_dtor(&this->strbuf
);
9863 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
9866 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
9867 /* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
9868 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vbase_dtor
, 4)
9869 void __thiscall
basic_istringstream_char_vbase_dtor(basic_istringstream_char
*this)
9871 TRACE("(%p)\n", this);
9873 basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
9874 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
));
9877 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_vector_dtor
, 8)
9878 basic_istringstream_char
* __thiscall
basic_istringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
9880 basic_istringstream_char
*this = basic_istringstream_char_from_basic_ios(base
);
9882 TRACE("(%p %x)\n", this, flags
);
9885 /* we have an array, with the number of elements stored before the first object */
9886 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
9888 for(i
=*ptr
-1; i
>=0; i
--)
9889 basic_istringstream_char_vbase_dtor(this+i
);
9890 operator_delete(ptr
);
9892 basic_istringstream_char_vbase_dtor(this);
9894 operator_delete(this);
9900 /* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9901 /* ?rdbuf@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9902 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_rdbuf
, 4)
9903 basic_stringbuf_char
* __thiscall
basic_istringstream_char_rdbuf(const basic_istringstream_char
*this)
9905 TRACE("(%p)\n", this);
9906 return (basic_stringbuf_char
*)&this->strbuf
;
9909 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
9910 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
9911 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_set
, 8)
9912 void __thiscall
basic_istringstream_char_str_set(basic_istringstream_char
*this, const basic_string_char
*str
)
9914 TRACE("(%p %p)\n", this, str
);
9915 basic_stringbuf_char_str_set(&this->strbuf
, str
);
9918 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9919 /* ?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
9920 DEFINE_THISCALL_WRAPPER(basic_istringstream_char_str_get
, 8)
9921 basic_string_char
* __thiscall
basic_istringstream_char_str_get(const basic_istringstream_char
*this, basic_string_char
*ret
)
9923 TRACE("(%p %p)\n", this, ret
);
9924 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
9927 static inline basic_ios_wchar
* basic_istringstream_short_to_basic_ios(basic_istringstream_wchar
*ptr
)
9929 return (basic_ios_wchar
*)((char*)ptr
+basic_istringstream_short_vbtable
[1]);
9932 static inline basic_istringstream_wchar
* basic_istringstream_short_from_basic_ios(basic_ios_wchar
*ptr
)
9934 return (basic_istringstream_wchar
*)((char*)ptr
-basic_istringstream_short_vbtable
[1]);
9937 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
9938 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
9939 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_str
, 16)
9940 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor_str(basic_istringstream_wchar
*this,
9941 const basic_string_wchar
*str
, int mode
, bool virt_init
)
9943 basic_ios_wchar
*basic_ios
;
9945 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
9948 this->base
.vbtable
= basic_istringstream_short_vbtable
;
9949 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9950 basic_ios_short_ctor(basic_ios
);
9952 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9955 basic_stringbuf_short_ctor_str(&this->strbuf
, str
, mode
|OPENMODE_in
);
9956 basic_istream_short_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
9957 basic_ios
->base
.vtable
= &basic_istringstream_short_vtable
;
9961 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
9962 /* ??0?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
9963 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor_mode
, 12)
9964 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor_mode(
9965 basic_istringstream_wchar
*this, int mode
, bool virt_init
)
9967 basic_ios_wchar
*basic_ios
;
9969 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
9972 this->base
.vbtable
= basic_istringstream_short_vbtable
;
9973 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9974 basic_ios_short_ctor(basic_ios
);
9976 basic_ios
= basic_istream_short_get_basic_ios(&this->base
);
9979 basic_stringbuf_short_ctor_mode(&this->strbuf
, mode
|OPENMODE_in
);
9980 basic_istream_short_ctor(&this->base
, &this->strbuf
.base
, FALSE
, FALSE
);
9981 basic_ios
->base
.vtable
= &basic_istringstream_short_vtable
;
9985 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
9986 /* ??_F?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
9987 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_ctor
, 4)
9988 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_ctor(
9989 basic_istringstream_wchar
*this)
9991 return basic_istringstream_short_ctor_mode(this, 0, TRUE
);
9994 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
9995 /* ??1?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
9996 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_dtor
, 4)
9997 void __thiscall
basic_istringstream_short_dtor(basic_ios_wchar
*base
)
9999 basic_istringstream_wchar
*this = basic_istringstream_short_from_basic_ios(base
);
10001 TRACE("(%p)\n", this);
10003 basic_stringbuf_short_dtor(&this->strbuf
);
10004 basic_istream_short_dtor(basic_istream_short_to_basic_ios(&this->base
));
10007 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
10008 /* ??_D?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
10009 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_vbase_dtor
, 4)
10010 void __thiscall
basic_istringstream_short_vbase_dtor(basic_istringstream_wchar
*this)
10012 TRACE("(%p)\n", this);
10014 basic_istringstream_short_dtor(basic_istringstream_short_to_basic_ios(this));
10015 basic_ios_short_dtor(basic_istream_short_get_basic_ios(&this->base
));
10018 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_vector_dtor
, 8)
10019 basic_istringstream_wchar
* __thiscall
basic_istringstream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
10021 basic_istringstream_wchar
*this = basic_istringstream_short_from_basic_ios(base
);
10023 TRACE("(%p %x)\n", this, flags
);
10026 /* we have an array, with the number of elements stored before the first object */
10027 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10029 for(i
=*ptr
-1; i
>=0; i
--)
10030 basic_istringstream_short_vbase_dtor(this+i
);
10031 operator_delete(ptr
);
10033 basic_istringstream_short_vbase_dtor(this);
10035 operator_delete(this);
10041 /* ?rdbuf@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10042 /* ?rdbuf@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10043 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_rdbuf
, 4)
10044 basic_stringbuf_wchar
* __thiscall
basic_istringstream_short_rdbuf(const basic_istringstream_wchar
*this)
10046 TRACE("(%p)\n", this);
10047 return (basic_stringbuf_wchar
*)&this->strbuf
;
10050 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
10051 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
10052 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_str_set
, 8)
10053 void __thiscall
basic_istringstream_short_str_set(basic_istringstream_wchar
*this, const basic_string_wchar
*str
)
10055 TRACE("(%p %p)\n", this, str
);
10056 basic_stringbuf_short_str_set(&this->strbuf
, str
);
10059 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10060 /* ?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10061 DEFINE_THISCALL_WRAPPER(basic_istringstream_short_str_get
, 8)
10062 basic_string_wchar
* __thiscall
basic_istringstream_short_str_get(const basic_istringstream_wchar
*this, basic_string_wchar
*ret
)
10064 TRACE("(%p %p)\n", this, ret
);
10065 return basic_stringbuf_short_str_get(&this->strbuf
, ret
);
10068 static inline basic_ios_char
* basic_stringstream_char_to_basic_ios(basic_stringstream_char
*ptr
)
10070 return (basic_ios_char
*)((char*)ptr
+basic_stringstream_char_vbtable1
[1]);
10073 static inline basic_stringstream_char
* basic_stringstream_char_from_basic_ios(basic_ios_char
*ptr
)
10075 return (basic_stringstream_char
*)((char*)ptr
-basic_stringstream_char_vbtable1
[1]);
10078 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
10079 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
10080 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str
, 16)
10081 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_str(basic_stringstream_char
*this,
10082 const basic_string_char
*str
, int mode
, bool virt_init
)
10084 basic_ios_char
*basic_ios
;
10086 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
10089 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
10090 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
10091 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10092 basic_ios_char_ctor(basic_ios
);
10094 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10097 basic_stringbuf_char_ctor_str(&this->strbuf
, str
, mode
);
10098 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
10099 basic_ios
->base
.vtable
= &basic_stringstream_char_vtable
;
10103 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z */
10104 /* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@H@Z */
10105 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_mode
, 12)
10106 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor_mode(
10107 basic_stringstream_char
*this, int mode
, bool virt_init
)
10109 basic_ios_char
*basic_ios
;
10111 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
10114 this->base
.base1
.vbtable
= basic_stringstream_char_vbtable1
;
10115 this->base
.base2
.vbtable
= basic_stringstream_char_vbtable2
;
10116 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10117 basic_ios_char_ctor(basic_ios
);
10119 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10122 basic_stringbuf_char_ctor_mode(&this->strbuf
, mode
);
10123 basic_iostream_char_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
10124 basic_ios
->base
.vtable
= &basic_stringstream_char_vtable
;
10128 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
10129 /* ??_F?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
10130 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor
, 4)
10131 basic_stringstream_char
* __thiscall
basic_stringstream_char_ctor(
10132 basic_stringstream_char
*this)
10134 return basic_stringstream_char_ctor_mode(
10135 this, OPENMODE_out
|OPENMODE_in
, TRUE
);
10138 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
10139 /* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
10140 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor
, 4)
10141 void __thiscall
basic_stringstream_char_dtor(basic_ios_char
*base
)
10143 basic_stringstream_char
*this = basic_stringstream_char_from_basic_ios(base
);
10145 TRACE("(%p)\n", this);
10147 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
10148 basic_stringbuf_char_dtor(&this->strbuf
);
10151 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
10152 /* ??_D?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXXZ */
10153 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vbase_dtor
, 4)
10154 void __thiscall
basic_stringstream_char_vbase_dtor(basic_stringstream_char
*this)
10156 TRACE("(%p)\n", this);
10158 basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
10159 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
10162 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_vector_dtor
, 8)
10163 basic_stringstream_char
* __thiscall
basic_stringstream_char_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
10165 basic_stringstream_char
*this = basic_stringstream_char_from_basic_ios(base
);
10167 TRACE("(%p %x)\n", this, flags
);
10170 /* we have an array, with the number of elements stored before the first object */
10171 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10173 for(i
=*ptr
-1; i
>=0; i
--)
10174 basic_stringstream_char_vbase_dtor(this+i
);
10175 operator_delete(ptr
);
10177 basic_stringstream_char_vbase_dtor(this);
10179 operator_delete(this);
10185 /* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
10186 /* ?rdbuf@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEAV?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
10187 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_rdbuf
, 4)
10188 basic_stringbuf_char
* __thiscall
basic_stringstream_char_rdbuf(const basic_stringstream_char
*this)
10190 TRACE("(%p)\n", this);
10191 return (basic_stringbuf_char
*)&this->strbuf
;
10194 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
10195 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
10196 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_set
, 8)
10197 void __thiscall
basic_stringstream_char_str_set(basic_stringstream_char
*this, const basic_string_char
*str
)
10199 TRACE("(%p %p)\n", this, str
);
10200 basic_stringbuf_char_str_set(&this->strbuf
, str
);
10203 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
10204 /* ?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
10205 DEFINE_THISCALL_WRAPPER(basic_stringstream_char_str_get
, 8)
10206 basic_string_char
* __thiscall
basic_stringstream_char_str_get(const basic_stringstream_char
*this, basic_string_char
*ret
)
10208 TRACE("(%p %p)\n", this, ret
);
10209 return basic_stringbuf_char_str_get(&this->strbuf
, ret
);
10212 static inline basic_ios_wchar
* basic_stringstream_short_to_basic_ios(basic_stringstream_wchar
*ptr
)
10214 return (basic_ios_wchar
*)((char*)ptr
+basic_stringstream_short_vbtable1
[1]);
10217 static inline basic_stringstream_wchar
* basic_stringstream_short_from_basic_ios(basic_ios_wchar
*ptr
)
10219 return (basic_stringstream_wchar
*)((char*)ptr
-basic_stringstream_short_vbtable1
[1]);
10222 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
10223 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@AEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z */
10224 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_str
, 16)
10225 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor_str(basic_stringstream_wchar
*this,
10226 const basic_string_wchar
*str
, int mode
, bool virt_init
)
10228 basic_ios_wchar
*basic_ios
;
10230 TRACE("(%p %p %d %d)\n", this, str
, mode
, virt_init
);
10233 this->base
.base1
.vbtable
= basic_stringstream_short_vbtable1
;
10234 this->base
.base2
.vbtable
= basic_stringstream_short_vbtable2
;
10235 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
10236 basic_ios_short_ctor(basic_ios
);
10238 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
10241 basic_stringbuf_short_ctor_str(&this->strbuf
, str
, mode
);
10242 basic_iostream_short_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
10243 basic_ios
->base
.vtable
= &basic_stringstream_short_vtable
;
10247 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z */
10248 /* ??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA@H@Z */
10249 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor_mode
, 12)
10250 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor_mode(
10251 basic_stringstream_wchar
*this, int mode
, bool virt_init
)
10253 basic_ios_wchar
*basic_ios
;
10255 TRACE("(%p %d %d)\n", this, mode
, virt_init
);
10258 this->base
.base1
.vbtable
= basic_stringstream_short_vbtable1
;
10259 this->base
.base2
.vbtable
= basic_stringstream_short_vbtable2
;
10260 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
10261 basic_ios_short_ctor(basic_ios
);
10263 basic_ios
= basic_istream_short_get_basic_ios(&this->base
.base1
);
10266 basic_stringbuf_short_ctor_mode(&this->strbuf
, mode
);
10267 basic_iostream_short_ctor(&this->base
, &this->strbuf
.base
, FALSE
);
10268 basic_ios
->base
.vtable
= &basic_stringstream_short_vtable
;
10272 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
10273 /* ??_F?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
10274 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_ctor
, 4)
10275 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_ctor(
10276 basic_stringstream_wchar
*this)
10278 return basic_stringstream_short_ctor_mode(
10279 this, OPENMODE_out
|OPENMODE_in
, TRUE
);
10282 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UAE@XZ */
10283 /* ??1?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@UEAA@XZ */
10284 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_dtor
, 4)
10285 void __thiscall
basic_stringstream_short_dtor(basic_ios_wchar
*base
)
10287 basic_stringstream_wchar
*this = basic_stringstream_short_from_basic_ios(base
);
10289 TRACE("(%p)\n", this);
10291 basic_iostream_short_dtor(basic_iostream_short_to_basic_ios(&this->base
));
10292 basic_stringbuf_short_dtor(&this->strbuf
);
10295 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXXZ */
10296 /* ??_D?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXXZ */
10297 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_vbase_dtor
, 4)
10298 void __thiscall
basic_stringstream_short_vbase_dtor(basic_stringstream_wchar
*this)
10300 TRACE("(%p)\n", this);
10302 basic_stringstream_short_dtor(basic_stringstream_short_to_basic_ios(this));
10303 basic_ios_short_dtor(basic_istream_short_get_basic_ios(&this->base
.base1
));
10306 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_vector_dtor
, 8)
10307 basic_stringstream_wchar
* __thiscall
basic_stringstream_short_vector_dtor(basic_ios_wchar
*base
, unsigned int flags
)
10309 basic_stringstream_wchar
*this = basic_stringstream_short_from_basic_ios(base
);
10311 TRACE("(%p %x)\n", this, flags
);
10314 /* we have an array, with the number of elements stored before the first object */
10315 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10317 for(i
=*ptr
-1; i
>=0; i
--)
10318 basic_stringstream_short_vbase_dtor(this+i
);
10319 operator_delete(ptr
);
10321 basic_stringstream_short_vbase_dtor(this);
10323 operator_delete(this);
10329 /* ?rdbuf@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEPAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10330 /* ?rdbuf@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBAPEAV?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10331 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_rdbuf
, 4)
10332 basic_stringbuf_wchar
* __thiscall
basic_stringstream_short_rdbuf(const basic_stringstream_wchar
*this)
10334 TRACE("(%p)\n", this);
10335 return (basic_stringbuf_wchar
*)&this->strbuf
;
10338 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
10339 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAAXAEBV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
10340 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_str_set
, 8)
10341 void __thiscall
basic_stringstream_short_str_set(basic_stringstream_wchar
*this, const basic_string_wchar
*str
)
10343 TRACE("(%p %p)\n", this, str
);
10344 basic_stringbuf_short_str_set(&this->strbuf
, str
);
10347 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10348 /* ?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
10349 DEFINE_THISCALL_WRAPPER(basic_stringstream_short_str_get
, 8)
10350 basic_string_wchar
* __thiscall
basic_stringstream_short_str_get(const basic_stringstream_wchar
*this, basic_string_wchar
*ret
)
10352 TRACE("(%p %p)\n", this, ret
);
10353 return basic_stringbuf_short_str_get(&this->strbuf
, ret
);
10356 /* ?_Init@strstreambuf@std@@IAEXHPAD0H@Z */
10357 /* ?_Init@strstreambuf@std@@IEAAX_JPEAD1H@Z */
10358 DEFINE_THISCALL_WRAPPER(strstreambuf__Init
, 20)
10359 void __thiscall
strstreambuf__Init(strstreambuf
*this, streamsize len
, char *g
, char *p
, int mode
)
10361 TRACE("(%p %Id %p %p %d)\n", this, len
, g
, p
, mode
);
10363 this->minsize
= 32;
10364 this->endsave
= NULL
;
10365 this->strmode
= mode
;
10366 this->palloc
= NULL
;
10367 this->pfree
= NULL
;
10370 this->strmode
|= STRSTATE_Dynamic
;
10371 if(len
> this->minsize
)
10372 this->minsize
= len
;
10373 this->seekhigh
= NULL
;
10382 this->seekhigh
= g
+len
;
10383 basic_streambuf_char_setg(&this->base
, g
, g
, p
? p
: this->seekhigh
);
10385 basic_streambuf_char_setp(&this->base
, p
, this->seekhigh
);
10388 static strstreambuf
* strstreambuf_ctor_get_put(strstreambuf
*this, char *g
, streamsize len
, char *p
)
10390 TRACE("(%p %p %Id %p)\n", this, g
, len
, p
);
10392 basic_streambuf_char_ctor(&this->base
);
10393 this->base
.vtable
= &strstreambuf_vtable
;
10395 strstreambuf__Init(this, len
, g
, p
, 0);
10399 /* ?_Tidy@strstreambuf@std@@IAEXXZ */
10400 /* ?_Tidy@strstreambuf@std@@IEAAXXZ */
10401 DEFINE_THISCALL_WRAPPER(strstreambuf__Tidy
, 4)
10402 void __thiscall
strstreambuf__Tidy(strstreambuf
*this)
10404 TRACE("(%p)\n", this);
10406 if((this->strmode
& STRSTATE_Allocated
) && !(this->strmode
& STRSTATE_Frozen
)) {
10408 this->pfree(basic_streambuf_char_eback(&this->base
));
10410 operator_delete(basic_streambuf_char_eback(&this->base
));
10413 this->endsave
= NULL
;
10414 this->seekhigh
= NULL
;
10415 this->strmode
&= ~(STRSTATE_Allocated
| STRSTATE_Frozen
);
10416 basic_streambuf_char_setg(&this->base
, NULL
, NULL
, NULL
);
10417 basic_streambuf_char_setp(&this->base
, NULL
, NULL
);
10420 /* ??1strstreambuf@std@@UAE@XZ */
10421 /* ??1strstreambuf@std@@UEAA@XZ */
10422 DEFINE_THISCALL_WRAPPER(strstreambuf_dtor
, 4)
10423 void __thiscall
strstreambuf_dtor(strstreambuf
*this)
10425 TRACE("(%p)\n", this);
10427 strstreambuf__Tidy(this);
10428 basic_streambuf_char_dtor(&this->base
);
10431 DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor
, 8)
10432 strstreambuf
* __thiscall
strstreambuf_vector_dtor(strstreambuf
*this, unsigned int flags
)
10434 TRACE("(%p %x)\n", this, flags
);
10436 /* we have an array, with the number of elements stored before the first object */
10437 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10439 for(i
=*ptr
-1; i
>=0; i
--)
10440 strstreambuf_dtor(this+i
);
10441 operator_delete(ptr
);
10443 strstreambuf_dtor(this);
10445 operator_delete(this);
10451 /* ?freeze@strstreambuf@std@@QAEX_N@Z */
10452 /* ?freeze@strstreambuf@std@@QEAAX_N@Z */
10453 DEFINE_THISCALL_WRAPPER(strstreambuf_freeze
, 8)
10454 void __thiscall
strstreambuf_freeze(strstreambuf
*this, bool freeze
)
10456 TRACE("(%p %d)\n", this, freeze
);
10458 if(!freeze
== !(this->strmode
& STRSTATE_Frozen
))
10462 this->strmode
|= STRSTATE_Frozen
;
10463 this->endsave
= basic_streambuf_char_epptr(&this->base
);
10464 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
10465 basic_streambuf_char_pptr(&this->base
), basic_streambuf_char_eback(&this->base
));
10467 this->strmode
&= ~STRSTATE_Frozen
;
10468 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
),
10469 basic_streambuf_char_pptr(&this->base
), this->endsave
);
10473 /* ?overflow@strstreambuf@std@@MAEHH@Z */
10474 /* ?overflow@strstreambuf@std@@MEAAHH@Z */
10475 DEFINE_THISCALL_WRAPPER(strstreambuf_overflow
, 8)
10476 int __thiscall
strstreambuf_overflow(strstreambuf
*this, int c
)
10478 size_t old_size
, size
;
10481 TRACE("(%p %d)\n", this, c
);
10486 if(this->strmode
& STRSTATE_Frozen
)
10489 ptr
= basic_streambuf_char_pptr(&this->base
);
10490 if(ptr
&& ptr
<basic_streambuf_char_epptr(&this->base
))
10491 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = c
);
10493 if(!(this->strmode
& STRSTATE_Dynamic
) || (this->strmode
& STRSTATE_Constant
))
10496 ptr
= basic_streambuf_char_eback(&this->base
);
10497 old_size
= ptr
? basic_streambuf_char_epptr(&this->base
) - ptr
: 0;
10499 size
= old_size
+ old_size
/2;
10500 if(size
< this->minsize
)
10501 size
= this->minsize
;
10504 buf
= this->palloc(size
);
10506 buf
= operator_new(size
);
10510 memcpy(buf
, ptr
, old_size
);
10511 if(this->strmode
& STRSTATE_Allocated
) {
10515 operator_delete(ptr
);
10518 this->strmode
|= STRSTATE_Allocated
;
10520 this->seekhigh
= buf
;
10521 basic_streambuf_char_setp(&this->base
, buf
, buf
+size
);
10522 basic_streambuf_char_setg(&this->base
, buf
, buf
, buf
);
10524 this->seekhigh
= this->seekhigh
-ptr
+buf
;
10525 basic_streambuf_char_setp_next(&this->base
, basic_streambuf_char_pbase(&this->base
)-ptr
+buf
,
10526 basic_streambuf_char_pptr(&this->base
)-ptr
+buf
, buf
+size
);
10527 basic_streambuf_char_setg(&this->base
, buf
, basic_streambuf_char_gptr(&this->base
)-ptr
+buf
,
10528 basic_streambuf_char_pptr(&this->base
));
10531 return (unsigned char)(*basic_streambuf_char__Pninc(&this->base
) = c
);
10534 /* ?pbackfail@strstreambuf@std@@MAEHH@Z */
10535 /* ?pbackfail@strstreambuf@std@@MEAAHH@Z */
10536 DEFINE_THISCALL_WRAPPER(strstreambuf_pbackfail
, 8)
10537 int __thiscall
strstreambuf_pbackfail(strstreambuf
*this, int c
)
10539 char *ptr
= basic_streambuf_char_gptr(&this->base
);
10541 TRACE("(%p %d)\n", this, c
);
10543 if(ptr
<=basic_streambuf_char_eback(&this->base
)
10544 || ((this->strmode
& STRSTATE_Constant
) && c
!=ptr
[-1]))
10547 basic_streambuf_char_gbump(&this->base
, -1);
10550 if(this->strmode
& STRSTATE_Constant
)
10551 return (unsigned char)c
;
10553 return (unsigned char)(ptr
[0] = c
);
10556 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z */
10557 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JW4seekdir@ios_base@2@H@Z */
10558 /* ?seekoff@strstreambuf@std@@MAE?AV?$fpos@H@2@JHH@Z */
10559 /* ?seekoff@strstreambuf@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
10560 DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff
, 20)
10561 fpos_int
* __thiscall
strstreambuf_seekoff(strstreambuf
*this, fpos_int
*ret
, streamoff off
, int way
, int mode
)
10563 char *eback
= basic_streambuf_char_eback(&this->base
);
10564 char *pptr
= basic_streambuf_char_pptr(&this->base
);
10565 char *gptr
= basic_streambuf_char_gptr(&this->base
);
10567 TRACE("(%p %p %Id %d %d)\n", this, ret
, off
, way
, mode
);
10572 if(pptr
> this->seekhigh
)
10573 this->seekhigh
= pptr
;
10575 if((mode
& OPENMODE_in
) && gptr
) {
10576 if(way
==SEEKDIR_cur
&& !(mode
& OPENMODE_out
))
10578 else if(way
== SEEKDIR_end
)
10579 off
+= this->seekhigh
-eback
;
10580 else if(way
!= SEEKDIR_beg
)
10583 if(off
<0 || off
>this->seekhigh
-eback
) {
10586 basic_streambuf_char_gbump(&this->base
, eback
-gptr
+off
);
10587 if((mode
& OPENMODE_out
) && pptr
) {
10588 basic_streambuf_char_setp_next(&this->base
, eback
,
10589 gptr
, basic_streambuf_char_epptr(&this->base
));
10592 }else if((mode
& OPENMODE_out
) && pptr
) {
10593 if(way
== SEEKDIR_cur
)
10595 else if(way
== SEEKDIR_end
)
10596 off
+= this->seekhigh
-eback
;
10597 else if(way
!= SEEKDIR_beg
)
10600 if(off
<0 || off
>this->seekhigh
-eback
)
10603 basic_streambuf_char_pbump(&this->base
, eback
-pptr
+off
);
10612 /* ?seekpos@strstreambuf@std@@MAE?AV?$fpos@H@2@V32@H@Z */
10613 /* ?seekpos@strstreambuf@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
10614 DEFINE_THISCALL_WRAPPER(strstreambuf_seekpos
, 36)
10615 fpos_int
* __thiscall
strstreambuf_seekpos(strstreambuf
*this, fpos_int
*ret
, fpos_int pos
, int mode
)
10617 TRACE("(%p %p %s %d)\n", this, ret
, debugstr_fpos_int(&pos
), mode
);
10619 if(pos
.off
==-1 && pos
.pos
==0 && pos
.state
==0) {
10624 return strstreambuf_seekoff(this, ret
, pos
.pos
+pos
.off
, SEEKDIR_beg
, mode
);
10627 /* ?underflow@strstreambuf@std@@MAEHXZ */
10628 /* ?underflow@strstreambuf@std@@MEAAHXZ */
10629 DEFINE_THISCALL_WRAPPER(strstreambuf_underflow
, 4)
10630 int __thiscall
strstreambuf_underflow(strstreambuf
*this)
10632 char *gptr
= basic_streambuf_char_gptr(&this->base
);
10635 TRACE("(%p)\n", this);
10640 if(gptr
< basic_streambuf_char_egptr(&this->base
))
10641 return (unsigned char)(*gptr
);
10643 pptr
= basic_streambuf_char_gptr(&this->base
);
10644 if(pptr
> this->seekhigh
)
10645 this->seekhigh
= pptr
;
10647 if(this->seekhigh
<= gptr
)
10650 basic_streambuf_char_setg(&this->base
, basic_streambuf_char_eback(&this->base
),
10651 gptr
, this->seekhigh
);
10652 return (unsigned char)(*gptr
);
10655 static inline basic_ios_char
* ostrstream_to_basic_ios(ostrstream
*ptr
)
10657 return (basic_ios_char
*)((char*)ptr
+ostrstream_vbtable
[1]);
10660 static inline ostrstream
* ostrstream_from_basic_ios(basic_ios_char
*ptr
)
10662 return (ostrstream
*)((char*)ptr
-ostrstream_vbtable
[1]);
10665 /* ??0ostrstream@std@@QAE@PADHH@Z */
10666 DEFINE_THISCALL_WRAPPER(ostrstream_ctor
, 20)
10667 ostrstream
* __thiscall
ostrstream_ctor(ostrstream
*this, char *buf
, streamsize size
, int mode
, bool virt_init
)
10669 basic_ios_char
*basic_ios
;
10671 TRACE("(%p %p %Id %d %d)\n", this, buf
, size
, mode
, virt_init
);
10674 this->base
.vbtable
= ostrstream_vbtable
;
10675 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10676 basic_ios_char_ctor(basic_ios
);
10678 basic_ios
= basic_ostream_char_get_basic_ios(&this->base
);
10681 strstreambuf_ctor_get_put(&this->buf
, buf
, size
,
10682 buf
&& (mode
& OPENMODE_app
) ? buf
+strlen(buf
) : buf
);
10683 basic_ostream_char_ctor(&this->base
, &this->buf
.base
, FALSE
, TRUE
, FALSE
);
10684 basic_ios
->base
.vtable
= &ostrstream_vtable
;
10688 /* ??1ostrstream@std@@UAE@XZ */
10689 /* ??1ostrstream@std@@UEAA@XZ */
10690 DEFINE_THISCALL_WRAPPER(ostrstream_dtor
, 4)
10691 void __thiscall
ostrstream_dtor(basic_ios_char
*base
)
10693 ostrstream
*this = ostrstream_from_basic_ios(base
);
10695 TRACE("(%p)\n", this);
10697 basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base
));
10698 strstreambuf_dtor(&this->buf
);
10701 static void ostrstream_vbase_dtor(ostrstream
*this)
10703 TRACE("(%p)\n", this);
10705 ostrstream_dtor(ostrstream_to_basic_ios(this));
10706 basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base
));
10709 DEFINE_THISCALL_WRAPPER(ostrstream_vector_dtor
, 8)
10710 ostrstream
* __thiscall
ostrstream_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
10712 ostrstream
*this = ostrstream_from_basic_ios(base
);
10714 TRACE("(%p %x)\n", this, flags
);
10717 /* we have an array, with the number of elements stored before the first object */
10718 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10720 for(i
=*ptr
-1; i
>=0; i
--)
10721 ostrstream_vbase_dtor(this+i
);
10722 operator_delete(ptr
);
10724 ostrstream_vbase_dtor(this);
10726 operator_delete(this);
10732 static inline istrstream
* istrstream_from_basic_ios(basic_ios_char
*ptr
)
10734 return (istrstream
*)((char*)ptr
-istrstream_vbtable
[1]);
10737 /* ??1istrstream@std@@UAE@XZ */
10738 /* ??1istrstream@std@@UEAA@XZ */
10739 DEFINE_THISCALL_WRAPPER(istrstream_dtor
, 4)
10740 void __thiscall
istrstream_dtor(basic_ios_char
*base
)
10742 istrstream
*this = istrstream_from_basic_ios(base
);
10744 TRACE("(%p)\n", this);
10746 basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base
));
10747 strstreambuf_dtor(&this->buf
);
10750 static inline basic_ios_char
* strstream_to_basic_ios(strstream
*ptr
)
10752 return (basic_ios_char
*)((char*)ptr
+strstream_vbtable1
[1]);
10755 static inline strstream
* strstream_from_basic_ios(basic_ios_char
*ptr
)
10757 return (strstream
*)((char*)ptr
-strstream_vbtable1
[1]);
10760 /* ??$?6MDU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$complex@M@0@@Z */
10761 /* ??$?6MDU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@M@0@@Z */
10762 basic_ostream_char
* __cdecl
basic_ostream_char_print_complex_float(basic_ostream_char
*ostr
, const complex_float
*val
)
10765 basic_ostringstream_char obj
;
10766 basic_ios_char vbase
;
10768 ios_base
*ostringstream_ios_base
, *ostream_ios_base
;
10770 basic_string_char str
;
10771 basic_ostringstream_char_ctor(&oss
.obj
);
10772 ostringstream_ios_base
= &oss
.vbase
.base
;
10773 ostream_ios_base
= &basic_ostream_char_get_basic_ios(ostr
)->base
;
10774 TRACE("(%p %p)\n", ostr
, val
);
10776 ios_base_imbue(ostringstream_ios_base
, &loc
, IOS_LOCALE(ostream_ios_base
));
10778 ios_base_precision_set(ostringstream_ios_base
, ios_base_precision_get(ostream_ios_base
));
10779 ios_base_flags_set(ostringstream_ios_base
, ios_base_flags_get(ostream_ios_base
));
10781 basic_ostream_char_print_ch(&oss
.obj
.base
, '(');
10782 basic_ostream_char_print_float(&oss
.obj
.base
, val
->real
);
10783 basic_ostream_char_print_ch(&oss
.obj
.base
, ',');
10784 basic_ostream_char_print_float(&oss
.obj
.base
, val
->imag
);
10785 basic_ostream_char_print_ch(&oss
.obj
.base
, ')');
10787 basic_ostringstream_char_str_get(&oss
.obj
, &str
);
10788 basic_ostringstream_char_dtor(&oss
.vbase
);
10789 basic_ostream_char_print_bstr(ostr
, &str
);
10790 MSVCP_basic_string_char_dtor(&str
);
10794 /* ??$?6NDU?$char_traits@D@std@@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$complex@N@0@@Z */
10795 /* ??$?6NDU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@N@0@@Z */
10796 basic_ostream_char
* __cdecl
basic_ostream_char_print_complex_double(basic_ostream_char
*ostr
, const complex_double
*val
)
10799 basic_ostringstream_char obj
;
10800 basic_ios_char vbase
;
10802 ios_base
*ostringstream_ios_base
, *ostream_ios_base
;
10804 basic_string_char str
;
10805 basic_ostringstream_char_ctor(&oss
.obj
);
10806 ostringstream_ios_base
= &oss
.vbase
.base
;
10807 ostream_ios_base
= &basic_ostream_char_get_basic_ios(ostr
)->base
;
10808 TRACE("(%p %p)\n", ostr
, val
);
10810 ios_base_imbue(ostringstream_ios_base
, &loc
, IOS_LOCALE(ostream_ios_base
));
10812 ios_base_precision_set(ostringstream_ios_base
, ios_base_precision_get(ostream_ios_base
));
10813 ios_base_flags_set(ostringstream_ios_base
, ios_base_flags_get(ostream_ios_base
));
10815 basic_ostream_char_print_ch(&oss
.obj
.base
, '(');
10816 basic_ostream_char_print_double(&oss
.obj
.base
, val
->real
);
10817 basic_ostream_char_print_ch(&oss
.obj
.base
, ',');
10818 basic_ostream_char_print_double(&oss
.obj
.base
, val
->imag
);
10819 basic_ostream_char_print_ch(&oss
.obj
.base
, ')');
10821 basic_ostringstream_char_str_get(&oss
.obj
, &str
);
10822 basic_ostringstream_char_dtor(&oss
.vbase
);
10823 basic_ostream_char_print_bstr(ostr
, &str
);
10824 MSVCP_basic_string_char_dtor(&str
);
10828 /* ??$?6odu?$char_traits@d@std@@@std@@yaaav?$basic_ostream@du?$char_traits@d@std@@@0@aav10@abv?$complex@o@0@@Z */
10829 /* ??$?6ODU?$char_traits@D@std@@@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@0@AEAV10@AEBV?$complex@O@0@@Z */
10830 basic_ostream_char
* __cdecl
basic_ostream_char_print_complex_ldouble(basic_ostream_char
*ostr
, const complex_double
*val
)
10833 basic_ostringstream_char obj
;
10834 basic_ios_char vbase
;
10836 ios_base
*ostringstream_ios_base
, *ostream_ios_base
;
10838 basic_string_char str
;
10839 basic_ostringstream_char_ctor(&oss
.obj
);
10840 ostringstream_ios_base
= &oss
.vbase
.base
;
10841 ostream_ios_base
= &basic_ostream_char_get_basic_ios(ostr
)->base
;
10842 TRACE("(%p %p)\n", ostr
, val
);
10844 ios_base_imbue(ostringstream_ios_base
, &loc
, IOS_LOCALE(ostream_ios_base
));
10846 ios_base_precision_set(ostringstream_ios_base
, ios_base_precision_get(ostream_ios_base
));
10847 ios_base_flags_set(ostringstream_ios_base
, ios_base_flags_get(ostream_ios_base
));
10849 basic_ostream_char_print_ch(&oss
.obj
.base
, '(');
10850 basic_ostream_char_print_ldouble(&oss
.obj
.base
, val
->real
);
10851 basic_ostream_char_print_ch(&oss
.obj
.base
, ',');
10852 basic_ostream_char_print_ldouble(&oss
.obj
.base
, val
->imag
);
10853 basic_ostream_char_print_ch(&oss
.obj
.base
, ')');
10855 basic_ostringstream_char_str_get(&oss
.obj
, &str
);
10856 basic_ostringstream_char_dtor(&oss
.vbase
);
10857 basic_ostream_char_print_bstr(ostr
, &str
);
10858 MSVCP_basic_string_char_dtor(&str
);
10862 /* ??0strstream@std@@QAE@PADHH@Z */
10863 /* ??0strstream@std@@QEAA@PEAD_JH@Z */
10864 DEFINE_THISCALL_WRAPPER(strstream_ctor
, 20)
10865 strstream
* __thiscall
strstream_ctor(strstream
*this, char *buf
, streamsize size
, int mode
, bool virt_init
)
10867 basic_ios_char
*basic_ios
;
10869 TRACE("(%p %p %Id %d %d)\n", this, buf
, size
, mode
, virt_init
);
10872 this->base
.base1
.vbtable
= strstream_vbtable1
;
10873 this->base
.base2
.vbtable
= strstream_vbtable2
;
10874 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10875 basic_ios_char_ctor(basic_ios
);
10877 basic_ios
= basic_istream_char_get_basic_ios(&this->base
.base1
);
10880 strstreambuf_ctor_get_put(&this->buf
, buf
, size
,
10881 buf
&& (mode
& OPENMODE_app
) ? buf
+strlen(buf
) : buf
);
10882 basic_iostream_char_ctor(&this->base
, &this->buf
.base
, FALSE
);
10883 basic_ios
->base
.vtable
= &strstream_vtable
;
10887 /* ??1strstream@std@@UAE@XZ */
10888 /* ??1strstream@std@@UEAA@XZ */
10889 DEFINE_THISCALL_WRAPPER(strstream_dtor
, 4)
10890 void __thiscall
strstream_dtor(basic_ios_char
*base
)
10892 strstream
*this = strstream_from_basic_ios(base
);
10894 TRACE("(%p)\n", this);
10896 basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base
));
10897 strstreambuf_dtor(&this->buf
);
10900 static void strstream_vbase_dtor(strstream
*this)
10902 TRACE("(%p)\n", this);
10904 strstream_dtor(strstream_to_basic_ios(this));
10905 basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base
.base1
));
10908 DEFINE_THISCALL_WRAPPER(strstream_vector_dtor
, 8)
10909 strstream
* __thiscall
strstream_vector_dtor(basic_ios_char
*base
, unsigned int flags
)
10911 strstream
*this = strstream_from_basic_ios(base
);
10913 TRACE("(%p %x)\n", this, flags
);
10916 /* we have an array, with the number of elements stored before the first object */
10917 INT_PTR i
, *ptr
= (INT_PTR
*)this-1;
10919 for(i
=*ptr
-1; i
>=0; i
--)
10920 strstream_vbase_dtor(this+i
);
10921 operator_delete(ptr
);
10923 strstream_vbase_dtor(this);
10925 operator_delete(this);
10931 static void __cdecl
setprecision_func(ios_base
*base
, streamsize prec
)
10933 ios_base_precision_set(base
, prec
);
10936 /* ?setprecision@std@@YA?AU?$_Smanip@H@1@H@Z */
10937 /* ?setprecision@std@@YA?AU?$_Smanip@_J@1@_J@Z */
10938 manip_streamsize
* __cdecl
setprecision(manip_streamsize
*ret
, streamsize prec
)
10940 TRACE("(%p %Id)\n", ret
, prec
);
10942 ret
->pfunc
= setprecision_func
;
10947 static void __cdecl
setw_func(ios_base
*base
, streamsize width
)
10949 ios_base_width_set(base
, width
);
10952 /* ?setw@std@@YA?AU?$_Smanip@H@1@H@Z */
10953 /* ?setw@std@@YA?AU?$_Smanip@_J@1@_J@Z */
10954 manip_streamsize
* __cdecl
setw(manip_streamsize
*ret
, streamsize width
)
10956 TRACE("(%p %Id)\n", ret
, width
);
10958 ret
->pfunc
= setw_func
;
10963 static void __cdecl
resetioflags_func(ios_base
*base
, int mask
)
10965 ios_base_setf_mask(base
, 0, mask
);
10968 /* ?resetiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
10969 manip_int
* __cdecl
resetiosflags(manip_int
*ret
, int mask
)
10971 TRACE("(%p %d)\n", ret
, mask
);
10973 ret
->pfunc
= resetioflags_func
;
10978 static void __cdecl
setiosflags_func(ios_base
*base
, int mask
)
10980 ios_base_setf_mask(base
, FMTFLAG_mask
, mask
);
10983 /* ?setiosflags@std@@YA?AU?$_Smanip@H@1@H@Z */
10984 manip_int
* __cdecl
setiosflags(manip_int
*ret
, int mask
)
10986 TRACE("(%p %d)\n", ret
, mask
);
10988 ret
->pfunc
= setiosflags_func
;
10993 static void __cdecl
setbase_func(ios_base
*base
, int set_base
)
10996 set_base
= FMTFLAG_dec
;
10997 else if(set_base
== 8)
10998 set_base
= FMTFLAG_oct
;
10999 else if(set_base
== 16)
11000 set_base
= FMTFLAG_hex
;
11004 ios_base_setf_mask(base
, set_base
, FMTFLAG_basefield
);
11007 /* ?setbase@std@@YA?AU?$_Smanip@H@1@H@Z */
11008 manip_int
* __cdecl
setbase(manip_int
*ret
, int base
)
11010 TRACE("(%p %d)\n", ret
, base
);
11012 ret
->pfunc
= setbase_func
;
11017 static basic_filebuf_char filebuf_char_stdin
;
11018 /* ?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A */
11020 basic_istream_char obj
;
11021 basic_ios_char vbase
;
11024 static basic_filebuf_wchar filebuf_short_stdin
;
11025 /* ?wcin@std@@3V?$basic_istream@GU?$char_traits@G@std@@@1@A */
11027 basic_istream_wchar obj
;
11028 basic_ios_wchar vbase
;
11029 } ucin
= { { 0 } };
11031 static basic_filebuf_char filebuf_char_stdout
;
11032 /* ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
11034 basic_ostream_char obj
;
11035 basic_ios_char vbase
;
11036 } cout
= { { 0 } };
11038 static basic_filebuf_wchar filebuf_short_stdout
;
11039 /* ?wcout@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
11041 basic_ostream_wchar obj
;
11042 basic_ios_wchar vbase
;
11043 } ucout
= { { 0 } };
11045 static basic_filebuf_char filebuf_char_stderr
;
11046 /* ?cerr@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
11048 basic_ostream_char obj
;
11049 basic_ios_char vbase
;
11050 } cerr
= { { 0 } };
11052 static basic_filebuf_wchar filebuf_short_stderr
;
11053 /* ?wcerr@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
11055 basic_ostream_wchar obj
;
11056 basic_ios_wchar vbase
;
11057 } ucerr
= { { 0 } };
11059 static basic_filebuf_char filebuf_char_log
;
11060 /* ?clog@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A */
11062 basic_ostream_char obj
;
11063 basic_ios_char vbase
;
11064 } MSVCP_clog
= { { 0 } };
11066 static basic_filebuf_wchar filebuf_short_log
;
11067 /* ?wclog@std@@3V?$basic_ostream@GU?$char_traits@G@std@@@1@A */
11069 basic_ostream_wchar obj
;
11070 basic_ios_wchar vbase
;
11071 } uclog
= { { 0 } };
11073 /* ?_Init_cnt@Init@ios_base@std@@0HA */
11074 int ios_base_Init__Init_cnt
= -1;
11076 /* ??0Init@ios_base@std@@QAE@XZ */
11077 /* ??0Init@ios_base@std@@QEAA@XZ */
11078 DEFINE_THISCALL_WRAPPER(ios_base_Init_ctor
, 4)
11079 void* __thiscall
ios_base_Init_ctor(void *this)
11081 TRACE("(%p)\n", this);
11083 if(ios_base_Init__Init_cnt
< 0)
11084 ios_base_Init__Init_cnt
= 1;
11086 ios_base_Init__Init_cnt
++;
11090 /* ??1Init@ios_base@std@@QAE@XZ */
11091 /* ??1Init@ios_base@std@@QEAA@XZ */
11092 DEFINE_THISCALL_WRAPPER(ios_base_Init_dtor
, 4)
11093 void __thiscall
ios_base_Init_dtor(void *this)
11095 TRACE("(%p)\n", this);
11097 ios_base_Init__Init_cnt
--;
11098 if(!ios_base_Init__Init_cnt
) {
11099 basic_ostream_char_flush(&cout
.obj
);
11100 basic_ostream_char_flush(&cerr
.obj
);
11101 basic_ostream_char_flush(&MSVCP_clog
.obj
);
11105 /* ??4Init@ios_base@std@@QAEAAV012@ABV012@@Z */
11106 /* ??4Init@ios_base@std@@QEAAAEAV012@AEBV012@@Z */
11107 DEFINE_THISCALL_WRAPPER(ios_base_Init_op_assign
, 8)
11108 void* __thiscall
ios_base_Init_op_assign(void *this, void *rhs
)
11110 TRACE("(%p %p)\n", this, rhs
);
11114 /* ?_Init_cnt@_Winit@std@@0HA */
11115 int _Winit__Init_cnt
= -1;
11117 /* ??0_Winit@std@@QAE@XZ */
11118 /* ??0_Winit@std@@QEAA@XZ */
11119 DEFINE_THISCALL_WRAPPER(_Winit_ctor
, 4)
11120 void* __thiscall
_Winit_ctor(void *this)
11122 TRACE("(%p)\n", this);
11124 if(_Winit__Init_cnt
< 0)
11125 _Winit__Init_cnt
= 1;
11127 _Winit__Init_cnt
++;
11132 /* ??1_Winit@std@@QAE@XZ */
11133 /* ??1_Winit@std@@QAE@XZ */
11134 DEFINE_THISCALL_WRAPPER(_Winit_dtor
, 4)
11135 void __thiscall
_Winit_dtor(void *this)
11137 TRACE("(%p)\n", this);
11139 _Winit__Init_cnt
--;
11140 if(!_Winit__Init_cnt
) {
11141 basic_ostream_short_flush(&ucout
.obj
);
11142 basic_ostream_short_flush(&ucerr
.obj
);
11143 basic_ostream_short_flush(&uclog
.obj
);
11147 /* ??4_Winit@std@@QAEAAV01@ABV01@@Z */
11148 /* ??4_Winit@std@@QEAAAEAV01@AEBV01@@Z */
11149 DEFINE_THISCALL_WRAPPER(_Winit_op_assign
, 8)
11150 void* __thiscall
_Winit_op_assign(void *this, void *rhs
)
11152 TRACE("(%p %p)\n", this, rhs
);
11156 void init_io(void *base
)
11158 #ifdef RTTI_USE_RVA
11159 init_iosb_rtti(base
);
11160 init_ios_base_rtti(base
);
11161 init_basic_ios_char_rtti(base
);
11162 init_basic_ios_short_rtti(base
);
11163 init_basic_streambuf_char_rtti(base
);
11164 init_basic_streambuf_short_rtti(base
);
11165 init_basic_filebuf_char_rtti(base
);
11166 init_basic_filebuf_short_rtti(base
);
11167 init_basic_stringbuf_char_rtti(base
);
11168 init_basic_stringbuf_short_rtti(base
);
11169 init_basic_ostream_char_rtti(base
);
11170 init_basic_ostream_short_rtti(base
);
11171 init_basic_istream_char_rtti(base
);
11172 init_basic_istream_short_rtti(base
);
11173 init_basic_iostream_char_rtti(base
);
11174 init_basic_iostream_short_rtti(base
);
11175 init_basic_ofstream_char_rtti(base
);
11176 init_basic_ofstream_short_rtti(base
);
11177 init_basic_ifstream_char_rtti(base
);
11178 init_basic_ifstream_short_rtti(base
);
11179 init_basic_fstream_char_rtti(base
);
11180 init_basic_fstream_short_rtti(base
);
11181 init_basic_ostringstream_char_rtti(base
);
11182 init_basic_ostringstream_short_rtti(base
);
11183 init_basic_istringstream_char_rtti(base
);
11184 init_basic_istringstream_short_rtti(base
);
11185 init_basic_stringstream_char_rtti(base
);
11186 init_basic_stringstream_short_rtti(base
);
11187 init_strstreambuf_rtti(base
);
11188 init_strstream_rtti(base
);
11189 init_ostrstream_rtti(base
);
11192 basic_filebuf_char_ctor_file(&filebuf_char_stdin
, stdin
);
11193 basic_istream_char_ctor(&cin
.obj
, &filebuf_char_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
11195 basic_filebuf_short_ctor_file(&filebuf_short_stdin
, stdin
);
11196 basic_istream_short_ctor(&ucin
.obj
, &filebuf_short_stdin
.base
, FALSE
/*FIXME*/, TRUE
);
11198 basic_filebuf_char_ctor_file(&filebuf_char_stdout
, stdout
);
11199 basic_ostream_char_ctor(&cout
.obj
, &filebuf_char_stdout
.base
, FALSE
/*FIXME*/, TRUE
, TRUE
);
11201 basic_filebuf_short_ctor_file(&filebuf_short_stdout
, stdout
);
11202 basic_ostream_short_ctor(&ucout
.obj
, &filebuf_short_stdout
.base
, FALSE
/*FIXME*/, TRUE
, TRUE
);
11204 basic_filebuf_char_ctor_file(&filebuf_char_stderr
, stderr
);
11205 basic_ostream_char_ctor(&cerr
.obj
, &filebuf_char_stderr
.base
, FALSE
/*FIXME*/, TRUE
, TRUE
);
11207 basic_filebuf_short_ctor_file(&filebuf_short_stderr
, stderr
);
11208 basic_ostream_short_ctor(&ucerr
.obj
, &filebuf_short_stderr
.base
, FALSE
/*FIXME*/, TRUE
, TRUE
);
11210 basic_filebuf_char_ctor_file(&filebuf_char_log
, stderr
);
11211 basic_ostream_char_ctor(&MSVCP_clog
.obj
, &filebuf_char_log
.base
, FALSE
/*FIXME*/, TRUE
, TRUE
);
11213 basic_filebuf_short_ctor_file(&filebuf_short_log
, stderr
);
11214 basic_ostream_short_ctor(&uclog
.obj
, &filebuf_short_log
.base
, FALSE
/*FIXME*/, TRUE
, TRUE
);
11219 basic_istream_char_vbase_dtor(&cin
.obj
);
11220 basic_filebuf_char_dtor(&filebuf_char_stdin
);
11222 basic_istream_short_vbase_dtor(&ucin
.obj
);
11223 basic_filebuf_short_dtor(&filebuf_short_stdin
);
11225 basic_ostream_char_vbase_dtor(&cout
.obj
);
11226 basic_filebuf_char_dtor(&filebuf_char_stdout
);
11228 basic_ostream_short_vbase_dtor(&ucout
.obj
);
11229 basic_filebuf_short_dtor(&filebuf_short_stdout
);
11231 basic_ostream_char_vbase_dtor(&cerr
.obj
);
11232 basic_filebuf_char_dtor(&filebuf_char_stderr
);
11234 basic_ostream_short_vbase_dtor(&ucerr
.obj
);
11235 basic_filebuf_short_dtor(&filebuf_short_stderr
);
11237 basic_ostream_char_vbase_dtor(&MSVCP_clog
.obj
);
11238 basic_filebuf_char_dtor(&filebuf_char_log
);
11240 basic_ostream_short_vbase_dtor(&uclog
.obj
);
11241 basic_filebuf_short_dtor(&filebuf_short_log
);