Edit

thodg/libiconv/srclib/memmove.c

Branch :

  • Show log

    Commit

  • Author : Bruno Haible
    Date : 2005-12-29 13:06:22
    Hash : 1f290a21
    Message : Update from GNU gettext.

  • srclib/memmove.c
  • /* memmove.c -- copy memory.
       Copy LENGTH bytes from SOURCE to DEST.  Does not null-terminate.
       In the public domain.
       By David MacKenzie <djm@gnu.ai.mit.edu>.  */
    
    #ifdef HAVE_CONFIG_H
    # include <config.h>
    #endif
    
    #include <stddef.h>
    
    void *
    memmove (void *dest0, void const *source0, size_t length)
    {
      char *dest = dest0;
      char const *source = source0;
      if (source < dest)
        /* Moving from low mem to hi mem; start at end.  */
        for (source += length, dest += length; length; --length)
          *--dest = *--source;
      else if (source != dest)
        {
          /* Moving from hi mem to low mem; start at beginning.  */
          for (; length; --length)
    	*dest++ = *source++;
        }
      return dest0;
    }