| /* 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 |
| |
| void |
| memmove (dest, source, length) |
| char *dest; |
| const char *source; |
| unsigned length; |
| { |
| 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++; |
| } |