| 12 | return static_cast<char*>(memcpy(s1, s2, n * sizeof(char))); |
| 13 | } |
| 14 | void* MMcpy(void* dst, const void* src, size_t len) |
| 15 | { |
| 16 | char* ch_dst = (char*)dst; |
| 17 | char* ch_src = (char*)src; |
| 18 | if (NULL == ch_dst || NULL == ch_src) { |
| 19 | return NULL; |
| 20 | } |
| 21 | |
| 22 | void* rest = ch_dst; |
| 23 | |
| 24 | if (ch_dst <= ch_src || (char*)ch_dst >= (char*)ch_src + len) { |
| 25 | while (len--) { |
| 26 | *(char*)ch_dst = *(char*)ch_src; |
| 27 | ch_dst = (char*)ch_dst + 1; |
| 28 | ch_src = (char*)ch_src + 1; |
| 29 | } |
| 30 | } |
| 31 | else { |
| 32 | ch_src = (char*)ch_src + len - 1; |
| 33 | ch_dst = (char*)ch_dst + len - 1; |
| 34 | while (len--) { |
| 35 | *(char*)ch_dst = *(char*)ch_src; |
| 36 | ch_dst = (char*)ch_dst - 1; |
| 37 | ch_src = (char*)ch_src - 1; |
| 38 | } |
| 39 | } |
| 40 | return rest; |
| 41 | } |
| 42 | |
| 43 | bool Tesbuer() |
| 44 | { |
nothing calls this directly
no outgoing calls
no test coverage detected