Files
libstdwullie/src/printing.c
2026-02-27 13:06:59 +00:00

71 lines
1.7 KiB
C

// this code is licenced under Wrathmark licence
// © 2026 wullie wulliestudio.com
// please see attached licence for full usage and rights
#include "stdWullie.h"
#include "localheader.h"
// handles the length of a string for print
long unsigned lengthStr(char *string){
char *cursor = string;
while(*cursor){
cursor++;
}
long unsigned result = cursor - string;
return result;
}
// its print what do you expect? for it to read?
void print(char *string){
syscall3(SYS_write, 1, (long)string, lengthStr(string));
}
// it can do everythig print can but better
void ColorPrint(char *string, char *color){
syscall3(SYS_write, 1, (long)color, lengthStr(color));
syscall3(SYS_write, 1, (long)string, lengthStr(string));
syscall3(SYS_write, 1, (long)NORMAL, sizeof(NORMAL)-1);
}
// instead of changing the foreground it changes the background
void BackgroundPrint(char *string, char *Bcolor){
syscall3(SYS_write, 1, (long)Bcolor, lengthStr(Bcolor));
syscall3(SYS_write, 1, (long)string, lengthStr(string));
syscall3(SYS_write, 1, (long)NORMAL, sizeof(NORMAL)-1);
}
// converts a sting to uppercase
void upper(char string[]){
int i = 0;
while(string[i] != '\0'){
if(string[i] >= 'a' && string[i] <= 'z') {
string[i] = string[i] - 32;
}
i++;
}
}
// does the same but to lower case instead
void lower(char string[]){
int cursor = 0;
while(string[cursor] != '\0'){
if(string[cursor] >= 'A' && string[cursor] <= 'Z'){
string[cursor] = string[cursor] + 32;
}
cursor++;
}
}
// converts an int to a char
//char str(int number){
// char numbChar[];
// int *cursor = number;
// while(*cursor >=0 && *cursor <=9){
// numbChar = *numbChar / 10 +(*cursor - 0);
// cursor++
// }
// return numbChar;
//}