summaryrefslogtreecommitdiff
path: root/asl
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2024-10-14 22:44:52 +0200
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2024-12-20 15:35:58 +0100
commit7193114b152d3a5b714a22f54ed89950c0ba9aba (patch)
tree7d42317b3ca11239e9135ea13d7788f924cc107c /asl
parentf011d871ef3af26c8f4e19de2c8d781c601ceffb (diff)
Use libc instead of Win32
Diffstat (limited to 'asl')
-rw-r--r--asl/BUILD.bazel2
-rw-r--r--asl/print.cpp31
-rw-r--r--asl/print_win32.cpp33
3 files changed, 32 insertions, 34 deletions
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 <cstdio>
+
+// @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<size_t>(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 <Windows.h>
-
-// @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<DWORD>(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;
-}
-