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 *);
* Some code from public domain implementations.
*/
+#include <bmk-core/null.h>
#include <bmk-core/string.h>
unsigned long
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;
+}