From 1824dd6867271400b4b78cd53650daade5f55ec2 Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Mon, 9 Jan 2012 01:38:44 +0100 Subject: [PATCH] Added memchr(3). --- libmaxsi/c/hsrc/string.h | 2 +- libmaxsi/memory.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/libmaxsi/c/hsrc/string.h b/libmaxsi/c/hsrc/string.h index 25b26c47..57f59502 100644 --- a/libmaxsi/c/hsrc/string.h +++ b/libmaxsi/c/hsrc/string.h @@ -33,6 +33,7 @@ __BEGIN_DECLS @include(size_t.h) @include(locale_t.h) +void* memchr(const void*, int, size_t); int memcmp(const void*, const void*, size_t); void* memcpy(void* restrict, const void* restrict, size_t); void* memset(void*, int, size_t); @@ -52,7 +53,6 @@ char* strtok_r(char* restrict, const char* restrict, char** restrict); /* TODO: These are not implemented in libmaxsi/sortix yet. */ #ifndef SORTIX_UNIMPLEMENTED void* memccpy(void* restrict, const void* restrict, int, size_t); -void* memchr(const void*, int, size_t); void* memmove(void*, const void*, size_t); char* stpcpy(char* restrict, const char* restrict); char* stpncpy(char* restrict, const char* restrict, size_t); diff --git a/libmaxsi/memory.cpp b/libmaxsi/memory.cpp index 99a219d8..c13c58a1 100644 --- a/libmaxsi/memory.cpp +++ b/libmaxsi/memory.cpp @@ -88,5 +88,15 @@ namespace Maxsi } return 0; } + + DUAL_FUNCTION(void*, memchr, Seek, (const void* s, int c, size_t size)) + { + const byte* buf = (const byte*) s; + for ( size_t i = 0; i < size; i++ ) + { + if ( buf[i] == c ) { return (void*) (buf + i); } + } + return NULL; + } } }