X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/9ab7a6c75566a2d06e56a8a97173c6382a3c5b3d..HEAD:/armsrc/string.c diff --git a/armsrc/string.c b/armsrc/string.c index a3d3c049..b2710d07 100644 --- a/armsrc/string.c +++ b/armsrc/string.c @@ -1,9 +1,17 @@ -/* Implementations of the common string.h functions */ +//----------------------------------------------------------------------------- +// Jonathan Westhues, Sept 2005 +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Common string.h functions +//----------------------------------------------------------------------------- + #include "string.h" #include -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) { @@ -14,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; @@ -24,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; @@ -39,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++; @@ -49,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; @@ -60,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; +}