diff --git a/.gitignore b/.gitignore index abfad5b..9b33e89 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ -kaari \ No newline at end of file +kaari +kaari-linux-i386 +kaari-linux-amd64 \ No newline at end of file diff --git a/Makefile b/Makefile index 8af239f..fc17144 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,8 @@ build: main.c tcc -o kaari main.c +build-linux-32: main.c + tcc -m32 -o kaari-linux-i386 main.c +build-linux-64: main.c + tcc -m64 -o kaari-linux-amd64 main.c run: main.c tcc -run main.c diff --git a/main.c b/main.c index 2a872bb..1978626 100644 --- a/main.c +++ b/main.c @@ -6,12 +6,13 @@ #define clear() printf("\033[H\033[J") #define gotoxy(x,y) printf("\033[%d;%dH", (y), (x)) +char fonth = 8; int getch(); void enableRawMode(); void disableRawMode(); -void drawWin(int fonth); +void drawWin(); int askHeight(); -void limitCurrChar(); +void resetCurPos(); char currchar = 'A'; char xpos=0, ypos=0; @@ -19,15 +20,12 @@ char xpos=0, ypos=0; struct termios orig_termios; int main() { - int fonth = askHeight(); - clear(); - drawWin(fonth); enableRawMode(); char c; - limitCurrChar(); while(1) { + drawWin(); c = getch(); // Q to exit if (c == 'q') { @@ -36,41 +34,40 @@ int main() { // Handle arrows and stuff if (c == '[') { c = getch(); - if (c == '5') { // PageUP - currchar++; - limitCurrChar(); + if (c == '6') { // PageUP + if (currchar < 126) { currchar++; } continue; } - if (c == '6') { // PageDOWN - currchar--; - limitCurrChar(); + if (c == '5') { // PageDOWN + if (currchar >32) { currchar--; } continue; } if (c == 'A') { - printf("^"); + if (ypos > 0) { ypos--; } continue; } if (c == 'B') { - printf("v"); + if (ypos < fonth-1) { ypos++; } continue; } if (c == 'C') { - printf(">"); + if (xpos < 8-1) { xpos++; } continue; } if (c == 'D') { - printf("<"); + if (xpos > 0) { xpos--; } continue; } } } - + disableRawMode(); + clear(); return 0; } -void drawWin(int fonth) { +void drawWin() { clear(); printf("Kaari - Binarier font editor\r\n"); printf("+--------+\r\n"); @@ -81,12 +78,18 @@ void drawWin(int fonth) { for (int y=0; y 126) { - currchar = 126; - } - - gotoxy(12+currchar%16*2, 3+(currchar-32)/16); - printf("\033[7m%c", currchar); - - gotoxy(12+(currchar-1)%16*2, 3+(currchar-1-32)/16); - printf("\033[0m%c", currchar-1); - - gotoxy(12+(currchar+1)%16*2, 3+(currchar+1-32)/16); - printf("\033[0m%c", currchar+1); - - gotoxy(12, 2); - printf("\033[0mEditing \"%c\" / %d / 0x%X", currchar, currchar, currchar); - - gotoxy(0, 21); - +void resetCurPos() { + gotoxy(2+xpos, 3+ypos); return; }