From 250c2b868b09ac52e1127de33ff93a16c0bcf2e1 Mon Sep 17 00:00:00 2001 From: germanFid Date: Fri, 17 Jun 2022 12:39:35 +0300 Subject: [PATCH] Fix commandCallHanler --- include/ui.h | 15 +++++++++++---- main.c | 14 ++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/include/ui.h b/include/ui.h index 66ecc68..9e81f5c 100644 --- a/include/ui.h +++ b/include/ui.h @@ -9,10 +9,16 @@ #define MAX_COMMAND_LEN 200 +void clearExtraInput() +{ + int c; + while ((c = getchar()) != '\n' && c != EOF) {} +} + int getString(char* str, const int size) { char* buf = (char*) malloc(size + 1); - if (gets(buf) == NULL) + if (fgets(buf, size, stdin) == NULL) { return GETSTRING_ERR_RE; } @@ -28,7 +34,7 @@ int getString(char* str, const int size) return 0; } -int commandCallHandler() +char* commandCallHandler() { char* command = (char*) malloc(MAX_COMMAND_LEN); char* buf = (char*) malloc(MAX_COMMAND_LEN); @@ -37,11 +43,12 @@ int commandCallHandler() result = getString(command, MAX_COMMAND_LEN-1); if (result == 0) { - // Разбиваем на лексемы и обрабатываем команду + strcpy(buf, command); + return buf; } else { - return -1; + return NULL; } } diff --git a/main.c b/main.c index ebddb8b..2b57d1a 100644 --- a/main.c +++ b/main.c @@ -5,5 +5,19 @@ int main(int argc, char** argv) { + char* buf; + + while (1) + { + buf = commandCallHandler(); + + if (buf == 0) + { + printf("Unknown Command!"); + } + + + } + return 0; } \ No newline at end of file