diff options
Diffstat (limited to 'lib/spdlog/fmt/bundled/ostream.cc')
| -rw-r--r-- | lib/spdlog/fmt/bundled/ostream.cc | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/spdlog/fmt/bundled/ostream.cc b/lib/spdlog/fmt/bundled/ostream.cc new file mode 100644 index 0000000..2d443f7 --- /dev/null +++ b/lib/spdlog/fmt/bundled/ostream.cc @@ -0,0 +1,35 @@ +/* + Formatting library for C++ - std::ostream support + + Copyright (c) 2012 - 2016, Victor Zverovich + All rights reserved. + + For the license information refer to format.h. + */ + +#include "ostream.h" + +namespace fmt { + +namespace internal { +FMT_FUNC void write(std::ostream &os, Writer &w) { +  const char *data = w.data(); +  typedef internal::MakeUnsigned<std::streamsize>::Type UnsignedStreamSize; +  UnsignedStreamSize size = w.size(); +  UnsignedStreamSize max_size = +      internal::to_unsigned((std::numeric_limits<std::streamsize>::max)()); +  do { +    UnsignedStreamSize n = size <= max_size ? size : max_size; +    os.write(data, static_cast<std::streamsize>(n)); +    data += n; +    size -= n; +  } while (size != 0); +} +} + +FMT_FUNC void print(std::ostream &os, CStringRef format_str, ArgList args) { +  MemoryWriter w; +  w.write(format_str, args); +  internal::write(os, w); +} +}  // namespace fmt  | 
