diff --git a/src/OpenFOAM/db/IOstreams/IOstreams/IOstream.C b/src/OpenFOAM/db/IOstreams/IOstreams/IOstream.C index 775bac11c3..9dbfc829cd 100644 --- a/src/OpenFOAM/db/IOstreams/IOstreams/IOstream.C +++ b/src/OpenFOAM/db/IOstreams/IOstreams/IOstream.C @@ -26,6 +26,7 @@ License #include "IOstream.H" #include "error.H" +#include "Switch.H" #include // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -60,7 +61,14 @@ Foam::IOstream::formatEnum(const word& format) Foam::IOstream::compressionType Foam::IOstream::compressionEnum(const word& compression) { - if (compression == "uncompressed") + // get Switch (bool) value, but allow it to fail + Switch::switchType sw = Switch::asEnum(compression, true); + + if (sw != Switch::INVALID) + { + return sw ? IOstream::COMPRESSED : IOstream::UNCOMPRESSED; + } + else if (compression == "uncompressed") { return IOstream::UNCOMPRESSED; } @@ -115,7 +123,7 @@ Foam::string Foam::IOstream::versionNumber::str() const std::ostringstream os; os.precision(1); os.setf(ios_base::fixed, ios_base::floatfield); - os << versionNumber_; + os << versionNumber_; return os.str(); } @@ -202,11 +210,11 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const IOstream::streamFormat& sf) { if (sf == IOstream::ASCII) { - os << "ascii"; + os << "ascii"; } else { - os << "binary"; + os << "binary"; } return os; @@ -215,7 +223,7 @@ Foam::Ostream& Foam::operator<<(Ostream& os, const IOstream::streamFormat& sf) Foam::Ostream& Foam::operator<<(Ostream& os, const IOstream::versionNumber& vn) { - os << vn.str().c_str(); + os << vn.str().c_str(); return os; }