annotate lib/memmove.c @ 1710:a6e95d15d8fb

Include stdio.h.
author Jim Meyering <jim@meyering.net>
date Mon, 08 Feb 1999 03:32:06 +0000
parents f07402a43c74
children 42147e1c0cee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 /* memmove.c -- copy memory.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
2 Copy LENGTH bytes from SOURCE to DEST. Does not null-terminate.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3 In the public domain.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4 By David MacKenzie <djm@gnu.ai.mit.edu>. */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
5
744
f07402a43c74 libitize
Jim Meyering <jim@meyering.net>
parents: 654
diff changeset
6 #if HAVE_CONFIG_H
648
221d11a2cacd cpp-indent
Jim Meyering <jim@meyering.net>
parents: 643
diff changeset
7 # include <config.h>
443
08929473d399 merge with 1.11.1b
Jim Meyering <jim@meyering.net>
parents: 395
diff changeset
8 #endif
08929473d399 merge with 1.11.1b
Jim Meyering <jim@meyering.net>
parents: 395
diff changeset
9
643
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
10 void *
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 memmove (dest, source, length)
395
b305d1d56092 Make source const.
Jim Meyering <jim@meyering.net>
parents: 386
diff changeset
12 char *dest;
b305d1d56092 Make source const.
Jim Meyering <jim@meyering.net>
parents: 386
diff changeset
13 const char *source;
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 unsigned length;
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15 {
654
6470fee04491 Oops. Always return destination.
Jim Meyering <jim@meyering.net>
parents: 648
diff changeset
16 char *d0 = dest;
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17 if (source < dest)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 /* Moving from low mem to hi mem; start at end. */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19 for (source += length, dest += length; length; --length)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 *--dest = *--source;
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21 else if (source != dest)
643
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
22 {
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
23 /* Moving from hi mem to low mem; start at beginning. */
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
24 for (; length; --length)
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
25 *dest++ = *source++;
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
26 }
654
6470fee04491 Oops. Always return destination.
Jim Meyering <jim@meyering.net>
parents: 648
diff changeset
27 return (void *) d0;
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
28 }