Skip to content

Commit

Permalink
feat: alloc console for debugging
Browse files Browse the repository at this point in the history
  • Loading branch information
yulon committed Jul 29, 2023
1 parent 994a19d commit 77ae88b
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions include/rua/stdio/win32.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,32 @@ class _basic_stdio_stream : public stream_base {
using native_handle_t = HANDLE;

virtual ssize_t read(bytes_ref p) {
return sys_stream(GetStdHandle(Id), false).read(p);
return sys_stream(native_handle(), false).read(p);
}

virtual ssize_t write(bytes_view p) {
return sys_stream(GetStdHandle(Id), false).write(p);
return sys_stream(native_handle(), false).write(p);
}

native_handle_t native_handle() const {
return GetStdHandle(Id);
auto h = GetStdHandle(Id);
#ifndef NDEBUG
if (!h) {
static auto has_con = AllocConsole();
if (has_con) {
h = GetStdHandle(Id);
}
}
#endif
return h;
}

operator sys_stream() const {
return sys_stream(GetStdHandle(Id), false);
return sys_stream(native_handle(), false);
}

virtual operator bool() const {
return GetStdHandle(Id);
return native_handle();
}

_basic_stdio_stream &operator=(sys_stream s) {
Expand Down

0 comments on commit 77ae88b

Please sign in to comment.