1998-09-06 23:45:24 +00:00
|
|
|
#ifndef _STRING_H
|
1998-08-09 17:39:48 +00:00
|
|
|
|
1999-11-24 20:48:27 +00:00
|
|
|
#include <sys/types.h>
|
|
|
|
|
|
|
|
extern void *__memccpy (void *__dest, __const void *__src,
|
|
|
|
int __c, size_t __n);
|
1998-12-08 13:12:47 +00:00
|
|
|
|
2000-05-12 07:01:25 +00:00
|
|
|
extern size_t __strnlen (__const char *__string, size_t __maxlen)
|
|
|
|
__attribute_pure__;
|
1998-12-08 13:12:47 +00:00
|
|
|
|
1999-11-24 20:48:27 +00:00
|
|
|
extern char *__strsep (char **__stringp, __const char *__delim);
|
1998-12-08 13:12:47 +00:00
|
|
|
|
2000-05-12 07:01:25 +00:00
|
|
|
extern int __strverscmp (__const char *__s1, __const char *__s2)
|
|
|
|
__attribute_pure__;
|
1998-12-08 13:12:47 +00:00
|
|
|
|
1999-11-24 20:48:27 +00:00
|
|
|
extern int __strncasecmp (__const char *__s1, __const char *__s2,
|
2000-05-12 07:01:25 +00:00
|
|
|
size_t __n)
|
|
|
|
__attribute_pure__;
|
1998-12-08 13:12:47 +00:00
|
|
|
|
2000-10-20 06:16:38 +00:00
|
|
|
extern int __strcasecmp (__const char *__s1, __const char *__s2)
|
|
|
|
__attribute_pure__;
|
|
|
|
|
|
|
|
extern char *__strcasestr (__const char *__haystack, __const char *__needle)
|
|
|
|
__attribute_pure__;
|
|
|
|
|
2000-06-23 02:04:57 +00:00
|
|
|
extern char *__strdup (__const char *__string)
|
|
|
|
__attribute_malloc__;
|
1999-12-19 19:14:15 +00:00
|
|
|
extern char *__strndup (__const char *__string, size_t __n)
|
|
|
|
__attribute_malloc__;
|
1998-12-08 13:12:47 +00:00
|
|
|
|
2000-05-12 07:01:25 +00:00
|
|
|
extern void *__rawmemchr (__const void *__s, int __c)
|
|
|
|
__attribute_pure__;
|
1999-01-16 17:09:04 +00:00
|
|
|
|
2000-05-12 07:01:25 +00:00
|
|
|
extern char *__strchrnul (__const char *__s, int __c)
|
|
|
|
__attribute_pure__;
|
1999-04-28 21:56:46 +00:00
|
|
|
|
2000-05-12 07:01:25 +00:00
|
|
|
extern void *__memrchr (__const void *__s, int __c, size_t __n)
|
|
|
|
__attribute_pure__;
|
1999-10-04 07:30:05 +00:00
|
|
|
|
2000-07-18 14:00:31 +00:00
|
|
|
extern void *__memchr (__const void *__s, int __c, size_t __n)
|
|
|
|
__attribute_pure__;
|
2001-02-06 18:27:57 +00:00
|
|
|
|
|
|
|
extern int __ffs (int __i) __attribute__ ((const));
|
|
|
|
|
|
|
|
extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);
|
|
|
|
|
1999-11-24 20:48:27 +00:00
|
|
|
/* Now the real definitions. We do this here since some of the functions
|
|
|
|
above are defined as macros in the headers. */
|
|
|
|
#include <string/string.h>
|
2001-08-30 23:22:02 +00:00
|
|
|
|
|
|
|
/* Alternative version which doesn't pollute glibc's namespace. */
|
|
|
|
#undef strndupa
|
|
|
|
#define strndupa(s, n) \
|
|
|
|
(__extension__ \
|
|
|
|
({ \
|
|
|
|
__const char *__old = (s); \
|
|
|
|
size_t __len = __strnlen (__old, (n)); \
|
|
|
|
char *__new = (char *) __builtin_alloca (__len + 1); \
|
|
|
|
__new[__len] = '\0'; \
|
|
|
|
(char *) memcpy (__new, __old, __len); \
|
|
|
|
}))
|
1998-09-06 23:45:24 +00:00
|
|
|
#endif
|