diff options
Diffstat (limited to 'private/crt32/string/memchr.c')
-rw-r--r-- | private/crt32/string/memchr.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/private/crt32/string/memchr.c b/private/crt32/string/memchr.c new file mode 100644 index 000000000..b79097e79 --- /dev/null +++ b/private/crt32/string/memchr.c @@ -0,0 +1,57 @@ +/*** +*memchr.c - search block of memory for a given character +* +* Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved. +* +*Purpose: +* defines memchr() - search memory until a character is +* found or a limit is reached. +* +*Revision History: +* 05-31-89 JCR C version created. +* 02-27-90 GJF Fixed calling type, #include <cruntime.h>, fixed +* copyright. +* 08-14-90 SBM Compiles cleanly with -W3, removed now redundant +* #include <stddef.h> +* 10-01-90 GJF New-style function declarator. Also, rewrote expr. to +* avoid using cast as an lvalue. +* 04-26-91 SRW Removed level 3 warnings +* +*******************************************************************************/ + +#include <cruntime.h> +#include <string.h> + +/*** +*char *memchr(buf, chr, cnt) - search memory for given character. +* +*Purpose: +* Searches at buf for the given character, stopping when chr is +* first found or cnt bytes have been searched through. +* +*Entry: +* void *buf - memory buffer to be searched +* int chr - character to search for +* size_t cnt - max number of bytes to search +* +*Exit: +* returns pointer to first occurence of chr in buf +* returns NULL if chr not found in the first cnt bytes +* +*Exceptions: +* +*******************************************************************************/ + +void * _CALLTYPE1 memchr ( + const void * buf, + int chr, + size_t cnt + ) +{ + while ( cnt && *(char *)buf != (char)chr ) { + buf = (char *)buf + 1; + cnt--; + } + + return(cnt ? (void *)buf : NULL); +} |