]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/string.c
Merge pull request #969 from pwpiwi/gcc10_fixes
[proxmark3-svn] / armsrc / string.c
index 4e66c95bd86bbd0a64b3051d5e0894707e2cfa1d..b2710d077f38c1ac70f100eb6d6e25794c3da8ca 100644 (file)
@@ -11,8 +11,7 @@
 #include "string.h"
 #include <stdint.h>
 
-void *memcpy(void *dest, const void *src, int len)
-{
+void *memcpy(void *dest, const void *src, size_t len) {
        uint8_t *d = dest;
        const uint8_t *s = src;
        while((len--) > 0) {
@@ -23,8 +22,8 @@ void *memcpy(void *dest, const void *src, int len)
        return dest;
 }
 
-void *memset(void *dest, int c, int len)
-{
+
+void *memset(void *dest, int c, size_t len) {
        uint8_t *d = dest;
        while((len--) > 0) {
                *d = c;
@@ -33,8 +32,30 @@ void *memset(void *dest, int c, int len)
        return dest;
 }
 
-int memcmp(const void *av, const void *bv, int len)
-{
+
+void *memmove(void *dest, const void *src, size_t len) {
+       uint8_t *d = dest;
+       const uint8_t *s = src;
+       if (dest <= src) {
+               while((len--) > 0) {
+                       *d = *s;
+                       d++;
+                       s++;
+               } 
+       } else {
+               d = d + len - 1;
+               s = s + len - 1;
+               while((len--) > 0) {
+                       *d = *s;
+                       d--;
+                       s--;
+               }
+       }
+       return dest;
+}
+
+
+int memcmp(const void *av, const void *bv, size_t len) {
        const uint8_t *a = av;
        const uint8_t *b = bv;
 
@@ -48,8 +69,8 @@ int memcmp(const void *av, const void *bv, int len)
        return 0;
 }
 
-int strlen(const char *str)
-{
+
+size_t strlen(const char *str) {
        int l = 0;
        while(*str) {
                l++;
@@ -58,8 +79,8 @@ int strlen(const char *str)
        return l;
 }
 
-char* strncat(char *dest, const char *src, unsigned int n)
-{
+
+char* strncat(char *dest, const char *src, size_t n) {
        unsigned int dest_len = strlen(dest);
        unsigned int i;
 
@@ -69,3 +90,15 @@ char* strncat(char *dest, const char *src, unsigned int n)
 
        return dest;
 }
+
+
+char* strcat(char *dest, const char *src) {
+       unsigned int dest_len = strlen(dest);
+       unsigned int i;
+
+       for (i = 0 ; src[i] != '\0' ; i++)
+               dest[dest_len + i] = src[i];
+       dest[dest_len + i] = '\0';
+
+       return dest;
+}
Impressum, Datenschutz