X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmisc.c;h=33db03d76a76cc080df7fda89735e48008b6596d;hp=7ff3a94781e0ed66ab23597f99b5a19935c9484c;hb=d2587727d750fdf2aae4eb8f4acb487a5c211041;hpb=57de370c9ad327ece8d2013095281f6b7bbda658 diff --git a/src/misc.c b/src/misc.c index 7ff3a947..33db03d7 100644 --- a/src/misc.c +++ b/src/misc.c @@ -167,9 +167,20 @@ void WaitUntilDelayReached(unsigned long *counter_var, unsigned long delay) *counter_var = actual_counter; } +/* int2str() returns a number converted to a string; + the used memory is static, but will be overwritten by later calls, + so if you want to save the result, copy it to a private string buffer; + there can be 10 local calls of int2str() without buffering the result -- + the 11th call will then destroy the result from the first call and so on. +*/ + char *int2str(int number, int size) { - static char s[40]; + static char shift_array[10][40]; + static int shift_counter = 0; + char *s = shift_array[shift_counter]; + + shift_counter = (shift_counter + 1) % 10; if (size > 20) size = 20;