source: trunk/third/gettext/lib/memmove.c @ 15274

Revision 15274, 686 bytes checked in by ghudson, 24 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r15273, which included commits to RCS files with non-trunk default branches.
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
10void *
11memmove (dest, source, length)
12     char *dest;
13     const char *source;
14     unsigned length;
15{
16  char *d0 = dest;
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 (void *) d0;
28}
Note: See TracBrowser for help on using the repository browser.