diff options
Diffstat (limited to 'user')
| -rw-r--r-- | user/ulib.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/user/ulib.c b/user/ulib.c index 8bfba5d..4775939 100644 --- a/user/ulib.c +++ b/user/ulib.c @@ -103,8 +103,15 @@ memmove(void *vdst, const void *vsrc, int n)    dst = vdst;    src = vsrc; -  while(n-- > 0) -    *dst++ = *src++; +  if (src > dst) { +    while(n-- > 0) +      *dst++ = *src++; +  } else { +    dst += n; +    src += n; +    while(n-- > 0) +      *--dst = *--src; +  }    return vdst;  } | 
