From 3a330cf58d32020641f256834e7127488d291498 Mon Sep 17 00:00:00 2001
From: John Hodge <tpg@ucc.asn.au>
Date: Mon, 11 Dec 2023 22:15:36 +0800
Subject: [PATCH] Client - Better fix to that warning

---
 src/client/menu.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/client/menu.c b/src/client/menu.c
index f68f36f..170efcb 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();
-- 
GitLab