aboutsummaryrefslogtreecommitdiff
path: root/include/apos/string.h
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-08-31 00:13:40 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2021-08-31 00:13:40 +0300
commit1ab464d959b9ee3d3bb6758ac0d9d33fc6c77e46 (patch)
tree8d6832f0eadacce1613778bcecfcdaa2391aba79 /include/apos/string.h
parent2939b749b1169a0c01c19698a3f0026034346ebd (diff)
downloadkmi-1ab464d959b9ee3d3bb6758ac0d9d33fc6c77e46.tar.gz
kmi-1ab464d959b9ee3d3bb6758ac0d9d33fc6c77e46.zip
Improved linkind process, added padding generator
Diffstat (limited to 'include/apos/string.h')
-rw-r--r--include/apos/string.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/include/apos/string.h b/include/apos/string.h
index 787f630..67cdae8 100644
--- a/include/apos/string.h
+++ b/include/apos/string.h
@@ -2,6 +2,7 @@
#define APOS_STRING_H
#include <apos/types.h>
+#include <apos/builtin.h>
/* follow C library functions, drop location and error functions */
@@ -51,28 +52,80 @@ int memcmp(const void *ptr1, const void *ptr2, size_t num);
* an issue.
*/
+#if __has_builtin(__builtin_memcpy)
#define memcpy(dst, src, num) __builtin_memcpy(dst, src, num)
+#endif
+
+#if __has_builtin(__builtin_memmove)
#define memmove(dst, src, num) __builtin_memmove(dst, src, num)
+#endif
+
+#if __has_builtin(__builtin_strcpy)
#define strcpy(dst, src) __builtin_strcpy(dst, src)
+#endif
+
+#if __has_builtin(__builtin_strncpy)
#define strncpy(dst, src, num) __builtin_strncpy(dst, src, num)
+#endif
+#if __has_builtin(__builtin_strcat)
#define strcat(dst, src) __builtin_strcat(dst, src)
+#endif
+
+#if __has_builtin(__builtin_strncat)
#define strncat(dst, src, num) __builtin_strncat(dst, src, num)
+#endif
+#if __has_builtin(__builtin_memcmp)
#define memcmp(p1, p2, num) __builtin_memcmp(p1, p2, num)
+#endif
+
+#if __has_builtin(__builtin_strcmp)
#define strcmp(s1, s2) __builtin_strcmp(s1, s2)
+#endif
+
+#if __has_builtin(__builtin_strncmp)
#define strncmp(s1, s2, num) __builtin_strncmp(s1, s2, num)
+#endif
+#if __has_builtin(__builtin_strncmp)
#define memchr(ptr, val, num) __builtin_memchr(ptr, val, num)
+#endif
+
+#if __has_builtin(__builtin_strchr)
#define strchr(str, chr) __builtin_strchr(str, chr)
+#endif
+
+#if __has_builtin(__builtin_strcspn)
#define strcspn(s1, s2) __builtin_strcspn(s1, s2)
+#endif
+
+#if __has_builtin(__builtin_strpbrk)
#define strpbrk(s1, s2) __builtin_strpbrk(s1, s2)
+#endif
+
+#if __has_builtin(__builtin_strchr)
#define strrchr(s1, s2) __builtin_strrchr(s1, s2)
+#endif
+
+#if __has_builtin(__builtin_strspn)
#define strspn(s1, s2) __builtin_strspn(s1, s2)
+#endif
+
+#if __has_builtin(__builtin_strstr)
#define strstr(s1, s2) __builtin_strstr(s1, s2)
+#endif
+
+#if __has_builtin(__builtin_strtok)
#define strtok(s1, s2) __builtin_strtok(s1, s2)
+#endif
+#if __has_builtin(__builtin_memset)
#define memset(p, v, n) __builtin_memset(p, v, n)
+#endif
+
+#if __has_builtin(__builtin_strlen)
#define strlen(s) __builtin_strlen(s)
+#endif
#endif /* APOS_STRING_H */