Annotation of embedaddon/libiconv/srclib/memmove.c, revision 1.1.1.2

1.1       misho       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: #include <config.h>
                      7: 
                      8: #include <stddef.h>
                      9: 
                     10: void *
                     11: memmove (void *dest0, void const *source0, size_t length)
                     12: {
                     13:   char *dest = dest0;
                     14:   char const *source = source0;
                     15:   if (source < dest)
                     16:     /* Moving from low mem to hi mem; start at end.  */
                     17:     for (source += length, dest += length; length; --length)
                     18:       *--dest = *--source;
                     19:   else if (source != dest)
                     20:     {
                     21:       /* Moving from hi mem to low mem; start at beginning.  */
                     22:       for (; length; --length)
1.1.1.2 ! misho      23:         *dest++ = *source++;
1.1       misho      24:     }
                     25:   return dest0;
                     26: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>