shithub: riscv

Download patch

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;
-}
--