2005-01-23 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Jan 2005 23:35:20 +0000 (23:35 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 23 Jan 2005 23:35:20 +0000 (23:35 +0000)
* testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc: New.
* testsuite/27_io/basic_ostream/endl/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/ends/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/ends/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/4402.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/9555-oa.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
wchar_t/exceptions_failbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
wchar_t/9555-oc.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/9318-out.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/9424-out.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/
wchar_t/9555-oo.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
error_failbit.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_failbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/put/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/put/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/wchar_t/
2346-fstream.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/wchar_t/
2346-sstream.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc: Likewise.
* testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc: Likewise.
* testsuite/27_io/basic_ostream/tellp/wchar_t/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/write/wchar_t/1.cc: Likewise.

* testsuite/data/wostream_inserter_char-1.tst: Likewise.
* testsuite/data/wostream_inserter_char-1.txt: Likewise.
* testsuite/data/wostream_inserter_other-1.tst: Likewise.
* testsuite/data/wostream_inserter_other-2.tst: Likewise.
* testsuite/data/wostream_seeks-1.tst: Likewise.

* testsuite/27_io/basic_ostream/endl/char/1.cc: Minor tweaks.
* testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/exceptions/char/9561.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/flush/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/3.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/4402.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_arithmetic/
char/6.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_character/
char/4.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
2.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
5.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
error_failbit.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_failbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/put/char/1.cc: Likewise.
* testsuite/27_io/basic_ostream/seekp/char/
exceptions_badbit_throw.cc: Likewise.
* testsuite/27_io/basic_ostream/sentry/char/2.cc: Likewise.
* testsuite/27_io/basic_ostream/write/char/1.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94129 138bc75d-0d04-0410-961f-82ee72b054a4

75 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/endl/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/ends/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/char/9561.cc
libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/2.cc
libstdc++-v3/testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc
libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/3.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/4402.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/5.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/char/6.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/4.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/2.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/5.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_failbit.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_badbit_throw.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_failbit_throw.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/exceptions_null.cc
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/put/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc
libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/sentry/char/2.cc
libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc [new file with mode: 0644]
libstdc++-v3/testsuite/27_io/basic_ostream/write/char/1.cc
libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/data/wostream_inserter_char-1.tst [new file with mode: 0644]
libstdc++-v3/testsuite/data/wostream_inserter_char-1.txt [new file with mode: 0644]
libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst [new file with mode: 0644]
libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst [new file with mode: 0644]
libstdc++-v3/testsuite/data/wostream_seeks-1.tst [new file with mode: 0644]

index f11dbc9..854c8c2 100644 (file)
@@ -1,5 +1,135 @@
 2005-01-23  Paolo Carlini  <pcarlini@suse.de>
 
+       * testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc: New.
+       * testsuite/27_io/basic_ostream/endl/wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/ends/wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/ends/wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc: Likewise.
+       * testsuite/27_io/basic_ostream/flush/wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/flush/wchar_t/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/3.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/4.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/4402.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/5.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/6.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/9555-oa.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       wchar_t/exceptions_failbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/3.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/4.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/5.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/6.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       wchar_t/9555-oc.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/3.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/4.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/5.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/9318-out.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/9424-out.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/
+       wchar_t/9555-oo.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
+       error_failbit.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
+       exceptions_failbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/wchar_t/
+       exceptions_null.cc: Likewise.
+       * testsuite/27_io/basic_ostream/put/char/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/put/wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/seekp/char/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/seekp/wchar_t/
+       2346-fstream.cc: Likewise.
+       * testsuite/27_io/basic_ostream/seekp/wchar_t/
+       2346-sstream.cc: Likewise.
+       * testsuite/27_io/basic_ostream/seekp/wchar_t/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/tellp/wchar_t/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/write/wchar_t/1.cc: Likewise.
+
+       * testsuite/data/wostream_inserter_char-1.tst: Likewise.
+       * testsuite/data/wostream_inserter_char-1.txt: Likewise.
+       * testsuite/data/wostream_inserter_other-1.tst: Likewise.
+       * testsuite/data/wostream_inserter_other-2.tst: Likewise.
+       * testsuite/data/wostream_seeks-1.tst: Likewise.
+
+       * testsuite/27_io/basic_ostream/endl/char/1.cc: Minor tweaks.
+       * testsuite/27_io/basic_ostream/ends/char/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/exceptions/char/9561.cc: Likewise. 
+       * testsuite/27_io/basic_ostream/flush/char/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/flush/char/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/flush/char/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       char/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       char/3.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       char/4.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       char/4402.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       char/5.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_arithmetic/
+       char/6.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_character/
+       char/4.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       5.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       error_failbit.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       exceptions_failbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/inserters_other/char/
+       exceptions_null.cc: Likewise.
+       * testsuite/27_io/basic_ostream/put/char/1.cc: Likewise.
+       * testsuite/27_io/basic_ostream/seekp/char/
+       exceptions_badbit_throw.cc: Likewise.
+       * testsuite/27_io/basic_ostream/sentry/char/2.cc: Likewise.
+       * testsuite/27_io/basic_ostream/write/char/1.cc: Likewise.
+
+2005-01-23  Paolo Carlini  <pcarlini@suse.de>
+
        * include/tr1/type_traits (aligned_storage): Use __aligned__ instead
        of aligned.
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/cons/wchar_t/9827.cc
new file mode 100644 (file)
index 0000000..38c5ee0
--- /dev/null
@@ -0,0 +1,44 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// libstdc++/9827
+class Buf : public std::wstreambuf
+{
+};
+
+void test01()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  Buf buf;
+  wostream stream(&buf);
+
+  stream << 1;
+  VERIFY(!stream.good());
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
index 7624585..e5cd121 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-07-22 bkoz
 
-// Copyright (C) 1994, 1999, 2000, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1994, 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -30,7 +30,6 @@ void test01(void)
 
   const char str_lit01[] = "  venice ";
   const std::string str01(" santa barbara ");
-  std::string str02(str_lit01);
   std::string str04;
   std::string str05;
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/endl/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..67b594e
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.7 standard basic_ostream manipulators
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01(void)
+{
+  bool test __attribute__((unused)) = true;
+
+  const wchar_t str_lit01[] = L"  venice ";
+  const std::wstring str01(L" santa barbara ");
+  std::wstring str04;
+  std::wstring str05;
+
+  std::wostringstream oss01(str01);
+  std::wostringstream oss02;
+  typedef std::wostringstream::traits_type traits_type;
+
+  // template<_CharT, _Traits>
+  //  basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os)
+  oss01 << std::endl;
+  str04 = oss01.str();
+  VERIFY( str04.size() == str01.size() );
+
+  oss02 << std::endl;
+  str05 = oss02.str();
+  VERIFY( str05.size() == 1 );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
index a6e8af8..5fa6ae2 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-07-22 bkoz
 
-// Copyright (C) 1994, 1999, 2000, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1994, 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -30,13 +30,11 @@ void test01(void)
 
   const char str_lit01[] = "  venice ";
   const std::string str01(" santa barbara ");
-  std::string str02(str_lit01);
   std::string str04;
   std::string str05;
 
   std::ostringstream oss01(str01);
   std::ostringstream oss02;
-  typedef std::ostringstream::traits_type traits_type;
 
   // template<_CharT, _Traits>
   //  basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os)
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..d6feba1
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.7 standard basic_ostream manipulators
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01(void)
+{
+  bool test __attribute__((unused)) = true;
+
+  const wchar_t str_lit01[] = L"  venice ";
+  const std::wstring str01(L" santa barbara ");
+  std::wstring str04;
+  std::wstring str05;
+
+  std::wostringstream oss01(str01);
+  std::wostringstream oss02;
+
+  // template<_CharT, _Traits>
+  //  basic_ostream<_CharT, _Traits>& ends(basic_ostream<_Char, _Traits>& os)
+  oss01 << std::ends;
+  str04 = oss01.str();
+  VERIFY( str04.size() == str01.size() );
+
+  oss02 << std::ends;
+  str05 = oss02.str();
+  VERIFY( str05.size() == 1 );
+  VERIFY( str05[0] == wchar_t() );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/ends/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..b79ddce
--- /dev/null
@@ -0,0 +1,62 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.7 standard basic_ostream manipulators
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// based vaguely on this:
+// http://gcc.gnu.org/ml/libstdc++/2000-q2/msg00109.html
+void test02()
+{
+  using namespace std;
+  typedef wostringstream::int_type int_type;
+
+  bool test __attribute__((unused)) = true;
+  wostringstream osst_01;
+  const wstring str_00(L"herbie_hancock");
+  int_type len1 = str_00.size();
+  osst_01 << str_00;
+  VERIFY( static_cast<int_type>(osst_01.str().size()) == len1 );
+
+  osst_01 << ends;
+
+  const wstring str_01(L"speak like a child");
+  int_type len2 = str_01.size();
+  osst_01 << str_01;
+  int_type len3 = osst_01.str().size();
+  VERIFY( len1 < len3 );
+  VERIFY( len3 == len1 + len2 + 1 );
+
+  osst_01 << ends;
+
+  const wstring str_02(L"+ inventions and dimensions");
+  int_type len4 = str_02.size();
+  osst_01 << str_02;
+  int_type len5 = osst_01.str().size();
+  VERIFY( len3 < len5 );
+  VERIFY( len5 == len3 + len4 + 1 );
+}
+
+int main()
+{ 
+  test02();
+  return 0;
+}
index a1746fb..e7a7a54 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-03-08  Jerry Quinn  <jlquinn@optonline.net>
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -27,10 +27,12 @@ struct foobar: std::exception { };
 
 struct buf: std::streambuf
 {
-    virtual int_type overflow (int_type) {
-        throw foobar ();
-        return -1;
-    }
+  virtual int_type
+  overflow(int_type)
+  {
+    throw foobar();
+    return int_type();
+  }
 };
 
 void test01()
@@ -40,22 +42,25 @@ void test01()
 
   buf b;
   std::ostream strm (&b);
-  strm.exceptions (std::ios::badbit);
+  strm.exceptions(std::ios::badbit);
 
-  try {
-    strm << std::endl;
-  }
-  catch (foobar) {
-    // strm should throw foobar and not do anything else
-    VERIFY(strm.bad());
-    return;
-  }
-  catch (...) {
-    VERIFY(false);
-    return;
-  }
+  try
+    {
+      strm << std::endl;
+    }
+  catch(foobar)
+    {
+      // strm should throw foobar and not do anything else
+      VERIFY(strm.bad());
+      return;
+    }
+  catch(...)
+    {
+      VERIFY( false );
+      return;
+    }
 
-  VERIFY(false);
+  VERIFY( false );
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/exceptions/wchar_t/9561.cc
new file mode 100644 (file)
index 0000000..f8cc446
--- /dev/null
@@ -0,0 +1,67 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+// libstdc++/9561
+struct foobar: std::exception { };
+
+struct buf: std::wstreambuf
+{
+  virtual int_type
+  overflow(int_type)
+  {
+    throw foobar();
+    return int_type();
+  }
+};
+
+void test01()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  buf b;
+  std::wostream strm(&b);
+  strm.exceptions(std::wios::badbit);
+
+  try
+    {
+      strm << std::endl;
+    }
+  catch(foobar)
+    {
+      // strm should throw foobar and not do anything else
+      VERIFY(strm.bad());
+      return;
+    }
+  catch(...)
+    {
+      VERIFY( false );
+      return;
+    }
+  VERIFY( false );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
index a59e2f7..0156058 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-07-22 bkoz
 
-// Copyright (C) 1994, 1999, 2000, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1994, 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -30,13 +30,11 @@ void test01(void)
 
   const char str_lit01[] = "  venice ";
   const std::string str01(" santa barbara ");
-  std::string str02(str_lit01);
   std::string str04;
   std::string str05;
 
   std::ostringstream oss01(str01);
   std::ostringstream oss02;
-  typedef std::ostringstream::traits_type traits_type;
 
   // template<_CharT, _Traits>
   //  basic_ostream<_CharT, _Traits>& flush(basic_ostream<_Char, _Traits>& os)
index 2f03116..9789d90 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-09-22  Petur Runolfsson  <peturr02@ru.is>
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -30,7 +30,7 @@
 
 void test02()
 {
-  bool test = true;
+  bool test __attribute__((unused)) = true;
 
   __gnu_test::sync_streambuf buf;
   std::ostream os(&buf);
index e8c5653..e434e23 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -54,7 +54,7 @@ void test01()
     }
   catch (...) 
     {
-      VERIFY(false);
+      VERIFY( false );
     }
 }
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..eaf6031
--- /dev/null
@@ -0,0 +1,52 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.7 standard basic_ostream manipulators
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test01(void)
+{
+  bool test __attribute__((unused)) = true;
+
+  const wchar_t str_lit01[] = L"  venice ";
+  const std::wstring str01(L" santa barbara ");
+  std::wstring str04;
+  std::wstring str05;
+
+  std::wostringstream oss01(str01);
+  std::wostringstream oss02;
+
+  // template<_CharT, _Traits>
+  //  basic_ostream<_CharT, _Traits>& flush(basic_ostream<_Char, _Traits>& os)
+  oss01.flush();
+  str04 = oss01.str();
+  VERIFY( str04.size() == str01.size() );
+
+  oss02.flush();
+  str05 = oss02.str();
+  VERIFY( str05.size() == 0 );
+}
+
+int main()
+{ 
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..996941a
--- /dev/null
@@ -0,0 +1,64 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.6 Unformatted output functions
+//
+// _GLIBCXX_RESOLVE_LIB_DEFECTS
+// DR 60. What is a formatted input function?
+// basic_ostream::flush() does not behave as an unformatted output function.
+
+#include <ostream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+void test02()
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_test::sync_wstreambuf buf;
+  std::wostream os(&buf);
+  
+  __gnu_test::sync_wstreambuf buf_tie;
+  std::wostream os_tie(&buf_tie);
+
+  // No sentry should be constructed so os.tie()->flush() should not be
+  // called.
+  os.tie(&os_tie);
+  
+  os.flush();
+
+  VERIFY( os.good() );
+  VERIFY( buf.sync_called() );
+  VERIFY( !buf_tie.sync_called() );
+
+  // os.rdbuf()->pubsync() should be called even if !os.good().
+  os.setstate(std::ios_base::eofbit);
+
+  os.flush();
+
+  VERIFY( os.rdstate() == std::ios_base::eofbit );
+  VERIFY( buf.sync_called() );
+  VERIFY( !buf_tie.sync_called() );
+}
+
+int main()
+{
+  test02();
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc
new file mode 100644 (file)
index 0000000..41ffc57
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+using namespace std;
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  __gnu_test::fail_wstreambuf bib;
+  wostream stream(&bib);
+  stream.exceptions(ios_base::badbit);
+
+  try
+    {
+      stream.flush();
+      VERIFY( false );
+    }
+  catch (const __gnu_test::positioning_error&) 
+    {
+      // stream should set badbit and rethrow facet_error.
+      VERIFY( stream.bad() );
+      VERIFY( (stream.rdstate() & ios_base::failbit) == 0 );
+      VERIFY( !stream.eof() );
+    }
+  catch (...) 
+    {
+      VERIFY( false );
+    }
+}
+
+// libstdc++/9546
+int main()
+{
+  test01();
+  return 0;
+}
index 0aa130a..5fde7e9 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-11-15 Kevin Ediger  <kediger@licor.com>
 // test the floating point inserters (facet num_put)
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <limits>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 void
 test02()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
 
   // Make sure we can output a long float in fixed format
index fed2696..58fa6c9 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-11-15 Kevin Ediger  <kediger@licor.com>
 // test the floating point inserters (facet num_put)
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <limits>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 template<typename T>
 bool
 test03_check(T n)
 {
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
   stringbuf strbuf;
   ostream o(&strbuf);
   const char *expect;
-  bool test __attribute__((unused)) = true;
 
   if (numeric_limits<T>::digits + 1 == 16)
     expect = "177777 ffff";
index 304fc40..77bf3a5 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-11-15 Kevin Ediger  <kediger@licor.com>
 // test the floating point inserters (facet num_put)
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <sstream>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 // libstdc++/3655
 int
 test04()
 {
-  stringbuf strbuf1, strbuf2;
-  ostream o1(&strbuf1), o2(&strbuf2);
+  using namespace std;
   bool test __attribute__((unused)) = true;
 
+  stringbuf strbuf1, strbuf2;
+  ostream o1(&strbuf1), o2(&strbuf2);
+  
   o1 << hex << showbase << setw(6) << internal << 0xff;
   VERIFY( strbuf1.str() == "0x  ff" );
   
index 1d17b20..68d9e50 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-11-15 Kevin Ediger  <kediger@licor.com>
 // test the floating point inserters (facet num_put)
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <limits>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 void
 test02()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   // make sure we can output a very long float
   long double val = 1.2345678901234567890123456789e+1000L;
   int prec = numeric_limits<long double>::digits10;
@@ -47,7 +47,7 @@ test02()
   cout << "expect: " << largebuf << endl;
   cout << "result: " << os.str() << endl;
 #endif
-  VERIFY(os && os.str() == largebuf);
+  VERIFY( os && os.str() == largebuf );
 
   // Make sure we can output a long float in fixed format
   // without seg-faulting (libstdc++/4402)
@@ -63,7 +63,7 @@ test02()
   cout << "expect: " << largebuf << endl;
   cout << "result: " << os2.str() << endl;
 #endif
-  VERIFY(os2 && os2.str() == largebuf);
+  VERIFY( os2 && os2.str() == largebuf );
 }
 
 int 
index ce521e2..4de6d6e 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-11-15 Kevin Ediger  <kediger@licor.com>
 // test the floating point inserters (facet num_put)
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <limits>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 void
 test05()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   double pi = 3.14159265358979323846;
   ostringstream ostr;
   ostr.precision(20);
index 36b67f2..07559fe 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-11-15 Kevin Ediger  <kediger@licor.com>
 // test the floating point inserters (facet num_put)
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <limits>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 // libstdc++/9151
-int
+void
 test06()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   int prec = numeric_limits<double>::digits10 + 2;
   double oval = numeric_limits<double>::min();
 
@@ -43,7 +43,6 @@ test06()
   double ival;
   istr >> ival;
   VERIFY( abs(oval-ival)/oval < DBL_EPSILON ); 
-  return 0;
 }
 
 int 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..4d5a4c4
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <iostream>
+#include <iomanip>
+#include <locale>
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+void
+test02()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  // Make sure we can output a long float in fixed format
+  // without seg-faulting (libstdc++/4402)
+  double val2 = 3.5e230;
+
+  wostringstream os2;
+  os2.precision(3);
+  os2.setf(wios::fixed);
+
+  // Check it can be done in a locale with grouping on.
+  locale loc2 = __gnu_test::try_named_locale("de_DE");
+  os2.imbue(loc2);
+  os2 << fixed << setprecision(3) << val2 << endl;
+  os2 << endl;
+  os2 << fixed << setprecision(1) << val2 << endl;
+}
+
+int 
+main()
+{
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/3.cc
new file mode 100644 (file)
index 0000000..0078c71
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+template<typename T>
+bool
+test03_check(T n)
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  wstringbuf strbuf;
+  wostream o(&strbuf);
+  const wchar_t *expect;
+
+  if (numeric_limits<T>::digits + 1 == 16)
+    expect = L"177777 ffff";
+  else if (numeric_limits<T>::digits + 1 == 32)
+    expect = L"37777777777 ffffffff";
+  else if (numeric_limits<T>::digits + 1 == 64)
+    expect = L"1777777777777777777777 ffffffffffffffff";
+  else
+    expect = L"wow, you've got some big numbers here";
+
+  o << oct << n << L' ' << hex << n;
+  VERIFY ( strbuf.str() == expect );
+
+  return test;
+}
+
+void
+test03()
+{
+  short s = -1;
+  int i = -1;
+  long l = -1;
+
+  test03_check(s);
+  test03_check(i);
+  test03_check(l);
+}
+
+int 
+main()
+{
+  test03();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4.cc
new file mode 100644 (file)
index 0000000..4ad87a5
--- /dev/null
@@ -0,0 +1,48 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <iomanip>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/3655
+int
+test04()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  wstringbuf strbuf1, strbuf2;
+  wostream o1(&strbuf1), o2(&strbuf2);
+
+  o1 << hex << showbase << setw(6) << internal << 0xff;
+  VERIFY( strbuf1.str() == L"0x  ff" );
+  
+  // ... vs internal-adjusted const char*-type objects
+  o2 << hex << showbase << setw(6) << internal << L"0xff";
+  VERIFY( strbuf2.str() == L"  0xff" );
+
+  return 0;
+}
+
+int 
+main()
+{
+  test04();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/4402.cc
new file mode 100644 (file)
index 0000000..e2db338
--- /dev/null
@@ -0,0 +1,71 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <cstdio> // for swprintf
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+void
+test02()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  // make sure we can output a very long float
+  long double val = 1.2345678901234567890123456789e+1000L;
+  int prec = numeric_limits<long double>::digits10;
+
+  wostringstream os;
+  os.precision(prec);
+  os.setf(wios::scientific);
+  os << val;
+
+  wchar_t largebuf[512];
+  swprintf(largebuf, 512, L"%.*Le", prec, val);
+#ifdef TEST_NUMPUT_VERBOSE
+  cout << "expect: " << largebuf << endl;
+  cout << "result: " << os.str() << endl;
+#endif
+  VERIFY( os && os.str() == largebuf );
+
+  // Make sure we can output a long float in fixed format
+  // without seg-faulting (libstdc++/4402)
+  double val2 = 3.5e230;
+
+  wostringstream os2;
+  os2.precision(3);
+  os2.setf(wios::fixed);
+  os2 << val2;
+
+  swprintf(largebuf, 512, L"%.*f", 3, val2);
+#ifdef TEST_NUMPUT_VERBOSE
+  cout << "expect: " << largebuf << endl;
+  cout << "result: " << os2.str() << endl;
+#endif
+  VERIFY( os2 && os2.str() == largebuf );
+}
+
+int 
+main()
+{
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/5.cc
new file mode 100644 (file)
index 0000000..7284c5e
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <cmath> // for abs
+#include <cfloat> // for DBL_EPSILON
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+void
+test05()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+  
+  double pi = 3.14159265358979323846;
+  wostringstream ostr;
+  ostr.precision(20);
+  ostr << pi;
+  wstring sval = ostr.str();
+  wistringstream istr(sval);
+  double d;
+  istr >> d;
+  VERIFY( abs(pi-d)/pi < DBL_EPSILON );
+}
+
+int 
+main()
+{
+  test05();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/6.cc
new file mode 100644 (file)
index 0000000..4129ca9
--- /dev/null
@@ -0,0 +1,50 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <cmath> // for abs
+#include <cfloat> // for DBL_EPSILON
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+// libstdc++/9151
+void
+test06()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  int prec = numeric_limits<double>::digits10 + 2;
+  double oval = numeric_limits<double>::min();
+
+  wstringstream ostr;
+  ostr.precision(prec);
+  ostr << oval;
+  wstring sval = ostr.str();
+  wistringstream istr(sval);
+  double ival;
+  istr >> ival;
+  VERIFY( abs(oval-ival)/oval < DBL_EPSILON ); 
+}
+
+int 
+main()
+{
+  test06();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/9555-oa.cc
new file mode 100644 (file)
index 0000000..f2e830b
--- /dev/null
@@ -0,0 +1,86 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+struct buf: std::wstreambuf
+{
+  virtual int_type overflow(int_type) 
+  { throw 0; }
+};
+
+template<typename T>
+void testthrow(T arg)
+{
+  bool test __attribute__((unused)) = true;
+  buf b;
+  std::wostream os(&b);
+  os.exceptions(std::wios::badbit);
+
+  try 
+    {
+      os << arg;
+    }
+  catch(int)
+    {
+      // Expected return is zero.
+      VERIFY( os.bad() );
+    }
+  catch(...) 
+    {
+      VERIFY( false );
+    }    
+}
+
+int main()
+{
+  bool b = true;
+  short s = -4; 
+  unsigned short us = 4;
+  int i = -45; 
+  unsigned int ui = 45;
+  long l = -456;
+  unsigned long ul = 456;
+  float f = 3.4;
+  double d = 3.45;
+  long double ld = 3.456;
+
+  testthrow(b);
+  testthrow(s);
+  testthrow(us);
+  testthrow(i);
+  testthrow(ui);
+  testthrow(l);
+  testthrow(ul);
+  testthrow(f);
+  testthrow(d);
+  testthrow(ld);
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_badbit_throw.cc
new file mode 100644 (file)
index 0000000..3c36f03
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <locale>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+// libstdc++/9561
+template<typename T>
+void test_badbit()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  locale loc(locale::classic(), new __gnu_test::fail_num_put_wchar_t);
+  wostringstream stream(L"jaylib - champion sound");
+  stream.imbue(loc);
+
+  stream.exceptions(ios_base::badbit);
+  VERIFY( stream.rdstate() == ios_base::goodbit );
+
+  try 
+    {
+      T i = T();
+      stream << i;
+      VERIFY( false );
+    }
+  catch (const __gnu_test::facet_error&) 
+    {
+      // stream should set badbit and rethrow facet_error.
+      VERIFY( stream.bad() );
+      VERIFY( (stream.rdstate() & ios_base::failbit) == 0 );
+      VERIFY( !stream.eof() );
+    }
+  catch (...) 
+    {
+      VERIFY( false );
+    }
+}
+
+
+int main()
+{
+  test_badbit<bool>();
+  test_badbit<short>();
+  test_badbit<unsigned short>();
+  test_badbit<int>();
+  test_badbit<unsigned int>();
+  test_badbit<long>();
+  test_badbit<unsigned long>();
+
+  test_badbit<float>();
+  test_badbit<double>();
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/exceptions_failbit_throw.cc
new file mode 100644 (file)
index 0000000..6211a9c
--- /dev/null
@@ -0,0 +1,75 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+// libstdc++/10093
+template<typename T>
+void test_failbit()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  locale loc(locale::classic(), new __gnu_test::fail_num_put_wchar_t);
+  wostringstream stream(L"jaylib - champion sound");
+  stream.imbue(loc);
+
+  stream.exceptions(ios_base::failbit);
+  
+  try
+    {
+      T i = T();
+      stream << i;
+    }
+  catch (const ios_base::failure&)
+    { VERIFY( false ); }
+  catch(...)
+    { VERIFY( false ); }
+
+    // stream should set badbit.
+    VERIFY( stream.bad() );
+    VERIFY( (stream.rdstate() & ios_base::failbit) == 0 );
+    VERIFY( !stream.eof() );
+}
+
+int main()
+{
+  test_failbit<bool>();
+  test_failbit<short>();
+  test_failbit<unsigned short>();
+  test_failbit<int>();
+  test_failbit<unsigned int>();
+  test_failbit<long>();
+  test_failbit<unsigned long>();
+
+  test_failbit<float>();
+  test_failbit<double>();
+
+  return 0;
+}
index e043580..1d7a3a2 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-08-16 bkoz
 
-// Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation
+// Copyright (C) 1999, 2000, 2002, 2003, 2005 Free Software Foundation
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -31,12 +31,9 @@ test04()
 {
   bool test __attribute__((unused)) = true;
   std::string str_01;
-  const std::string str_02("coltrane playing 'softly as a morning sunrise'");
-  const std::string str_03("coltrane");
   std::string str_tmp;
   const int i_max=250;
 
-  std::ostringstream oss_01(std::ios_base::out);
   std::ostringstream oss_02(str_01, std::ios_base::out);
 
   std::ios_base::iostate statefail;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..0a0c88d
--- /dev/null
@@ -0,0 +1,56 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <string>
+#include <ostream>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+// ofstream
+void test01()
+{
+  std::wstring str01;
+  const int size = 1000;
+  const char name_02[] = "wostream_inserter_char-1.txt";
+
+  // initialize string
+  for(int i=0 ; i < size; i++) {
+    str01 += L'1';
+    str01 += L'2';
+    str01 += L'3';
+    str01 += L'4';
+    str01 += L'5';
+    str01 += L'6';
+    str01 += L'7';
+    str01 += L'8';
+    str01 += L'9';
+    str01 += L'\n';
+  }
+  std::wofstream f(name_02);
+
+  f << str01;
+  f.close();
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..a39526b
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <string>
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// ostringstream width() != zero
+// left
+void
+test02(void) 
+{
+  bool test __attribute__((unused)) = true;
+  std::wstring tmp;
+  
+  std::wstring str01 = L"";
+  std::wostringstream oss01;
+  oss01.width(5);
+  oss01.fill(L'0');
+  oss01.flags(std::ios_base::left);
+  oss01 << str01;
+  tmp = oss01.str();
+  VERIFY( tmp == L"00000" );
+
+  std::wstring str02 = L"1";
+  std::wostringstream oss02;
+  oss02.width(5);
+  oss02.fill(L'0');
+  oss02.flags(std::ios_base::left);
+  oss02 << str02;
+  tmp = oss02.str();
+  VERIFY( tmp == L"10000" );
+
+  std::wstring str03 = L"909909";
+  std::wostringstream oss03;
+  oss03.width(5);
+  oss03.fill(L'0');
+  oss03.flags(std::ios_base::left);
+  oss03 << str03;
+  tmp = oss03.str();
+  VERIFY( tmp == L"909909" );
+}
+
+int main()
+{
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/3.cc
new file mode 100644 (file)
index 0000000..dc0f9dc
--- /dev/null
@@ -0,0 +1,65 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <string>
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// width() != zero
+// right
+void test03(void) 
+{
+  bool test __attribute__((unused)) = true;
+  std::wstring tmp;
+
+  std::wstring str01 = L"";
+  std::wostringstream oss01;
+  oss01.width(5);
+  oss01.fill(L'0');
+  oss01.flags(std::ios_base::right);
+  oss01 << str01;
+  tmp = oss01.str();
+  VERIFY( tmp == L"00000" );
+
+  std::wstring str02 = L"1";
+  std::wostringstream oss02;
+  oss02.width(5);
+  oss02.fill(L'0');
+  oss02.flags(std::ios_base::right);
+  oss02 << str02;
+  tmp = oss02.str();
+  VERIFY( tmp == L"00001" );
+
+  std::wstring str03 = L"909909";
+  std::wostringstream oss03;
+  oss03.width(5);
+  oss03.fill(L'0');
+  oss03.flags(std::ios_base::right);
+  oss03 << str03;
+  tmp = oss03.str();
+  VERIFY( tmp == L"909909" );
+}
+
+int main()
+{
+  test03();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/4.cc
new file mode 100644 (file)
index 0000000..5027985
--- /dev/null
@@ -0,0 +1,57 @@
+// 1999-08-16 bkoz
+
+// Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <string>
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// stringstream and large strings
+void
+test04() 
+{
+  bool test __attribute__((unused)) = true;
+  std::wstring str_01;
+  std::wstring str_tmp;
+  const int i_max=250;
+
+  std::wostringstream oss_02(str_01, std::ios_base::out);
+
+  std::ios_base::iostate statefail;
+  statefail = std::ios_base::failbit;
+
+  // template<_CharT, _Traits>
+  //  basic_ostream& operator<<(ostream&, const wchar_t*)
+  for (int i = 0; i < i_max; ++i) 
+    oss_02 << L"Test: " << i << std::endl;
+  str_tmp = oss_02.str();
+  VERIFY( !oss_02.bad() );
+  VERIFY( oss_02.good() );
+  VERIFY( str_tmp != str_01 );
+  VERIFY( str_tmp.size() == 2390 );
+}
+
+int main()
+{
+  test04();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/5.cc
new file mode 100644 (file)
index 0000000..596b9ce
--- /dev/null
@@ -0,0 +1,75 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <string>
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// ostringstream and large strings number 2
+void
+test05()
+{
+  bool test __attribute__((unused)) = true;
+  std::wstring str05, str10;
+
+  typedef std::wostream::pos_type      pos_type;
+  typedef std::wostream::off_type      off_type;
+  std::wstring str01;
+  const int size = 1000;
+
+  // initialize string
+  for(int i=0 ; i < size; i++) {
+    str01 += L'1';
+    str01 += L'2';
+    str01 += L'3';
+    str01 += L'4';
+    str01 += L'5';
+    str01 += L'6';
+    str01 += L'7';
+    str01 += L'8';
+    str01 += L'9';
+    str01 += L'\n';
+  }
+
+  // test 1: out
+  std::wostringstream sstr01(str01, std::ios_base::out);
+  std::wostringstream sstr02;
+  sstr02 << str01;
+  str05 = sstr01.str();
+  str10 = sstr02.str();
+  VERIFY( str05 == str01 );
+  VERIFY( str10 == str01 );
+
+  // test 2: in | out 
+  std::wostringstream sstr04(str01,  std::ios_base::out | std::ios_base::in);
+  std::wostringstream sstr05(std::ios_base::in | std::ios_base::out);
+  sstr05 << str01;
+  str05 = sstr04.str();
+  str10 = sstr05.str();
+  VERIFY( str05 == str01 );
+  VERIFY( str10 == str01 );
+}
+
+int main()
+{
+  test05();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/6.cc
new file mode 100644 (file)
index 0000000..4b05cca
--- /dev/null
@@ -0,0 +1,56 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <string>
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// ostringstream and positioning, multiple writes
+// http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00326.html
+void test06()
+{
+  bool test __attribute__((unused)) = true;
+  const wchar_t carray01[] = L"mos def & talib kweli are black star";
+
+  // normal
+  std::wostringstream ostr1(L"mos def");
+  VERIFY( ostr1.str() == L"mos def" ); 
+  ostr1 << L" & talib kweli";  // should overwrite first part of buffer
+  VERIFY( ostr1.str() == L" & talib kweli" );
+  ostr1 << L" are black star";  // should append to string from above
+  VERIFY( ostr1.str() != carray01 );
+  VERIFY( ostr1.str() == L" & talib kweli are black star" );
+
+  // appending
+  std::wostringstream ostr2(L"blackalicious", 
+                           std::ios_base::out | std::ios_base::ate);
+  VERIFY( ostr2.str() == L"blackalicious" ); 
+  ostr2 << L" NIA ";  // should not overwrite first part of buffer
+  VERIFY( ostr2.str() == L"blackalicious NIA " );
+  ostr2 << L"4: deception (5:19)";  // should append to full string from above
+  VERIFY( ostr2.str() == L"blackalicious NIA 4: deception (5:19)" );
+}
+
+int main()
+{
+  test06();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/9555-oc.cc
new file mode 100644 (file)
index 0000000..cc82e68
--- /dev/null
@@ -0,0 +1,70 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+struct buf: std::wstreambuf
+{
+  virtual int_type overflow(int_type) 
+  { throw 0; }
+};
+
+template<typename T>
+void testthrow(T arg)
+{
+  bool test __attribute__((unused)) = true;
+  buf b;
+  std::wostream os(&b);
+  os.exceptions(std::wios::badbit);
+
+  try 
+    {
+      os << arg;
+    }
+  catch(int) 
+      {
+       // Expected return is zero.
+        VERIFY( os.bad() );
+      }
+  catch(...) 
+    {
+      VERIFY( false );
+    }    
+}
+
+int main()
+{
+  wchar_t c = L'a';
+  const wchar_t* ccp = L"governor ann richards";
+
+  testthrow(c);
+  testthrow(ccp);
+
+  return 0;
+}
index d14e2fc..237f440 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-08-16 bkoz
 // 1999-11-01 bkoz
 
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005 Free Software Foundation
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -49,12 +49,12 @@ test03(void)
   ifstream in(TEST_IN);
   ofstream out(TEST_OUT);
   out << in.rdbuf();
-  in.seekg(0,ios_base::beg);
-  out.seekp(0,ios_base::beg);
+  in.seekg(0, ios_base::beg);
+  out.seekp(0, ios_base::beg);
   rs = in.tellg();
   ws = out.tellp();
-  in.seekg(0,ios_base::end);
-  out.seekp(0,ios_base::end);
+  in.seekg(0, ios_base::end);
+  out.seekp(0, ios_base::end);
   i_read = in.tellg() - rs;
   i_wrote = out.tellp() - ws;
   in.close();
index d905875..4aae9bb 100644 (file)
@@ -41,7 +41,7 @@ std::ios_base& func3(std::ios_base&)
 template<typename T>
 void test(T& (*f)(T&))
 {
-  bool test = true;
+  bool test __attribute__((unused)) = true;
 
   __gnu_test::sync_streambuf buf;
   std::ostream os(&buf);
index ce47b6f..3616f44 100644 (file)
@@ -42,8 +42,8 @@ void test5()
 
   stream << &sbuf;
 
-  VERIFY(stream.rdstate() & ios_base::failbit);
-  VERIFY((stream.rdstate() & ios_base::badbit) == 0);
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
 }
 
 void test7()
@@ -54,8 +54,8 @@ void test7()
 
   stream << &bib;
 
-  VERIFY(stream.rdstate() & ios_base::failbit);
-  VERIFY((stream.rdstate() & ios_base::badbit) == 0);
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
 }
 
 // libstdc++/9371
index 13ff248..b5c235e 100644 (file)
@@ -48,8 +48,8 @@ void test13()
   catch (...)
     { VERIFY(false); }
 
-  VERIFY(stream.rdstate() & ios_base::failbit);
-  VERIFY((stream.rdstate() & ios_base::badbit) == 0);
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
 }
 
 void test15()
@@ -66,8 +66,8 @@ void test15()
   catch (...)
     { VERIFY(false); }
 
-  VERIFY(stream.rdstate() & ios_base::failbit);
-  VERIFY((stream.rdstate() & ios_base::badbit) == 0);
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
 }
 
 // libstdc++/9371
index 5abaf92..0f7d3fb 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -44,17 +44,17 @@ void test9()
   try
     {
       stream << &sbuf;
-      VERIFY(false);
+      VERIFY( false );
     }
   catch (ios_base::failure&)
-    { VERIFY(false); }
+    { VERIFY( false ); }
   catch (__gnu_test::overflow_error&)
     { }
   catch (...)
-    { VERIFY(false); }
+    { VERIFY( false ); }
 
-  VERIFY(stream.rdstate() & ios_base::failbit);
-  VERIFY((stream.rdstate() & ios_base::badbit) == 0);
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
 }
 
 void test11()
@@ -67,17 +67,17 @@ void test11()
   try
     {
       stream << &bib;
-      VERIFY(false);
+      VERIFY( false );
     }
   catch (ios_base::failure&)
-    { VERIFY(false); }
+    { VERIFY( false ); }
   catch (__gnu_test::underflow_error&)
     { }
   catch (...)
-    { VERIFY(false); }
+    { VERIFY( false ); }
 
-  VERIFY(stream.rdstate() & ios_base::failbit);
-  VERIFY((stream.rdstate() & ios_base::badbit) == 0);
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
 }
 
 // libstdc++/9371
index 3f2de4d..3d248bc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <sstream>
 #include <testsuite_hooks.h>
 
-using namespace std;
-
 void test1()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   ostringstream stream;
   stream << static_cast<streambuf*>(NULL);
-  VERIFY(stream.rdstate() & ios_base::badbit);
+  VERIFY( stream.rdstate() & ios_base::badbit );
 }
 
 void test3()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   ostringstream stream;
   stream.exceptions(ios_base::badbit);
        
   try
     {
       stream << static_cast<streambuf*>(NULL);
-      VERIFY(false);
+      VERIFY( false );
     }
   catch (ios_base::failure&)
     {
     }
 
-  VERIFY(stream.rdstate() & ios_base::badbit);
+  VERIFY( stream.rdstate() & ios_base::badbit );
 }
 
 // libstdc++/9371
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..88ae7aa
--- /dev/null
@@ -0,0 +1,79 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+// @require@ %-*.tst %-*.txt
+// @diff@ %-*.tst %-*.txt
+
+#include <ostream>
+#include <sstream>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+const int size = 1000;
+const char name_01[] = "wostream_inserter_other-1.tst";
+const char name_02[] = "wostream_inserter_other-1.txt";
+const char name_03[] = "wostream_inserter_other-2.tst";
+const char name_04[] = "wostream_inserter_other-2.txt";
+
+// fstream
+void
+test02() 
+{
+  typedef std::ios_base::iostate iostate;
+  bool test __attribute__((unused)) = true;
+
+  // basic_ostream<_CharT, _Traits>::operator<<(__streambuf_type* __sb)
+  // filebuf-> NULL 
+  std::wifstream f_in1(name_01);
+  std::wofstream f_out1(name_02);
+  std::wstringbuf* strbuf01 = NULL;
+  iostate state01 = f_in1.rdstate();
+  f_in1 >> strbuf01;
+  iostate state02 = f_in1.rdstate();
+  VERIFY( state01 != state02 );
+  VERIFY( (state02 & std::ios_base::failbit) != 0 );
+  state01 = f_out1.rdstate();
+  f_out1 << strbuf01;
+  state02 = f_out1.rdstate();
+  VERIFY( state01 != state02 );
+  VERIFY( (state02 & std::ios_base::badbit) != 0 );
+
+  // filebuf->filebuf
+  std::wifstream f_in(name_01);
+  std::wofstream f_out(name_02);
+  f_out << f_in.rdbuf();
+  f_in.close();
+  f_out.close();
+
+  // filebuf->stringbuf->filebuf
+  std::wifstream f_in2(name_03);
+  std::wofstream f_out2(name_04); // should be different name
+  std::wstringbuf strbuf02;
+  f_in2 >> &strbuf02;
+  f_out2 << &strbuf02;
+  f_in2.close();
+  f_out2.close();
+}
+
+int 
+main()
+{
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..626d45c
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+// @require@ %-*.tst %-*.txt
+// @diff@ %-*.tst %-*.txt
+
+#include <ostream>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+// via Brent Verner <brent@rcfile.org>
+// http://gcc.gnu.org/ml/libstdc++/2000-06/msg00005.html
+void
+test03(void)
+{
+  using namespace std;
+
+  typedef wios::pos_type       pos_type;
+
+  const char* TEST_IN = "wostream_inserter_other_in";
+  const char* TEST_OUT = "wostream_inserter_other_out";
+  pos_type i_read, i_wrote, rs, ws;
+  double tf_size = BUFSIZ * 2.5;
+  ofstream testfile(TEST_IN);
+
+  for (int i = 0; i < tf_size; ++i)
+    testfile.put(L'.');
+  testfile.close();
+
+  wifstream in(TEST_IN);
+  wofstream out(TEST_OUT);
+  out << in.rdbuf();
+  in.seekg(0, ios_base::beg);
+  out.seekp(0, ios_base::beg);
+  rs = in.tellg();
+  ws = out.tellp();
+  in.seekg(0, ios_base::end);
+  out.seekp(0, ios_base::end);
+  i_read = in.tellg() - rs;
+  i_wrote = out.tellp() - ws;
+  in.close();
+  out.close();
+}
+
+int 
+main()
+{
+  test03();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/3.cc
new file mode 100644 (file)
index 0000000..d43a887
--- /dev/null
@@ -0,0 +1,45 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/3272
+void test04()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+  wistringstream istr(L"inside betty carter");
+  wostringstream ostr;
+  ostr << istr.rdbuf() << endl;
+
+  if (ostr.rdstate() & ios_base::eofbit) 
+    test = false;
+
+  VERIFY( test );
+}
+
+int 
+main()
+{
+  test04(); 
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/4.cc
new file mode 100644 (file)
index 0000000..049a3b0
--- /dev/null
@@ -0,0 +1,185 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.4 basic_ostream character inserters
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+class test_buffer_1 : public std::wstreambuf 
+{
+public:
+  test_buffer_1(const std::wstring& s)
+  : str(s), it(str.begin()) { }
+  
+protected:
+  virtual int_type
+  underflow()
+  { return (it != str.end() ? *it : WEOF); }
+  
+  virtual int_type
+  uflow()
+  { return (it != str.end() ? *it++ : WEOF); }
+
+private:
+  const std::wstring str;
+  std::wstring::const_iterator it;
+};
+
+
+class test_buffer_2 : public std::wstreambuf 
+{
+public:
+  test_buffer_2(const std::wstring& s)
+  : str(s), it(str.begin()) { }
+  
+protected:
+  virtual int_type
+  underflow()
+  { return (it != str.end() ? *it : WEOF); }
+  
+  virtual int_type
+  uflow()
+  { return (it != str.end() ? *it++ : WEOF); }
+  
+  virtual std::streamsize
+  showmanyc()
+  { return std::distance(it, str.end()); }
+
+private:
+  const std::wstring str;
+  std::wstring::const_iterator it;
+};
+
+
+class test_buffer_3 : public std::wstreambuf 
+{
+public:
+  test_buffer_3(const std::wstring& s)
+  : str(s), it(str.begin()) { }
+
+protected:
+  virtual int_type
+  underflow()
+  { return (it != str.end() ? *it : WEOF); }
+  
+  virtual int_type
+  uflow()
+  { return (it != str.end() ? *it++ : WEOF); }
+  
+  virtual std::streamsize
+  showmanyc() 
+  {
+    std::streamsize ret = std::distance(it, str.end());
+    return ret > 0 ? ret : -1;
+  }
+
+private:
+  const std::wstring str;
+  std::wstring::const_iterator it;
+};
+
+class test_buffer_4 : public std::wstreambuf
+{
+public:
+  test_buffer_4(const std::wstring& s)
+  : str(s), it(str.begin())
+  {
+    if (it != str.end())
+      {
+       buf[0] = *it++;
+       setg(buf, buf, buf+1);
+      }
+  }
+
+protected:
+  virtual int_type
+  underflow()
+  { return (it != str.end() ? *it : WEOF); }
+  
+  virtual int_type
+  uflow()
+  { return (it != str.end() ? *it++ : WEOF); }
+  
+  virtual std::streamsize
+  showmanyc()
+  {
+    std::streamsize ret = std::distance(it, str.end());
+    return ret > 0 ? ret : -1;
+  }
+
+private:
+  const std::wstring str;
+  std::wstring::const_iterator it;
+  wchar_t buf[1];
+};
+
+void test(const std::wstring& str, std::wstreambuf& buf)
+{
+  bool test __attribute__((unused)) = true;
+
+  std::wostringstream out;
+  std::wistream in(&buf);
+
+  out << in.rdbuf();
+
+  if (out.str() != str) 
+    VERIFY( false );
+}
+
+// libstdc++/6745
+// libstdc++/8071
+// libstdc++/8127
+// Jonathan Lennox  <lennox@cs.columbia.edu>
+void test05()
+{
+  std::wstring string_a(L"Hello, world!");
+  std::wstring string_b(L"");
+
+  test_buffer_1 buf1a(string_a);
+  test_buffer_1 buf1b(string_b);
+
+  test_buffer_2 buf2a(string_a);
+  test_buffer_2 buf2b(string_b);
+
+  test_buffer_3 buf3a(string_a);
+  test_buffer_3 buf3b(string_b);
+
+  test_buffer_4 buf4a(string_a);
+  test_buffer_4 buf4b(string_b);
+
+  test(string_a, buf1a);
+  test(string_b, buf1b);
+
+  test(string_a, buf2a);
+  test(string_b, buf2b);
+
+  test(string_a, buf3a);
+  test(string_b, buf3b);
+
+  test(string_a, buf4a);
+  test(string_b, buf4b);
+}
+
+int 
+main()
+{
+  test05();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/5.cc
new file mode 100644 (file)
index 0000000..99a77dd
--- /dev/null
@@ -0,0 +1,97 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.5.3 basic_ostream manipulator inserters
+//
+// _GLIBCXX_RESOLVE_LIB_DEFECTS
+// DR 60. What is a formatted input function?
+// Inserters for manipulators do not behave as formatted output functions.
+
+#include <ostream>
+#include <stdexcept>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+std::wostream& func1(std::wostream&)
+{ throw std::runtime_error(""); }
+
+std::wios& func2(std::wios&)
+{ throw std::runtime_error(""); }
+
+std::ios_base& func3(std::ios_base&)
+{ throw std::runtime_error(""); }
+
+template<typename T>
+void test(T& (*f)(T&))
+{
+  bool test __attribute__((unused)) = true;
+
+  __gnu_test::sync_wstreambuf buf;
+  std::wostream os(&buf);
+  
+  __gnu_test::sync_wstreambuf buf_tie;
+  std::wostream os_tie(&buf_tie);
+
+  // No sentry should be constructed so os.tie()->flush() should not be
+  // called.
+  os.tie(&os_tie);
+
+  try
+    {
+      os << f;
+      // Exceptions thrown by f should not be caught
+      VERIFY( false );
+    }
+  catch (std::runtime_error&)
+    {
+    }
+
+  // Exceptions thrown by f should not cause badbit to be set
+  VERIFY( os.good() );
+  VERIFY( !buf_tie.sync_called() );
+
+  // The manipulator should be called even if !os.good().
+  os.setstate(std::ios_base::eofbit);
+
+  try
+    {
+      os << f;
+      // Exceptions thrown by f should not be caught
+      VERIFY( false );
+    }
+  catch (std::runtime_error&)
+    {
+    }
+
+  // Exceptions thrown by f should not cause badbit to be set
+  VERIFY( os.rdstate() == std::ios_base::eofbit );
+  VERIFY( !buf_tie.sync_called() );
+}
+
+void test05()
+{
+  test(&func1);
+  test(&func2);
+  test(&func3);
+}
+
+int main()
+{
+  test05();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9318-out.cc
new file mode 100644 (file)
index 0000000..3685e1f
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.5.2 template class basic_streambuf
+
+#include <streambuf>
+#include <sstream>
+#include <ostream>
+#include <testsuite_hooks.h>
+
+// libstdc++/9318
+class Outbuf : public std::wstreambuf
+{
+public:
+  typedef std::wstreambuf::traits_type traits_type;
+
+  std::wstring result() const { return str; }
+
+protected:
+  virtual int_type
+  overflow(int_type c = traits_type::eof())
+  {
+    if (!traits_type::eq_int_type(c, traits_type::eof()))
+      str.push_back(traits_type::to_char_type(c));
+    return traits_type::not_eof(c);
+  }
+
+private:
+  std::wstring str;
+};
+
+void test10()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::wstringbuf sbuf(L"Bad Moon Rising", std::wios::in);
+  Outbuf buf;
+  std::wostream stream(&buf);
+  stream << &sbuf;
+
+  VERIFY( buf.result() == L"Bad Moon Rising" );
+}
+
+int main() 
+{
+  test10();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9424-out.cc
new file mode 100644 (file)
index 0000000..77b784d
--- /dev/null
@@ -0,0 +1,113 @@
+// 1999-10-11 bkoz
+
+// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.5.2 template class basic_streambuf
+
+#include <cwchar> 
+#include <streambuf>
+#include <sstream>
+#include <ostream>
+#include <testsuite_hooks.h>
+
+// libstdc++/9424
+class Outbuf_2 : public std::wstreambuf
+{
+  wchar_t buf[1];
+
+public:
+  Outbuf_2()
+  {
+    setp(buf, buf + 1);
+  }
+
+  int_type overflow(int_type c)
+  {
+    int_type eof = traits_type::eof();
+    
+    if (pptr() < epptr())
+      {
+       if (traits_type::eq_int_type(c, eof))
+         return traits_type::not_eof(c);
+       
+       *pptr() = traits_type::to_char_type(c);
+       pbump(1);
+       return c;
+      }
+
+    return eof;
+  }
+};
+
+class Inbuf_2 : public std::wstreambuf
+{
+  static const wchar_t buf[];
+  const wchar_t* current;
+  int size;
+
+public:
+  Inbuf_2()
+  {
+    current = buf;
+    size = std::wcslen(buf);
+  }
+  
+  int_type underflow()
+  {
+    if (current < buf + size)
+      return traits_type::to_int_type(*current);
+    return traits_type::eof();
+  }
+  
+  int_type uflow()
+  {
+    if (current < buf + size)
+      return traits_type::to_int_type(*current++);
+    return traits_type::eof();
+  }
+};
+
+const wchar_t Inbuf_2::buf[] = L"Atteivlis";
+
+void test12()
+{ 
+  bool test __attribute__((unused)) = true;
+  Outbuf_2 outbuf2;
+  std::wostream os (&outbuf2);
+  Inbuf_2 inbuf2;
+  os << &inbuf2;
+  VERIFY( inbuf2.sgetc() == L't' );
+  VERIFY( os.good() );
+}
+
+int main() 
+{
+  test12();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/9555-oo.cc
new file mode 100644 (file)
index 0000000..ce4a6d9
--- /dev/null
@@ -0,0 +1,68 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+struct buf: std::wstreambuf
+{
+  virtual int_type overflow(int_type) 
+  { throw 0; }
+};
+
+template<typename T>
+void testthrow(T arg)
+{
+  bool test __attribute__((unused)) = true;
+  buf b;
+  std::wostream os(&b);
+  os.exceptions(std::wios::badbit);
+
+  try 
+    {
+      os << arg;
+    }
+  catch(int) 
+      {
+       // Expected return is zero.
+        VERIFY( os.bad() );
+      }
+  catch(...) 
+    {
+      VERIFY( false );
+    }    
+}
+
+int main()
+{
+  buf b;
+
+  testthrow(&b);
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_failbit.cc
new file mode 100644 (file)
index 0000000..16f37a7
--- /dev/null
@@ -0,0 +1,67 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+using namespace std;
+
+void test5()
+{
+  bool test __attribute__((unused)) = true;
+  __gnu_test::fail_wstreambuf bob;
+  wostream stream(&bob);
+  wstringbuf sbuf(L"Foo, bar, qux", ios_base::in);
+
+  stream << &sbuf;
+
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
+}
+
+void test7()
+{
+  bool test __attribute__((unused)) = true;
+  wostringstream stream;
+  __gnu_test::fail_wstreambuf bib;
+
+  stream << &bib;
+
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
+}
+
+// libstdc++/9371
+int main()
+{
+  test5();
+  test7();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_badbit_throw.cc
new file mode 100644 (file)
index 0000000..3620d12
--- /dev/null
@@ -0,0 +1,79 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+using namespace std;
+
+void test13()
+{
+  bool test __attribute__((unused)) = true;
+  __gnu_test::fail_wstreambuf bob;
+  wostream stream(&bob);
+  stream.exceptions(ios_base::badbit);
+  wstringbuf sbuf(L"Foo, bar, qux", ios_base::in);
+
+  try
+    {
+      stream << &sbuf;
+    }
+  catch (...)
+    { VERIFY(false); }
+
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
+}
+
+void test15()
+{
+  bool test __attribute__((unused)) = true;
+  wostringstream stream;
+  stream.exceptions(ios_base::badbit);
+  __gnu_test::fail_wstreambuf bib;
+
+  try
+    {
+      stream << &bib;
+    }
+  catch (...)
+    { VERIFY(false); }
+
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
+}
+
+// libstdc++/9371
+int main()
+{
+  test13();
+  test15();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_failbit_throw.cc
new file mode 100644 (file)
index 0000000..bd2c7d8
--- /dev/null
@@ -0,0 +1,89 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+using namespace std;
+
+void test9()
+{
+  bool test __attribute__((unused)) = true;
+  __gnu_test::fail_wstreambuf bob;
+  wostream stream(&bob);
+  stream.exceptions(ios_base::failbit);
+  wstringbuf sbuf(L"Foo, bar, qux", ios_base::in);
+
+  try
+    {
+      stream << &sbuf;
+      VERIFY( false );
+    }
+  catch (ios_base::failure&)
+    { VERIFY( false ); }
+  catch (__gnu_test::overflow_error&)
+    { }
+  catch (...)
+    { VERIFY( false ); }
+
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
+}
+
+void test11()
+{
+  bool test __attribute__((unused)) = true;
+  wostringstream stream;
+  stream.exceptions(ios_base::failbit);
+  __gnu_test::fail_wstreambuf bib;
+
+  try
+    {
+      stream << &bib;
+      VERIFY( false );
+    }
+  catch (ios_base::failure&)
+    { VERIFY( false ); }
+  catch (__gnu_test::underflow_error&)
+    { }
+  catch (...)
+    { VERIFY( false ); }
+
+  VERIFY( stream.rdstate() & ios_base::failbit );
+  VERIFY( (stream.rdstate() & ios_base::badbit) == 0 );
+}
+
+// libstdc++/9371
+int main()
+{
+  test9();
+  test11();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/exceptions_null.cc
new file mode 100644 (file)
index 0000000..d336107
--- /dev/null
@@ -0,0 +1,70 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <istream>
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+void test1()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  wostringstream stream;
+  stream << static_cast<wstreambuf*>(NULL);
+  VERIFY( stream.rdstate() & ios_base::badbit );
+}
+
+void test3()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  wostringstream stream;
+  stream.exceptions(ios_base::badbit);
+       
+  try
+    {
+      stream << static_cast<wstreambuf*>(NULL);
+      VERIFY( false );
+    }
+  catch (ios_base::failure&)
+    {
+    }
+
+  VERIFY( stream.rdstate() & ios_base::badbit );
+}
+
+// libstdc++/9371
+int main()
+{
+  test1();
+  test3();
+  return 0;
+}
index df396e5..b0b6ca4 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-09-22  Petur Runolfsson  <peturr02@ru.is>
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 class Buf : public std::streambuf
 {
 protected:
-  virtual int_type overflow(int_type = traits_type::eof())
+  virtual int_type
+  overflow(int_type = traits_type::eof())
   { throw 0; }
 };
 
 void test01()
 {
-  bool test = true;
+  bool test __attribute__((unused)) = true;
 
   Buf buf;
   std::ostream os(&buf);
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/put/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..3dee44f
--- /dev/null
@@ -0,0 +1,71 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.6 Unformatted output functions
+//
+// _GLIBCXX_RESOLVE_LIB_DEFECTS
+// DR 60. What is a formatted input function?
+// basic_ostream::put(char_type) is an unformatted output function.
+// DR 63. Exception-handling policy for unformatted output.
+// Unformatted output functions should catch exceptions thrown
+// from streambuf members.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+class Buf : public std::wstreambuf
+{
+protected:
+  virtual int_type
+  overflow(int_type = traits_type::eof())
+  { throw 0; }
+};
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  Buf buf;
+  std::wostream os(&buf);
+
+  VERIFY( os.good() );
+
+  os.put(L'a');
+
+  VERIFY( os.rdstate() == std::ios_base::badbit );
+
+  os.clear();
+  os.exceptions(std::ios_base::badbit);
+
+  try
+    {
+      os.put(L'b');
+      VERIFY( false );
+    }
+  catch (int)
+    {
+      VERIFY( os.rdstate() == std::ios_base::badbit );
+    }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
index eba3174..eda703f 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <testsuite_hooks.h>
 #include <testsuite_io.h>
 
-using namespace std;
-
 void test01()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   __gnu_test::fail_streambuf bib;
   ostream stream(&bib);
   stream.exceptions(ios_base::badbit);
@@ -56,13 +56,15 @@ void test01()
     }
   catch (...) 
     {
-      VERIFY(false);
+      VERIFY( false );
     }
 }
 
 void test02()
 {
+  using namespace std;
   bool test __attribute__((unused)) = true;
+
   __gnu_test::fail_streambuf bib;
   ostream stream(&bib);
   stream.exceptions(ios_base::badbit);
@@ -83,7 +85,7 @@ void test02()
     }
   catch (...) 
     {
-      VERIFY(false);
+      VERIFY( false );
     }
 }
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-fstream.cc
new file mode 100644 (file)
index 0000000..4143bd0
--- /dev/null
@@ -0,0 +1,87 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.4  basic_ostream seek members  [lib.ostream.seeks]
+// @require@ %-*.tst %-*.txt
+// @diff@ %-*.tst %-*.txt
+
+#include <ostream>
+#include <istream>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+const wchar_t* s = L" lootpack, peanut butter wolf, rob swift, madlib, quasimoto";
+const int times = 10;
+
+void write_rewind(std::wiostream& stream)
+{
+  bool test __attribute__((unused)) = true;
+
+  for (int j = 0; j < times; j++) 
+    {
+      std::streampos begin = stream.tellp();
+      
+      for (int i = 0; i < times; ++i)
+       stream << j << L'-' << i << s << L'\n';
+      
+      stream.seekp(begin);
+    }
+  VERIFY( stream.good() );
+}
+
+void check_contents(std::wiostream& stream)
+{
+  bool test __attribute__((unused)) = true;
+
+  stream.clear();
+  stream.seekg(0, std::wios::beg);
+  int i = 0;
+  int loop = times * times + 2;
+  while (i < loop)
+    {
+      stream.ignore(80, L'\n');
+      if (stream.good())
+       ++i;
+      else
+       break;
+    }
+  VERIFY( i == times );
+}
+
+// fstream
+// libstdc++/2346
+void test02()
+{       
+  std::wfstream ofstrm;
+  ofstrm.open("wistream_seeks-3.txt", std::wios::out);
+  if (!ofstrm)
+    std::abort();
+  write_rewind(ofstrm);
+  ofstrm.close();
+
+  std::wfstream ifstrm;
+  ifstrm.open("wistream_seeks-3.txt", std::wios::in);
+  check_contents(ifstrm);
+  ifstrm.close();
+}
+
+int main()
+{
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/2346-sstream.cc
new file mode 100644 (file)
index 0000000..e511599
--- /dev/null
@@ -0,0 +1,79 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.4  basic_ostream seek members  [lib.ostream.seeks]
+
+#include <ostream>
+#include <istream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+const wchar_t* s = L" lootpack, peanut butter wolf, rob swift, madlib, quasimoto";
+const int times = 10;
+
+void write_rewind(std::wiostream& stream)
+{
+  bool test __attribute__((unused)) = true;
+
+  for (int j = 0; j < times; j++) 
+    {
+      std::streampos begin = stream.tellp();
+      
+      for (int i = 0; i < times; ++i)
+       stream << j << L'-' << i << s << L'\n';
+      
+      stream.seekp(begin);
+    }
+  VERIFY( stream.good() );
+}
+
+void check_contents(std::wiostream& stream)
+{
+  bool test __attribute__((unused)) = true;
+
+  stream.clear();
+  stream.seekg(0, std::wios::beg);
+  int i = 0;
+  int loop = times * times + 2;
+  while (i < loop)
+    {
+      stream.ignore(80, L'\n');
+      if (stream.good())
+       ++i;
+      else
+       break;
+    }
+  VERIFY( i == times );
+}
+
+// stringstream
+// libstdc++/2346
+// N.B. The original testcase was broken, using tellg/seekg in write_rewind.
+void test03()
+{       
+  std::wstringstream sstrm;
+
+  write_rewind(sstrm);
+  check_contents(sstrm);
+}
+
+int main()
+{
+  test03();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc
new file mode 100644 (file)
index 0000000..8fbc6e5
--- /dev/null
@@ -0,0 +1,98 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+void test01()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+
+  __gnu_test::fail_wstreambuf bib;
+  wostream stream(&bib);
+  stream.exceptions(ios_base::badbit);
+
+  wostream::pos_type pos = wostream::pos_type();
+
+  try
+    {
+      stream.seekp(pos);
+      VERIFY( false );
+    }
+  catch (const __gnu_test::positioning_error&) 
+    {
+      // stream should set badbit and rethrow facet_error.
+      VERIFY( stream.bad() );
+      VERIFY( (stream.rdstate() & ios_base::failbit) == 0 );
+      VERIFY( !stream.eof() );
+    }
+  catch (...) 
+    {
+      VERIFY( false );
+    }
+}
+
+void test02()
+{
+  using namespace std;
+  bool test __attribute__((unused)) = true;
+  
+  __gnu_test::fail_wstreambuf bib;
+  wostream stream(&bib);
+  stream.exceptions(ios_base::badbit);
+
+  wostream::off_type off(5);
+
+  try
+    {
+      stream.seekp(off, ios_base::cur);
+      VERIFY( false );
+    }
+  catch (const __gnu_test::positioning_error&) 
+    {
+      // stream should set badbit and rethrow facet_error.
+      VERIFY( stream.bad() );
+      VERIFY( (stream.rdstate() & ios_base::failbit) == 0 );
+      VERIFY( !stream.eof() );
+    }
+  catch (...) 
+    {
+      VERIFY( false );
+    }
+}
+
+// libstdc++/9546
+int main()
+{
+  test01();
+  test02();
+  return 0;
+}
index 72ba932..7e75a15 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-02-06  Paolo Carlini  <pcarlini@unitus.it>
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
 #include <testsuite_hooks.h>
 
 // libstdc++/9563
-struct buf: std::streambuf
+struct buf : std::streambuf
 {
   std::ios *io_;
   
-  buf (std::ios *io): io_ (io) { }
+  buf(std::ios *io)
+  : io_(io) { }
   
-  virtual int sync ()
+  virtual int
+  sync()
   {
     io_->setstate (std::ios::failbit);
     return 0;
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..f56648d
--- /dev/null
@@ -0,0 +1,51 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.2.3 class basic_ostream::sentry
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/9562
+void
+test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  std::wstringbuf strbuf01;
+  std::wostream strm1(&strbuf01);
+  const std::wostream::sentry sentry1(strm1);
+
+  VERIFY( bool(sentry1) == true );
+}
+
+int main() 
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/sentry/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..35146a0
--- /dev/null
@@ -0,0 +1,71 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// 27.6.2.3 class basic_ostream::sentry
+
+#include <ostream>
+#include <sstream>
+#include <testsuite_hooks.h>
+
+// libstdc++/9563
+struct buf : std::wstreambuf
+{
+  std::wios *io_;
+  
+  buf(std::wios *io)
+  : io_(io) { }
+  
+  virtual int
+  sync()
+  {
+    io_->setstate (std::wios::failbit);
+    return 0;
+  }
+};
+
+void
+test02()
+{
+  bool test __attribute__((unused)) = true;
+
+  buf b(0);
+  std::wostream strm(&b);
+  
+  buf tb(&strm);
+  std::wostream tied(&tb);
+
+  strm.tie(&tied);
+  std::wostream::sentry s(strm);
+
+  VERIFY( !s );
+}
+
+int main() 
+{
+  test02();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..3f75ce5
--- /dev/null
@@ -0,0 +1,62 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.4 basic_ostream seek members
+
+#include <ostream>
+#include <sstream>
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+  typedef wios::off_type off_type;
+  typedef wios::pos_type pos_type;
+
+  bool test __attribute__((unused)) = true;
+  const char str_lit01[] = "wostream_seeks-1.txt";
+
+  // out
+  wostringstream ost1;
+  pos_type p1 = ost1.tellp();
+
+  wofstream ofs1;
+  pos_type p2 = ofs1.tellp();
+
+  // N.B. We implement the resolution of DR 453 and
+  // ostringstream::tellp() doesn't fail.
+  VERIFY( p1 == pos_type(off_type(0)) );
+  VERIFY( p2 == pos_type(off_type(-1)) );
+
+  // out
+  // test ctors leave things in the same positions...
+  wostringstream ost2(L"bob_marley:kaya");
+  p1 = ost2.tellp();
+
+  wofstream ofs2(str_lit01);
+  p2 = ofs2.tellp();
+  VERIFY( p1 == p2 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/2.cc
new file mode 100644 (file)
index 0000000..78834b2
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2005 Free Software Foundation
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+//
+
+#include <sstream>
+#include <ostream>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+  using namespace std;
+  typedef std::wstringbuf::pos_type        pos_type;
+  typedef std::wstringbuf::off_type        off_type;
+  bool test __attribute__((unused)) = true;
+
+  // tellp
+  wostringstream ost;
+  pos_type pos1;
+  pos1 = ost.tellp();
+  VERIFY( pos1 == pos_type(off_type(0)) );
+  ost << L"RZA ";
+  pos1 = ost.tellp();
+  VERIFY( pos1 == pos_type(off_type(4)) );
+  ost << L"ghost dog: way of the samurai";
+  pos1 = ost.tellp();
+  VERIFY( pos1 == pos_type(off_type(33)) );
+}                                    
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc
new file mode 100644 (file)
index 0000000..095fae4
--- /dev/null
@@ -0,0 +1,66 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <ostream>
+#include <streambuf>
+#include <sstream>
+#include <testsuite_hooks.h>
+#include <testsuite_io.h>
+
+using namespace std;
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+  __gnu_test::fail_wstreambuf bib;
+  wostream stream(&bib);
+  stream.exceptions(ios_base::badbit);
+
+  try
+    {
+      stream.tellp();
+      VERIFY( false );
+    }
+  catch (const __gnu_test::positioning_error&) 
+    {
+      // stream should set badbit and rethrow facet_error.
+      VERIFY( stream.bad() );
+      VERIFY( (stream.rdstate() & ios_base::failbit) == 0 );
+      VERIFY( !stream.eof() );
+    }
+  catch (...) 
+    {
+      VERIFY(false);
+    }
+}
+
+// libstdc++/9546
+int main()
+{
+  test01();
+  return 0;
+}
index 2cb7f48..22cd5c0 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-09-22  Petur Runolfsson  <peturr02@ru.is>
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2005 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -35,7 +35,8 @@
 class Buf : public std::streambuf
 {
 protected:
-  virtual int_type overflow(int_type = traits_type::eof())
+  virtual int_type
+  overflow(int_type = traits_type::eof())
   { throw 0; }
 };
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/write/wchar_t/1.cc
new file mode 100644 (file)
index 0000000..e682101
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright (C) 2005 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 27.6.2.6 Unformatted output functions
+//
+// _GLIBCXX_RESOLVE_LIB_DEFECTS
+// DR 60. What is a formatted input function?
+// basic_ostream::write(const char_type*, streamsize) is an unformatted
+// output function.
+// DR 63. Exception-handling policy for unformatted output.
+// Unformatted output functions should catch exceptions thrown
+// from streambuf members.
+
+#include <ostream>
+#include <streambuf>
+#include <testsuite_hooks.h>
+
+class Buf : public std::wstreambuf
+{
+protected:
+  virtual int_type
+  overflow(int_type = traits_type::eof())
+  { throw 0; }
+};
+
+void test01()
+{
+  bool test = true;
+
+  Buf buf;
+  std::wostream os(&buf);
+
+  VERIFY( os.good() );
+
+  os.write(L"a", 1);
+
+  VERIFY( os.rdstate() == std::ios_base::badbit );
+
+  os.clear();
+  os.exceptions(std::ios_base::badbit);
+
+  try
+    {
+      os.write(L"b", 1);
+      VERIFY( false );
+    }
+  catch (int)
+    {
+      VERIFY( os.rdstate() == std::ios_base::badbit );
+    }
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_char-1.tst b/libstdc++-v3/testsuite/data/wostream_inserter_char-1.tst
new file mode 100644 (file)
index 0000000..0b0acc8
--- /dev/null
@@ -0,0 +1,1000 @@
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_char-1.txt b/libstdc++-v3/testsuite/data/wostream_inserter_char-1.txt
new file mode 100644 (file)
index 0000000..0b0acc8
--- /dev/null
@@ -0,0 +1,1000 @@
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
+123456789
diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst b/libstdc++-v3/testsuite/data/wostream_inserter_other-1.tst
new file mode 100644 (file)
index 0000000..cb3c57f
--- /dev/null
@@ -0,0 +1,158 @@
+// 990117 bkoz
+// test functionality of basic_filebuf for char_type == char
+// this is a data file for 27filebuf.cc
+
+// Copyright (C) 1997-1999 Cygnus Solutions
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme
+/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow
+
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose
+
+/mnt/cdrom/marley-songs_of_freedom/disk_1/
+/mnt/cdrom/marley-songs_of_freedom/disk_2/
+/mnt/cdrom/marley-songs_of_freedom/disk_4/
+
+/mnt/cdrom/marley-songs_of_freedom/disk_1/back out
+/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low
+/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka)
+/mnt/cdrom/marley-songs_of_freedom/disk_1/caution
+/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice
+/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat
+/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror
+/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer
+/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites
+/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting
+/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not
+/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood
+/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown
+/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time
+/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee
+/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready
+/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on
+/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down
+/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe
+/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel
+/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party
+/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original)
+/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining
+/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original)
+/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley
+/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin'
+/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle
+/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy
+/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up
+/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly
+/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide
+/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff
+/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside
+/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion
+/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba
+/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself
+/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread
+/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble
+/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant
+/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face
+/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver
+/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock
+/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite
+/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system
+/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card
+/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12
+/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12  mix
+/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah
+/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise
+/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop
+/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub
+/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up
+/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation
+/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi
+/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12  mix)
+/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl
+/mnt/cdrom/marley-songs_of_freedom/disk_4/survival
+/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un
+/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe
+
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not
+/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue
+
+/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands
+/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds
+/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again
+/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing
+/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone
+/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know
+/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave
+/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be
+/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul
+
+So I take a break, wander down to the park to stand, then lean into
+the concrete railing demarking the beginnings of space, oceanic
+space. I watch the waves break, and form, and ease back out to sea and
+wrap my arms around myself and hug tightly because it's early in the
+morning and windy, and the sun is late getting out of bed today, which
+is good because if there was brilliant light illuminating all the
+beauty around me I would be shocked, stunned, forced to retreat back
+into my cabana in a daze, blinded by hummingbirds and callilillies and
+un-named red, yellow, and blue flowers. Green envelopes me, waves
+sooth me. I can see the wind flip the top of the waves seaward, right
+before they break. The sea seems so calm from my perch above the fray
+that I wonder if maybe there is just some part of the deepest, most
+abstract ocean where there is a large creature who happily chews
+plankton and wags its tail in gentle, adulating waves that spread and
+move and gracefully glide thousands of miles, to crash upon a beach,
+one after the other, politely waiting for a turn to dance with the
+seashore.
+
+I know: it is what the Mexican schoolchildren call "la vibora de la
+mer," the serpent of the sea.
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst b/libstdc++-v3/testsuite/data/wostream_inserter_other-2.tst
new file mode 100644 (file)
index 0000000..cb3c57f
--- /dev/null
@@ -0,0 +1,158 @@
+// 990117 bkoz
+// test functionality of basic_filebuf for char_type == char
+// this is a data file for 27filebuf.cc
+
+// Copyright (C) 1997-1999 Cygnus Solutions
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+/mnt/cdrom/sarah_vaughan/sarah_vaughan.allofme
+/mnt/cdrom/sarah_vaughan/sarah_vaughan.speaklow
+
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_01_the_way_i_feel
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_02_seduction_kidnap
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_03_just_a_ny_poem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_04_butterflies_i_remem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_05_luxury_poem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_06_my_house
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_07_the_women_gather
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_08_the_life_i_led
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_09_when_i_die
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_10_revolutionary_dreams
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_11_winter_poem
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_12_a_certain_peace_i_nap
+/mnt/cdrom/nikkigiovanni_thewayifeel/ng_13_poem_for_a_lady_whose
+
+/mnt/cdrom/marley-songs_of_freedom/disk_1/
+/mnt/cdrom/marley-songs_of_freedom/disk_2/
+/mnt/cdrom/marley-songs_of_freedom/disk_4/
+
+/mnt/cdrom/marley-songs_of_freedom/disk_1/back out
+/mnt/cdrom/marley-songs_of_freedom/disk_1/bend down low
+/mnt/cdrom/marley-songs_of_freedom/disk_1/bus dem shut (pyaka)
+/mnt/cdrom/marley-songs_of_freedom/disk_1/caution
+/mnt/cdrom/marley-songs_of_freedom/disk_1/do it twice
+/mnt/cdrom/marley-songs_of_freedom/disk_1/don't rock the boat
+/mnt/cdrom/marley-songs_of_freedom/disk_1/duppy conqueror
+/mnt/cdrom/marley-songs_of_freedom/disk_1/hammer
+/mnt/cdrom/marley-songs_of_freedom/disk_1/hypocrites
+/mnt/cdrom/marley-songs_of_freedom/disk_1/i'm still waiting
+/mnt/cdrom/marley-songs_of_freedom/disk_1/judge not
+/mnt/cdrom/marley-songs_of_freedom/disk_1/mellow mood
+/mnt/cdrom/marley-songs_of_freedom/disk_1/mr brown
+/mnt/cdrom/marley-songs_of_freedom/disk_1/nice time
+/mnt/cdrom/marley-songs_of_freedom/disk_1/one cup of coffee
+/mnt/cdrom/marley-songs_of_freedom/disk_1/one love_people get ready
+/mnt/cdrom/marley-songs_of_freedom/disk_1/put it on
+/mnt/cdrom/marley-songs_of_freedom/disk_1/simmer down
+/mnt/cdrom/marley-songs_of_freedom/disk_1/small axe
+/mnt/cdrom/marley-songs_of_freedom/disk_1/soul rebel
+/mnt/cdrom/marley-songs_of_freedom/disk_1/soul shake down party
+/mnt/cdrom/marley-songs_of_freedom/disk_1/stir it up (original)
+/mnt/cdrom/marley-songs_of_freedom/disk_1/sun is shining
+/mnt/cdrom/marley-songs_of_freedom/disk_1/thank you lord (original)
+/mnt/cdrom/marley-songs_of_freedom/disk_2/acoustic medley
+/mnt/cdrom/marley-songs_of_freedom/disk_2/burnin' and lootin'
+/mnt/cdrom/marley-songs_of_freedom/disk_2/concrete jungle
+/mnt/cdrom/marley-songs_of_freedom/disk_2/craven choke puppy
+/mnt/cdrom/marley-songs_of_freedom/disk_2/get up stand up
+/mnt/cdrom/marley-songs_of_freedom/disk_2/guava jelly
+/mnt/cdrom/marley-songs_of_freedom/disk_2/high tide or low tide
+/mnt/cdrom/marley-songs_of_freedom/disk_2/i shot the sheriff
+/mnt/cdrom/marley-songs_of_freedom/disk_2/i'm hurting inside
+/mnt/cdrom/marley-songs_of_freedom/disk_2/iron lion zion
+/mnt/cdrom/marley-songs_of_freedom/disk_2/lick samba
+/mnt/cdrom/marley-songs_of_freedom/disk_2/lively up yourself
+/mnt/cdrom/marley-songs_of_freedom/disk_2/natty dread
+/mnt/cdrom/marley-songs_of_freedom/disk_2/no more trouble
+/mnt/cdrom/marley-songs_of_freedom/disk_2/rastaman chant
+/mnt/cdrom/marley-songs_of_freedom/disk_2/screw face
+/mnt/cdrom/marley-songs_of_freedom/disk_2/slave driver
+/mnt/cdrom/marley-songs_of_freedom/disk_2/trenchtown rock
+/mnt/cdrom/marley-songs_of_freedom/disk_4/africa unite
+/mnt/cdrom/marley-songs_of_freedom/disk_4/babylon system
+/mnt/cdrom/marley-songs_of_freedom/disk_4/bad card
+/mnt/cdrom/marley-songs_of_freedom/disk_4/coming in from the cold (12
+/mnt/cdrom/marley-songs_of_freedom/disk_4/could you be loved (12  mix
+/mnt/cdrom/marley-songs_of_freedom/disk_4/forever loving jah
+/mnt/cdrom/marley-songs_of_freedom/disk_4/give thanks and praise
+/mnt/cdrom/marley-songs_of_freedom/disk_4/one drop
+/mnt/cdrom/marley-songs_of_freedom/disk_4/one dub
+/mnt/cdrom/marley-songs_of_freedom/disk_4/rastaman live up
+/mnt/cdrom/marley-songs_of_freedom/disk_4/real situation
+/mnt/cdrom/marley-songs_of_freedom/disk_4/redemption song (live in pi
+/mnt/cdrom/marley-songs_of_freedom/disk_4/ride natty ride (12  mix)
+/mnt/cdrom/marley-songs_of_freedom/disk_4/so much trouble in the worl
+/mnt/cdrom/marley-songs_of_freedom/disk_4/survival
+/mnt/cdrom/marley-songs_of_freedom/disk_4/why should i (previously un
+/mnt/cdrom/marley-songs_of_freedom/disk_4/zimbabwe
+
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_01_pandemonium
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_02_sync_disjecta
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_03_object_unknown
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_04_it's_nice_not
+/mnt/cdrom/dj_spooky_rid-2dim_warefare/djspooky_05_dialectical_tra
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_06_post-human_soph
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_07_quilombo_ex
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_08_rekonstruction
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_09_scientifik
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_10_a_conversation
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_11_peace_in_zaire
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_13_degree_zero
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_14_roman_planeta
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_15_bass_digitalis
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_16_polyphony_of
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_17_riddim_warfare
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_18_the_nerd
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_20_theme_of_the
+/mnt/cdrom/dj_spooky_riddim_warefare/djspooky_21_twilight_fugue
+
+/mnt/cdrom/stuff_smith_mosaic/disk3/01_desert_sands
+/mnt/cdrom/stuff_smith_mosaic/disk3/02_soft_winds
+/mnt/cdrom/stuff_smith_mosaic/disk3/03_time_and_again
+/mnt/cdrom/stuff_smith_mosaic/disk3/04_it_don't_mean_a_thing
+/mnt/cdrom/stuff_smith_mosaic/disk3/05_in_a_mellotone
+/mnt/cdrom/stuff_smith_mosaic/disk3/06_i_know_that_you_know
+/mnt/cdrom/stuff_smith_mosaic/disk3/07_heat_wave
+/mnt/cdrom/stuff_smith_mosaic/disk3/08_things_ain't_what_they_used_to_be
+/mnt/cdrom/stuff_smith_mosaic/disk3/09_body_and_soul
+
+So I take a break, wander down to the park to stand, then lean into
+the concrete railing demarking the beginnings of space, oceanic
+space. I watch the waves break, and form, and ease back out to sea and
+wrap my arms around myself and hug tightly because it's early in the
+morning and windy, and the sun is late getting out of bed today, which
+is good because if there was brilliant light illuminating all the
+beauty around me I would be shocked, stunned, forced to retreat back
+into my cabana in a daze, blinded by hummingbirds and callilillies and
+un-named red, yellow, and blue flowers. Green envelopes me, waves
+sooth me. I can see the wind flip the top of the waves seaward, right
+before they break. The sea seems so calm from my perch above the fray
+that I wonder if maybe there is just some part of the deepest, most
+abstract ocean where there is a large creature who happily chews
+plankton and wags its tail in gentle, adulating waves that spread and
+move and gracefully glide thousands of miles, to crash upon a beach,
+one after the other, politely waiting for a turn to dance with the
+seashore.
+
+I know: it is what the Mexican schoolchildren call "la vibora de la
+mer," the serpent of the sea.
+
+
+
+
+
diff --git a/libstdc++-v3/testsuite/data/wostream_seeks-1.tst b/libstdc++-v3/testsuite/data/wostream_seeks-1.tst
new file mode 100644 (file)
index 0000000..e69de29