X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmisc.c;h=3da335978e5a2a539899ad89edc9c3e5bb77cabc;hb=eae2f3467caaaf64a9370c1acd8cecf11fd58328;hp=7ff3a94781e0ed66ab23597f99b5a19935c9484c;hpb=0c27626bae90cb1eeea4939de0130a49b9aac507;p=rocksndiamonds.git diff --git a/src/misc.c b/src/misc.c index 7ff3a947..3da33597 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; @@ -336,6 +347,7 @@ char *getStringToLower(char *s) while (*s) *s_ptr++ = tolower(*s++); + *s_ptr = '\0'; return s_copy; }