From c257dc2cfa5db9bac2ebdd88f3f78c85a78e387d Mon Sep 17 00:00:00 2001 From: Thilo Schulz Date: Tue, 8 Feb 2011 21:27:45 +0000 Subject: [PATCH] Fix memmove with new size_t typedef, thanks DevHC for reporting --- code/game/bg_lib.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/code/game/bg_lib.c b/code/game/bg_lib.c index a8eab10a..f56382f6 100644 --- a/code/game/bg_lib.c +++ b/code/game/bg_lib.c @@ -272,18 +272,29 @@ int toupper( int c ) { return c; } -void *memmove( void *dest, const void *src, size_t count ) { - int i; +void *memmove(void *dest, const void *src, size_t count) +{ + size_t i; - if ( dest > src ) { - for ( i = count-1 ; i >= 0 ; i-- ) { - ((char *)dest)[i] = ((char *)src)[i]; + if(count) + { + if(dest > src) + { + i = count - 1; + + do + { + ((char *) dest)[i] = ((char *) src)[i]; + i--; + } while(i > 0); } - } else { - for ( i = 0 ; i < count ; i++ ) { - ((char *)dest)[i] = ((char *)src)[i]; + else + { + for(i = 0; i < count; i++) + ((char *) dest)[i] = ((char *) src)[i]; } } + return dest; }