diff options
Diffstat (limited to 'string/string-inlines.c')
-rw-r--r-- | string/string-inlines.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/string/string-inlines.c b/string/string-inlines.c index 16db3ea308..83bdd6c185 100644 --- a/string/string-inlines.c +++ b/string/string-inlines.c @@ -32,3 +32,43 @@ #undef __NO_INLINE__ #include <bits/string.h> #include <bits/string2.h> + +#include "shlib-compat.h" + +#if SHLIB_COMPAT (libc, GLIBC_2_1_1, GLIBC_2_24) +/* The inline functions are not used from GLIBC 2.24 and forward, however + they are required to provide the symbols through string-inlines.c + (if inlining is not possible for compatibility reasons). */ +size_t +__old_strcspn_c1 (const char *__s, int __reject) +{ + size_t __result = 0; + while (__s[__result] != '\0' && __s[__result] != __reject) + ++__result; + return __result; +} +compat_symbol (libc, __old_strcspn_c1, __strcspn_c1, GLIBC_2_1_1); + +size_t +__old_strcspn_c2 (const char *__s, int __reject1, int __reject2) +{ + size_t __result = 0; + while (__s[__result] != '\0' && __s[__result] != __reject1 + && __s[__result] != __reject2) + ++__result; + return __result; +} +compat_symbol (libc, __old_strcspn_c2, __strcspn_c2, GLIBC_2_1_1); + +size_t +__old_strcspn_c3 (const char *__s, int __reject1, int __reject2, + int __reject3) +{ + size_t __result = 0; + while (__s[__result] != '\0' && __s[__result] != __reject1 + && __s[__result] != __reject2 && __s[__result] != __reject3) + ++__result; + return __result; +} +compat_symbol (libc, __old_strcspn_c3, __strcspn_c3, GLIBC_2_1_1); +#endif |