summaryrefslogtreecommitdiff
path: root/lib/spdlog/fmt/bundled/ostream.cc
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2018-06-27 16:59:39 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2018-06-27 16:59:39 +0200
commitf1187001ebc5b9ad18d5b5992c75bd682e367b42 (patch)
tree134ca05c369ac09dd7fa5f51285cc7176d62c385 /lib/spdlog/fmt/bundled/ostream.cc
parentb84c8622d092fd773888eed89f1dbffb2c3a57f7 (diff)
parent8111b77e95b083137faf888aeb5892073adf7ab4 (diff)
Update upstream source from tag 'upstream/2.0.0'
Update to upstream version '2.0.0' with Debian dir 112f2f2cb91158baaf8ee3a1f623980b43a258ce
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