mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-03-01 20:45:37 +08:00
memmem.c and strstr.c: do not require -std=c99
This commit is contained in:
parent
a577c601e7
commit
8d81fcc18e
@ -143,10 +143,11 @@ memmem (const void *haystack, size_t hs_len, const void *needle, size_t ne_len)
|
|||||||
size_t tmp, shift1;
|
size_t tmp, shift1;
|
||||||
size_t m1 = ne_len - 1;
|
size_t m1 = ne_len - 1;
|
||||||
size_t offset = 0;
|
size_t offset = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
/* Initialize bad character shift hash table. */
|
/* Initialize bad character shift hash table. */
|
||||||
memset (shift, 0, sizeof (shift));
|
memset (shift, 0, sizeof (shift));
|
||||||
for (int i = 1; i < m1; i++)
|
for (i = 1; i < m1; i++)
|
||||||
shift[hash2 (ne + i)] = i;
|
shift[hash2 (ne + i)] = i;
|
||||||
shift1 = m1 - shift[hash2 (ne + m1)];
|
shift1 = m1 - shift[hash2 (ne + m1)];
|
||||||
shift[hash2 (ne + m1)] = m1;
|
shift[hash2 (ne + m1)] = m1;
|
||||||
|
@ -102,7 +102,8 @@ strstr2 (const unsigned char *hs, const unsigned char *ne)
|
|||||||
{
|
{
|
||||||
uint32_t h1 = (ne[0] << 16) | ne[1];
|
uint32_t h1 = (ne[0] << 16) | ne[1];
|
||||||
uint32_t h2 = 0;
|
uint32_t h2 = 0;
|
||||||
for (int c = hs[0]; h1 != h2 && c != 0; c = *++hs)
|
int c;
|
||||||
|
for (c = hs[0]; h1 != h2 && c != 0; c = *++hs)
|
||||||
h2 = (h2 << 16) | c;
|
h2 = (h2 << 16) | c;
|
||||||
return h1 == h2 ? (char *)hs - 2 : NULL;
|
return h1 == h2 ? (char *)hs - 2 : NULL;
|
||||||
}
|
}
|
||||||
@ -112,7 +113,8 @@ strstr3 (const unsigned char *hs, const unsigned char *ne)
|
|||||||
{
|
{
|
||||||
uint32_t h1 = (ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8);
|
uint32_t h1 = (ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8);
|
||||||
uint32_t h2 = 0;
|
uint32_t h2 = 0;
|
||||||
for (int c = hs[0]; h1 != h2 && c != 0; c = *++hs)
|
int c;
|
||||||
|
for (c = hs[0]; h1 != h2 && c != 0; c = *++hs)
|
||||||
h2 = (h2 | c) << 8;
|
h2 = (h2 | c) << 8;
|
||||||
return h1 == h2 ? (char *)hs - 3 : NULL;
|
return h1 == h2 ? (char *)hs - 3 : NULL;
|
||||||
}
|
}
|
||||||
@ -122,7 +124,8 @@ strstr4 (const unsigned char *hs, const unsigned char *ne)
|
|||||||
{
|
{
|
||||||
uint32_t h1 = (ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8) | ne[3];
|
uint32_t h1 = (ne[0] << 24) | (ne[1] << 16) | (ne[2] << 8) | ne[3];
|
||||||
uint32_t h2 = 0;
|
uint32_t h2 = 0;
|
||||||
for (int c = hs[0]; c != 0 && h1 != h2; c = *++hs)
|
int c;
|
||||||
|
for (c = hs[0]; c != 0 && h1 != h2; c = *++hs)
|
||||||
h2 = (h2 << 8) | c;
|
h2 = (h2 << 8) | c;
|
||||||
return h1 == h2 ? (char *)hs - 4 : NULL;
|
return h1 == h2 ? (char *)hs - 4 : NULL;
|
||||||
}
|
}
|
||||||
@ -142,6 +145,7 @@ strstr (const char *haystack, const char *needle)
|
|||||||
{
|
{
|
||||||
const unsigned char *hs = (const unsigned char *) haystack;
|
const unsigned char *hs = (const unsigned char *) haystack;
|
||||||
const unsigned char *ne = (const unsigned char *) needle;
|
const unsigned char *ne = (const unsigned char *) needle;
|
||||||
|
int i;
|
||||||
|
|
||||||
/* Handle short needle special cases first. */
|
/* Handle short needle special cases first. */
|
||||||
if (ne[0] == '\0')
|
if (ne[0] == '\0')
|
||||||
@ -170,7 +174,7 @@ strstr (const char *haystack, const char *needle)
|
|||||||
|
|
||||||
/* Initialize bad character shift hash table. */
|
/* Initialize bad character shift hash table. */
|
||||||
memset (shift, ne_len + 1, sizeof (shift));
|
memset (shift, ne_len + 1, sizeof (shift));
|
||||||
for (int i = 0; i < ne_len; i++)
|
for (i = 0; i < ne_len; i++)
|
||||||
shift[ne[i] % sizeof (shift)] = ne_len - i;
|
shift[ne[i] % sizeof (shift)] = ne_len - i;
|
||||||
|
|
||||||
do
|
do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user