diff --git a/tree/tree/src/TTree.cxx b/tree/tree/src/TTree.cxx index ebcc8b110634d..3bd08956b5cb7 100644 --- a/tree/tree/src/TTree.cxx +++ b/tree/tree/src/TTree.cxx @@ -384,6 +384,7 @@ End_Macro #include #include +#include #include #include #include @@ -6989,8 +6990,23 @@ char TTree::GetNewlineValue(std::istream &inputStream) Long64_t TTree::ReadStream(std::istream& inputStream, const char *branchDescriptor, char delimiter) { - char newline = GetNewlineValue(inputStream); - std::istream& in = inputStream; + char newline = 0; + std::stringstream ss; + std::istream *inTemp; + Long_t inPos = inputStream.tellg(); + if (!inputStream.good()) { + Error("ReadStream","Error reading stream"); + return 0; + } + if(inPos == -1){ + ss << std::cin.rdbuf(); + newline = GetNewlineValue(ss); + inTemp = &ss; + } else { + newline = GetNewlineValue(inputStream); + inTemp = &inputStream; + } + std::istream& in = *inTemp; Long64_t nlines = 0; TBranch *branch = 0;