Annotation of coherent/b/lib/libc/string/memmove.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * memmove.c
        !             3:  * ANSI 4.11.2.2.
        !             4:  * Copy memory.
        !             5:  * Works correctly between overlapping blocks,
        !             6:  * provided s1 < s2 assures object *s1 at lower address than *s2.
        !             7:  * This may not be the case in some machine models (e.g. LARGE i8086).
        !             8:  */
        !             9: 
        !            10: #include <string.h>
        !            11: 
        !            12: char *memmove(s1, s2, n) char *s1; register char *s2; register size_t n;
        !            13: {
        !            14:        register char *cp;
        !            15: 
        !            16:        if (s1 < s2) {
        !            17:                for (cp = s1; n--; )
        !            18:                        *cp++ = *s2++;
        !            19:        }
        !            20:        else if (s1 > s2) {
        !            21:                s2 += n;
        !            22:                for (cp = s1 + n; n--; )
        !            23:                        *--cp = *--s2;
        !            24:        }
        !            25:        return (s1);
        !            26: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.