X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fgeneral.c;h=59945444f12ac9219117c5751e9c908b80af9e63;hb=aa0e1bb3a4ebf8d8b9a1b9f943d24e12275568a9;hp=8a9041d9b66905b8c406d89c9b5493d2cf5a600e;hpb=2848f2de1f65a04328ebf6a7be467ea00d57e57b;p=c128-kasse diff --git a/src/general.c b/src/general.c index 8a9041d..5994544 100644 --- a/src/general.c +++ b/src/general.c @@ -1,6 +1,6 @@ /* * RGB2R-C128-Kassenprogramm - * (c) 2007-2008 phil_fry, sECuRE, sur5r + * © 2007-2009 phil_fry, sECuRE, sur5r * See LICENSE for license information * */ @@ -12,7 +12,7 @@ #include "general.h" /* - * Liest (maximal 31) Zeichen ein, bis Enter gedrückt wird. + * Liest (maximal 31) Zeichen ein, bis Enter gedrückt wird. * Vorsicht: Es wird ein statischer Buffer benutzt, sodass man * das Ergebnis via strdup() retten muss, bevor man get_input() * erneut aufruft @@ -26,14 +26,24 @@ char *get_input() { while (1) { if (i == 31) break; - c = getchar(); + c = cgetc(); if (c == 13) break; - else output[i++] = c; + cputc(c); + output[i++] = c; } return output; } +char retry_or_quit() { + char *c; + do { + cprintf("\r\nr)etry or q)uit?\r\n"); + c = get_input(); + } while ((*c != 'r') && (*c != 'q')); + return *c; +} + char *format_euro(char *s, int maxlen, int cent){ int tmp = cent; int len = strlen(",EUR"); @@ -42,7 +52,7 @@ char *format_euro(char *s, int maxlen, int cent){ if (len >= maxlen) return NULL; // workaround to produce a leading zero for cents.. %0.2d won't work - sprintf(s, "%d,%s%dEUR", cent / 100, ((cent%100)<10?"0":""), cent % 100); + sprintf(s, "%3d,%s%dEUR", cent / 100, ((cent%100)<10?"0":""), cent % 100); return s; }