@@ -87,7 +87,7 @@ AC_CHECK_DECL([PRIdMAX],,
dnl Checks for library functions.
AC_CHECK_FUNCS(bsearch faccessat getpwnam getrlimit isalpha killpg \
- memfd_create mempcpy \
+ memfd_create memrchr mempcpy \
sigsetmask stpcpy strchrnul strsignal strtod strtoimax \
strtoumax sysconf tee)
@@ -1633,6 +1633,17 @@ static char *expmeta_rmescapes(char *enddir, const char *name)
return enddir - 1;
}
+#ifndef HAVE_MEMRCHR
+static void *memrchr(const void *s, int c, size_t n)
+{
+ const unsigned char *str = (const unsigned char *)s;
+ for (const unsigned char *cp = str + n - 1; cp >= str; cp--)
+ if (*cp == c)
+ return (void *)cp;
+ return NULL;
+}
+#endif
+
/*
* Do metacharacter (i.e. *, ?, [...]) expansion.
*/