From 008a237109dcbdc8ef0645b8409e1f621a219bc7 Mon Sep 17 00:00:00 2001
From: Simone Franza <simone.franza@student.tugraz.at>
Date: Fri, 4 Dec 2020 14:08:52 +0100
Subject: [PATCH] clear buffer after wrong input

---
 framework.c | 16 ++++++++++++++--
 framework.h |  8 ++++++++
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/framework.c b/framework.c
index b855eac..410537f 100644
--- a/framework.c
+++ b/framework.c
@@ -16,6 +16,7 @@ void generatePlayfairSquare(char *square)
     printf("%s ", KEY_PROMPT);
     fgets(key, SIZE_BUFFER, stdin);
     if(checkStringValidity(key, MAX_KEY_LENGTH, IS_KEY)) break;
+    clearBuffer(key, SIZE_BUFFER);
   }
   prepareKey(key);
 
@@ -121,7 +122,8 @@ void appendAlphaToKey(char *key)
 {
   char alpha[SQUARE_SIDE * SQUARE_SIDE + 1] = ALPHA;
   int length = stringLength(key);
-  for(int counter = 0; counter < SQUARE_SIDE * SQUARE_SIDE + 1; counter++) {
+  for(int counter = 0; counter < SQUARE_SIDE * SQUARE_SIDE + 1; counter++)
+  {
     if(stringContainsChar(key, alpha[counter]) == NOT_FOUND)
       *(key + length++) = alpha[counter];
   }
@@ -129,9 +131,19 @@ void appendAlphaToKey(char *key)
 }
 
 //-----------------------------------------------------------------------------
-int stringContainsChar(char *text, char to_find) {
+int stringContainsChar(char *text, char to_find)
+{
   do {
     if(*text == to_find) return FOUND;
   } while(*text++);
   return NOT_FOUND;
 }
+
+//-----------------------------------------------------------------------------
+void clearBuffer(char *text, int buffer_len)
+{
+  for(int counter = 0; counter < buffer_len; counter++)
+  {
+    text[counter] = '\0';
+  }
+}
diff --git a/framework.h b/framework.h
index 75c96a7..9b3c789 100644
--- a/framework.h
+++ b/framework.h
@@ -131,3 +131,11 @@ void appendAlphaToKey(char *key);
 // @return FOUND(1) or NOT_FOUND(-1)
 //
 int stringContainsChar(char *text, char to_find);
+
+//-----------------------------------------------------------------------------
+// Zeroes the content of a string
+//
+// @param text string to clear
+// @param buffer_len length of string
+//
+void clearBuffer(char *text, int buffer_len);
-- 
GitLab