%% options copyright owner = Dirk Krause copyright year = 2015-xxxx license = bsd %% header /** @file dk4memcpl.h Copy memory within buffer from right to left. */ #include "dk4error.h" #ifdef __cplusplus extern "C" { #endif /** Copy memory from right to left. @param dst Destination buffer address. @param src Source buffer address. @param sz Number of bytes to copy. @param erp Error report, may be NULL. */ void dk4mem_cpy_to_left(void *dst, const void *src, size_t sz, dk4_er_t *erp); #ifdef __cplusplus } #endif %% module #include "dk4memcpl.h" void dk4mem_cpy_to_left(void *dst, const void *src, size_t sz, dk4_er_t *erp) { unsigned char *dptr; const unsigned char *sptr; if ((NULL != dst) && (NULL != src) && (0 < sz)) { dptr = (unsigned char *)dst; sptr = (const unsigned char *)src; while (0 < sz--) { *(dptr++) = *(sptr++); } } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } }