home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / pdksh-4.9-src.tgz / tar.out / contrib / pdksh / std / stdc / memmove.c < prev    next >
C/C++ Source or Header  |  1996-09-28  |  374b  |  26 lines

  1. /* $Id: memmove.c,v 1.3 93/05/05 21:18:14 sjg Exp $ */
  2.  
  3. #include "stdh.h"
  4.  
  5. void *
  6. memmove(dap, sap, n)
  7.     void *dap;
  8.     const void *sap;
  9.     register size_t n;
  10. {
  11.     register char *dp = dap, *sp = (void*) sap;
  12.  
  13.     if (n <= 0)
  14.         ;
  15.     else if (dp < sp)
  16.         do *dp++ = *sp++; while (--n > 0);
  17.     else if (dp > sp) {
  18.         dp += n;
  19.         sp += n;
  20.         do *--dp = *--sp; while (--n > 0);
  21.     }
  22.     return dap;
  23. }
  24.  
  25.  
  26.