From 0368962ed413fe5a6650064d1078ea3d51533135 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Thu, 18 Apr 2013 14:58:53 +0100
Subject: [PATCH] BUG: CSV: binary writing

---
 .../tableReaders/csv/csvTableReader.C             | 15 ++++++++++++---
 .../primitives/functions/DataEntry/CSV/CSVIO.C    | 13 +++++++++++--
 2 files changed, 23 insertions(+), 5 deletions(-)

diff --git a/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C b/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C
index b71e274842a..09faf41fd7b 100644
--- a/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C
+++ b/src/OpenFOAM/interpolations/interpolationTable/tableReaders/csv/csvTableReader.C
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
+    \\  /    A nd           | Copyright (C) 2011-2013 OpenFOAM Foundation
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
 License
@@ -182,8 +182,17 @@ void Foam::csvTableReader<Type>::write(Ostream& os) const
         << headerLine_ << token::END_STATEMENT << nl;
     os.writeKeyword("timeColumn")
         << timeColumn_ << token::END_STATEMENT << nl;
-    os.writeKeyword("valueColumns")
-        << componentColumns_ << token::END_STATEMENT << nl;
+
+    // Force writing labelList in ascii
+    os.writeKeyword("valueColumns");
+    if (os.format() == IOstream::BINARY)
+    {
+        os.format(IOstream::ASCII);
+        os  << componentColumns_;
+        os.format(IOstream::BINARY);
+    }
+    os  << token::END_STATEMENT << nl;
+
     os.writeKeyword("separator")
         << string(separator_) << token::END_STATEMENT << nl;
 }
diff --git a/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSVIO.C b/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSVIO.C
index 36595e7dd6d..1dd395cee0d 100644
--- a/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSVIO.C
+++ b/src/OpenFOAM/primitives/functions/DataEntry/CSV/CSVIO.C
@@ -74,8 +74,17 @@ void Foam::CSV<Type>::writeData(Ostream& os) const
     os.writeKeyword("nHeaderLine") << nHeaderLine_ << token::END_STATEMENT
         << nl;
     os.writeKeyword("refColumn") << refColumn_ << token::END_STATEMENT << nl;
-    os.writeKeyword("componentColumns") << componentColumns_
-        << token::END_STATEMENT << nl;
+
+    // Force writing labelList in ascii
+    os.writeKeyword("componentColumns");
+    if (os.format() == IOstream::BINARY)
+    {
+        os.format(IOstream::ASCII);
+        os  << componentColumns_;
+        os.format(IOstream::BINARY);
+    }
+    os  << token::END_STATEMENT << nl;
+
     os.writeKeyword("separator") << string(separator_)
         << token::END_STATEMENT << nl;
     os.writeKeyword("mergeSeparators") << string(mergeSeparators_)
-- 
GitLab