From d920e5d62020d751ccaa3491cc66275ade749011 Mon Sep 17 00:00:00 2001 From: quou Date: Fri, 27 Dec 2024 18:52:48 +1100 Subject: building and running on windows with visual studio --- qstd/plat.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'qstd/plat.c') diff --git a/qstd/plat.c b/qstd/plat.c index 61385ff..7f07b96 100644 --- a/qstd/plat.c +++ b/qstd/plat.c @@ -84,3 +84,73 @@ void pbreak(int code) { } #endif + +#ifdef plat_win + +#define _POSIX_SOURCE +#define _GNU_SOURCE + +#include +#include + +#include +#include +#include + +int imp_assert( + int val, + const char* expr, + const char* file, + int line +) { + if (!val) { + print_err( + "%d:%s: Assertion failed: %s.\n", + line, + file, + expr + ); + pbreak(420); + return 0; + } + return 1; +} + +void print(const char* fmt, ...) { + char buf[1024]; + va_list args; + va_start(args, fmt); + vsprintf(buf, fmt, args); + va_end(args); + OutputDebugStringA(buf); +} + +void print_err(const char* fmt, ...) { + char buf[1024]; + va_list args; + va_start(args, fmt); + vsprintf(buf, fmt, args); + va_end(args); + OutputDebugStringA(buf); +} + +void print_war(const char* fmt, ...) { + char buf[1024]; + va_list args; + va_start(args, fmt); + vsprintf(buf, fmt, args); + va_end(args); + OutputDebugStringA(buf); +} + +void pbreak(int code) { +#if defined(DEBUG) && defined(plat_x86) + __debugbreak(); + (void)code; +#else + exit(code); +#endif +} + + +#endif \ No newline at end of file -- cgit v1.2.3-54-g00ecf