home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gettext-0.10.24-src.tgz / tar.out / fsf / gettext / lib / memmove.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  672b  |  28 lines

  1. /* memmove.c -- copy memory.
  2.    Copy LENGTH bytes from SOURCE to DEST.  Does not null-terminate.
  3.    In the public domain.
  4.    By David MacKenzie <djm@gnu.ai.mit.edu>.  */
  5.  
  6. #if HAVE_CONFIG_H
  7. # include <config.h>
  8. #endif
  9.  
  10. void *
  11. memmove (dest, source, length)
  12.      char *dest;
  13.      const char *source;
  14.      unsigned length;
  15. {
  16.   char *wp = dest;
  17.   if (source < dest)
  18.     /* Moving from low mem to hi mem; start at end.  */
  19.     for (source += length, wp += length; length; --length)
  20.       *--wp = *--source;
  21.   else if (source != dest)
  22.     /* Moving from hi mem to low mem; start at beginning.  */
  23.     for (; length; --length)
  24.       *wp++ = *source++;
  25.  
  26.   return (void *) dest;
  27. }
  28.