update for HEAD-2003091401
[reactos.git] / lib / crtdll / stdlib / swab.c
1 /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
2 #include <msvcrt/stdlib.h>
3
4 /*
5  * @implemented
6  */
7 void    _swab (const char* caFrom, char* caTo, size_t sizeToCopy)
8 {
9   unsigned long temp;
10
11   sizeToCopy >>= 1; sizeToCopy++;
12 #define STEP    temp = *((const char *)caFrom)++,*((char *)caTo)++ = *((const char *)caFrom)++,*((char *)caTo)++ = temp
13   /* round to multiple of 8 */
14   while ((--sizeToCopy) & 07)
15     STEP;
16   sizeToCopy >>= 3;
17   while (--sizeToCopy >= 0) {
18     STEP; STEP; STEP; STEP;
19     STEP; STEP; STEP; STEP;
20   }
21 }