From 120bfca340887b5c69f877075c03a3ecddcedccf Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Tue, 20 Feb 2007 09:44:35 -0800 Subject: [PATCH] Fix card_draw for multi-digit tiles. Previously, for tiles > 9 we were just using the next larger character values in ACII above '9'. Oops! Now, we're properly using snprintf to format the number as an integer within the string. --- kub.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/kub.c b/kub.c index 0a5bc59..15fc649 100644 --- a/kub.c +++ b/kub.c @@ -61,9 +61,12 @@ static void card_print(card_t card) static void card_draw(game_t *game, card_t *card, cairo_t *cr, int x, int y) { - char number_string[2]; - number_string[0] = card->number + '0'; - number_string[1] = '\0'; + char number_string[3]; + int len; + + len = snprintf (number_string, 3, "%d", card->number); + if (len < 0 || len >= 3) + FATAL_ERROR ("snprintf failed"); cairo_save(cr); cairo_translate(cr, x, y); -- 2.43.0