aboutsummaryrefslogtreecommitdiff
path: root/libbutl/fdstream.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'libbutl/fdstream.ixx')
-rw-r--r--libbutl/fdstream.ixx23
1 files changed, 23 insertions, 0 deletions
diff --git a/libbutl/fdstream.ixx b/libbutl/fdstream.ixx
index a877699..5181903 100644
--- a/libbutl/fdstream.ixx
+++ b/libbutl/fdstream.ixx
@@ -3,6 +3,7 @@
// license : MIT; see accompanying LICENSE file
#include <cassert>
+#include <iterator>
namespace butl
{
@@ -118,6 +119,28 @@ namespace butl
return buf_.release ();
}
+ inline std::string ifdstream::
+ read_text ()
+ {
+ std::string s;
+
+ // Note that the eof check is important: if the stream is at eof (empty
+ // file) then getline() will fail.
+ //
+ if (peek () != traits_type::eof ())
+ butl::getline (*this, s, '\0'); // Hidden by istream::getline().
+
+ return s;
+ }
+
+ inline std::vector<char> ifdstream::
+ read_binary ()
+ {
+ std::vector<char> v (std::istreambuf_iterator<char> (*this),
+ std::istreambuf_iterator<char> ());
+ return v;
+ }
+
// ofdstream
//
inline ofdstream::