summaryrefslogtreecommitdiff
path: root/src/string/wmemmove.c
diff options
context:
space:
mode:
authorVladimir Azarov <avm@intermediate-node.net>2024-10-01 15:47:05 +0200
committerVladimir Azarov <avm@intermediate-node.net>2024-10-01 15:47:05 +0200
commit4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch)
treeebf009bf1376a5a223a915bc27cbbd791a1316bc /src/string/wmemmove.c
Initial version
Diffstat (limited to 'src/string/wmemmove.c')
-rw-r--r--src/string/wmemmove.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/string/wmemmove.c b/src/string/wmemmove.c
new file mode 100644
index 0000000..964c903
--- /dev/null
+++ b/src/string/wmemmove.c
@@ -0,0 +1,13 @@
+#include <wchar.h>
+#include <stdint.h>
+
+wchar_t *wmemmove(wchar_t *d, const wchar_t *s, size_t n)
+{
+ wchar_t *d0 = d;
+ if (d == s) return d;
+ if ((uintptr_t)d-(uintptr_t)s < n * sizeof *d)
+ while (n--) d[n] = s[n];
+ else
+ while (n--) *d++ = *s++;
+ return d0;
+}