home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c185 / 2.ddi / OWLSRC.EXE / CSCAPE / SOURCE / OMEMMOVE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1989-09-06  |  831 b   |  51 lines

  1. /*
  2.     omemmove.c  
  3.  
  4.     % 'oakland' backup memmove function.
  5.  
  6.     OWL 1.1
  7.     Copyright (c) 1989 by Oakland Group, Inc.
  8.     ALL RIGHTS RESERVED.
  9.  
  10.     Revision History:
  11.     -----------------
  12.      7/26/89 jmd    Added test for 0 cnt
  13. */
  14.  
  15. #include "oakhead.h"
  16.  
  17. /* -------------------------------------------------------------------------- */
  18.  
  19. VOID *omemmove(dst, src, cnt)
  20.     VOID *dst;
  21.     VOID *src;
  22.     SIZE_T cnt;
  23. {
  24.     byte *s, *d;
  25.  
  26.     s = (byte *) src;
  27.     d = (byte *) dst;
  28.  
  29.     if (cnt > 0) {
  30.  
  31.         if (d > s) {    /* copy tail first */
  32.             s += cnt - 1;
  33.             d += cnt - 1;
  34.             do {
  35.                 *d-- = *s--;
  36.                 cnt--;
  37.             } while (cnt > 0);
  38.         }
  39.         else {    /* copy head first */
  40.             do {
  41.                 *d++ = *s++;
  42.                 cnt--;
  43.             } while (cnt > 0);
  44.         }
  45.     }
  46.  
  47.     return(src);
  48. }
  49. /* -------------------------------------------------------------------------- */
  50.  
  51.