source: trunk/texinfo/lib/memmove.c@ 2637

Last change on this file since 2637 was 2617, checked in by bird, 19 years ago

GNU Texinfo 4.8

File size: 699 bytes
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
12void *
13memmove (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.