Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8687 | turbocat | 1 | /* memmove( void *, const void *, size_t ) |
2 | |||
3 | This file is part of the Public Domain C Library (PDCLib). |
||
4 | Permission is granted to use, modify, and / or redistribute at will. |
||
5 | */ |
||
6 | |||
7 | #include |
||
8 | |||
9 | void * memmove( void * s1, const void * s2, size_t n ) |
||
10 | { |
||
11 | char * dest = ( char * ) s1; |
||
12 | const char * src = ( const char * ) s2; |
||
13 | |||
14 | if ( dest <= src ) |
||
15 | { |
||
16 | while ( n-- ) |
||
17 | { |
||
18 | *dest++ = *src++; |
||
19 | } |
||
20 | } |
||
21 | else |
||
22 | { |
||
23 | src += n; |
||
24 | dest += n; |
||
25 | |||
26 | while ( n-- ) |
||
27 | { |
||
28 | *--dest = *--src; |
||
29 | } |
||
30 | } |
||
31 | |||
32 | return s1; |
||
33 | }=> |