diff --git a/src/hackertyper.c b/src/hackertyper.c index e4dd2ea..9da666b 100644 --- a/src/hackertyper.c +++ b/src/hackertyper.c @@ -8,6 +8,13 @@ #define READ "r" #define CHARS_TO_WRITE 10 +void reset_term(){ + struct termios terminal_settings; + tcgetattr(STDIN_FILENO, &terminal_settings); + terminal_settings.c_lflag |= (ICANON | ECHO); + tcsetattr(STDIN_FILENO, TCSANOW, &terminal_settings); +} + int main(int argc, char *argv[]) { if (argc < 2) { return EXIT_FAILURE; @@ -33,11 +40,17 @@ int main(int argc, char *argv[]) { for (unsigned int i = 0; i < CHARS_TO_WRITE; i++) { current_char = fgetc(command_output_fptr); + if(feof(command_output_fptr)){ + pclose(command_output_fptr); + reset_term(); + return EXIT_SUCCESS; + } printf("%c", current_char); } } pclose(command_output_fptr); + reset_term(); return EXIT_SUCCESS; }