From 739ef2556ada40d314485f2aad35551e93327de4 Mon Sep 17 00:00:00 2001 From: rick Date: Wed, 3 Mar 2021 19:57:16 +0100 Subject: [PATCH] =?UTF-8?q?Ctrl=20C=20n=E2=80=99arrete=20plus=20le=20termi?= =?UTF-8?q?nal=20et=20Ctrl=20D=20ne=20bug=20plus=20#15?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/boitoutil/parser.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/boitoutil/parser.c b/src/boitoutil/parser.c index 60022c9..7f5cbe4 100644 --- a/src/boitoutil/parser.c +++ b/src/boitoutil/parser.c @@ -12,6 +12,7 @@ #include #include #include +#include /** * get_input(): Permet de récupérer la saisie de l’utilisateur @@ -20,6 +21,7 @@ */ char* get_input() { + fflush(stdin); int stop = 0; /* en cas de ctrl d */ char *buffer = (char *) calloc(MAX_LENGTH, sizeof(char)); buffer[0] = '\n'; @@ -27,8 +29,9 @@ char* get_input() while (buffer[0] == '\n' && !stop) { printf("> "); - if(fgets(buffer, MAX_LENGTH, stdin) == NULL) + if(fgets(buffer, MAX_LENGTH, stdin) == NULL && errno != EINTR) stop++; + errno = 0; /* réinitialiser le errno pour le prochain fgets */ } if (stop) @@ -111,5 +114,5 @@ void parse_string(char *orig, char *dest[], char find) free(dest[i]); dest[i] = NULL; - free(token); + //free(token); }