From 85c3c2cbc902312454bae6680aa182b995fcf2e4 Mon Sep 17 00:00:00 2001 From: ALittlePatate Date: Sun, 21 Jan 2024 12:54:19 +0100 Subject: [PATCH] add: dprintf for Windows --- src/api.c | 4 ++++ src/file_utils.c | 4 ++++ src/interpreter_states.c | 4 ++++ src/pasm.c | 16 ++++++++++++++++ 4 files changed, 28 insertions(+) diff --git a/src/api.c b/src/api.c index a6a0750..15b23e0 100644 --- a/src/api.c +++ b/src/api.c @@ -7,6 +7,10 @@ #include +#ifdef _WIN32 +extern int dprintf(int stream, const char *format, ...); +#endif + void api_put() { int mode = state->STACK[state->STACK_IDX--]; // 1 for char, 2 for num if (mode != 1 && mode != 2) return; diff --git a/src/file_utils.c b/src/file_utils.c index 204ec5f..3c25578 100644 --- a/src/file_utils.c +++ b/src/file_utils.c @@ -6,6 +6,10 @@ #define MAX_LINE 1024 +#ifdef _WIN32 +extern int dprintf(int stream, const char *format, ...); +#endif + size_t line_count = 0; int read_script(const char *filename, char ***buf, size_t *lines) { FILE *script = fopen(filename, "r"); diff --git a/src/interpreter_states.c b/src/interpreter_states.c index 0ca2c63..7918866 100644 --- a/src/interpreter_states.c +++ b/src/interpreter_states.c @@ -3,6 +3,10 @@ #include #include +#ifdef _WIN32 +extern int dprintf(int stream, const char *format, ...); +#endif + s_state *state = NULL; int init_state() { state = malloc(sizeof(s_state)); diff --git a/src/pasm.c b/src/pasm.c index 50dac0f..3d4ff66 100644 --- a/src/pasm.c +++ b/src/pasm.c @@ -8,6 +8,22 @@ int fstream = 0; int pasm_debug_mode = 0; + +#ifdef _WIN32 // i swear i hate windows at this point +#include +#include + +int dprintf(int stream, const char * format, ...) { + char buf[256] = {0}; //might overflow but whatever, fuck Windows + va_list args; + va_start(args, format); + int wrote = vsprintf(buf, format, args); + _write(stream, buf, sizeof(buf)); + va_end(args); + return wrote; +} +#endif + void show_error(size_t line, char *line_) { #ifdef _WIN32 int wrote = dprintf(fstream, "%llu| ", line + 1);