summaryrefslogtreecommitdiff
path: root/lib/spdlog/fmt/bundled/ostream.cc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2018-07-09 14:11:07 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2018-07-09 14:11:07 +0200
commit9033aee6c281674e5d3d64e2f07bd8f7e7bbe694 (patch)
treea8748b55127d6be88e4b71b1dddf5985daac6a94 /lib/spdlog/fmt/bundled/ostream.cc
parentb84c8622d092fd773888eed89f1dbffb2c3a57f7 (diff)
parentcb4fdfae7c68f6f4eef5893769f4b885bcb48186 (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'lib/spdlog/fmt/bundled/ostream.cc')
-rw-r--r--lib/spdlog/fmt/bundled/ostream.cc35
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