]> git.sur5r.net Git - c128-kasse/blobdiff - src/credit_manager.c
check for duplicate nicks when (#26)
[c128-kasse] / src / credit_manager.c
index 7f32d754bba47bb57878352cd559287e54be8891..87667907d850aa629eadab39d3e67517eb71b7b8 100644 (file)
@@ -85,6 +85,7 @@ static void new_credit(void) {
   char name[NICKNAME_MAX_LEN + 1];
   char *time;
   int credit;
+  int i;
 
   if (credits.num_items == MAX_CREDIT_ITEMS) {
     cprintf("\rEs ist bereits die maximale Anzahl an Eintr" aUML
@@ -98,6 +99,15 @@ static void new_credit(void) {
   if (cgetn_input(name, sizeof(name)) == 0)
     return;
 
+  for (i = 0; i < credits.num_items; i++) {
+    if (strncmp(credits.credits[i].nickname, name, NICKNAME_MAX_LEN) != 0) {
+      continue;
+    }
+    cprintf("\rNickname existiert bereits, dr" uUML "cke RETURN...\r\n");
+    cget_return();
+    return;
+  }
+
   cprintf("\r\nGuthaben in Cents:\r\n");
   if ((credit = cget_number(0)) == 0)
     return;
@@ -110,7 +120,6 @@ static void new_credit(void) {
   print_the_buffer();
 
   credits.num_items++;
-  free(name);
 }
 
 static void _delete_credit(BYTE num) {