diff --git a/src/client/menu.c b/src/client/menu.c index f68f36f7f30c2d836314c8d4843aa2927ac46db3..170efcb01ad441ff85c82bedfd3638768b061d6f 100644 --- a/src/client/menu.c +++ b/src/client/menu.c @@ -42,7 +42,7 @@ int ShowNCursesUI(void) int currentItem; int ret = -2; // -2: Used for marking "no return yet" - char balance_str[9+1+2+1]; // 9 digits is the max (according to a gcc awarning) + char balance_str[5+1+2+1]; // If $9999.99 is too little, something's wrong char *username; struct passwd *pwd; @@ -86,7 +86,15 @@ int ShowNCursesUI(void) username = pwd->pw_name; } // Get balance - snprintf(balance_str, sizeof(balance_str), "$%i.%02i", giUserBalance/100, abs(giUserBalance)%100); + if( giUserBalance >= 1000000 ) { + snprintf(balance_str, sizeof(balance_str), ">$9,999"); + } + else if( giUserBalance <= -1000000 ) { + snprintf(balance_str, sizeof(balance_str), "<-$9,999"); + } + else { + snprintf(balance_str, sizeof(balance_str), "$%i.%02i", giUserBalance/100, abs(giUserBalance)%100); + } // Enter curses mode initscr();