From 5878d588d8f94cb14290e7ee53cd74c5fd307204 Mon Sep 17 00:00:00 2001 From: netbenix Date: Sun, 9 May 2021 08:38:48 +0200 Subject: [PATCH] Added clear screen function for linux and win32 --- .gitignore | 3 ++- main.c | 12 +++++++----- makefile | 6 ++++-- utils/clear_screen.c | 28 ++++++++++++++++++++++++++++ utils/clear_screen.h | 6 ++++++ 5 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 utils/clear_screen.c create mode 100644 utils/clear_screen.h diff --git a/.gitignore b/.gitignore index bb9095b..9baf9aa 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ update_check.o man.o calc.o math_ext.o -your-reality.o \ No newline at end of file +your-reality.o +clear_screen.o \ No newline at end of file diff --git a/main.c b/main.c index 6c07f2f..c47fb25 100644 --- a/main.c +++ b/main.c @@ -21,9 +21,10 @@ #include "utils/sys_info.h" #include "utils/update_check.h" #include "utils/calc.h" +#include "utils/clear_screen.h" -#define VERSION "0.2.6" +#define VERSION "0.3.1" bool VER_CHECK_ON_START = true; bool DEV_MODE = false; @@ -118,6 +119,7 @@ int main(int argc, char *argv[]){ snprintf(buffer, sizeof(buffer), "Starting netbenixCMD (Version: %s)", VERSION); logger(buffer); log_Specs(); //Log system specs + clearScreen(); //Clear the screen showLogo(); //Show the logo logger("Logo Displayed."); if(argc > 2){ @@ -129,19 +131,19 @@ int main(int argc, char *argv[]){ //Check the startup args if(argc == 2){ if(!strcmp(argv[1], "--help")){ - logger("Showing Help."); + logger("Showing help."); outputHelp(); exit(0); } else if (!strcmp(argv[1], "--gtk-test")){ - logger("Stating GTK Test."); + logger("Stating GTK test."); createGTKTestWindow(); exit(0); } else if (!strcmp(argv[1], "--sys-info")){ - logger("Showing System Information."); + logger("Showing system information."); print_Specs(); exit(0); } else if (!strcmp(argv[1], "--sql-test")){ - logger("Starting SQL Test."); + logger("Starting SQL test."); testSQLConnection(); exit(0); } else if (!strcmp(argv[1], "--no-version-check")){ diff --git a/makefile b/makefile index 3b2d376..84498fc 100644 --- a/makefile +++ b/makefile @@ -2,7 +2,7 @@ CC= gcc ARGS= -export-dynamic -ansi -std=gnu99 CFLAGS= $(shell pkg-config --cflags gtk+-3.0) -I/usr/include/mysql LDLIBS= $(shell pkg-config --libs gtk+-3.0) -L/usr/lib/mysql -lmysqlclient -lm -OBJ= main.o logo.o logger.o help.o sys_info.o gtk_test.o sql_test.o show_dir.o change_dir.o update_check.o man.o your-reality.o math_ext.o calc.o +OBJ= main.o logo.o logger.o help.o sys_info.o gtk_test.o sql_test.o show_dir.o change_dir.o update_check.o man.o your-reality.o math_ext.o calc.o clear_screen.o netbenixCMD: $(OBJ) $(CC) $(CFLAGS) $(ARGS) -o netbenixCMD $(OBJ) $(LDLIBS) main.o: main.c @@ -32,4 +32,6 @@ math_ext.o: etc/math_ext.c your-reality.o: etc/your-reality.c $(CC) $(CFLAGS) -c etc/your-reality.c calc.o: utils/calc.c - $(CC) $(CFLAGS) -c utils/calc.c \ No newline at end of file + $(CC) $(CFLAGS) -c utils/calc.c +clear_screen.o: utils/clear_screen.c + $(CC) $(CFLAGS) -c utils/clear_screen.c \ No newline at end of file diff --git a/utils/clear_screen.c b/utils/clear_screen.c new file mode 100644 index 0000000..a3d16c9 --- /dev/null +++ b/utils/clear_screen.c @@ -0,0 +1,28 @@ +#include +#if defined(_WIN32) +#include +#elif defined(__linux__) +#include +#include +#endif + +#include "clear_screen.h" + + +void clearScreen(){ + #if defined(_WIN32) + CONSOLE_SCREEN_BUFFER_INFO csbi; + int rows; + GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi); + rows = csbi.srWindow.Bottom - csbi.srWindow.Top + 1; + for(int i = 0; i < rows; i++){ + printf("\n"); + } + #elif defined(__linux__) + struct winsize w; + ioctl(STDOUT_FILENO, TIOCGWINSZ, &w); + for(int i = 0; i < w.ws_row; i++){ + printf("\n"); + } + #endif +} \ No newline at end of file diff --git a/utils/clear_screen.h b/utils/clear_screen.h new file mode 100644 index 0000000..b7bc8c7 --- /dev/null +++ b/utils/clear_screen.h @@ -0,0 +1,6 @@ +#ifndef _CLEAR_SCREEN_H_ +#define _CLEAR_SCREEN_H_ + +void clearScreen(); + +#endif \ No newline at end of file