From 3ee5428ec45658db1dc00a2b9bdef08ad3eb5bcb Mon Sep 17 00:00:00 2001 From: bkoz Date: Fri, 23 Jun 2000 22:21:47 +0000 Subject: [PATCH] 2000-06-23 Benjamin Kosnik * bits/std_fstream.h: Formatting tweaks. * testsuite/27_io/ofstream_members.cc: New file. * testsuite/27_io/ofstream_members-1.tst: New file. * testsuite/27_io/ifstream_members.cc: New file. * testsuite/27_io/ifstream_members-1.tst: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34671 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 8 +++ libstdc++-v3/bits/std_fstream.h | 6 +-- .../testsuite/27_io/ifstream_members-1.tst | 0 libstdc++-v3/testsuite/27_io/ifstream_members.cc | 60 ++++++++++++++++++++++ .../testsuite/27_io/ofstream_members-1.tst | 0 libstdc++-v3/testsuite/27_io/ofstream_members.cc | 60 ++++++++++++++++++++++ 6 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 libstdc++-v3/testsuite/27_io/ifstream_members-1.tst create mode 100644 libstdc++-v3/testsuite/27_io/ifstream_members.cc create mode 100644 libstdc++-v3/testsuite/27_io/ofstream_members-1.tst create mode 100644 libstdc++-v3/testsuite/27_io/ofstream_members.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 19f3bc88f02..0c20b3ddcc3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,4 +1,12 @@ 2000-06-23 Benjamin Kosnik + + * bits/std_fstream.h: Formatting tweaks. + * testsuite/27_io/ofstream_members.cc: New file. + * testsuite/27_io/ofstream_members-1.tst: New file. + * testsuite/27_io/ifstream_members.cc: New file. + * testsuite/27_io/ifstream_members-1.tst: New file. + +2000-06-23 Benjamin Kosnik Ulrich Drepper * acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Add -D_GNU_SOURCE, so diff --git a/libstdc++-v3/bits/std_fstream.h b/libstdc++-v3/bits/std_fstream.h index 3178c820a47..158623e6ca0 100644 --- a/libstdc++-v3/bits/std_fstream.h +++ b/libstdc++-v3/bits/std_fstream.h @@ -1,6 +1,6 @@ // File based streams -*- C++ -*- -// Copyright (C) 1997-1999 Free Software Foundation, Inc. +// Copyright (C) 1997-1999, 2000 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 @@ -291,14 +291,14 @@ namespace std { ios_base::openmode __mode = ios_base::out | ios_base::trunc) { if (!rdbuf()->open(__s, __mode | ios_base::out)) - this->setstate (ios_base::failbit); + this->setstate(ios_base::failbit); } void close(void) { if (!rdbuf()->close()) - setstate (ios_base::failbit); + setstate(ios_base::failbit); } }; diff --git a/libstdc++-v3/testsuite/27_io/ifstream_members-1.tst b/libstdc++-v3/testsuite/27_io/ifstream_members-1.tst new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libstdc++-v3/testsuite/27_io/ifstream_members.cc b/libstdc++-v3/testsuite/27_io/ifstream_members.cc new file mode 100644 index 00000000000..9b4107a6605 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/ifstream_members.cc @@ -0,0 +1,60 @@ +// Copyright (C) 2000 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.8.1.7 ifstream member functions + +#include +#include +#ifdef DEBUG_ASSERT + #include +#endif + +const char name_01[] = "testsuite/ifstream_members-1.tst"; +const char name_02[] = "testsuite/ifstream_members-1.txt"; + +// http://sourceware.cygnus.com/ml/libstdc++/2000-06/msg00136.html +bool test00() +{ + bool test = true; + std::ifstream ifs1; + ifs1.close(); + + // false as expected: + test &= !ifs1.is_open(); + // this is now true: + test &= !(ifs1); + + ifs1.open(name_01); + test &= ifs1.is_open(); + // fail bit still true + test &= !(ifs1); + test &= ifs1.rdstate() == std::ios_base::failbit; + + ifs1.close(); + +#ifdef DEBUG_ASSERT + assert(test); +#endif + + return test; +} + +int main() +{ + test00(); +} diff --git a/libstdc++-v3/testsuite/27_io/ofstream_members-1.tst b/libstdc++-v3/testsuite/27_io/ofstream_members-1.tst new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libstdc++-v3/testsuite/27_io/ofstream_members.cc b/libstdc++-v3/testsuite/27_io/ofstream_members.cc new file mode 100644 index 00000000000..0b52519c078 --- /dev/null +++ b/libstdc++-v3/testsuite/27_io/ofstream_members.cc @@ -0,0 +1,60 @@ +// Copyright (C) 2000 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.8.1.10 ofstream member functions + +#include +#include +#ifdef DEBUG_ASSERT + #include +#endif + +const char name_01[] = "testsuite/ofstream_members-1.tst"; +const char name_02[] = "testsuite/ofstream_members-1.txt"; + +// http://sourceware.cygnus.com/ml/libstdc++/2000-06/msg00136.html +bool test00() +{ + bool test = true; + std::ofstream ofs1; + ofs1.close(); + + // false as expected: + test &= !ofs1.is_open(); + // this is now true: + test &= !(ofs1); + + ofs1.open(name_02); + test &= ofs1.is_open(); + // fail bit still true + test &= !(ofs1); + test &= ofs1.rdstate() == std::ios_base::failbit; + + ofs1.close(); + +#ifdef DEBUG_ASSERT + assert(test); +#endif + + return test; +} + +int main() +{ + test00(); +} -- 2.11.0