Add a wrapper for 'memmem'
memmem is a GNU libc extension that works like strstr except that the size of the needle and the haystack are passed into the function instead of using null-terminated strings. This patch adds a wrapper function called 'cogl_util_memmem' so that we can use this function. There is a configure check and if the function is not available then a fallback implementation will be used. Otherwise cogl_util_memmem is just defined to memmem. Reviewed-by: Robert Bragg <robert@linux.intel.com> (cherry picked from commit 1dd1b0a67f6238e13f7f9253fb03addada0541b7)
This commit is contained in:

committed by
Robert Bragg

parent
12a1ef72c0
commit
0c66431df3
@ -25,6 +25,8 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "cogl-util.h"
|
||||
#include "cogl-private.h"
|
||||
|
||||
@ -252,4 +254,26 @@ _cogl_util_pixel_format_from_masks (unsigned long r_mask,
|
||||
return image_format;
|
||||
}
|
||||
|
||||
#ifndef HAVE_MEMMEM
|
||||
|
||||
char *
|
||||
_cogl_util_memmem (const void *haystack,
|
||||
size_t haystack_len,
|
||||
const void *needle,
|
||||
size_t needle_len)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
if (needle_len > haystack_len)
|
||||
return NULL;
|
||||
|
||||
for (i = 0; i <= haystack_len - needle_len; i++)
|
||||
if (!memcmp ((const char *) haystack + i, needle, needle_len))
|
||||
return (char *) haystack + i;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* HAVE_MEMMEM */
|
||||
|
||||
#endif /* _COGL_IN_TEST_BITMASK */
|
||||
|
Reference in New Issue
Block a user