diff --git a/alib2cli/src/builtin/ReadFile.cpp b/alib2cli/src/builtin/ReadFile.cpp index 605b0a67e1cc56e7e0f6ca9b4d5c78c33d9b0512..a9e45bf7a9a245301011edf1d2b0bf3062ba1c01 100644 --- a/alib2cli/src/builtin/ReadFile.cpp +++ b/alib2cli/src/builtin/ReadFile.cpp @@ -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 ); diff --git a/alib2cli/src/builtin/WriteFile.cpp b/alib2cli/src/builtin/WriteFile.cpp index 88761ff055174603c85fc5af725bd525f3ed162d..e17baf974fc51505c623790a39a5fe457986d80e 100644 --- a/alib2cli/src/builtin/WriteFile.cpp +++ b/alib2cli/src/builtin/WriteFile.cpp @@ -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 );