Wolfgang Thallergcc16 merge, part 27672bd75 months agoHistory
185 lines · 5.5 KB · C
RawDownload
/* * string.h * * Definitions for memory and string functions. */ #ifndef _STRING_H_#define	_STRING_H_ #include "_ansi.h"#include <sys/reent.h>#include <sys/cdefs.h>#include <sys/features.h> #define __need_size_t#define __need_NULL#include <stddef.h> #if __POSIX_VISIBLE >= 200809#include <sys/_locale.h>#endif #if __BSD_VISIBLE#include <strings.h>#endif _BEGIN_STD_C void *	 memchr (const void *, int, size_t);int 	 memcmp (const void *, const void *, size_t);void *	 memcpy (void *__restrict, const void *__restrict, size_t);void *	 memmove (void *, const void *, size_t);void *	 memset (void *, int, size_t);char 	*strcat (char *__restrict, const char *__restrict);char 	*strchr (const char *, int);int	 strcmp (const char *, const char *);int	 strcoll (const char *, const char *);char 	*strcpy (char *__restrict, const char *__restrict);size_t	 strcspn (const char *, const char *);char 	*strerror (int);size_t	 strlen (const char *);char 	*strncat (char *__restrict, const char *__restrict, size_t);int	 strncmp (const char *, const char *, size_t);char 	*strncpy (char *__restrict, const char *__restrict, size_t);char 	*strpbrk (const char *, const char *);char 	*strrchr (const char *, int);size_t	 strspn (const char *, const char *);char 	*strstr (const char *, const char *);#ifndef _REENT_ONLYchar 	*strtok (char *__restrict, const char *__restrict);#endifsize_t	 strxfrm (char *__restrict, const char *__restrict, size_t); #if __POSIX_VISIBLE >= 200809int	 strcoll_l (const char *, const char *, locale_t);char	*strerror_l (int, locale_t);size_t	 strxfrm_l (char *__restrict, const char *__restrict, size_t, locale_t);#endif#if __MISC_VISIBLE || __POSIX_VISIBLEchar 	*strtok_r (char *__restrict, const char *__restrict, char **__restrict);#endif#if __BSD_VISIBLEint	 timingsafe_bcmp (const void *, const void *, size_t);int	 timingsafe_memcmp (const void *, const void *, size_t);#endif#if __MISC_VISIBLE || __POSIX_VISIBLEvoid *	 memccpy (void *__restrict, const void *__restrict, int, size_t);#endif#if __GNU_VISIBLEvoid *	 mempcpy (void *, const void *, size_t);void *	 memrchr (const void *, int, size_t);void *	 rawmemchr (const void *, int);#endif#if __GNU_VISIBLE || __POSIX_VISIBLE >= 202405void *	 memmem (const void *, size_t, const void *, size_t);#endif#if __POSIX_VISIBLE >= 200809char 	*stpcpy (char *__restrict, const char *__restrict);char 	*stpncpy (char *__restrict, const char *__restrict, size_t);#endif#if __GNU_VISIBLEchar	*strcasestr (const char *, const char *);char 	*strchrnul (const char *, int);#endif#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 4char 	*strdup (const char *) __malloc_like __result_use_check;#endifchar 	*_strdup_r (struct _reent *, const char *);#if __POSIX_VISIBLE >= 200809char 	*strndup (const char *, size_t) __malloc_like __result_use_check;#endifchar 	*_strndup_r (struct _reent *, const char *, size_t); /* There are two common strerror_r variants.  If you request   _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX   version.  POSIX requires that #undef strerror_r will still let you   invoke the underlying function, but that requires gcc support.  */#if __GNU_VISIBLEchar	*strerror_r (int, char *, size_t);#elif __POSIX_VISIBLE >= 200112# ifdef __GNUC__int	strerror_r (int, char *, size_t)#ifdef __ASMNAME             __asm__ (__ASMNAME ("__xpg_strerror_r"))#endif  ;# elseint	__xpg_strerror_r (int, char *, size_t);#  define strerror_r __xpg_strerror_r# endif#endif /* Reentrant version of strerror.  */char *	_strerror_r (struct _reent *, int, int, int *); #if __BSD_VISIBLE || __POSIX_VISIBLE >= 202405Lsize_t	strlcat (char *, const char *, size_t);size_t	strlcpy (char *, const char *, size_t);#endif#if __POSIX_VISIBLE >= 200809size_t	 strnlen (const char *, size_t);#endif#if __BSD_VISIBLEchar 	*strsep (char **, const char *);#endif#if __BSD_VISIBLEchar    *strnstr(const char *, const char *, size_t) __pure;#endif #if __MISC_VISIBLEchar	*strlwr (char *);char	*strupr (char *);#endif #if __POSIX_VISIBLE >= 200809char	*strsignal (int __signo);#endif #ifdef __CYGWIN__int	strtosigno (const char *__name);#endif #if __GNU_VISIBLEint	 strverscmp (const char *, const char *);#endif #if __GNU_VISIBLE && defined(__GNUC__)#define strdupa(__s) \	(__extension__ ({const char *__sin = (__s); \			 size_t __len = strlen (__sin) + 1; \			 char * __sout = (char *) __builtin_alloca (__len); \			 (char *) memcpy (__sout, __sin, __len);}))#define strndupa(__s, __n) \	(__extension__ ({const char *__sin = (__s); \			 size_t __len = strnlen (__sin, (__n)) + 1; \			 char *__sout = (char *) __builtin_alloca (__len); \			 __sout[__len-1] = '\0'; \			 (char *) memcpy (__sout, __sin, __len-1);}))#endif /* __GNU_VISIBLE && __GNUC__ */ /* There are two common basename variants.  If you do NOT #include <libgen.h>   and you do      #define _GNU_SOURCE     #include <string.h>    you get the GNU version.  Otherwise you get the POSIX versionfor which you   should #include <libgen.h>i for the function prototype.  POSIX requires that   #undef basename will still let you invoke the underlying function.  However,   this also implies that the POSIX version is used in this case.  That's made   sure here. */#if __GNU_VISIBLE && !defined(basename)# define basename basenamechar	*__nonnull ((1)) basename (const char *) __asm__(__ASMNAME("__gnu_basename"));#endif #include <sys/string.h> _END_STD_C #if __SSP_FORTIFY_LEVEL > 0#include <ssp/string.h>#endif #endif /* _STRING_H_ */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t