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 #ifdef 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 if (source < dest) 17 /* Moving from low mem to hi mem; start at end. */ 18 for (source += length, dest += length; length; --length) 19 *--dest = *--source; 20 else if (source != dest) 21 /* Moving from hi mem to low mem; start at beginning. */ 22 for (; length; --length) 23 *dest++ = *source++; 24 } 25