… | |
… | |
131 | } |
131 | } |
132 | |
132 | |
133 | char * |
133 | char * |
134 | strdup (const char *s) |
134 | strdup (const char *s) |
135 | { |
135 | { |
136 | size_t len = STRLEN (s) + 1; |
136 | size_t len = strlen (s) + 1; |
137 | char *c; |
137 | char *c; |
138 | |
138 | |
139 | if ((c = malloc (len)) != NULL) |
139 | if ((c = malloc (len)) != NULL) |
140 | MEMCPY (c, s, len); |
140 | memcpy (c, s, len); |
141 | return c; |
141 | return c; |
142 | } |
142 | } |
143 | |
143 | |
144 | char * |
144 | char * |
145 | index (const char *s, int c) |
145 | index (const char *s, int c) |
146 | { |
146 | { |
147 | return STRCHR (s, c); |
147 | return strchr (s, c); |
148 | } |
148 | } |
149 | |
149 | |
150 | char * |
150 | char * |
151 | strchr (const char *s, int c) |
151 | strchr (const char *s, int c) |
152 | { |
152 | { |
… | |
… | |
167 | } |
167 | } |
168 | |
168 | |
169 | char * |
169 | char * |
170 | rindex (const char *s, int c) |
170 | rindex (const char *s, int c) |
171 | { |
171 | { |
172 | return STRRCHR (s, c); |
172 | return strrchr (s, c); |
173 | } |
173 | } |
174 | |
174 | |
175 | char * |
175 | char * |
176 | strrchr (const char *s, int c) |
176 | strrchr (const char *s, int c) |
177 | { |
177 | { |
… | |
… | |
189 | |
189 | |
190 | void * |
190 | void * |
191 | memcpy (void *s1, const void *s2, size_t len) |
191 | memcpy (void *s1, const void *s2, size_t len) |
192 | { |
192 | { |
193 | /* has extra stack and time but less code space */ |
193 | /* has extra stack and time but less code space */ |
194 | return MEMMOVE (s1, s2, len); |
194 | return memmove (s1, s2, len); |
195 | } |
195 | } |
196 | |
196 | |
197 | /*--------------------------------------------------------------------------* |
197 | /*--------------------------------------------------------------------------* |
198 | * Possibly faster memmove () by Geoff Wing <mason@primenet.com.au> |
198 | * Possibly faster memmove () by Geoff Wing <mason@primenet.com.au> |
199 | *--------------------------------------------------------------------------*/ |
199 | *--------------------------------------------------------------------------*/ |
… | |
… | |
254 | *--------------------------------------------------------------------------*/ |
254 | *--------------------------------------------------------------------------*/ |
255 | |
255 | |
256 | void |
256 | void |
257 | bzero (void *b, size_t len) |
257 | bzero (void *b, size_t len) |
258 | { |
258 | { |
259 | MEMSET (b, 0, len); |
259 | memset (b, 0, len); |
260 | } |
260 | } |
261 | |
261 | |
262 | void * |
262 | void * |
263 | memset (void *p, int c1, size_t len) |
263 | memset (void *p, int c1, size_t len) |
264 | { |
264 | { |