diff --git a/src/AsciiInputOutput.cc b/src/AsciiInputOutput.cc index dd7369e8eb..be15f44442 100644 --- a/src/AsciiInputOutput.cc +++ b/src/AsciiInputOutput.cc @@ -13,12 +13,21 @@ AsciiInputOutput::AsciiInputOutput(threading::MsgThread* t) } AsciiInputOutput::AsciiInputOutput(threading::MsgThread* t, const string & separator, const string & set_separator, - const string & empty_field, const string & unset_field) + const string & unset_field, const string & empty_field) { thread = t; this->separator = separator; this->set_separator = set_separator; + this->unset_field = unset_field; this->empty_field = empty_field; + } + +AsciiInputOutput::AsciiInputOutput(threading::MsgThread* t, const string & separator, const string & set_separator, + const string & unset_field) + { + thread = t; + this->separator = separator; + this->set_separator = set_separator; this->unset_field = unset_field; } @@ -275,7 +284,7 @@ threading::Value* AsciiInputOutput::EntryToVal(string s, string name, TypeTag ty unsigned int pos = 0; - if ( s.compare(empty_field) == 0 ) + if ( empty_field.size() > 0 && s.compare(empty_field) == 0 ) length = 0; threading::Value** lvals = new threading::Value* [length]; diff --git a/src/AsciiInputOutput.h b/src/AsciiInputOutput.h index 1dd2a4dce0..ba05fb85de 100644 --- a/src/AsciiInputOutput.h +++ b/src/AsciiInputOutput.h @@ -15,7 +15,13 @@ class AsciiInputOutput { // Constructor that defines all separators, etc. // Use if you need either ValToODesc or EntryToVal. AsciiInputOutput(threading::MsgThread*, const string & separator, const string & set_separator, - const string & empty_field, const string & unset_field); + const string & unset_field, const string & empty_field); + + // Constructor that defines all separators, etc, besides empty_field, which is not needed for many + // non-ascii-based io sources. + // Use if you need either ValToODesc or EntryToVal. + AsciiInputOutput(threading::MsgThread*, const string & separator, const string & set_separator, + const string & unset_field); ~AsciiInputOutput(); diff --git a/src/input/readers/Ascii.cc b/src/input/readers/Ascii.cc index 0965b556f2..0d45059a0f 100644 --- a/src/input/readers/Ascii.cc +++ b/src/input/readers/Ascii.cc @@ -68,7 +68,7 @@ Ascii::Ascii(ReaderFrontend *frontend) : ReaderBackend(frontend) unset_field.assign( (const char*) BifConst::InputAscii::unset_field->Bytes(), BifConst::InputAscii::unset_field->Len()); - io = new AsciiInputOutput(this, separator, set_separator, empty_field, unset_field); + io = new AsciiInputOutput(this, separator, set_separator, unset_field, empty_field); } Ascii::~Ascii() diff --git a/src/logging/writers/Ascii.cc b/src/logging/writers/Ascii.cc index 9f045c1813..c9ac42f774 100644 --- a/src/logging/writers/Ascii.cc +++ b/src/logging/writers/Ascii.cc @@ -52,7 +52,7 @@ Ascii::Ascii(WriterFrontend* frontend) : WriterBackend(frontend) desc.EnableEscaping(); desc.AddEscapeSequence(separator); - io = new AsciiInputOutput(this, separator, set_separator, empty_field, unset_field); + io = new AsciiInputOutput(this, separator, set_separator, unset_field, empty_field); } Ascii::~Ascii()