summaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2025-07-27 15:33:22 +0200
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2025-07-27 15:33:22 +0200
commitefb1cf0895d6c5019f5a88fa14b59afd030fefca (patch)
tree24fe5d99faad9eeed625d0ef1a6edea65482e246 /src/screen.c
parentb5a24778844f41e38168d97761d72cf0d5b400b3 (diff)
Setup descriptor tables, and enable interrupts
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/screen.c b/src/screen.c
index 1ce4192..903ce9c 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -28,6 +28,8 @@ screen_draw_pixel(uint32_t x, uint32_t y, uint32_t c)
fb_mem[x + y * (fb->pitch/4)] = c;
}
+static int nested;
+
void
print(char8_t *fmt, ...)
{
@@ -71,6 +73,9 @@ screen_clear(void)
static int
print_fmt(char8_t *fmt, va_list args)
{
+ if(nested)
+ return 0;
+
char8_t digits[] = u8"0123456789ABCDEF";
char8_t *prefixes[17] = {0};
char8_t buf[65];
@@ -112,5 +117,13 @@ print_fmt(char8_t *fmt, va_list args)
UINT(u8"%p", 0, 16, 16, uintptr_t);
+ if(utf8_cmp_n(fmt, u8"%s", 2) == 0){
+ char8_t *str = va_arg(args, char8_t *);
+ nested++;
+ print(str);
+ nested--;
+ return 2;
+ }
+
return 0;
}