Mercurial > illumos > onarm
annotate usr/src/cmd/fmli/sys/memshift.c @ 4:1a15d5aaf794
synchronized with onnv_86 (6202) in onnv-gate
author | Koji Uno <koji.uno@sun.com> |
---|---|
date | Mon, 31 Aug 2009 14:38:03 +0900 |
parents | c9caec207d52 |
children |
rev | line source |
---|---|
0 | 1 /* |
2 * CDDL HEADER START | |
3 * | |
4 * The contents of this file are subject to the terms of the | |
5 * Common Development and Distribution License, Version 1.0 only | |
6 * (the "License"). You may not use this file except in compliance | |
7 * with the License. | |
8 * | |
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE | |
10 * or http://www.opensolaris.org/os/licensing. | |
11 * See the License for the specific language governing permissions | |
12 * and limitations under the License. | |
13 * | |
14 * When distributing Covered Code, include this CDDL HEADER in each | |
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. | |
16 * If applicable, add the following below this CDDL HEADER, with the | |
17 * fields enclosed by brackets "[]" replaced with your own identifying | |
18 * information: Portions Copyright [yyyy] [name of copyright owner] | |
19 * | |
20 * CDDL HEADER END | |
21 */ | |
22 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ | |
23 /* All Rights Reserved */ | |
24 | |
25 | |
26 /* | |
27 * Copyright (c) 1986 AT&T | |
28 * All Rights Reserved | |
29 */ | |
4
1a15d5aaf794
synchronized with onnv_86 (6202) in onnv-gate
Koji Uno <koji.uno@sun.com>
parents:
0
diff
changeset
|
30 #ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */ |
0 | 31 |
32 #include <stdio.h> | |
33 #include "wish.h" | |
34 | |
35 char * | |
36 memshift(dst, src, len) | |
37 char *dst; | |
38 char *src; | |
39 int len; | |
40 { | |
41 register char *d; | |
42 register char *s; | |
43 register int n; | |
44 extern char *memcpy(); | |
45 | |
46 if (dst < src) | |
47 if (dst + len <= src) | |
48 memcpy(dst, src, len); | |
49 else | |
50 for (s = src, d = dst, n = len; n > 0; n--) | |
51 *d++ = *s++; | |
52 else | |
53 if (src + len <= dst) | |
54 return memcpy(dst, src, len); | |
55 else | |
56 for (n = len, s = src + n, d = dst + n; n > 0; n--) | |
57 *--d = *--s; | |
58 return dst; | |
59 } |