Skip to content
Snippets Groups Projects
Commit c7920505 authored by Jan Trávníček's avatar Jan Trávníček
Browse files

fix possible reading/writing from/to stdin/stdout

parent 0f63b81a
Branches
Tags
No related merge requests found
Pipeline #
......@@ -14,9 +14,15 @@ namespace cli {
 
namespace builtin {
 
std::string ReadFile::read ( const std::string & data ) {
std::ifstream t ( data );
return std::string ( ( std::istreambuf_iterator < char > ( t ) ), std::istreambuf_iterator < char > ( ) );
std::string ReadFile::read ( const std::string & filename ) {
if ( filename == "-" ) {
std::cin >> std::noskipws;
return std::string ( ( std::istreambuf_iterator < char > ( std::cin ) ), std::istreambuf_iterator < char > ( ) );
} else {
std::ifstream t ( filename );
t >> std::noskipws;
return std::string ( ( std::istreambuf_iterator < char > ( t ) ), std::istreambuf_iterator < char > ( ) );
}
}
 
auto ReadFileString = registration::AbstractRegister < ReadFile, std::string, const std::string & > ( ReadFile::read );
......
......@@ -14,7 +14,10 @@ namespace cli {
namespace builtin {
 
void WriteFile::write ( const std::string & filename, const std::string & data ) {
std::ofstream ( filename ) << data;
if ( filename == "-" )
std::cout << data;
else
std::ofstream ( filename ) << data;
}
 
auto WriteFileString = registration::AbstractRegister < WriteFile, void, const std::string &, const std::string & > ( WriteFile::write );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment