|
1449
|
1 /***********************************************************
|
|
|
2 Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
|
|
|
3 Amsterdam, The Netherlands.
|
|
|
4
|
|
|
5 All Rights Reserved
|
|
|
6
|
|
|
7 Permission to use, copy, modify, and distribute this software and its
|
|
|
8 documentation for any purpose and without fee is hereby granted,
|
|
|
9 provided that the above copyright notice appear in all copies and that
|
|
|
10 both that copyright notice and this permission notice appear in
|
|
|
11 supporting documentation, and that the names of Stichting Mathematisch
|
|
|
12 Centrum or CWI not be used in advertising or publicity pertaining to
|
|
|
13 distribution of the software without specific, written prior permission.
|
|
|
14
|
|
|
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
|
|
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
|
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
|
|
|
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
|
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
|
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
|
|
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
22
|
|
|
23 ******************************************************************/
|
|
|
24
|
|
|
25 /* A perhaps slow but I hope correct implementation of memmove */
|
|
|
26
|
|
|
27 extern char *memcpy();
|
|
|
28
|
|
|
29 char *
|
|
|
30 memmove(dst, src, n)
|
|
|
31 char *dst;
|
|
|
32 char *src;
|
|
|
33 int n;
|
|
|
34 {
|
|
|
35 char *realdst = dst;
|
|
|
36 if (n <= 0)
|
|
|
37 return dst;
|
|
|
38 if (src >= dst+n || dst >= src+n)
|
|
|
39 return memcpy(dst, src, n);
|
|
|
40 if (src > dst) {
|
|
|
41 while (--n >= 0)
|
|
|
42 *dst++ = *src++;
|
|
|
43 }
|
|
|
44 else if (src < dst) {
|
|
|
45 src += n;
|
|
|
46 dst += n;
|
|
|
47 while (--n >= 0)
|
|
|
48 *--dst = *--src;
|
|
|
49 }
|
|
|
50 return realdst;
|
|
|
51 }
|