Added terminal print callbacks

Resolved #127
This commit is contained in:
2024-10-05 23:26:20 +10:00
parent ad44eeac48
commit 4805c6757a
6 changed files with 204 additions and 18 deletions

51
source/toy_print.c Normal file
View File

@@ -0,0 +1,51 @@
#include "toy_print.h"
#include <stdio.h>
static void outDefault(const char* msg) {
fprintf(stdout, "%s", msg);
}
static void errDefault(const char* msg) {
fprintf(stderr, "%s", msg);
}
static Toy_callbackType printCallback = outDefault;
static Toy_callbackType errorCallback = errDefault;
static Toy_callbackType assertCallback = errDefault;
void Toy_print(const char* msg) {
printCallback(msg);
}
void Toy_error(const char* msg) {
errorCallback(msg);
}
void Toy_assertFailure(const char* msg) {
assertCallback(msg);
}
void Toy_setPrintCallback(Toy_callbackType cb) {
printCallback = cb;
}
void Toy_setErrorCallback(Toy_callbackType cb) {
errorCallback = cb;
}
void Toy_setAssertFailureCallback(Toy_callbackType cb) {
assertCallback = cb;
}
void Toy_resetPrintCallback() {
printCallback = outDefault;
}
void Toy_resetErrorCallback() {
errorCallback = errDefault;
}
void Toy_resetAssertFailureCallback() {
assertCallback = errDefault;
}