7#include <ascii-chat/platform/abstraction.h>
8#include <ascii-chat/asciichat_errno.h>
14 size_t src_len = strlen(src);
20 size_t copy_len = (src_len >= size) ? size - 1 : src_len;
21 memcpy(dst, src, copy_len);
28 size_t dst_len = strlen(dst);
29 size_t src_len = strlen(src);
31 if (dst_len >= size) {
32 return dst_len + src_len;
35 size_t remaining = size - dst_len;
36 size_t copy_len = (src_len >= remaining) ? remaining - 1 : src_len;
37 memcpy(dst + dst_len, src, copy_len);
38 dst[dst_len + copy_len] =
'\0';
40 return dst_len + src_len;
45 return strcasecmp(s1, s2);
52 int ret = vasprintf(strp, fmt,
args);
62asciichat_error_t
platform_memcpy(
void *dest,
size_t dest_size,
const void *src,
size_t count) {
64 return ERROR_INVALID_PARAM;
66 if (count > dest_size) {
67 return ERROR_INVALID_PARAM;
69 memcpy(dest, src, count);
73asciichat_error_t
platform_memset(
void *dest,
size_t dest_size,
int ch,
size_t count) {
75 return ERROR_INVALID_PARAM;
77 if (count > dest_size) {
78 return ERROR_INVALID_PARAM;
80 memset(dest, ch, count);
85 return vsnprintf(str, size, format, ap);
89 return strncasecmp(s1, s2, n);