]> git.sur5r.net Git - c128-kasse/commitdiff
use cget_return() to wait for a RETURN key press
authorMaik Fischer <maikf@qu.cx>
Thu, 26 Oct 2017 10:07:00 +0000 (12:07 +0200)
committerMaik Fischer <maikf@qu.cx>
Mon, 30 Oct 2017 10:09:19 +0000 (11:09 +0100)
include/general.h
src/credit_manager.c
src/general.c
src/itemz.c
src/kasse.c

index 66294bfd51ed6cd254e6933556d31320c725e61b..82a0db926d521659b87131fbcb9cb899a91db4d7 100644 (file)
@@ -12,6 +12,7 @@ typedef input_terminator_t input_terminator_mask_t;
 input_terminator_t get_input_terminated_by(input_terminator_mask_t terminators,
                                            char *out, BYTE outlen);
 char *get_input(void);
+void cget_return(void);
 char retry_or_quit(void);
 char *format_euro(char *s, int maxlen, int cent);
 void c128_perror(BYTE, char *);
index 347326a28fd2331e68cebe9da407e87919cffd4a..728aa32ee32fba97e279847ddd3b9c6970feb8eb 100644 (file)
@@ -90,7 +90,7 @@ void deposit_credit(char *input) {
 
   print_the_buffer();
   cprintf("\r\nEinzahlung durchgef" uUML "hrt, dr" uUML "cke RETURN...\r\n");
-  input = get_input();
+  cget_return();
 }
 
 static void new_credit(void) {
@@ -101,7 +101,7 @@ static void new_credit(void) {
   if (credits.num_items == 75) {
     cprintf("\rEs ist bereits die maximale Anzahl an Eintr" aUML
             "gen erreicht, dr" uUML "cke RETURN...\r\n");
-    input = get_input();
+    cget_return();
     return;
   }
 
@@ -189,7 +189,7 @@ void credit_manager() {
       return;
     default:
       cprintf("Unbekannter Befehl, dr" uUML "cke RETURN...\r\n");
-      get_input();
+      cget_return();
     }
   }
 }
index ec06ef4271349565a27ad29c03899d77e6e01783..87cdd07a1d6d9247534cf822ce3cff9b9a4bc601 100644 (file)
@@ -66,6 +66,17 @@ char *get_input(void) {
   return output;
 }
 
+/* wait until user pressed RETURN, ignore all other input */
+void cget_return() {
+  BYTE c;
+  while (1) {
+    c = cgetc();
+    if (c == PETSCII_CR) {
+      return;
+    }
+  }
+}
+
 char retry_or_quit(void) {
   char *c;
   do {
index f04678c0753f1801a6b9a5d5470c18bf0db7f3c0..7751b68e9055434a88f6666baa8a7d20d75e732b 100644 (file)
@@ -128,7 +128,7 @@ static void itemz_manager() {
       exit(0);
     default:
       cprintf("Unbekannter Befehl, druecke RETURN...\r\n");
-      get_input();
+      cget_return();
     }
   }
 }
index 734599ac028420cde6f9ece5a00f142561a70a7e..aa112f3706705cf4f1463369fc6219561183060f 100644 (file)
@@ -177,7 +177,7 @@ static signed int buy(char *name, unsigned int price) {
     }
     if (c == PETSCII_ESC) {
       cprintf("Kauf abgebrochen, dr" uUML "cke RETURN...\r\n");
-      get_input();
+      cget_return();
       return 1;
     }
     if (c == '-' && i == 0) {
@@ -309,14 +309,14 @@ static signed int buy(char *name, unsigned int price) {
               "cke RETURN...\r\n",
               nickname, rest);
       textcolor(TC_LIGHT_GRAY);
-      get_input();
+      cget_return();
       matches++;
     } else {
       textcolor(TC_LIGHT_RED);
       cprintf("\r\nNickname nicht gefunden in der Guthabenverwaltung! Abbruch, "
               "dr" uUML "cke RETURN...\r\n");
       textcolor(TC_LIGHT_GRAY);
-      get_input();
+      cget_return();
       return 0;
     }
   } else {
@@ -336,7 +336,7 @@ static signed int buy(char *name, unsigned int price) {
 void buy_stock(BYTE n) {
   if (n >= status.num_items || status.status[n].item_name == NULL) {
     cprintf("FEHLER: Diese Einheit existiert nicht.\r\n");
-    get_input();
+    cget_return();
     return;
   }
 
@@ -367,7 +367,7 @@ void buy_custom(void) {
     cputc(c);
     if (c == PETSCII_ESC) {
       cprintf("Kauf abgebrochen, dr" uUML "cke RETURN...\r\n");
-      get_input();
+      cget_return();
       return;
     } else if (c == '-' && i == 0)
       negative = -1;
@@ -472,7 +472,7 @@ int main(void) {
       log_flush();
       cprintf("ok\r\nStatefile/Creditfile/Log gesichert, dr" uUML
               "cke RETURN...\r\n");
-      get_input();
+      cget_return();
     } else if (*c == 'g') {
       credit_manager();
     } else if (*c == 'z') {