From c045891c4ca88f797787086476bb32b265d3f613 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Sun, 29 Nov 2020 12:58:10 +0100 Subject: [PATCH 1/2] Use fmtlib for output message --- src/opm/parser/eclipse/Parser/Parser.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/opm/parser/eclipse/Parser/Parser.cpp b/src/opm/parser/eclipse/Parser/Parser.cpp index c956db93e..96f3ac396 100644 --- a/src/opm/parser/eclipse/Parser/Parser.cpp +++ b/src/opm/parser/eclipse/Parser/Parser.cpp @@ -924,13 +924,9 @@ bool parseState( ParserState& parserState, const Parser& parser ) { const auto& kwname = rawKeyword->getKeywordName(); const auto& parserKeyword = parser.getParserKeywordFromDeckName( kwname ); { - std::stringstream ss; - const auto& location = rawKeyword->location(); - ss << std::setw(5) << parserState.deck.size() - << " Reading " << std::setw(8) << std::left << rawKeyword->getKeywordName() - << " in " << location.filename << " line " << std::to_string(location.lineno); - OpmLog::info(ss.str()); + auto msg = fmt::format("{:5} Reading {:<8} in {} line {}", parserState.deck.size(), rawKeyword->getKeywordName(), location.filename, location.lineno); + OpmLog::info(msg); } try { if (rawKeyword->getKeywordName() == Opm::RawConsts::pyinput) { From a42cd6433a158cec38005e68aca2163b6d5c2bd0 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Sun, 29 Nov 2020 12:59:05 +0100 Subject: [PATCH 2/2] Hold on to the ParserKeyword instance --- src/opm/parser/eclipse/Parser/Parser.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/opm/parser/eclipse/Parser/Parser.cpp b/src/opm/parser/eclipse/Parser/Parser.cpp index 96f3ac396..f6f81edda 100644 --- a/src/opm/parser/eclipse/Parser/Parser.cpp +++ b/src/opm/parser/eclipse/Parser/Parser.cpp @@ -753,6 +753,7 @@ std::unique_ptr tryParseKeyword( ParserState& parserState, const Par bool is_title = false; std::unique_ptr rawKeyword; std::string_view record_buffer(str::emptystr); + std::optional parserKeyword; while( !parserState.done() ) { auto line = parserState.getline(); @@ -782,12 +783,12 @@ std::unique_ptr tryParseKeyword( ParserState& parserState, const Par auto ptr = newRawKeyword( deck_name, parserState, parser, line ); if (ptr) { rawKeyword.reset( ptr ); - const auto& parserKeyword = parser.getParserKeywordFromDeckName(rawKeyword->getKeywordName()); + parserKeyword = parser.getParserKeywordFromDeckName(rawKeyword->getKeywordName()); if (deck_name == "UDT") { skipUDT(parserState, parser); return NULL; } - parserState.lastSizeType = parserKeyword.getSizeType(); + parserState.lastSizeType = parserKeyword->getSizeType(); parserState.lastKeyWord = deck_name; if (rawKeyword->isFinished()) return rawKeyword; @@ -801,10 +802,8 @@ std::unique_ptr tryParseKeyword( ParserState& parserState, const Par parserState.handleRandomText( line ); } } else { - const auto& parserKeyword = parser.getParserKeywordFromDeckName(rawKeyword->getKeywordName()); - if (rawKeyword->getSizeType() == Raw::CODE) { - auto end_pos = line.find(parserKeyword.codeEnd()); + auto end_pos = line.find(parserKeyword->codeEnd()); if (end_pos != std::string::npos) { std::string_view line_content = { line.begin(), end_pos}; record_buffer = str::update_record_buffer( record_buffer, line_content );