From 7193114b152d3a5b714a22f54ed89950c0ba9aba Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Mon, 14 Oct 2024 22:44:52 +0200 Subject: Use libc instead of Win32 --- asl/BUILD.bazel | 2 +- asl/print.cpp | 31 +++++++++++++++++++++++++++++++ asl/print_win32.cpp | 33 --------------------------------- 3 files changed, 32 insertions(+), 34 deletions(-) create mode 100644 asl/print.cpp delete mode 100644 asl/print_win32.cpp (limited to 'asl') diff --git a/asl/BUILD.bazel b/asl/BUILD.bazel index f904624..f0d4c27 100644 --- a/asl/BUILD.bazel +++ b/asl/BUILD.bazel @@ -16,7 +16,7 @@ cc_library( ], srcs = [ "format.cpp", - "print_win32.cpp", + "print.cpp", ], visibility = ["//visibility:public"], ) diff --git a/asl/print.cpp b/asl/print.cpp new file mode 100644 index 0000000..6e43bb3 --- /dev/null +++ b/asl/print.cpp @@ -0,0 +1,31 @@ +#include "asl/print.hpp" + +#include + +// @Todo Optimize this, maybe make buffered +class ConsoleWriter : public asl::writer +{ + FILE* m_handle; + +public: + explicit ConsoleWriter(FILE* handle) + : m_handle{handle} + {} + + void write(const char* str, int64_t len) override + { + fwrite(str, 1, static_cast(len), m_handle); + } +}; + +asl::writer* asl::print_internals::get_stdout_writer() +{ + static ConsoleWriter writer{stdout}; + return &writer; +} + +asl::writer* asl::print_internals::get_stderr_writer() +{ + static ConsoleWriter writer{stderr}; + return &writer; +} diff --git a/asl/print_win32.cpp b/asl/print_win32.cpp deleted file mode 100644 index 45939b2..0000000 --- a/asl/print_win32.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "asl/print.hpp" - -#define WIN32_LEAN_AND_MEAN -#include - -// @Todo Optimize this, maybe make buffered -class Win32ConsoleWriter : public asl::writer -{ - HANDLE m_handle; - -public: - explicit Win32ConsoleWriter(HANDLE handle) - : m_handle{handle} - {} - - void write(const char* str, int64_t len) override - { - ::WriteConsoleA(m_handle, str, static_cast(len), nullptr, nullptr); - } -}; - -asl::writer* asl::print_internals::get_stdout_writer() -{ - static Win32ConsoleWriter writer{::GetStdHandle(STD_OUTPUT_HANDLE)}; - return &writer; -} - -asl::writer* asl::print_internals::get_stderr_writer() -{ - static Win32ConsoleWriter writer{::GetStdHandle(STD_ERROR_HANDLE)}; - return &writer; -} - -- cgit