From d7f9560291af44c796da4c286ac8f0180c771e69 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ji=C5=99i=C5=A1t=C4=9B?= Date: Sat, 2 Mar 2024 19:33:30 +0100 Subject: [PATCH] Implement alternate screen usage This is an entry point to possible "graphics". --- Makefile | 1 + inc/FET_sim.h | 2 ++ src/main.c | 2 ++ src/terminal.c | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+) create mode 100644 src/terminal.c diff --git a/Makefile b/Makefile index 25bf565..d5e8252 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ SOURCES := main.c \ sim_node.c \ sim_state.c \ \ + terminal.c \ text.c \ colors.c \ \ diff --git a/inc/FET_sim.h b/inc/FET_sim.h index 6a6bccf..eee311d 100644 --- a/inc/FET_sim.h +++ b/inc/FET_sim.h @@ -109,6 +109,8 @@ void update_nodes(t_vec *nodes); int should_open(t_type type, t_state state); int sim_step(t_vec *nodes, t_vec *mosfets); +void setup_terminal(void); +void clean_terminal(void); void print_start(void); void command_not_found(const char *input); void print_help(t_command c); diff --git a/src/main.c b/src/main.c index 69cb3ae..769e87f 100644 --- a/src/main.c +++ b/src/main.c @@ -278,6 +278,7 @@ void cleanup(t_vec *nodes, t_vec *mosfets) ft_vec_free(nodes, free_node); ft_vec_free(mosfets, NULL); get_next_line(-1); + clean_terminal(); return ; } @@ -286,6 +287,7 @@ int main(int argc, char **argv) t_vec nodes; t_vec mosfets; + setup_terminal(); print_start(); ft_vec_init(&nodes, sizeof(t_node)); ft_vec_init(&mosfets, sizeof(t_mosfet)); diff --git a/src/terminal.c b/src/terminal.c new file mode 100644 index 0000000..d1252a6 --- /dev/null +++ b/src/terminal.c @@ -0,0 +1,18 @@ +#include "FET_sim.h" +#include "libft.h" + +static const char alt_term_on[] = "\033[?1049h"; +static const char alt_term_off[] = "\033[?1049l"; + +void setup_terminal(void) +{ + ft_printf("%s", alt_term_on); + ft_printf("\033[H"); + return ; +} + +void clean_terminal(void) +{ + ft_printf("%s", alt_term_off); + return ; +} -- 2.30.2