diff --git a/libsolutil/CommonIO.cpp b/libsolutil/CommonIO.cpp index c933c552e..719ade34f 100644 --- a/libsolutil/CommonIO.cpp +++ b/libsolutil/CommonIO.cpp @@ -68,14 +68,14 @@ string solidity::util::readFileAsString(string const& _file) return readFile(_file); } -string solidity::util::readStandardInput() +string solidity::util::readStream(istream& _stream) { string ret; - while (!cin.eof()) + while (!_stream.eof()) { string tmp; // NOTE: this will read until EOF or NL - getline(cin, tmp); + getline(_stream, tmp); ret.append(tmp); ret.append("\n"); } diff --git a/libsolutil/CommonIO.h b/libsolutil/CommonIO.h index 88f7f9b5c..cbf2bd180 100644 --- a/libsolutil/CommonIO.h +++ b/libsolutil/CommonIO.h @@ -36,8 +36,11 @@ namespace solidity::util /// If the file is empty, returns an empty string. std::string readFileAsString(std::string const& _file); +/// Returns the contents of the stream (until EOF). +std::string readStream(std::istream& _stream); + /// Retrieve and returns the contents of standard input (until EOF). -std::string readStandardInput(); +inline std::string readStandardInput() { return readStream(std::cin); } /// Retrieve and returns a character from standard input (without waiting for EOL). int readStandardInputChar();