diff options
Diffstat (limited to 'lib/aec')
| -rw-r--r-- | lib/aec/Makefile | 2 | ||||
| -rw-r--r-- | lib/aec/aec.c | 33 | ||||
| -rw-r--r-- | lib/aec/aec.h | 5 |
3 files changed, 38 insertions, 2 deletions
diff --git a/lib/aec/Makefile b/lib/aec/Makefile index c7f78b6..e2179f8 100644 --- a/lib/aec/Makefile +++ b/lib/aec/Makefile @@ -1,3 +1,3 @@ unit_test: - gcc aec.c ../io/io.c ../cstr/cstr.c ../env/env.c ../sys/start.S -o test -static -nostdlib -fno-stack-protector -Wno-implicit-function-declaration -fno-builtin -DAEC_UNIT_TEST -g + gcc aec.c ../malloc/malloc.c ../io/io.c ../cstr/cstr.c ../env/env.c ../sys/start.S -o test -static -nostdlib -fno-stack-protector -Wno-implicit-function-declaration -fno-builtin -DAEC_UNIT_TEST -g ./test diff --git a/lib/aec/aec.c b/lib/aec/aec.c index 92a1f08..2d3d47c 100644 --- a/lib/aec/aec.c +++ b/lib/aec/aec.c @@ -2,7 +2,7 @@ #include "../io/io.h" -#define csi() wstd("\033["); +#define csi() wstd("\033[") void sgr(const char *attrs) { @@ -29,9 +29,40 @@ void background(const char *code) wstd("m"); } + +void clear_screen() +{ + csi(); + wstd("2J"); +} + + +void clear_line() +{ + csi(); + wstd("2K"); +} + + +void move_cursor(int x, int y) +{ + csi(); + wstdf("%i;%iH", y, x); +} + + +void cursor_enabled(int is_enabled) +{ + csi(); + wstd("?25"); + wstd(is_enabled ? "h" : "l"); +} + #ifdef AEC_UNIT_TEST int main() { + clear_screen(); + move_cursor(1, 1); sgr(SGR_BOLD); wstd("Hallo"); sgr(SGR_RESET); diff --git a/lib/aec/aec.h b/lib/aec/aec.h index 70c2706..b273e4a 100644 --- a/lib/aec/aec.h +++ b/lib/aec/aec.h @@ -38,4 +38,9 @@ void sgr(const char *attrs); void foreground(const char *code); void background(const char *code); +void clear_screen(); +void clear_line(); +void move_cursor(int x, int y); +void cursor_enabled(int is_enabled); + #endif |