diff --git a/core/fmt/fmt.odin b/core/fmt/fmt.odin index c1d21c00d..c75cbba27 100644 --- a/core/fmt/fmt.odin +++ b/core/fmt/fmt.odin @@ -59,12 +59,12 @@ fprintf :: proc(fd: os.Handle, fmt: string, args: ..any) -> int { // print* procedures return the number of bytes written -print :: proc(args: ..any) -> int { return fprint(os.stdout, ..args); } -print_err :: proc(args: ..any) -> int { return fprint(os.stderr, ..args); } -println :: proc(args: ..any) -> int { return fprintln(os.stdout, ..args); } -println_err :: proc(args: ..any) -> int { return fprintln(os.stderr, ..args); } -printf :: proc(fmt: string, args: ..any) -> int { return fprintf(os.stdout, fmt, ..args); } -printf_err :: proc(fmt: string, args: ..any) -> int { return fprintf(os.stderr, fmt, ..args); } +print :: proc(args: ..any) -> int { return fprint(context.stdout, ..args); } +print_err :: proc(args: ..any) -> int { return fprint(context.stderr, ..args); } +println :: proc(args: ..any) -> int { return fprintln(context.stdout, ..args); } +println_err :: proc(args: ..any) -> int { return fprintln(context.stderr, ..args); } +printf :: proc(fmt: string, args: ..any) -> int { return fprintf(context.stdout, fmt, ..args); } +printf_err :: proc(fmt: string, args: ..any) -> int { return fprintf(context.stderr, fmt, ..args); } // aprint* procedures return a string that was allocated with the current context diff --git a/core/log/file_console_logger.odin b/core/log/file_console_logger.odin index 1a961f910..3778d3e53 100644 --- a/core/log/file_console_logger.odin +++ b/core/log/file_console_logger.odin @@ -69,7 +69,7 @@ file_console_logger_proc :: proc(logger_data: rawptr, level: Level, text: string h : os.Handle; if(data.file_handle != os.INVALID_HANDLE) do h = data.file_handle; - else do h = level <= Level.Error ? os.stdout : os.stderr; + else do h = level <= Level.Error ? context.stdout : context.stderr; backing: [1024]byte; //NOTE(Hoej): 1024 might be too much for a header backing, unless somebody has really long paths. buf := strings.builder_from_slice(backing[:]); diff --git a/core/runtime/core.odin b/core/runtime/core.odin index 187573557..5932d57c5 100644 --- a/core/runtime/core.odin +++ b/core/runtime/core.odin @@ -213,6 +213,10 @@ Context :: struct { assertion_failure_proc: Assertion_Failure_Proc, logger: log.Logger, + stdin: os.Handle, + stdout: os.Handle, + stderr: os.Handle, + thread_id: int, user_data: any, @@ -350,6 +354,10 @@ __init_context :: proc "contextless" (c: ^Context) { c.logger.procedure = log.nil_logger_proc; c.logger.data = nil; + + c.stdin = os.stdin; + c.stdout = os.stdout; + c.stderr = os.stderr; } @builtin