summaryrefslogtreecommitdiff
path: root/src/bees.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bees.c')
-rw-r--r--src/bees.c27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/bees.c b/src/bees.c
index 7c2fbcb..6703fca 100644
--- a/src/bees.c
+++ b/src/bees.c
@@ -1,6 +1,7 @@
#include "vga.h"
#include "printf.h"
+#include "string.h"
const char *bees_msg =
"\n\n\n"
@@ -9,14 +10,28 @@ const char *bees_msg =
" \\ -- /" "\n"
" _====_ your computer will now halt." "\n"
" / |--| \\" "\n"
-" / /==\\ \\ error: %s" "\n"
-" / /----\\ \\" "\n"
-" / /======\\ \\" "\n"
-" \\_/ ---- \\_/" "\n";
+" / /==\\ \\ error: " "\n"
+" / /----\\ \\ %" "\n"
+" / /======\\ \\ %" "\n"
+" \\_/ ---- \\_/ %" "\n"
+" % " "\n"
+" % " "\n"
+" % " "\n"
+" % " "\n"
+" % " "\n"
+" % " "\n";
-void bees(const char *error) {
+_Noreturn void bees(const char *error) {
vsetcolor(vga_color(vga_white, vga_blue));
vclear();
- printf(bees_msg, error);
+ // wrap the error message
+ for (int i = 0; bees_msg[i] != '\0'; i++) {
+ if (bees_msg[i] != '%') vputchar(bees_msg[i]);
+ else {
+ while (isspace(*error)) error++;
+ for (int j = 20; j <= VGA_WIDTH - 3 && *error != '\0'; j++)
+ vputchar(*(error++));
+ }
+ }
while (1) asm("cli;hlt");
}