ref: 7143b286b7b57eed2b49ba143dcae90be3716b0e
parent: 4aa68d2f3a10b81fecc27550c9e1bb05b7b74887
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sat Dec 28 00:14:10 EST 2013
ape: move strdup() from libbsd to libap (from sources) including <string.h> should be enougth to make strdup() available.
--- a/sys/include/ape/bsd.h
+++ b/sys/include/ape/bsd.h
@@ -34,10 +34,8 @@
extern void bhappy(void*);
extern int rresvport(int*);
extern int rcmd(char**, int, char*, char*, char*, int*);
-extern char* strdup(char*);
extern int strcasecmp(char*, char*);
extern int strncasecmp(char*, char*,int);
-extern void* memccpy(void*, void*, int, size_t);
extern int getopt(int, char**, char*);
extern int opterr;
--- a/sys/include/ape/string.h
+++ b/sys/include/ape/string.h
@@ -9,6 +9,7 @@
#endif
extern void *memcpy(void *, const void *, size_t);
+extern void *memccpy(void*, void*, int, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);
@@ -17,6 +18,7 @@
extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
+extern char *strdup(char*);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);
extern void *memchr(const void *, int, size_t);
--- a/sys/src/ape/lib/ap/gen/mkfile
+++ b/sys/src/ape/lib/ap/gen/mkfile
@@ -55,6 +55,7 @@
strtoull.$O\
strxfrm.$O\
toupper.$O\
+ strdup.$O\
# cull things in the per-machine directories from this list
OFILES= `{rc ./reduce $O $objtype $ALLOFILES}
--- /dev/null
+++ b/sys/src/ape/lib/ap/gen/strdup.c
@@ -1,0 +1,16 @@
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+
+char*
+strdup(char *p)
+{
+ int n;
+ char *np;
+
+ n = strlen(p)+1;
+ np = malloc(n);
+ if(np)
+ memmove(np, p, n);
+ return np;
+}
--- a/sys/src/ape/lib/bsd/mkfile
+++ b/sys/src/ape/lib/bsd/mkfile
@@ -49,7 +49,6 @@
strncasecmp.$O\
socket.$O\
socketpair.$O\
- strdup.$O\
pty.$O\
writev.$O\
--- a/sys/src/ape/lib/bsd/strdup.c
+++ /dev/null
@@ -1,16 +1,0 @@
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-
-char*
-strdup(char *p)
-{
- int n;
- char *np;
-
- n = strlen(p)+1;
- np = malloc(n);
- if(np)
- memmove(np, p, n);
- return np;
-}
--
⑨