Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /* memmove( void *, const void *, size_t )
  2.  
  3.    This file is part of the Public Domain C Library (PDCLib).
  4.    Permission is granted to use, modify, and / or redistribute at will.
  5. */
  6.  
  7. #include <string.h>
  8.  
  9. void * memmove( void * s1, const void * s2, size_t n )
  10. {
  11.     char * dest = ( char * ) s1;
  12.     const char * src = ( const char * ) s2;
  13.  
  14.     if ( dest <= src )
  15.     {
  16.         while ( n-- )
  17.         {
  18.             *dest++ = *src++;
  19.         }
  20.     }
  21.     else
  22.     {
  23.         src += n;
  24.         dest += n;
  25.  
  26.         while ( n-- )
  27.         {
  28.             *--dest = *--src;
  29.         }
  30.     }
  31.  
  32.     return s1;
  33. }