aboutsummaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
Diffstat (limited to 're.c')
-rw-r--r--re.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/re.c b/re.c
index ea11f1c015..97803d4e38 100644
--- a/re.c
+++ b/re.c
@@ -97,6 +97,18 @@ rb_memcmp(const void *p1, const void *p2, long len)
return memcmp(p1, p2, len);
}
+#ifdef HAVE_MEMMEM
+static inline long
+rb_memsearch_ss(const unsigned char *xs, long m, const unsigned char *ys, long n)
+{
+ const unsigned char *y;
+
+ if (y = memmem(ys, n, xs, m))
+ return y - ys;
+ else
+ return -1;
+}
+#else
static inline long
rb_memsearch_ss(const unsigned char *xs, long m, const unsigned char *ys, long n)
{
@@ -132,6 +144,7 @@ rb_memsearch_ss(const unsigned char *xs, long m, const unsigned char *ys, long n
}
return y - ys - m;
}
+#endif
static inline long
rb_memsearch_qs(const unsigned char *xs, long m, const unsigned char *ys, long n)