Add memcmp().
authorBen Pfaff <blp@cs.stanford.edu>
Wed, 18 Aug 2004 00:11:22 +0000 (00:11 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Wed, 18 Aug 2004 00:11:22 +0000 (00:11 +0000)
Use unsigned char instead of uint8_t for string functions.

src/lib/lib.c
src/lib/lib.h

index d439f5d7b81793dc78c865f80870ce6c9ba8f77e..0c590e33845af969122e5d63c6187c268fdf976f 100644 (file)
@@ -10,7 +10,7 @@
 void *
 memset (void *dst_, int value, size_t cnt) 
 {
-  uint8_t *dst = dst_;
+  unsigned char *dst = dst_;
   
   while (cnt-- > 0)
     *dst++ = value;
@@ -21,8 +21,8 @@ memset (void *dst_, int value, size_t cnt)
 void *
 memcpy (void *dst_, const void *src_, size_t cnt) 
 {
-  uint8_t *dst = dst_;
-  const uint8_t *src = src_;
+  unsigned char *dst = dst_;
+  const unsigned char *src = src_;
 
   while (cnt-- > 0)
     *dst++ = *src++;
@@ -33,8 +33,8 @@ memcpy (void *dst_, const void *src_, size_t cnt)
 void *
 memmove (void *dst_, const void *src_, size_t cnt) 
 {
-  uint8_t *dst = dst_;
-  const uint8_t *src = src_;
+  unsigned char *dst = dst_;
+  const unsigned char *src = src_;
 
   if (dst < src) 
     {
@@ -55,8 +55,8 @@ memmove (void *dst_, const void *src_, size_t cnt)
 void *
 memchr (const void *block_, int ch_, size_t size) 
 {
-  const uint8_t *block = block_;
-  uint8_t ch = ch_;
+  const unsigned char *block = block_;
+  unsigned char ch = ch_;
 
   for (; size-- > 0; block++)
     if (*block == ch)
@@ -65,6 +65,18 @@ memchr (const void *block_, int ch_, size_t size)
   return NULL;
 }
 
+int
+memcmp (const void *a_, const void *b_, size_t size) 
+{
+  const unsigned char *a = a_;
+  const unsigned char *b = b_;
+
+  for (; size-- > 0; a++, b++)
+    if (*a != *b)
+      return *a > *b ? +1 : -1;
+  return 0;
+}
+
 size_t
 strlcpy (char *dst, const char *src, size_t size) 
 {
index 29dc17cdf8cb9abca1af887d13d88bd8300b4d49..2f788bea4de58e068695bc8cc03a9c3c7d390377 100644 (file)
@@ -11,6 +11,7 @@ void *memset (void *, int, size_t);
 void *memcpy (void *, const void *, size_t);
 void *memmove (void *, const void *, size_t);
 void *memchr (const void *, int, size_t);
+int memcmp (const void *, const void *, size_t);
 
 char *strchr (const char *, int);
 size_t strlcpy (char *, const char *, size_t);