From 07960b142c000ac1a126b2af898df554b132e9de Mon Sep 17 00:00:00 2001 From: timoreo Date: Wed, 10 Jan 2024 17:02:11 +0100 Subject: [PATCH 1/2] Fix haxxer typer --- src/hackertyper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/hackertyper.c b/src/hackertyper.c index e4dd2ea..9f01b6d 100644 --- a/src/hackertyper.c +++ b/src/hackertyper.c @@ -31,7 +31,7 @@ int main(int argc, char *argv[]) { while (!feof(command_output_fptr)) { getchar(); - for (unsigned int i = 0; i < CHARS_TO_WRITE; i++) { + for (unsigned int i = 0; i < CHARS_TO_WRITE && !feof(command_output_fptr); i++) { current_char = fgetc(command_output_fptr); printf("%c", current_char); } From 8ba4baf09975e6b49117f7f5a48ad3ae242f0e67 Mon Sep 17 00:00:00 2001 From: timoreo Date: Wed, 10 Jan 2024 17:12:21 +0100 Subject: [PATCH 2/2] Add terminal reset --- src/hackertyper.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/hackertyper.c b/src/hackertyper.c index 9f01b6d..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; @@ -31,13 +38,19 @@ int main(int argc, char *argv[]) { while (!feof(command_output_fptr)) { getchar(); - for (unsigned int i = 0; i < CHARS_TO_WRITE && !feof(command_output_fptr); i++) { + 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; }