]> git.sur5r.net Git - c128-kasse/commitdiff
kasse: use cgetn_input() to simplify logic
authorMaik Fischer <maikf@qu.cx>
Thu, 26 Oct 2017 11:38:16 +0000 (13:38 +0200)
committerMaik Fischer <maikf@qu.cx>
Mon, 30 Oct 2017 10:10:22 +0000 (11:10 +0100)
include/general.h
src/general.c
src/kasse.c

index 82a0db926d521659b87131fbcb9cb899a91db4d7..e07176eadf8cfe05fbc359bfb2cc860af7470570 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);
+BYTE cgetn_input(char *s, BYTE len);
 void cget_return(void);
 char retry_or_quit(void);
 char *format_euro(char *s, int maxlen, int cent);
index 87cdd07a1d6d9247534cf822ce3cff9b9a4bc601..91318aa9faa51269439ab846bd7f3b1000aa614a 100644 (file)
@@ -66,7 +66,12 @@ char *get_input(void) {
   return output;
 }
 
-/* wait until user pressed RETURN, ignore all other input */
+BYTE cgetn_input(char *s, BYTE len) {
+  memset(s, '\0', len);
+  get_input_terminated_by(INPUT_TERMINATOR_RETURN, s, len);
+  return strlen(s);
+}
+
 void cget_return() {
   BYTE c;
   while (1) {
index aa112f3706705cf4f1463369fc6219561183060f..b59d44d812d75309fcac9b4c3b64128792bbabb0 100644 (file)
@@ -348,15 +348,12 @@ void buy_custom(void) {
   BYTE c = 0, i = 0;
   int negative = 1;
   char entered[5] = {'1', 0, 0, 0, 0};
-  char *input, name[20];
+  char name[MAX_ITEM_NAME_LENGTH + 1];
   int price;
 
   clrscr();
-  memset(name, '\0', sizeof(name));
   cprintf("\r\nWas soll gekauft werden?\r\n");
-  input = get_input();
-  strncpy(name, input, sizeof(name));
-  if (*name == '\0')
+  if (cgetn_input(name, sizeof(name)) == 0)
     return;
 
   cprintf("\r\nWie teuer ist \"%s\" (in cents)?\r\n", name);