| Line |  | 
|---|
| 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 | #include <stddef.h> | 
|---|
| 11 |  | 
|---|
| 12 | void * | 
|---|
| 13 | memmove (void *dest0, void const *source0, size_t length) | 
|---|
| 14 | { | 
|---|
| 15 | char *dest = dest0; | 
|---|
| 16 | char const *source = source0; | 
|---|
| 17 | if (source < dest) | 
|---|
| 18 | /* Moving from low mem to hi mem; start at end.  */ | 
|---|
| 19 | for (source += length, dest += length; length; --length) | 
|---|
| 20 | *--dest = *--source; | 
|---|
| 21 | else if (source != dest) | 
|---|
| 22 | { | 
|---|
| 23 | /* Moving from hi mem to low mem; start at beginning.  */ | 
|---|
| 24 | for (; length; --length) | 
|---|
| 25 | *dest++ = *source++; | 
|---|
| 26 | } | 
|---|
| 27 | return dest0; | 
|---|
| 28 | } | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.