/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1985-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* David Korn <[email protected]> *18* Phong Vo <[email protected]> *19* *20***********************************************************************/21#pragma prototyped2223#include <ast.h>2425#if _lib_memmove2627NoN(memmove)2829#else3031void*32memmove(void* to, const void* from, register size_t n)33{34register char* out = (char*)to;35register char* in = (char*)from;3637if (n <= 0) /* works if size_t is signed or not */38;39else if (in + n <= out || out + n <= in)40return(memcpy(to, from, n)); /* hope it's fast*/41else if (out < in)42do *out++ = *in++; while (--n > 0);43else44{45out += n;46in += n;47do *--out = *--in; while(--n > 0);48}49return(to);50}5152#endif535455