annotate lib/memmove.c @ 40186:8964917f9574

autoupdate
author Karl Berry <karl@freefriends.org>
date Mon, 18 Feb 2019 08:02:49 -0800
parents e8d2c6fc33ad
children
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
7302
8a1a9361108c * _fpending.c: Include <config.h> unconditionally, since we no
Paul Eggert <eggert@cs.ucla.edu>
parents: 6259
diff changeset
6 #include <config.h>
443
08929473d399 merge with 1.11.1b
Jim Meyering <jim@meyering.net>
parents: 395
diff changeset
7
4664
42147e1c0cee Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 744
diff changeset
8 #include <stddef.h>
42147e1c0cee Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 744
diff changeset
9
643
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
10 void *
4664
42147e1c0cee Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 744
diff changeset
11 memmove (void *dest0, void const *source0, size_t length)
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 {
4664
42147e1c0cee Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 744
diff changeset
13 char *dest = dest0;
42147e1c0cee Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 744
diff changeset
14 char const *source = source0;
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15 if (source < dest)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16 /* Moving from low mem to hi mem; start at end. */
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17 for (source += length, dest += length; length; --length)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 *--dest = *--source;
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19 else if (source != dest)
643
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
20 {
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
21 /* Moving from hi mem to low mem; start at beginning. */
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
22 for (; length; --length)
12421
e8d2c6fc33ad Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents: 7302
diff changeset
23 *dest++ = *source++;
643
445ed4d1d4f8 Return a value!
Jim Meyering <jim@meyering.net>
parents: 443
diff changeset
24 }
4664
42147e1c0cee Remove K&R cruft.
Paul Eggert <eggert@cs.ucla.edu>
parents: 744
diff changeset
25 return dest0;
386
Jim Meyering <jim@meyering.net>
parents:
diff changeset
26 }