Rev 4872 | Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 1 | /* |
2 | * string.h |
||
3 | * |
||
4 | * Definitions for memory and string functions. |
||
5 | */ |
||
6 | |||
7 | #ifndef _STRING_H_ |
||
8 | #define _STRING_H_ |
||
9 | |||
10 | #include "_ansi.h" |
||
11 | #include |
||
12 | #include |
||
13 | |||
14 | #define __need_size_t |
||
15 | #include |
||
16 | |||
17 | #ifndef NULL |
||
18 | #define NULL 0 |
||
19 | #endif |
||
20 | |||
21 | _BEGIN_STD_C |
||
22 | |||
23 | _PTR _EXFUN(memchr,(const _PTR, int, size_t)); |
||
24 | int _EXFUN(memcmp,(const _PTR, const _PTR, size_t)); |
||
25 | _PTR _EXFUN(memcpy,(_PTR, const _PTR, size_t)); |
||
26 | _PTR _EXFUN(memmove,(_PTR, const _PTR, size_t)); |
||
27 | _PTR _EXFUN(memset,(_PTR, int, size_t)); |
||
28 | char *_EXFUN(strcat,(char *, const char *)); |
||
29 | char *_EXFUN(strchr,(const char *, int)); |
||
30 | int _EXFUN(strcmp,(const char *, const char *)); |
||
31 | int _EXFUN(strcoll,(const char *, const char *)); |
||
32 | char *_EXFUN(strcpy,(char *, const char *)); |
||
33 | size_t _EXFUN(strcspn,(const char *, const char *)); |
||
34 | char *_EXFUN(strerror,(int)); |
||
35 | size_t _EXFUN(strlen,(const char *)); |
||
36 | char *_EXFUN(strncat,(char *, const char *, size_t)); |
||
37 | int _EXFUN(strncmp,(const char *, const char *, size_t)); |
||
38 | char *_EXFUN(strncpy,(char *, const char *, size_t)); |
||
39 | char *_EXFUN(strpbrk,(const char *, const char *)); |
||
40 | char *_EXFUN(strrchr,(const char *, int)); |
||
41 | size_t _EXFUN(strspn,(const char *, const char *)); |
||
42 | char *_EXFUN(strstr,(const char *, const char *)); |
||
43 | |||
44 | #ifndef _REENT_ONLY |
||
45 | char *_EXFUN(strtok,(char *, const char *)); |
||
46 | #endif |
||
47 | |||
48 | size_t _EXFUN(strxfrm,(char *, const char *, size_t)); |
||
49 | |||
50 | #ifndef __STRICT_ANSI__ |
||
51 | char *_EXFUN(strtok_r,(char *, const char *, char **)); |
||
52 | |||
53 | int _EXFUN(bcmp,(const void *, const void *, size_t)); |
||
54 | void _EXFUN(bcopy,(const void *, void *, size_t)); |
||
55 | void _EXFUN(bzero,(void *, size_t)); |
||
56 | int _EXFUN(ffs,(int)); |
||
57 | char *_EXFUN(index,(const char *, int)); |
||
58 | _PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t)); |
||
59 | _PTR _EXFUN(mempcpy,(_PTR, const _PTR, size_t)); |
||
60 | _PTR _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t)); |
||
61 | char *_EXFUN(rindex,(const char *, int)); |
||
62 | char *_EXFUN(stpcpy,(char *, const char *)); |
||
63 | char *_EXFUN(stpncpy,(char *, const char *, size_t)); |
||
64 | int _EXFUN(strcasecmp,(const char *, const char *)); |
||
65 | char *_EXFUN(strcasestr,(const char *, const char *)); |
||
66 | char *_EXFUN(strchrnul,(const char *, int)); |
||
67 | char *_EXFUN(strdup,(const char *)); |
||
68 | char *_EXFUN(_strdup_r,(struct _reent *, const char *)); |
||
69 | char *_EXFUN(strndup,(const char *, size_t)); |
||
70 | char *_EXFUN(_strndup_r,(struct _reent *, const char *, size_t)); |
||
71 | /* There are two common strerror_r variants. If you request |
||
72 | _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX |
||
73 | version. POSIX requires that #undef strerror_r will still let you |
||
74 | invoke the underlying function, but that requires gcc support. */ |
||
75 | #ifdef _GNU_SOURCE |
||
76 | char *_EXFUN(strerror_r,(int, char *, size_t)); |
||
77 | #else |
||
78 | # ifdef __GNUC__ |
||
79 | int _EXFUN(strerror_r,(int, char *, size_t)) __asm__ (__ASMNAME ("__xpg_strerror_r")); |
||
80 | # else |
||
81 | int _EXFUN(__xpg_strerror_r,(int, char *, size_t)); |
||
82 | # define strerror_r __xpg_strerror_r |
||
83 | # endif |
||
84 | #endif |
||
85 | size_t _EXFUN(strlcat,(char *, const char *, size_t)); |
||
86 | size_t _EXFUN(strlcpy,(char *, const char *, size_t)); |
||
87 | int _EXFUN(strncasecmp,(const char *, const char *, size_t)); |
||
88 | size_t _EXFUN(strnlen,(const char *, size_t)); |
||
89 | char *_EXFUN(strsep,(char **, const char *)); |
||
90 | char *_EXFUN(strlwr,(char *)); |
||
91 | char *_EXFUN(strupr,(char *)); |
||
92 | #ifndef DEFS_H /* Kludge to work around problem compiling in gdb */ |
||
93 | char *_EXFUN(strsignal, (int __signo)); |
||
94 | #endif |
||
95 | #ifdef __CYGWIN__ |
||
96 | int _EXFUN(strtosigno, (const char *__name)); |
||
97 | #endif |
||
98 | |||
99 | /* Recursive version of strerror. */ |
||
100 | char * _EXFUN(_strerror_r, (struct _reent *, int, int, int *)); |
||
101 | |||
102 | #if defined _GNU_SOURCE && defined __GNUC__ |
||
103 | #define strdupa(__s) \ |
||
104 | (__extension__ ({const char *__in = (__s); \ |
||
105 | size_t __len = strlen (__in) + 1; \ |
||
106 | char * __out = (char *) __builtin_alloca (__len); \ |
||
107 | (char *) memcpy (__out, __in, __len);})) |
||
108 | #define strndupa(__s, __n) \ |
||
109 | (__extension__ ({const char *__in = (__s); \ |
||
110 | size_t __len = strnlen (__in, (__n)) + 1; \ |
||
111 | char *__out = (char *) __builtin_alloca (__len); \ |
||
112 | __out[__len-1] = '\0'; \ |
||
113 | (char *) memcpy (__out, __in, __len-1);})) |
||
114 | #endif /* _GNU_SOURCE && __GNUC__ */ |
||
115 | |||
116 | /* These function names are used on Windows and perhaps other systems. */ |
||
117 | #ifndef strcmpi |
||
118 | #define strcmpi strcasecmp |
||
119 | #endif |
||
120 | #ifndef stricmp |
||
121 | #define stricmp strcasecmp |
||
122 | #endif |
||
123 | #ifndef strncmpi |
||
124 | #define strncmpi strncasecmp |
||
125 | #endif |
||
126 | #ifndef strnicmp |
||
127 | #define strnicmp strncasecmp |
||
128 | #endif |
||
129 | |||
130 | #endif /* ! __STRICT_ANSI__ */ |
||
131 | |||
132 | #include |
||
133 | |||
134 | _END_STD_C |
||
135 | |||
136 | #endif /* _STRING_H_ */ |