]> git.sur5r.net Git - c128-kasse/blobdiff - credit_manager.c
fix printing, nice formatting used
[c128-kasse] / credit_manager.c
index f4e7dbeadf9495499be329c7f3b85772fd2fd510..a91adda537c0dfac942ea5e400f65c56208df6da 100644 (file)
@@ -6,65 +6,56 @@
 #include "config.h"
 #include "general.h"
 
-char *filter = NULL;
-BYTE filter_len;
+static char *filter = NULL;
+static BYTE filter_len;
 
-void print_credit_screen() {
+static void print_credit_screen() {
        BYTE i = 0;
        clrscr();
        cprintf("C128-Kassenprogramm: Credit Manager\r\n\r\n");
-       for (; i < num_credit_items; ++i)
-               if (filter == NULL || strncmp(credits[i].nickname, filter, filter_len) == 0)
-                       cprintf("Guthaben %s: %d Cents\r\n", credits[i].nickname, credits[i].credit);
+       for (; i < credits.num_items; ++i)
+               if (filter == NULL || strncmp(credits.credits[i].nickname, filter, filter_len) == 0)
+                       cprintf("Guthaben %s: %d Cents\r\n", credits.credits[i].nickname, credits.credits[i].credit);
        cprintf("\r\nBefehle: n) Neues Guthaben f) Filtern z) Zurueck\r\n");
 }
 
 /* Guthabenverwalter */
 void credit_manager() {
        int negative = 1;
-       BYTE c;
-       char *nickname, *credits_input;
+       char *c, *nickname, *credits_input;
        /* credits_int is a stupid name, but overlaps with struct credits_t credits; else */
        int credits_int;
        while (1) {
                print_credit_screen();
-               c = getchar();
-               if (c == 'n') {
-                       cprintf("Nickname eingeben:\r\n");
-                       nickname = get_input();
-                       if (nickname[0] == '\0') {
-                               free(nickname);
-                               continue;
-                       }
+               c = get_input();
+               if (c == NULL || *c == '\0')
+                       continue;
+               if (*c == 'n') {
                        cprintf("\r\nGuthaben eingeben:\r\n");
                        credits_input = get_input();
-                       if (credits_input[0] == '\0') {
-                               free(credits_input);
+
+                       if (credits_input == NULL || credits_input[0] == '\0')
                                continue;
-                       }
-                       if (credits_input[0] == '-') {
+                       else if (credits_input[0] == '-') {
                                negative = -1;
                                ++credits_input;
                        }
                        credits_int = atoi(credits_input) * negative;
                        if (credits_int > 0) {
-                               strcpy(credits[num_credit_items].nickname, nickname);
-                               credits[num_credit_items].credit = credits_int;
-                               ++num_credit_items;
+                               cprintf("Nickname eingeben:\r\n");
+                               nickname = get_input();
+                               if (nickname == NULL || nickname[0] == '\0')
+                                       continue;
+                               strncpy(credits.credits[credits.num_items].nickname, nickname, 9);
+                               credits.credits[credits.num_items].credit = credits_int;
+                               ++credits.num_items;
                        }
-                       if (negative == -1)
-                               --credits_input;
-                       free(credits_input);
-               } else if (c == 'f') {
+               } else if (*c == 'f') {
                        cprintf("Filter eingeben:\r\n");
-                       if (filter != NULL)
-                               free(filter);
                        filter = get_input();
-                       if (filter[0] == '0') {
-                               free(filter);
+                       if (filter == NULL || *filter == 32 || (filter_len = strlen(filter)) == 0)
                                filter = NULL;
-                       } else filter_len = strlen(filter);
-               } else if (c == 'z' || c == 'q')
+               } else if (*c == 'z' || *c == 'q')
                        break;
        }
 }