mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-04 19:19:33 +00:00
MINOR: standard: Add my_memspn and my_memcspn
Do the same than strsnp() and strcspn() but on a raw bytes buffer.
This commit is contained in:
parent
12d5740a38
commit
5eb96cbcbc
@ -1006,6 +1006,16 @@ char *my_strndup(const char *src, int n);
|
||||
*/
|
||||
const void *my_memmem(const void *, size_t, const void *, size_t);
|
||||
|
||||
/* get length of the initial segment consiting entirely of bytes within a given
|
||||
* mask
|
||||
*/
|
||||
size_t my_memspn(const void *, size_t, const void *, size_t);
|
||||
|
||||
/* get length of the initial segment consiting entirely of bytes not within a
|
||||
* given mask
|
||||
*/
|
||||
size_t my_memcspn(const void *, size_t, const void *, size_t);
|
||||
|
||||
/* This function returns the first unused key greater than or equal to <key> in
|
||||
* ID tree <root>. Zero is returned if no place is found.
|
||||
*/
|
||||
|
@ -2292,6 +2292,32 @@ const void *my_memmem(const void *haystack, size_t haystacklen, const void *need
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* get length of the initial segment consiting entirely of bytes in <accept> */
|
||||
size_t my_memspn(const void *str, size_t len, const void *accept, size_t acceptlen)
|
||||
{
|
||||
size_t ret = 0;
|
||||
|
||||
while (ret < len && memchr(accept, *((int *)str), acceptlen)) {
|
||||
str++;
|
||||
ret++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* get length of the initial segment consiting entirely of bytes not in <rejcet> */
|
||||
size_t my_memcspn(const void *str, size_t len, const void *reject, size_t rejectlen)
|
||||
{
|
||||
size_t ret = 0;
|
||||
|
||||
while (ret < len) {
|
||||
if(memchr(reject, *((int *)str), rejectlen))
|
||||
return ret;
|
||||
str++;
|
||||
ret++;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* This function returns the first unused key greater than or equal to <key> in
|
||||
* ID tree <root>. Zero is returned if no place is found.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user