]> xenbits.xensource.com Git - people/liuw/rumprun.git/commitdiff
add memchr() to string operations
authorAntti Kantee <pooka@iki.fi>
Wed, 15 Apr 2015 07:43:44 +0000 (07:43 +0000)
committerAntti Kantee <pooka@iki.fi>
Wed, 15 Apr 2015 07:43:44 +0000 (07:43 +0000)
include/bmk-core/string.h
lib/librumprun_core/bmk_string.c

index 965ea60c21385bd31399a85fe0c26210cdf7263f..44c45797dc34738038d88fce72ca394b5cc2b6d6 100644 (file)
@@ -28,6 +28,7 @@
 
 void *bmk_memcpy(void *, const void *, unsigned long);
 void *bmk_memset(void *, int, unsigned long);
+void *bmk_memchr(const void *, int, unsigned long);
 
 unsigned long bmk_strlen(const char *);
 char *bmk_strcpy(char *, const char *);
index 2301a162d8e9528497296e0e445c6437fb327976..fb53980a074441d6622a96a98b87941ff1d15f29 100644 (file)
@@ -30,6 +30,7 @@
  * Some code from public domain implementations.
  */
 
+#include <bmk-core/null.h>
 #include <bmk-core/string.h>
 
 unsigned long
@@ -119,3 +120,16 @@ bmk_memcpy(void *d, const void *src, unsigned long n)
 
        return d;
 }
+
+void *
+bmk_memchr(const void *d, int c, unsigned long n)
+{
+       const unsigned char *p = d;
+
+       while (n--) {
+               if (*p == (unsigned char)c)
+                       return (void *)(unsigned long)p;
+               p++;
+       }
+       return NULL;
+}